stmhal/moduselect: Move to extmod/ for reuse by other ports.
diff --git a/stmhal/moduselect.c b/extmod/moduselect.c
similarity index 98%
rename from stmhal/moduselect.c
rename to extmod/moduselect.c
index 0d76953..6cf1e70 100644
--- a/stmhal/moduselect.c
+++ b/extmod/moduselect.c
@@ -24,6 +24,9 @@
* THE SOFTWARE.
*/
+#include "py/mpconfig.h"
+#if MICROPY_PY_USELECT
+
#include <stdio.h>
#include "py/runtime.h"
@@ -309,3 +312,5 @@
.base = { &mp_type_module },
.globals = (mp_obj_dict_t*)&mp_module_select_globals,
};
+
+#endif // MICROPY_PY_WEBSOCKET
diff --git a/py/builtin.h b/py/builtin.h
index 4477fd2..893e471 100644
--- a/py/builtin.h
+++ b/py/builtin.h
@@ -108,6 +108,7 @@
extern const mp_obj_module_t mp_module_uhashlib;
extern const mp_obj_module_t mp_module_ubinascii;
extern const mp_obj_module_t mp_module_urandom;
+extern const mp_obj_module_t mp_module_uselect;
extern const mp_obj_module_t mp_module_ussl;
extern const mp_obj_module_t mp_module_machine;
extern const mp_obj_module_t mp_module_lwip;
diff --git a/py/mpconfig.h b/py/mpconfig.h
index 1980e64..4572fc4 100644
--- a/py/mpconfig.h
+++ b/py/mpconfig.h
@@ -873,6 +873,11 @@
#define MICROPY_PY_UERRNO (0)
#endif
+// Whether to provide "uselect" module (baremetal implementation)
+#ifndef MICROPY_PY_USELECT
+#define MICROPY_PY_USELECT (0)
+#endif
+
// Whether to provide "utime" module functions implementation
// in terms of mp_hal_* functions.
#ifndef MICROPY_PY_UTIME_MP_HAL
diff --git a/py/objmodule.c b/py/objmodule.c
index 9b06e3b..6f7d35d 100644
--- a/py/objmodule.c
+++ b/py/objmodule.c
@@ -198,6 +198,9 @@
#if MICROPY_PY_URANDOM
{ MP_ROM_QSTR(MP_QSTR_urandom), MP_ROM_PTR(&mp_module_urandom) },
#endif
+#if MICROPY_PY_USELECT
+ { MP_ROM_QSTR(MP_QSTR_uselect), MP_ROM_PTR(&mp_module_uselect) },
+#endif
#if MICROPY_PY_USSL
{ MP_ROM_QSTR(MP_QSTR_ussl), MP_ROM_PTR(&mp_module_ussl) },
#endif
diff --git a/py/py.mk b/py/py.mk
index 82e0661..ec67ac2 100644
--- a/py/py.mk
+++ b/py/py.mk
@@ -219,6 +219,7 @@
../extmod/modussl_axtls.o \
../extmod/modussl_mbedtls.o \
../extmod/modurandom.o \
+ ../extmod/moduselect.o \
../extmod/modwebsocket.o \
../extmod/modwebrepl.o \
../extmod/modframebuf.o \
diff --git a/stmhal/Makefile b/stmhal/Makefile
index c08484d..3b70f6b 100644
--- a/stmhal/Makefile
+++ b/stmhal/Makefile
@@ -150,7 +150,6 @@
modstm.c \
moduos.c \
modutime.c \
- moduselect.c \
modusocket.c \
modnetwork.c \
import.c \
diff --git a/stmhal/mpconfigport.h b/stmhal/mpconfigport.h
index 3eec0fc..66ec364 100644
--- a/stmhal/mpconfigport.h
+++ b/stmhal/mpconfigport.h
@@ -92,6 +92,7 @@
#define MICROPY_PY_UBINASCII (1)
#define MICROPY_PY_URANDOM (1)
#define MICROPY_PY_URANDOM_EXTRA_FUNCS (1)
+#define MICROPY_PY_USELECT (1)
#define MICROPY_PY_UCTYPES (1)
#define MICROPY_PY_UZLIB (1)
#define MICROPY_PY_UJSON (1)
@@ -135,7 +136,6 @@
extern const struct _mp_obj_module_t mp_module_uhashlib;
extern const struct _mp_obj_module_t mp_module_uos;
extern const struct _mp_obj_module_t mp_module_utime;
-extern const struct _mp_obj_module_t mp_module_uselect;
extern const struct _mp_obj_module_t mp_module_usocket;
extern const struct _mp_obj_module_t mp_module_network;
@@ -159,7 +159,6 @@
{ MP_OBJ_NEW_QSTR(MP_QSTR_stm), (mp_obj_t)&stm_module }, \
{ MP_OBJ_NEW_QSTR(MP_QSTR_uos), (mp_obj_t)&mp_module_uos }, \
{ MP_OBJ_NEW_QSTR(MP_QSTR_utime), (mp_obj_t)&mp_module_utime }, \
- { MP_OBJ_NEW_QSTR(MP_QSTR_uselect), (mp_obj_t)&mp_module_uselect }, \
SOCKET_BUILTIN_MODULE \
NETWORK_BUILTIN_MODULE \
diff --git a/stmhal/portmodules.h b/stmhal/portmodules.h
index 173d53c..0b460f3 100644
--- a/stmhal/portmodules.h
+++ b/stmhal/portmodules.h
@@ -28,7 +28,6 @@
extern const mp_obj_module_t stm_module;
extern const mp_obj_module_t mp_module_uos;
extern const mp_obj_module_t mp_module_utime;
-extern const mp_obj_module_t mp_module_uselect;
extern const mp_obj_module_t mp_module_usocket;
// additional helper functions exported by the modules