|
30 | 30 | #include "py/nlr.h" |
31 | 31 | #include "py/obj.h" |
32 | 32 | #include "py/objtuple.h" |
| 33 | +#include "py/objstr.h" |
| 34 | +#include "genhdr/py-version.h" |
33 | 35 | #include "lib/fatfs/ff.h" |
34 | 36 | #include "lib/fatfs/diskio.h" |
35 | 37 | #include "rng.h" |
@@ -64,6 +66,31 @@ STATIC bool sd_in_root(void) { |
64 | 66 | #endif |
65 | 67 | } |
66 | 68 |
|
| 69 | +STATIC const qstr os_uname_info_fields[] = { |
| 70 | + MP_QSTR_sysname, MP_QSTR_nodename, |
| 71 | + MP_QSTR_release, MP_QSTR_version, MP_QSTR_machine |
| 72 | +}; |
| 73 | +STATIC const MP_DEFINE_STR_OBJ(os_uname_info_sysname_obj, "pyboard"); |
| 74 | +STATIC const MP_DEFINE_STR_OBJ(os_uname_info_nodename_obj, "pyboard"); |
| 75 | +STATIC const MP_DEFINE_STR_OBJ(os_uname_info_release_obj, MICROPY_VERSION_STRING); |
| 76 | +STATIC const MP_DEFINE_STR_OBJ(os_uname_info_version_obj, MICROPY_GIT_TAG " on " MICROPY_BUILD_DATE); |
| 77 | +STATIC const MP_DEFINE_STR_OBJ(os_uname_info_machine_obj, MICROPY_HW_BOARD_NAME " with " MICROPY_HW_MCU_NAME); |
| 78 | +STATIC MP_DEFINE_ATTRTUPLE( |
| 79 | + os_uname_info_obj, |
| 80 | + os_uname_info_fields, |
| 81 | + 5, |
| 82 | + (mp_obj_t)&os_uname_info_sysname_obj, |
| 83 | + (mp_obj_t)&os_uname_info_nodename_obj, |
| 84 | + (mp_obj_t)&os_uname_info_release_obj, |
| 85 | + (mp_obj_t)&os_uname_info_version_obj, |
| 86 | + (mp_obj_t)&os_uname_info_machine_obj |
| 87 | +); |
| 88 | + |
| 89 | +STATIC mp_obj_t os_uname(void) { |
| 90 | + return (mp_obj_t)&os_uname_info_obj; |
| 91 | +} |
| 92 | +STATIC MP_DEFINE_CONST_FUN_OBJ_0(os_uname_obj, os_uname); |
| 93 | + |
67 | 94 | /// \function chdir(path) |
68 | 95 | /// Change current directory. |
69 | 96 | STATIC mp_obj_t os_chdir(mp_obj_t path_in) { |
@@ -334,6 +361,8 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(os_urandom_obj, os_urandom); |
334 | 361 | STATIC const mp_map_elem_t os_module_globals_table[] = { |
335 | 362 | { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_uos) }, |
336 | 363 |
|
| 364 | + { MP_OBJ_NEW_QSTR(MP_QSTR_uname), (mp_obj_t)&os_uname_obj }, |
| 365 | + |
337 | 366 | { MP_OBJ_NEW_QSTR(MP_QSTR_chdir), (mp_obj_t)&os_chdir_obj }, |
338 | 367 | { MP_OBJ_NEW_QSTR(MP_QSTR_getcwd), (mp_obj_t)&os_getcwd_obj }, |
339 | 368 | { MP_OBJ_NEW_QSTR(MP_QSTR_listdir), (mp_obj_t)&os_listdir_obj }, |
|
0 commit comments