From 1709788a73508ef3a86460786733dca86cbd2acc Mon Sep 17 00:00:00 2001 From: Chris Manton Date: Wed, 10 Feb 2021 22:24:00 -0800 Subject: [PATCH] Directly query controller for acceptlist size Towards meaningful code Bug: 173985410 Tag: #refactor Test: gd/cert/run Change-Id: Id6852ba6ef916aa68731c4270259430e98b432d9 --- bta/gatt/bta_gattc_act.cc | 8 +++++++- bta/gatt/bta_gattc_utils.cc | 23 ++++++++++++++++------- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/bta/gatt/bta_gattc_act.cc b/bta/gatt/bta_gattc_act.cc index d872636d6..2984e3017 100644 --- a/bta/gatt/bta_gattc_act.cc +++ b/bta/gatt/bta_gattc_act.cc @@ -33,6 +33,7 @@ #include "bta_gattc_int.h" #include "bta_sys.h" #include "btif/include/btif_debug_conn.h" +#include "device/include/controller.h" #include "l2c_api.h" #include "osi/include/log.h" #include "osi/include/osi.h" @@ -206,8 +207,13 @@ void bta_gattc_deregister(tBTA_GATTC_RCB* p_clreg) { return; } + uint8_t accept_list_size = 0; + if (controller_get_interface()->supports_ble()) { + accept_list_size = controller_get_interface()->get_ble_acceptlist_size(); + } + /* remove bg connection associated with this rcb */ - for (uint8_t i = 0; i < BTM_GetAcceptlistSize(); i++) { + for (uint8_t i = 0; i < accept_list_size; i++) { if (!bta_gattc_cb.bg_track[i].in_use) continue; if (bta_gattc_cb.bg_track[i].cif_mask & (1 << (p_clreg->client_if - 1))) { diff --git a/bta/gatt/bta_gattc_utils.cc b/bta/gatt/bta_gattc_utils.cc index b5b2b55ab..f9b341cdf 100644 --- a/bta/gatt/bta_gattc_utils.cc +++ b/bta/gatt/bta_gattc_utils.cc @@ -31,11 +31,20 @@ #include "bt_target.h" #include "bta_gattc_int.h" #include "bta_sys.h" +#include "device/include/controller.h" #include "gd/common/init_flags.h" #include "l2c_api.h" #include "types/bt_transport.h" #include "utl.h" +static uint8_t ble_acceptlist_size() { + const controller_t* controller = controller_get_interface(); + if (!controller->supports_ble()) { + return 0; + } + return controller->get_ble_acceptlist_size(); +} + /******************************************************************************* * * Function bta_gattc_cl_get_regcb @@ -225,7 +234,7 @@ tBTA_GATTC_SERV* bta_gattc_find_srcb(const RawAddress& bda) { tBTA_GATTC_SERV* p_srcb = &bta_gattc_cb.known_server[0]; uint8_t i; - for (i = 0; i < BTM_GetAcceptlistSize(); i++, p_srcb++) { + for (i = 0; i < ble_acceptlist_size(); i++, p_srcb++) { if (p_srcb->in_use && p_srcb->server_bda == bda) return p_srcb; } return NULL; @@ -244,7 +253,7 @@ tBTA_GATTC_SERV* bta_gattc_find_srvr_cache(const RawAddress& bda) { tBTA_GATTC_SERV* p_srcb = &bta_gattc_cb.known_server[0]; uint8_t i; - for (i = 0; i < BTM_GetAcceptlistSize(); i++, p_srcb++) { + for (i = 0; i < ble_acceptlist_size(); i++, p_srcb++) { if (p_srcb->server_bda == bda) return p_srcb; } return NULL; @@ -280,7 +289,7 @@ tBTA_GATTC_SERV* bta_gattc_srcb_alloc(const RawAddress& bda) { bool found = false; uint8_t i; - for (i = 0; i < BTM_GetAcceptlistSize(); i++, p_tcb++) { + for (i = 0; i < ble_acceptlist_size(); i++, p_tcb++) { if (!p_tcb->in_use) { found = true; break; @@ -410,7 +419,7 @@ bool bta_gattc_mark_bg_conn(tGATT_IF client_if, uint8_t i = 0; tBTA_GATTC_CIF_MASK* p_cif_mask; - for (i = 0; i < BTM_GetAcceptlistSize(); i++, p_bg_tck++) { + for (i = 0; i < ble_acceptlist_size(); i++, p_bg_tck++) { if (p_bg_tck->in_use && ((p_bg_tck->remote_bda == remote_bda_ptr) || (p_bg_tck->remote_bda.IsEmpty()))) { p_cif_mask = &p_bg_tck->cif_mask; @@ -437,8 +446,8 @@ bool bta_gattc_mark_bg_conn(tGATT_IF client_if, return false; } else /* adding a new device mask */ { - for (i = 0, p_bg_tck = &bta_gattc_cb.bg_track[0]; - i < BTM_GetAcceptlistSize(); i++, p_bg_tck++) { + for (i = 0, p_bg_tck = &bta_gattc_cb.bg_track[0]; i < ble_acceptlist_size(); + i++, p_bg_tck++) { if (!p_bg_tck->in_use) { p_bg_tck->in_use = true; p_bg_tck->remote_bda = remote_bda_ptr; @@ -469,7 +478,7 @@ bool bta_gattc_check_bg_conn(tGATT_IF client_if, const RawAddress& remote_bda, uint8_t i = 0; bool is_bg_conn = false; - for (i = 0; i < BTM_GetAcceptlistSize() && !is_bg_conn; i++, p_bg_tck++) { + for (i = 0; i < ble_acceptlist_size() && !is_bg_conn; i++, p_bg_tck++) { if (p_bg_tck->in_use && (p_bg_tck->remote_bda == remote_bda || p_bg_tck->remote_bda.IsEmpty())) { if (((p_bg_tck->cif_mask & (1 << (client_if - 1))) != 0) && -- 2.11.0