OSDN Git Service

Directly query controller for acceptlist size
authorChris Manton <cmanton@google.com>
Thu, 11 Feb 2021 06:24:00 +0000 (22:24 -0800)
committerChris Manton <cmanton@google.com>
Tue, 16 Feb 2021 16:27:18 +0000 (08:27 -0800)
Towards meaningful code

Bug: 173985410
Tag: #refactor
Test: gd/cert/run

Change-Id: Id6852ba6ef916aa68731c4270259430e98b432d9

bta/gatt/bta_gattc_act.cc
bta/gatt/bta_gattc_utils.cc

index d872636..2984e30 100644 (file)
@@ -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))) {
index b5b2b55..f9b341c 100644 (file)
 #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) &&