15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************
25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Copyright (C) 2003-2012 Broadcom Corporation
45738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
55738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Licensed under the Apache License, Version 2.0 (the "License");
65738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  you may not use this file except in compliance with the License.
75738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  You may obtain a copy of the License at:
85738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
95738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  http://www.apache.org/licenses/LICENSE-2.0
105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  See the License for the specific language governing permissions and
155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  limitations under the License.
165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/
185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************
205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  This is the private interface file for the BTA device manager.
225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/
245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_DM_INT_H
255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_DM_INT_H
265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
27709843216679a3c7852d7d254fde47a9d503abd8Jakub Pawlowski#include <memory>
285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_target.h"
29f355ef5a4d7fb667fc57a0dfb60f738d870e252eMyles Watson#include "bta_sys.h"
305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
31e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssen#include "bta_gatt_api.h"
325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *  Constants and data types
358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ****************************************************************************/
365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
37cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_COPY_DEVICE_CLASS(coddst, codsrc)          \
38cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  {                                                    \
39cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson    ((uint8_t*)(coddst))[0] = ((uint8_t*)(codsrc))[0]; \
40cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson    ((uint8_t*)(coddst))[1] = ((uint8_t*)(codsrc))[1]; \
41cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson    ((uint8_t*)(coddst))[2] = ((uint8_t*)(codsrc))[2]; \
42cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  }
435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_DM_MSG_LEN 50
455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
46cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SERVICE_ID_TO_SERVICE_MASK(id) (1 << (id))
475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* DM events */
49cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum {
50cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  /* device manager local device API events */
51cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_ENABLE_EVT = BTA_SYS_EVT_START(BTA_ID_DM),
52cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_DISABLE_EVT,
53cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_SET_NAME_EVT,
54cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_SET_VISIBILITY_EVT,
555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
56cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_ACL_CHANGE_EVT,
57cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_ADD_DEVICE_EVT,
58cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_REMOVE_ACL_EVT,
595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
60cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  /* security API events */
61cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_BOND_EVT,
62cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_BOND_CANCEL_EVT,
63cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_PIN_REPLY_EVT,
645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
65cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  /* power manger events */
66cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_PM_BTM_STATUS_EVT,
67cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_PM_TIMER_EVT,
685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
69cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  /* simple pairing events */
70cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_CONFIRM_EVT,
715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
72cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_SET_ENCRYPTION_EVT,
735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
74cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_LOC_OOB_EVT,
75cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_CI_IO_REQ_EVT,
76cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_CI_RMT_OOB_EVT,
775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
78cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_ADD_BLEKEY_EVT,
79cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_ADD_BLEDEVICE_EVT,
80cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_BLE_PASSKEY_REPLY_EVT,
81cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_BLE_CONFIRM_REPLY_EVT,
82cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_BLE_SEC_GRANT_EVT,
83cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_BLE_SET_BG_CONN_TYPE,
84cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_BLE_CONN_PARAM_EVT,
85cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_BLE_CONN_SCAN_PARAM_EVT,
86cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_BLE_OBSERVE_EVT,
87cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_UPDATE_CONN_PARAM_EVT,
88e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssen#if (BLE_PRIVACY_SPT == TRUE)
89cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_LOCAL_PRIVACY_EVT,
90a6ce7751d84218c193eb90d390aef23217b1737eWei Wang#endif
91cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_SET_DATA_LENGTH_EVT,
92cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_BLE_ENERGY_INFO_EVT,
9376356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan
94cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_ENABLE_TEST_MODE_EVT,
95cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_DISABLE_TEST_MODE_EVT,
96cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_EXECUTE_CBACK_EVT,
97cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_REMOVE_ALL_ACL_EVT,
98cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_REMOVE_DEVICE_EVT,
99cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_MAX_EVT
1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project};
1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* DM search events */
103cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum {
104cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  /* DM search API events */
105cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_SEARCH_EVT = BTA_SYS_EVT_START(BTA_ID_DM_SEARCH),
106cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_SEARCH_CANCEL_EVT,
107cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_DISCOVER_EVT,
108cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_INQUIRY_CMPL_EVT,
109cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_REMT_NAME_EVT,
110cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_SDP_RESULT_EVT,
111cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_SEARCH_CMPL_EVT,
112cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_DISCOVERY_RESULT_EVT,
113cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_API_DI_DISCOVER_EVT,
114cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_DISC_CLOSE_TOUT_EVT
11576356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan
1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project};
1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_DM_API_ENABLE_EVT */
119cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
120cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
121cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_SEC_CBACK* p_sec_cback;
1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_API_ENABLE;
1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_DM_API_SET_NAME_EVT */
125cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
126cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
127cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_NAME name; /* max 248 bytes name, plus must be Null terminated */
1285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_API_SET_NAME;
1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_DM_API_SET_VISIBILITY_EVT */
131cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
132cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
133cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_DISC disc_mode;
134cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_CONN conn_mode;
135cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t pair_mode;
136cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t conn_paired_only;
1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_API_SET_VISIBILITY;
1385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
139cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum {
140cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_RS_NONE, /* straight API call */
141cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_RS_OK,   /* the role switch result - successful */
142cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_RS_FAIL  /* the role switch result - failed */
1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project};
144e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_RS_RES;
1455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_DM_API_SEARCH_EVT */
147cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
148cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
149cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_INQ inq_params;
150cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_SERVICE_MASK services;
151cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_SEARCH_CBACK* p_cback;
152cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_RS_RES rs_res;
153cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t num_uuid;
154cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBT_UUID* p_uuid;
1555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_API_SEARCH;
1565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_DM_API_DISCOVER_EVT */
158cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
159cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
160cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;
161cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_SERVICE_MASK services;
162cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_SEARCH_CBACK* p_cback;
163cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool sdp_search;
164cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_TRANSPORT transport;
165cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t num_uuid;
166cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBT_UUID* p_uuid;
167cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tSDP_UUID uuid;
1685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_API_DISCOVER;
1695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_DM_API_DI_DISC_EVT */
171cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
172cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
173cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;
174cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DISCOVERY_DB* p_sdp_db;
175cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint32_t len;
176cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_SEARCH_CBACK* p_cback;
177cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_API_DI_DISC;
1785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_DM_API_BOND_EVT */
180cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
181cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
182cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;
183cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_TRANSPORT transport;
1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_API_BOND;
1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_DM_API_BOND_CANCEL_EVT */
187cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
188cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
189cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;
190cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_TRANSPORT transport;
1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_API_BOND_CANCEL;
1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_DM_API_PIN_REPLY_EVT */
194cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
195cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
196cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;
197cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool accept;
198cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t pin_len;
199cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t p_pin[PIN_CODE_LEN];
2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_API_PIN_REPLY;
2015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_DM_API_LOC_OOB_EVT */
203cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { BT_HDR hdr; } tBTA_DM_API_LOC_OOB;
2045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_DM_API_CONFIRM_EVT */
206cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
207cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
208cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;
209cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool accept;
2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_API_CONFIRM;
2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_DM_CI_IO_REQ_EVT */
213cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
214cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
215cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;
216cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_IO_CAP io_cap;
217cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_OOB_DATA oob_data;
218cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_AUTH_REQ auth_req;
2195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_CI_IO_REQ;
2205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_DM_CI_RMT_OOB_EVT */
222cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
223cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
224cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;
225cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_OCTET16 c;
226cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_OCTET16 r;
227cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool accept;
2285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_CI_RMT_OOB;
2295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_DM_REMT_NAME_EVT */
231cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
232cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
233cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_SEARCH result;
2345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_REM_NAME;
2355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for tBTA_DM_DISC_RESULT */
237cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
238cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
239cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_SEARCH result;
2405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_DISC_RESULT;
2415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_DM_INQUIRY_CMPL_EVT */
243cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
244cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
245cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t num;
2465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_INQUIRY_CMPL;
2475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_DM_SDP_RESULT_EVT */
249cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
250cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
251cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t sdp_result;
2525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SDP_RESULT;
2535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_DM_ACL_CHANGE_EVT */
255cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
256cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
257cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTM_BL_EVENT event;
258cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t busy_level;
259cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t busy_level_flags;
260cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool is_new;
261cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t new_role;
262cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;
263cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t hci_status;
264cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t handle;
265cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBT_TRANSPORT transport;
2665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_ACL_CHANGE;
2675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_DM_PM_BTM_STATUS_EVT */
269cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
270cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
271cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;
272cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTM_PM_STATUS status;
273cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t value;
274cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t hci_status;
2755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_PM_BTM_STATUS;
2775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_DM_PM_TIMER_EVT */
279cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
280cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
281cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;
282cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_PM_ACTION pm_request;
2835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_PM_TIMER;
2845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_DM_API_ADD_DEVICE_EVT */
286cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
287cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
288cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;
289cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  DEV_CLASS dc;
290cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  LINK_KEY link_key;
291cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_SERVICE_MASK tm;
292cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool is_trusted;
293cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t key_type;
294cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_IO_CAP io_cap;
295cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool link_key_known;
296cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool dc_known;
297cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_NAME bd_name;
298cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t
299cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson      features[BTA_FEATURE_BYTES_PER_PAGE * (BTA_EXT_FEATURES_PAGE_MAX + 1)];
300cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t pin_length;
3015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_API_ADD_DEVICE;
3025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_DM_API_REMOVE_ACL_EVT */
304cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
305cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
306cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;
3075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_API_REMOVE_DEVICE;
3085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for BTA_DM_API_EXECUTE_CBACK_EVT */
310cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
311cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
312cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  void* p_param;
313cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_EXEC_CBACK* p_exec_cback;
3145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_API_EXECUTE_CBACK;
3155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* data type for tBTA_DM_API_SET_ENCRYPTION */
317cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
318cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
319cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_TRANSPORT transport;
320cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_ENCRYPT_CBACK* p_callback;
321cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_BLE_SEC_ACT sec_act;
322cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;
3235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_API_SET_ENCRYPTION;
3245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
325cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
326cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
327cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;
328cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_LE_KEY_VALUE blekey;
329cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_LE_KEY_TYPE key_type;
330cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
331cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_API_ADD_BLEKEY;
332cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
333cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
334cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
335cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;
336cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBT_DEVICE_TYPE dev_type;
337cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBLE_ADDR_TYPE addr_type;
338cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
339cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_API_ADD_BLE_DEVICE;
340cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
341cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
342cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
343cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;
344cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool accept;
345cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint32_t passkey;
346cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_API_PASSKEY_REPLY;
347cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
348cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
349cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
350cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;
351cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_BLE_SEC_GRANT res;
352cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_API_BLE_SEC_GRANT;
353cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
3545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* set prefered BLE connection parameters for a device */
355cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
356cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
357cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR peer_bda;
358cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t conn_int_min;
359cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t conn_int_max;
360cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t supervision_tout;
361cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t slave_latency;
362cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
363cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_API_BLE_CONN_PARAMS;
364cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
365cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
366cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
367cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR peer_bda;
368cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool privacy_enable;
369cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
370cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_API_ENABLE_PRIVACY;
371cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
372cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
373cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
374cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool privacy_enable;
375cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_API_LOCAL_PRIVACY;
376ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
3775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* set scan parameter for BLE connections */
378cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
379cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
380cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_GATTC_IF client_if;
381cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint32_t scan_int;
382cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint32_t scan_window;
383cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBLE_SCAN_MODE scan_mode;
384cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBLE_SCAN_PARAM_SETUP_CBACK scan_param_setup_cback;
385cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_API_BLE_SCAN_PARAMS;
3865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
38776356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan/* set scan parameter for BLE connections */
388cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
389cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
390cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t scan_int;
391cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t scan_window;
39276356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan} tBTA_DM_API_BLE_CONN_SCAN_PARAMS;
39376356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan
394ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* Data type for start/stop observe */
395cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
396cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
397cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool start;
398cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t duration;
399cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_SEARCH_CBACK* p_cback;
400cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_API_BLE_OBSERVE;
401cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
402cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
403cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
404cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR remote_bda;
405cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t tx_data_length;
406cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_API_BLE_SET_DATA_LENGTH;
407636d6714a4c08dd99d2147dcce05dc3892e804b4Priti Aghera
408ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* set adv parameter for BLE advertising */
409ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
410cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
411cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
412cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool enable;
413a6ce7751d84218c193eb90d390aef23217b1737eWei Wang
414cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_API_BLE_FEATURE;
415a6ce7751d84218c193eb90d390aef23217b1737eWei Wang
416cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
417cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
418cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_BLE_ENERGY_INFO_CBACK* p_energy_info_cback;
419e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji} tBTA_DM_API_ENERGY_INFO;
420e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji
421ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* data type for BTA_DM_API_REMOVE_ACL_EVT */
422cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
423cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
424cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;
425cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool remove_dev;
426cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_TRANSPORT transport;
4277fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
428cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_API_REMOVE_ACL;
42976356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan
43076356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan/* data type for BTA_DM_API_REMOVE_ALL_ACL_EVT */
431cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
432cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
433cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_LINK_TYPE link_type;
43476356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan
43576356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan} tBTA_DM_API_REMOVE_ALL_ACL;
436cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
437cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
438cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;
439cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t min_int;
440cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t max_int;
441cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t latency;
442cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t timeout;
443cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_API_UPDATE_CONN_PARAM;
444ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
4455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* union of all data types */
446cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union {
447cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  /* GKI event buffer header */
448cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_HDR hdr;
449cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_ENABLE enable;
4505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
451cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_SET_NAME set_name;
4525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
453cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_SET_VISIBILITY set_visibility;
4545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
455cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_ADD_DEVICE add_dev;
4565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
457cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_REMOVE_DEVICE remove_dev;
4585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
459cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_SEARCH search;
4605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
461cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_DISCOVER discover;
4625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
463cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_BOND bond;
4645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
465cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_BOND_CANCEL bond_cancel;
4665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
467cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_PIN_REPLY pin_reply;
4685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
469cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_LOC_OOB loc_oob;
470cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_CONFIRM confirm;
471cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_CI_IO_REQ ci_io_req;
472cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_CI_RMT_OOB ci_rmt_oob;
4735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
474cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_REM_NAME rem_name;
4755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
476cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_DISC_RESULT disc_result;
4775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
478cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_INQUIRY_CMPL inq_cmpl;
4795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
480cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_SDP_RESULT sdp_event;
4815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
482cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_ACL_CHANGE acl_change;
4835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
484cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_PM_BTM_STATUS pm_status;
4855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
486cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_PM_TIMER pm_timer;
4875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
488cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_DI_DISC di_disc;
4895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
490cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_EXECUTE_CBACK exec_cback;
4915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
492cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_SET_ENCRYPTION set_encryption;
4935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
494cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_ADD_BLEKEY add_ble_key;
495cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_ADD_BLE_DEVICE add_ble_device;
496cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_PASSKEY_REPLY ble_passkey_reply;
497cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_BLE_SEC_GRANT ble_sec_grant;
498cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_BLE_CONN_PARAMS ble_set_conn_params;
499cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_BLE_CONN_SCAN_PARAMS ble_set_conn_scan_params;
500cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_BLE_OBSERVE ble_observe;
501cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_ENABLE_PRIVACY ble_remote_privacy;
502cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_LOCAL_PRIVACY ble_local_privacy;
503cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_UPDATE_CONN_PARAM ble_update_conn_params;
504cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_BLE_SET_DATA_LENGTH ble_set_data_length;
505cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
506cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_ENERGY_INFO ble_energy_info;
5075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
508cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_REMOVE_ACL remove_acl;
509cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_REMOVE_ALL_ACL remove_all_acl;
5105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_MSG;
5125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_DM_NUM_PEER_DEVICE 7
5145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
515cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_NOT_CONNECTED 0
516cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONNECTED 1
517cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_UNPAIRING 2
518e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_CONN_STATE;
5195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
520cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DI_NONE 0x00 /* nothing special */
521cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DI_USE_SSR \
522cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  0x10 /* set this bit if ssr is supported for this link */
523cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DI_AV_ACTIVE \
524cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  0x20 /* set this bit if AV is active for this link */
525cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DI_SET_SNIFF \
526cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  0x01 /* set this bit if call BTM_SetPowerMode(sniff) */
527cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DI_INT_SNIFF \
528cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  0x02 /* set this bit if call BTM_SetPowerMode(sniff) & enter sniff mode */
529cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DI_ACP_SNIFF 0x04 /* set this bit if peer init sniff */
530e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_DEV_INFO;
5315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
53276356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan/* set power mode request type */
533cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_RESTART 1
534cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_NEW_REQ 2
535cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_EXECUTE 3
536cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef uint8_t tBTA_DM_PM_REQ;
537cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
538cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
539cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR peer_bdaddr;
540cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t link_policy;
541cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_CONN_STATE conn_state;
542cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_PREF_ROLES pref_role;
543cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool in_use;
544cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_DEV_INFO info;
545cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_ENCRYPT_CBACK* p_encrypt_cback;
5465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTM_SSR_INCLUDED == TRUE)
547cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTM_PM_STATUS prev_low; /* previous low power mode used */
5485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
549cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_PM_ACTION pm_mode_attempted;
550cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_PM_ACTION pm_mode_failed;
551cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool remove_dev_pending;
552cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t conn_handle;
553cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBT_TRANSPORT transport;
5545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_PEER_DEVICE;
5555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* structure to store list of
5575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project  active connections */
558cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
559cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_PEER_DEVICE peer_device[BTA_DM_NUM_PEER_DEVICE];
560cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t count;
561cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t le_count;
5625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_ACTIVE_LINK;
5635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
564cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
565cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR peer_bdaddr;
566cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_SYS_ID id;
567cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t app_id;
568cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_SYS_CONN_STATUS state;
569cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool new_request;
5705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SRVCS;
5725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
57376356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan#ifndef BTA_DM_NUM_CONN_SRVS
574cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_NUM_CONN_SRVS 10
57576356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan#endif
5765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
577cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
578cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t count;
579cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_SRVCS conn_srvc[BTA_DM_NUM_CONN_SRVS];
5805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
581cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_CONNECTED_SRVCS;
5825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
583cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
584cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_TIMER_IDX 0
585cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_TIMER_IDX 1
58676356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan#define BTA_DM_PM_SUSPEND_TIMER_IDX 2
587cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_MODE_TIMER_MAX 3
588cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  /*
589cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson   * Keep three different timers for PARK, SNIFF and SUSPEND if TBFC is
590cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson   * supported.
591cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson   */
592cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  alarm_t* timer[BTA_DM_PM_MODE_TIMER_MAX];
593cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
594cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t srvc_id[BTA_DM_PM_MODE_TIMER_MAX];
595cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t pm_action[BTA_DM_PM_MODE_TIMER_MAX];
596cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t active; /* number of active timer */
597cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
598cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR peer_bdaddr;
599cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool in_use;
6005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_PM_TIMER;
6015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern tBTA_DM_CONNECTED_SRVCS bta_dm_conn_srvcs;
6035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
60476356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan#define BTA_DM_NUM_PM_TIMER 7
6055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* DM control block */
607cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
608cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool is_bta_dm_active;
609cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_ACTIVE_LINK device_list;
610cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_SEC_CBACK* p_sec_cback;
611cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_BLE_ENERGY_INFO_CBACK* p_energy_info_cback;
612cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t state;
613cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool disabling;
614cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  alarm_t* disable_timer;
615cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint32_t wbt_sdp_handle; /* WIDCOMM Extensions SDP record handle */
616cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t wbt_scn;         /* WIDCOMM Extensions SCN */
617cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t num_master_only;
618cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t pm_id;
619cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_PM_TIMER pm_timer[BTA_DM_NUM_PM_TIMER];
620cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint32_t
621cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson      role_policy_mask;   /* the bits set indicates the modules that wants to
622cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                             remove role switch from the default link policy */
623cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t cur_policy;    /* current default link policy */
624cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t rs_event;      /* the event waiting for role switch */
625cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t cur_av_count;   /* current AV connecions */
626cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool disable_pair_mode; /* disable pair mode or not */
627cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool conn_paired_only;  /* allow connectable to paired device only or not */
628cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_API_SEARCH search_msg;
629cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t page_scan_interval;
630cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t page_scan_window;
631cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t inquiry_scan_interval;
632cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t inquiry_scan_window;
633cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
634cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  /* Storage for pin code request parameters */
635cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR pin_bd_addr;
636cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  DEV_CLASS pin_dev_class;
637cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_SEC_EVT pin_evt;
638cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint32_t num_val; /* the numeric value for comparison. If just_works, do not
639cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                       show this number to UI */
640cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool just_works;  /* true, if "Just Works" association model */
641e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssen#if (BTA_EIR_CANNED_UUID_LIST != TRUE)
642cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  /* store UUID list for EIR */
643cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint32_t eir_uuid[BTM_EIR_SERVICE_ARRAY_SIZE];
6445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTA_EIR_SERVER_NUM_CUSTOM_UUID > 0)
645cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBT_UUID custom_uuid[BTA_EIR_SERVER_NUM_CUSTOM_UUID];
6465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
6475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
6495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
650cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_ENCRYPT_CBACK* p_encrypt_cback;
651cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  alarm_t* switch_delay_timer;
6525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_CB;
6545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* DM search control block */
656cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
657cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_SEARCH_CBACK* p_search_cback;
658cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTM_INQ_INFO* p_btm_inq_info;
659cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_SERVICE_MASK services;
660cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_SERVICE_MASK services_to_search;
661cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_SERVICE_MASK services_found;
662cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tSDP_DISCOVERY_DB* p_sdp_db;
663cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t state;
664cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR peer_bdaddr;
665cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool name_discover_done;
666cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_NAME peer_name;
667cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  alarm_t* search_timer;
668cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t service_index;
669cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_MSG* p_search_queue; /* search or discover commands during search
670cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                  cancel stored here */
671cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool wait_disc;
672cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool sdp_results;
673cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tSDP_UUID uuid;
674cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t peer_scn;
675cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool sdp_search;
676cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool cancel_pending; /* inquiry cancel is pending */
677cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_TRANSPORT transport;
678cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_SEARCH_CBACK* p_scan_cback;
679cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_GATTC_IF client_if;
680cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t num_uuid;
681cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBT_UUID* p_srvc_uuid;
682cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t uuid_to_search;
683cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool gatt_disc_active;
684cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t conn_id;
685cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t* p_ble_rawdata;
686cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint32_t ble_raw_size;
687cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint32_t ble_raw_used;
688cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  alarm_t* gatt_close_timer; /* GATT channel close delay timer */
689cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR pending_close_bda; /* pending GATT channel remote device address */
6905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SEARCH_CB;
6925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* DI control block */
694cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
695cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tSDP_DISCOVERY_DB* p_di_db;         /* pointer to the DI discovery database */
696cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t di_num;                     /* total local DI record number */
697cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint32_t di_handle[BTA_DI_NUM_MAX]; /* local DI record handle, the first one
698cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                         is primary record */
699cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_DI_CB;
7005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* DM search state */
702cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum {
7035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
704cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_SEARCH_IDLE,
705cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_SEARCH_ACTIVE,
706cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_SEARCH_CANCELLING,
707cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_DISCOVER_ACTIVE
7085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project};
7105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
711cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
712cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  DEV_CLASS dev_class; /* local device class */
713cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t
714cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson      policy_settings;   /* link policy setting hold, sniff, park, MS switch */
715cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t page_timeout; /* timeout for page in slots */
716cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t link_timeout; /* link supervision timeout in slots */
717cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool avoid_scatter; /* true to avoid scatternet when av is streaming (be the
718cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                         master) */
7195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_CFG;
7215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
722e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern const uint32_t bta_service_id_to_btm_srv_id_lkup_tbl[];
7235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
724cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
725cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t id;
726cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t app_id;
727cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t cfg;
7285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
729cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_RM;
7305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
731cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern tBTA_DM_CFG* p_bta_dm_cfg;
732cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern tBTA_DM_RM* p_bta_dm_rm_cfg;
7335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
734cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
735cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t id;
736cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t app_id;
737cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t spec_idx; /* index of spec table to use */
7385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_PM_CFG;
7405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
741cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
742cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_PM_ACTION power_mode;
743cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t timeout;
7445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_PM_ACTN;
7465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
747cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
748cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t allow_mask; /* mask of sniff/hold/park modes to allow */
7495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTM_SSR_INCLUDED == TRUE)
750cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t ssr; /* set SSR on conn open/unpark */
7515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
752cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_PM_ACTN actn_tbl[BTA_DM_PM_NUM_EVTS][2];
7535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_PM_SPEC;
7555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
756cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
757cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t max_lat;
758cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t min_rmt_to;
759cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t min_loc_to;
7605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SSR_SPEC;
7615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
762cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
763cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t manufacturer;
764cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t lmp_sub_version;
765cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t lmp_version;
766cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_LMP_VER_INFO;
7675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
768cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern const uint16_t bta_service_id_to_uuid_lkup_tbl[];
769b7938c1866dd8b92977e3ba3632de77fd877baceJakub Pawlowski
770cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern tBTA_DM_PM_CFG* p_bta_dm_pm_cfg;
771cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern tBTA_DM_PM_SPEC* p_bta_dm_pm_spec;
772cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern tBTM_PM_PWR_MD* p_bta_dm_pm_md;
7735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTM_SSR_INCLUDED == TRUE)
774cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern tBTA_DM_SSR_SPEC* p_bta_dm_ssr_spec;
7755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
7765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* update dynamic BRCM Aware EIR data */
7785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern const tBTA_DM_EIR_CONF bta_dm_eir_cfg;
779cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern tBTA_DM_EIR_CONF* p_bta_dm_eir_cfg;
7805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* DM control block */
782cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern tBTA_DM_CB bta_dm_cb;
7835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* DM search control block */
785cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern tBTA_DM_SEARCH_CB bta_dm_search_cb;
7865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* DI control block */
788cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern tBTA_DM_DI_CB bta_dm_di_cb;
7895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
790cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern bool bta_dm_sm_execute(BT_HDR* p_msg);
791cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_sm_disable(void);
792cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern bool bta_dm_search_sm_execute(BT_HDR* p_msg);
793cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_search_sm_disable(void);
7945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
795cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_enable(tBTA_DM_MSG* p_data);
796cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_disable(tBTA_DM_MSG* p_data);
79778bcff79e1b1f0efce436b33bdd6da88745bfc8aPavlin Radoslavovextern void bta_dm_init_cb(void);
798cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_set_dev_name(tBTA_DM_MSG* p_data);
799cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_set_visibility(tBTA_DM_MSG* p_data);
800cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
801cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_set_scan_config(tBTA_DM_MSG* p_data);
802cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_vendor_spec_command(tBTA_DM_MSG* p_data);
803cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_bond(tBTA_DM_MSG* p_data);
804cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_bond_cancel(tBTA_DM_MSG* p_data);
805cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_pin_reply(tBTA_DM_MSG* p_data);
806cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_acl_change(tBTA_DM_MSG* p_data);
807cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_add_device(tBTA_DM_MSG* p_data);
808cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_remove_device(tBTA_DM_MSG* p_data);
809cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_close_acl(tBTA_DM_MSG* p_data);
810cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
811cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_pm_btm_status(tBTA_DM_MSG* p_data);
812cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_pm_timer(tBTA_DM_MSG* p_data);
813cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_add_ampkey(tBTA_DM_MSG* p_data);
8145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
815cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_add_blekey(tBTA_DM_MSG* p_data);
816cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_add_ble_device(tBTA_DM_MSG* p_data);
817cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_ble_passkey_reply(tBTA_DM_MSG* p_data);
818cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_ble_confirm_reply(tBTA_DM_MSG* p_data);
819cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_security_grant(tBTA_DM_MSG* p_data);
820cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_ble_set_bg_conn_type(tBTA_DM_MSG* p_data);
821cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_ble_set_conn_params(tBTA_DM_MSG* p_data);
822cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_ble_set_conn_scan_params(tBTA_DM_MSG* p_data);
823cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_close_gatt_conn(tBTA_DM_MSG* p_data);
824cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_ble_observe(tBTA_DM_MSG* p_data);
825cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_ble_update_conn_params(tBTA_DM_MSG* p_data);
826cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_ble_config_local_privacy(tBTA_DM_MSG* p_data);
827cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_ble_set_adv_params(uint16_t adv_int_min,
828cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                      uint16_t adv_int_max,
829cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                      tBLE_BD_ADDR* p_dir_bda);
830cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
831cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_ble_set_data_length(tBTA_DM_MSG* p_data);
8325c44e45473e5fc2fa89411ab1add7dbfc979f1f8Andre Eisenbach
833cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_ble_get_energy_info(tBTA_DM_MSG* p_data);
8341acb61ce065053f91a0f8d43e8328c9eeec4b5edSatya Calloji
835cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_set_encryption(tBTA_DM_MSG* p_data);
836cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_confirm(tBTA_DM_MSG* p_data);
837cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_loc_oob(tBTA_DM_MSG* p_data);
838cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_ci_io_req_act(tBTA_DM_MSG* p_data);
839cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_ci_rmt_oob_act(tBTA_DM_MSG* p_data);
8405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_dm_init_pm(void);
8425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_dm_disable_pm(void);
8435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
844e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern uint8_t bta_dm_get_av_count(void);
845cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_search_start(tBTA_DM_MSG* p_data);
846cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_search_cancel(tBTA_DM_MSG* p_data);
847cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_discover(tBTA_DM_MSG* p_data);
848cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_di_disc(tBTA_DM_MSG* p_data);
849cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_inq_cmpl(tBTA_DM_MSG* p_data);
850cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_rmt_name(tBTA_DM_MSG* p_data);
851cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_sdp_result(tBTA_DM_MSG* p_data);
852cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_search_cmpl(tBTA_DM_MSG* p_data);
853cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_free_sdp_db(tBTA_DM_MSG* p_data);
854cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_disc_result(tBTA_DM_MSG* p_data);
855cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_search_result(tBTA_DM_MSG* p_data);
856cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_discovery_cmpl(tBTA_DM_MSG* p_data);
857cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_queue_search(tBTA_DM_MSG* p_data);
858cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_queue_disc(tBTA_DM_MSG* p_data);
859cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_search_clear_queue(tBTA_DM_MSG* p_data);
860cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_search_cancel_cmpl(tBTA_DM_MSG* p_data);
861cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_search_cancel_notify(tBTA_DM_MSG* p_data);
862cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_search_cancel_transac_cmpl(tBTA_DM_MSG* p_data);
863cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_disc_rmt_name(tBTA_DM_MSG* p_data);
864cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern tBTA_DM_PEER_DEVICE* bta_dm_find_peer_device(const BD_ADDR peer_addr);
8655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
866e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenvoid bta_dm_eir_update_uuid(uint16_t uuid16, bool adding);
8675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
868cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_enable_test_mode(tBTA_DM_MSG* p_data);
869cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_disable_test_mode(tBTA_DM_MSG* p_data);
870cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_execute_callback(tBTA_DM_MSG* p_data);
87176356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan
872cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dm_remove_all_acl(tBTA_DM_MSG* p_data);
8735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BTA_DM_INT_H */
874