bta_api.h revision 7de0f9b78fb38fcb02cbcd3c1c7c005947b9e291
15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************
25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
3c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji *  Copyright (C) 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;
146cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBT_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 {
280cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;                 /* BD address of  device to filter. */
281cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_COD_COND dev_class_cond; /* Device class filter condition */
2825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_INQ_COND;
2835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Inquiry Parameters */
285cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
286cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_INQ_MODE mode; /* Inquiry mode, limited or general. */
287cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t duration;      /* Inquiry duration in 1.28 sec units. */
288cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t max_resps; /* Maximum inquiry responses.  Set to zero for unlimited
289cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                        responses. */
290cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool report_dup; /* report duplicated inquiry response with higher RSSI value
291cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                      */
292cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_INQ_FILT filter_type; /* Filter condition type. */
293cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_INQ_COND filter_cond; /* Filter condition data. */
294e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssen#if (BTA_HOST_INTERLEAVE_SEARCH == TRUE)
295cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t intl_duration
296cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson      [4]; /*duration array storing the interleave scan's time portions*/
2977f3e42943b834ff0f556cd5c063a896f54d53167Matthew Xie#endif
2985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_INQ;
2995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
300cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
301cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t bta_dm_eir_min_name_len; /* minimum length of local name when it is
302cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                      shortened */
3035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTA_EIR_CANNED_UUID_LIST == TRUE)
304cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t bta_dm_eir_uuid16_len; /* length of 16-bit UUIDs */
305cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t* bta_dm_eir_uuid16;    /* 16-bit UUIDs */
3065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#else
307cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint32_t uuid_mask[BTM_EIR_SERVICE_ARRAY_SIZE]; /* mask of UUID list in EIR */
3085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
309cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  int8_t* bta_dm_eir_inq_tx_power;     /* Inquiry TX power         */
310cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t bta_dm_eir_flag_len;         /* length of flags in bytes */
311cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t* bta_dm_eir_flags;           /* flags for EIR */
312cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t bta_dm_eir_manufac_spec_len; /* length of manufacturer specific in
313cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                          bytes */
314cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t* bta_dm_eir_manufac_spec;    /* manufacturer specific */
315cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t bta_dm_eir_additional_len;   /* length of additional data in bytes */
316cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t* bta_dm_eir_additional;      /* additional data */
3175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_EIR_CONF;
3185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
319a6ce7751d84218c193eb90d390aef23217b1737eWei Wang/* advertising filter policy */
320cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_AFP tBTA_BLE_AFP;
321a6ce7751d84218c193eb90d390aef23217b1737eWei Wang
322cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum {
323cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_BLE_BATCH_SCAN_MODE_PASS = 1,
324cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_BLE_BATCH_SCAN_MODE_ACTI = 2,
325cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_BLE_BATCH_SCAN_MODE_PASS_ACTI = 3
326c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji};
327e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_BLE_BATCH_SCAN_MODE;
328c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji
329cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum { BTA_BLE_DISCARD_OLD_ITEMS = 0, BTA_BLE_DISCARD_LOWER_RSSI_ITEMS = 1 };
330e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_BLE_DISCARD_RULE;
331c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji
332cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum { BTA_BLE_ADV_SEEN_FIRST_TIME = 0, BTA_BLE_ADV_TRACKING_TIMEOUT = 1 };
333e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_BLE_ADV_CHANGE_REASON;
334c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji
335ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* BLE customer specific feature function type definitions */
336ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* data type used on customer specific feature for RSSI monitoring */
337cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_HI 0
338cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_RANGE 1
339cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_LO 2
340e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_RSSI_ALERT_TYPE;
341ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
342cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_NONE BTM_BLE_RSSI_ALERT_NONE     /*    (0) */
343cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_HI_BIT BTM_BLE_RSSI_ALERT_HI_BIT /*    (1) */
344cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_RANGE_BIT \
345cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_BLE_RSSI_ALERT_RANGE_BIT                              /*    (1 << 1) */
346cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_LO_BIT BTM_BLE_RSSI_ALERT_LO_BIT /*    (1 << 2) */
347cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef uint8_t tBTA_DM_BLE_RSSI_ALERT_MASK;
348ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
349cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_BLE_RSSI_CBACK)(BD_ADDR bd_addr,
350cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                     tBTA_DM_BLE_RSSI_ALERT_TYPE alert_type,
351cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                     int8_t rssi);
352ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
353e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef int8_t tBTA_DM_RSSI_VALUE;
354e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_LINK_QUALITY_VALUE;
3555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
356e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_SIG_STRENGTH_MASK;
3575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Security Callback Events */
359cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ENABLE_EVT 0    /* Enable Event */
360cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DISABLE_EVT 1   /* Disable Event */
361cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PIN_REQ_EVT 2   /* PIN request. */
362cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_CMPL_EVT 3 /* Authentication complete indication. */
363cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTHORIZE_EVT 4 /* Authorization request. */
364cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_UP_EVT 5   /* Connection UP event */
365cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_DOWN_EVT 6 /* Connection DOWN event */
366cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SIG_STRENGTH_EVT                                             \
367cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  7                             /* Signal strength for bluetooth connection \
368cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                   */
369cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BUSY_LEVEL_EVT 8 /* System busy level */
370cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BOND_CANCEL_CMPL_EVT 9 /* Bond cancel complete indication */
371cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_CFM_REQ_EVT                     \
372cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  10 /* Simple Pairing User Confirmation request. \
373cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson        */
374cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_KEY_NOTIF_EVT 11 /* Simple Pairing Passkey Notification */
375cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_RMT_OOB_EVT 12   /* Simple Pairing Remote OOB Data request. */
376cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_KEYPRESS_EVT 13  /* Key press notification event. */
377cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROLE_CHG_EVT 14     /* Role Change event. */
378cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_KEY_EVT 15      /* BLE SMP key event for peer device keys */
379cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_REQ_EVT 16  /* BLE SMP security request */
380cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PASSKEY_NOTIF_EVT 17 /* SMP passkey notification event */
381cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PASSKEY_REQ_EVT 18   /* SMP passkey request event */
382cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_OOB_REQ_EVT 19       /* SMP OOB request event */
383cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_LOCAL_IR_EVT 20      /* BLE local IR event */
384cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_LOCAL_ER_EVT 21      /* BLE local ER event */
385cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_NC_REQ_EVT 22 /* SMP Numeric Comparison request event */
386cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_RMT_OOB_EXT_EVT \
387cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  23 /* Simple Pairing Remote OOB Extended Data request. */
388cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_AUTH_CMPL_EVT 24 /* BLE Auth complete */
389cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DEV_UNPAIRED_EVT 25
390cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_HW_ERROR_EVT 26 /* BT Chip H/W error */
391cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LE_FEATURES_READ                                             \
392cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  27                             /* Cotroller specific LE features are read \
393cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                    */
394cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ENER_INFO_READ 28 /* Energy info read */
395cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SC_OOB_REQ_EVT 29 /* SMP SC OOB request event */
396e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_SEC_EVT;
3975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_ENABLE_EVT */
399cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { tBTA_STATUS status; } tBTA_DM_ENABLE;
4005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_PIN_REQ_EVT */
402cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
403cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in
404cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson   * order */
405cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;     /* BD address peer device. */
406cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  DEV_CLASS dev_class; /* Class of Device */
407cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_NAME bd_name;     /* Name of peer device. */
408cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool min_16_digit;   /* true if the pin returned must be at least 16 digits */
4095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_PIN_REQ;
4105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BLE related definition */
4125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
413cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_FAIL_BASE (HCI_ERR_MAX_ERR + 10)
414cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
415cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson/* Converts SMP error codes defined in smp_api.h to SMP auth fail reasons below.
416cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */
417cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_CONVERT_SMP_CODE(x) (BTA_DM_AUTH_FAIL_BASE + (x))
418cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
419cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_PASSKEY_FAIL \
420cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  (BTA_DM_AUTH_FAIL_BASE + SMP_PASSKEY_ENTRY_FAIL)
421cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_OOB_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_OOB_FAIL)
422cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_PAIR_AUTH_FAIL \
423cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_AUTH_FAIL)
424cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_CONFIRM_VALUE_FAIL \
425cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  (BTA_DM_AUTH_FAIL_BASE + SMP_CONFIRM_VALUE_ERR)
426cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_PAIR_NOT_SUPPORT \
427cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_NOT_SUPPORT)
428cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_ENC_KEY_SIZE (BTA_DM_AUTH_FAIL_BASE + SMP_ENC_KEY_SIZE)
429cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_INVALID_CMD (BTA_DM_AUTH_FAIL_BASE + SMP_INVALID_CMD)
430cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_UNKNOWN_ERR \
431cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_FAIL_UNKNOWN)
432cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_REPEATED_ATTEMPT \
433cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  (BTA_DM_AUTH_FAIL_BASE + SMP_REPEATED_ATTEMPTS)
434cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_INVALID_PARAMETERS \
435cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  (BTA_DM_AUTH_FAIL_BASE + SMP_INVALID_PARAMETERS)
436cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_INTERNAL_ERR \
437cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_INTERNAL_ERR)
438cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_UNKNOWN_IO (BTA_DM_AUTH_FAIL_BASE + SMP_UNKNOWN_IO_CAP)
439cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_INIT_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_INIT_FAIL)
440cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_CONFIRM_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_CONFIRM_FAIL)
441cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_BUSY (BTA_DM_AUTH_FAIL_BASE + SMP_BUSY)
442cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_ENC_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_ENC_FAIL)
443cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_RSP_TIMEOUT (BTA_DM_AUTH_FAIL_BASE + SMP_RSP_TIMEOUT)
444cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_CONN_TOUT (BTA_DM_AUTH_FAIL_BASE + SMP_CONN_TOUT)
4455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* connection parameter boundary value and dummy value */
447cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SCAN_INT_MIN BTM_BLE_SCAN_INT_MIN
448cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SCAN_INT_MAX BTM_BLE_SCAN_INT_MAX
449cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SCAN_WIN_MIN BTM_BLE_SCAN_WIN_MIN
450cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SCAN_WIN_MAX BTM_BLE_SCAN_WIN_MAX
451cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_INT_MIN BTM_BLE_CONN_INT_MIN
452cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_INT_MAX BTM_BLE_CONN_INT_MAX
453cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_LATENCY_MAX BTM_BLE_CONN_LATENCY_MAX
454cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_SUP_TOUT_MIN BTM_BLE_CONN_SUP_TOUT_MIN
455cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_SUP_TOUT_MAX BTM_BLE_CONN_SUP_TOUT_MAX
456cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_PARAM_UNDEF                                          \
457cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_BLE_CONN_PARAM_UNDEF /* use this value when a specific value not to be \
458cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                              overwritten */
459cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
460cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_PENC \
461cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_LE_KEY_PENC /* encryption information of peer device */
462cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_PID BTM_LE_KEY_PID     /* identity key of the peer device */
463cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_PCSRK BTM_LE_KEY_PCSRK /* peer SRK */
464cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_LENC \
465cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_LE_KEY_LENC                     /* master role security information:div */
466cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_LID BTM_LE_KEY_LID /* master device ID key */
467cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_LCSRK \
468cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_LE_KEY_LCSRK                /* local CSRK has been deliver to peer */
469e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_LE_KEY_TYPE; /* can be used as a bit mask */
4705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
471cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_PENC_KEYS tBTA_LE_PENC_KEYS;
4725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef tBTM_LE_PCSRK_KEYS tBTA_LE_PCSRK_KEYS;
473cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_LENC_KEYS tBTA_LE_LENC_KEYS;
474cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_LCSRK_KEYS tBTA_LE_LCSRK_KEYS;
475cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_PID_KEYS tBTA_LE_PID_KEYS;
476cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
477cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union {
478cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_LE_PENC_KEYS penc_key;  /* received peer encryption key */
479cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_LE_PCSRK_KEYS psrk_key; /* received peer device SRK */
480cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_LE_PID_KEYS pid_key;    /* peer device ID key */
481cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_LE_LENC_KEYS
482cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson      lenc_key; /* local encryption reproduction keys LTK = = d1(ER,DIV,0)*/
483cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_LE_LCSRK_KEYS lcsrk_key; /* local device CSRK = d1(ER,DIV,1)*/
484cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_LE_PID_KEYS lid_key; /* local device ID key for the particular remote */
485cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_LE_KEY_VALUE;
486cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
487cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_LOCAL_KEY_TYPE_ID 1
488cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_LOCAL_KEY_TYPE_ER 2
489e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_LOCAL_KEY_MASK;
4905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
491cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
492cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_OCTET16 ir;
493cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_OCTET16 irk;
494cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_OCTET16 dhk;
495cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_BLE_LOCAL_ID_KEYS;
4965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
497cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SEC_GRANTED BTA_SUCCESS
498cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SEC_PAIR_NOT_SPT BTA_DM_AUTH_SMP_PAIR_NOT_SUPPORT
499cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SEC_REP_ATTEMPTS BTA_DM_AUTH_SMP_REPEATED_ATTEMPT
500e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_SEC_GRANT;
5015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_BLE_SEC_REQ_EVT */
503cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
504cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr; /* peer address */
505cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_NAME bd_name; /* peer device name */
5065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_BLE_SEC_REQ;
5075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
508cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
509cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr; /* peer address */
510cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTM_LE_KEY_TYPE key_type;
511cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTM_LE_KEY_VALUE* p_key_value;
512cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_BLE_KEY;
5135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_AUTH_CMPL_EVT */
515cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
516cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;     /* BD address peer device. */
517cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_NAME bd_name;     /* Name of peer device. */
518cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool key_present;    /* Valid link key value in key element */
519cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  LINK_KEY key;        /* Link key associated with peer device. */
520cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t key_type;    /* The type of Link Key */
521cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool success;        /* true of authentication succeeded, false if failed. */
522cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t fail_reason; /* The HCI reason/error code for when success=false */
523cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBLE_ADDR_TYPE addr_type; /* Peer device address type */
524cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBT_DEVICE_TYPE dev_type;
5255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_AUTH_CMPL;
5265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_AUTHORIZE_EVT */
528cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
529cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;         /* BD address peer device. */
530cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_NAME bd_name;         /* Name of peer device. */
531cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_SERVICE_ID service; /* Service ID to authorize. */
532cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  DEV_CLASS dev_class;
5335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_AUTHORIZE;
5345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_LINK_UP_EVT */
536cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
537cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr; /* BD address peer device. */
538cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_TRANSPORT link_type;
5395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_LINK_UP;
5405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_LINK_DOWN_EVT */
542cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
543cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr; /* BD address peer device. */
544cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t status;  /* connection open/closed */
545cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool is_removed; /* true if device is removed when link is down */
546cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_TRANSPORT link_type;
5475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_LINK_DOWN;
5485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_ROLE_CHG_EVT */
550cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
551cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;  /* BD address peer device. */
552cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t new_role; /* the new connection role */
5535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_ROLE_CHG;
5545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_BUSY_LEVEL_EVT */
556cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
557cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t level;       /* when paging or inquiring, level is 10.
558cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                          Otherwise, the number of ACL links */
559cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t level_flags; /* indicates individual flags */
5605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_BUSY_LEVEL;
5615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5622e8e9f42132d0297a94c0852a1fbf45c9bc348e5Myles Watson#define BTA_IO_CAP_OUT BTM_IO_CAP_OUT       /* 0 DisplayOnly */
5632e8e9f42132d0297a94c0852a1fbf45c9bc348e5Myles Watson#define BTA_IO_CAP_IO BTM_IO_CAP_IO         /* 1 DisplayYesNo */
5642e8e9f42132d0297a94c0852a1fbf45c9bc348e5Myles Watson#define BTA_IO_CAP_IN BTM_IO_CAP_IN         /* 2 KeyboardOnly */
5652e8e9f42132d0297a94c0852a1fbf45c9bc348e5Myles Watson#define BTA_IO_CAP_NONE BTM_IO_CAP_NONE     /* 3 NoInputNoOutput */
566cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_IO_CAP_KBDISP BTM_IO_CAP_KBDISP /* 4 Keyboard display */
567cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_IO_CAP tBTA_IO_CAP;
568cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
569cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_SP_NO                                      \
570cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_AUTH_SP_NO /* 0 MITM Protection Not Required - Single \
571cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                   Profile/non-bonding                      \
572cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                   Numeric comparison with automatic accept allowed */
573cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_SP_YES                                                       \
574cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_AUTH_SP_YES /* 1 MITM Protection Required - Single Profile/non-bonding  \
575cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                    Use IO Capabilities to determine authentication procedure \
576cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                    */
577cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_AP_NO                                                      \
578cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_AUTH_AP_NO /* 2 MITM Protection Not Required - All Profiles/dedicated \
579cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                   bonding                                                  \
580cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                   Numeric comparison with automatic accept allowed */
581cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_AP_YES                                                       \
582cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_AUTH_AP_YES /* 3 MITM Protection Required - All Profiles/dedicated      \
583cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                    bonding                                                   \
584cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                    Use IO Capabilities to determine authentication procedure \
585cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                    */
586cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_SPGB_NO                                                       \
587cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_AUTH_SPGB_NO /* 4 MITM Protection Not Required - Single Profiles/general \
588cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                     bonding                                                   \
589cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                     Numeric comparison with automatic accept allowed */
590cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_SPGB_YES                                                   \
591cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_AUTH_SPGB_YES /* 5 MITM Protection Required - Single Profiles/general \
592cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                      bonding                                               \
593cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                      Use IO Capabilities to determine authentication       \
594cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                      procedure */
595cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_AUTH_REQ tBTA_AUTH_REQ;
596cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
597cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_DD_BOND \
598cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_AUTH_DD_BOND /* 2 this bit is set for dedicated bonding */
599cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_GEN_BOND \
600cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_AUTH_SPGB_NO /* 4 this bit is set for general bonding */
601cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_BONDS \
602cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_AUTH_BONDS /* 6 the general/dedicated bonding bits  */
603cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
604cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_NO_BOND BTM_LE_AUTH_REQ_NO_BOND /* 0*/
605cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_BOND BTM_LE_AUTH_REQ_BOND       /* 1 << 0 */
606cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_MITM BTM_LE_AUTH_REQ_MITM   /* 1 << 2 */
607cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
608cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_SC_ONLY BTM_LE_AUTH_REQ_SC_ONLY           /* 1 << 3 */
609cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_SC_BOND BTM_LE_AUTH_REQ_SC_BOND           /* 1001 */
610cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_SC_MITM BTM_LE_AUTH_REQ_SC_MITM           /* 1100 */
611cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_SC_MITM_BOND BTM_LE_AUTH_REQ_SC_MITM_BOND /* 1101 */
612cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_AUTH_REQ
613cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson    tBTA_LE_AUTH_REQ; /* combination of the above bit pattern */
614cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
615cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_OOB_NONE BTM_OOB_NONE
616cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_OOB_PRESENT BTM_OOB_PRESENT
617cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_OOB_UNKNOWN BTM_OOB_UNKNOWN
618cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
619cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_OOB_DATA tBTA_OOB_DATA;
6205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_SP_CFM_REQ_EVT */
622cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
623cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in
624cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson   * order */
625cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;     /* peer address */
626cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  DEV_CLASS dev_class; /* peer CoD */
627cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_NAME bd_name;     /* peer device name */
628cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint32_t num_val; /* the numeric value for comparison. If just_works, do not
629cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                       show this number to UI */
630cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool just_works;  /* true, if "Just Works" association model */
631cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_AUTH_REQ loc_auth_req; /* Authentication required for local device */
632cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_AUTH_REQ rmt_auth_req; /* Authentication required for peer device */
633cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_IO_CAP loc_io_caps;    /* IO Capabilities of local device */
634cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_AUTH_REQ rmt_io_caps;  /* IO Capabilities of remote device */
6355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SP_CFM_REQ;
6365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
637cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum {
638cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_SP_KEY_STARTED, /* passkey entry started */
639cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_SP_KEY_ENTERED, /* passkey digit entered */
640cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_SP_KEY_ERASED,  /* passkey digit erased */
641cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_SP_KEY_CLEARED, /* passkey cleared */
642cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_SP_KEY_COMPLT   /* passkey entry completed */
6435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project};
644cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef uint8_t tBTA_SP_KEY_TYPE;
6455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_SP_KEYPRESS_EVT */
647cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
648cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr; /* peer address */
649cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_SP_KEY_TYPE notif_type;
650cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_SP_KEY_PRESS;
6515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_SP_KEY_NOTIF_EVT */
653cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
654cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in
655cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson   * order */
656cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;     /* peer address */
657cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  DEV_CLASS dev_class; /* peer CoD */
658cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_NAME bd_name;     /* peer device name */
659cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint32_t passkey; /* the numeric value for comparison. If just_works, do not
660cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                       show this number to UI */
6615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SP_KEY_NOTIF;
6625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_SP_RMT_OOB_EVT */
664cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
665cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in
666cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson   * order */
667cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;     /* peer address */
668cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  DEV_CLASS dev_class; /* peer CoD */
669cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_NAME bd_name;     /* peer device name */
6705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SP_RMT_OOB;
6715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_BOND_CANCEL_CMPL_EVT */
673cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
674cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_STATUS result; /* true of bond cancel succeeded, false if failed. */
6755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_BOND_CANCEL_CMPL;
6765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Union of all security callback structures */
678cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union {
679cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_ENABLE enable;          /* BTA enabled */
680cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_PIN_REQ pin_req;        /* PIN request. */
681cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_AUTH_CMPL auth_cmpl;    /* Authentication complete indication. */
682cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_AUTHORIZE authorize;    /* Authorization request. */
683cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_LINK_UP link_up;        /* ACL connection down event */
684cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_LINK_DOWN link_down;    /* ACL connection down event */
685cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_BUSY_LEVEL busy_level;  /* System busy level */
686cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_SP_CFM_REQ cfm_req;     /* user confirm request */
687cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_SP_KEY_NOTIF key_notif; /* passkey notification */
688cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_SP_RMT_OOB rmt_oob;     /* remote oob */
689cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_BOND_CANCEL_CMPL
690cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson      bond_cancel_cmpl;               /* Bond Cancel Complete indication */
691cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_SP_KEY_PRESS key_press;     /* key press notification event */
692cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_ROLE_CHG role_chg;          /* role change event */
693cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_BLE_SEC_REQ ble_req;        /* BLE SMP related request */
694cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_BLE_KEY ble_key;            /* BLE SMP keys used when pairing */
695cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_BLE_LOCAL_ID_KEYS ble_id_keys; /* IR event */
696cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_OCTET16 ble_er;                  /* ER event data */
6975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SEC;
6985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Security callback */
700cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_SEC_CBACK)(tBTA_DM_SEC_EVT event, tBTA_DM_SEC* p_data);
7015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
702cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_LIST_LOGIC_OR 1
703cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_FILT_LOGIC_OR 0
7041a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji
7055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Search callback events */
706cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_RES_EVT 0  /* Inquiry result for a peer device. */
707cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_CMPL_EVT 1 /* Inquiry complete. */
708cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DISC_RES_EVT 2 /* Discovery result for a peer device. */
709cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DISC_BLE_RES_EVT \
710cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  3 /* Discovery result for BLE GATT based servoce on a peer device. */
711cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DISC_CMPL_EVT 4          /* Discovery complete. */
712cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DI_DISC_CMPL_EVT 5       /* Discovery complete. */
713cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SEARCH_CANCEL_CMPL_EVT 6 /* Search cancelled */
7145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
715e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_SEARCH_EVT;
7165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
717cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_RES_IGNORE_RSSI \
718cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_INQ_RES_IGNORE_RSSI /* 0x7f RSSI value not supplied (ignore it) */
7195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_INQ_RES_EVT */
721cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
722cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;             /* BD address peer device. */
723cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  DEV_CLASS dev_class;         /* Device class of peer device. */
724cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool remt_name_not_required; /* Application sets this flag if it already knows
725cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                  the name of the device */
726cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  /* If the device name is known to application BTA skips the remote name
727cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson   * request */
728cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool is_limited; /* true, if the limited inquiry bit is set in the CoD */
729cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  int8_t rssi;     /* The rssi value */
730cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t* p_eir;  /* received EIR */
731cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t inq_result_type;
732cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t ble_addr_type;
733d64bf4f6f8b34471b120330bf3be2b8b7aab0274Jakub Pawlowski  uint16_t ble_evt_type;
7347de0f9b78fb38fcb02cbcd3c1c7c005947b9e291Jakub Pawlowski  uint8_t ble_primary_phy;
7357de0f9b78fb38fcb02cbcd3c1c7c005947b9e291Jakub Pawlowski  uint8_t ble_secondary_phy;
7367de0f9b78fb38fcb02cbcd3c1c7c005947b9e291Jakub Pawlowski  uint8_t ble_advertising_sid;
7377de0f9b78fb38fcb02cbcd3c1c7c005947b9e291Jakub Pawlowski  int8_t ble_tx_power;
7387de0f9b78fb38fcb02cbcd3c1c7c005947b9e291Jakub Pawlowski  uint16_t ble_periodic_adv_int;
739cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBT_DEVICE_TYPE device_type;
740cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t flag;
7415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_INQ_RES;
7425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_INQ_CMPL_EVT */
744cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
745cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t num_resps; /* Number of inquiry responses. */
7465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_INQ_CMPL;
7475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_DI_DISC_CMPL_EVT */
749cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
750cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;    /* BD address peer device. */
751cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t num_record; /* Number of DI record */
752cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_STATUS result;
7535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_DI_DISC_CMPL;
7545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_DISC_RES_EVT */
756cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
757cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;             /* BD address peer device. */
758cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_NAME bd_name;             /* Name of peer device. */
759cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_SERVICE_MASK services;  /* Services found on peer device. */
760cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t* p_raw_data;         /* Raw data for discovery DB */
761cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint32_t raw_data_size;      /* size of raw data */
762cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBT_DEVICE_TYPE device_type; /* device type in case it is BLE device */
763cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint32_t num_uuids;
764cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t* p_uuid_list;
765cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_STATUS result;
7665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_DISC_RES;
7675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with tBTA_DM_DISC_BLE_RES */
769cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
770cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;  /* BD address peer device. */
771cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_NAME bd_name;  /* Name of peer device. */
772cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBT_UUID service; /* GATT based Services UUID found on peer device. */
7735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_DISC_BLE_RES;
7745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Union of all search callback structures */
776cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union {
777cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_INQ_RES inq_res;   /* Inquiry result for a peer device. */
778cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_INQ_CMPL inq_cmpl; /* Inquiry complete. */
779cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_DISC_RES disc_res; /* Discovery result for a peer device. */
780cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_DISC_BLE_RES
781cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson      disc_ble_res;             /* discovery result for GATT based service */
782cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_DI_DISC_CMPL di_disc; /* DI discovery result for a peer device */
7835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SEARCH;
7855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Search callback */
787cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_SEARCH_CBACK)(tBTA_DM_SEARCH_EVT event,
788cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                   tBTA_DM_SEARCH* p_data);
7895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Execute call back */
791cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_EXEC_CBACK)(void* p_param);
7925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Encryption callback*/
794cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_ENCRYPT_CBACK)(BD_ADDR bd_addr, tBTA_TRANSPORT transport,
795cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                    tBTA_STATUS result);
7965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
797cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_NONE BTM_BLE_SEC_NONE
798cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_ENCRYPT BTM_BLE_SEC_ENCRYPT
799cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_NO_MITM BTM_BLE_SEC_ENCRYPT_NO_MITM
800cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_MITM BTM_BLE_SEC_ENCRYPT_MITM
801cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_SEC_ACT tBTA_DM_BLE_SEC_ACT;
802c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji
803cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_TX_TIME_MS tBTA_DM_BLE_TX_TIME_MS;
804cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_RX_TIME_MS tBTA_DM_BLE_RX_TIME_MS;
805cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_IDLE_TIME_MS tBTA_DM_BLE_IDLE_TIME_MS;
806cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_ENERGY_USED tBTA_DM_BLE_ENERGY_USED;
807cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
808cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONTRL_UNKNOWN 0 /* Unknown state */
809cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONTRL_ACTIVE 1  /* ACL link on, SCO link ongoing, sniff mode */
810cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONTRL_SCAN                   \
811cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  2 /* Scan state - paging/inquiry/trying to \
812cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson       connect*/
813cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONTRL_IDLE                           \
814cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  3 /* Idle state - page scan, LE advt, inquiry scan \
815cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson       */
816e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji
817e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_CONTRL_STATE;
818e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji
819e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_ADV_STATE;
820e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_ADV_INFO_PRESENT;
821e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_RSSI_VALUE;
822e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint16_t tBTA_DM_BLE_ADV_INFO_TIMESTAMP;
823f538707fe64c62b1dbb8e4210e4a1bfa0bab2b56Satya Calloji
824cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_BLE_ENERGY_INFO_CBACK)(tBTA_DM_BLE_TX_TIME_MS tx_time,
825cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                         tBTA_DM_BLE_RX_TIME_MS rx_time,
826cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                         tBTA_DM_BLE_IDLE_TIME_MS idle_time,
827cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                         tBTA_DM_BLE_ENERGY_USED energy_used,
828cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                         tBTA_DM_CONTRL_STATE ctrl_state,
829cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                         tBTA_STATUS status);
830e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji
8315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Maximum service name length */
832cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SERVICE_NAME_LEN 35
833cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SERVICE_DESP_LEN BTA_SERVICE_NAME_LEN
834cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_PROVIDER_NAME_LEN BTA_SERVICE_NAME_LEN
8355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* link policy masks  */
837cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LP_SWITCH HCI_ENABLE_MASTER_SLAVE_SWITCH
838cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LP_HOLD HCI_ENABLE_HOLD_MODE
839cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LP_SNIFF HCI_ENABLE_SNIFF_MODE
840cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LP_PARK HCI_ENABLE_PARK_MODE
841e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint16_t tBTA_DM_LP_MASK;
8425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* power mode actions  */
844cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_NO_ACTION 0x00 /* no change to the current pm setting */
845cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK 0x10      /* prefers park mode */
846cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF 0x20     /* prefers sniff mode */
847cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF1 0x21    /* prefers sniff1 mode */
848cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF2 0x22    /* prefers sniff2 mode */
849cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF3 0x23    /* prefers sniff3 mode */
850cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF4 0x24    /* prefers sniff4 mode */
851cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF5 0x25    /* prefers sniff5 mode */
852cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF6 0x26    /* prefers sniff6 mode */
853cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF7 0x27    /* prefers sniff7 mode */
854cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_USER0 \
855cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  0x28 /* prefers user-defined sniff0 mode (testtool only) */
856cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_USER1 \
857cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  0x29 /* prefers user-defined sniff1 mode (testtool only) */
858cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_ACTIVE 0x40  /* prefers active mode */
859cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_RETRY 0x80   /* retry power mode based on current settings */
860cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SUSPEND 0x04 /* prefers suspend mode */
861cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_NO_PREF                                                   \
862cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  0x01 /* service has no prefernce on power mode setting. eg. connection to \
863cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson          service got closed */
8645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
865e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_PM_ACTION;
8665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* index to bta_dm_ssr_spec */
868cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR0 0
869cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR1                      \
870cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  1 /* BTA_DM_PM_SSR1 will be dedicated for \
871cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson    HH SSR setting entry, no other profile can use it */
872cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR2 2
873cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR3 3
874cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR4 4
875cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR5 5
876cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR6 6
877cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
878cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_NUM_EVTS 9
8795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_DM_PM_PARK_IDX
881cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_IDX \
882cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  5 /* the actual index to bta_dm_pm_md[] for PARK mode */
8835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
8845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
88563399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_A2DP_IDX
886cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_A2DP_IDX BTA_DM_PM_SNIFF
88763399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
88863399d943938cb7234a7fba508ea603070720d77Adam Hampson
88963399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HD_IDLE_IDX
890cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_HD_IDLE_IDX BTA_DM_PM_SNIFF2
89163399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
89263399d943938cb7234a7fba508ea603070720d77Adam Hampson
89363399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_SCO_OPEN_IDX
894cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_SCO_OPEN_IDX BTA_DM_PM_SNIFF3
89563399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
89663399d943938cb7234a7fba508ea603070720d77Adam Hampson
89763399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HD_ACTIVE_IDX
89863399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF_HD_ACTIVE_IDX BTA_DM_PM_SNIFF4
89963399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
90063399d943938cb7234a7fba508ea603070720d77Adam Hampson
90163399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HH_OPEN_IDX
90263399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF_HH_OPEN_IDX BTA_DM_PM_SNIFF2
90363399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
90463399d943938cb7234a7fba508ea603070720d77Adam Hampson
90563399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HH_ACTIVE_IDX
90663399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF_HH_ACTIVE_IDX BTA_DM_PM_SNIFF2
90763399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
90863399d943938cb7234a7fba508ea603070720d77Adam Hampson
90963399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HH_IDLE_IDX
91063399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF_HH_IDLE_IDX BTA_DM_PM_SNIFF2
91163399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
91263399d943938cb7234a7fba508ea603070720d77Adam Hampson
91363399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_HH_OPEN_DELAY
91463399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_HH_OPEN_DELAY 30000
91563399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
91663399d943938cb7234a7fba508ea603070720d77Adam Hampson
91763399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_HH_ACTIVE_DELAY
91863399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_HH_ACTIVE_DELAY 30000
91963399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
92063399d943938cb7234a7fba508ea603070720d77Adam Hampson
92163399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_HH_IDLE_DELAY
92263399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_HH_IDLE_DELAY 30000
92363399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
92463399d943938cb7234a7fba508ea603070720d77Adam Hampson
92563399d943938cb7234a7fba508ea603070720d77Adam Hampson/* The Sniff Parameters defined below must be ordered from highest
92663399d943938cb7234a7fba508ea603070720d77Adam Hampson * latency (biggest interval) to lowest latency.  If there is a conflict
92763399d943938cb7234a7fba508ea603070720d77Adam Hampson * among the connected services the setting with the lowest latency will
92863399d943938cb7234a7fba508ea603070720d77Adam Hampson * be selected.  If a device should override a sniff parameter then it
92963399d943938cb7234a7fba508ea603070720d77Adam Hampson * must insure that order is maintained.
93063399d943938cb7234a7fba508ea603070720d77Adam Hampson */
93163399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_MAX
932cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_MAX 800
933cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_MIN 400
934cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_ATTEMPT 4
935cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_TIMEOUT 1
93663399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
93763399d943938cb7234a7fba508ea603070720d77Adam Hampson
93863399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF1_MAX
939cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF1_MAX 400
940cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF1_MIN 200
94163399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF1_ATTEMPT 4
94263399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF1_TIMEOUT 1
94363399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
94463399d943938cb7234a7fba508ea603070720d77Adam Hampson
94563399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF2_MAX
9468843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta#define BTA_DM_PM_SNIFF2_MAX 54
9478843cc830b522cfe6f1e361297fc28fd331a1378Hemant Gupta#define BTA_DM_PM_SNIFF2_MIN 30
94863399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF2_ATTEMPT 4
94963399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF2_TIMEOUT 1
95063399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
95163399d943938cb7234a7fba508ea603070720d77Adam Hampson
95263399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF3_MAX
953cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF3_MAX 150
954cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF3_MIN 50
95563399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF3_ATTEMPT 4
95663399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF3_TIMEOUT 1
95763399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
95863399d943938cb7234a7fba508ea603070720d77Adam Hampson
95963399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF4_MAX
960cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF4_MAX 54
961cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF4_MIN 30
96263399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF4_ATTEMPT 4
96363399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF4_TIMEOUT 1
96463399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
96563399d943938cb7234a7fba508ea603070720d77Adam Hampson
9661076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov#ifndef BTA_DM_PM_SNIFF5_MAX
967cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF5_MAX 36
968cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF5_MIN 30
9691076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov#define BTA_DM_PM_SNIFF5_ATTEMPT 2
9701076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov#define BTA_DM_PM_SNIFF5_TIMEOUT 0
9711076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov#endif
9721076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov
97363399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_PARK_MAX
974cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_MAX 800
975cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_MIN 400
976cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_ATTEMPT 0
977cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_TIMEOUT 0
97863399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
97963399d943938cb7234a7fba508ea603070720d77Adam Hampson
9805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Switch callback events */
981cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SWITCH_CMPL_EVT 0 /* Completion of the Switch API */
9825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
983e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_SWITCH_EVT;
984cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_SWITCH_CBACK)(tBTA_DM_SWITCH_EVT event,
985cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                   tBTA_STATUS status);
9865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Audio routing out configuration */
988cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_NONE 0x00      /* No Audio output */
989cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_DAC 0x01       /* routing over analog output */
990cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_I2S 0x02       /* routing over digital (I2S) output */
991cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_BT_MONO 0x04   /* routing over SCO */
992cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_BT_STEREO 0x08 /* routing over BT Stereo */
993cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_HOST 0x10      /* routing over Host */
994cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_FMTX 0x20      /* routing over FMTX */
995cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_FMRX 0x40      /* routing over FMRX */
996cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_BTSNK 0x80     /* routing over BT SNK */
9975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
998e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_ROUTE_PATH;
9995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Device Identification (DI) data structure
10015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
10025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Used to set the DI record */
1003cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tSDP_DI_RECORD tBTA_DI_RECORD;
10045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Used to get the DI record */
1005cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tSDP_DI_GET_RECORD tBTA_DI_GET_RECORD;
10065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SDP discovery database */
1007cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tSDP_DISCOVERY_DB tBTA_DISCOVERY_DB;
10085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1009cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#ifndef BTA_DI_NUM_MAX
1010cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DI_NUM_MAX 3
10115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
10125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10133aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/* Device features mask definitions */
1014cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_FEATURE_BYTES_PER_PAGE BTM_FEATURE_BYTES_PER_PAGE
1015cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_EXT_FEATURES_PAGE_MAX BTM_EXT_FEATURES_PAGE_MAX
10167fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* ACL type
10177fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta*/
1018cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_TYPE_BR_EDR 0x01
1019cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_TYPE_LE 0x02
1020cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_TYPE_ALL 0xFF
1021e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_LINK_TYPE;
10223aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach
1023cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define IMMEDIATE_DELY_MODE 0x00
1024cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define ONFOUND_DELY_MODE 0x01
1025cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BATCH_DELY_MODE 0x02
1026cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define ALLOW_ALL_FILTER 0x00
1027cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define LOWEST_RSSI_VALUE 129
10286e2d9db5148176d88d7f48c3b2ad5b27c57ca14dSatya Calloji
10295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
10308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *  External Function Declarations
10318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ****************************************************************************/
10325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
10348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_EnableBluetooth
10368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function initializes BTA and prepares BTA and the
10388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  Bluetooth protocol stack for use.  This function is
10398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  typically called at startup or when Bluetooth services
10408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  are required by the phone.  This function must be called
10418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  before calling any other API function.
10428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          BTA_SUCCESS if successful.
10458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  BTA_FAIL if internal failure.
10468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1048cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern tBTA_STATUS BTA_EnableBluetooth(tBTA_DM_SEC_CBACK* p_cback);
10495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
10518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DisableBluetooth
10538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function disables BTA and the Bluetooth protocol
10558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  stack.  It is called when BTA is no longer being used
10568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  by any application in the system.
10578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
10608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
106224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTA_STATUS BTA_DisableBluetooth(void);
10635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
10658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_EnableTestMode
10678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      Enables bluetooth device under test mode
10698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          tBTA_STATUS
10728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
107424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTA_STATUS BTA_EnableTestMode(void);
10755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
10778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DisableTestMode
10798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      Disable bluetooth device under test mode
10818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          None
10848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
108624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DisableTestMode(void);
10875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
10898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmSetDeviceName
10918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function sets the Bluetooth name of the local device.
10938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
10968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
10978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1098cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSetDeviceName(char* p_name);
10995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
11018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmSetVisibility
11038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function sets the Bluetooth connectable,discoverable,
1105cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson *                  pairable and conn paired only modesmodes of the local
11061baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  device.
1107cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson *                  This controls whether other Bluetooth devices can find and
11081baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  connect to the local device.
11098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
11128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1114cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSetVisibility(tBTA_DM_DISC disc_mode, tBTA_DM_CONN conn_mode,
1115cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                uint8_t pairable_mode, uint8_t conn_filter);
11165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
11188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmSearch
11208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function searches for peer Bluetooth devices.  It
11228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  first performs an inquiry; for each device found from the
11238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  inquiry it gets the remote name of the device.  If
11248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  parameter services is nonzero, service discovery will be
11258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  performed on each device for the services specified.
11268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
11298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1131cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSearch(tBTA_DM_INQ* p_dm_inq, tBTA_SERVICE_MASK services,
1132cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                         tBTA_DM_SEARCH_CBACK* p_cback);
11335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
11358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmSearchCancel
11378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function cancels a search that has been initiated
11398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  by calling BTA_DmSearch().
11408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
11438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
114524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmSearchCancel(void);
11465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
11488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmDiscover
11508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function performs service discovery for the services
11528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  of a particular peer device.
11538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
11568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
115824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmDiscover(BD_ADDR bd_addr, tBTA_SERVICE_MASK services,
1159cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                           tBTA_DM_SEARCH_CBACK* p_cback, bool sdp_search);
11605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
11628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmDiscoverUUID
11648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function performs service discovery for the services
11668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  of a particular peer device.
11678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
11708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1172cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmDiscoverUUID(BD_ADDR bd_addr, tSDP_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 ******************************************************************************/
1185cd1fd07f1306e08fe048682dd5918987e579f937Myles WatsontBTA_STATUS BTA_DmGetCachedRemoteName(BD_ADDR 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 ******************************************************************************/
120024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmBond(BD_ADDR 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 ******************************************************************************/
121524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmBondByTransport(BD_ADDR bd_addr, tBTA_TRANSPORT transport);
12167fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
12177fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*******************************************************************************
12188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBondCancel
12208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function cancels a bonding procedure with a peer
12228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  device.
12238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
12268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
122824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmBondCancel(BD_ADDR bd_addr);
12295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
12318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmPinReply
12338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function provides a PIN when one is requested by DM
12358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  during a bonding procedure.  The application should call
12368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  this function after the security callback is called with
12378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  a BTA_DM_PIN_REQ_EVT.
12388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
12418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1243e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmPinReply(BD_ADDR bd_addr, bool accept, uint8_t pin_len,
1244cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                           uint8_t* p_pin);
12455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
12478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmLocalOob
12498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function retrieves the OOB data from local controller.
12518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  The result is reported by bta_dm_co_loc_oob().
12528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
12548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
125624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmLocalOob(void);
12575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
12598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmConfirm
12618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function accepts or rejects the numerical value of the
12638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  Simple Pairing process on BTA_DM_SP_CFM_REQ_EVT
12648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
12668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1268e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmConfirm(BD_ADDR bd_addr, bool accept);
12695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
12718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmAddDevice
12738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function adds a device to the security database list
12758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  of peer devices. This function would typically be called
12768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  at system startup to initialize the security database with
12778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  known peer devices.  This is a direct execution function
12788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  that may lock task scheduling on some platforms.
12798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
12818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
128324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmAddDevice(BD_ADDR bd_addr, DEV_CLASS dev_class,
128424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                            LINK_KEY link_key, tBTA_SERVICE_MASK trusted_mask,
1285e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssen                            bool is_trusted, uint8_t key_type,
1286e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssen                            tBTA_IO_CAP io_cap, uint8_t pin_length);
12875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
12898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmRemoveDevice
12918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function removes a device from the security database.
12938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  This is a direct execution function that may lock task
12948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  scheduling on some platforms.
12958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          BTA_SUCCESS if successful.
12988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  BTA_FAIL if operation failed.
12998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
130124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTA_STATUS BTA_DmRemoveDevice(BD_ADDR bd_addr);
13025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
13048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_GetEirService
13068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function is called to get BTA service mask from EIR.
13088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters       p_eir - pointer of EIR significant part
13108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  p_services - return the BTA service mask
13118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          None
13138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1315cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_GetEirService(uint8_t* p_eir, tBTA_SERVICE_MASK* p_services);
13165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13175c0b052090a57b3926669c23349b0f0db68853f8Andre Eisenbach/*******************************************************************************
13188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmGetConnectionState
13208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      Returns whether the remote device is currently connected.
13228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          0 if the device is NOT connected.
13248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1326cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern uint16_t BTA_DmGetConnectionState(const BD_ADDR bd_addr);
13275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
13298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmSetLocalDiRecord
13318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function adds a DI record to the local SDP database.
13338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          BTA_SUCCESS if record set sucessfully, otherwise error code.
13358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1337cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern tBTA_STATUS BTA_DmSetLocalDiRecord(tBTA_DI_RECORD* p_device_info,
1338cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                          uint32_t* p_handle);
13395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
13418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmCloseACL
13448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
1345cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description      This function force to close an ACL connection and remove
1346cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson the
13478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  device from the security database list of known devices.
13488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      bd_addr       - Address of the peer device
13508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  remove_dev    - remove device or not after link down
13518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  transport     - which transport to close
13528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson
13538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void.
13558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1357cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmCloseACL(BD_ADDR bd_addr, bool remove_dev,
1358cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                           tBTA_TRANSPORT transport);
13595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
13618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         bta_dmexecutecallback
13638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
1364cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description      This function will request BTA to execute a call back in the
13651baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  context of BTU task.
13668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  This API was named in lower case because it is only intended
13678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  for the internal customers(like BTIF).
13688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
13708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1372cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dmexecutecallback(tBTA_DM_EXEC_CBACK* p_callback,
1373cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                  void* p_param);
13745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTM_SCO_HCI_INCLUDED == TRUE)
13765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
13778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmPcmInitSamples
13798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      initialize the down sample converter.
13818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  src_sps: original samples per second (source audio data)
13838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                            (ex. 44100, 48000)
13848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  bits: number of bits per pcm sample (16)
13858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  n_channels: number of channels (i.e. mono(1), stereo(2)...)
13868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          none
13888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1390cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmPcmInitSamples(uint32_t src_sps, uint32_t bits,
1391cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                 uint32_t n_channels);
13925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1393ee96a3c60fca590d38025925c072d264e06493c4Myles Watson/*******************************************************************************
13948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmPcmResample
13958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
1396cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description      Down sampling utility to convert higher sampling rate into
13971baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  8K/16bits
13988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  PCM samples.
13998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters       p_src: pointer to the buffer where the original sampling PCM
14018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                              are stored.
14028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  in_bytes:  Length of the input PCM sample buffer in byte.
14031baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  p_dst: pointer to the buffer which is to be used to store
14041baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                         the converted PCM samples.
14058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          int32_t: number of samples converted.
14088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
1409ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1410cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern int32_t BTA_DmPcmResample(void* p_src, uint32_t in_bytes, void* p_dst);
14115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
14125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BLE related API functions */
14145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
14158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleSecurityGrant
14178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      Grant security request access.
14198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      bd_addr          - BD address of the peer
14218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  res              - security grant status.
14228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
14248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
142624933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmBleSecurityGrant(BD_ADDR bd_addr, tBTA_DM_BLE_SEC_GRANT res);
14275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
142883211b0ccceb53586ac651a4d67ded7443b2f222Jakub Pawlowski/**
142983211b0ccceb53586ac651a4d67ded7443b2f222Jakub Pawlowski * Set BLE connectable mode to auto connect
143083211b0ccceb53586ac651a4d67ded7443b2f222Jakub Pawlowski */
143183211b0ccceb53586ac651a4d67ded7443b2f222Jakub Pawlowskiextern void BTA_DmBleStartAutoConn();
14325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
14348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBlePasskeyReply
14368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      Send BLE SMP passkey reply.
14388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      bd_addr          - BD address of the peer
14408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  accept           - passkey entry sucessful or declined.
14418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  passkey          - passkey value, must be a 6 digit number,
14428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                                     can be lead by 0.
14438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
14458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1447cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmBlePasskeyReply(BD_ADDR bd_addr, bool accept,
1448cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                  uint32_t passkey);
14495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
14518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleConfirmReply
14538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      Send BLE SMP SC user confirmation reply.
14558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      bd_addr          - BD address of the peer
1457cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson *                  accept           - numbers to compare are the same or
14581baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                                     different.
14598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
14618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1463e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmBleConfirmReply(BD_ADDR bd_addr, bool accept);
1464444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji
1465444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/*******************************************************************************
14668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmAddBleDevice
14688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      Add a BLE device.  This function will be normally called
14708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  during host startup to restore all required information
14718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  for a LE device stored in the NVRAM.
14728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      bd_addr          - BD address of the peer
14748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  dev_type         - Remote device's device type.
14758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  addr_type        - LE device address type.
14768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
14788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
148024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmAddBleDevice(BD_ADDR bd_addr, tBLE_ADDR_TYPE addr_type,
148124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                               tBT_DEVICE_TYPE dev_type);
14825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
14848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmAddBleKey
14868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      Add/modify LE device information.  This function will be
14888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  normally called during host startup to restore all required
14898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  information stored in the NVRAM.
14908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      bd_addr          - BD address of the peer
14928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  p_le_key         - LE key values.
14938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  key_type         - LE SMP key type.
14948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
14968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1498cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmAddBleKey(BD_ADDR bd_addr, tBTA_LE_KEY_VALUE* p_le_key,
1499cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                            tBTA_LE_KEY_TYPE key_type);
15005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
15028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmSetBlePrefConnParams
15048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function is called to set the preferred connection
15068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  parameters when default connection parameter is not desired.
15078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      bd_addr          - BD address of the peripheral
15098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  min_conn_int     - minimum preferred connection interval
15108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  max_conn_int     - maximum preferred connection interval
15118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  slave_latency    - preferred slave latency
15128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  supervision_tout - preferred supervision timeout
15138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
15168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1518063ca0230d902b1397bb8c19366e807980d876f3Jakub Pawlowskiextern void BTA_DmSetBlePrefConnParams(const BD_ADDR bd_addr,
1519cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                       uint16_t min_conn_int,
1520cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                       uint16_t max_conn_int,
1521cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                       uint16_t slave_latency,
1522cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                       uint16_t supervision_tout);
15235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
15258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmSetBleConnScanParams
15278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function is called to set scan parameters used in
15298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  BLE connection request
15308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      scan_interval    - scan interval
15328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  scan_window      - scan window
15338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
15358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1537e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmSetBleConnScanParams(uint32_t scan_interval,
1538e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssen                                       uint32_t scan_window);
15395725fc6d2c639a8c22a08b9b6629309eeda3715eSatya Calloji
15405725fc6d2c639a8c22a08b9b6629309eeda3715eSatya Calloji/*******************************************************************************
15418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmSearchExt
15438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
1544cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description      This function searches for peer Bluetooth devices. It
15451baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  performs an inquiry and gets the remote name for devices.
15461baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  Service discovery is done if services is non zero
15478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters       p_dm_inq: inquiry conditions
1549cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson *                  services: if service is not empty, service discovery will be
15501baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                            done.
1551cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson *                            for all GATT based service condition, put
15521baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                            num_uuid, and p_uuid is the pointer to the list of
15531baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                            UUID values.
15548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  p_cback: callback functino when search is completed.
15558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
15598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1561cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSearchExt(tBTA_DM_INQ* p_dm_inq,
1562cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                            tBTA_SERVICE_MASK_EXT* p_services,
1563cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                            tBTA_DM_SEARCH_CBACK* p_cback);
15645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
15668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmDiscoverExt
15688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function does service discovery for services of a
15708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  peer device. When services.num_uuid is 0, it indicates all
15718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  GATT based services are to be searched; other wise a list of
15728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  UUID of interested services should be provided through
15738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  services.p_uuid.
15748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
15788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1580cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmDiscoverExt(BD_ADDR bd_addr,
1581cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                              tBTA_SERVICE_MASK_EXT* p_services,
1582cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                              tBTA_DM_SEARCH_CBACK* p_cback, bool sdp_search);
15835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15847fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*******************************************************************************
15858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmDiscoverByTransport
15878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function does service discovery on particular transport
15898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  for services of a
15908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  peer device. When services.num_uuid is 0, it indicates all
15918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  GATT based services are to be searched; other wise a list of
15928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  UUID of interested services should be provided through
15938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  p_services->p_uuid.
15948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
15988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1600cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmDiscoverByTransport(BD_ADDR bd_addr,
1601cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                      tBTA_SERVICE_MASK_EXT* p_services,
1602cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                      tBTA_DM_SEARCH_CBACK* p_cback,
1603cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                      bool sdp_search,
160424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                      tBTA_TRANSPORT transport);
16055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
16078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmSetEncryption
16098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function is called to ensure that connection is
16118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  encrypted.  Should be called only on an open connection.
16128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  Typically only needed for connections that first want to
16138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  bring up unencrypted links, then later encrypt them.
16148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      bd_addr       - Address of the peer device
16168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  transport     - transport of the link to be encruypted
16178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  p_callback    - Pointer to callback function to indicat the
16188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                                  link encryption status
16198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  sec_act       - This is the security action to indicate
16201baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                                  what kind of BLE security level is required
16211baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                                  for the BLE link if BLE is supported
16221baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                                  Note: This parameter is ignored for
16231baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                                        BR/EDR or if BLE is not supported.
16248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
16268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
162924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmSetEncryption(BD_ADDR bd_addr, tBTA_TRANSPORT transport,
1630cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                tBTA_DM_ENCRYPT_CBACK* p_callback,
163124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                tBTA_DM_BLE_SEC_ACT sec_act);
16325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1633ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/*******************************************************************************
16348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleObserve
16368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This procedure keep the device listening for advertising
16388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  events from a broadcast device.
16398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters       start: start or stop observe.
1641cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson *                  duration : Duration of the scan. Continuous scan if 0 is
16421baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                             passed
16438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  p_results_cb: Callback to be called with scan results
16448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
16468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1648e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmBleObserve(bool start, uint8_t duration,
1649cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                             tBTA_DM_SEARCH_CBACK* p_results_cb);
1650ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
1651ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/*******************************************************************************
16528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleConfigLocalPrivacy
16548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      Enable/disable privacy on the local device
16568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      privacy_enable   - enable/disabe privacy on remote device.
16588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
16608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1662e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmBleConfigLocalPrivacy(bool privacy_enable);
1663ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
1664ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/*******************************************************************************
16658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleEnableRemotePrivacy
16678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      Enable/disable privacy on a remote device
16698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      bd_addr          - BD address of the peer
16718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  privacy_enable   - enable/disabe privacy on remote device.
16728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
16748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1676e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmBleEnableRemotePrivacy(BD_ADDR bd_addr, bool privacy_enable);
1677ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
16786a9666116668683fb473239ff381dec16b784421Jakub Pawlowski/*******************************************************************************
16798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleUpdateConnectionParams
16818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
1682cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description      Update connection parameters, can only be used when
16831baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  connection is up.
16848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      bd_addr   - BD address of the peer
16861baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  min_int   - minimum connection interval, [0x0004 ~ 0x4000]
16871baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  max_int   - maximum connection interval, [0x0004 ~ 0x4000]
16881baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  latency   - slave latency [0 ~ 500]
16891baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  timeout   - supervision timeout [0x000a ~ 0xc80]
16908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
16928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1694cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmBleUpdateConnectionParams(const BD_ADDR bd_addr,
1695cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                            uint16_t min_int, uint16_t max_int,
1696cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                            uint16_t latency, uint16_t timeout);
1697c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji
1698c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji/*******************************************************************************
16998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleSetDataLength
17018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function is to set maximum LE data packet size
17038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
17058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1707cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmBleSetDataLength(BD_ADDR remote_device,
1708cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                   uint16_t tx_data_length);
1709636d6714a4c08dd99d2147dcce05dc3892e804b4Priti Aghera
1710636d6714a4c08dd99d2147dcce05dc3892e804b4Priti Aghera/*******************************************************************************
17118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleGetEnergyInfo
17138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function is called to obtain the energy info
17158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters       p_cmpl_cback - Command complete callback
17178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
17198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1721cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmBleGetEnergyInfo(tBTA_BLE_ENERGY_INFO_CBACK* p_cmpl_cback);
1722e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji
172316fe0822ccd3eb6f66d3afd9965d25a0a0cb4c30Prerepa Viswanadham/*******************************************************************************
17248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_BrcmInit
17268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
1727cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description      This function initializes Broadcom specific VS handler in
17281baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  BTA
17298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
17318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1733cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_VendorInit(void);
173416fe0822ccd3eb6f66d3afd9965d25a0a0cb4c30Prerepa Viswanadham
173516fe0822ccd3eb6f66d3afd9965d25a0a0cb4c30Prerepa Viswanadham/*******************************************************************************
17368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_BrcmCleanup
17388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
1739cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description      This function frees up Broadcom specific VS specific dynamic
17401baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  memory
17418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
17438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1745cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_VendorCleanup(void);
174616fe0822ccd3eb6f66d3afd9965d25a0a0cb4c30Prerepa Viswanadham
17475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BTA_API_H */
1748