diff --git a/nimble/controller/src/ble_ll.c b/nimble/controller/src/ble_ll.c index 87317eccd..d1d2a2c7d 100644 --- a/nimble/controller/src/ble_ll.c +++ b/nimble/controller/src/ble_ll.c @@ -1088,6 +1088,8 @@ ble_ll_event_comp_pkts(struct ble_npl_event *ev) void ble_ll_task(void *arg) { + struct ble_npl_event *ev; + /* Init ble phy */ ble_phy_init(); @@ -1100,7 +1102,9 @@ ble_ll_task(void *arg) ble_ll_rand_start(); while (1) { - ble_npl_eventq_run(&g_ble_ll_data.ll_evq); + ev = ble_npl_eventq_get(&g_ble_ll_data.ll_evq, BLE_NPL_TIME_FOREVER); + assert(ev); + ble_npl_event_run(ev); } } diff --git a/nimble/include/nimble/nimble_npl.h b/nimble/include/nimble/nimble_npl.h index fd1867ac0..9757e1b69 100644 --- a/nimble/include/nimble/nimble_npl.h +++ b/nimble/include/nimble/nimble_npl.h @@ -76,8 +76,6 @@ void ble_npl_eventq_put(struct ble_npl_eventq *evq, struct ble_npl_event *ev); void ble_npl_eventq_remove(struct ble_npl_eventq *evq, struct ble_npl_event *ev); -void ble_npl_eventq_run(struct ble_npl_eventq *evq); - void ble_npl_event_init(struct ble_npl_event *ev, ble_npl_event_fn *fn, void *arg); @@ -89,6 +87,8 @@ void ble_npl_event_set_arg(struct ble_npl_event *ev, void *arg); bool ble_npl_eventq_is_empty(struct ble_npl_eventq *evq); +void ble_npl_event_run(struct ble_npl_event *ev); + /* * Mutexes */ diff --git a/porting/npl/dummy/src/npl_os_dummy.c b/porting/npl/dummy/src/npl_os_dummy.c index 48a28741c..90d37da5b 100644 --- a/porting/npl/dummy/src/npl_os_dummy.c +++ b/porting/npl/dummy/src/npl_os_dummy.c @@ -62,7 +62,7 @@ ble_npl_eventq_remove(struct ble_npl_eventq *evq, } void -ble_npl_eventq_run(struct ble_npl_eventq *evq) +ble_npl_event_run(struct ble_npl_event *ev) { } diff --git a/porting/npl/freertos/include/nimble/nimble_npl_os.h b/porting/npl/freertos/include/nimble/nimble_npl_os.h index 9c0b5849b..ca1c2e5cb 100644 --- a/porting/npl/freertos/include/nimble/nimble_npl_os.h +++ b/porting/npl/freertos/include/nimble/nimble_npl_os.h @@ -118,13 +118,8 @@ ble_npl_eventq_remove(struct ble_npl_eventq *evq, struct ble_npl_event *ev) } static inline void -ble_npl_eventq_run(struct ble_npl_eventq *evq) +ble_npl_event_run(struct ble_npl_event *ev) { - struct ble_npl_event *ev; - - ev = ble_npl_eventq_get(evq, BLE_NPL_TIME_FOREVER); - assert(ev->fn != NULL); - ev->fn(ev); } diff --git a/porting/npl/mynewt/include/nimble/nimble_npl_os.h b/porting/npl/mynewt/include/nimble/nimble_npl_os.h index de7df5cd4..e1c670010 100644 --- a/porting/npl/mynewt/include/nimble/nimble_npl_os.h +++ b/porting/npl/mynewt/include/nimble/nimble_npl_os.h @@ -110,9 +110,9 @@ ble_npl_eventq_remove(struct ble_npl_eventq *evq, } static inline void -ble_npl_eventq_run(struct ble_npl_eventq *evq) +ble_npl_event_run(struct ble_npl_event *ev) { - os_eventq_run(&evq->evq); + ev->ev.ev_cb(&ev->ev); } static inline bool