From 1fd7a642de4f605f14555add86620c47ed7204cb Mon Sep 17 00:00:00 2001 From: Chris Manton Date: Mon, 7 Sep 2020 14:04:35 -0700 Subject: [PATCH] Add stack/btm/neighbor_inquiry.h Towards readable code Bug: 163134718 Tag: #refactor Test: compile & verify basic functions working Change-Id: I828e59a5c5b630b7936b85bf1dc045b1bff136eb --- main/shim/btm.h | 1 + main/shim/btm_api.h | 1 + stack/btm/btm_ble_int_types.h | 1 + stack/btm/btm_int_types.h | 57 +-------- stack/btm/neighbor_inquiry.h | 250 +++++++++++++++++++++++++++++++++++++ stack/btm/security_device_record.h | 13 -- stack/include/btm_api.h | 1 + stack/include/btm_api_types.h | 159 ----------------------- stack/include/btm_ble_api.h | 1 + 9 files changed, 256 insertions(+), 228 deletions(-) create mode 100644 stack/btm/neighbor_inquiry.h diff --git a/main/shim/btm.h b/main/shim/btm.h index 695216f60..333cf3a1d 100644 --- a/main/shim/btm.h +++ b/main/shim/btm.h @@ -25,6 +25,7 @@ #include "hci/hci_packets.h" +#include "stack/btm/neighbor_inquiry.h" #include "stack/include/btm_api_types.h" #include "types/raw_address.h" diff --git a/main/shim/btm_api.h b/main/shim/btm_api.h index 261bfbb43..a6d797310 100644 --- a/main/shim/btm_api.h +++ b/main/shim/btm_api.h @@ -17,6 +17,7 @@ #pragma once #include "stack/btm/btm_sec.h" +#include "stack/btm/neighbor_inquiry.h" #include "stack/include/acl_api_types.h" #include "stack/include/btm_api_types.h" #include "stack/include/btm_ble_api_types.h" diff --git a/stack/btm/btm_ble_int_types.h b/stack/btm/btm_ble_int_types.h index cc0c91946..90b418265 100644 --- a/stack/btm/btm_ble_int_types.h +++ b/stack/btm/btm_ble_int_types.h @@ -20,6 +20,7 @@ #define BTM_BLE_INT_TYPES_H #include "osi/include/alarm.h" +#include "stack/btm/neighbor_inquiry.h" #include "stack/include/btm_ble_api_types.h" /* scanning enable status */ diff --git a/stack/btm/btm_int_types.h b/stack/btm/btm_int_types.h index 605a420ac..45801bc90 100644 --- a/stack/btm/btm_int_types.h +++ b/stack/btm/btm_int_types.h @@ -24,6 +24,7 @@ #include "stack/acl/acl.h" #include "stack/btm/btm_ble_int_types.h" #include "stack/btm/btm_sco.h" +#include "stack/btm/neighbor_inquiry.h" #include "stack/btm/security_device_record.h" #include "stack/include/btm_ble_api_types.h" @@ -121,62 +122,6 @@ typedef void(tBTM_BT_QUALITY_REPORT_RECEIVER)(uint8_t len, uint8_t* p_stream); /* Define a structure to hold all the BTM data */ -typedef struct { - uint32_t inq_count; /* Used for determining if a response has already been */ - /* received for the current inquiry operation. (We do not */ - /* want to flood the caller with multiple responses from */ - /* the same device. */ - RawAddress bd_addr; -} tINQ_BDADDR; - -typedef struct { - tBTM_CMPL_CB* p_remname_cmpl_cb; - -#define BTM_EXT_RMT_NAME_TIMEOUT_MS (40 * 1000) /* 40 seconds */ - - alarm_t* remote_name_timer; - - uint16_t discoverable_mode; - uint16_t connectable_mode; - uint16_t page_scan_window; - uint16_t page_scan_period; - uint16_t inq_scan_window; - uint16_t inq_scan_period; - uint16_t inq_scan_type; - uint16_t page_scan_type; /* current page scan type */ - - RawAddress remname_bda; /* Name of bd addr for active remote name request */ -#define BTM_RMT_NAME_EXT 0x1 /* Initiated through API */ - bool remname_active; /* State of a remote name request by external API */ - - tBTM_CMPL_CB* p_inq_cmpl_cb; - tBTM_INQ_RESULTS_CB* p_inq_results_cb; - uint32_t inq_counter; /* Counter incremented each time an inquiry completes */ - /* Used for determining whether or not duplicate devices */ - /* have responded to the same inquiry */ - tINQ_BDADDR* p_bd_db; /* Pointer to memory that holds bdaddrs */ - uint16_t num_bd_entries; /* Number of entries in database */ - uint16_t max_bd_entries; /* Maximum number of entries that can be stored */ - tINQ_DB_ENT inq_db[BTM_INQ_DB_SIZE]; - tBTM_INQ_PARMS inqparms; /* Contains the parameters for the current inquiry */ - tBTM_INQUIRY_CMPL - inq_cmpl_info; /* Status and number of responses from the last inquiry */ - - uint16_t per_min_delay; /* Current periodic minimum delay */ - uint16_t per_max_delay; /* Current periodic maximum delay */ - /* inquiry that has been cancelled*/ - uint8_t inqfilt_type; /* Contains the inquiry filter type (BD ADDR, COD, or - Clear) */ - -#define BTM_INQ_INACTIVE_STATE 0 -#define BTM_INQ_ACTIVE_STATE \ - 3 /* Actual inquiry or periodic inquiry is in progress */ - - uint8_t state; /* Current state that the inquiry process is in */ - uint8_t inq_active; /* Bit Mask indicating type of inquiry is active */ - bool no_inc_ssp; /* true, to stop inquiry on incoming SSP */ -} tBTM_INQUIRY_VAR_ST; - #define BTM_STATE_BUFFER_SIZE 5 /* size of state buffer */ /* Define the Device Management control structure diff --git a/stack/btm/neighbor_inquiry.h b/stack/btm/neighbor_inquiry.h new file mode 100644 index 000000000..009334c6c --- /dev/null +++ b/stack/btm/neighbor_inquiry.h @@ -0,0 +1,250 @@ +/* + * 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. + */ + +#pragma once + +#include + +#include "osi/include/alarm.h" +#include "stack/include/btm_api_types.h" + +/* Discoverable modes */ +#define BTM_NON_DISCOVERABLE 0 +#define BTM_LIMITED_DISCOVERABLE 1 +#define BTM_GENERAL_DISCOVERABLE 2 +#define BTM_DISCOVERABLE_MASK \ + (BTM_LIMITED_DISCOVERABLE | BTM_GENERAL_DISCOVERABLE) +#define BTM_MAX_DISCOVERABLE BTM_GENERAL_DISCOVERABLE +/* high byte for BLE Discoverable modes */ +#define BTM_BLE_NON_DISCOVERABLE 0x0000 +#define BTM_BLE_LIMITED_DISCOVERABLE 0x0100 +#define BTM_BLE_GENERAL_DISCOVERABLE 0x0200 +#define BTM_BLE_MAX_DISCOVERABLE BTM_BLE_GENERAL_DISCOVERABLE +#define BTM_BLE_DISCOVERABLE_MASK \ + (BTM_BLE_NON_DISCOVERABLE | BTM_BLE_LIMITED_DISCOVERABLE | \ + BTM_BLE_GENERAL_DISCOVERABLE) + +/* Connectable modes */ +#define BTM_NON_CONNECTABLE 0 +#define BTM_CONNECTABLE 1 +#define BTM_CONNECTABLE_MASK (BTM_NON_CONNECTABLE | BTM_CONNECTABLE) +/* high byte for BLE Connectable modes */ +#define BTM_BLE_NON_CONNECTABLE 0x0000 +#define BTM_BLE_CONNECTABLE 0x0100 +#define BTM_BLE_MAX_CONNECTABLE BTM_BLE_CONNECTABLE +#define BTM_BLE_CONNECTABLE_MASK (BTM_BLE_NON_CONNECTABLE | BTM_BLE_CONNECTABLE) + +/* Inquiry modes + * Note: These modes are associated with the inquiry active values (BTM_*ACTIVE) + */ +#define BTM_INQUIRY_NONE 0 +#define BTM_GENERAL_INQUIRY 0x01 +#define BTM_BR_INQUIRY_MASK (BTM_GENERAL_INQUIRY) + +/* high byte of inquiry mode for BLE inquiry mode */ +#define BTM_BLE_INQUIRY_NONE 0x00 +#define BTM_BLE_GENERAL_INQUIRY 0x10 +#define BTM_BLE_INQUIRY_MASK (BTM_BLE_GENERAL_INQUIRY) + +/* BTM_IsInquiryActive return values (Bit Mask) + * Note: These bit masks are associated with the inquiry modes (BTM_*_INQUIRY) + */ +/* no inquiry in progress */ +#define BTM_INQUIRY_INACTIVE 0x0 +/* a general inquiry is in progress */ +#define BTM_GENERAL_INQUIRY_ACTIVE BTM_GENERAL_INQUIRY +/* SSP is active, so inquiry is disallowed (work around for FW bug) */ +#define BTM_SSP_INQUIRY_ACTIVE 0x4 +/* a general inquiry is in progress */ +#define BTM_LE_GENERAL_INQUIRY_ACTIVE BTM_BLE_GENERAL_INQUIRY + +/* inquiry activity mask */ +/* BR/EDR inquiry activity mask */ +#define BTM_BR_INQ_ACTIVE_MASK (BTM_GENERAL_INQUIRY_ACTIVE) +/* LE scan activity mask */ +#define BTM_BLE_SCAN_ACTIVE_MASK 0xF0 +/* LE inquiry activity mask*/ +#define BTM_BLE_INQ_ACTIVE_MASK (BTM_LE_GENERAL_INQUIRY_ACTIVE) +/* inquiry activity mask */ +#define BTM_INQUIRY_ACTIVE_MASK \ + (BTM_BR_INQ_ACTIVE_MASK | BTM_BLE_INQ_ACTIVE_MASK) + +/* Define scan types */ +#define BTM_SCAN_TYPE_STANDARD 0 +#define BTM_SCAN_TYPE_INTERLACED 1 /* 1.2 devices only */ + +/* Define inquiry results mode */ +#define BTM_INQ_RESULT_STANDARD 0 +#define BTM_INQ_RESULT_WITH_RSSI 1 +#define BTM_INQ_RESULT_EXTENDED 2 +/* RSSI value not supplied (ignore it) */ +#define BTM_INQ_RES_IGNORE_RSSI 0x7f + +/* Inquiry Filter Condition types (see tBTM_INQ_PARMS) */ +/* Inquiry Filtering is turned off */ +#define BTM_CLR_INQUIRY_FILTER 0 + +/* These are the fields returned in each device's response to the inquiry. It + * is returned in the results callback if registered. + */ +typedef struct { + uint16_t clock_offset; + RawAddress remote_bd_addr; + DEV_CLASS dev_class; + uint8_t page_scan_rep_mode; + uint8_t page_scan_per_mode; + uint8_t page_scan_mode; + int8_t rssi; /* Set to BTM_INQ_RES_IGNORE_RSSI if not valid */ + uint32_t eir_uuid[BTM_EIR_SERVICE_ARRAY_SIZE]; + bool eir_complete_list; + tBT_DEVICE_TYPE device_type; + uint8_t inq_result_type; + tBLE_ADDR_TYPE ble_addr_type; + uint16_t ble_evt_type; + uint8_t ble_primary_phy; + uint8_t ble_secondary_phy; + uint8_t ble_advertising_sid; + int8_t ble_tx_power; + uint16_t ble_periodic_adv_int; + uint8_t flag; +} tBTM_INQ_RESULTS; + +/**************************************** + * Device Discovery Callback Functions + ****************************************/ +/* Callback function for notifications when the BTM gets inquiry response. + * First param is inquiry results database, second is pointer of EIR. + */ +typedef void(tBTM_INQ_RESULTS_CB)(tBTM_INQ_RESULTS* p_inq_results, + uint8_t* p_eir, uint16_t eir_len); + +typedef struct { + uint32_t inq_count; /* Used for determining if a response has already been */ + /* received for the current inquiry operation. (We do not */ + /* want to flood the caller with multiple responses from */ + /* the same device. */ + RawAddress bd_addr; +} tINQ_BDADDR; + +/* This is the inquiry response information held in its database by BTM, and + * available to applications via BTM_InqDbRead, BTM_InqDbFirst, and + * BTM_InqDbNext. + */ +typedef struct { + tBTM_INQ_RESULTS results; + + bool appl_knows_rem_name; /* set by application if it knows the remote name of + the peer device. + This is later used by application to determine if + remote name request is + required to be done. Having the flag here avoid + duplicate store of inquiry results */ + uint16_t remote_name_len; + tBTM_BD_NAME remote_name; + uint8_t remote_name_state; + uint8_t remote_name_type; + +} tBTM_INQ_INFO; + +typedef struct { + uint64_t time_of_resp; + uint32_t + inq_count; /* "timestamps" the entry with a particular inquiry count */ + /* Used for determining if a response has already been */ + /* received for the current inquiry operation. (We do not */ + /* want to flood the caller with multiple responses from */ + /* the same device. */ + tBTM_INQ_INFO inq_info; + bool in_use; + bool scan_rsp; +} tINQ_DB_ENT; + +typedef struct /* contains the parameters passed to the inquiry functions */ +{ + uint8_t mode; /* general or limited */ + uint8_t duration; /* duration of the inquiry (1.28 sec increments) */ +} tBTM_INQ_PARMS; + +/* Structure returned with inquiry complete callback */ +typedef struct { + tBTM_STATUS status; + uint8_t num_resp; /* Number of results from the current inquiry */ +} tBTM_INQUIRY_CMPL; + +typedef struct { + tBTM_CMPL_CB* p_remname_cmpl_cb; + +#define BTM_EXT_RMT_NAME_TIMEOUT_MS (40 * 1000) /* 40 seconds */ + + alarm_t* remote_name_timer; + + uint16_t discoverable_mode; + uint16_t connectable_mode; + uint16_t page_scan_window; + uint16_t page_scan_period; + uint16_t inq_scan_window; + uint16_t inq_scan_period; + uint16_t inq_scan_type; + uint16_t page_scan_type; /* current page scan type */ + + RawAddress remname_bda; /* Name of bd addr for active remote name request */ +#define BTM_RMT_NAME_EXT 0x1 /* Initiated through API */ + bool remname_active; /* State of a remote name request by external API */ + + tBTM_CMPL_CB* p_inq_cmpl_cb; + tBTM_INQ_RESULTS_CB* p_inq_results_cb; + uint32_t inq_counter; /* Counter incremented each time an inquiry completes */ + /* Used for determining whether or not duplicate devices */ + /* have responded to the same inquiry */ + tINQ_BDADDR* p_bd_db; /* Pointer to memory that holds bdaddrs */ + uint16_t num_bd_entries; /* Number of entries in database */ + uint16_t max_bd_entries; /* Maximum number of entries that can be stored */ + tINQ_DB_ENT inq_db[BTM_INQ_DB_SIZE]; + tBTM_INQ_PARMS inqparms; /* Contains the parameters for the current inquiry */ + tBTM_INQUIRY_CMPL + inq_cmpl_info; /* Status and number of responses from the last inquiry */ + + uint16_t per_min_delay; /* Current periodic minimum delay */ + uint16_t per_max_delay; /* Current periodic maximum delay */ + /* inquiry that has been cancelled*/ + uint8_t inqfilt_type; /* Contains the inquiry filter type (BD ADDR, COD, or + Clear) */ + +#define BTM_INQ_INACTIVE_STATE 0 +#define BTM_INQ_ACTIVE_STATE \ + 3 /* Actual inquiry or periodic inquiry is in progress */ + + uint8_t state; /* Current state that the inquiry process is in */ + uint8_t inq_active; /* Bit Mask indicating type of inquiry is active */ + bool no_inc_ssp; /* true, to stop inquiry on incoming SSP */ +} tBTM_INQUIRY_VAR_ST; + +/* Structure returned with remote name request */ +typedef struct { + uint16_t status; + RawAddress bd_addr; + uint16_t length; + BD_NAME remote_bd_name; +} tBTM_REMOTE_DEV_NAME; + +typedef union /* contains the inquiry filter condition */ +{ + RawAddress bdaddr_cond; + tBTM_COD_COND cod_cond; +} tBTM_INQ_FILT_COND; + +#define BTM_INQ_RESULT_BR 0x01 +#define BTM_INQ_RESULT_BLE 0x02 diff --git a/stack/btm/security_device_record.h b/stack/btm/security_device_record.h index ae908ca59..67093114d 100644 --- a/stack/btm/security_device_record.h +++ b/stack/btm/security_device_record.h @@ -39,19 +39,6 @@ typedef struct { } tBTM_LE_CONN_PRAMS; -typedef struct { - uint64_t time_of_resp; - uint32_t - inq_count; /* "timestamps" the entry with a particular inquiry count */ - /* Used for determining if a response has already been */ - /* received for the current inquiry operation. (We do not */ - /* want to flood the caller with multiple responses from */ - /* the same device. */ - tBTM_INQ_INFO inq_info; - bool in_use; - bool scan_rsp; -} tINQ_DB_ENT; - /* The MSB of the clock offset field indicates whether the offset is valid. */ #define BTM_CLOCK_OFFSET_VALID 0x8000 diff --git a/stack/include/btm_api.h b/stack/include/btm_api.h index 2257dd449..88148372d 100644 --- a/stack/include/btm_api.h +++ b/stack/include/btm_api.h @@ -26,6 +26,7 @@ #include +#include "stack/btm/neighbor_inquiry.h" #include "stack/include/btm_api_types.h" #include "stack/include/btm_status.h" #include "stack/include/sdp_api.h" diff --git a/stack/include/btm_api_types.h b/stack/include/btm_api_types.h index 343034dca..9f47f71ad 100644 --- a/stack/include/btm_api_types.h +++ b/stack/include/btm_api_types.h @@ -68,82 +68,6 @@ typedef void(tBTM_VSC_CMPL_CB)(tBTM_VSC_CMPL* p1); /******************************* * Device Discovery Constants *******************************/ -/* Discoverable modes */ -#define BTM_NON_DISCOVERABLE 0 -#define BTM_LIMITED_DISCOVERABLE 1 -#define BTM_GENERAL_DISCOVERABLE 2 -#define BTM_DISCOVERABLE_MASK \ - (BTM_LIMITED_DISCOVERABLE | BTM_GENERAL_DISCOVERABLE) -#define BTM_MAX_DISCOVERABLE BTM_GENERAL_DISCOVERABLE -/* high byte for BLE Discoverable modes */ -#define BTM_BLE_NON_DISCOVERABLE 0x0000 -#define BTM_BLE_LIMITED_DISCOVERABLE 0x0100 -#define BTM_BLE_GENERAL_DISCOVERABLE 0x0200 -#define BTM_BLE_MAX_DISCOVERABLE BTM_BLE_GENERAL_DISCOVERABLE -#define BTM_BLE_DISCOVERABLE_MASK \ - (BTM_BLE_NON_DISCOVERABLE | BTM_BLE_LIMITED_DISCOVERABLE | \ - BTM_BLE_GENERAL_DISCOVERABLE) - -/* Connectable modes */ -#define BTM_NON_CONNECTABLE 0 -#define BTM_CONNECTABLE 1 -#define BTM_CONNECTABLE_MASK (BTM_NON_CONNECTABLE | BTM_CONNECTABLE) -/* high byte for BLE Connectable modes */ -#define BTM_BLE_NON_CONNECTABLE 0x0000 -#define BTM_BLE_CONNECTABLE 0x0100 -#define BTM_BLE_MAX_CONNECTABLE BTM_BLE_CONNECTABLE -#define BTM_BLE_CONNECTABLE_MASK (BTM_BLE_NON_CONNECTABLE | BTM_BLE_CONNECTABLE) - -/* Inquiry modes - * Note: These modes are associated with the inquiry active values (BTM_*ACTIVE) - */ -#define BTM_INQUIRY_NONE 0 -#define BTM_GENERAL_INQUIRY 0x01 -#define BTM_BR_INQUIRY_MASK (BTM_GENERAL_INQUIRY) - -/* high byte of inquiry mode for BLE inquiry mode */ -#define BTM_BLE_INQUIRY_NONE 0x00 -#define BTM_BLE_GENERAL_INQUIRY 0x10 -#define BTM_BLE_INQUIRY_MASK (BTM_BLE_GENERAL_INQUIRY) - -/* BTM_IsInquiryActive return values (Bit Mask) - * Note: These bit masks are associated with the inquiry modes (BTM_*_INQUIRY) - */ -/* no inquiry in progress */ -#define BTM_INQUIRY_INACTIVE 0x0 -/* a general inquiry is in progress */ -#define BTM_GENERAL_INQUIRY_ACTIVE BTM_GENERAL_INQUIRY -/* SSP is active, so inquiry is disallowed (work around for FW bug) */ -#define BTM_SSP_INQUIRY_ACTIVE 0x4 -/* a general inquiry is in progress */ -#define BTM_LE_GENERAL_INQUIRY_ACTIVE BTM_BLE_GENERAL_INQUIRY - -/* inquiry activity mask */ -/* BR/EDR inquiry activity mask */ -#define BTM_BR_INQ_ACTIVE_MASK (BTM_GENERAL_INQUIRY_ACTIVE) -/* LE scan activity mask */ -#define BTM_BLE_SCAN_ACTIVE_MASK 0xF0 -/* LE inquiry activity mask*/ -#define BTM_BLE_INQ_ACTIVE_MASK (BTM_LE_GENERAL_INQUIRY_ACTIVE) -/* inquiry activity mask */ -#define BTM_INQUIRY_ACTIVE_MASK \ - (BTM_BR_INQ_ACTIVE_MASK | BTM_BLE_INQ_ACTIVE_MASK) - -/* Define scan types */ -#define BTM_SCAN_TYPE_STANDARD 0 -#define BTM_SCAN_TYPE_INTERLACED 1 /* 1.2 devices only */ - -/* Define inquiry results mode */ -#define BTM_INQ_RESULT_STANDARD 0 -#define BTM_INQ_RESULT_WITH_RSSI 1 -#define BTM_INQ_RESULT_EXTENDED 2 -/* RSSI value not supplied (ignore it) */ -#define BTM_INQ_RES_IGNORE_RSSI 0x7f - -/* Inquiry Filter Condition types (see tBTM_INQ_PARMS) */ -/* Inquiry Filtering is turned off */ -#define BTM_CLR_INQUIRY_FILTER 0 - /**************************** * minor device class field ****************************/ @@ -395,21 +319,6 @@ typedef struct /* contains the two device class condition fields */ DEV_CLASS dev_class_mask; } tBTM_COD_COND; -typedef union /* contains the inquiry filter condition */ -{ - RawAddress bdaddr_cond; - tBTM_COD_COND cod_cond; -} tBTM_INQ_FILT_COND; - -typedef struct /* contains the parameters passed to the inquiry functions */ -{ - uint8_t mode; /* general or limited */ - uint8_t duration; /* duration of the inquiry (1.28 sec increments) */ -} tBTM_INQ_PARMS; - -#define BTM_INQ_RESULT_BR 0x01 -#define BTM_INQ_RESULT_BLE 0x02 - constexpr uint8_t BLE_EVT_CONNECTABLE_BIT = 0; constexpr uint8_t BLE_EVT_SCANNABLE_BIT = 1; constexpr uint8_t BLE_EVT_DIRECTED_BIT = 2; @@ -424,65 +333,6 @@ constexpr uint8_t PHY_LE_CODED = 0x04; constexpr uint8_t NO_ADI_PRESENT = 0xFF; constexpr uint8_t TX_POWER_NOT_PRESENT = 0x7F; -/* These are the fields returned in each device's response to the inquiry. It - * is returned in the results callback if registered. -*/ -typedef struct { - uint16_t clock_offset; - RawAddress remote_bd_addr; - DEV_CLASS dev_class; - uint8_t page_scan_rep_mode; - uint8_t page_scan_per_mode; - uint8_t page_scan_mode; - int8_t rssi; /* Set to BTM_INQ_RES_IGNORE_RSSI if not valid */ - uint32_t eir_uuid[BTM_EIR_SERVICE_ARRAY_SIZE]; - bool eir_complete_list; - tBT_DEVICE_TYPE device_type; - uint8_t inq_result_type; - tBLE_ADDR_TYPE ble_addr_type; - uint16_t ble_evt_type; - uint8_t ble_primary_phy; - uint8_t ble_secondary_phy; - uint8_t ble_advertising_sid; - int8_t ble_tx_power; - uint16_t ble_periodic_adv_int; - uint8_t flag; -} tBTM_INQ_RESULTS; - -/* This is the inquiry response information held in its database by BTM, and - * available to applications via BTM_InqDbRead, BTM_InqDbFirst, and - * BTM_InqDbNext. -*/ -typedef struct { - tBTM_INQ_RESULTS results; - - bool appl_knows_rem_name; /* set by application if it knows the remote name of - the peer device. - This is later used by application to determine if - remote name request is - required to be done. Having the flag here avoid - duplicate store of inquiry results */ - uint16_t remote_name_len; - tBTM_BD_NAME remote_name; - uint8_t remote_name_state; - uint8_t remote_name_type; - -} tBTM_INQ_INFO; - -/* Structure returned with inquiry complete callback */ -typedef struct { - tBTM_STATUS status; - uint8_t num_resp; /* Number of results from the current inquiry */ -} tBTM_INQUIRY_CMPL; - -/* Structure returned with remote name request */ -typedef struct { - uint16_t status; - RawAddress bd_addr; - uint16_t length; - BD_NAME remote_bd_name; -} tBTM_REMOTE_DEV_NAME; - typedef struct { uint8_t pcm_intf_rate; /* PCM interface rate: 0: 128kbps, 1: 256 kbps; 2:512 bps; 3: 1024kbps; 4: 2048kbps */ @@ -492,15 +342,6 @@ typedef struct { } tBTM_SCO_PCM_PARAM; -/**************************************** - * Device Discovery Callback Functions - ****************************************/ -/* Callback function for notifications when the BTM gets inquiry response. - * First param is inquiry results database, second is pointer of EIR. -*/ -typedef void(tBTM_INQ_RESULTS_CB)(tBTM_INQ_RESULTS* p_inq_results, - uint8_t* p_eir, uint16_t eir_len); - /***************************************************************************** * ACL CHANNEL MANAGEMENT ****************************************************************************/ diff --git a/stack/include/btm_ble_api.h b/stack/include/btm_ble_api.h index 3c0dcfc28..b991a0f2a 100644 --- a/stack/include/btm_ble_api.h +++ b/stack/include/btm_ble_api.h @@ -32,6 +32,7 @@ #include "btm_api.h" #include "btm_ble_api_types.h" #include "osi/include/alarm.h" +#include "stack/btm/neighbor_inquiry.h" #include "types/bt_transport.h" /***************************************************************************** -- 2.11.0