From 130fde81307984e4616b6a0bcdd38b640e732d76 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Wed, 16 Dec 2015 00:38:05 +0200 Subject: [PATCH] uos: Add errno() function to get/set errno value. --- unix/modos.c | 11 +++++++++++ unix/qstrdefsport.h | 1 + 2 files changed, 12 insertions(+) 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)