summaryrefslogtreecommitdiffstatshomepage
path: root/unix/modsocket.c
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-04-17 20:34:04 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-04-17 20:34:04 +0300
commite1e4249a674397ab837a31b8b4821f64e655c74e (patch)
tree40526313f6032adc30d808b22eaaffd44c0bbbc7 /unix/modsocket.c
parent59a2f4828d809a47a71996791c216f5e2da91f6f (diff)
downloadmicropython-e1e4249a674397ab837a31b8b4821f64e655c74e.tar.gz
micropython-e1e4249a674397ab837a31b8b4821f64e655c74e.zip
unix modsocket: Convert to static module structures.
Diffstat (limited to 'unix/modsocket.c')
-rw-r--r--unix/modsocket.c49
1 files changed, 27 insertions, 22 deletions
diff --git a/unix/modsocket.c b/unix/modsocket.c
index 8f47a8b157..7b1aaa975d 100644
--- a/unix/modsocket.c
+++ b/unix/modsocket.c
@@ -322,12 +322,18 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_socket_getaddrinfo_obj, 2, 6, mod
extern mp_obj_type_t sockaddr_in_type;
-#define C(name) { #name, name }
+STATIC const mp_map_elem_t mp_module_socket_globals_table[] = {
+ { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_microsocket) },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_socket), (mp_obj_t)&microsocket_type },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_getaddrinfo), (mp_obj_t)&mod_socket_getaddrinfo_obj },
+#if MICROPY_SOCKET_EXTRA
+ { MP_OBJ_NEW_QSTR(MP_QSTR_sockaddr_in), (mp_obj_t)&sockaddr_in_type },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_htons), (mp_obj_t)&mod_socket_htons_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_inet_aton), (mp_obj_t)&mod_socket_inet_aton_obj },
+ { MP_OBJ_NEW_QSTR(MP_QSTR_gethostbyname), (mp_obj_t)&mod_socket_gethostbyname_obj },
+#endif
-STATIC const struct sym_entry {
- const char *sym;
- int val;
-} constants[] = {
+#define C(name) { MP_OBJ_NEW_QSTR(MP_QSTR_ ## name), MP_OBJ_NEW_SMALL_INT(name) }
C(AF_UNIX),
C(AF_INET),
C(AF_INET6),
@@ -344,23 +350,22 @@ STATIC const struct sym_entry {
C(SO_KEEPALIVE),
C(SO_LINGER),
C(SO_REUSEADDR),
-
- {NULL}
+#undef C
};
-#undef C
+STATIC const mp_obj_dict_t mp_module_socket_globals = {
+ .base = {&mp_type_dict},
+ .map = {
+ .all_keys_are_qstrs = 1,
+ .table_is_fixed_array = 1,
+ .used = sizeof(mp_module_socket_globals_table) / sizeof(mp_map_elem_t),
+ .alloc = sizeof(mp_module_socket_globals_table) / sizeof(mp_map_elem_t),
+ .table = (mp_map_elem_t*)mp_module_socket_globals_table,
+ },
+};
-void microsocket_init() {
- mp_obj_t m = mp_obj_new_module(MP_QSTR_microsocket);
- mp_store_attr(m, MP_QSTR_socket, (mp_obj_t)&microsocket_type);
-#if MICROPY_SOCKET_EXTRA
- mp_store_attr(m, MP_QSTR_sockaddr_in, (mp_obj_t)&sockaddr_in_type);
- mp_store_attr(m, MP_QSTR_htons, (mp_obj_t)&mod_socket_htons_obj);
- mp_store_attr(m, MP_QSTR_inet_aton, (mp_obj_t)&mod_socket_inet_aton_obj);
- mp_store_attr(m, MP_QSTR_gethostbyname, (mp_obj_t)&mod_socket_gethostbyname_obj);
-#endif
- mp_store_attr(m, MP_QSTR_getaddrinfo, (mp_obj_t)&mod_socket_getaddrinfo_obj);
- for (const struct sym_entry *p = constants; p->sym != NULL; p++) {
- mp_store_attr(m, QSTR_FROM_STR_STATIC(p->sym), MP_OBJ_NEW_SMALL_INT((machine_int_t)p->val));
- }
-}
+const mp_obj_module_t mp_module_socket = {
+ .base = { &mp_type_module },
+ .name = MP_QSTR_microsocket,
+ .globals = (mp_obj_dict_t*)&mp_module_socket_globals,
+};