diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2017-05-13 15:22:22 +0300 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2017-05-13 15:23:31 +0300 |
commit | c022c9a2f0ea3a707b6993daaffe2bcddd520da2 (patch) | |
tree | 0c13a05aac9955eb39aaf273d59d6580b71a51ba /zephyr/modusocket.c | |
parent | 054a381d7c9f3f5b706475a934299c541efdd746 (diff) |
zephyr/modusocket: Wrap pkt_get_info() call.
The most important info it returns are numbers of free buffers
in different pools (rx/tx packet headers, data fragments).
Diffstat (limited to 'zephyr/modusocket.c')
-rw-r--r-- | zephyr/modusocket.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/zephyr/modusocket.c b/zephyr/modusocket.c index 0cacd7179..c48606b76 100644 --- a/zephyr/modusocket.c +++ b/zephyr/modusocket.c @@ -507,6 +507,18 @@ STATIC const mp_obj_type_t socket_type = { .locals_dict = (mp_obj_t)&socket_locals_dict, }; +STATIC mp_obj_t nbuf_get_info(void) { + struct net_buf_pool *rx, *tx, *rx_data, *tx_data; + net_nbuf_get_info(&rx, &tx, &rx_data, &tx_data); + mp_obj_tuple_t *t = MP_OBJ_TO_PTR(mp_obj_new_tuple(4, NULL)); + t->items[0] = MP_OBJ_NEW_SMALL_INT(rx->avail_count); + t->items[1] = MP_OBJ_NEW_SMALL_INT(tx->avail_count); + t->items[2] = MP_OBJ_NEW_SMALL_INT(rx_data->avail_count); + t->items[3] = MP_OBJ_NEW_SMALL_INT(tx_data->avail_count); + return MP_OBJ_FROM_PTR(t); +} +STATIC MP_DEFINE_CONST_FUN_OBJ_0(nbuf_get_info_obj, nbuf_get_info); + STATIC const mp_map_elem_t mp_module_usocket_globals_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_usocket) }, // objects @@ -520,6 +532,8 @@ STATIC const mp_map_elem_t mp_module_usocket_globals_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR_SOL_SOCKET), MP_OBJ_NEW_SMALL_INT(1) }, { MP_OBJ_NEW_QSTR(MP_QSTR_SO_REUSEADDR), MP_OBJ_NEW_SMALL_INT(2) }, + + { MP_OBJ_NEW_QSTR(MP_QSTR_nbuf_get_info), (mp_obj_t)&nbuf_get_info_obj }, }; STATIC MP_DEFINE_CONST_DICT(mp_module_usocket_globals, mp_module_usocket_globals_table); |