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