From 450b12ad2a8991bac7d87efd984a159ede13b85d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Rymanowski?= Date: Fri, 31 May 2019 14:11:15 +0200 Subject: [PATCH] nimble/ble_hs_conn: Add foreach helper function This is going to be used in following patch --- nimble/host/src/ble_hs_conn.c | 14 ++++++++++++++ nimble/host/src/ble_hs_conn_priv.h | 3 +++ 2 files changed, 17 insertions(+) diff --git a/nimble/host/src/ble_hs_conn.c b/nimble/host/src/ble_hs_conn.c index e1e5e7e45..dabad009c 100644 --- a/nimble/host/src/ble_hs_conn.c +++ b/nimble/host/src/ble_hs_conn.c @@ -199,6 +199,20 @@ ble_hs_conn_delete_chan(struct ble_hs_conn *conn, struct ble_l2cap_chan *chan) ble_l2cap_chan_free(chan); } +void +ble_hs_conn_foreach(ble_hs_conn_foreach_fn *cb, void *arg) +{ + struct ble_hs_conn *conn; + + BLE_HS_DBG_ASSERT(ble_hs_locked_by_cur_task()); + + SLIST_FOREACH(conn, &ble_hs_conns, bhc_next) { + if (cb(conn, arg) != 0) { + return; + } + } +} + void ble_hs_conn_free(struct ble_hs_conn *conn) { diff --git a/nimble/host/src/ble_hs_conn_priv.h b/nimble/host/src/ble_hs_conn_priv.h index c9c065520..f235dc4c3 100644 --- a/nimble/host/src/ble_hs_conn_priv.h +++ b/nimble/host/src/ble_hs_conn_priv.h @@ -119,6 +119,9 @@ void ble_hs_conn_addrs(const struct ble_hs_conn *conn, struct ble_hs_conn_addrs *addrs); int32_t ble_hs_conn_timer(void); +typedef int ble_hs_conn_foreach_fn(struct ble_hs_conn *conn, void *arg); +void ble_hs_conn_foreach(ble_hs_conn_foreach_fn *cb, void *arg); + int ble_hs_conn_init(void); #ifdef __cplusplus