OSDN Git Service

Use API from stack/btu/btu_hcif::l2c_link_role_changed
authorChris Manton <cmanton@google.com>
Mon, 17 Aug 2020 23:45:45 +0000 (16:45 -0700)
committerChris Manton <cmanton@google.com>
Wed, 26 Aug 2020 18:13:38 +0000 (11:13 -0700)
From: stack/btu/btu_hcif
Into: stack/acl/btm_acl

Towards proper interfaces

Bug: 163134718
Tag: #refactor
Test: compile & verify basic functions working
Change-Id: I7d09393f43a24f7ab3f7197207f52e63af70103c

stack/acl/btm_acl.cc
stack/btu/btu_hcif.cc

index 0444f7c..dcb83e4 100644 (file)
@@ -64,6 +64,8 @@ struct StackAclBtmAcl {
   void btm_establish_continue(tACL_CONN* p_acl_cb);
   void btm_read_remote_features(uint16_t handle);
   void btm_set_default_link_policy(uint16_t settings);
+  void btm_acl_role_changed(uint8_t hci_status, const RawAddress& bd_addr,
+                            uint8_t new_role);
 };
 
 namespace {
@@ -1482,8 +1484,9 @@ void btm_blacklist_role_change_device(const RawAddress& bd_addr,
  * Returns          void
  *
  ******************************************************************************/
-void btm_acl_role_changed(uint8_t hci_status, const RawAddress& bd_addr,
-                          uint8_t new_role) {
+void StackAclBtmAcl::btm_acl_role_changed(uint8_t hci_status,
+                                          const RawAddress& bd_addr,
+                                          uint8_t new_role) {
   tACL_CONN* p_acl = internal_.btm_bda_to_acl(bd_addr, BT_TRANSPORT_BR_EDR);
   if (p_acl == nullptr) {
     BTM_TRACE_WARNING("%s: Unsolicited role change for unknown ACL", __func__);
@@ -1551,6 +1554,17 @@ void btm_acl_role_changed(uint8_t hci_status, const RawAddress& bd_addr,
   }
 }
 
+void btm_acl_role_changed(uint8_t hci_status, const RawAddress& bd_addr,
+                          uint8_t new_role) {
+  if (hci_status == HCI_SUCCESS) {
+    l2c_link_role_changed(&bd_addr, new_role, hci_status);
+  } else {
+    l2c_link_role_changed(nullptr, HCI_ROLE_UNKNOWN,
+                          HCI_ERR_COMMAND_DISALLOWED);
+  }
+  internal_.btm_acl_role_changed(hci_status, bd_addr, new_role);
+}
+
 /*******************************************************************************
  *
  * Function         btm_set_packet_types
index 969dc6c..df95b70 100644 (file)
@@ -1407,8 +1407,6 @@ static void btu_hcif_hdl_command_status(uint16_t opcode, uint8_t status,
         // Tell BTM that the command failed
         STREAM_TO_BDADDR(bd_addr, p_cmd);
         btm_acl_role_changed(status, bd_addr, HCI_ROLE_UNKNOWN);
-        l2c_link_role_changed(nullptr, HCI_ROLE_UNKNOWN,
-                              HCI_ERR_COMMAND_DISALLOWED);
       }
       break;
     case HCI_CREATE_CONNECTION:
@@ -1565,7 +1563,6 @@ static void btu_hcif_role_change_evt(uint8_t* p) {
   STREAM_TO_UINT8(role, p);
 
   btm_blacklist_role_change_device(bda, status);
-  l2c_link_role_changed(&bda, role, status);
   btm_acl_role_changed(status, bda, role);
 }