diff options
| author | Damien George | 2015-04-21 14:51:49 +0000 |
|---|---|---|
| committer | Damien George | 2015-04-21 14:51:49 +0000 |
| commit | d8837cea6f395bb47863ef7db58ab3984215b7ff (patch) | |
| tree | f34c8b7ad6c8ca1c0208bb06641c854b46c0a5af /stmhal/moduos.c | |
| parent | c3184aea63b6eaf0a0037f691927028ca4be84c2 (diff) | |
stmhal: Implement os.uname() to get details of OS and hardware.
Diffstat (limited to 'stmhal/moduos.c')
| -rw-r--r-- | stmhal/moduos.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/stmhal/moduos.c b/stmhal/moduos.c index 296440ad9..881afa149 100644 --- a/stmhal/moduos.c +++ b/stmhal/moduos.c @@ -30,6 +30,8 @@ #include "py/nlr.h" #include "py/obj.h" #include "py/objtuple.h" +#include "py/objstr.h" +#include "genhdr/py-version.h" #include "lib/fatfs/ff.h" #include "lib/fatfs/diskio.h" #include "rng.h" @@ -64,6 +66,31 @@ STATIC bool sd_in_root(void) { #endif } +STATIC const qstr os_uname_info_fields[] = { + MP_QSTR_sysname, MP_QSTR_nodename, + MP_QSTR_release, MP_QSTR_version, MP_QSTR_machine +}; +STATIC const MP_DEFINE_STR_OBJ(os_uname_info_sysname_obj, "pyboard"); +STATIC const MP_DEFINE_STR_OBJ(os_uname_info_nodename_obj, "pyboard"); +STATIC const MP_DEFINE_STR_OBJ(os_uname_info_release_obj, MICROPY_VERSION_STRING); +STATIC const MP_DEFINE_STR_OBJ(os_uname_info_version_obj, MICROPY_GIT_TAG " on " MICROPY_BUILD_DATE); +STATIC const MP_DEFINE_STR_OBJ(os_uname_info_machine_obj, MICROPY_HW_BOARD_NAME " with " MICROPY_HW_MCU_NAME); +STATIC MP_DEFINE_ATTRTUPLE( + os_uname_info_obj, + os_uname_info_fields, + 5, + (mp_obj_t)&os_uname_info_sysname_obj, + (mp_obj_t)&os_uname_info_nodename_obj, + (mp_obj_t)&os_uname_info_release_obj, + (mp_obj_t)&os_uname_info_version_obj, + (mp_obj_t)&os_uname_info_machine_obj +); + +STATIC mp_obj_t os_uname(void) { + return (mp_obj_t)&os_uname_info_obj; +} +STATIC MP_DEFINE_CONST_FUN_OBJ_0(os_uname_obj, os_uname); + /// \function chdir(path) /// Change current directory. 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); STATIC const mp_map_elem_t os_module_globals_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_uos) }, + { MP_OBJ_NEW_QSTR(MP_QSTR_uname), (mp_obj_t)&os_uname_obj }, + { MP_OBJ_NEW_QSTR(MP_QSTR_chdir), (mp_obj_t)&os_chdir_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_getcwd), (mp_obj_t)&os_getcwd_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_listdir), (mp_obj_t)&os_listdir_obj }, |
