|
32 | 32 | #include "py/nlr.h" |
33 | 33 | #include "py/obj.h" |
34 | 34 | #include "py/objtuple.h" |
| 35 | +#include "py/objstr.h" |
| 36 | +#include "genhdr/py-version.h" |
35 | 37 | #include "ff.h" |
36 | 38 | #include "diskio.h" |
37 | 39 | #include "sflash_diskio.h" |
|
40 | 42 | #include "random.h" |
41 | 43 | #include "sd_diskio.h" |
42 | 44 | #include "mpexception.h" |
| 45 | +#include "version.h" |
43 | 46 |
|
44 | 47 | /// \module os - basic "operating system" services |
45 | 48 | /// |
@@ -69,6 +72,31 @@ STATIC bool sd_in_root(void) { |
69 | 72 | // Micro Python bindings |
70 | 73 | // |
71 | 74 |
|
| 75 | +STATIC const qstr os_uname_info_fields[] = { |
| 76 | + MP_QSTR_sysname, MP_QSTR_nodename, |
| 77 | + MP_QSTR_release, MP_QSTR_version, MP_QSTR_machine |
| 78 | +}; |
| 79 | +STATIC const MP_DEFINE_STR_OBJ(os_uname_info_sysname_obj, MICROPY_PY_SYS_PLATFORM); |
| 80 | +STATIC const MP_DEFINE_STR_OBJ(os_uname_info_nodename_obj, MICROPY_PY_SYS_PLATFORM); |
| 81 | +STATIC const MP_DEFINE_STR_OBJ(os_uname_info_release_obj, WIPY_SW_VERSION_NUMBER); |
| 82 | +STATIC const MP_DEFINE_STR_OBJ(os_uname_info_version_obj, MICROPY_GIT_TAG " on " MICROPY_BUILD_DATE); |
| 83 | +STATIC const MP_DEFINE_STR_OBJ(os_uname_info_machine_obj, MICROPY_HW_BOARD_NAME " with " MICROPY_HW_MCU_NAME); |
| 84 | +STATIC MP_DEFINE_ATTRTUPLE( |
| 85 | + os_uname_info_obj, |
| 86 | + os_uname_info_fields, |
| 87 | + 5, |
| 88 | + (mp_obj_t)&os_uname_info_sysname_obj, |
| 89 | + (mp_obj_t)&os_uname_info_nodename_obj, |
| 90 | + (mp_obj_t)&os_uname_info_release_obj, |
| 91 | + (mp_obj_t)&os_uname_info_version_obj, |
| 92 | + (mp_obj_t)&os_uname_info_machine_obj |
| 93 | +); |
| 94 | + |
| 95 | +STATIC mp_obj_t os_uname(void) { |
| 96 | + return (mp_obj_t)&os_uname_info_obj; |
| 97 | +} |
| 98 | +STATIC MP_DEFINE_CONST_FUN_OBJ_0(os_uname_obj, os_uname); |
| 99 | + |
72 | 100 | /// \function chdir(path) |
73 | 101 | /// Change current directory. |
74 | 102 | STATIC mp_obj_t os_chdir(mp_obj_t path_in) { |
@@ -321,6 +349,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(os_mkdisk_obj, os_mkdisk); |
321 | 349 | STATIC const mp_map_elem_t os_module_globals_table[] = { |
322 | 350 | { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_uos) }, |
323 | 351 |
|
| 352 | + { MP_OBJ_NEW_QSTR(MP_QSTR_uname), (mp_obj_t)&os_uname_obj }, |
324 | 353 | { MP_OBJ_NEW_QSTR(MP_QSTR_chdir), (mp_obj_t)&os_chdir_obj }, |
325 | 354 | { MP_OBJ_NEW_QSTR(MP_QSTR_getcwd), (mp_obj_t)&os_getcwd_obj }, |
326 | 355 | { MP_OBJ_NEW_QSTR(MP_QSTR_listdir), (mp_obj_t)&os_listdir_obj }, |
|
0 commit comments