porting: Remove redundant os_eventq_get_tmo API

Let's just add timeout parameter to os_eventq_get instead and have
single API to get event from queue. The handing of timeout can be
optimied by compiler if static inline is used to implement this.
This commit is contained in:
Andrzej Kaczmarek
2018-05-23 12:24:07 +02:00
parent 084345c18c
commit 4c215e3cbd
7 changed files with 21 additions and 34 deletions
+3 -3
View File
@@ -154,7 +154,7 @@ mesh_adv_thread(void *args)
while (1) {
#if (MYNEWT_VAL(BLE_MESH_PROXY))
ev = ble_npl_eventq_get_tmo(&adv_queue, 0);
ev = ble_npl_eventq_get(&adv_queue, 0);
while (!ev) {
timeout = bt_mesh_proxy_adv_start();
BT_DBG("Proxy Advertising up to %d ms", timeout);
@@ -164,11 +164,11 @@ mesh_adv_thread(void *args)
timeout = ble_npl_time_ms_to_ticks32(timeout);
}
ev = ble_npl_eventq_get_tmo(&adv_queue, timeout);
ev = ble_npl_eventq_get(&adv_queue, timeout);
bt_mesh_proxy_adv_stop();
}
#else
ev = ble_npl_eventq_get(&adv_queue);
ev = ble_npl_eventq_get(&adv_queue, BLE_NPL_TIME_FOREVER);
#endif
if (!ev || !ble_npl_event_get_arg(ev)) {
+1 -1
View File
@@ -309,7 +309,7 @@ k_fifo_is_empty(struct ble_npl_eventq *q)
void * net_buf_get(struct ble_npl_eventq *fifo, s32_t t)
{
struct ble_npl_event *ev = ble_npl_eventq_get_tmo(fifo, 0);
struct ble_npl_event *ev = ble_npl_eventq_get(fifo, 0);
if (ev) {
return ble_npl_event_get_arg(ev);
+2 -4
View File
@@ -68,10 +68,8 @@ struct ble_npl_eventq *ble_npl_eventq_dflt_get(void);
void ble_npl_eventq_init(struct ble_npl_eventq *evq);
struct ble_npl_event *ble_npl_eventq_get_tmo(struct ble_npl_eventq *evq,
ble_npl_time_t tmo);
struct ble_npl_event *ble_npl_eventq_get(struct ble_npl_eventq *evq);
struct ble_npl_event *ble_npl_eventq_get(struct ble_npl_eventq *evq,
ble_npl_time_t tmo);
void ble_npl_eventq_put(struct ble_npl_eventq *evq, struct ble_npl_event *ev);
@@ -100,15 +100,9 @@ ble_npl_eventq_init(struct ble_npl_eventq *evq)
}
static inline struct ble_npl_event *
ble_npl_eventq_get_tmo(struct ble_npl_eventq *evq, ble_npl_time_t tmo)
ble_npl_eventq_get(struct ble_npl_eventq *evq, ble_npl_time_t tmo)
{
return npl_freertos_eventq_get_tmo(evq, tmo);
}
static inline struct ble_npl_event *
ble_npl_eventq_get(struct ble_npl_eventq *evq)
{
return npl_freertos_eventq_get(evq);
return npl_freertos_eventq_get(evq, tmo);
}
static inline void
@@ -128,7 +122,7 @@ ble_npl_eventq_run(struct ble_npl_eventq *evq)
{
struct ble_npl_event *ev;
ev = ble_npl_eventq_get(evq);
ev = ble_npl_eventq_get(evq, BLE_NPL_TIME_FOREVER);
assert(ev->fn != NULL);
ev->fn(ev);
@@ -26,9 +26,8 @@ extern "C" {
struct ble_npl_eventq *npl_freertos_eventq_dflt_get(void);
struct ble_npl_event *npl_freertos_eventq_get_tmo(struct ble_npl_eventq *evq, ble_npl_time_t tmo);
struct ble_npl_event *npl_freertos_eventq_get(struct ble_npl_eventq *evq);
struct ble_npl_event *npl_freertos_eventq_get(struct ble_npl_eventq *evq,
ble_npl_time_t tmo);
void npl_freertos_eventq_put(struct ble_npl_eventq *evq,
struct ble_npl_event *ev);
+1 -7
View File
@@ -42,7 +42,7 @@ npl_freertos_eventq_dflt_get(void)
}
struct ble_npl_event *
npl_freertos_eventq_get_tmo(struct ble_npl_eventq *evq, ble_npl_time_t tmo)
npl_freertos_eventq_get(struct ble_npl_eventq *evq, ble_npl_time_t tmo)
{
struct ble_npl_event *ev = NULL;
BaseType_t ret;
@@ -57,12 +57,6 @@ npl_freertos_eventq_get_tmo(struct ble_npl_eventq *evq, ble_npl_time_t tmo)
return ev;
}
struct ble_npl_event *
npl_freertos_eventq_get(struct ble_npl_eventq *evq)
{
return npl_freertos_eventq_get_tmo(evq, portMAX_DELAY);
}
void
npl_freertos_eventq_put(struct ble_npl_eventq *evq, struct ble_npl_event *ev)
{
@@ -83,15 +83,17 @@ ble_npl_eventq_init(struct ble_npl_eventq *evq)
}
static inline struct ble_npl_event *
ble_npl_eventq_get_tmo(struct ble_npl_eventq *evq, ble_npl_time_t tmo)
ble_npl_eventq_get(struct ble_npl_eventq *evq, ble_npl_time_t tmo)
{
return (struct ble_npl_event *)os_eventq_poll((struct os_eventq **)&evq, 1, tmo);
}
struct os_event *ev;
static inline struct ble_npl_event *
ble_npl_eventq_get(struct ble_npl_eventq *evq)
{
return (struct ble_npl_event *)os_eventq_get(&evq->evq);
if (tmo == BLE_NPL_TIME_FOREVER) {
ev = os_eventq_get(&evq->evq);
} else {
ev = os_eventq_poll((struct os_eventq **)&evq, 1, tmo);
}
return (struct ble_npl_event *)ev;
}
static inline void