Bluetooth: L2CAP: add br l2cap unregister interface

It needs to do l2cap unregister operation from app

Signed-off-by: Cheng Kai <chengkai@xiaomi.com>
This commit is contained in:
Cheng Kai 2025-07-03 14:26:00 +08:00 committed by Chris Friedt
parent 3adae8bd9a
commit cf61573ce9
2 changed files with 33 additions and 0 deletions

View File

@ -769,6 +769,16 @@ int bt_l2cap_server_register(struct bt_l2cap_server *server);
*/
int bt_l2cap_br_server_register(struct bt_l2cap_server *server);
/** @brief Unregister L2CAP server on BR/EDR oriented connection.
*
* Unregister L2CAP server for a PSM.
*
* @param server Server structure.
*
* @return 0 in case of success or negative value in case of error.
*/
int bt_l2cap_br_server_unregister(struct bt_l2cap_server *server);
/** @brief Connect Enhanced Credit Based L2CAP channels
*
* Connect up to 5 L2CAP channels by PSM, once the connection is completed

View File

@ -3711,6 +3711,14 @@ int bt_l2cap_br_server_register(struct bt_l2cap_server *server)
{
int err;
CHECKIF(server == NULL) {
return -EINVAL;
}
if (sys_slist_find(&br_servers, &server->node, NULL)) {
return -EEXIST;
}
if (!server->accept) {
return -EINVAL;
}
@ -3747,6 +3755,21 @@ int bt_l2cap_br_server_register(struct bt_l2cap_server *server)
return 0;
}
int bt_l2cap_br_server_unregister(struct bt_l2cap_server *server)
{
CHECKIF(server == NULL) {
return -EINVAL;
}
if (!sys_slist_find_and_remove(&br_servers, &server->node)) {
return -ENOENT;
}
LOG_DBG("PSM 0x%04x unregistered", server->psm);
return 0;
}
static void l2cap_br_send_reject(struct bt_conn *conn, uint8_t ident, uint16_t reason, void *data,
uint8_t data_len)
{