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. */ 2945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_INQ; 2955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 296cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 297cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t bta_dm_eir_min_name_len; /* minimum length of local name when it is 298cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson shortened */ 2995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTA_EIR_CANNED_UUID_LIST == TRUE) 300cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t bta_dm_eir_uuid16_len; /* length of 16-bit UUIDs */ 301cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* bta_dm_eir_uuid16; /* 16-bit UUIDs */ 3025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#else 303cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t uuid_mask[BTM_EIR_SERVICE_ARRAY_SIZE]; /* mask of UUID list in EIR */ 3045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 305cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson int8_t* bta_dm_eir_inq_tx_power; /* Inquiry TX power */ 306cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t bta_dm_eir_flag_len; /* length of flags in bytes */ 307cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* bta_dm_eir_flags; /* flags for EIR */ 308cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t bta_dm_eir_manufac_spec_len; /* length of manufacturer specific in 309cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bytes */ 310cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* bta_dm_eir_manufac_spec; /* manufacturer specific */ 311cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t bta_dm_eir_additional_len; /* length of additional data in bytes */ 312cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* bta_dm_eir_additional; /* additional data */ 3135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_EIR_CONF; 3145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 315a6ce7751d84218c193eb90d390aef23217b1737eWei Wang/* advertising filter policy */ 316cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_AFP tBTA_BLE_AFP; 317a6ce7751d84218c193eb90d390aef23217b1737eWei Wang 318cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum { 319cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_BLE_BATCH_SCAN_MODE_PASS = 1, 320cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_BLE_BATCH_SCAN_MODE_ACTI = 2, 321cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_BLE_BATCH_SCAN_MODE_PASS_ACTI = 3 322c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji}; 323e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_BLE_BATCH_SCAN_MODE; 324c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 325cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum { BTA_BLE_DISCARD_OLD_ITEMS = 0, BTA_BLE_DISCARD_LOWER_RSSI_ITEMS = 1 }; 326e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_BLE_DISCARD_RULE; 327c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 328cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum { BTA_BLE_ADV_SEEN_FIRST_TIME = 0, BTA_BLE_ADV_TRACKING_TIMEOUT = 1 }; 329e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_BLE_ADV_CHANGE_REASON; 330c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 331ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* BLE customer specific feature function type definitions */ 332ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* data type used on customer specific feature for RSSI monitoring */ 333cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_HI 0 334cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_RANGE 1 335cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_LO 2 336e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_RSSI_ALERT_TYPE; 337ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 338cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_NONE BTM_BLE_RSSI_ALERT_NONE /* (0) */ 339cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_HI_BIT BTM_BLE_RSSI_ALERT_HI_BIT /* (1) */ 340cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_RANGE_BIT \ 341cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_BLE_RSSI_ALERT_RANGE_BIT /* (1 << 1) */ 342cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_LO_BIT BTM_BLE_RSSI_ALERT_LO_BIT /* (1 << 2) */ 343cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef uint8_t tBTA_DM_BLE_RSSI_ALERT_MASK; 344ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 345a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskitypedef void(tBTA_DM_BLE_RSSI_CBACK)(const RawAddress& bd_addr, 346cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_RSSI_ALERT_TYPE alert_type, 347cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson int8_t rssi); 348ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 349e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef int8_t tBTA_DM_RSSI_VALUE; 350e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_LINK_QUALITY_VALUE; 3515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 352e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_SIG_STRENGTH_MASK; 3535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Security Callback Events */ 355cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ENABLE_EVT 0 /* Enable Event */ 356cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DISABLE_EVT 1 /* Disable Event */ 357cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PIN_REQ_EVT 2 /* PIN request. */ 358cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_CMPL_EVT 3 /* Authentication complete indication. */ 359cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTHORIZE_EVT 4 /* Authorization request. */ 360cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_UP_EVT 5 /* Connection UP event */ 361cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_DOWN_EVT 6 /* Connection DOWN event */ 362cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SIG_STRENGTH_EVT \ 363cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 7 /* Signal strength for bluetooth connection \ 364cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 365cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BUSY_LEVEL_EVT 8 /* System busy level */ 366cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BOND_CANCEL_CMPL_EVT 9 /* Bond cancel complete indication */ 367cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_CFM_REQ_EVT \ 368cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 10 /* Simple Pairing User Confirmation request. \ 369cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 370cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_KEY_NOTIF_EVT 11 /* Simple Pairing Passkey Notification */ 371cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_RMT_OOB_EVT 12 /* Simple Pairing Remote OOB Data request. */ 372cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_KEYPRESS_EVT 13 /* Key press notification event. */ 373cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROLE_CHG_EVT 14 /* Role Change event. */ 374cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_KEY_EVT 15 /* BLE SMP key event for peer device keys */ 375cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_REQ_EVT 16 /* BLE SMP security request */ 376cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PASSKEY_NOTIF_EVT 17 /* SMP passkey notification event */ 377cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PASSKEY_REQ_EVT 18 /* SMP passkey request event */ 378cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_OOB_REQ_EVT 19 /* SMP OOB request event */ 379cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_LOCAL_IR_EVT 20 /* BLE local IR event */ 380cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_LOCAL_ER_EVT 21 /* BLE local ER event */ 381cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_NC_REQ_EVT 22 /* SMP Numeric Comparison request event */ 382cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_RMT_OOB_EXT_EVT \ 383cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 23 /* Simple Pairing Remote OOB Extended Data request. */ 384cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_AUTH_CMPL_EVT 24 /* BLE Auth complete */ 385cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DEV_UNPAIRED_EVT 25 386cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_HW_ERROR_EVT 26 /* BT Chip H/W error */ 387cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LE_FEATURES_READ \ 388cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 27 /* Cotroller specific LE features are read \ 389cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 390cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ENER_INFO_READ 28 /* Energy info read */ 391cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SC_OOB_REQ_EVT 29 /* SMP SC OOB request event */ 392e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_SEC_EVT; 3935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_ENABLE_EVT */ 395cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { tBTA_STATUS status; } tBTA_DM_ENABLE; 3965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_PIN_REQ_EVT */ 398cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 399cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in 400cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * order */ 401a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* BD address peer device. */ 402cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson DEV_CLASS dev_class; /* Class of Device */ 403cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* Name of peer device. */ 404cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool min_16_digit; /* true if the pin returned must be at least 16 digits */ 4055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_PIN_REQ; 4065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BLE related definition */ 4085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 409cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_FAIL_BASE (HCI_ERR_MAX_ERR + 10) 410cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 411cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson/* Converts SMP error codes defined in smp_api.h to SMP auth fail reasons below. 412cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 413cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_CONVERT_SMP_CODE(x) (BTA_DM_AUTH_FAIL_BASE + (x)) 414cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 415cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_PASSKEY_FAIL \ 416cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_PASSKEY_ENTRY_FAIL) 417cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_OOB_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_OOB_FAIL) 418cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_PAIR_AUTH_FAIL \ 419cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_AUTH_FAIL) 420cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_CONFIRM_VALUE_FAIL \ 421cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_CONFIRM_VALUE_ERR) 422cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_PAIR_NOT_SUPPORT \ 423cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_NOT_SUPPORT) 424cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_ENC_KEY_SIZE (BTA_DM_AUTH_FAIL_BASE + SMP_ENC_KEY_SIZE) 425cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_INVALID_CMD (BTA_DM_AUTH_FAIL_BASE + SMP_INVALID_CMD) 426cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_UNKNOWN_ERR \ 427cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_FAIL_UNKNOWN) 428cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_REPEATED_ATTEMPT \ 429cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_REPEATED_ATTEMPTS) 430cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_INVALID_PARAMETERS \ 431cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_INVALID_PARAMETERS) 432cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_INTERNAL_ERR \ 433cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_INTERNAL_ERR) 434cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_UNKNOWN_IO (BTA_DM_AUTH_FAIL_BASE + SMP_UNKNOWN_IO_CAP) 435cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_INIT_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_INIT_FAIL) 436cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_CONFIRM_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_CONFIRM_FAIL) 437cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_BUSY (BTA_DM_AUTH_FAIL_BASE + SMP_BUSY) 438cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_ENC_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_ENC_FAIL) 439cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_RSP_TIMEOUT (BTA_DM_AUTH_FAIL_BASE + SMP_RSP_TIMEOUT) 440cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_CONN_TOUT (BTA_DM_AUTH_FAIL_BASE + SMP_CONN_TOUT) 4415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* connection parameter boundary value and dummy value */ 443cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SCAN_INT_MIN BTM_BLE_SCAN_INT_MIN 444cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SCAN_INT_MAX BTM_BLE_SCAN_INT_MAX 445cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SCAN_WIN_MIN BTM_BLE_SCAN_WIN_MIN 446cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SCAN_WIN_MAX BTM_BLE_SCAN_WIN_MAX 447cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_INT_MIN BTM_BLE_CONN_INT_MIN 448cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_INT_MAX BTM_BLE_CONN_INT_MAX 449cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_LATENCY_MAX BTM_BLE_CONN_LATENCY_MAX 450cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_SUP_TOUT_MIN BTM_BLE_CONN_SUP_TOUT_MIN 451cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_SUP_TOUT_MAX BTM_BLE_CONN_SUP_TOUT_MAX 452cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_PARAM_UNDEF \ 453cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_BLE_CONN_PARAM_UNDEF /* use this value when a specific value not to be \ 454cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson overwritten */ 455cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 456cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_PENC \ 457cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_LE_KEY_PENC /* encryption information of peer device */ 458cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_PID BTM_LE_KEY_PID /* identity key of the peer device */ 459cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_PCSRK BTM_LE_KEY_PCSRK /* peer SRK */ 460cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_LENC \ 461cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_LE_KEY_LENC /* master role security information:div */ 462cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_LID BTM_LE_KEY_LID /* master device ID key */ 463cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_LCSRK \ 464cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_LE_KEY_LCSRK /* local CSRK has been deliver to peer */ 465e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_LE_KEY_TYPE; /* can be used as a bit mask */ 4665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 467cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_PENC_KEYS tBTA_LE_PENC_KEYS; 4685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef tBTM_LE_PCSRK_KEYS tBTA_LE_PCSRK_KEYS; 469cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_LENC_KEYS tBTA_LE_LENC_KEYS; 470cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_LCSRK_KEYS tBTA_LE_LCSRK_KEYS; 471cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_PID_KEYS tBTA_LE_PID_KEYS; 472cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 473cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union { 474cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_PENC_KEYS penc_key; /* received peer encryption key */ 475cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_PCSRK_KEYS psrk_key; /* received peer device SRK */ 476cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_PID_KEYS pid_key; /* peer device ID key */ 477cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_LENC_KEYS 478cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson lenc_key; /* local encryption reproduction keys LTK = = d1(ER,DIV,0)*/ 479cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_LCSRK_KEYS lcsrk_key; /* local device CSRK = d1(ER,DIV,1)*/ 480cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_PID_KEYS lid_key; /* local device ID key for the particular remote */ 481cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_LE_KEY_VALUE; 482cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 483cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_LOCAL_KEY_TYPE_ID 1 484cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_LOCAL_KEY_TYPE_ER 2 485e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_LOCAL_KEY_MASK; 4865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 487cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 488cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BT_OCTET16 ir; 489cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BT_OCTET16 irk; 490cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BT_OCTET16 dhk; 491cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_BLE_LOCAL_ID_KEYS; 4925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 493cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SEC_GRANTED BTA_SUCCESS 494cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SEC_PAIR_NOT_SPT BTA_DM_AUTH_SMP_PAIR_NOT_SUPPORT 495cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SEC_REP_ATTEMPTS BTA_DM_AUTH_SMP_REPEATED_ATTEMPT 496e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_SEC_GRANT; 4975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_BLE_SEC_REQ_EVT */ 499cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 500a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* peer address */ 501cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* peer device name */ 5025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_BLE_SEC_REQ; 5035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 504cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 505a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* peer address */ 506cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTM_LE_KEY_TYPE key_type; 507cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTM_LE_KEY_VALUE* p_key_value; 508cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_BLE_KEY; 5095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_AUTH_CMPL_EVT */ 511cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 512a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* BD address peer device. */ 513cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* Name of peer device. */ 514cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool key_present; /* Valid link key value in key element */ 515cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson LINK_KEY key; /* Link key associated with peer device. */ 516cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t key_type; /* The type of Link Key */ 517cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool success; /* true of authentication succeeded, false if failed. */ 518cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t fail_reason; /* The HCI reason/error code for when success=false */ 519cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBLE_ADDR_TYPE addr_type; /* Peer device address type */ 520cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBT_DEVICE_TYPE dev_type; 5215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_AUTH_CMPL; 5225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_AUTHORIZE_EVT */ 524cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 525a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* BD address peer device. */ 526cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* Name of peer device. */ 527cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_SERVICE_ID service; /* Service ID to authorize. */ 528cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson DEV_CLASS dev_class; 5295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_AUTHORIZE; 5305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_LINK_UP_EVT */ 532cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 533a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* BD address peer device. */ 534cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_TRANSPORT link_type; 5355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_LINK_UP; 5365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_LINK_DOWN_EVT */ 538cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 539a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* BD address peer device. */ 540cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t status; /* connection open/closed */ 541cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool is_removed; /* true if device is removed when link is down */ 542cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_TRANSPORT link_type; 5435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_LINK_DOWN; 5445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_ROLE_CHG_EVT */ 546cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 547a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* BD address peer device. */ 548cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t new_role; /* the new connection role */ 5495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_ROLE_CHG; 5505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_BUSY_LEVEL_EVT */ 552cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 553cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t level; /* when paging or inquiring, level is 10. 554cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Otherwise, the number of ACL links */ 555cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t level_flags; /* indicates individual flags */ 5565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_BUSY_LEVEL; 5575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5582e8e9f42132d0297a94c0852a1fbf45c9bc348e5Myles Watson#define BTA_IO_CAP_OUT BTM_IO_CAP_OUT /* 0 DisplayOnly */ 5592e8e9f42132d0297a94c0852a1fbf45c9bc348e5Myles Watson#define BTA_IO_CAP_IO BTM_IO_CAP_IO /* 1 DisplayYesNo */ 5602e8e9f42132d0297a94c0852a1fbf45c9bc348e5Myles Watson#define BTA_IO_CAP_IN BTM_IO_CAP_IN /* 2 KeyboardOnly */ 5612e8e9f42132d0297a94c0852a1fbf45c9bc348e5Myles Watson#define BTA_IO_CAP_NONE BTM_IO_CAP_NONE /* 3 NoInputNoOutput */ 562cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_IO_CAP_KBDISP BTM_IO_CAP_KBDISP /* 4 Keyboard display */ 563cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_IO_CAP tBTA_IO_CAP; 564cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 565cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_SP_NO \ 566cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_SP_NO /* 0 MITM Protection Not Required - Single \ 567cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Profile/non-bonding \ 568cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Numeric comparison with automatic accept allowed */ 569cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_SP_YES \ 570cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_SP_YES /* 1 MITM Protection Required - Single Profile/non-bonding \ 571cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Use IO Capabilities to determine authentication procedure \ 572cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 573cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_AP_NO \ 574cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_AP_NO /* 2 MITM Protection Not Required - All Profiles/dedicated \ 575cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bonding \ 576cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Numeric comparison with automatic accept allowed */ 577cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_AP_YES \ 578cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_AP_YES /* 3 MITM Protection Required - All Profiles/dedicated \ 579cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bonding \ 580cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Use IO Capabilities to determine authentication procedure \ 581cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 582cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_SPGB_NO \ 583cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_SPGB_NO /* 4 MITM Protection Not Required - Single Profiles/general \ 584cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bonding \ 585cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Numeric comparison with automatic accept allowed */ 586cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_SPGB_YES \ 587cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_SPGB_YES /* 5 MITM Protection Required - Single Profiles/general \ 588cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bonding \ 589cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson Use IO Capabilities to determine authentication \ 590cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson procedure */ 591cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_AUTH_REQ tBTA_AUTH_REQ; 592cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 593cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_DD_BOND \ 594cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_DD_BOND /* 2 this bit is set for dedicated bonding */ 595cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_GEN_BOND \ 596cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_SPGB_NO /* 4 this bit is set for general bonding */ 597cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_BONDS \ 598cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_AUTH_BONDS /* 6 the general/dedicated bonding bits */ 599cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 600cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_NO_BOND BTM_LE_AUTH_REQ_NO_BOND /* 0*/ 601cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_BOND BTM_LE_AUTH_REQ_BOND /* 1 << 0 */ 602cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_MITM BTM_LE_AUTH_REQ_MITM /* 1 << 2 */ 603cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 604cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_SC_ONLY BTM_LE_AUTH_REQ_SC_ONLY /* 1 << 3 */ 605cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_SC_BOND BTM_LE_AUTH_REQ_SC_BOND /* 1001 */ 606cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_SC_MITM BTM_LE_AUTH_REQ_SC_MITM /* 1100 */ 607cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_SC_MITM_BOND BTM_LE_AUTH_REQ_SC_MITM_BOND /* 1101 */ 608cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_AUTH_REQ 609cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_AUTH_REQ; /* combination of the above bit pattern */ 610cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 611cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_OOB_NONE BTM_OOB_NONE 612cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_OOB_PRESENT BTM_OOB_PRESENT 613cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_OOB_UNKNOWN BTM_OOB_UNKNOWN 614cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 615cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_OOB_DATA tBTA_OOB_DATA; 6165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_SP_CFM_REQ_EVT */ 618cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 619cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in 620cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * order */ 621a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* peer address */ 622cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson DEV_CLASS dev_class; /* peer CoD */ 623cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* peer device name */ 624cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t num_val; /* the numeric value for comparison. If just_works, do not 625cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson show this number to UI */ 626cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool just_works; /* true, if "Just Works" association model */ 627cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_AUTH_REQ loc_auth_req; /* Authentication required for local device */ 628cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_AUTH_REQ rmt_auth_req; /* Authentication required for peer device */ 629cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_IO_CAP loc_io_caps; /* IO Capabilities of local device */ 630cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_AUTH_REQ rmt_io_caps; /* IO Capabilities of remote device */ 6315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SP_CFM_REQ; 6325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 633cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum { 634cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_SP_KEY_STARTED, /* passkey entry started */ 635cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_SP_KEY_ENTERED, /* passkey digit entered */ 636cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_SP_KEY_ERASED, /* passkey digit erased */ 637cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_SP_KEY_CLEARED, /* passkey cleared */ 638cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTA_SP_KEY_COMPLT /* passkey entry completed */ 6395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project}; 640cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef uint8_t tBTA_SP_KEY_TYPE; 6415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_SP_KEYPRESS_EVT */ 643cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 644a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* peer address */ 645cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_SP_KEY_TYPE notif_type; 646cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_SP_KEY_PRESS; 6475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_SP_KEY_NOTIF_EVT */ 649cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 650cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in 651cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * order */ 652a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* peer address */ 653cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson DEV_CLASS dev_class; /* peer CoD */ 654cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* peer device name */ 655cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t passkey; /* the numeric value for comparison. If just_works, do not 656cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson show this number to UI */ 6575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SP_KEY_NOTIF; 6585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_SP_RMT_OOB_EVT */ 660cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 661cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in 662cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * order */ 663a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* peer address */ 664cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson DEV_CLASS dev_class; /* peer CoD */ 665cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* peer device name */ 6665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SP_RMT_OOB; 6675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_BOND_CANCEL_CMPL_EVT */ 669cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 670cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_STATUS result; /* true of bond cancel succeeded, false if failed. */ 6715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_BOND_CANCEL_CMPL; 6725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Union of all security callback structures */ 674cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union { 675cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_ENABLE enable; /* BTA enabled */ 676cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_PIN_REQ pin_req; /* PIN request. */ 677cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_AUTH_CMPL auth_cmpl; /* Authentication complete indication. */ 678cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_AUTHORIZE authorize; /* Authorization request. */ 679cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_LINK_UP link_up; /* ACL connection down event */ 680cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_LINK_DOWN link_down; /* ACL connection down event */ 681cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BUSY_LEVEL busy_level; /* System busy level */ 682cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SP_CFM_REQ cfm_req; /* user confirm request */ 683cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SP_KEY_NOTIF key_notif; /* passkey notification */ 684cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SP_RMT_OOB rmt_oob; /* remote oob */ 685cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BOND_CANCEL_CMPL 686cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bond_cancel_cmpl; /* Bond Cancel Complete indication */ 687cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SP_KEY_PRESS key_press; /* key press notification event */ 688cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_ROLE_CHG role_chg; /* role change event */ 689cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_SEC_REQ ble_req; /* BLE SMP related request */ 690cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_KEY ble_key; /* BLE SMP keys used when pairing */ 691cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_BLE_LOCAL_ID_KEYS ble_id_keys; /* IR event */ 692cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BT_OCTET16 ble_er; /* ER event data */ 6935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SEC; 6945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Security callback */ 696cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_SEC_CBACK)(tBTA_DM_SEC_EVT event, tBTA_DM_SEC* p_data); 6975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 698cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_LIST_LOGIC_OR 1 699cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_FILT_LOGIC_OR 0 7001a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji 7015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Search callback events */ 702cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_RES_EVT 0 /* Inquiry result for a peer device. */ 703cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_CMPL_EVT 1 /* Inquiry complete. */ 704cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DISC_RES_EVT 2 /* Discovery result for a peer device. */ 705cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DISC_BLE_RES_EVT \ 706cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 3 /* Discovery result for BLE GATT based servoce on a peer device. */ 707cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DISC_CMPL_EVT 4 /* Discovery complete. */ 708cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DI_DISC_CMPL_EVT 5 /* Discovery complete. */ 709cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SEARCH_CANCEL_CMPL_EVT 6 /* Search cancelled */ 7105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 711e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_SEARCH_EVT; 7125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 713cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_RES_IGNORE_RSSI \ 714cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BTM_INQ_RES_IGNORE_RSSI /* 0x7f RSSI value not supplied (ignore it) */ 7155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_INQ_RES_EVT */ 717cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 718a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* BD address peer device. */ 719cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson DEV_CLASS dev_class; /* Device class of peer device. */ 720cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool remt_name_not_required; /* Application sets this flag if it already knows 721cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson the name of the device */ 722cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson /* If the device name is known to application BTA skips the remote name 723cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * request */ 724cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool is_limited; /* true, if the limited inquiry bit is set in the CoD */ 725cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson int8_t rssi; /* The rssi value */ 726cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* p_eir; /* received EIR */ 727f7100bb0e57ed289833c353ba06028345f9f39b6Jakub Pawlowski uint16_t eir_len; /* received EIR length */ 728cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t inq_result_type; 729cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t ble_addr_type; 730d64bf4f6f8b34471b120330bf3be2b8b7aab0274Jakub Pawlowski uint16_t ble_evt_type; 7317de0f9b78fb38fcb02cbcd3c1c7c005947b9e291Jakub Pawlowski uint8_t ble_primary_phy; 7327de0f9b78fb38fcb02cbcd3c1c7c005947b9e291Jakub Pawlowski uint8_t ble_secondary_phy; 7337de0f9b78fb38fcb02cbcd3c1c7c005947b9e291Jakub Pawlowski uint8_t ble_advertising_sid; 7347de0f9b78fb38fcb02cbcd3c1c7c005947b9e291Jakub Pawlowski int8_t ble_tx_power; 7357de0f9b78fb38fcb02cbcd3c1c7c005947b9e291Jakub Pawlowski uint16_t ble_periodic_adv_int; 736cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBT_DEVICE_TYPE device_type; 737cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t flag; 7385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_INQ_RES; 7395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_INQ_CMPL_EVT */ 741cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 742cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t num_resps; /* Number of inquiry responses. */ 7435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_INQ_CMPL; 7445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_DI_DISC_CMPL_EVT */ 746cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 747a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* BD address peer device. */ 748cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t num_record; /* Number of DI record */ 749cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_STATUS result; 7505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_DI_DISC_CMPL; 7515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_DISC_RES_EVT */ 753cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 754a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* BD address peer device. */ 755cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* Name of peer device. */ 756cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_SERVICE_MASK services; /* Services found on peer device. */ 757cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t* p_raw_data; /* Raw data for discovery DB */ 758cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t raw_data_size; /* size of raw data */ 759cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBT_DEVICE_TYPE device_type; /* device type in case it is BLE device */ 760cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t num_uuids; 761819e2ecb84a22d6e03ec9ed67b3260c0dd7e8abaJakub Pawlowski bluetooth::Uuid* p_uuid_list; 762cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_STATUS result; 7635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_DISC_RES; 7645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with tBTA_DM_DISC_BLE_RES */ 766cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { 767a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski RawAddress bd_addr; /* BD address peer device. */ 768cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson BD_NAME bd_name; /* Name of peer device. */ 769819e2ecb84a22d6e03ec9ed67b3260c0dd7e8abaJakub Pawlowski bluetooth::Uuid service; /* GATT based Services UUID found on peer device. */ 7705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_DISC_BLE_RES; 7715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Union of all search callback structures */ 773cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union { 774cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_INQ_RES inq_res; /* Inquiry result for a peer device. */ 775cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_INQ_CMPL inq_cmpl; /* Inquiry complete. */ 776cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_DISC_RES disc_res; /* Discovery result for a peer device. */ 777cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_DISC_BLE_RES 778cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson disc_ble_res; /* discovery result for GATT based service */ 779cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_DI_DISC_CMPL di_disc; /* DI discovery result for a peer device */ 7805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SEARCH; 7825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Search callback */ 784cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_SEARCH_CBACK)(tBTA_DM_SEARCH_EVT event, 785cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH* p_data); 7865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Execute call back */ 788cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_EXEC_CBACK)(void* p_param); 7895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Encryption callback*/ 791a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskitypedef void(tBTA_DM_ENCRYPT_CBACK)(const RawAddress& bd_addr, 792c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski tBTA_TRANSPORT transport, 793cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_STATUS result); 7945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 795cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_NONE BTM_BLE_SEC_NONE 796cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_ENCRYPT BTM_BLE_SEC_ENCRYPT 797cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_NO_MITM BTM_BLE_SEC_ENCRYPT_NO_MITM 798cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_MITM BTM_BLE_SEC_ENCRYPT_MITM 799cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_SEC_ACT tBTA_DM_BLE_SEC_ACT; 800c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 801cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_TX_TIME_MS tBTA_DM_BLE_TX_TIME_MS; 802cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_RX_TIME_MS tBTA_DM_BLE_RX_TIME_MS; 803cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_IDLE_TIME_MS tBTA_DM_BLE_IDLE_TIME_MS; 804cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_ENERGY_USED tBTA_DM_BLE_ENERGY_USED; 805cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 806cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONTRL_UNKNOWN 0 /* Unknown state */ 807cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONTRL_ACTIVE 1 /* ACL link on, SCO link ongoing, sniff mode */ 808cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONTRL_SCAN \ 809cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 2 /* Scan state - paging/inquiry/trying to \ 810cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson connect*/ 811cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONTRL_IDLE \ 812cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 3 /* Idle state - page scan, LE advt, inquiry scan \ 813cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */ 814e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji 815e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_CONTRL_STATE; 816e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji 817e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_ADV_STATE; 818e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_ADV_INFO_PRESENT; 819e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_RSSI_VALUE; 820e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint16_t tBTA_DM_BLE_ADV_INFO_TIMESTAMP; 821f538707fe64c62b1dbb8e4210e4a1bfa0bab2b56Satya Calloji 822cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_BLE_ENERGY_INFO_CBACK)(tBTA_DM_BLE_TX_TIME_MS tx_time, 823cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_RX_TIME_MS rx_time, 824cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_IDLE_TIME_MS idle_time, 825cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_BLE_ENERGY_USED energy_used, 826cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_CONTRL_STATE ctrl_state, 827cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_STATUS status); 828e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji 8295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Maximum service name length */ 830cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SERVICE_NAME_LEN 35 831cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SERVICE_DESP_LEN BTA_SERVICE_NAME_LEN 832cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_PROVIDER_NAME_LEN BTA_SERVICE_NAME_LEN 8335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* link policy masks */ 835cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LP_SWITCH HCI_ENABLE_MASTER_SLAVE_SWITCH 836cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LP_HOLD HCI_ENABLE_HOLD_MODE 837cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LP_SNIFF HCI_ENABLE_SNIFF_MODE 838cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LP_PARK HCI_ENABLE_PARK_MODE 839e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint16_t tBTA_DM_LP_MASK; 8405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* power mode actions */ 842cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_NO_ACTION 0x00 /* no change to the current pm setting */ 843cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK 0x10 /* prefers park mode */ 844cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF 0x20 /* prefers sniff mode */ 845cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF1 0x21 /* prefers sniff1 mode */ 846cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF2 0x22 /* prefers sniff2 mode */ 847cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF3 0x23 /* prefers sniff3 mode */ 848cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF4 0x24 /* prefers sniff4 mode */ 849cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF5 0x25 /* prefers sniff5 mode */ 850cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF6 0x26 /* prefers sniff6 mode */ 851cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF7 0x27 /* prefers sniff7 mode */ 852cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_USER0 \ 853cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 0x28 /* prefers user-defined sniff0 mode (testtool only) */ 854cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_USER1 \ 855cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 0x29 /* prefers user-defined sniff1 mode (testtool only) */ 856cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_ACTIVE 0x40 /* prefers active mode */ 857cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_RETRY 0x80 /* retry power mode based on current settings */ 858cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SUSPEND 0x04 /* prefers suspend mode */ 859cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_NO_PREF \ 860cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 0x01 /* service has no prefernce on power mode setting. eg. connection to \ 861cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson service got closed */ 8625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 863e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_PM_ACTION; 8645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* index to bta_dm_ssr_spec */ 866cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR0 0 867cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR1 \ 868cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 1 /* BTA_DM_PM_SSR1 will be dedicated for \ 869cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson HH SSR setting entry, no other profile can use it */ 870cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR2 2 871cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR3 3 872cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR4 4 873cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR5 5 874cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR6 6 875cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 876cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_NUM_EVTS 9 8775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_DM_PM_PARK_IDX 879cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_IDX \ 880cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson 5 /* the actual index to bta_dm_pm_md[] for PARK mode */ 8815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 8825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 88363399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_A2DP_IDX 884cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_A2DP_IDX BTA_DM_PM_SNIFF 88563399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 88663399d943938cb7234a7fba508ea603070720d77Adam Hampson 88763399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HD_IDLE_IDX 888cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_HD_IDLE_IDX BTA_DM_PM_SNIFF2 88963399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 89063399d943938cb7234a7fba508ea603070720d77Adam Hampson 89163399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_SCO_OPEN_IDX 892cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_SCO_OPEN_IDX BTA_DM_PM_SNIFF3 89363399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 89463399d943938cb7234a7fba508ea603070720d77Adam Hampson 89563399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HD_ACTIVE_IDX 89663399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF_HD_ACTIVE_IDX BTA_DM_PM_SNIFF4 89763399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 89863399d943938cb7234a7fba508ea603070720d77Adam Hampson 89963399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HH_OPEN_IDX 90063399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF_HH_OPEN_IDX BTA_DM_PM_SNIFF2 90163399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 90263399d943938cb7234a7fba508ea603070720d77Adam Hampson 90363399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HH_ACTIVE_IDX 90463399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF_HH_ACTIVE_IDX BTA_DM_PM_SNIFF2 90563399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 90663399d943938cb7234a7fba508ea603070720d77Adam Hampson 90763399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HH_IDLE_IDX 90863399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF_HH_IDLE_IDX BTA_DM_PM_SNIFF2 90963399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 91063399d943938cb7234a7fba508ea603070720d77Adam Hampson 91163399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_HH_OPEN_DELAY 91263399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_HH_OPEN_DELAY 30000 91363399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 91463399d943938cb7234a7fba508ea603070720d77Adam Hampson 91563399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_HH_ACTIVE_DELAY 91663399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_HH_ACTIVE_DELAY 30000 91763399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 91863399d943938cb7234a7fba508ea603070720d77Adam Hampson 91963399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_HH_IDLE_DELAY 92063399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_HH_IDLE_DELAY 30000 92163399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 92263399d943938cb7234a7fba508ea603070720d77Adam Hampson 92363399d943938cb7234a7fba508ea603070720d77Adam Hampson/* The Sniff Parameters defined below must be ordered from highest 92463399d943938cb7234a7fba508ea603070720d77Adam Hampson * latency (biggest interval) to lowest latency. If there is a conflict 92563399d943938cb7234a7fba508ea603070720d77Adam Hampson * among the connected services the setting with the lowest latency will 92663399d943938cb7234a7fba508ea603070720d77Adam Hampson * be selected. If a device should override a sniff parameter then it 92763399d943938cb7234a7fba508ea603070720d77Adam Hampson * must insure that order is maintained. 92863399d943938cb7234a7fba508ea603070720d77Adam Hampson */ 92963399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_MAX 930cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_MAX 800 931cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_MIN 400 932cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_ATTEMPT 4 933cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_TIMEOUT 1 93463399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 93563399d943938cb7234a7fba508ea603070720d77Adam Hampson 93663399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF1_MAX 937cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF1_MAX 400 938cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF1_MIN 200 93963399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF1_ATTEMPT 4 94063399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF1_TIMEOUT 1 94163399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 94263399d943938cb7234a7fba508ea603070720d77Adam Hampson 94363399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF2_MAX 9448843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta#define BTA_DM_PM_SNIFF2_MAX 54 9458843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta#define BTA_DM_PM_SNIFF2_MIN 30 94663399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF2_ATTEMPT 4 94763399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF2_TIMEOUT 1 94863399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 94963399d943938cb7234a7fba508ea603070720d77Adam Hampson 95063399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF3_MAX 951cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF3_MAX 150 952cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF3_MIN 50 95363399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF3_ATTEMPT 4 95463399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF3_TIMEOUT 1 95563399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 95663399d943938cb7234a7fba508ea603070720d77Adam Hampson 95763399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF4_MAX 958be6d6ce0ae1e2e3cc9f18e54bb24b2f7118f0cb5Ivan Podogov#define BTA_DM_PM_SNIFF4_MAX 18 959be6d6ce0ae1e2e3cc9f18e54bb24b2f7118f0cb5Ivan Podogov#define BTA_DM_PM_SNIFF4_MIN 10 96063399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF4_ATTEMPT 4 96163399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF4_TIMEOUT 1 96263399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 96363399d943938cb7234a7fba508ea603070720d77Adam Hampson 9641076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov#ifndef BTA_DM_PM_SNIFF5_MAX 965cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF5_MAX 36 966cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF5_MIN 30 9671076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov#define BTA_DM_PM_SNIFF5_ATTEMPT 2 9681076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov#define BTA_DM_PM_SNIFF5_TIMEOUT 0 9691076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov#endif 9701076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov 97163399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_PARK_MAX 972cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_MAX 800 973cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_MIN 400 974cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_ATTEMPT 0 975cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_TIMEOUT 0 97663399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif 97763399d943938cb7234a7fba508ea603070720d77Adam Hampson 9785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Switch callback events */ 979cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SWITCH_CMPL_EVT 0 /* Completion of the Switch API */ 9805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 981e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_SWITCH_EVT; 982cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_SWITCH_CBACK)(tBTA_DM_SWITCH_EVT event, 983cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_STATUS status); 9845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Audio routing out configuration */ 986cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_NONE 0x00 /* No Audio output */ 987cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_DAC 0x01 /* routing over analog output */ 988cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_I2S 0x02 /* routing over digital (I2S) output */ 989cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_BT_MONO 0x04 /* routing over SCO */ 990cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_BT_STEREO 0x08 /* routing over BT Stereo */ 991cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_HOST 0x10 /* routing over Host */ 992cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_FMTX 0x20 /* routing over FMTX */ 993cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_FMRX 0x40 /* routing over FMRX */ 994cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_BTSNK 0x80 /* routing over BT SNK */ 9955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 996e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_ROUTE_PATH; 9975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Device Identification (DI) data structure 9995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 10005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Used to set the DI record */ 1001cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tSDP_DI_RECORD tBTA_DI_RECORD; 10025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Used to get the DI record */ 1003cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tSDP_DI_GET_RECORD tBTA_DI_GET_RECORD; 10045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SDP discovery database */ 1005cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tSDP_DISCOVERY_DB tBTA_DISCOVERY_DB; 10065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1007cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#ifndef BTA_DI_NUM_MAX 1008cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DI_NUM_MAX 3 10095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 10105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10113aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/* Device features mask definitions */ 1012cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_FEATURE_BYTES_PER_PAGE BTM_FEATURE_BYTES_PER_PAGE 1013cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_EXT_FEATURES_PAGE_MAX BTM_EXT_FEATURES_PAGE_MAX 10147fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* ACL type 10157fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta*/ 1016cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_TYPE_BR_EDR 0x01 1017cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_TYPE_LE 0x02 1018cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_TYPE_ALL 0xFF 1019e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_LINK_TYPE; 10203aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach 1021cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define IMMEDIATE_DELY_MODE 0x00 1022cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define ONFOUND_DELY_MODE 0x01 1023cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BATCH_DELY_MODE 0x02 1024cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define ALLOW_ALL_FILTER 0x00 1025cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define LOWEST_RSSI_VALUE 129 10266e2d9db5148176d88d7f48c3b2ad5b27c57ca14dSatya Calloji 10275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 10288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * External Function Declarations 10298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ****************************************************************************/ 10305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_EnableBluetooth 10348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function initializes BTA and prepares BTA and the 10368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Bluetooth protocol stack for use. This function is 10378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * typically called at startup or when Bluetooth services 10388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * are required by the phone. This function must be called 10398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * before calling any other API function. 10408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns BTA_SUCCESS if successful. 10438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * BTA_FAIL if internal failure. 10448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1046cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern tBTA_STATUS BTA_EnableBluetooth(tBTA_DM_SEC_CBACK* p_cback); 10475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DisableBluetooth 10518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function disables BTA and the Bluetooth protocol 10538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * stack. It is called when BTA is no longer being used 10548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * by any application in the system. 10558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 10588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 106024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTA_STATUS BTA_DisableBluetooth(void); 10615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_EnableTestMode 10658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Enables bluetooth device under test mode 10678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns tBTA_STATUS 10708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1072154be11f74357f43e9775da75adfe6b0b8025fa0Jakub Pawlowskiextern void BTA_EnableTestMode(void); 10735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DisableTestMode 10778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Disable bluetooth device under test mode 10798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns None 10828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 108424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DisableTestMode(void); 10855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSetDeviceName 10898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function sets the Bluetooth name of the local device. 10918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 10948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 10958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1096cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSetDeviceName(char* p_name); 10975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 10998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSetVisibility 11018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function sets the Bluetooth connectable,discoverable, 1103cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * pairable and conn paired only modesmodes of the local 11041baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * device. 1105cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * This controls whether other Bluetooth devices can find and 11061baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * connect to the local device. 11078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 11108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1112cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSetVisibility(tBTA_DM_DISC disc_mode, tBTA_DM_CONN conn_mode, 1113cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t pairable_mode, uint8_t conn_filter); 11145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSearch 11188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function searches for peer Bluetooth devices. It 11208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * first performs an inquiry; for each device found from the 11218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * inquiry it gets the remote name of the device. If 11228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * parameter services is nonzero, service discovery will be 11238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * performed on each device for the services specified. 11248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 11278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1129cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSearch(tBTA_DM_INQ* p_dm_inq, tBTA_SERVICE_MASK services, 1130cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH_CBACK* p_cback); 11315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSearchCancel 11358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function cancels a search that has been initiated 11378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * by calling BTA_DmSearch(). 11388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 11418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 114324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmSearchCancel(void); 11445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmDiscover 11488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function performs service discovery for the services 11508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * of a particular peer device. 11518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 11548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1156a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmDiscover(const RawAddress& bd_addr, 1157c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski tBTA_SERVICE_MASK services, 1158cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH_CBACK* p_cback, bool sdp_search); 11595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmDiscoverUUID 11638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function performs service discovery for the services 11658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * of a particular peer device. 11668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 11698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1171819e2ecb84a22d6e03ec9ed67b3260c0dd7e8abaJakub Pawlowskiextern void BTA_DmDiscoverUUID(const RawAddress& bd_addr, 1172819e2ecb84a22d6e03ec9ed67b3260c0dd7e8abaJakub Pawlowski const bluetooth::Uuid& uuid, 1173cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH_CBACK* p_cback, bool sdp_search); 11745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmGetCachedRemoteName 11788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Retieve cached remote name if available 11808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns BTA_SUCCESS if cached name was retrieved 11828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * BTA_FAILURE if cached name is not available 11838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1185a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub PawlowskitBTA_STATUS BTA_DmGetCachedRemoteName(const RawAddress& remote_device, 1186cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint8_t** pp_cached_name); 11875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 11898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBond 11918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function initiates a bonding procedure with a peer 11938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * device. The bonding procedure enables authentication 11948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * and optionally encryption on the Bluetooth link. 11958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 11988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 11998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1200a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmBond(const RawAddress& bd_addr); 12015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 12038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBondByTransport 12058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function initiates a bonding procedure with a peer 1207cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * device by designated transport. The bonding procedure 12081baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * enables authentication and optionally encryption on the 12091baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * Bluetooth link. 12108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 12138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1215a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmBondByTransport(const RawAddress& bd_addr, 1216c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski tBTA_TRANSPORT transport); 12177fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 12187fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/******************************************************************************* 12198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBondCancel 12218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function cancels a bonding procedure with a peer 12238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * device. 12248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 12278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1229a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmBondCancel(const RawAddress& bd_addr); 12305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 12328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmPinReply 12348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function provides a PIN when one is requested by DM 12368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * during a bonding procedure. The application should call 12378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * this function after the security callback is called with 12388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * a BTA_DM_PIN_REQ_EVT. 12398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 12428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1244a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmPinReply(const RawAddress& bd_addr, bool accept, 1245c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski uint8_t pin_len, uint8_t* p_pin); 12465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 12488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmLocalOob 12508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function retrieves the OOB data from local controller. 12528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * The result is reported by bta_dm_co_loc_oob(). 12538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 12558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 125724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmLocalOob(void); 12585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 12608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmConfirm 12628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function accepts or rejects the numerical value of the 12648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Simple Pairing process on BTA_DM_SP_CFM_REQ_EVT 12658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 12678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1269a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmConfirm(const RawAddress& bd_addr, bool accept); 12705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 12728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmAddDevice 12748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function adds a device to the security database list 12768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * of peer devices. This function would typically be called 12778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * at system startup to initialize the security database with 12788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * known peer devices. This is a direct execution function 12798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * that may lock task scheduling on some platforms. 12808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 12828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1284a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmAddDevice(const RawAddress& bd_addr, DEV_CLASS dev_class, 128524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans LINK_KEY link_key, tBTA_SERVICE_MASK trusted_mask, 1286e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssen bool is_trusted, uint8_t key_type, 1287e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssen tBTA_IO_CAP io_cap, uint8_t pin_length); 12885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 12908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmRemoveDevice 12928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function removes a device from the security database. 12948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * This is a direct execution function that may lock task 12958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * scheduling on some platforms. 12968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 12988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns BTA_SUCCESS if successful. 12998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * BTA_FAIL if operation failed. 13008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1302a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTA_STATUS BTA_DmRemoveDevice(const RawAddress& bd_addr); 13035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 13058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_GetEirService 13078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to get BTA service mask from EIR. 13098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters p_eir - pointer of EIR significant part 13110595ca0018ac9980d1dd7e192301f8494a01f9cbJakub Pawlowski * eir_len - EIR length 13128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_services - return the BTA service mask 13138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns None 13158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 13170595ca0018ac9980d1dd7e192301f8494a01f9cbJakub Pawlowskiextern void BTA_GetEirService(uint8_t* p_eir, size_t eir_len, 13180595ca0018ac9980d1dd7e192301f8494a01f9cbJakub Pawlowski tBTA_SERVICE_MASK* p_services); 13195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13205c0b052090a57b3926669c23349b0f0db68853f8Andre Eisenbach/******************************************************************************* 13218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmGetConnectionState 13238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Returns whether the remote device is currently connected. 13258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns 0 if the device is NOT connected. 13278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1329a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern uint16_t BTA_DmGetConnectionState(const RawAddress& bd_addr); 13305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 13328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSetLocalDiRecord 13348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function adds a DI record to the local SDP database. 13368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns BTA_SUCCESS if record set sucessfully, otherwise error code. 13388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1340cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern tBTA_STATUS BTA_DmSetLocalDiRecord(tBTA_DI_RECORD* p_device_info, 1341cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t* p_handle); 13425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 13448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmCloseACL 13478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1348cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description This function force to close an ACL connection and remove 1349cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson the 13508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * device from the security database list of known devices. 13518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - Address of the peer device 13538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * remove_dev - remove device or not after link down 13548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * transport - which transport to close 13558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson 13568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void. 13588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1360a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmCloseACL(const RawAddress& bd_addr, bool remove_dev, 1361cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_TRANSPORT transport); 13625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BLE related API functions */ 13645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 13658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleSecurityGrant 13678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Grant security request access. 13698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peer 13718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * res - security grant status. 13728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 13748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1376a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmBleSecurityGrant(const RawAddress& bd_addr, 1377c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski tBTA_DM_BLE_SEC_GRANT res); 13785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 137983211b0ccceb53586ac651a4d67ded7443b2f222Jakub Pawlowski/** 138083211b0ccceb53586ac651a4d67ded7443b2f222Jakub Pawlowski * Set BLE connectable mode to auto connect 138183211b0ccceb53586ac651a4d67ded7443b2f222Jakub Pawlowski */ 138283211b0ccceb53586ac651a4d67ded7443b2f222Jakub Pawlowskiextern void BTA_DmBleStartAutoConn(); 13835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 13858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBlePasskeyReply 13878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Send BLE SMP passkey reply. 13898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peer 13918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * accept - passkey entry sucessful or declined. 13928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * passkey - passkey value, must be a 6 digit number, 13938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * can be lead by 0. 13948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 13968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 13978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1398a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmBlePasskeyReply(const RawAddress& bd_addr, bool accept, 1399cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint32_t passkey); 14005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 14028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleConfirmReply 14048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Send BLE SMP SC user confirmation reply. 14068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peer 1408cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * accept - numbers to compare are the same or 14091baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * different. 14108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 14128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1414a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmBleConfirmReply(const RawAddress& bd_addr, bool accept); 1415444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji 1416444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/******************************************************************************* 14178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmAddBleDevice 14198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Add a BLE device. This function will be normally called 14218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * during host startup to restore all required information 14228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * for a LE device stored in the NVRAM. 14238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peer 14258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * dev_type - Remote device's device type. 14268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * addr_type - LE device address type. 14278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 14298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1431a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmAddBleDevice(const RawAddress& bd_addr, 1432c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski tBLE_ADDR_TYPE addr_type, 143324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans tBT_DEVICE_TYPE dev_type); 14345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 14368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmAddBleKey 14388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Add/modify LE device information. This function will be 14408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * normally called during host startup to restore all required 14418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * information stored in the NVRAM. 14428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peer 14448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_le_key - LE key values. 14458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * key_type - LE SMP key type. 14468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 14488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1450a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmAddBleKey(const RawAddress& bd_addr, 1451c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski tBTA_LE_KEY_VALUE* p_le_key, 1452cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_LE_KEY_TYPE key_type); 14535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 14558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSetBlePrefConnParams 14578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to set the preferred connection 14598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * parameters when default connection parameter is not desired. 14608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peripheral 14628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * min_conn_int - minimum preferred connection interval 14638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * max_conn_int - maximum preferred connection interval 14648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * slave_latency - preferred slave latency 14658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * supervision_tout - preferred supervision timeout 14668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 14698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1471a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmSetBlePrefConnParams(const RawAddress& bd_addr, 1472cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t min_conn_int, 1473cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t max_conn_int, 1474cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t slave_latency, 1475cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t supervision_tout); 14765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 14788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSetBleConnScanParams 14808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to set scan parameters used in 14828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * BLE connection request 14838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: scan_interval - scan interval 14858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * scan_window - scan window 14868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 14888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1490e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmSetBleConnScanParams(uint32_t scan_interval, 1491e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssen uint32_t scan_window); 14925725fc6d2c639a8c22a08b9b6629309eeda3715eSatya Calloji 14935725fc6d2c639a8c22a08b9b6629309eeda3715eSatya Calloji/******************************************************************************* 14948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 14958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSearchExt 14968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1497cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description This function searches for peer Bluetooth devices. It 14981baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * performs an inquiry and gets the remote name for devices. 14991baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * Service discovery is done if services is non zero 15008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters p_dm_inq: inquiry conditions 1502cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * services: if service is not empty, service discovery will be 15031baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * done. 1504cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * for all GATT based service condition, put 15051baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * num_uuid, and p_uuid is the pointer to the list of 15061baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * UUID values. 15078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_cback: callback functino when search is completed. 15088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 15128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1514cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSearchExt(tBTA_DM_INQ* p_dm_inq, 1515cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_SERVICE_MASK_EXT* p_services, 1516cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH_CBACK* p_cback); 15175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 15185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 15198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmDiscoverExt 15218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function does service discovery for services of a 15238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * peer device. When services.num_uuid is 0, it indicates all 15248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * GATT based services are to be searched; other wise a list of 15258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * UUID of interested services should be provided through 15268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * services.p_uuid. 15278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 15318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1533a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmDiscoverExt(const RawAddress& bd_addr, 1534cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_SERVICE_MASK_EXT* p_services, 1535cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH_CBACK* p_cback, bool sdp_search); 15365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 15377fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/******************************************************************************* 15388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmDiscoverByTransport 15408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function does service discovery on particular transport 15428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * for services of a 15438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * peer device. When services.num_uuid is 0, it indicates all 15448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * GATT based services are to be searched; other wise a list of 15458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * UUID of interested services should be provided through 15468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_services->p_uuid. 15478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 15518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1553a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmDiscoverByTransport(const RawAddress& bd_addr, 1554cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_SERVICE_MASK_EXT* p_services, 1555cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH_CBACK* p_cback, 1556cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson bool sdp_search, 155724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans tBTA_TRANSPORT transport); 15585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 15595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************* 15608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmSetEncryption 15628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to ensure that connection is 15648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * encrypted. Should be called only on an open connection. 15658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Typically only needed for connections that first want to 15668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * bring up unencrypted links, then later encrypt them. 15678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - Address of the peer device 15698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * transport - transport of the link to be encruypted 15708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_callback - Pointer to callback function to indicat the 15718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * link encryption status 15728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * sec_act - This is the security action to indicate 15731baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * what kind of BLE security level is required 15741baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * for the BLE link if BLE is supported 15751baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * Note: This parameter is ignored for 15761baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * BR/EDR or if BLE is not supported. 15778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 15798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1582a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmSetEncryption(const RawAddress& bd_addr, 1583c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski tBTA_TRANSPORT transport, 1584cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_ENCRYPT_CBACK* p_callback, 158524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans tBTA_DM_BLE_SEC_ACT sec_act); 15865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1587ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/******************************************************************************* 15888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleObserve 15908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This procedure keep the device listening for advertising 15928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * events from a broadcast device. 15938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters start: start or stop observe. 1595cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * duration : Duration of the scan. Continuous scan if 0 is 15961baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * passed 15978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * p_results_cb: Callback to be called with scan results 15988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 15998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 16008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1602e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmBleObserve(bool start, uint8_t duration, 1603cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson tBTA_DM_SEARCH_CBACK* p_results_cb); 1604ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 1605ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/******************************************************************************* 16068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleConfigLocalPrivacy 16088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Enable/disable privacy on the local device 16108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: privacy_enable - enable/disabe privacy on remote device. 16128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 16148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1616e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmBleConfigLocalPrivacy(bool privacy_enable); 1617ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 1618ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/******************************************************************************* 16198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleEnableRemotePrivacy 16218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description Enable/disable privacy on a remote device 16238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peer 16258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * privacy_enable - enable/disabe privacy on remote device. 16268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 16288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1630a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmBleEnableRemotePrivacy(const RawAddress& bd_addr, 1631c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski bool privacy_enable); 1632ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 16336a9666116668683fb473239ff381dec16b784421Jakub Pawlowski/******************************************************************************* 16348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleUpdateConnectionParams 16368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1637cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description Update connection parameters, can only be used when 16381baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * connection is up. 16398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters: bd_addr - BD address of the peer 16411baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * min_int - minimum connection interval, [0x0004 ~ 0x4000] 16421baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * max_int - maximum connection interval, [0x0004 ~ 0x4000] 16431baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * latency - slave latency [0 ~ 500] 16441baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * timeout - supervision timeout [0x000a ~ 0xc80] 16458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 16478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1649a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmBleUpdateConnectionParams(const RawAddress& bd_addr, 1650cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t min_int, uint16_t max_int, 16514c30c11d723b8099d6cca35b3dae2ae6e6f3e7eaStanley Tng uint16_t latency, uint16_t timeout, 16524c30c11d723b8099d6cca35b3dae2ae6e6f3e7eaStanley Tng uint16_t min_ce_len, 16534c30c11d723b8099d6cca35b3dae2ae6e6f3e7eaStanley Tng uint16_t max_ce_len); 1654c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 1655c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji/******************************************************************************* 16568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleSetDataLength 16588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is to set maximum LE data packet size 16608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 16628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1664a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTA_DmBleSetDataLength(const RawAddress& remote_device, 1665cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson uint16_t tx_data_length); 1666636d6714a4c08dd99d2147dcce05dc3892e804b4Priti Aghera 1667636d6714a4c08dd99d2147dcce05dc3892e804b4Priti Aghera/******************************************************************************* 16688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_DmBleGetEnergyInfo 16708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description This function is called to obtain the energy info 16728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters p_cmpl_cback - Command complete callback 16748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 16768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1678cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmBleGetEnergyInfo(tBTA_BLE_ENERGY_INFO_CBACK* p_cmpl_cback); 1679e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji 168016fe0822ccd3eb6f66d3afd9965d25a0a0cb4c30Prerepa Viswanadham/******************************************************************************* 16818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_BrcmInit 16838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1684cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description This function initializes Broadcom specific VS handler in 16851baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * BTA 16868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 16888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1690cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_VendorInit(void); 169116fe0822ccd3eb6f66d3afd9965d25a0a0cb4c30Prerepa Viswanadham 169216fe0822ccd3eb6f66d3afd9965d25a0a0cb4c30Prerepa Viswanadham/******************************************************************************* 16938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function BTA_BrcmCleanup 16958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 1696cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description This function frees up Broadcom specific VS specific dynamic 16971baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson * memory 16988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 16998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns void 17008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * 17018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/ 1702cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_VendorCleanup(void); 170316fe0822ccd3eb6f66d3afd9965d25a0a0cb4c30Prerepa Viswanadham 17045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BTA_API_H */ 1705