Bluetooth: Host: Callback registering functions to return status

Returning a status code will allow the application developer
to detect logic issues.

We consider this as not breaking the API.
If `-Werror -Wunused-result` is enabled, the application developer needs
to validate the return code.

Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
This commit is contained in:
Rubin Gerritsen 2024-06-12 13:02:13 +02:00 committed by Anas Nashif
parent 3eb975deb2
commit 5098bf3539
6 changed files with 44 additions and 16 deletions

View File

@ -1822,8 +1822,11 @@ int bt_le_per_adv_sync_delete(struct bt_le_per_adv_sync *per_adv_sync);
* such as synced, terminated and when data is received.
*
* @param cb Callback struct. Must point to memory that remains valid.
*
* @retval 0 Success.
* @retval -EEXIST if @p cb was already registered.
*/
void bt_le_per_adv_sync_cb_register(struct bt_le_per_adv_sync_cb *cb);
int bt_le_per_adv_sync_cb_register(struct bt_le_per_adv_sync_cb *cb);
/**
* @brief Enables receiving periodic advertising reports for a sync.
@ -2309,8 +2312,11 @@ int bt_le_scan_stop(void);
* API was used to start the scanner.
*
* @param cb Callback struct. Must point to memory that remains valid.
*
* @retval 0 Success.
* @retval -EEXIST if @p cb was already registered.
*/
void bt_le_scan_cb_register(struct bt_le_scan_cb *cb);
int bt_le_scan_cb_register(struct bt_le_scan_cb *cb);
/**
* @brief Unregister scanner packet callbacks.

View File

@ -1256,8 +1256,11 @@ struct bt_conn_cb {
* Register callbacks to monitor the state of connections.
*
* @param cb Callback struct. Must point to memory that remains valid.
*
* @retval 0 Success.
* @retval -EEXIST if @p cb was already registered.
*/
void bt_conn_cb_register(struct bt_conn_cb *cb);
int bt_conn_cb_register(struct bt_conn_cb *cb);
/**
* @brief Unregister connection callbacks.

View File

@ -53,8 +53,11 @@ struct bt_test_cb {
/** Register callbacks for Bluetooth testing purposes
*
* @param cb bt_test_cb callback structure
*
* @retval 0 Success.
* @retval -EEXIST if @p cb was already registered.
*/
void bt_test_cb_register(struct bt_test_cb *cb);
int bt_test_cb_register(struct bt_test_cb *cb);
/** Unregister callbacks for Bluetooth testing purposes
*

View File

@ -2508,11 +2508,15 @@ bt_security_t bt_conn_get_security(const struct bt_conn *conn)
}
#endif /* CONFIG_BT_SMP */
void bt_conn_cb_register(struct bt_conn_cb *cb)
int bt_conn_cb_register(struct bt_conn_cb *cb)
{
if (!sys_slist_find(&conn_cbs, &cb->_node, NULL)) {
sys_slist_append(&conn_cbs, &cb->_node);
if (sys_slist_find(&conn_cbs, &cb->_node, NULL)) {
return -EEXIST;
}
sys_slist_append(&conn_cbs, &cb->_node);
return 0;
}
int bt_conn_cb_unregister(struct bt_conn_cb *cb)

View File

@ -1586,11 +1586,15 @@ int bt_le_scan_stop(void)
return bt_le_scan_update(false);
}
void bt_le_scan_cb_register(struct bt_le_scan_cb *cb)
int bt_le_scan_cb_register(struct bt_le_scan_cb *cb)
{
if (!sys_slist_find(&scan_cbs, &cb->node, NULL)) {
sys_slist_append(&scan_cbs, &cb->node);
if (sys_slist_find(&scan_cbs, &cb->node, NULL)) {
return -EEXIST;
}
sys_slist_append(&scan_cbs, &cb->node);
return 0;
}
void bt_le_scan_cb_unregister(struct bt_le_scan_cb *cb)
@ -1833,11 +1837,15 @@ int bt_le_per_adv_sync_delete(struct bt_le_per_adv_sync *per_adv_sync)
return err;
}
void bt_le_per_adv_sync_cb_register(struct bt_le_per_adv_sync_cb *cb)
int bt_le_per_adv_sync_cb_register(struct bt_le_per_adv_sync_cb *cb)
{
if (!sys_slist_find(&pa_sync_cbs, &cb->node, NULL)) {
sys_slist_append(&pa_sync_cbs, &cb->node);
if (sys_slist_find(&pa_sync_cbs, &cb->node, NULL)) {
return -EEXIST;
}
sys_slist_append(&pa_sync_cbs, &cb->node);
return 0;
}
static int bt_le_set_per_adv_recv_enable(

View File

@ -20,11 +20,15 @@
static sys_slist_t cb_slist;
void bt_test_cb_register(struct bt_test_cb *cb)
int bt_test_cb_register(struct bt_test_cb *cb)
{
if (!sys_slist_find(&cb_slist, &cb->node, NULL)) {
sys_slist_append(&cb_slist, &cb->node);
if (sys_slist_find(&cb_slist, &cb->node, NULL)) {
return -EEXIST;
}
sys_slist_append(&cb_slist, &cb->node);
return 0;
}
void bt_test_cb_unregister(struct bt_test_cb *cb)