diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2015-12-16 00:38:05 +0200 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2015-12-16 00:38:26 +0200 |
commit | 130fde81307984e4616b6a0bcdd38b640e732d76 (patch) | |
tree | af85fde49a2e59923882b0a9c0ff53d2ec970682 | |
parent | 951fc7e993ae8069444c5cffbc889a6f305a8455 (diff) | |
download | micropython-130fde81307984e4616b6a0bcdd38b640e732d76.tar.gz micropython-130fde81307984e4616b6a0bcdd38b640e732d76.zip |
uos: Add errno() function to get/set errno value.
-rw-r--r-- | unix/modos.c | 11 | ||||
-rw-r--r-- | unix/qstrdefsport.h | 1 |
2 files changed, 12 insertions, 0 deletions
diff --git a/unix/modos.c b/unix/modos.c index abc96e638d..9293d59d0f 100644 --- a/unix/modos.c +++ b/unix/modos.c @@ -201,8 +201,19 @@ STATIC mp_obj_t mod_os_ilistdir(mp_uint_t n_args, const mp_obj_t *args) { } STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_os_ilistdir_obj, 0, 1, mod_os_ilistdir); +STATIC mp_obj_t mod_os_errno(mp_uint_t n_args, const mp_obj_t *args) { + if (n_args == 0) { + return MP_OBJ_NEW_SMALL_INT(errno); + } + + errno = mp_obj_get_int(args[0]); + return mp_const_none; +} +STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_os_errno_obj, 0, 1, mod_os_errno); + STATIC const mp_rom_map_elem_t mp_module_os_globals_table[] = { { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_uos) }, + { MP_ROM_QSTR(MP_QSTR_errno), MP_ROM_PTR(&mod_os_errno_obj) }, { MP_ROM_QSTR(MP_QSTR_stat), MP_ROM_PTR(&mod_os_stat_obj) }, #if MICROPY_PY_OS_STATVFS { MP_ROM_QSTR(MP_QSTR_statvfs), MP_ROM_PTR(&mod_os_statvfs_obj) }, diff --git a/unix/qstrdefsport.h b/unix/qstrdefsport.h index 9965c030c4..d761c0f541 100644 --- a/unix/qstrdefsport.h +++ b/unix/qstrdefsport.h @@ -44,6 +44,7 @@ Q(unlink) Q(getenv) Q(mkdir) Q(ilistdir) +Q(errno) Q(uselect) Q(poll) |