aboutsummaryrefslogtreecommitdiff
path: root/cc3200/misc
diff options
context:
space:
mode:
authorDaniel Campora2015-09-07 09:23:46 +0200
committerDaniel Campora2015-09-10 07:59:47 +0200
commitf91f212d9fef66e515935a52712613550a04ca65 (patch)
tree9f76d61531c575272928b2bfcb9b209add10a5ef /cc3200/misc
parent36821d095a2657ab370a8f413f471f4c9ad9a8b5 (diff)
cc3200: New UART API plus related test.
Diffstat (limited to 'cc3200/misc')
-rw-r--r--cc3200/misc/mpcallback.c8
-rw-r--r--cc3200/misc/mpcallback.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/cc3200/misc/mpcallback.c b/cc3200/misc/mpcallback.c
index 2dfd5e006..8e7a9f740 100644
--- a/cc3200/misc/mpcallback.c
+++ b/cc3200/misc/mpcallback.c
@@ -91,6 +91,14 @@ void mpcallback_wake_all (void) {
}
}
+void mpcallback_disable_all (void) {
+ // re-enable all active callback objects one by one
+ for (mp_uint_t i = 0; i < MP_STATE_PORT(mpcallback_obj_list).len; i++) {
+ mpcallback_obj_t *callback_obj = ((mpcallback_obj_t *)(MP_STATE_PORT(mpcallback_obj_list).items[i]));
+ callback_obj->methods->disable(callback_obj->parent);
+ }
+}
+
void mpcallback_remove (const mp_obj_t parent) {
mpcallback_obj_t *callback_obj;
if ((callback_obj = mpcallback_find(parent))) {
diff --git a/cc3200/misc/mpcallback.h b/cc3200/misc/mpcallback.h
index 6492a2e99..cc15a3ac6 100644
--- a/cc3200/misc/mpcallback.h
+++ b/cc3200/misc/mpcallback.h
@@ -65,6 +65,7 @@ void mpcallback_init0 (void);
mp_obj_t mpcallback_new (mp_obj_t parent, mp_obj_t handler, const mp_cb_methods_t *methods, bool enable);
mpcallback_obj_t *mpcallback_find (mp_obj_t parent);
void mpcallback_wake_all (void);
+void mpcallback_disable_all (void);
void mpcallback_remove (const mp_obj_t parent);
void mpcallback_handler (mp_obj_t self_in);
uint mpcallback_translate_priority (uint priority);