aboutsummaryrefslogtreecommitdiff
path: root/stmhal/moduos.c
diff options
context:
space:
mode:
authorDamien George2015-04-21 14:51:49 +0000
committerDamien George2015-04-21 14:51:49 +0000
commitd8837cea6f395bb47863ef7db58ab3984215b7ff (patch)
treef34c8b7ad6c8ca1c0208bb06641c854b46c0a5af /stmhal/moduos.c
parentc3184aea63b6eaf0a0037f691927028ca4be84c2 (diff)
stmhal: Implement os.uname() to get details of OS and hardware.
Diffstat (limited to 'stmhal/moduos.c')
-rw-r--r--stmhal/moduos.c29
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 },