OSDN Git Service

Add stack/btm/btm_dev header
authorChris Manton <cmanton@google.com>
Sat, 15 Aug 2020 06:13:59 +0000 (23:13 -0700)
committerChris Manton <cmanton@google.com>
Sat, 15 Aug 2020 06:15:27 +0000 (23:15 -0700)
From:stack/btm/btm_int

Provides device information

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

18 files changed:
btif/src/btif_dm.cc
stack/acl/btm_acl.cc
stack/btm/btm_ble.cc
stack/btm/btm_ble_addr.cc
stack/btm/btm_ble_bgconn.cc
stack/btm/btm_ble_gap.cc
stack/btm/btm_ble_privacy.cc
stack/btm/btm_dev.cc
stack/btm/btm_dev.h [new file with mode: 0644]
stack/btm/btm_int.h
stack/btm/btm_sec.cc
stack/gatt/gatt_main.cc
stack/hid/hidh_api.cc
stack/l2cap/l2c_ble.cc
stack/l2cap/l2c_link.cc
stack/smp/smp_act.cc
stack/smp/smp_api.cc
stack/smp/smp_keys.cc

index 24573b1..754b75b 100644 (file)
@@ -72,6 +72,7 @@
 #include "osi/include/log.h"
 #include "osi/include/osi.h"
 #include "osi/include/properties.h"
+#include "stack/btm/btm_dev.h"
 #include "stack/btm/btm_int.h"
 #include "stack_config.h"
 
index 896e056..632d076 100644 (file)
@@ -42,6 +42,7 @@
 #include "main/shim/shim.h"
 #include "osi/include/log.h"
 #include "stack/acl/acl.h"
+#include "stack/btm/btm_dev.h"
 #include "stack/btm/btm_int_types.h"
 #include "stack/include/acl_api.h"
 #include "stack/include/btm_api.h"
index 966d014..b9a6e8f 100644 (file)
@@ -44,6 +44,7 @@
 #include "main/shim/shim.h"
 #include "osi/include/log.h"
 #include "osi/include/osi.h"
+#include "stack/btm/btm_dev.h"
 #include "stack/crypto_toolbox/crypto_toolbox.h"
 #include "stack/include/acl_api.h"
 #include "stack/include/l2cap_security_interface.h"
index 518761c..3eb12c0 100644 (file)
@@ -33,6 +33,7 @@
 #include "hcimsgs.h"
 
 #include "btm_ble_int.h"
+#include "stack/btm/btm_dev.h"
 #include "stack/crypto_toolbox/crypto_toolbox.h"
 #include "stack/include/acl_api.h"
 
index 57c7bcc..886eeb2 100644 (file)
@@ -30,6 +30,7 @@
 #include "btu.h"
 #include "device/include/controller.h"
 #include "hcimsgs.h"
