From 26c76241e3110e5bb27474bf83aee5498c31195d Mon Sep 17 00:00:00 2001 From: Chris Manton Date: Sun, 23 Aug 2020 13:47:11 -0700 Subject: [PATCH] Add Api stack/acl/btm_acl::acl_disconnect Towards proper interfaces Bug: 163134718 Tag: #refactor Test: compile & verify basic functions working Change-Id: I69ee9674a65a1b9b67235b0ca8eea3dc3bcc21a0 --- stack/acl/acl.h | 1 + stack/acl/btm_acl.cc | 15 +++++++++++++-- stack/include/acl_api.h | 3 +++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/stack/acl/acl.h b/stack/acl/acl.h index 974f82d69..a667012ef 100644 --- a/stack/acl/acl.h +++ b/stack/acl/acl.h @@ -52,6 +52,7 @@ typedef struct { uint16_t pkt_types_mask; uint8_t active_remote_addr_type; uint8_t conn_addr_type; + uint8_t disconnect_reason; uint8_t encrypt_state; uint8_t link_role; uint8_t lmp_version; diff --git a/stack/acl/btm_acl.cc b/stack/acl/btm_acl.cc index 882bac3cc..27994a724 100644 --- a/stack/acl/btm_acl.cc +++ b/stack/acl/btm_acl.cc @@ -1327,8 +1327,8 @@ uint16_t BTM_GetNumAclLinks(void) { ******************************************************************************/ uint16_t btm_get_acl_disc_reason_code(void) { uint8_t res = btm_cb.acl_cb_.acl_disc_reason; - BTM_TRACE_DEBUG("btm_get_acl_disc_reason_code"); - return (res); + LOG_WARN("%s This API should require an address for per ACL basis", __func__); + return res; } /******************************************************************************* @@ -2851,6 +2851,17 @@ void acl_reject_connection_request(const RawAddress& bd_addr, uint8_t reason) { btsnd_hcic_reject_conn(bd_addr, reason); } +void acl_disconnect(const RawAddress& bd_addr, tBT_TRANSPORT transport, + uint8_t reason) { + tACL_CONN* p_acl = internal_.btm_bda_to_acl(bd_addr, transport); + if (p_acl == nullptr) { + LOG_WARN("%s Acl disconnect request for unknown device", __func__); + return; + } + p_acl->disconnect_reason = reason; + btsnd_hcic_disconnect(p_acl->hci_handle, reason); +} + void acl_send_data_packet(BT_HDR* p_buf, uint16_t flags) { bte_main_hci_send(p_buf, flags); } diff --git a/stack/include/acl_api.h b/stack/include/acl_api.h index 18320d94e..fd6e5f589 100644 --- a/stack/include/acl_api.h +++ b/stack/include/acl_api.h @@ -345,3 +345,6 @@ bool BTM_ReadPowerMode(const RawAddress& remote_bda, tBTM_PM_MODE* p_mode); void btm_acl_created(const RawAddress& bda, uint16_t hci_handle, uint8_t link_role, tBT_TRANSPORT transport); + +void acl_disconnect(const RawAddress& bd_addr, tBT_TRANSPORT transport, + uint8_t reason); -- 2.11.0