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