+#include "stack/btm/btm_dev.h"
 #include "stack/include/acl_api.h"
 
 extern void btm_send_hci_create_connection(
index 4c1a842..e6daef9 100644 (file)
@@ -52,6 +52,7 @@
 
 #include "main/shim/btm_api.h"
 #include "main/shim/shim.h"
+#include "stack/btm/btm_dev.h"
 #include "stack/include/acl_api.h"
 
 #define BTM_EXT_BLE_RMT_NAME_TIMEOUT_MS (30 * 1000)
index 636b435..152036d 100644 (file)
@@ -31,6 +31,7 @@
 #include "btu.h"
 #include "device/include/controller.h"
 #include "hcimsgs.h"
+#include "stack/btm/btm_dev.h"
 #include "vendor_hcidefs.h"
 
 /* RPA offload VSC specifics */
index 6e75af9..855ee1f 100644 (file)
@@ -38,6 +38,7 @@
 #include "l2c_api.h"
 #include "main/shim/btm_api.h"
 #include "main/shim/shim.h"
+#include "stack/btm/btm_dev.h"
 #include "stack/include/acl_api.h"
 
 /*******************************************************************************
diff --git a/stack/btm/btm_dev.h b/stack/btm/btm_dev.h
new file mode 100644 (file)
index 0000000..b6c2a56
--- /dev/null
@@ -0,0 +1,207 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "bt_common.h"
+#include "bt_types.h"
+#include "btm_api.h"
+#include "btm_int.h"
+#include "btu.h"
+#include "device/include/controller.h"
+#include "hcidefs.h"
+#include "hcimsgs.h"
+#include "l2c_api.h"
+#include "main/shim/btm_api.h"
+#include "main/shim/shim.h"
+#include "stack/include/acl_api.h"
+
+/*******************************************************************************
+ *
+ * Function         BTM_SecAddDevice
+ *
+ * Description      Add/modify device.  This function will be normally called
+ *                  during host startup to restore all required information
+ *                  stored in the NVRAM.
+ *
+ * Parameters:      bd_addr          - BD address of the peer
+ *                  dev_class        - Device Class
+ *                  bd_name          - Name of the peer device. NULL if unknown.
+ *                  features         - Remote device's features (up to 3 pages).
+ *                                     NULL if not known
+ *                  trusted_mask     - Bitwise OR of services that do not
+ *                                     require authorization.
+ *                                     (array of uint32_t)
+ *                  link_key         - Connection link key. NULL if unknown.
+ *
+ * Returns          true if added OK, else false
+ *
+ ******************************************************************************/
+bool BTM_SecAddDevice(const RawAddress& bd_addr, DEV_CLASS dev_class,
+                      BD_NAME bd_name, uint8_t* features,
+                      uint32_t trusted_mask[], LinkKey* p_link_key,
+                      uint8_t key_type, tBTM_IO_CAP io_cap, uint8_t pin_length);
+void wipe_secrets_and_remove(tBTM_SEC_DEV_REC* p_dev_rec);
+
+/** Free resources associated with the device associated with |bd_addr| address.
+ *
+ * *** WARNING ***
+ * tBTM_SEC_DEV_REC associated with bd_addr becomes invalid after this function
+ * is called, also any of it's fields. i.e. if you use p_dev_rec->bd_addr, it is
+ * no longer valid!
+ * *** WARNING ***
+ *
+ * Returns true if removed OK, false if not found or ACL link is active.
+ */
+bool BTM_SecDeleteDevice(const RawAddress& bd_addr);
+
+/*******************************************************************************
+ *
+ * Function         BTM_SecClearSecurityFlags
+ *
+ * Description      Reset the security flags (mark as not-paired) for a given
+ *                  remove device.
+ *
+ ******************************************************************************/
+void BTM_SecClearSecurityFlags(const RawAddress& bd_addr);
+
+/*******************************************************************************
+ *
+ * Function         BTM_SecReadDevName
+ *
+ * Description      Looks for the device name in the security database for the
+ *                  specified BD address.
+ *
+ * Returns          Pointer to the name or NULL
+ *
+ ******************************************************************************/
+char* BTM_SecReadDevName(const RawAddress& bd_addr);
+
+/*******************************************************************************
+ *
+ * Function         btm_sec_alloc_dev
+ *
+ * Description      Look for the record in the device database for the record
+ *                  with specified address
+ *
+ * Returns          Pointer to the record or NULL
+ *
+ ******************************************************************************/
+tBTM_SEC_DEV_REC* btm_sec_alloc_dev(const RawAddress& bd_addr);
+
+/*******************************************************************************
+ *
+ * Function         btm_dev_support_switch
+ *
+ * Description      This function is called by the L2CAP to check if remote
+ *                  device supports role switch
+ *
+ * Parameters:      bd_addr       - Address of the peer device
+ *
+ * Returns          true if device is known and role switch is supported
+ *
+ ******************************************************************************/
+bool btm_dev_support_switch(const RawAddress& bd_addr);
+
+/*******************************************************************************
+ *
+ * Function         btm_find_dev_by_handle
+ *
+ * Description      Look for the record in the device database for the record
+ *                  with specified handle
+ *
+ * Returns          Pointer to the record or NULL
+ *
+ ******************************************************************************/
+tBTM_SEC_DEV_REC* btm_find_dev_by_handle(uint16_t handle);
+
+bool is_address_equal(void* data, void* context);
+
+/*******************************************************************************
+ *
+ * Function         btm_find_dev
+ *
+ * Description      Look for the record in the device database for the record
+ *                  with specified BD address
+ *
+ * Returns          Pointer to the record or NULL
+ *
+ ******************************************************************************/
+tBTM_SEC_DEV_REC* btm_find_dev(const RawAddress& bd_addr);
+
+/*******************************************************************************
+ *
+ * Function         btm_consolidate_dev
+5**
+ * Description      combine security records if identified as same peer
+ *
+ * Returns          none
+ *
+ ******************************************************************************/
+void btm_consolidate_dev(tBTM_SEC_DEV_REC* p_target_rec);
+
+/*******************************************************************************
+ *
+ * Function         btm_find_or_alloc_dev
+ *
+ * Description      Look for the record in the device database for the record
+ *                  with specified BD address
+ *
+ * Returns          Pointer to the record or NULL
+ *
+ ******************************************************************************/
+tBTM_SEC_DEV_REC* btm_find_or_alloc_dev(const RawAddress& bd_addr);
+
+/*******************************************************************************
+ *
+ * Function         btm_sec_allocate_dev_rec
+ *
+ * Description      Attempts to allocate a new device record. If we have
+ *                  exceeded the maximum number of allowable records to
+ *                  allocate, the oldest record will be deleted to make room
+ *                  for the new record.
+ *
+ * Returns          Pointer to the newly allocated record
+ *
+ ******************************************************************************/
+tBTM_SEC_DEV_REC* btm_sec_allocate_dev_rec(void);
+
+/*******************************************************************************
+ *
+ * Function         btm_get_bond_type_dev
+ *
+ * Description      Get the bond type for a device in the device database
+ *                  with specified BD address
+ *
+ * Returns          The device bond type if known, otherwise BOND_TYPE_UNKNOWN
+ *
+ ******************************************************************************/
+tBTM_BOND_TYPE btm_get_bond_type_dev(const RawAddress& bd_addr);
+
+/*******************************************************************************
+ *
+ * Function         btm_set_bond_type_dev
+ *
+ * Description      Set the bond type for a device in the device database
+ *                  with specified BD address
+ *
+ * Returns          true on success, otherwise false
+ *
+ ******************************************************************************/
+bool btm_set_bond_type_dev(const RawAddress& bd_addr, tBTM_BOND_TYPE bond_type);
index 742213b..b8db0b9 100644 (file)
@@ -142,22 +142,11 @@ extern tBTM_STATUS BTM_BT_Quality_Report_VSE_Register(
 /* Internal functions provided by btm_dev.cc
  *********************************************
 */
-extern bool btm_dev_support_switch(const RawAddress& bd_addr);
-
-extern tBTM_SEC_DEV_REC* btm_sec_allocate_dev_rec(void);
-extern tBTM_SEC_DEV_REC* btm_sec_alloc_dev(const RawAddress& bd_addr);
 extern void wipe_secrets_and_remove(tBTM_SEC_DEV_REC* p_dev_rec);
-extern tBTM_SEC_DEV_REC* btm_find_dev(const RawAddress& bd_addr);
-extern tBTM_SEC_DEV_REC* btm_find_or_alloc_dev(const RawAddress& bd_addr);
-extern tBTM_SEC_DEV_REC* btm_find_dev_by_handle(uint16_t handle);
-extern tBTM_BOND_TYPE btm_get_bond_type_dev(const RawAddress& bd_addr);
-extern bool btm_set_bond_type_dev(const RawAddress& bd_addr,
-                                  tBTM_BOND_TYPE bond_type);
 
 /* Internal functions provided by btm_sec.cc
  *********************************************
 */
-extern bool btm_dev_support_switch(const RawAddress& bd_addr);
 extern void btm_sec_conn_req(const RawAddress& bda, uint8_t* dc);
 extern void btm_create_conn_cancel_complete(uint8_t* p);
 
@@ -189,7 +178,6 @@ extern void btm_sec_dev_rec_cback_event(tBTM_SEC_DEV_REC* p_dev_rec,
                                         uint8_t res, bool is_le_trasnport);
 
 extern void btm_sec_clear_ble_keys(tBTM_SEC_DEV_REC* p_dev_rec);
-extern void btm_consolidate_dev(tBTM_SEC_DEV_REC* p_target_rec);
 extern bool btm_ble_init_pseudo_addr(tBTM_SEC_DEV_REC* p_dev_rec,
                                      const RawAddress& new_pseudo_addr);
 extern tBTM_SEC_SERV_REC* btm_sec_find_first_serv(bool is_originator,
index 5d6f91c..49e4ab9 100644 (file)
@@ -44,6 +44,7 @@
 #include "btif_storage.h"
 #include "btm_int.h"
 #include "hcimsgs.h"
+#include "stack/btm/btm_dev.h"
 
 #define BTM_SEC_MAX_COLLISION_DELAY (5000)
 
index 9c26feb..bc5ae36 100644 (file)
@@ -34,6 +34,7 @@
 #include "gatt_int.h"
 #include "l2c_api.h"
 #include "osi/include/osi.h"
+#include "stack/btm/btm_dev.h"
 
 using base::StringPrintf;
 
index a0c6a4f..c27781f 100644 (file)
@@ -34,6 +34,7 @@
 #include "hiddefs.h"
 #include "hidh_api.h"
 #include "hidh_int.h"
+#include "stack/btm/btm_dev.h"
 
 using bluetooth::Uuid;
 
index fc2032c..737a656 100644 (file)
@@ -35,6 +35,7 @@
 #include "log/log.h"
 #include "main/shim/shim.h"
 #include "osi/include/osi.h"
+#include "stack/btm/btm_dev.h"
 #include "stack/gatt/connection_manager.h"
 #include "stack/include/acl_api.h"
 #include "stack_config.h"
index 48ee30c..3d6194f 100644 (file)
@@ -37,6 +37,7 @@
 #include "l2cdefs.h"
 #include "log/log.h"
 #include "osi/include/osi.h"
+#include "stack/btm/btm_dev.h"
 #include "stack/include/acl_api.h"
 
 static void l2c_link_send_to_lower(tL2C_LCB* p_lcb, BT_HDR* p_buf,
index dbf1c4c..8eaaf8f 100644 (file)
@@ -23,6 +23,7 @@
 #include "btif_storage.h"
 #include "device/include/interop.h"
 #include "internal_include/bt_target.h"
+#include "stack/btm/btm_dev.h"
 #include "stack/btm/btm_int.h"
 #include "stack/include/acl_api.h"
 #include "stack/include/l2c_api.h"
index 49496ca..19cae60 100644 (file)
@@ -36,6 +36,7 @@
 #include "main/shim/shim.h"
 #include "smp_api.h"
 #include "smp_int.h"
+#include "stack/btm/btm_dev.h"
 
 #include "p_256_ecc_pp.h"
 
index f79c083..04a63cd 100644 (file)
@@ -37,6 +37,7 @@
 #include "osi/include/osi.h"
 #include "p_256_ecc_pp.h"
 #include "smp_int.h"
+#include "stack/btm/btm_dev.h"
 #include "stack/crypto_toolbox/crypto_toolbox.h"
 #include "stack/include/acl_api.h"