bta_api.h revision 5b790feeeb211c42bf78ca3ae9c26aa30e516765
15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 35b790feeeb211c42bf78ca3ae9c26aa30e516765Jakub Pawlowski * Copyright 2003-2014 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 public interface file for BTA, Broadcom's Bluetooth 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * application layer for mobile phones. 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_API_H 265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_API_H 275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 28709843216679a3c7852d7d254fde47a9d503abd8Jakub Pawlowski#include <hardware/bt_common_types.h> 29709843216679a3c7852d7d254fde47a9d503abd8Jakub Pawlowski#include <memory> 305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_target.h" 315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_types.h" 325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "btm_api.h" 335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "btm_ble_api.h" 345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Constants and data types 378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ****************************************************************************/ 385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Status Return Value */ 40cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SUCCESS 0 /* Successful operation. */ 41cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_FAILURE 1 /* Generic failure. */ 42cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_PENDING 2 /* API cannot be completed right now */ 43cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BUSY 3 44cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_NO_RESOURCES 4 45cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_WRONG_MODE 5 465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 47e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_STATUS; 485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Service ID 515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 52cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * NOTES: When you add a new Service ID for BTA AND require to change the value 53cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * of BTA_MAX_SERVICE_ID, 54cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * make sure that the correct security ID of the new service from 55cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Security service definitions (btm_api.h) 56cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * should be added to bta_service_id_to_btm_srv_id_lkup_tbl table in 57cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * bta_dm_act.c. 585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project */ 595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 60cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_RES_SERVICE_ID 0 /* Reserved */ 61cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SPP_SERVICE_ID 1 /* Serial port profile. */ 62cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DUN_SERVICE_ID 2 /* Dial-up networking profile. */ 63cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_A2DP_SOURCE_SERVICE_ID 3 /* A2DP Source profile. */ 64cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LAP_SERVICE_ID 4 /* LAN access profile. */ 65cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HSP_SERVICE_ID 5 /* Headset profile. */ 66cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HFP_SERVICE_ID 6 /* Hands-free profile. */ 67cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_OPP_SERVICE_ID 7 /* Object push */ 68cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_FTP_SERVICE_ID 8 /* File transfer */ 69cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_CTP_SERVICE_ID 9 /* Cordless Terminal */ 70cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_ICP_SERVICE_ID 10 /* Intercom Terminal */ 71cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SYNC_SERVICE_ID 11 /* Synchronization */ 72cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BPP_SERVICE_ID 12 /* Basic printing profile */ 73cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BIP_SERVICE_ID 13 /* Basic Imaging profile */ 74cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_PANU_SERVICE_ID 14 /* PAN User */ 75cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_NAP_SERVICE_ID 15 /* PAN Network access point */ 76cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_GN_SERVICE_ID 16 /* PAN Group Ad-hoc networks */ 77cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SAP_SERVICE_ID 17 /* SIM Access profile */ 78cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_A2DP_SINK_SERVICE_ID 18 /* A2DP Sink */ 79cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AVRCP_SERVICE_ID 19 /* A/V remote control */ 80cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HID_SERVICE_ID 20 /* HID */ 81cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_VDP_SERVICE_ID 21 /* Video distribution */ 82cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_PBAP_SERVICE_ID 22 /* PhoneBook Access Server*/ 83cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HSP_HS_SERVICE_ID 23 /* HFP HS role */ 84cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HFP_HS_SERVICE_ID 24 /* HSP HS role */ 85cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_MAP_SERVICE_ID 25 /* Message Access Profile */ 86cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_MN_SERVICE_ID 26 /* Message Notification Service */ 87cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HDP_SERVICE_ID 27 /* Health Device Profile */ 888843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta#define BTA_PCE_SERVICE_ID 28 /* PhoneBook Access Client */ 898843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta#define BTA_SDP_SERVICE_ID 29 /* SDP Search */ 908843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta#define BTA_HIDD_SERVICE_ID 30 /* HID Device */ 915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 929979121f0865e07432215529f9b157792ae3ef21Myles Watson/* BLE profile service ID */ 938843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta#define BTA_BLE_SERVICE_ID 31 /* GATT profile */ 948843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta#define BTA_USER_SERVICE_ID 32 /* User requested UUID */ 958843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta#define BTA_MAX_SERVICE_ID 33 969979121f0865e07432215529f9b157792ae3ef21Myles Watson 975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* service IDs (BTM_SEC_SERVICE_FIRST_EMPTY + 1) to (BTM_SEC_MAX_SERVICES - 1) 985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * are used by BTA JV */ 99cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_FIRST_JV_SERVICE_ID (BTM_SEC_SERVICE_FIRST_EMPTY + 1) 100cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LAST_JV_SERVICE_ID (BTM_SEC_MAX_SERVICES - 1) 1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 102e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_SERVICE_ID; 1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Service ID Mask */ 105cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_RES_SERVICE_MASK 0x00000001 /* Reserved */ 106cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SPP_SERVICE_MASK 0x00000002 /* Serial port profile. */ 107cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DUN_SERVICE_MASK 0x00000004 /* Dial-up networking profile. */ 108cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_FAX_SERVICE_MASK 0x00000008 /* Fax profile. */ 109cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LAP_SERVICE_MASK 0x00000010 /* LAN access profile. */ 110cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HSP_SERVICE_MASK 0x00000020 /* HSP AG role. */ 111cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HFP_SERVICE_MASK 0x00000040 /* HFP AG role */ 112cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_OPP_SERVICE_MASK 0x00000080 /* Object push */ 113cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_FTP_SERVICE_MASK 0x00000100 /* File transfer */ 114cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_CTP_SERVICE_MASK 0x00000200 /* Cordless Terminal */ 115cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_ICP_SERVICE_MASK 0x00000400 /* Intercom Terminal */ 116cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SYNC_SERVICE_MASK 0x00000800 /* Synchronization */ 117cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BPP_SERVICE_MASK 0x00001000 /* Print server */ 118cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BIP_SERVICE_MASK 0x00002000 /* Basic Imaging */ 119cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_PANU_SERVICE_MASK 0x00004000 /* PAN User */ 120cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_NAP_SERVICE_MASK 0x00008000 /* PAN Network access point */ 121cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_GN_SERVICE_MASK 0x00010000 /* PAN Group Ad-hoc networks */ 122cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SAP_SERVICE_MASK 0x00020000 /* PAN Group Ad-hoc networks */ 123cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_A2DP_SERVICE_MASK 0x00040000 /* Advanced audio distribution */ 124cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AVRCP_SERVICE_MASK 0x00080000 /* A/V remote control */ 125cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HID_SERVICE_MASK 0x00100000 /* HID */ 126cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_VDP_SERVICE_MASK 0x00200000 /* Video distribution */ 127cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_PBAP_SERVICE_MASK 0x00400000 /* Phone Book Server */ 128cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HSP_HS_SERVICE_MASK 0x00800000 /* HFP HS role */ 129cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HFP_HS_SERVICE_MASK 0x01000000 /* HSP HS role */ 130cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_MAS_SERVICE_MASK 0x02000000 /* Message Access Profile */ 131cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_MN_SERVICE_MASK 0x04000000 /* Message Notification Profile */ 132cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HL_SERVICE_MASK 0x08000000 /* Health Device Profile */ 133cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_PCE_SERVICE_MASK 0x10000000 /* Phone Book Client */ 1348843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta#define BTA_HIDD_SERVICE_MASK 0x20000000 /* HID Device */ 1355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1368843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta#define BTA_BLE_SERVICE_MASK 0x40000000 /* GATT based service */ 1378843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta#define BTA_ALL_SERVICE_MASK 0x7FFFFFFF /* All services supported by BTA. */ 1388843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta#define BTA_USER_SERVICE_MASK 0x80000000 /* Message Notification Profile */ 1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 140e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint32_t tBTA_SERVICE_MASK; 1415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* extended service mask, including mask with one or more GATT UUID */ 143cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 144cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_SERVICE_MASK srvc_mask; 145cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t num_uuid; 146819e2ecb84a22d6e03ec9ed67b3260c0dd7e8abaJakub Pawlowski bluetooth::Uuid* p_uuid; 147cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_SERVICE_MASK_EXT; 1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Security Setting Mask */ 150cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SEC_NONE BTM_SEC_NONE /* No security. */ 151cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SEC_AUTHORIZE \ 152cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTM_SEC_IN_AUTHORIZE) /* Authorization required (only needed for out \ 153cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson going connection )*/ 154cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SEC_AUTHENTICATE \ 155cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTM_SEC_IN_AUTHENTICATE | \ 156cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_SEC_OUT_AUTHENTICATE) /* Authentication required. */ 157cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SEC_ENCRYPT \ 158cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTM_SEC_IN_ENCRYPT | BTM_SEC_OUT_ENCRYPT) /* Encryption required. */ 159cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SEC_MODE4_LEVEL4 \ 160cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTM_SEC_MODE4_LEVEL4) /* Mode 4 level 4 service, i.e. incoming/outgoing \ 161cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson MITM and P-256 encryption */ 162cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SEC_MITM \ 163cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTM_SEC_IN_MITM | BTM_SEC_OUT_MITM) /* Man-In-The_Middle protection */ 164cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SEC_IN_16_DIGITS \ 165cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTM_SEC_IN_MIN_16_DIGIT_PIN) /* Min 16 digit for pin code */ 1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 167e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint16_t tBTA_SEC; 1685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 169cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson/* Ignore for Discoverable, Connectable, Pairable and Connectable Paired only 170cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * device modes */ 171cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_IGNORE 0x00FF 1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 17376356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan/* Ignore for Discoverable, Connectable only for LE modes */ 174cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LE_IGNORE 0xFF00 1755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 176cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_APP_ID_PAN_MULTI 0xFE /* app id for pan multiple connection */ 177cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_ALL_APP_ID 0xFF 1785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Discoverable Modes */ 180cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_NON_DISC BTM_NON_DISCOVERABLE /* Device is not discoverable. */ 181cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_GENERAL_DISC \ 182cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_GENERAL_DISCOVERABLE /* General discoverable. \ 183cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 184cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_NON_DISCOVERABLE \ 185cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_BLE_NON_DISCOVERABLE /* Device is not LE discoverable */ 186cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_GENERAL_DISCOVERABLE \ 187cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_BLE_GENERAL_DISCOVERABLE /* Device is LE General discoverable */ 188cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_LIMITED_DISCOVERABLE \ 189cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_BLE_LIMITED_DISCOVERABLE /* Device is LE Limited discoverable */ 190cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef uint16_t 191cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_DISC; /* this discoverability mode is a bit mask among BR mode and 192cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson LE mode */ 1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Connectable Modes */ 195cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_NON_CONN BTM_NON_CONNECTABLE /* Device is not connectable. */ 196cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONN BTM_CONNECTABLE /* Device is connectable. */ 197cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_NON_CONNECTABLE \ 198cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_BLE_NON_CONNECTABLE /* Device is LE non-connectable. */ 199cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONNECTABLE \ 200cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_BLE_CONNECTABLE /* Device is LE connectable. */ 2015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 202e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint16_t tBTA_DM_CONN; 2037fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 204cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_TRANSPORT_UNKNOWN 0 205cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_TRANSPORT_BR_EDR BT_TRANSPORT_BR_EDR 206cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_TRANSPORT_LE BT_TRANSPORT_LE 2077fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Battatypedef tBT_TRANSPORT tBTA_TRANSPORT; 2085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Pairable Modes */ 210cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PAIRABLE 1 211cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_NON_PAIRABLE 0 2125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Connectable Paired Only Mode */ 214cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONN_ALL 0 215cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONN_PAIRED 1 2165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Inquiry Modes */ 218cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQUIRY_NONE BTM_INQUIRY_NONE /*No BR inquiry. */ 219cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_GENERAL_INQUIRY \ 220cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_GENERAL_INQUIRY /* Perform general inquiry. */ 221cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LIMITED_INQUIRY \ 222cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_LIMITED_INQUIRY /* Perform limited inquiry. */ 2235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 224cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_INQUIRY_NONE BTM_BLE_INQUIRY_NONE 225cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_GENERAL_INQUIRY \ 226cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_BLE_GENERAL_INQUIRY /* Perform LE general inquiry. */ 227cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_LIMITED_INQUIRY \ 228cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_BLE_LIMITED_INQUIRY /* Perform LE limited inquiry. */ 229e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_INQ_MODE; 2305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Inquiry Filter Type */ 232cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_CLR BTM_CLR_INQUIRY_FILTER /* Clear inquiry filter. */ 233cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_DEV_CLASS \ 234cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_FILTER_COND_DEVICE_CLASS /* Filter on device class. */ 235cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_BD_ADDR \ 236cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_FILTER_COND_BD_ADDR /* Filter on a specific BD address. */ 2375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 238e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_INQ_FILT; 2395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Authorize Response */ 241cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_PERM \ 242cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 0 /* Authorized for future connections to the service */ 243cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_TEMP 1 /* Authorized for current connection only */ 244cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_NOT_AUTH 2 /* Not authorized for the service */ 2455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 246e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_AUTH_RESP; 2475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* M/S preferred roles */ 249cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_ANY_ROLE 0x00 250cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_MASTER_ROLE_PREF 0x01 251cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_MASTER_ROLE_ONLY 0x02 252cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SLAVE_ROLE_ONLY \ 253cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 0x03 /* Used for PANU only, skip role switch to master */ 2545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 255e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_PREF_ROLES; 2565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 257cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum { 2585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 259cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_DM_NO_SCATTERNET, /* Device doesn't support scatternet, it might 260cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson support "role switch during connection" for 261cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson an incoming connection, when it already has 262cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson another connection in master role */ 263cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_DM_PARTIAL_SCATTERNET, /* Device supports partial scatternet. It can have 264cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson simulateous connection in Master and Slave roles 265cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson for short period of time */ 266cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_DM_FULL_SCATTERNET /* Device can have simultaneous connection in master 267cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson and slave roles */ 2685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 2705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Inquiry filter device class condition */ 272cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 273cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson DEV_CLASS dev_class; /* device class of interest */ 274cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson DEV_CLASS dev_class_mask; /* mask to determine the bits of device class of 275cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson interest */ 2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_COD_COND; 2775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Inquiry Filter Condition */ 279cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union { 280a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* BD address of device to filter. */ 281cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_COD_COND dev_class_cond; /* Device class filter condition */ 2825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_INQ_COND; 2835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Inquiry Parameters */ 285cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 286cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_INQ_MODE mode; /* Inquiry mode, limited or general. */ 287cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t duration; /* Inquiry duration in 1.28 sec units. */ 288cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t max_resps; /* Maximum inquiry responses. Set to zero for unlimited 289cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson responses. */ 290cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool report_dup; /* report duplicated inquiry response with higher RSSI value 291cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 292cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_INQ_FILT filter_type; /* Filter condition type. */ 293cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_INQ_COND filter_cond; /* Filter condition data. */ 294e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssen#if (BTA_HOST_INTERLEAVE_SEARCH == TRUE) 295cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t intl_duration 296cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson [4]; /*duration array storing the interleave scan's time portions*/ 2977f3e42943b834ff0f556cd5c063a896f54d53167Matthew Xie#endif 2985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_INQ; 2995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 300cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 301cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t bta_dm_eir_min_name_len; /* minimum length of local name when it is 302cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson shortened */ 3035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTA_EIR_CANNED_UUID_LIST == TRUE) 304cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t bta_dm_eir_uuid16_len; /* length of 16-bit UUIDs */ 305cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* bta_dm_eir_uuid16; /* 16-bit UUIDs */ 3065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#else 307cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t uuid_mask[BTM_EIR_SERVICE_ARRAY_SIZE]; /* mask of UUID list in EIR */ 3085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 309cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson int8_t* bta_dm_eir_inq_tx_power; /* Inquiry TX power */ 310cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t bta_dm_eir_flag_len; /* length of flags in bytes */ 311cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* bta_dm_eir_flags; /* flags for EIR */ 312cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t bta_dm_eir_manufac_spec_len; /* length of manufacturer specific in 313cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bytes */ 314cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* bta_dm_eir_manufac_spec; /* manufacturer specific */ 315cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t bta_dm_eir_additional_len; /* length of additional data in bytes */ 316cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* bta_dm_eir_additional; /* additional data */ 3175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_EIR_CONF; 3185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 319a6ce7751d84218c193eb90d390aef23217b1737eWei Wang/* advertising filter policy */ 320cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_AFP tBTA_BLE_AFP; 321a6ce7751d84218c193eb90d390aef23217b1737eWei Wang 322cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum { 323cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_BLE_BATCH_SCAN_MODE_PASS = 1, 324cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_BLE_BATCH_SCAN_MODE_ACTI = 2, 325cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_BLE_BATCH_SCAN_MODE_PASS_ACTI = 3 326c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji}; 327e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_BLE_BATCH_SCAN_MODE; 328c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 329cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum { BTA_BLE_DISCARD_OLD_ITEMS = 0, BTA_BLE_DISCARD_LOWER_RSSI_ITEMS = 1 }; 330e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_BLE_DISCARD_RULE; 331c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 332cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum { BTA_BLE_ADV_SEEN_FIRST_TIME = 0, BTA_BLE_ADV_TRACKING_TIMEOUT = 1 }; 333e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_BLE_ADV_CHANGE_REASON; 334c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 335ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* BLE customer specific feature function type definitions */ 336ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* data type used on customer specific feature for RSSI monitoring */ 337cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_HI 0 338cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_RANGE 1 339cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_LO 2 340e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_RSSI_ALERT_TYPE; 341ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 342cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_NONE BTM_BLE_RSSI_ALERT_NONE /* (0) */ 343cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_HI_BIT BTM_BLE_RSSI_ALERT_HI_BIT /* (1) */ 344cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_RANGE_BIT \ 345cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_BLE_RSSI_ALERT_RANGE_BIT /* (1 << 1) */ 346cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_LO_BIT BTM_BLE_RSSI_ALERT_LO_BIT /* (1 << 2) */ 347cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef uint8_t tBTA_DM_BLE_RSSI_ALERT_MASK; 348ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 349a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskitypedef void(tBTA_DM_BLE_RSSI_CBACK)(const RawAddress& bd_addr, 350cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_RSSI_ALERT_TYPE alert_type, 351cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson int8_t rssi); 352ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 353e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef int8_t tBTA_DM_RSSI_VALUE; 354e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_LINK_QUALITY_VALUE; 3555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 356e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_SIG_STRENGTH_MASK; 3575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Security Callback Events */ 359cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ENABLE_EVT 0 /* Enable Event */ 360cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DISABLE_EVT 1 /* Disable Event */ 361cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PIN_REQ_EVT 2 /* PIN request. */ 362cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_CMPL_EVT 3 /* Authentication complete indication. */ 363cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTHORIZE_EVT 4 /* Authorization request. */ 364cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_UP_EVT 5 /* Connection UP event */ 365cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_DOWN_EVT 6 /* Connection DOWN event */ 366cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SIG_STRENGTH_EVT \ 367cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 7 /* Signal strength for bluetooth connection \ 368cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 369cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BUSY_LEVEL_EVT 8 /* System busy level */ 370cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BOND_CANCEL_CMPL_EVT 9 /* Bond cancel complete indication */ 371cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_CFM_REQ_EVT \ 372cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 10 /* Simple Pairing User Confirmation request. \ 373cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 374cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_KEY_NOTIF_EVT 11 /* Simple Pairing Passkey Notification */ 375cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_RMT_OOB_EVT 12 /* Simple Pairing Remote OOB Data request. */ 376cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_KEYPRESS_EVT 13 /* Key press notification event. */ 377cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROLE_CHG_EVT 14 /* Role Change event. */ 378cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_KEY_EVT 15 /* BLE SMP key event for peer device keys */ 379cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_REQ_EVT 16 /* BLE SMP security request */ 380cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PASSKEY_NOTIF_EVT 17 /* SMP passkey notification event */ 381cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PASSKEY_REQ_EVT 18 /* SMP passkey request event */ 382cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_OOB_REQ_EVT 19 /* SMP OOB request event */ 383cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_LOCAL_IR_EVT 20 /* BLE local IR event */ 384cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_LOCAL_ER_EVT 21 /* BLE local ER event */ 385cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_NC_REQ_EVT 22 /* SMP Numeric Comparison request event */ 386cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_RMT_OOB_EXT_EVT \ 387cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 23 /* Simple Pairing Remote OOB Extended Data request. */ 388cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_AUTH_CMPL_EVT 24 /* BLE Auth complete */ 389cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DEV_UNPAIRED_EVT 25 390cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_HW_ERROR_EVT 26 /* BT Chip H/W error */ 391cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LE_FEATURES_READ \ 392cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 27 /* Cotroller specific LE features are read \ 393cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 394cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ENER_INFO_READ 28 /* Energy info read */ 395cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SC_OOB_REQ_EVT 29 /* SMP SC OOB request event */ 396e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_SEC_EVT; 3975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_ENABLE_EVT */ 399cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { tBTA_STATUS status; } tBTA_DM_ENABLE; 4005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_PIN_REQ_EVT */ 402cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 403cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in 404cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * order */ 405a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* BD address peer device. */ 406cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson DEV_CLASS dev_class; /* Class of Device */ 407cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* Name of peer device. */ 408cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool min_16_digit; /* true if the pin returned must be at least 16 digits */ 4095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_PIN_REQ; 4105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BLE related definition */ 4125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 413cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_FAIL_BASE (HCI_ERR_MAX_ERR + 10) 414cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 415cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson/* Converts SMP error codes defined in smp_api.h to SMP auth fail reasons below. 416cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 417cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_CONVERT_SMP_CODE(x) (BTA_DM_AUTH_FAIL_BASE + (x)) 418cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 419cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_PASSKEY_FAIL \ 420cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_PASSKEY_ENTRY_FAIL) 421cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_OOB_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_OOB_FAIL) 422cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_PAIR_AUTH_FAIL \ 423cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_AUTH_FAIL) 424cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_CONFIRM_VALUE_FAIL \ 425cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_CONFIRM_VALUE_ERR) 426cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_PAIR_NOT_SUPPORT \ 427cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_NOT_SUPPORT) 428cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_ENC_KEY_SIZE (BTA_DM_AUTH_FAIL_BASE + SMP_ENC_KEY_SIZE) 429cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_INVALID_CMD (BTA_DM_AUTH_FAIL_BASE + SMP_INVALID_CMD) 430cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_UNKNOWN_ERR \ 431cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_FAIL_UNKNOWN) 432cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_REPEATED_ATTEMPT \ 433cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_REPEATED_ATTEMPTS) 434cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_INVALID_PARAMETERS \ 435cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_INVALID_PARAMETERS) 436cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_INTERNAL_ERR \ 437cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_INTERNAL_ERR) 438cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_UNKNOWN_IO (BTA_DM_AUTH_FAIL_BASE + SMP_UNKNOWN_IO_CAP) 439cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_INIT_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_INIT_FAIL) 440cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_CONFIRM_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_CONFIRM_FAIL) 441cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_BUSY (BTA_DM_AUTH_FAIL_BASE + SMP_BUSY) 442cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_ENC_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_ENC_FAIL) 443cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_RSP_TIMEOUT (BTA_DM_AUTH_FAIL_BASE + SMP_RSP_TIMEOUT) 444cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_CONN_TOUT (BTA_DM_AUTH_FAIL_BASE + SMP_CONN_TOUT) 4455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* connection parameter boundary value and dummy value */ 447cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SCAN_INT_MIN BTM_BLE_SCAN_INT_MIN 448cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SCAN_INT_MAX BTM_BLE_SCAN_INT_MAX 449cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SCAN_WIN_MIN BTM_BLE_SCAN_WIN_MIN 450cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SCAN_WIN_MAX BTM_BLE_SCAN_WIN_MAX 451cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_INT_MIN BTM_BLE_CONN_INT_MIN 452cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_INT_MAX BTM_BLE_CONN_INT_MAX 453cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_LATENCY_MAX BTM_BLE_CONN_LATENCY_MAX 454cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_SUP_TOUT_MIN BTM_BLE_CONN_SUP_TOUT_MIN 455cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_SUP_TOUT_MAX BTM_BLE_CONN_SUP_TOUT_MAX 456cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_PARAM_UNDEF \ 457cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_BLE_CONN_PARAM_UNDEF /* use this value when a specific value not to be \ 458cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson overwritten */ 459cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 460cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_PENC \ 461cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_LE_KEY_PENC /* encryption information of peer device */ 462cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_PID BTM_LE_KEY_PID /* identity key of the peer device */ 463cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_PCSRK BTM_LE_KEY_PCSRK /* peer SRK */ 464cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_LENC \ 465cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_LE_KEY_LENC /* master role security information:div */ 466cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_LID BTM_LE_KEY_LID /* master device ID key */ 467cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_LCSRK \ 468cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_LE_KEY_LCSRK /* local CSRK has been deliver to peer */ 469e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_LE_KEY_TYPE; /* can be used as a bit mask */ 4705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 471cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_PENC_KEYS tBTA_LE_PENC_KEYS; 4725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef tBTM_LE_PCSRK_KEYS tBTA_LE_PCSRK_KEYS; 473cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_LENC_KEYS tBTA_LE_LENC_KEYS; 474cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_LCSRK_KEYS tBTA_LE_LCSRK_KEYS; 475cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_PID_KEYS tBTA_LE_PID_KEYS; 476cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 477cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union { 478cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_PENC_KEYS penc_key; /* received peer encryption key */ 479cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_PCSRK_KEYS psrk_key; /* received peer device SRK */ 480cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_PID_KEYS pid_key; /* peer device ID key */ 481cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_LENC_KEYS 482cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson lenc_key; /* local encryption reproduction keys LTK = = d1(ER,DIV,0)*/ 483cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_LCSRK_KEYS lcsrk_key; /* local device CSRK = d1(ER,DIV,1)*/ 484cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_PID_KEYS lid_key; /* local device ID key for the particular remote */ 485cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_LE_KEY_VALUE; 486cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 487cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_LOCAL_KEY_TYPE_ID 1 488cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_LOCAL_KEY_TYPE_ER 2 489e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_LOCAL_KEY_MASK; 4905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 491cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 492cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BT_OCTET16 ir; 493cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BT_OCTET16 irk; 494cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BT_OCTET16 dhk; 495cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_BLE_LOCAL_ID_KEYS; 4965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 497cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SEC_GRANTED BTA_SUCCESS 498cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SEC_PAIR_NOT_SPT BTA_DM_AUTH_SMP_PAIR_NOT_SUPPORT 499cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SEC_REP_ATTEMPTS BTA_DM_AUTH_SMP_REPEATED_ATTEMPT 500e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_SEC_GRANT; 5015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_BLE_SEC_REQ_EVT */ 503cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 504a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* peer address */ 505cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* peer device name */ 5065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_BLE_SEC_REQ; 5075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 508cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 509a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* peer address */ 510cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTM_LE_KEY_TYPE key_type; 511cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTM_LE_KEY_VALUE* p_key_value; 512cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_BLE_KEY; 5135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_AUTH_CMPL_EVT */ 515cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 516a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* BD address peer device. */ 517cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* Name of peer device. */ 518cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool key_present; /* Valid link key value in key element */ 519cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson LINK_KEY key; /* Link key associated with peer device. */ 520cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t key_type; /* The type of Link Key */ 521cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool success; /* true of authentication succeeded, false if failed. */ 522cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t fail_reason; /* The HCI reason/error code for when success=false */ 523cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBLE_ADDR_TYPE addr_type; /* Peer device address type */ 524cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBT_DEVICE_TYPE dev_type; 5255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_AUTH_CMPL; 5265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_AUTHORIZE_EVT */ 528cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 529a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* BD address peer device. */ 530cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* Name of peer device. */ 531cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_SERVICE_ID service; /* Service ID to authorize. */ 532cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson DEV_CLASS dev_class; 5335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_AUTHORIZE; 5345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_LINK_UP_EVT */ 536cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 537a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* BD address peer device. */ 538cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_TRANSPORT link_type; 5395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_LINK_UP; 5405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_LINK_DOWN_EVT */ 542cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 543a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* BD address peer device. */ 544cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t status; /* connection open/closed */ 545cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool is_removed; /* true if device is removed when link is down */ 546cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_TRANSPORT link_type; 5475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_LINK_DOWN; 5485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_ROLE_CHG_EVT */ 550cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 551a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* BD address peer device. */ 552cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t new_role; /* the new connection role */ 5535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_ROLE_CHG; 5545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_BUSY_LEVEL_EVT */ 556cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 557cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t level; /* when paging or inquiring, level is 10. 558cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Otherwise, the number of ACL links */ 559cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t level_flags; /* indicates individual flags */ 5605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_BUSY_LEVEL; 5615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5622e8e9f42132d0297a94c0852a1fbf45c9bc348e5Myles Watson#define BTA_IO_CAP_OUT BTM_IO_CAP_OUT /* 0 DisplayOnly */ 5632e8e9f42132d0297a94c0852a1fbf45c9bc348e5Myles Watson#define BTA_IO_CAP_IO BTM_IO_CAP_IO /* 1 DisplayYesNo */ 5642e8e9f42132d0297a94c0852a1fbf45c9bc348e5Myles Watson#define BTA_IO_CAP_IN BTM_IO_CAP_IN /* 2 KeyboardOnly */ 5652e8e9f42132d0297a94c0852a1fbf45c9bc348e5Myles Watson#define BTA_IO_CAP_NONE BTM_IO_CAP_NONE /* 3 NoInputNoOutput */ 566cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_IO_CAP_KBDISP BTM_IO_CAP_KBDISP /* 4 Keyboard display */ 567cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_IO_CAP tBTA_IO_CAP; 568cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 569cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_SP_NO \ 570cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_SP_NO /* 0 MITM Protection Not Required - Single \ 571cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Profile/non-bonding \ 572cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Numeric comparison with automatic accept allowed */ 573cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_SP_YES \ 574cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_SP_YES /* 1 MITM Protection Required - Single Profile/non-bonding \ 575cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Use IO Capabilities to determine authentication procedure \ 576cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 577cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_AP_NO \ 578cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_AP_NO /* 2 MITM Protection Not Required - All Profiles/dedicated \ 579cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bonding \ 580cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Numeric comparison with automatic accept allowed */ 581cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_AP_YES \ 582cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_AP_YES /* 3 MITM Protection Required - All Profiles/dedicated \ 583cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bonding \ 584cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Use IO Capabilities to determine authentication procedure \ 585cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 586cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_SPGB_NO \ 587cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_SPGB_NO /* 4 MITM Protection Not Required - Single Profiles/general \ 588cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bonding \ 589cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Numeric comparison with automatic accept allowed */ 590cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_SPGB_YES \ 591cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_SPGB_YES /* 5 MITM Protection Required - Single Profiles/general \ 592cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bonding \ 593cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Use IO Capabilities to determine authentication \ 594cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson procedure */ 595cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_AUTH_REQ tBTA_AUTH_REQ; 596cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 597cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_DD_BOND \ 598cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_DD_BOND /* 2 this bit is set for dedicated bonding */ 599cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_GEN_BOND \ 600cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_SPGB_NO /* 4 this bit is set for general bonding */ 601cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_BONDS \ 602cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_BONDS /* 6 the general/dedicated bonding bits */ 603cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 604cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_NO_BOND BTM_LE_AUTH_REQ_NO_BOND /* 0*/ 605cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_BOND BTM_LE_AUTH_REQ_BOND /* 1 << 0 */ 606cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_MITM BTM_LE_AUTH_REQ_MITM /* 1 << 2 */ 607cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 608cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_SC_ONLY BTM_LE_AUTH_REQ_SC_ONLY /* 1 << 3 */ 609cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_SC_BOND BTM_LE_AUTH_REQ_SC_BOND /* 1001 */ 610cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_SC_MITM BTM_LE_AUTH_REQ_SC_MITM /* 1100 */ 611cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_SC_MITM_BOND BTM_LE_AUTH_REQ_SC_MITM_BOND /* 1101 */ 612cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_AUTH_REQ 613cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_AUTH_REQ; /* combination of the above bit pattern */ 614cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 615cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_OOB_NONE BTM_OOB_NONE 616cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_OOB_PRESENT BTM_OOB_PRESENT 617cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_OOB_UNKNOWN BTM_OOB_UNKNOWN 618cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 619cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_OOB_DATA tBTA_OOB_DATA; 6205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_SP_CFM_REQ_EVT */ 622cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 623cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in 624cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * order */ 625a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* peer address */ 626cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson DEV_CLASS dev_class; /* peer CoD */ 627cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* peer device name */ 628cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t num_val; /* the numeric value for comparison. If just_works, do not 629cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson show this number to UI */ 630cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool just_works; /* true, if "Just Works" association model */ 631cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_AUTH_REQ loc_auth_req; /* Authentication required for local device */ 632cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_AUTH_REQ rmt_auth_req; /* Authentication required for peer device */ 633cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_IO_CAP loc_io_caps; /* IO Capabilities of local device */ 634cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_AUTH_REQ rmt_io_caps; /* IO Capabilities of remote device */ 6355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SP_CFM_REQ; 6365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 637cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum { 638cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_SP_KEY_STARTED, /* passkey entry started */ 639cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_SP_KEY_ENTERED, /* passkey digit entered */ 640cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_SP_KEY_ERASED, /* passkey digit erased */ 641cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_SP_KEY_CLEARED, /* passkey cleared */ 642cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_SP_KEY_COMPLT /* passkey entry completed */ 6435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 644cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef uint8_t tBTA_SP_KEY_TYPE; 6455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_SP_KEYPRESS_EVT */ 647cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 648a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* peer address */ 649cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_SP_KEY_TYPE notif_type; 650cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_SP_KEY_PRESS; 6515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_SP_KEY_NOTIF_EVT */ 653cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 654cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in 655cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * order */ 656a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* peer address */ 657cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson DEV_CLASS dev_class; /* peer CoD */ 658cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* peer device name */ 659cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t passkey; /* the numeric value for comparison. If just_works, do not 660cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson show this number to UI */ 6615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SP_KEY_NOTIF; 6625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_SP_RMT_OOB_EVT */ 664cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 665cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in 666cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * order */ 667a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* peer address */ 668cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson DEV_CLASS dev_class; /* peer CoD */ 669cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* peer device name */ 6705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SP_RMT_OOB; 6715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_BOND_CANCEL_CMPL_EVT */ 673cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 674cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_STATUS result; /* true of bond cancel succeeded, false if failed. */ 6755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_BOND_CANCEL_CMPL; 6765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Union of all security callback structures */ 678cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union { 679cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_ENABLE enable; /* BTA enabled */ 680cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_PIN_REQ pin_req; /* PIN request. */ 681cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_AUTH_CMPL auth_cmpl; /* Authentication complete indication. */ 682cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_AUTHORIZE authorize; /* Authorization request. */ 683cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_LINK_UP link_up; /* ACL connection down event */ 684cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_LINK_DOWN link_down; /* ACL connection down event */ 685cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BUSY_LEVEL busy_level; /* System busy level */ 686cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SP_CFM_REQ cfm_req; /* user confirm request */ 687cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SP_KEY_NOTIF key_notif; /* passkey notification */ 688cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SP_RMT_OOB rmt_oob; /* remote oob */ 689cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BOND_CANCEL_CMPL 690cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bond_cancel_cmpl; /* Bond Cancel Complete indication */ 691cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SP_KEY_PRESS key_press; /* key press notification event */ 692cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_ROLE_CHG role_chg; /* role change event */ 693cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_SEC_REQ ble_req; /* BLE SMP related request */ 694cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_KEY ble_key; /* BLE SMP keys used when pairing */ 695cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_BLE_LOCAL_ID_KEYS ble_id_keys; /* IR event */ 696cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BT_OCTET16 ble_er; /* ER event data */ 6975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SEC; 6985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Security callback */ 700cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_SEC_CBACK)(tBTA_DM_SEC_EVT event, tBTA_DM_SEC* p_data); 7015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 702cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_LIST_LOGIC_OR 1 703cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_FILT_LOGIC_OR 0 7041a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji 7055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Search callback events */ 706cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_RES_EVT 0 /* Inquiry result for a peer device. */ 707cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_CMPL_EVT 1 /* Inquiry complete. */ 708cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DISC_RES_EVT 2 /* Discovery result for a peer device. */ 709cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DISC_BLE_RES_EVT \ 710cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 3 /* Discovery result for BLE GATT based servoce on a peer device. */ 711cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DISC_CMPL_EVT 4 /* Discovery complete. */ 712cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DI_DISC_CMPL_EVT 5 /* Discovery complete. */ 713cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SEARCH_CANCEL_CMPL_EVT 6 /* Search cancelled */ 7145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 715e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_SEARCH_EVT; 7165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 717cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_RES_IGNORE_RSSI \ 718cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_INQ_RES_IGNORE_RSSI /* 0x7f RSSI value not supplied (ignore it) */ 7195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_INQ_RES_EVT */ 721cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 722a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* BD address peer device. */ 723cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson DEV_CLASS dev_class; /* Device class of peer device. */ 724cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool remt_name_not_required; /* Application sets this flag if it already knows 725cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson the name of the device */ 726cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson /* If the device name is known to application BTA skips the remote name 727cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * request */ 728cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool is_limited; /* true, if the limited inquiry bit is set in the CoD */ 729cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson int8_t rssi; /* The rssi value */ 730cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* p_eir; /* received EIR */ 731f7100bb0e57ed289833c353ba06028345f9f39b6Jakub Pawlowski uint16_t eir_len; /* received EIR length */ 732cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t inq_result_type; 733cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t ble_addr_type; 734d64bf4f6f8b34471b120330bf3be2b8b7aab0274Jakub Pawlowski uint16_t ble_evt_type; 7357de0f9b78fb38fcb02cbcd3c1c7c005947b9e291Jakub Pawlowski uint8_t ble_primary_phy; 7367de0f9b78fb38fcb02cbcd3c1c7c005947b9e291Jakub Pawlowski uint8_t ble_secondary_phy; 7377de0f9b78fb38fcb02cbcd3c1c7c005947b9e291Jakub Pawlowski uint8_t ble_advertising_sid; 7387de0f9b78fb38fcb02cbcd3c1c7c005947b9e291Jakub Pawlowski int8_t ble_tx_power; 7397de0f9b78fb38fcb02cbcd3c1c7c005947b9e291Jakub Pawlowski uint16_t ble_periodic_adv_int; 740cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBT_DEVICE_TYPE device_type; 741cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t flag; 7425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_INQ_RES; 7435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_INQ_CMPL_EVT */ 745cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 746cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t num_resps; /* Number of inquiry responses. */ 7475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_INQ_CMPL; 7485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_DI_DISC_CMPL_EVT */ 750cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 751a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* BD address peer device. */ 752cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t num_record; /* Number of DI record */ 753cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_STATUS result; 7545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_DI_DISC_CMPL; 7555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_DISC_RES_EVT */ 757cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 758a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* BD address peer device. */ 759cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* Name of peer device. */ 760cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_SERVICE_MASK services; /* Services found on peer device. */ 761cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* p_raw_data; /* Raw data for discovery DB */ 762cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t raw_data_size; /* size of raw data */ 763cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBT_DEVICE_TYPE device_type; /* device type in case it is BLE device */ 764cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t num_uuids; 765819e2ecb84a22d6e03ec9ed67b3260c0dd7e8abaJakub Pawlowski bluetooth::Uuid* p_uuid_list; 766cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_STATUS result; 7675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_DISC_RES; 7685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with tBTA_DM_DISC_BLE_RES */ 770cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 771a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* BD address peer device. */ 772cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* Name of peer device. */ 773819e2ecb84a22d6e03ec9ed67b3260c0dd7e8abaJakub Pawlowski bluetooth::Uuid service; /* GATT based Services UUID found on peer device. */ 7745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_DISC_BLE_RES; 7755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Union of all search callback structures */ 777cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union { 778cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_INQ_RES inq_res; /* Inquiry result for a peer device. */ 779cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_INQ_CMPL inq_cmpl; /* Inquiry complete. */ 780cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_DISC_RES disc_res; /* Discovery result for a peer device. */ 781cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_DISC_BLE_RES 782cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson disc_ble_res; /* discovery result for GATT based service */ 783cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_DI_DISC_CMPL di_disc; /* DI discovery result for a peer device */ 7845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SEARCH; 7865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Search callback */ 788cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_SEARCH_CBACK)(tBTA_DM_SEARCH_EVT event, 789cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH* p_data); 7905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Execute call back */ 792cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_EXEC_CBACK)(void* p_param); 7935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Encryption callback*/ 795a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskitypedef void(tBTA_DM_ENCRYPT_CBACK)(const RawAddress& bd_addr, 796c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski tBTA_TRANSPORT transport, 797cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_STATUS result); 7985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 799cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_NONE BTM_BLE_SEC_NONE 800cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_ENCRYPT BTM_BLE_SEC_ENCRYPT 801cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_NO_MITM BTM_BLE_SEC_ENCRYPT_NO_MITM 802cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_MITM BTM_BLE_SEC_ENCRYPT_MITM 803cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_SEC_ACT tBTA_DM_BLE_SEC_ACT; 804c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 805cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_TX_TIME_MS tBTA_DM_BLE_TX_TIME_MS; 806cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_RX_TIME_MS tBTA_DM_BLE_RX_TIME_MS; 807cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_IDLE_TIME_MS tBTA_DM_BLE_IDLE_TIME_MS; 808cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_ENERGY_USED tBTA_DM_BLE_ENERGY_USED; 809cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 810cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONTRL_UNKNOWN 0 /* Unknown state */ 811cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONTRL_ACTIVE 1 /* ACL link on, SCO link ongoing, sniff mode */ 812cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONTRL_SCAN \ 813cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 2 /* Scan state - paging/inquiry/trying to \ 814cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson connect*/ 815cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONTRL_IDLE \ 816cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 3 /* Idle state - page scan, LE advt, inquiry scan \ 817cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 818e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji 819e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_CONTRL_STATE; 820e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji 821e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_ADV_STATE; 822e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_ADV_INFO_PRESENT; 823e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_RSSI_VALUE; 824e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint16_t tBTA_DM_BLE_ADV_INFO_TIMESTAMP; 825f538707fe64c62b1dbb8e4210e4a1bfa0bab2b56Satya Calloji 826cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_BLE_ENERGY_INFO_CBACK)(tBTA_DM_BLE_TX_TIME_MS tx_time, 827cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_RX_TIME_MS rx_time, 828cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_IDLE_TIME_MS idle_time, 829cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_ENERGY_USED energy_used, 830cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_CONTRL_STATE ctrl_state, 831cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_STATUS status); 832e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji 8335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Maximum service name length */ 834cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SERVICE_NAME_LEN 35 835cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SERVICE_DESP_LEN BTA_SERVICE_NAME_LEN 836cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_PROVIDER_NAME_LEN BTA_SERVICE_NAME_LEN 8375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* link policy masks */ 839cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LP_SWITCH HCI_ENABLE_MASTER_SLAVE_SWITCH 840cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LP_HOLD HCI_ENABLE_HOLD_MODE 841cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LP_SNIFF HCI_ENABLE_SNIFF_MODE 842cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LP_PARK HCI_ENABLE_PARK_MODE 843e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint16_t tBTA_DM_LP_MASK; 8445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* power mode actions */ 846cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_NO_ACTION 0x00 /* no change to the current pm setting */ 847cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK 0x10 /* prefers park mode */ 848cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF 0x20 /* prefers sniff mode */ 849cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF1 0x21 /* prefers sniff1 mode */ 850cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF2 0x22 /* prefers sniff2 mode */ 851cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF3 0x23 /* prefers sniff3 mode */ 852cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF4 0x24 /* prefers sniff4 mode */ 853cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF5 0x25 /* prefers sniff5 mode */ 854cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF6 0x26 /* prefers sniff6 mode */ 855cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF7 0x27 /* prefers sniff7 mode */ 856cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_USER0 \ 857cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 0x28 /* prefers user-defined sniff0 mode (testtool only) */ 858cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_USER1 \ 859cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 0x29 /* prefers user-defined sniff1 mode (testtool only) */ 860cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_ACTIVE 0x40 /* prefers active mode */ 861cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_RETRY 0x80 /* retry power mode based on current settings */ 862cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SUSPEND 0x04 /* prefers suspend mode */ 863cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_NO_PREF \ 864cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 0x01 /* service has no prefernce on power mode setting. eg. connection to \ 865cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson service got closed */ 8665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 867e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_PM_ACTION; 8685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* index to bta_dm_ssr_spec */ 870cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR0 0 871cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR1 \ 872cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 1 /* BTA_DM_PM_SSR1 will be dedicated for \ 873cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson HH SSR setting entry, no other profile can use it */ 874cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR2 2 875cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR3 3 876cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR4 4 877cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR5 5 878cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR6 6 879cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 880cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_NUM_EVTS 9 8815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_DM_PM_PARK_IDX 883cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_IDX \ 884cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 5 /* the actual index to bta_dm_pm_md[] for PARK mode */ 8855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 8865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 88763399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_A2DP_IDX 888cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_A2DP_IDX BTA_DM_PM_SNIFF 88963399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 89063399d943938cb7234a7fba508ea603070720d77Adam Hampson 89163399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HD_IDLE_IDX 892cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_HD_IDLE_IDX BTA_DM_PM_SNIFF2 89363399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 89463399d943938cb7234a7fba508ea603070720d77Adam Hampson 89563399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_SCO_OPEN_IDX 896cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_SCO_OPEN_IDX BTA_DM_PM_SNIFF3 89763399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 89863399d943938cb7234a7fba508ea603070720d77Adam Hampson 89963399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HD_ACTIVE_IDX 90063399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF_HD_ACTIVE_IDX BTA_DM_PM_SNIFF4 90163399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 90263399d943938cb7234a7fba508ea603070720d77Adam Hampson 90363399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HH_OPEN_IDX 90463399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF_HH_OPEN_IDX BTA_DM_PM_SNIFF2 90563399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 90663399d943938cb7234a7fba508ea603070720d77Adam Hampson 90763399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HH_ACTIVE_IDX 90863399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF_HH_ACTIVE_IDX BTA_DM_PM_SNIFF2 90963399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 91063399d943938cb7234a7fba508ea603070720d77Adam Hampson 91163399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HH_IDLE_IDX 91263399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF_HH_IDLE_IDX BTA_DM_PM_SNIFF2 91363399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 91463399d943938cb7234a7fba508ea603070720d77Adam Hampson 91563399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_HH_OPEN_DELAY 91663399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_HH_OPEN_DELAY 30000 91763399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 91863399d943938cb7234a7fba508ea603070720d77Adam Hampson 91963399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_HH_ACTIVE_DELAY 92063399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_HH_ACTIVE_DELAY 30000 92163399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 92263399d943938cb7234a7fba508ea603070720d77Adam Hampson 92363399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_HH_IDLE_DELAY 92463399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_HH_IDLE_DELAY 30000 92563399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 92663399d943938cb7234a7fba508ea603070720d77Adam Hampson 92763399d943938cb7234a7fba508ea603070720d77Adam Hampson/* The Sniff Parameters defined below must be ordered from highest 92863399d943938cb7234a7fba508ea603070720d77Adam Hampson * latency (biggest interval) to lowest latency. If there is a conflict 92963399d943938cb7234a7fba508ea603070720d77Adam Hampson * among the connected services the setting with the lowest latency will 93063399d943938cb7234a7fba508ea603070720d77Adam Hampson * be selected. If a device should override a sniff parameter then it 93163399d943938cb7234a7fba508ea603070720d77Adam Hampson * must insure that order is maintained. 93263399d943938cb7234a7fba508ea603070720d77Adam Hampson */ 93363399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_MAX 934cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_MAX 800 935cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_MIN 400 936cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_ATTEMPT 4 937cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_TIMEOUT 1 93863399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 93963399d943938cb7234a7fba508ea603070720d77Adam Hampson 94063399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF1_MAX 941cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF1_MAX 400 942cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF1_MIN 200 94363399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF1_ATTEMPT 4 94463399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF1_TIMEOUT 1 94563399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 94663399d943938cb7234a7fba508ea603070720d77Adam Hampson 94763399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF2_MAX 9488843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta#define BTA_DM_PM_SNIFF2_MAX 54 9498843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta#define BTA_DM_PM_SNIFF2_MIN 30 95063399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF2_ATTEMPT 4 95163399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF2_TIMEOUT 1 95263399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 95363399d943938cb7234a7fba508ea603070720d77Adam Hampson 95463399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF3_MAX 955cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF3_MAX 150 956cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF3_MIN 50 95763399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF3_ATTEMPT 4 95863399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF3_TIMEOUT 1 95963399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 96063399d943938cb7234a7fba508ea603070720d77Adam Hampson 96163399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF4_MAX 962be6d6ce0ae1e2e3cc9f18e54bb24b2f7118f0cb5Ivan Podogov#define BTA_DM_PM_SNIFF4_MAX 18 963be6d6ce0ae1e2e3cc9f18e54bb24b2f7118f0cb5Ivan Podogov#define BTA_DM_PM_SNIFF4_MIN 10 96463399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF4_ATTEMPT 4 96563399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF4_TIMEOUT 1 96663399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 96763399d943938cb7234a7fba508ea603070720d77Adam Hampson 9681076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov#ifndef BTA_DM_PM_SNIFF5_MAX 969cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF5_MAX 36 970cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF5_MIN 30 9711076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov#define BTA_DM_PM_SNIFF5_ATTEMPT 2 9721076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov#define BTA_DM_PM_SNIFF5_TIMEOUT 0 9731076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov#endif 9741076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov 97563399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_PARK_MAX 976cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_MAX 800 977cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_MIN 400 978cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_ATTEMPT 0 979cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_TIMEOUT 0 98063399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 98163399d943938cb7234a7fba508ea603070720d77Adam Hampson 9825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Switch callback events */ 983cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SWITCH_CMPL_EVT 0 /* Completion of the Switch API */ 9845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 985e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_SWITCH_EVT; 986cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_SWITCH_CBACK)(tBTA_DM_SWITCH_EVT event, 987cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_STATUS status); 9885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Audio routing out configuration */ 990cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_NONE 0x00 /* No Audio output */ 991cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_DAC 0x01 /* routing over analog output */ 992cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_I2S 0x02 /* routing over digital (I2S) output */ 993cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_BT_MONO 0x04 /* routing over SCO */ 994cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_BT_STEREO 0x08 /* routing over BT Stereo */ 995cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_HOST 0x10 /* routing over Host */ 996cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_FMTX 0x20 /* routing over FMTX */ 997cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_FMRX 0x40 /* routing over FMRX */ 998cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_BTSNK 0x80 /* routing over BT SNK */ 9995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1000e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_ROUTE_PATH; 10015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Device Identification (DI) data structure 10035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 10045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Used to set the DI record */ 1005cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tSDP_DI_RECORD tBTA_DI_RECORD; 10065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Used to get the DI record */ 1007cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tSDP_DI_GET_RECORD tBTA_DI_GET_RECORD; 10085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SDP discovery database */ 1009cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tSDP_DISCOVERY_DB tBTA_DISCOVERY_DB; 10105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1011cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#ifndef BTA_DI_NUM_MAX 1012cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DI_NUM_MAX 3 10135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 10145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10153aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/* Device features mask definitions */ 1016cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_FEATURE_BYTES_PER_PAGE BTM_FEATURE_BYTES_PER_PAGE 1017cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_EXT_FEATURES_PAGE_MAX BTM_EXT_FEATURES_PAGE_MAX 10187fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* ACL type 10197fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta*/ 1020cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_TYPE_BR_EDR 0x01 1021cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_TYPE_LE 0x02 1022cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_TYPE_ALL 0xFF 1023e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_LINK_TYPE; 10243aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach 1025cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define IMMEDIATE_DELY_MODE 0x00 1026cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define ONFOUND_DELY_MODE 0x01 1027cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BATCH_DELY_MODE 0x02 1028cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define ALLOW_ALL_FILTER 0x00 1029cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define LOWEST_RSSI_VALUE 129 10306e2d9db5148176d88d7f48c3b2ad5b27c57ca14dSatya Calloji 10315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 10328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * External Function Declarations 10338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ****************************************************************************/ 10345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_EnableBluetooth 10388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function initializes BTA and prepares BTA and the 10408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Bluetooth protocol stack for use. This function is 10418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * typically called at startup or when Bluetooth services 10428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * are required by the phone. This function must be called 10438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * before calling any other API function. 10448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns BTA_SUCCESS if successful. 10478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * BTA_FAIL if internal failure. 10488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1050cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern tBTA_STATUS BTA_EnableBluetooth(tBTA_DM_SEC_CBACK* p_cback); 10515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DisableBluetooth 10558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function disables BTA and the Bluetooth protocol 10578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * stack. It is called when BTA is no longer being used 10588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * by any application in the system. 10598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 10628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 106424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTA_STATUS BTA_DisableBluetooth(void); 10655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_EnableTestMode 10698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Enables bluetooth device under test mode 10718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns tBTA_STATUS 10748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 107624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTA_STATUS BTA_EnableTestMode(void); 10775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DisableTestMode 10818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Disable bluetooth device under test mode 10838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns None 10868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 108824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DisableTestMode(void); 10895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSetDeviceName 10938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function sets the Bluetooth name of the local device. 10958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 10988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1100cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSetDeviceName(char* p_name); 11015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSetVisibility 11058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function sets the Bluetooth connectable,discoverable, 1107cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * pairable and conn paired only modesmodes of the local 11081baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * device. 1109cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * This controls whether other Bluetooth devices can find and 11101baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * connect to the local device. 11118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 11148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1116cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSetVisibility(tBTA_DM_DISC disc_mode, tBTA_DM_CONN conn_mode, 1117cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t pairable_mode, uint8_t conn_filter); 11185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSearch 11228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function searches for peer Bluetooth devices. It 11248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * first performs an inquiry; for each device found from the 11258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * inquiry it gets the remote name of the device. If 11268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * parameter services is nonzero, service discovery will be 11278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * performed on each device for the services specified. 11288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 11318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1133cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSearch(tBTA_DM_INQ* p_dm_inq, tBTA_SERVICE_MASK services, 1134cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH_CBACK* p_cback); 11355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSearchCancel 11398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function cancels a search that has been initiated 11418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * by calling BTA_DmSearch(). 11428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 11458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 114724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmSearchCancel(void); 11485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmDiscover 11528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function performs service discovery for the services 11548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * of a particular peer device. 11558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 11588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1160a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmDiscover(const RawAddress& bd_addr, 1161c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski tBTA_SERVICE_MASK services, 1162cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH_CBACK* p_cback, bool sdp_search); 11635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmDiscoverUUID 11678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function performs service discovery for the services 11698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * of a particular peer device. 11708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 11738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1175819e2ecb84a22d6e03ec9ed67b3260c0dd7e8abaJakub Pawlowskiextern void BTA_DmDiscoverUUID(const RawAddress& bd_addr, 1176819e2ecb84a22d6e03ec9ed67b3260c0dd7e8abaJakub Pawlowski const bluetooth::Uuid& uuid, 1177cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH_CBACK* p_cback, bool sdp_search); 11785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmGetCachedRemoteName 11828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Retieve cached remote name if available 11848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns BTA_SUCCESS if cached name was retrieved 11868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * BTA_FAILURE if cached name is not available 11878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1189a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub PawlowskitBTA_STATUS BTA_DmGetCachedRemoteName(const RawAddress& remote_device, 1190cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t** pp_cached_name); 11915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBond 11958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function initiates a bonding procedure with a peer 11978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * device. The bonding procedure enables authentication 11988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * and optionally encryption on the Bluetooth link. 11998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 12028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1204a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmBond(const RawAddress& bd_addr); 12055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 12078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBondByTransport 12098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function initiates a bonding procedure with a peer 1211cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * device by designated transport. The bonding procedure 12121baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * enables authentication and optionally encryption on the 12131baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * Bluetooth link. 12148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 12178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1219a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmBondByTransport(const RawAddress& bd_addr, 1220c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski tBTA_TRANSPORT transport); 12217fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 12227fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/******************************************************************************* 12238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBondCancel 12258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function cancels a bonding procedure with a peer 12278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * device. 12288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 12318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1233a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmBondCancel(const RawAddress& bd_addr); 12345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 12368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmPinReply 12388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function provides a PIN when one is requested by DM 12408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * during a bonding procedure. The application should call 12418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * this function after the security callback is called with 12428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * a BTA_DM_PIN_REQ_EVT. 12438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 12468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1248a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmPinReply(const RawAddress& bd_addr, bool accept, 1249c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski uint8_t pin_len, uint8_t* p_pin); 12505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 12528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmLocalOob 12548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function retrieves the OOB data from local controller. 12568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * The result is reported by bta_dm_co_loc_oob(). 12578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 12598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 126124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmLocalOob(void); 12625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 12648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmConfirm 12668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function accepts or rejects the numerical value of the 12688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Simple Pairing process on BTA_DM_SP_CFM_REQ_EVT 12698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 12718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1273a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmConfirm(const RawAddress& bd_addr, bool accept); 12745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 12768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmAddDevice 12788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function adds a device to the security database list 12808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * of peer devices. This function would typically be called 12818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * at system startup to initialize the security database with 12828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * known peer devices. This is a direct execution function 12838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * that may lock task scheduling on some platforms. 12848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 12868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1288a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmAddDevice(const RawAddress& bd_addr, DEV_CLASS dev_class, 128924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans LINK_KEY link_key, tBTA_SERVICE_MASK trusted_mask, 1290e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssen bool is_trusted, uint8_t key_type, 1291e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssen tBTA_IO_CAP io_cap, uint8_t pin_length); 12925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 12948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmRemoveDevice 12968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function removes a device from the security database. 12988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * This is a direct execution function that may lock task 12998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * scheduling on some platforms. 13008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns BTA_SUCCESS if successful. 13038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * BTA_FAIL if operation failed. 13048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1306a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTA_STATUS BTA_DmRemoveDevice(const RawAddress& bd_addr); 13075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 13098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_GetEirService 13118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to get BTA service mask from EIR. 13138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters p_eir - pointer of EIR significant part 13150595ca0018ac9980d1dd7e192301f8494a01f9cbJakub Pawlowski * eir_len - EIR length 13168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_services - return the BTA service mask 13178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns None 13198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 13210595ca0018ac9980d1dd7e192301f8494a01f9cbJakub Pawlowskiextern void BTA_GetEirService(uint8_t* p_eir, size_t eir_len, 13220595ca0018ac9980d1dd7e192301f8494a01f9cbJakub Pawlowski tBTA_SERVICE_MASK* p_services); 13235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13245c0b052090a57b3926669c23349b0f0db68853f8Andre Eisenbach/******************************************************************************* 13258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmGetConnectionState 13278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Returns whether the remote device is currently connected. 13298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns 0 if the device is NOT connected. 13318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1333a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern uint16_t BTA_DmGetConnectionState(const RawAddress& bd_addr); 13345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 13368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSetLocalDiRecord 13388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function adds a DI record to the local SDP database. 13408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns BTA_SUCCESS if record set sucessfully, otherwise error code. 13428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1344cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern tBTA_STATUS BTA_DmSetLocalDiRecord(tBTA_DI_RECORD* p_device_info, 1345cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t* p_handle); 13465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 13488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmCloseACL 13518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1352cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description This function force to close an ACL connection and remove 1353cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson the 13548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * device from the security database list of known devices. 13558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - Address of the peer device 13578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * remove_dev - remove device or not after link down 13588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * transport - which transport to close 13598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson 13608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void. 13628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1364a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmCloseACL(const RawAddress& bd_addr, bool remove_dev, 1365cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_TRANSPORT transport); 13665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 13688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function bta_dmexecutecallback 13708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1371cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description This function will request BTA to execute a call back in the 13721baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * context of BTU task. 13738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * This API was named in lower case because it is only intended 13748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * for the internal customers(like BTIF). 13758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 13778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1379cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dmexecutecallback(tBTA_DM_EXEC_CBACK* p_callback, 1380cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson void* p_param); 13815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTM_SCO_HCI_INCLUDED == TRUE) 13835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 13848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmPcmInitSamples 13868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description initialize the down sample converter. 13888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * src_sps: original samples per second (source audio data) 13908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * (ex. 44100, 48000) 13918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * bits: number of bits per pcm sample (16) 13928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * n_channels: number of channels (i.e. mono(1), stereo(2)...) 13938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns none 13958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1397cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmPcmInitSamples(uint32_t src_sps, uint32_t bits, 1398cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t n_channels); 13995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1400ee96a3c60fca590d38025925c072d264e06493c4Myles Watson/******************************************************************************* 14018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmPcmResample 14028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1403cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description Down sampling utility to convert higher sampling rate into 14041baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * 8K/16bits 14058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * PCM samples. 14068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters p_src: pointer to the buffer where the original sampling PCM 14088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * are stored. 14098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * in_bytes: Length of the input PCM sample buffer in byte. 14101baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * p_dst: pointer to the buffer which is to be used to store 14111baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * the converted PCM samples. 14128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns int32_t: number of samples converted. 14158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1416ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/ 1417cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern int32_t BTA_DmPcmResample(void* p_src, uint32_t in_bytes, void* p_dst); 14185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 14195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BLE related API functions */ 14215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 14228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleSecurityGrant 14248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Grant security request access. 14268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peer 14288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * res - security grant status. 14298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 14318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1433a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmBleSecurityGrant(const RawAddress& bd_addr, 1434c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski tBTA_DM_BLE_SEC_GRANT res); 14355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 143683211b0ccceb53586ac651a4d67ded7443b2f222Jakub Pawlowski/** 143783211b0ccceb53586ac651a4d67ded7443b2f222Jakub Pawlowski * Set BLE connectable mode to auto connect 143883211b0ccceb53586ac651a4d67ded7443b2f222Jakub Pawlowski */ 143983211b0ccceb53586ac651a4d67ded7443b2f222Jakub Pawlowskiextern void BTA_DmBleStartAutoConn(); 14405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 14428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBlePasskeyReply 14448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Send BLE SMP passkey reply. 14468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peer 14488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * accept - passkey entry sucessful or declined. 14498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * passkey - passkey value, must be a 6 digit number, 14508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * can be lead by 0. 14518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 14538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1455a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmBlePasskeyReply(const RawAddress& bd_addr, bool accept, 1456cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t passkey); 14575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 14598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleConfirmReply 14618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Send BLE SMP SC user confirmation reply. 14638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peer 1465cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * accept - numbers to compare are the same or 14661baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * different. 14678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 14698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1471a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmBleConfirmReply(const RawAddress& bd_addr, bool accept); 1472444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji 1473444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/******************************************************************************* 14748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmAddBleDevice 14768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Add a BLE device. This function will be normally called 14788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * during host startup to restore all required information 14798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * for a LE device stored in the NVRAM. 14808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peer 14828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * dev_type - Remote device's device type. 14838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * addr_type - LE device address type. 14848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 14868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1488a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmAddBleDevice(const RawAddress& bd_addr, 1489c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski tBLE_ADDR_TYPE addr_type, 149024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans tBT_DEVICE_TYPE dev_type); 14915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 14938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmAddBleKey 14958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Add/modify LE device information. This function will be 14978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * normally called during host startup to restore all required 14988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * information stored in the NVRAM. 14998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peer 15018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_le_key - LE key values. 15028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * key_type - LE SMP key type. 15038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 15058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1507a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmAddBleKey(const RawAddress& bd_addr, 1508c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski tBTA_LE_KEY_VALUE* p_le_key, 1509cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_KEY_TYPE key_type); 15105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 15115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 15128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSetBlePrefConnParams 15148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to set the preferred connection 15168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * parameters when default connection parameter is not desired. 15178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peripheral 15198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * min_conn_int - minimum preferred connection interval 15208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * max_conn_int - maximum preferred connection interval 15218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * slave_latency - preferred slave latency 15228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * supervision_tout - preferred supervision timeout 15238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 15268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1528a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmSetBlePrefConnParams(const RawAddress& bd_addr, 1529cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t min_conn_int, 1530cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t max_conn_int, 1531cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t slave_latency, 1532cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t supervision_tout); 15335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 15345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 15358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSetBleConnScanParams 15378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to set scan parameters used in 15398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * BLE connection request 15408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: scan_interval - scan interval 15428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * scan_window - scan window 15438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 15458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1547e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmSetBleConnScanParams(uint32_t scan_interval, 1548e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssen uint32_t scan_window); 15495725fc6d2c639a8c22a08b9b6629309eeda3715eSatya Calloji 15505725fc6d2c639a8c22a08b9b6629309eeda3715eSatya Calloji/******************************************************************************* 15518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSearchExt 15538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1554cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description This function searches for peer Bluetooth devices. It 15551baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * performs an inquiry and gets the remote name for devices. 15561baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * Service discovery is done if services is non zero 15578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters p_dm_inq: inquiry conditions 1559cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * services: if service is not empty, service discovery will be 15601baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * done. 1561cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * for all GATT based service condition, put 15621baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * num_uuid, and p_uuid is the pointer to the list of 15631baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * UUID values. 15648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_cback: callback functino when search is completed. 15658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 15698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1571cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSearchExt(tBTA_DM_INQ* p_dm_inq, 1572cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_SERVICE_MASK_EXT* p_services, 1573cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH_CBACK* p_cback); 15745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 15755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 15768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmDiscoverExt 15788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function does service discovery for services of a 15808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * peer device. When services.num_uuid is 0, it indicates all 15818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * GATT based services are to be searched; other wise a list of 15828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * UUID of interested services should be provided through 15838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * services.p_uuid. 15848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 15888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1590a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmDiscoverExt(const RawAddress& bd_addr, 1591cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_SERVICE_MASK_EXT* p_services, 1592cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH_CBACK* p_cback, bool sdp_search); 15935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 15947fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/******************************************************************************* 15958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmDiscoverByTransport 15978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function does service discovery on particular transport 15998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * for services of a 16008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * peer device. When services.num_uuid is 0, it indicates all 16018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * GATT based services are to be searched; other wise a list of 16028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * UUID of interested services should be provided through 16038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_services->p_uuid. 16048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 16088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1610a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmDiscoverByTransport(const RawAddress& bd_addr, 1611cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_SERVICE_MASK_EXT* p_services, 1612cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH_CBACK* p_cback, 1613cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool sdp_search, 161424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans tBTA_TRANSPORT transport); 16155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 16165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 16178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSetEncryption 16198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to ensure that connection is 16218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * encrypted. Should be called only on an open connection. 16228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Typically only needed for connections that first want to 16238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * bring up unencrypted links, then later encrypt them. 16248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - Address of the peer device 16268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * transport - transport of the link to be encruypted 16278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_callback - Pointer to callback function to indicat the 16288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * link encryption status 16298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * sec_act - This is the security action to indicate 16301baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * what kind of BLE security level is required 16311baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * for the BLE link if BLE is supported 16321baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * Note: This parameter is ignored for 16331baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * BR/EDR or if BLE is not supported. 16348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 16368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1639a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmSetEncryption(const RawAddress& bd_addr, 1640c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski tBTA_TRANSPORT transport, 1641cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_ENCRYPT_CBACK* p_callback, 164224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans tBTA_DM_BLE_SEC_ACT sec_act); 16435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1644ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/******************************************************************************* 16458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleObserve 16478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This procedure keep the device listening for advertising 16498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * events from a broadcast device. 16508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters start: start or stop observe. 1652cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * duration : Duration of the scan. Continuous scan if 0 is 16531baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * passed 16548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_results_cb: Callback to be called with scan results 16558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 16578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1659e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmBleObserve(bool start, uint8_t duration, 1660cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH_CBACK* p_results_cb); 1661ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 1662ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/******************************************************************************* 16638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleConfigLocalPrivacy 16658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Enable/disable privacy on the local device 16678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: privacy_enable - enable/disabe privacy on remote device. 16698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 16718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1673e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmBleConfigLocalPrivacy(bool privacy_enable); 1674ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 1675ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/******************************************************************************* 16768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleEnableRemotePrivacy 16788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Enable/disable privacy on a remote device 16808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peer 16828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * privacy_enable - enable/disabe privacy on remote device. 16838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 16858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1687a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmBleEnableRemotePrivacy(const RawAddress& bd_addr, 1688c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski bool privacy_enable); 1689ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 16906a9666116668683fb473239ff381dec16b784421Jakub Pawlowski/******************************************************************************* 16918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleUpdateConnectionParams 16938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1694cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description Update connection parameters, can only be used when 16951baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * connection is up. 16968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peer 16981baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * min_int - minimum connection interval, [0x0004 ~ 0x4000] 16991baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * max_int - maximum connection interval, [0x0004 ~ 0x4000] 17001baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * latency - slave latency [0 ~ 500] 17011baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * timeout - supervision timeout [0x000a ~ 0xc80] 17028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 17048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1706a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmBleUpdateConnectionParams(const RawAddress& bd_addr, 1707cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t min_int, uint16_t max_int, 1708cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t latency, uint16_t timeout); 1709c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 1710c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji/******************************************************************************* 17118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleSetDataLength 17138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is to set maximum LE data packet size 17158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 17178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1719a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmBleSetDataLength(const RawAddress& remote_device, 1720cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t tx_data_length); 1721636d6714a4c08dd99d2147dcce05dc3892e804b4Priti Aghera 1722636d6714a4c08dd99d2147dcce05dc3892e804b4Priti Aghera/******************************************************************************* 17238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleGetEnergyInfo 17258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to obtain the energy info 17278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters p_cmpl_cback - Command complete callback 17298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 17318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1733cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmBleGetEnergyInfo(tBTA_BLE_ENERGY_INFO_CBACK* p_cmpl_cback); 1734e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji 173516fe0822ccd3eb6f66d3afd9965d25a0a0cb4c30Prerepa Viswanadham/******************************************************************************* 17368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_BrcmInit 17388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1739cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description This function initializes Broadcom specific VS handler in 17401baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * BTA 17418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 17438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1745cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_VendorInit(void); 174616fe0822ccd3eb6f66d3afd9965d25a0a0cb4c30Prerepa Viswanadham 174716fe0822ccd3eb6f66d3afd9965d25a0a0cb4c30Prerepa Viswanadham/******************************************************************************* 17488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_BrcmCleanup 17508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1751cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description This function frees up Broadcom specific VS specific dynamic 17521baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * memory 17538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 17558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1757cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_VendorCleanup(void); 175816fe0822ccd3eb6f66d3afd9965d25a0a0cb4c30Prerepa Viswanadham 17595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BTA_API_H */ 1760