extmod/moduselect: Conditionally compile select().
This adds #if MICROPY_PY_USELECT_SELECT around the uselect.select() function. According to the docs, this function is only for CPython compatibility and should not normally be used. So we can disable it and save a few bytes of flash space where possible. Signed-off-by: David Lechner <david@pybricks.com>
This commit is contained in:
committed by
Damien George
parent
8be29b9b1b
commit
8758504f0f
@@ -107,6 +107,7 @@ STATIC mp_uint_t poll_map_poll(mp_map_t *poll_map, size_t *rwx_num) {
|
|||||||
return n_ready;
|
return n_ready;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if MICROPY_PY_USELECT_SELECT
|
||||||
// select(rlist, wlist, xlist[, timeout])
|
// select(rlist, wlist, xlist[, timeout])
|
||||||
STATIC mp_obj_t select_select(size_t n_args, const mp_obj_t *args) {
|
STATIC mp_obj_t select_select(size_t n_args, const mp_obj_t *args) {
|
||||||
// get array data from tuple/list arguments
|
// get array data from tuple/list arguments
|
||||||
@@ -173,6 +174,7 @@ STATIC mp_obj_t select_select(size_t n_args, const mp_obj_t *args) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mp_select_select_obj, 3, 4, select_select);
|
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mp_select_select_obj, 3, 4, select_select);
|
||||||
|
#endif // MICROPY_PY_USELECT_SELECT
|
||||||
|
|
||||||
typedef struct _mp_obj_poll_t {
|
typedef struct _mp_obj_poll_t {
|
||||||
mp_obj_base_t base;
|
mp_obj_base_t base;
|
||||||
@@ -355,7 +357,9 @@ MP_DEFINE_CONST_FUN_OBJ_0(mp_select_poll_obj, select_poll);
|
|||||||
|
|
||||||
STATIC const mp_rom_map_elem_t mp_module_select_globals_table[] = {
|
STATIC const mp_rom_map_elem_t mp_module_select_globals_table[] = {
|
||||||
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_uselect) },
|
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_uselect) },
|
||||||
|
#if MICROPY_PY_USELECT_SELECT
|
||||||
{ MP_ROM_QSTR(MP_QSTR_select), MP_ROM_PTR(&mp_select_select_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_select), MP_ROM_PTR(&mp_select_select_obj) },
|
||||||
|
#endif
|
||||||
{ MP_ROM_QSTR(MP_QSTR_poll), MP_ROM_PTR(&mp_select_poll_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_poll), MP_ROM_PTR(&mp_select_poll_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_POLLIN), MP_ROM_INT(MP_STREAM_POLL_RD) },
|
{ MP_ROM_QSTR(MP_QSTR_POLLIN), MP_ROM_INT(MP_STREAM_POLL_RD) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_POLLOUT), MP_ROM_INT(MP_STREAM_POLL_WR) },
|
{ MP_ROM_QSTR(MP_QSTR_POLLOUT), MP_ROM_INT(MP_STREAM_POLL_WR) },
|
||||||
|
|||||||
@@ -1316,6 +1316,13 @@ typedef double mp_float_t;
|
|||||||
#define MICROPY_PY_USELECT (0)
|
#define MICROPY_PY_USELECT (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Whether to enable the select() function in the "uselect" module (baremetal
|
||||||
|
// implementation). This is present for compatibility but can be disabled to
|
||||||
|
// save space.
|
||||||
|
#ifndef MICROPY_PY_USELECT_SELECT
|
||||||
|
#define MICROPY_PY_USELECT_SELECT (1)
|
||||||
|
#endif
|
||||||
|
|
||||||
// Whether to provide "utime" module functions implementation
|
// Whether to provide "utime" module functions implementation
|
||||||
// in terms of mp_hal_* functions.
|
// in terms of mp_hal_* functions.
|
||||||
#ifndef MICROPY_PY_UTIME_MP_HAL
|
#ifndef MICROPY_PY_UTIME_MP_HAL
|
||||||
|
|||||||
Reference in New Issue
Block a user