bta_api.h revision 709843216679a3c7852d7d254fde47a9d503abd8
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 */
88cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_PCE_SERVICE_ID 28        /* PhoneBook Access Client*/
89cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SDP_SERVICE_ID 29        /* SDP Search*/
905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
919979121f0865e07432215529f9b157792ae3ef21Myles Watson/* BLE profile service ID */
929979121f0865e07432215529f9b157792ae3ef21Myles Watson#define BTA_BLE_SERVICE_ID 30  /* GATT profile */
93cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_USER_SERVICE_ID 31 /* User requested UUID */
94cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_MAX_SERVICE_ID 32
959979121f0865e07432215529f9b157792ae3ef21Myles Watson
965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* service IDs (BTM_SEC_SERVICE_FIRST_EMPTY + 1) to (BTM_SEC_MAX_SERVICES - 1)
975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * are used by BTA JV */
98cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_FIRST_JV_SERVICE_ID (BTM_SEC_SERVICE_FIRST_EMPTY + 1)
99cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LAST_JV_SERVICE_ID (BTM_SEC_MAX_SERVICES - 1)
1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
101e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_SERVICE_ID;
1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Service ID Mask */
104cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_RES_SERVICE_MASK 0x00000001    /* Reserved */
105cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SPP_SERVICE_MASK 0x00000002    /* Serial port profile. */
106cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DUN_SERVICE_MASK 0x00000004    /* Dial-up networking profile. */
107cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_FAX_SERVICE_MASK 0x00000008    /* Fax profile. */
108cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LAP_SERVICE_MASK 0x00000010    /* LAN access profile. */
109cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HSP_SERVICE_MASK 0x00000020    /* HSP AG role. */
110cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HFP_SERVICE_MASK 0x00000040    /* HFP AG role */
111cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_OPP_SERVICE_MASK 0x00000080    /* Object push  */
112cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_FTP_SERVICE_MASK 0x00000100    /* File transfer */
113cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_CTP_SERVICE_MASK 0x00000200    /* Cordless Terminal */
114cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_ICP_SERVICE_MASK 0x00000400    /* Intercom Terminal */
115cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SYNC_SERVICE_MASK 0x00000800   /* Synchronization */
116cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BPP_SERVICE_MASK 0x00001000    /* Print server */
117cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BIP_SERVICE_MASK 0x00002000    /* Basic Imaging */
118cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_PANU_SERVICE_MASK 0x00004000   /* PAN User */
119cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_NAP_SERVICE_MASK 0x00008000    /* PAN Network access point */
120cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_GN_SERVICE_MASK 0x00010000     /* PAN Group Ad-hoc networks */
121cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SAP_SERVICE_MASK 0x00020000    /* PAN Group Ad-hoc networks */
122cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_A2DP_SERVICE_MASK 0x00040000   /* Advanced audio distribution */
123cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AVRCP_SERVICE_MASK 0x00080000  /* A/V remote control */
124cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HID_SERVICE_MASK 0x00100000    /* HID */
125cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_VDP_SERVICE_MASK 0x00200000    /* Video distribution */
126cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_PBAP_SERVICE_MASK 0x00400000   /* Phone Book Server */
127cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HSP_HS_SERVICE_MASK 0x00800000 /* HFP HS role */
128cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HFP_HS_SERVICE_MASK 0x01000000 /* HSP HS role */
129cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_MAS_SERVICE_MASK 0x02000000    /* Message Access Profile */
130cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_MN_SERVICE_MASK 0x04000000     /* Message Notification Profile */
131cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_HL_SERVICE_MASK 0x08000000     /* Health Device Profile */
132cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_PCE_SERVICE_MASK 0x10000000    /* Phone Book Client */
1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
134cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_SERVICE_MASK 0x20000000  /* GATT based service */
1359979121f0865e07432215529f9b157792ae3ef21Myles Watson#define BTA_ALL_SERVICE_MASK 0x3FFFFFFF  /* All services supported by BTA. */
136cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_USER_SERVICE_MASK 0x40000000 /* Message Notification Profile */
1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
138e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint32_t tBTA_SERVICE_MASK;
1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* extended service mask, including mask with one or more GATT UUID */
141cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
142cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_SERVICE_MASK srvc_mask;
143cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t num_uuid;
144cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBT_UUID* p_uuid;
145cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_SERVICE_MASK_EXT;
1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Security Setting Mask */
148cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SEC_NONE BTM_SEC_NONE /* No security. */
149cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SEC_AUTHORIZE                                               \
150cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  (BTM_SEC_IN_AUTHORIZE) /* Authorization required (only needed for out \
151cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                            going connection )*/
152cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SEC_AUTHENTICATE \
153cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  (BTM_SEC_IN_AUTHENTICATE | \
154cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson   BTM_SEC_OUT_AUTHENTICATE) /* Authentication required. */
155cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SEC_ENCRYPT \
156cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  (BTM_SEC_IN_ENCRYPT | BTM_SEC_OUT_ENCRYPT) /* Encryption required. */
157cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SEC_MODE4_LEVEL4                                               \
158cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  (BTM_SEC_MODE4_LEVEL4) /* Mode 4 level 4 service, i.e. incoming/outgoing \
159cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                            MITM and P-256 encryption */
160cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SEC_MITM \
161cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  (BTM_SEC_IN_MITM | BTM_SEC_OUT_MITM) /* Man-In-The_Middle protection */
162cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SEC_IN_16_DIGITS \
163cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  (BTM_SEC_IN_MIN_16_DIGIT_PIN) /* Min 16 digit for pin code */
1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
165e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint16_t tBTA_SEC;
1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
167cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson/* Ignore for Discoverable, Connectable, Pairable and Connectable Paired only
168cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * device modes */
169cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_IGNORE 0x00FF
1705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17176356aee883af67898ddc1aa3b628195f396d42aVenkatRaghavan VijayaRaghavan/* Ignore for Discoverable, Connectable only for LE modes */
172cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LE_IGNORE 0xFF00
1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
174cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_APP_ID_PAN_MULTI 0xFE /* app id for pan multiple connection */
175cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_ALL_APP_ID 0xFF
1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Discoverable Modes */
178cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_NON_DISC BTM_NON_DISCOVERABLE /* Device is not discoverable. */
179cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_GENERAL_DISC                         \
180cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_GENERAL_DISCOVERABLE /* General discoverable. \
181cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                              */
182cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_NON_DISCOVERABLE \
183cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_BLE_NON_DISCOVERABLE /* Device is not LE discoverable */
184cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_GENERAL_DISCOVERABLE \
185cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_BLE_GENERAL_DISCOVERABLE /* Device is LE General discoverable */
186cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_LIMITED_DISCOVERABLE \
187cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_BLE_LIMITED_DISCOVERABLE /* Device is LE Limited discoverable */
188cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef uint16_t
189cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson    tBTA_DM_DISC; /* this discoverability mode is a bit mask among BR mode and
190cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                     LE mode */
1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Connectable Modes */
193cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_NON_CONN BTM_NON_CONNECTABLE /* Device is not connectable. */
194cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONN BTM_CONNECTABLE         /* Device is connectable. */
195cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_NON_CONNECTABLE \
196cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_BLE_NON_CONNECTABLE /* Device is LE non-connectable. */
197cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONNECTABLE \
198cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_BLE_CONNECTABLE /* Device is LE connectable. */
1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
200e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint16_t tBTA_DM_CONN;
2017fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
202cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_TRANSPORT_UNKNOWN 0
203cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_TRANSPORT_BR_EDR BT_TRANSPORT_BR_EDR
204cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_TRANSPORT_LE BT_TRANSPORT_LE
2057fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Battatypedef tBT_TRANSPORT tBTA_TRANSPORT;
2065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Pairable Modes */
208cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PAIRABLE 1
209cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_NON_PAIRABLE 0
2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Connectable Paired Only Mode */
212cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONN_ALL 0
213cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONN_PAIRED 1
2145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Inquiry Modes */
216cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQUIRY_NONE BTM_INQUIRY_NONE /*No BR inquiry. */
217cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_GENERAL_INQUIRY \
218cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_GENERAL_INQUIRY /* Perform general inquiry. */
219cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LIMITED_INQUIRY \
220cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_LIMITED_INQUIRY /* Perform limited inquiry. */
2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
222cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_INQUIRY_NONE BTM_BLE_INQUIRY_NONE
223cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_GENERAL_INQUIRY \
224cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_BLE_GENERAL_INQUIRY /* Perform LE general inquiry. */
225cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_LIMITED_INQUIRY \
226cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_BLE_LIMITED_INQUIRY /* Perform LE limited inquiry. */
227e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_INQ_MODE;
2285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Inquiry Filter Type */
230cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_CLR BTM_CLR_INQUIRY_FILTER /* Clear inquiry filter. */
231cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_DEV_CLASS \
232cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_FILTER_COND_DEVICE_CLASS /* Filter on device class. */
233cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_BD_ADDR \
234cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_FILTER_COND_BD_ADDR /* Filter on a specific  BD address. */
2355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
236e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_INQ_FILT;
2375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Authorize Response */
239cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_PERM \
240cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  0 /* Authorized for future connections to the service */
241cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_TEMP 1 /* Authorized for current connection only */
242cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_NOT_AUTH 2  /* Not authorized for the service */
2435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
244e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_AUTH_RESP;
2455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* M/S preferred roles */
247cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_ANY_ROLE 0x00
248cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_MASTER_ROLE_PREF 0x01
249cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_MASTER_ROLE_ONLY 0x02
250cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SLAVE_ROLE_ONLY \
251cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  0x03 /* Used for PANU only, skip role switch to master */
2525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
253e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_PREF_ROLES;
2545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
255cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum {
2565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
257cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_NO_SCATTERNET,      /* Device doesn't support scatternet, it might
258cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                support "role switch during connection" for
259cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                an incoming connection, when it already has
260cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                another connection in master role */
261cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_PARTIAL_SCATTERNET, /* Device supports partial scatternet. It can have
262cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                simulateous connection in Master and Slave roles
263cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                for short period of time */
264cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_FULL_SCATTERNET /* Device can have simultaneous connection in master
265cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                            and slave roles */
2665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project};
2685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Inquiry filter device class condition */
270cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
271cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  DEV_CLASS dev_class;      /* device class of interest */
272cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  DEV_CLASS dev_class_mask; /* mask to determine the bits of device class of
273cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                               interest */
2745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_COD_COND;
2755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Inquiry Filter Condition */
277cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union {
278cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;                 /* BD address of  device to filter. */
279cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_COD_COND dev_class_cond; /* Device class filter condition */
2805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_INQ_COND;
2815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Inquiry Parameters */
283cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
284cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_INQ_MODE mode; /* Inquiry mode, limited or general. */
285cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t duration;      /* Inquiry duration in 1.28 sec units. */
286cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t max_resps; /* Maximum inquiry responses.  Set to zero for unlimited
287cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                        responses. */
288cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool report_dup; /* report duplicated inquiry response with higher RSSI value
289cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                      */
290cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_INQ_FILT filter_type; /* Filter condition type. */
291cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_INQ_COND filter_cond; /* Filter condition data. */
292e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssen#if (BTA_HOST_INTERLEAVE_SEARCH == TRUE)
293cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t intl_duration
294cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson      [4]; /*duration array storing the interleave scan's time portions*/
2957f3e42943b834ff0f556cd5c063a896f54d53167Matthew Xie#endif
2965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_INQ;
2975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
298cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
299cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t bta_dm_eir_min_name_len; /* minimum length of local name when it is
300cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                      shortened */
3015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTA_EIR_CANNED_UUID_LIST == TRUE)
302cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t bta_dm_eir_uuid16_len; /* length of 16-bit UUIDs */
303cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t* bta_dm_eir_uuid16;    /* 16-bit UUIDs */
3045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#else
305cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint32_t uuid_mask[BTM_EIR_SERVICE_ARRAY_SIZE]; /* mask of UUID list in EIR */
3065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
307cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  int8_t* bta_dm_eir_inq_tx_power;     /* Inquiry TX power         */
308cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t bta_dm_eir_flag_len;         /* length of flags in bytes */
309cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t* bta_dm_eir_flags;           /* flags for EIR */
310cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t bta_dm_eir_manufac_spec_len; /* length of manufacturer specific in
311cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                          bytes */
312cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t* bta_dm_eir_manufac_spec;    /* manufacturer specific */
313cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t bta_dm_eir_additional_len;   /* length of additional data in bytes */
314cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t* bta_dm_eir_additional;      /* additional data */
3155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_EIR_CONF;
3165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
317a6ce7751d84218c193eb90d390aef23217b1737eWei Wang/* advertising filter policy */
318cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_AFP tBTA_BLE_AFP;
319a6ce7751d84218c193eb90d390aef23217b1737eWei Wang
320cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum {
321cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_BLE_BATCH_SCAN_MODE_PASS = 1,
322cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_BLE_BATCH_SCAN_MODE_ACTI = 2,
323cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_BLE_BATCH_SCAN_MODE_PASS_ACTI = 3
324c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji};
325e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_BLE_BATCH_SCAN_MODE;
326c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji
327cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum { BTA_BLE_DISCARD_OLD_ITEMS = 0, BTA_BLE_DISCARD_LOWER_RSSI_ITEMS = 1 };
328e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_BLE_DISCARD_RULE;
329c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji
330cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum { BTA_BLE_ADV_SEEN_FIRST_TIME = 0, BTA_BLE_ADV_TRACKING_TIMEOUT = 1 };
331e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_BLE_ADV_CHANGE_REASON;
332c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji
333cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum {
334cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_BLE_BATCH_SCAN_ENB_EVT = 1,
335cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_BLE_BATCH_SCAN_CFG_STRG_EVT = 2,
336cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_BLE_BATCH_SCAN_DATA_EVT = 3,
337cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_BLE_BATCH_SCAN_THRES_EVT = 4,
338cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_BLE_BATCH_SCAN_PARAM_EVT = 5,
339cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_BLE_BATCH_SCAN_DIS_EVT = 6
340c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji};
341c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Callojitypedef tBTM_BLE_BATCH_SCAN_EVT tBTA_BLE_BATCH_SCAN_EVT;
342c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji
343c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Callojitypedef tBTM_BLE_TRACK_ADV_ACTION tBTA_BLE_TRACK_ADV_ACTION;
3445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
345ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* BLE customer specific feature function type definitions */
346ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* data type used on customer specific feature for RSSI monitoring */
347cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_HI 0
348cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_RANGE 1
349cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_LO 2
350e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_RSSI_ALERT_TYPE;
351ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
352cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_NONE BTM_BLE_RSSI_ALERT_NONE     /*    (0) */
353cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_HI_BIT BTM_BLE_RSSI_ALERT_HI_BIT /*    (1) */
354cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_RANGE_BIT \
355cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_BLE_RSSI_ALERT_RANGE_BIT                              /*    (1 << 1) */
356cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_RSSI_ALERT_LO_BIT BTM_BLE_RSSI_ALERT_LO_BIT /*    (1 << 2) */
357cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef uint8_t tBTA_DM_BLE_RSSI_ALERT_MASK;
358ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
359cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_BLE_RSSI_CBACK)(BD_ADDR bd_addr,
360cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                     tBTA_DM_BLE_RSSI_ALERT_TYPE alert_type,
361cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                     int8_t rssi);
362ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
363ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* max number of filter spot for different filter type */
364cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_MAX_UUID_FILTER BTM_BLE_MAX_UUID_FILTER /* 8 */
365cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_MAX_ADDR_FILTER BTM_BLE_MAX_ADDR_FILTER /* 8 */
366cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_STR_COND_MAX \
367cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_BLE_PF_STR_COND_MAX /* 4    apply to manu data , or local name */
368cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_STR_LEN_MAX \
369cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_BLE_PF_STR_LEN_MAX /* match for first 20 bytes */
370cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
371cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_LOGIC_OR 0
372cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_LOGIC_AND 1
373e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_PF_LOGIC_TYPE;
374ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
375cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum {
376cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_BLE_SCAN_COND_ADD,
377cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_BLE_SCAN_COND_DELETE,
378cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_DM_BLE_SCAN_COND_CLEAR = 2
379ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta};
380e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_SCAN_COND_OP;
381ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
3821a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji/* ADV payload filtering vendor specific call event */
383cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum { BTA_BLE_SCAN_PF_ENABLE_EVT = 7, BTA_BLE_SCAN_PF_COND_EVT };
3841a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji
385ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* filter selection bit index  */
386cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_ADDR_FILTER BTM_BLE_PF_ADDR_FILTER
387cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_SRVC_DATA BTM_BLE_PF_SRVC_DATA
388cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_SRVC_UUID BTM_BLE_PF_SRVC_UUID
389cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_SRVC_SOL_UUID BTM_BLE_PF_SRVC_SOL_UUID
390cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_LOCAL_NAME BTM_BLE_PF_LOCAL_NAME
391cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_MANU_DATA BTM_BLE_PF_MANU_DATA
392cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_SRVC_DATA_PATTERN BTM_BLE_PF_SRVC_DATA_PATTERN
393cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_TYPE_ALL BTM_BLE_PF_TYPE_ALL
394cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_TYPE_MAX BTM_BLE_PF_TYPE_MAX
395cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef uint8_t tBTA_DM_BLE_PF_COND_TYPE;
396cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
397cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union {
398cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t uuid16_mask;
399cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint32_t uuid32_mask;
400cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t uuid128_mask[LEN_UUID_128];
401cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_BLE_PF_COND_MASK;
402cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
403cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
404cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBLE_BD_ADDR*
405cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson      p_target_addr; /* target address, if NULL, generic UUID filter */
406cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBT_UUID uuid;     /* UUID condition */
407cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_BLE_PF_LOGIC_TYPE cond_logic; /* AND/OR */
408cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_BLE_PF_COND_MASK*
409cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson      p_uuid_mask; /* UUID condition mask, if NULL, match exact as UUID
410cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                      condition */
411cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_BLE_PF_UUID_COND;
412cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
413cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
414cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t data_len; /* <= 20 bytes */
415cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t* p_data;
416cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_BLE_PF_LOCAL_NAME_COND;
417cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
418cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
419cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t company_id; /* company ID */
420cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t data_len;    /* <= 20 bytes */
421cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t* p_pattern;
422cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t company_id_mask; /* UUID value mask */
423cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t*
424cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson      p_pattern_mask; /* Manufacturer data matching mask, same length
425cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                       as data pattern, set to all 0xff, match exact data */
426cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_BLE_PF_MANU_COND;
427cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
428cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
429cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint16_t uuid;    /* service ID */
430cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t data_len; /* <= 20 bytes */
431cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t* p_pattern;
432cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t*
433cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson      p_pattern_mask; /* Service data matching mask, same length
434cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                       as data pattern, set to all 0xff, match exact data */
435cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_BLE_PF_SRVC_PATTERN_COND;
436cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
437cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union {
438cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBLE_BD_ADDR target_addr;
439cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_BLE_PF_LOCAL_NAME_COND local_name; /* lcoal name filtering */
440cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_BLE_PF_MANU_COND manu_data;        /* manufactuer data filtering */
441cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_BLE_PF_UUID_COND srvc_uuid;        /* service UUID filtering */
442cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_BLE_PF_UUID_COND
443cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson      solicitate_uuid; /* solicitated service UUID filtering */
444cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_BLE_PF_SRVC_PATTERN_COND srvc_data; /* service data pattern */
445cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_BLE_PF_COND_PARAM;
446ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
447e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_PF_FILT_INDEX;
448e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_PF_AVBL_SPACE;
4491a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji
450e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef int8_t tBTA_DM_RSSI_VALUE;
451e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_LINK_QUALITY_VALUE;
4525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
453e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_SIG_STRENGTH_MASK;
4545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Security Callback Events */
456cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ENABLE_EVT 0    /* Enable Event */
457cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DISABLE_EVT 1   /* Disable Event */
458cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PIN_REQ_EVT 2   /* PIN request. */
459cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_CMPL_EVT 3 /* Authentication complete indication. */
460cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTHORIZE_EVT 4 /* Authorization request. */
461cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_UP_EVT 5   /* Connection UP event */
462cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_DOWN_EVT 6 /* Connection DOWN event */
463cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SIG_STRENGTH_EVT                                             \
464cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  7                             /* Signal strength for bluetooth connection \
465cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                   */
466cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BUSY_LEVEL_EVT 8 /* System busy level */
467cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BOND_CANCEL_CMPL_EVT 9 /* Bond cancel complete indication */
468cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_CFM_REQ_EVT                     \
469cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  10 /* Simple Pairing User Confirmation request. \
470cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson        */
471cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_KEY_NOTIF_EVT 11 /* Simple Pairing Passkey Notification */
472cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_RMT_OOB_EVT 12   /* Simple Pairing Remote OOB Data request. */
473cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_KEYPRESS_EVT 13  /* Key press notification event. */
474cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROLE_CHG_EVT 14     /* Role Change event. */
475cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_KEY_EVT 15      /* BLE SMP key event for peer device keys */
476cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_REQ_EVT 16  /* BLE SMP security request */
477cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PASSKEY_NOTIF_EVT 17 /* SMP passkey notification event */
478cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PASSKEY_REQ_EVT 18   /* SMP passkey request event */
479cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_OOB_REQ_EVT 19       /* SMP OOB request event */
480cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_LOCAL_IR_EVT 20      /* BLE local IR event */
481cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_LOCAL_ER_EVT 21      /* BLE local ER event */
482cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_NC_REQ_EVT 22 /* SMP Numeric Comparison request event */
483cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SP_RMT_OOB_EXT_EVT \
484cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  23 /* Simple Pairing Remote OOB Extended Data request. */
485cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_AUTH_CMPL_EVT 24 /* BLE Auth complete */
486cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DEV_UNPAIRED_EVT 25
487cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_HW_ERROR_EVT 26 /* BT Chip H/W error */
488cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LE_FEATURES_READ                                             \
489cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  27                             /* Cotroller specific LE features are read \
490cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                    */
491cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ENER_INFO_READ 28 /* Energy info read */
492cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SC_OOB_REQ_EVT 29 /* SMP SC OOB request event */
493e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_SEC_EVT;
4945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_ENABLE_EVT */
496cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct { tBTA_STATUS status; } tBTA_DM_ENABLE;
4975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_PIN_REQ_EVT */
499cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
500cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in
501cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson   * order */
502cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;     /* BD address peer device. */
503cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  DEV_CLASS dev_class; /* Class of Device */
504cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_NAME bd_name;     /* Name of peer device. */
505cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool min_16_digit;   /* true if the pin returned must be at least 16 digits */
5065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_PIN_REQ;
5075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BLE related definition */
5095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
510cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_FAIL_BASE (HCI_ERR_MAX_ERR + 10)
511cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
512cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson/* Converts SMP error codes defined in smp_api.h to SMP auth fail reasons below.
513cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson */
514cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_CONVERT_SMP_CODE(x) (BTA_DM_AUTH_FAIL_BASE + (x))
515cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
516cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_PASSKEY_FAIL \
517cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  (BTA_DM_AUTH_FAIL_BASE + SMP_PASSKEY_ENTRY_FAIL)
518cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_OOB_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_OOB_FAIL)
519cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_PAIR_AUTH_FAIL \
520cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_AUTH_FAIL)
521cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_CONFIRM_VALUE_FAIL \
522cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  (BTA_DM_AUTH_FAIL_BASE + SMP_CONFIRM_VALUE_ERR)
523cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_PAIR_NOT_SUPPORT \
524cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_NOT_SUPPORT)
525cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_ENC_KEY_SIZE (BTA_DM_AUTH_FAIL_BASE + SMP_ENC_KEY_SIZE)
526cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_INVALID_CMD (BTA_DM_AUTH_FAIL_BASE + SMP_INVALID_CMD)
527cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_UNKNOWN_ERR \
528cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_FAIL_UNKNOWN)
529cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_REPEATED_ATTEMPT \
530cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  (BTA_DM_AUTH_FAIL_BASE + SMP_REPEATED_ATTEMPTS)
531cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_INVALID_PARAMETERS \
532cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  (BTA_DM_AUTH_FAIL_BASE + SMP_INVALID_PARAMETERS)
533cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_INTERNAL_ERR \
534cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  (BTA_DM_AUTH_FAIL_BASE + SMP_PAIR_INTERNAL_ERR)
535cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_UNKNOWN_IO (BTA_DM_AUTH_FAIL_BASE + SMP_UNKNOWN_IO_CAP)
536cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_INIT_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_INIT_FAIL)
537cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_CONFIRM_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_CONFIRM_FAIL)
538cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_BUSY (BTA_DM_AUTH_FAIL_BASE + SMP_BUSY)
539cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_ENC_FAIL (BTA_DM_AUTH_FAIL_BASE + SMP_ENC_FAIL)
540cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_RSP_TIMEOUT (BTA_DM_AUTH_FAIL_BASE + SMP_RSP_TIMEOUT)
541cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_AUTH_SMP_CONN_TOUT (BTA_DM_AUTH_FAIL_BASE + SMP_CONN_TOUT)
5425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* connection parameter boundary value and dummy value */
544cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SCAN_INT_MIN BTM_BLE_SCAN_INT_MIN
545cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SCAN_INT_MAX BTM_BLE_SCAN_INT_MAX
546cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SCAN_WIN_MIN BTM_BLE_SCAN_WIN_MIN
547cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SCAN_WIN_MAX BTM_BLE_SCAN_WIN_MAX
548cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_INT_MIN BTM_BLE_CONN_INT_MIN
549cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_INT_MAX BTM_BLE_CONN_INT_MAX
550cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_LATENCY_MAX BTM_BLE_CONN_LATENCY_MAX
551cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_SUP_TOUT_MIN BTM_BLE_CONN_SUP_TOUT_MIN
552cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_SUP_TOUT_MAX BTM_BLE_CONN_SUP_TOUT_MAX
553cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_CONN_PARAM_UNDEF                                          \
554cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_BLE_CONN_PARAM_UNDEF /* use this value when a specific value not to be \
555cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                              overwritten */
556cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
557cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_PENC \
558cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_LE_KEY_PENC /* encryption information of peer device */
559cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_PID BTM_LE_KEY_PID     /* identity key of the peer device */
560cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_PCSRK BTM_LE_KEY_PCSRK /* peer SRK */
561cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_LENC \
562cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_LE_KEY_LENC                     /* master role security information:div */
563cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_LID BTM_LE_KEY_LID /* master device ID key */
564cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_KEY_LCSRK \
565cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_LE_KEY_LCSRK                /* local CSRK has been deliver to peer */
566e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_LE_KEY_TYPE; /* can be used as a bit mask */
5675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
568cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_PENC_KEYS tBTA_LE_PENC_KEYS;
5695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef tBTM_LE_PCSRK_KEYS tBTA_LE_PCSRK_KEYS;
570cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_LENC_KEYS tBTA_LE_LENC_KEYS;
571cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_LCSRK_KEYS tBTA_LE_LCSRK_KEYS;
572cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_PID_KEYS tBTA_LE_PID_KEYS;
573cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
574cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union {
575cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_LE_PENC_KEYS penc_key;  /* received peer encryption key */
576cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_LE_PCSRK_KEYS psrk_key; /* received peer device SRK */
577cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_LE_PID_KEYS pid_key;    /* peer device ID key */
578cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_LE_LENC_KEYS
579cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson      lenc_key; /* local encryption reproduction keys LTK = = d1(ER,DIV,0)*/
580cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_LE_LCSRK_KEYS lcsrk_key; /* local device CSRK = d1(ER,DIV,1)*/
581cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_LE_PID_KEYS lid_key; /* local device ID key for the particular remote */
582cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_LE_KEY_VALUE;
583cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
584cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_LOCAL_KEY_TYPE_ID 1
585cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_BLE_LOCAL_KEY_TYPE_ER 2
586e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_LOCAL_KEY_MASK;
5875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
588cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
589cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_OCTET16 ir;
590cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_OCTET16 irk;
591cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_OCTET16 dhk;
592cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_BLE_LOCAL_ID_KEYS;
5935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
594cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SEC_GRANTED BTA_SUCCESS
595cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SEC_PAIR_NOT_SPT BTA_DM_AUTH_SMP_PAIR_NOT_SUPPORT
596cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SEC_REP_ATTEMPTS BTA_DM_AUTH_SMP_REPEATED_ATTEMPT
597e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_SEC_GRANT;
5985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_BLE_SEC_REQ_EVT */
600cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
601cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr; /* peer address */
602cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_NAME bd_name; /* peer device name */
6035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_BLE_SEC_REQ;
6045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
605cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
606cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr; /* peer address */
607cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTM_LE_KEY_TYPE key_type;
608cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTM_LE_KEY_VALUE* p_key_value;
609cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_BLE_KEY;
6105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_AUTH_CMPL_EVT */
612cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
613cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;     /* BD address peer device. */
614cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_NAME bd_name;     /* Name of peer device. */
615cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool key_present;    /* Valid link key value in key element */
616cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  LINK_KEY key;        /* Link key associated with peer device. */
617cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t key_type;    /* The type of Link Key */
618cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool success;        /* true of authentication succeeded, false if failed. */
619cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t fail_reason; /* The HCI reason/error code for when success=false */
620cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBLE_ADDR_TYPE addr_type; /* Peer device address type */
621cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBT_DEVICE_TYPE dev_type;
6225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_AUTH_CMPL;
6235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_AUTHORIZE_EVT */
625cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
626cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;         /* BD address peer device. */
627cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_NAME bd_name;         /* Name of peer device. */
628cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_SERVICE_ID service; /* Service ID to authorize. */
629cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  DEV_CLASS dev_class;
6305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_AUTHORIZE;
6315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_LINK_UP_EVT */
633cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
634cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr; /* BD address peer device. */
635cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_TRANSPORT link_type;
6365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_LINK_UP;
6375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_LINK_DOWN_EVT */
639cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
640cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr; /* BD address peer device. */
641cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t status;  /* connection open/closed */
642cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool is_removed; /* true if device is removed when link is down */
643cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_TRANSPORT link_type;
6445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_LINK_DOWN;
6455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_ROLE_CHG_EVT */
647cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
648cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;  /* BD address peer device. */
649cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t new_role; /* the new connection role */
6505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_ROLE_CHG;
6515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_BUSY_LEVEL_EVT */
653cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
654cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t level;       /* when paging or inquiring, level is 10.
655cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                          Otherwise, the number of ACL links */
656cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t level_flags; /* indicates individual flags */
6575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_BUSY_LEVEL;
6585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6592e8e9f42132d0297a94c0852a1fbf45c9bc348e5Myles Watson#define BTA_IO_CAP_OUT BTM_IO_CAP_OUT       /* 0 DisplayOnly */
6602e8e9f42132d0297a94c0852a1fbf45c9bc348e5Myles Watson#define BTA_IO_CAP_IO BTM_IO_CAP_IO         /* 1 DisplayYesNo */
6612e8e9f42132d0297a94c0852a1fbf45c9bc348e5Myles Watson#define BTA_IO_CAP_IN BTM_IO_CAP_IN         /* 2 KeyboardOnly */
6622e8e9f42132d0297a94c0852a1fbf45c9bc348e5Myles Watson#define BTA_IO_CAP_NONE BTM_IO_CAP_NONE     /* 3 NoInputNoOutput */
663cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_IO_CAP_KBDISP BTM_IO_CAP_KBDISP /* 4 Keyboard display */
664cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_IO_CAP tBTA_IO_CAP;
665cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
666cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_SP_NO                                      \
667cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_AUTH_SP_NO /* 0 MITM Protection Not Required - Single \
668cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                   Profile/non-bonding                      \
669cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                   Numeric comparison with automatic accept allowed */
670cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_SP_YES                                                       \
671cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_AUTH_SP_YES /* 1 MITM Protection Required - Single Profile/non-bonding  \
672cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                    Use IO Capabilities to determine authentication procedure \
673cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                    */
674cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_AP_NO                                                      \
675cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_AUTH_AP_NO /* 2 MITM Protection Not Required - All Profiles/dedicated \
676cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                   bonding                                                  \
677cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                   Numeric comparison with automatic accept allowed */
678cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_AP_YES                                                       \
679cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_AUTH_AP_YES /* 3 MITM Protection Required - All Profiles/dedicated      \
680cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                    bonding                                                   \
681cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                    Use IO Capabilities to determine authentication procedure \
682cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                    */
683cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_SPGB_NO                                                       \
684cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_AUTH_SPGB_NO /* 4 MITM Protection Not Required - Single Profiles/general \
685cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                     bonding                                                   \
686cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                     Numeric comparison with automatic accept allowed */
687cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_SPGB_YES                                                   \
688cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_AUTH_SPGB_YES /* 5 MITM Protection Required - Single Profiles/general \
689cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                      bonding                                               \
690cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                      Use IO Capabilities to determine authentication       \
691cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                      procedure */
692cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_AUTH_REQ tBTA_AUTH_REQ;
693cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
694cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_DD_BOND \
695cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_AUTH_DD_BOND /* 2 this bit is set for dedicated bonding */
696cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_GEN_BOND \
697cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_AUTH_SPGB_NO /* 4 this bit is set for general bonding */
698cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_AUTH_BONDS \
699cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_AUTH_BONDS /* 6 the general/dedicated bonding bits  */
700cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
701cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_NO_BOND BTM_LE_AUTH_REQ_NO_BOND /* 0*/
702cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_BOND BTM_LE_AUTH_REQ_BOND       /* 1 << 0 */
703cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_MITM BTM_LE_AUTH_REQ_MITM   /* 1 << 2 */
704cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
705cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_SC_ONLY BTM_LE_AUTH_REQ_SC_ONLY           /* 1 << 3 */
706cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_SC_BOND BTM_LE_AUTH_REQ_SC_BOND           /* 1001 */
707cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_SC_MITM BTM_LE_AUTH_REQ_SC_MITM           /* 1100 */
708cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_LE_AUTH_REQ_SC_MITM_BOND BTM_LE_AUTH_REQ_SC_MITM_BOND /* 1101 */
709cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_LE_AUTH_REQ
710cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson    tBTA_LE_AUTH_REQ; /* combination of the above bit pattern */
711cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
712cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_OOB_NONE BTM_OOB_NONE
713cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_OOB_PRESENT BTM_OOB_PRESENT
714cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_OOB_UNKNOWN BTM_OOB_UNKNOWN
715cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
716cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_OOB_DATA tBTA_OOB_DATA;
7175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_SP_CFM_REQ_EVT */
719cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
720cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in
721cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson   * order */
722cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;     /* peer address */
723cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  DEV_CLASS dev_class; /* peer CoD */
724cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_NAME bd_name;     /* peer device name */
725cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint32_t num_val; /* the numeric value for comparison. If just_works, do not
726cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                       show this number to UI */
727cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool just_works;  /* true, if "Just Works" association model */
728cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_AUTH_REQ loc_auth_req; /* Authentication required for local device */
729cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_AUTH_REQ rmt_auth_req; /* Authentication required for peer device */
730cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_IO_CAP loc_io_caps;    /* IO Capabilities of local device */
731cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_AUTH_REQ rmt_io_caps;  /* IO Capabilities of remote device */
7325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SP_CFM_REQ;
7335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
734cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonenum {
735cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_SP_KEY_STARTED, /* passkey entry started */
736cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_SP_KEY_ENTERED, /* passkey digit entered */
737cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_SP_KEY_ERASED,  /* passkey digit erased */
738cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_SP_KEY_CLEARED, /* passkey cleared */
739cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTA_SP_KEY_COMPLT   /* passkey entry completed */
7405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project};
741cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef uint8_t tBTA_SP_KEY_TYPE;
7425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_SP_KEYPRESS_EVT */
744cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
745cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr; /* peer address */
746cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_SP_KEY_TYPE notif_type;
747cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson} tBTA_DM_SP_KEY_PRESS;
7485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_SP_KEY_NOTIF_EVT */
750cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
751cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in
752cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson   * order */
753cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;     /* peer address */
754cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  DEV_CLASS dev_class; /* peer CoD */
755cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_NAME bd_name;     /* peer device name */
756cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint32_t passkey; /* the numeric value for comparison. If just_works, do not
757cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                       show this number to UI */
7585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SP_KEY_NOTIF;
7595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_SP_RMT_OOB_EVT */
761cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
762cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  /* Note: First 3 data members must be, bd_addr, dev_class, and bd_name in
763cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson   * order */
764cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;     /* peer address */
765cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  DEV_CLASS dev_class; /* peer CoD */
766cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_NAME bd_name;     /* peer device name */
7675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SP_RMT_OOB;
7685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_BOND_CANCEL_CMPL_EVT */
770cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
771cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_STATUS result; /* true of bond cancel succeeded, false if failed. */
7725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_BOND_CANCEL_CMPL;
7735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Union of all security callback structures */
775cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union {
776cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_ENABLE enable;          /* BTA enabled */
777cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_PIN_REQ pin_req;        /* PIN request. */
778cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_AUTH_CMPL auth_cmpl;    /* Authentication complete indication. */
779cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_AUTHORIZE authorize;    /* Authorization request. */
780cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_LINK_UP link_up;        /* ACL connection down event */
781cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_LINK_DOWN link_down;    /* ACL connection down event */
782cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_BUSY_LEVEL busy_level;  /* System busy level */
783cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_SP_CFM_REQ cfm_req;     /* user confirm request */
784cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_SP_KEY_NOTIF key_notif; /* passkey notification */
785cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_SP_RMT_OOB rmt_oob;     /* remote oob */
786cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_BOND_CANCEL_CMPL
787cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson      bond_cancel_cmpl;               /* Bond Cancel Complete indication */
788cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_SP_KEY_PRESS key_press;     /* key press notification event */
789cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_ROLE_CHG role_chg;          /* role change event */
790cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_BLE_SEC_REQ ble_req;        /* BLE SMP related request */
791cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_BLE_KEY ble_key;            /* BLE SMP keys used when pairing */
792cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_BLE_LOCAL_ID_KEYS ble_id_keys; /* IR event */
793cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BT_OCTET16 ble_er;                  /* ER event data */
7945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SEC;
7955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Security callback */
797cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_SEC_CBACK)(tBTA_DM_SEC_EVT event, tBTA_DM_SEC* p_data);
7985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
799e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint32_t tBTA_DM_BLE_REF_VALUE;
800a6ce7751d84218c193eb90d390aef23217b1737eWei Wang
801cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_ENABLE_EVT BTM_BLE_PF_ENABLE
802cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_CONFIG_EVT BTM_BLE_PF_CONFIG
803e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_PF_EVT;
8041a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji
805cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_ENABLE 1
806cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_CONFIG 2
807e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_PF_ACTION;
8081a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji
8091a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji/* Config callback */
810cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_BLE_PF_CFG_CBACK)(tBTA_DM_BLE_PF_ACTION action,
811cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                       tBTA_DM_BLE_PF_COND_TYPE cfg_cond,
812cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                       tBTA_DM_BLE_PF_AVBL_SPACE avbl_space,
813cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                       tBTA_STATUS status,
814cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                       tBTA_DM_BLE_REF_VALUE ref_value);
8151a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji/* Param callback */
816cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_BLE_PF_PARAM_CBACK)(uint8_t action_type,
817cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                         tBTA_DM_BLE_PF_AVBL_SPACE avbl_space,
818cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                         tBTA_DM_BLE_REF_VALUE ref_value,
819cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                         tBTA_STATUS status);
8201a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji
8211a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji/* Status callback */
822cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_BLE_PF_STATUS_CBACK)(uint8_t action, tBTA_STATUS status,
823cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                          tBTA_DM_BLE_REF_VALUE ref_value);
8241a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji
825cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_LIST_LOGIC_OR 1
826cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_LIST_LOGIC_AND 2
827cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_FILT_LOGIC_OR 0
828cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_PF_FILT_LOGIC_AND 1
8291a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji
8305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Search callback events */
831cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_RES_EVT 0  /* Inquiry result for a peer device. */
832cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_CMPL_EVT 1 /* Inquiry complete. */
833cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DISC_RES_EVT 2 /* Discovery result for a peer device. */
834cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DISC_BLE_RES_EVT \
835cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  3 /* Discovery result for BLE GATT based servoce on a peer device. */
836cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DISC_CMPL_EVT 4          /* Discovery complete. */
837cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_DI_DISC_CMPL_EVT 5       /* Discovery complete. */
838cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SEARCH_CANCEL_CMPL_EVT 6 /* Search cancelled */
8395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
840e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_SEARCH_EVT;
8415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
842cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_INQ_RES_IGNORE_RSSI \
843cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BTM_INQ_RES_IGNORE_RSSI /* 0x7f RSSI value not supplied (ignore it) */
8445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_INQ_RES_EVT */
846cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
847cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;             /* BD address peer device. */
848cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  DEV_CLASS dev_class;         /* Device class of peer device. */
849cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool remt_name_not_required; /* Application sets this flag if it already knows
850cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                  the name of the device */
851cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  /* If the device name is known to application BTA skips the remote name
852cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson   * request */
853cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  bool is_limited; /* true, if the limited inquiry bit is set in the CoD */
854cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  int8_t rssi;     /* The rssi value */
855cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t* p_eir;  /* received EIR */
856cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t inq_result_type;
857cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t ble_addr_type;
858cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTM_BLE_EVT_TYPE ble_evt_type;
859cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBT_DEVICE_TYPE device_type;
860cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t flag;
8615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_INQ_RES;
8625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_INQ_CMPL_EVT */
864cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
865cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t num_resps; /* Number of inquiry responses. */
8665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_INQ_CMPL;
8675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_DI_DISC_CMPL_EVT */
869cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
870cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;    /* BD address peer device. */
871cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t num_record; /* Number of DI record */
872cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_STATUS result;
8735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_DI_DISC_CMPL;
8745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with BTA_DM_DISC_RES_EVT */
876cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
877cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;             /* BD address peer device. */
878cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_NAME bd_name;             /* Name of peer device. */
879cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_SERVICE_MASK services;  /* Services found on peer device. */
880cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t* p_raw_data;         /* Raw data for discovery DB */
881cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint32_t raw_data_size;      /* size of raw data */
882cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBT_DEVICE_TYPE device_type; /* device type in case it is BLE device */
883cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint32_t num_uuids;
884cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  uint8_t* p_uuid_list;
885cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_STATUS result;
8865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_DISC_RES;
8875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Structure associated with tBTA_DM_DISC_BLE_RES */
889cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef struct {
890cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_ADDR bd_addr;  /* BD address peer device. */
891cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  BD_NAME bd_name;  /* Name of peer device. */
892cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBT_UUID service; /* GATT based Services UUID found on peer device. */
8935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_DISC_BLE_RES;
8945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Union of all search callback structures */
896cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef union {
897cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_INQ_RES inq_res;   /* Inquiry result for a peer device. */
898cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_INQ_CMPL inq_cmpl; /* Inquiry complete. */
899cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_DISC_RES disc_res; /* Discovery result for a peer device. */
900cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_DISC_BLE_RES
901cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson      disc_ble_res;             /* discovery result for GATT based service */
902cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  tBTA_DM_DI_DISC_CMPL di_disc; /* DI discovery result for a peer device */
9035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_DM_SEARCH;
9055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Search callback */
907cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_SEARCH_CBACK)(tBTA_DM_SEARCH_EVT event,
908cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                   tBTA_DM_SEARCH* p_data);
9095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Execute call back */
911cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_EXEC_CBACK)(void* p_param);
9125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Encryption callback*/
914cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_ENCRYPT_CBACK)(BD_ADDR bd_addr, tBTA_TRANSPORT transport,
915cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                    tBTA_STATUS result);
9165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
917cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_NONE BTM_BLE_SEC_NONE
918cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_ENCRYPT BTM_BLE_SEC_ENCRYPT
919cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_NO_MITM BTM_BLE_SEC_ENCRYPT_NO_MITM
920cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_BLE_SEC_MITM BTM_BLE_SEC_ENCRYPT_MITM
921cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_SEC_ACT tBTA_DM_BLE_SEC_ACT;
922c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji
923cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_TX_TIME_MS tBTA_DM_BLE_TX_TIME_MS;
924cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_RX_TIME_MS tBTA_DM_BLE_RX_TIME_MS;
925cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_IDLE_TIME_MS tBTA_DM_BLE_IDLE_TIME_MS;
926cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tBTM_BLE_ENERGY_USED tBTA_DM_BLE_ENERGY_USED;
927cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
928cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONTRL_UNKNOWN 0 /* Unknown state */
929cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONTRL_ACTIVE 1  /* ACL link on, SCO link ongoing, sniff mode */
930cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONTRL_SCAN                   \
931cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  2 /* Scan state - paging/inquiry/trying to \
932cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson       connect*/
933cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_CONTRL_IDLE                           \
934cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  3 /* Idle state - page scan, LE advt, inquiry scan \
935cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson       */
936e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji
937e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_CONTRL_STATE;
938e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji
939e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_ADV_STATE;
940e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_ADV_INFO_PRESENT;
941e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_BLE_RSSI_VALUE;
942e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint16_t tBTA_DM_BLE_ADV_INFO_TIMESTAMP;
943f538707fe64c62b1dbb8e4210e4a1bfa0bab2b56Satya Calloji
944f538707fe64c62b1dbb8e4210e4a1bfa0bab2b56Satya Callojitypedef tBTM_BLE_TRACK_ADV_DATA tBTA_DM_BLE_TRACK_ADV_DATA;
945e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji
946cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_BLE_SCAN_THRESHOLD_CBACK)(tBTA_DM_BLE_REF_VALUE ref_value);
947e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji
948cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_BLE_SCAN_REP_CBACK)(tBTA_DM_BLE_REF_VALUE ref_value,
949cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                      uint8_t report_format,
950cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                      uint8_t num_records, uint16_t data_len,
951cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                      uint8_t* p_rep_data, tBTA_STATUS status);
9521acb61ce065053f91a0f8d43e8328c9eeec4b5edSatya Calloji
953cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_BLE_SCAN_SETUP_CBACK)(tBTA_BLE_BATCH_SCAN_EVT evt,
954cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                        tBTA_DM_BLE_REF_VALUE ref_value,
955cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                        tBTA_STATUS status);
956c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji
957cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_BLE_TRACK_ADV_CMPL_CBACK)(
958cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson    int action, tBTA_STATUS status, tBTA_DM_BLE_PF_AVBL_SPACE avbl_space,
959cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson    tBTA_DM_BLE_REF_VALUE ref_value);
9601acb61ce065053f91a0f8d43e8328c9eeec4b5edSatya Calloji
961cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_BLE_TRACK_ADV_CBACK)(tBTA_DM_BLE_TRACK_ADV_DATA* p_adv_data);
9621acb61ce065053f91a0f8d43e8328c9eeec4b5edSatya Calloji
963cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_BLE_ENERGY_INFO_CBACK)(tBTA_DM_BLE_TX_TIME_MS tx_time,
964cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                         tBTA_DM_BLE_RX_TIME_MS rx_time,
965cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                         tBTA_DM_BLE_IDLE_TIME_MS idle_time,
966cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                         tBTA_DM_BLE_ENERGY_USED energy_used,
967cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                         tBTA_DM_CONTRL_STATE ctrl_state,
968cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                         tBTA_STATUS status);
969e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji
9705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Maximum service name length */
971cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SERVICE_NAME_LEN 35
972cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_SERVICE_DESP_LEN BTA_SERVICE_NAME_LEN
973cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_PROVIDER_NAME_LEN BTA_SERVICE_NAME_LEN
9745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* link policy masks  */
976cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LP_SWITCH HCI_ENABLE_MASTER_SLAVE_SWITCH
977cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LP_HOLD HCI_ENABLE_HOLD_MODE
978cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LP_SNIFF HCI_ENABLE_SNIFF_MODE
979cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LP_PARK HCI_ENABLE_PARK_MODE
980e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint16_t tBTA_DM_LP_MASK;
9815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* power mode actions  */
983cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_NO_ACTION 0x00 /* no change to the current pm setting */
984cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK 0x10      /* prefers park mode */
985cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF 0x20     /* prefers sniff mode */
986cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF1 0x21    /* prefers sniff1 mode */
987cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF2 0x22    /* prefers sniff2 mode */
988cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF3 0x23    /* prefers sniff3 mode */
989cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF4 0x24    /* prefers sniff4 mode */
990cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF5 0x25    /* prefers sniff5 mode */
991cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF6 0x26    /* prefers sniff6 mode */
992cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF7 0x27    /* prefers sniff7 mode */
993cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_USER0 \
994cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  0x28 /* prefers user-defined sniff0 mode (testtool only) */
995cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_USER1 \
996cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  0x29 /* prefers user-defined sniff1 mode (testtool only) */
997cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_ACTIVE 0x40  /* prefers active mode */
998cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_RETRY 0x80   /* retry power mode based on current settings */
999cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SUSPEND 0x04 /* prefers suspend mode */
1000cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_NO_PREF                                                   \
1001cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  0x01 /* service has no prefernce on power mode setting. eg. connection to \
1002cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson          service got closed */
10035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1004e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_PM_ACTION;
10055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* index to bta_dm_ssr_spec */
1007cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR0 0
1008cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR1                      \
1009cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  1 /* BTA_DM_PM_SSR1 will be dedicated for \
1010cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson    HH SSR setting entry, no other profile can use it */
1011cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR2 2
1012cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR3 3
1013cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR4 4
1014cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR5 5
1015cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SSR6 6
1016cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson
1017cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_NUM_EVTS 9
10185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_DM_PM_PARK_IDX
1020cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_IDX \
1021cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson  5 /* the actual index to bta_dm_pm_md[] for PARK mode */
10225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
10235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
102463399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_A2DP_IDX
1025cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_A2DP_IDX BTA_DM_PM_SNIFF
102663399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
102763399d943938cb7234a7fba508ea603070720d77Adam Hampson
102863399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HD_IDLE_IDX
1029cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_HD_IDLE_IDX BTA_DM_PM_SNIFF2
103063399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
103163399d943938cb7234a7fba508ea603070720d77Adam Hampson
103263399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_SCO_OPEN_IDX
1033cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_SCO_OPEN_IDX BTA_DM_PM_SNIFF3
103463399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
103563399d943938cb7234a7fba508ea603070720d77Adam Hampson
103663399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HD_ACTIVE_IDX
103763399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF_HD_ACTIVE_IDX BTA_DM_PM_SNIFF4
103863399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
103963399d943938cb7234a7fba508ea603070720d77Adam Hampson
104063399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HH_OPEN_IDX
104163399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF_HH_OPEN_IDX BTA_DM_PM_SNIFF2
104263399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
104363399d943938cb7234a7fba508ea603070720d77Adam Hampson
104463399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HH_ACTIVE_IDX
104563399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF_HH_ACTIVE_IDX BTA_DM_PM_SNIFF2
104663399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
104763399d943938cb7234a7fba508ea603070720d77Adam Hampson
104863399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_HH_IDLE_IDX
104963399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF_HH_IDLE_IDX BTA_DM_PM_SNIFF2
105063399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
105163399d943938cb7234a7fba508ea603070720d77Adam Hampson
105263399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_HH_OPEN_DELAY
105363399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_HH_OPEN_DELAY 30000
105463399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
105563399d943938cb7234a7fba508ea603070720d77Adam Hampson
105663399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_HH_ACTIVE_DELAY
105763399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_HH_ACTIVE_DELAY 30000
105863399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
105963399d943938cb7234a7fba508ea603070720d77Adam Hampson
106063399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_HH_IDLE_DELAY
106163399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_HH_IDLE_DELAY 30000
106263399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
106363399d943938cb7234a7fba508ea603070720d77Adam Hampson
106463399d943938cb7234a7fba508ea603070720d77Adam Hampson/* The Sniff Parameters defined below must be ordered from highest
106563399d943938cb7234a7fba508ea603070720d77Adam Hampson * latency (biggest interval) to lowest latency.  If there is a conflict
106663399d943938cb7234a7fba508ea603070720d77Adam Hampson * among the connected services the setting with the lowest latency will
106763399d943938cb7234a7fba508ea603070720d77Adam Hampson * be selected.  If a device should override a sniff parameter then it
106863399d943938cb7234a7fba508ea603070720d77Adam Hampson * must insure that order is maintained.
106963399d943938cb7234a7fba508ea603070720d77Adam Hampson */
107063399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF_MAX
1071cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_MAX 800
1072cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_MIN 400
1073cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_ATTEMPT 4
1074cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF_TIMEOUT 1
107563399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
107663399d943938cb7234a7fba508ea603070720d77Adam Hampson
107763399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF1_MAX
1078cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF1_MAX 400
1079cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF1_MIN 200
108063399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF1_ATTEMPT 4
108163399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF1_TIMEOUT 1
108263399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
108363399d943938cb7234a7fba508ea603070720d77Adam Hampson
108463399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF2_MAX
1085cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF2_MAX 180
1086cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF2_MIN 150
108763399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF2_ATTEMPT 4
108863399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF2_TIMEOUT 1
108963399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
109063399d943938cb7234a7fba508ea603070720d77Adam Hampson
109163399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF3_MAX
1092cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF3_MAX 150
1093cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF3_MIN 50
109463399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF3_ATTEMPT 4
109563399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF3_TIMEOUT 1
109663399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
109763399d943938cb7234a7fba508ea603070720d77Adam Hampson
109863399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_SNIFF4_MAX
1099cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF4_MAX 54
1100cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF4_MIN 30
110163399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF4_ATTEMPT 4
110263399d943938cb7234a7fba508ea603070720d77Adam Hampson#define BTA_DM_PM_SNIFF4_TIMEOUT 1
110363399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
110463399d943938cb7234a7fba508ea603070720d77Adam Hampson
11051076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov#ifndef BTA_DM_PM_SNIFF5_MAX
1106cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF5_MAX 36
1107cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_SNIFF5_MIN 30
11081076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov#define BTA_DM_PM_SNIFF5_ATTEMPT 2
11091076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov#define BTA_DM_PM_SNIFF5_TIMEOUT 0
11101076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov#endif
11111076b7b0a642d0f5c5948819bcd07e4bc0fb2738Pavlin Radoslavov
111263399d943938cb7234a7fba508ea603070720d77Adam Hampson#ifndef BTA_DM_PM_PARK_MAX
1113cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_MAX 800
1114cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_MIN 400
1115cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_ATTEMPT 0
1116cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_PM_PARK_TIMEOUT 0
111763399d943938cb7234a7fba508ea603070720d77Adam Hampson#endif
111863399d943938cb7234a7fba508ea603070720d77Adam Hampson
11195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Switch callback events */
1120cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_SWITCH_CMPL_EVT 0 /* Completion of the Switch API */
11215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1122e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_SWITCH_EVT;
1123cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef void(tBTA_DM_SWITCH_CBACK)(tBTA_DM_SWITCH_EVT event,
1124cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                   tBTA_STATUS status);
11255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Audio routing out configuration */
1127cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_NONE 0x00      /* No Audio output */
1128cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_DAC 0x01       /* routing over analog output */
1129cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_I2S 0x02       /* routing over digital (I2S) output */
1130cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_BT_MONO 0x04   /* routing over SCO */
1131cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_BT_STEREO 0x08 /* routing over BT Stereo */
1132cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_HOST 0x10      /* routing over Host */
1133cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_FMTX 0x20      /* routing over FMTX */
1134cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_FMRX 0x40      /* routing over FMRX */
1135cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_ROUTE_BTSNK 0x80     /* routing over BT SNK */
11365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1137e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_ROUTE_PATH;
11385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Device Identification (DI) data structure
11405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
11415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Used to set the DI record */
1142cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tSDP_DI_RECORD tBTA_DI_RECORD;
11435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Used to get the DI record */
1144cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tSDP_DI_GET_RECORD tBTA_DI_GET_RECORD;
11455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* SDP discovery database */
1146cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsontypedef tSDP_DISCOVERY_DB tBTA_DISCOVERY_DB;
11475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1148cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#ifndef BTA_DI_NUM_MAX
1149cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DI_NUM_MAX 3
11505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
11515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11523aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/* Device features mask definitions */
1153cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_FEATURE_BYTES_PER_PAGE BTM_FEATURE_BYTES_PER_PAGE
1154cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_EXT_FEATURES_PAGE_MAX BTM_EXT_FEATURES_PAGE_MAX
11557fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* ACL type
11567fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta*/
1157cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_TYPE_BR_EDR 0x01
1158cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_TYPE_LE 0x02
1159cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BTA_DM_LINK_TYPE_ALL 0xFF
1160e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssentypedef uint8_t tBTA_DM_LINK_TYPE;
11613aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach
1162cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define IMMEDIATE_DELY_MODE 0x00
1163cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define ONFOUND_DELY_MODE 0x01
1164cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define BATCH_DELY_MODE 0x02
1165cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define ALLOW_ALL_FILTER 0x00
1166cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson#define LOWEST_RSSI_VALUE 129
11676e2d9db5148176d88d7f48c3b2ad5b27c57ca14dSatya Calloji
11685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
11698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *  External Function Declarations
11708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ****************************************************************************/
11715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
11738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_EnableBluetooth
11758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function initializes BTA and prepares BTA and the
11778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  Bluetooth protocol stack for use.  This function is
11788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  typically called at startup or when Bluetooth services
11798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  are required by the phone.  This function must be called
11808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  before calling any other API function.
11818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          BTA_SUCCESS if successful.
11848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  BTA_FAIL if internal failure.
11858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1187cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern tBTA_STATUS BTA_EnableBluetooth(tBTA_DM_SEC_CBACK* p_cback);
11885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
11908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DisableBluetooth
11928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function disables BTA and the Bluetooth protocol
11948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  stack.  It is called when BTA is no longer being used
11958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  by any application in the system.
11968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
11988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
11998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
120124933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTA_STATUS BTA_DisableBluetooth(void);
12025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
12048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_EnableTestMode
12068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      Enables bluetooth device under test mode
12088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          tBTA_STATUS
12118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
121324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTA_STATUS BTA_EnableTestMode(void);
12145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
12168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DisableTestMode
12188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      Disable bluetooth device under test mode
12208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          None
12238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
122524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DisableTestMode(void);
12265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
12288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmSetDeviceName
12308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function sets the Bluetooth name of the local device.
12328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
12358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1237cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSetDeviceName(char* p_name);
12385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
12408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmSetVisibility
12428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function sets the Bluetooth connectable,discoverable,
1244cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson *                  pairable and conn paired only modesmodes of the local
12451baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  device.
1246cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson *                  This controls whether other Bluetooth devices can find and
12471baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  connect to the local device.
12488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
12518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1253cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSetVisibility(tBTA_DM_DISC disc_mode, tBTA_DM_CONN conn_mode,
1254cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                uint8_t pairable_mode, uint8_t conn_filter);
12555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
12578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmSearch
12598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function searches for peer Bluetooth devices.  It
12618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  first performs an inquiry; for each device found from the
12628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  inquiry it gets the remote name of the device.  If
12638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  parameter services is nonzero, service discovery will be
12648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  performed on each device for the services specified.
12658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
12688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1270cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSearch(tBTA_DM_INQ* p_dm_inq, tBTA_SERVICE_MASK services,
1271cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                         tBTA_DM_SEARCH_CBACK* p_cback);
12725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
12748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmSearchCancel
12768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function cancels a search that has been initiated
12788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  by calling BTA_DmSearch().
12798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
12828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
128424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmSearchCancel(void);
12855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
12878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmDiscover
12898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function performs service discovery for the services
12918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  of a particular peer device.
12928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
12958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
12968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
129724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmDiscover(BD_ADDR bd_addr, tBTA_SERVICE_MASK services,
1298cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                           tBTA_DM_SEARCH_CBACK* p_cback, bool sdp_search);
12995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
13018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmDiscoverUUID
13038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function performs service discovery for the services
13058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  of a particular peer device.
13068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
13098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1311cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmDiscoverUUID(BD_ADDR bd_addr, tSDP_UUID* uuid,
1312cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                               tBTA_DM_SEARCH_CBACK* p_cback, bool sdp_search);
13135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
13158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmGetCachedRemoteName
13178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      Retieve cached remote name if available
13198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          BTA_SUCCESS if cached name was retrieved
13218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  BTA_FAILURE if cached name is not available
13228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1324cd1fd07f1306e08fe048682dd5918987e579f937Myles WatsontBTA_STATUS BTA_DmGetCachedRemoteName(BD_ADDR remote_device,
1325cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                      uint8_t** pp_cached_name);
13265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
13288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBond
13308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function initiates a bonding procedure with a peer
13328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  device.  The bonding procedure enables authentication
13338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  and optionally encryption on the Bluetooth link.
13348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
13378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
133924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmBond(BD_ADDR bd_addr);
13405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
13428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBondByTransport
13448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function initiates a bonding procedure with a peer
1346cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson *                  device by designated transport.  The bonding procedure
13471baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  enables authentication and optionally encryption on the
13481baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  Bluetooth link.
13498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
13528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
135424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmBondByTransport(BD_ADDR bd_addr, tBTA_TRANSPORT transport);
13557fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
13567fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*******************************************************************************
13578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBondCancel
13598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function cancels a bonding procedure with a peer
13618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  device.
13628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
13658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
136724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmBondCancel(BD_ADDR bd_addr);
13685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
13708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmPinReply
13728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function provides a PIN when one is requested by DM
13748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  during a bonding procedure.  The application should call
13758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  this function after the security callback is called with
13768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  a BTA_DM_PIN_REQ_EVT.
13778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
13808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1382e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmPinReply(BD_ADDR bd_addr, bool accept, uint8_t pin_len,
1383cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                           uint8_t* p_pin);
13845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
13868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmLocalOob
13888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function retrieves the OOB data from local controller.
13908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  The result is reported by bta_dm_co_loc_oob().
13918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
13938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
139524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmLocalOob(void);
13965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
13988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
13998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmConfirm
14008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function accepts or rejects the numerical value of the
14028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  Simple Pairing process on BTA_DM_SP_CFM_REQ_EVT
14038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
14058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1407e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmConfirm(BD_ADDR bd_addr, bool accept);
14085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
14108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmAddDevice
14128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function adds a device to the security database list
14148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  of peer devices. This function would typically be called
14158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  at system startup to initialize the security database with
14168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  known peer devices.  This is a direct execution function
14178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  that may lock task scheduling on some platforms.
14188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
14208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
142224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmAddDevice(BD_ADDR bd_addr, DEV_CLASS dev_class,
142324933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                            LINK_KEY link_key, tBTA_SERVICE_MASK trusted_mask,
1424e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssen                            bool is_trusted, uint8_t key_type,
1425e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssen                            tBTA_IO_CAP io_cap, uint8_t pin_length);
14265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
14288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmRemoveDevice
14308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function removes a device from the security database.
14328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  This is a direct execution function that may lock task
14338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  scheduling on some platforms.
14348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          BTA_SUCCESS if successful.
14378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  BTA_FAIL if operation failed.
14388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
144024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTA_STATUS BTA_DmRemoveDevice(BD_ADDR bd_addr);
14415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
14438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_GetEirService
14458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function is called to get BTA service mask from EIR.
14478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters       p_eir - pointer of EIR significant part
14498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  p_services - return the BTA service mask
14508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          None
14528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1454cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_GetEirService(uint8_t* p_eir, tBTA_SERVICE_MASK* p_services);
14555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14565c0b052090a57b3926669c23349b0f0db68853f8Andre Eisenbach/*******************************************************************************
14578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmGetConnectionState
14598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      Returns whether the remote device is currently connected.
14618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          0 if the device is NOT connected.
14638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1465cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern uint16_t BTA_DmGetConnectionState(const BD_ADDR bd_addr);
14665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
14688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmSetLocalDiRecord
14708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function adds a DI record to the local SDP database.
14728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          BTA_SUCCESS if record set sucessfully, otherwise error code.
14748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1476cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern tBTA_STATUS BTA_DmSetLocalDiRecord(tBTA_DI_RECORD* p_device_info,
1477cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                          uint32_t* p_handle);
14785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
14808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmCloseACL
14838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
1484cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description      This function force to close an ACL connection and remove
1485cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson the
14868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  device from the security database list of known devices.
14878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      bd_addr       - Address of the peer device
14898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  remove_dev    - remove device or not after link down
14908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  transport     - which transport to close
14918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson
14928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void.
14948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
14958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1496cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmCloseACL(BD_ADDR bd_addr, bool remove_dev,
1497cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                           tBTA_TRANSPORT transport);
14985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
15008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         bta_dmexecutecallback
15028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
1503cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description      This function will request BTA to execute a call back in the
15041baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  context of BTU task.
15058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  This API was named in lower case because it is only intended
15068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  for the internal customers(like BTIF).
15078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
15098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1511cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void bta_dmexecutecallback(tBTA_DM_EXEC_CBACK* p_callback,
1512cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                  void* p_param);
15135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTM_SCO_HCI_INCLUDED == TRUE)
15155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
15168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmPcmInitSamples
15188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      initialize the down sample converter.
15208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  src_sps: original samples per second (source audio data)
15228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                            (ex. 44100, 48000)
15238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  bits: number of bits per pcm sample (16)
15248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  n_channels: number of channels (i.e. mono(1), stereo(2)...)
15258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          none
15278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1529cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmPcmInitSamples(uint32_t src_sps, uint32_t bits,
1530cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                 uint32_t n_channels);
15315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1532ee96a3c60fca590d38025925c072d264e06493c4Myles Watson/*******************************************************************************
15338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmPcmResample
15348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
1535cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description      Down sampling utility to convert higher sampling rate into
15361baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  8K/16bits
15378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  PCM samples.
15388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters       p_src: pointer to the buffer where the original sampling PCM
15408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                              are stored.
15418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  in_bytes:  Length of the input PCM sample buffer in byte.
15421baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  p_dst: pointer to the buffer which is to be used to store
15431baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                         the converted PCM samples.
15448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          int32_t: number of samples converted.
15478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
1548ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1549cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern int32_t BTA_DmPcmResample(void* p_src, uint32_t in_bytes, void* p_dst);
15505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
15515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BLE related API functions */
15535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
15548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleSecurityGrant
15568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      Grant security request access.
15588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      bd_addr          - BD address of the peer
15608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  res              - security grant status.
15618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
15638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
156524933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmBleSecurityGrant(BD_ADDR bd_addr, tBTA_DM_BLE_SEC_GRANT res);
15665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
156783211b0ccceb53586ac651a4d67ded7443b2f222Jakub Pawlowski/**
156883211b0ccceb53586ac651a4d67ded7443b2f222Jakub Pawlowski * Set BLE connectable mode to auto connect
156983211b0ccceb53586ac651a4d67ded7443b2f222Jakub Pawlowski */
157083211b0ccceb53586ac651a4d67ded7443b2f222Jakub Pawlowskiextern void BTA_DmBleStartAutoConn();
15715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
15738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBlePasskeyReply
15758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      Send BLE SMP passkey reply.
15778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      bd_addr          - BD address of the peer
15798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  accept           - passkey entry sucessful or declined.
15808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  passkey          - passkey value, must be a 6 digit number,
15818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                                     can be lead by 0.
15828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
15848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1586cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmBlePasskeyReply(BD_ADDR bd_addr, bool accept,
1587cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                  uint32_t passkey);
15885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
15908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleConfirmReply
15928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      Send BLE SMP SC user confirmation reply.
15948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      bd_addr          - BD address of the peer
1596cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson *                  accept           - numbers to compare are the same or
15971baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                                     different.
15988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
15998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
16008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1602e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmBleConfirmReply(BD_ADDR bd_addr, bool accept);
1603444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji
1604444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/*******************************************************************************
16058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmAddBleDevice
16078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      Add a BLE device.  This function will be normally called
16098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  during host startup to restore all required information
16108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  for a LE device stored in the NVRAM.
16118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      bd_addr          - BD address of the peer
16138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  dev_type         - Remote device's device type.
16148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  addr_type        - LE device address type.
16158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
16178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
161924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmAddBleDevice(BD_ADDR bd_addr, tBLE_ADDR_TYPE addr_type,
162024933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                               tBT_DEVICE_TYPE dev_type);
16215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
16238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmAddBleKey
16258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      Add/modify LE device information.  This function will be
16278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  normally called during host startup to restore all required
16288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  information stored in the NVRAM.
16298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      bd_addr          - BD address of the peer
16318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  p_le_key         - LE key values.
16328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  key_type         - LE SMP key type.
16338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
16358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1637cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmAddBleKey(BD_ADDR bd_addr, tBTA_LE_KEY_VALUE* p_le_key,
1638cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                            tBTA_LE_KEY_TYPE key_type);
16395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
16418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmSetBlePrefConnParams
16438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function is called to set the preferred connection
16458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  parameters when default connection parameter is not desired.
16468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      bd_addr          - BD address of the peripheral
16488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  min_conn_int     - minimum preferred connection interval
16498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  max_conn_int     - maximum preferred connection interval
16508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  slave_latency    - preferred slave latency
16518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  supervision_tout - preferred supervision timeout
16528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
16558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1657063ca0230d902b1397bb8c19366e807980d876f3Jakub Pawlowskiextern void BTA_DmSetBlePrefConnParams(const BD_ADDR bd_addr,
1658cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                       uint16_t min_conn_int,
1659cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                       uint16_t max_conn_int,
1660cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                       uint16_t slave_latency,
1661cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                       uint16_t supervision_tout);
16625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
16648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmSetBleConnScanParams
16668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function is called to set scan parameters used in
16688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  BLE connection request
16698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      scan_interval    - scan interval
16718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  scan_window      - scan window
16728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
16748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1676e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmSetBleConnScanParams(uint32_t scan_interval,
1677e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssen                                       uint32_t scan_window);
16785725fc6d2c639a8c22a08b9b6629309eeda3715eSatya Calloji
16795725fc6d2c639a8c22a08b9b6629309eeda3715eSatya Calloji/*******************************************************************************
16808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmSetBleScanParams
16828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function is called to set scan parameters
16848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      client_if - Client IF
16868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  scan_interval - scan interval
16878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  scan_window - scan window
16888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  scan_mode - scan mode
1689cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson *                  scan_param_setup_status_cback - Set scan param status
16901baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                                                  callback
16918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
16938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
16948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1695cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSetBleScanParams(
1696cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson    tGATT_IF client_if, uint32_t scan_interval, uint32_t scan_window,
1697cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson    tBLE_SCAN_MODE scan_mode,
1698cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson    tBLE_SCAN_PARAM_SETUP_CBACK scan_param_setup_status_cback);
16995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
17018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmSetBleAdvParams
17038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
1704cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description      This function sets the advertising parameters BLE
17051baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  functionality.
1706cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson *                  It is to be called when device act in peripheral or
17071baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  broadcaster role.
17088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      adv_int_min    - adv interval minimum
17108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  adv_int_max    - adv interval max
17118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  p_dir_bda      - directed adv initator address
17128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
17148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1716cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSetBleAdvParams(uint16_t adv_int_min, uint16_t adv_int_max,
1717cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                  tBLE_BD_ADDR* p_dir_bda);
17185c44e45473e5fc2fa89411ab1add7dbfc979f1f8Andre Eisenbach/*******************************************************************************
17198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmSearchExt
17218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
1722cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description      This function searches for peer Bluetooth devices. It
17231baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  performs an inquiry and gets the remote name for devices.
17241baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  Service discovery is done if services is non zero
17258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters       p_dm_inq: inquiry conditions
1727cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson *                  services: if service is not empty, service discovery will be
17281baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                            done.
1729cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson *                            for all GATT based service condition, put
17301baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                            num_uuid, and p_uuid is the pointer to the list of
17311baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                            UUID values.
17328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  p_cback: callback functino when search is completed.
17338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
17378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1739cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmSearchExt(tBTA_DM_INQ* p_dm_inq,
1740cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                            tBTA_SERVICE_MASK_EXT* p_services,
1741cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                            tBTA_DM_SEARCH_CBACK* p_cback);
17425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
17448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmDiscoverExt
17468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function does service discovery for services of a
17488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  peer device. When services.num_uuid is 0, it indicates all
17498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  GATT based services are to be searched; other wise a list of
17508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  UUID of interested services should be provided through
17518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  services.p_uuid.
17528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
17568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1758cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmDiscoverExt(BD_ADDR bd_addr,
1759cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                              tBTA_SERVICE_MASK_EXT* p_services,
1760cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                              tBTA_DM_SEARCH_CBACK* p_cback, bool sdp_search);
17615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17627fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*******************************************************************************
17638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmDiscoverByTransport
17658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function does service discovery on particular transport
17678af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  for services of a
17688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  peer device. When services.num_uuid is 0, it indicates all
17698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  GATT based services are to be searched; other wise a list of
17708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  UUID of interested services should be provided through
17718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  p_services->p_uuid.
17728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17738af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17748af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
17768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1778cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmDiscoverByTransport(BD_ADDR bd_addr,
1779cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                      tBTA_SERVICE_MASK_EXT* p_services,
1780cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                      tBTA_DM_SEARCH_CBACK* p_cback,
1781cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                      bool sdp_search,
178224933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                      tBTA_TRANSPORT transport);
17835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
17858af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17868af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmSetEncryption
17878af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function is called to ensure that connection is
17898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  encrypted.  Should be called only on an open connection.
17908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  Typically only needed for connections that first want to
17918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  bring up unencrypted links, then later encrypt them.
17928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
17938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      bd_addr       - Address of the peer device
17948af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  transport     - transport of the link to be encruypted
17958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  p_callback    - Pointer to callback function to indicat the
17968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                                  link encryption status
17978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  sec_act       - This is the security action to indicate
17981baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                                  what kind of BLE security level is required
17991baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                                  for the BLE link if BLE is supported
18001baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                                  Note: This parameter is ignored for
18011baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                                        BR/EDR or if BLE is not supported.
18028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
18048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
180724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmSetEncryption(BD_ADDR bd_addr, tBTA_TRANSPORT transport,
1808cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                tBTA_DM_ENCRYPT_CBACK* p_callback,
180924933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                tBTA_DM_BLE_SEC_ACT sec_act);
18105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1811ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/*******************************************************************************
18128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleObserve
18148af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18158af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This procedure keep the device listening for advertising
18168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  events from a broadcast device.
18178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters       start: start or stop observe.
1819cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson *                  duration : Duration of the scan. Continuous scan if 0 is
18201baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                             passed
18218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  p_results_cb: Callback to be called with scan results
18228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
18248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1826e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmBleObserve(bool start, uint8_t duration,
1827cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                             tBTA_DM_SEARCH_CBACK* p_results_cb);
1828ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
1829ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/*******************************************************************************
18308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleConfigLocalPrivacy
18328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      Enable/disable privacy on the local device
18348af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      privacy_enable   - enable/disabe privacy on remote device.
18368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
18388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1840e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmBleConfigLocalPrivacy(bool privacy_enable);
1841ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
1842ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/*******************************************************************************
18438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleEnableRemotePrivacy
18458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      Enable/disable privacy on a remote device
18478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      bd_addr          - BD address of the peer
18498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  privacy_enable   - enable/disabe privacy on remote device.
18508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
18528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1854e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmBleEnableRemotePrivacy(BD_ADDR bd_addr, bool privacy_enable);
1855ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
18566a9666116668683fb473239ff381dec16b784421Jakub Pawlowski/*******************************************************************************
18578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleUpdateConnectionParams
18598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
1860cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description      Update connection parameters, can only be used when
18611baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  connection is up.
18628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters:      bd_addr   - BD address of the peer
18641baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  min_int   - minimum connection interval, [0x0004 ~ 0x4000]
18651baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  max_int   - maximum connection interval, [0x0004 ~ 0x4000]
18661baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  latency   - slave latency [0 ~ 500]
18671baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  timeout   - supervision timeout [0x000a ~ 0xc80]
18688af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
18708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1872cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmBleUpdateConnectionParams(const BD_ADDR bd_addr,
1873cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                            uint16_t min_int, uint16_t max_int,
1874cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                            uint16_t latency, uint16_t timeout);
1875c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji
1876c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji/*******************************************************************************
18778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleSetDataLength
18798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function is to set maximum LE data packet size
18818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
18838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1885cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmBleSetDataLength(BD_ADDR remote_device,
1886cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                   uint16_t tx_data_length);
1887636d6714a4c08dd99d2147dcce05dc3892e804b4Priti Aghera
1888636d6714a4c08dd99d2147dcce05dc3892e804b4Priti Aghera/*******************************************************************************
18898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleSetStorageParams
18918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
18928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function is called to set the storage parameters
18938af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
1894cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Parameters       batch_scan_full_max -Max storage space (in %) allocated to
18951baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                                       full scanning
1896cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson *                  batch_scan_trunc_max -Max storage space (in %) allocated to
18971baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                                        truncated scanning
1898cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson *                  batch_scan_notify_threshold - Setup notification level based
18991baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                                                on total space consumed by
19001baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                                                both pools. Setting it to 0
19011baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                                                will disable threshold
19021baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                                                notification
19038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  p_setup_cback - Setup callback
19048af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  p_thres_cback - Threshold callback
19058af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  p_rep_cback - Reports callback
19068af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  ref_value - Reference value
19078af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19088af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns           None
19098af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19108af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1911cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmBleSetStorageParams(
1912cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson    uint8_t batch_scan_full_max, uint8_t batch_scan_trunc_max,
1913cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson    uint8_t batch_scan_notify_threshold,
1914cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson    tBTA_BLE_SCAN_SETUP_CBACK* p_setup_cback,
1915cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson    tBTA_BLE_SCAN_THRESHOLD_CBACK* p_thres_cback,
1916cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson    tBTA_BLE_SCAN_REP_CBACK* p_rep_cback, tBTA_DM_BLE_REF_VALUE ref_value);
1917c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji
1918c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji/*******************************************************************************
19198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleEnableBatchScan
19218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function is called to enable the batch scan
19238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters       scan_mode -Batch scan mode
19258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  scan_interval - Scan interval
19268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  scan_window - Scan window
19278af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  discard_rule -Discard rules
19288af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  addr_type - Address type
19298af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  ref_value - Reference value
19308af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19318af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns           None
19328af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19338af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
19345725fc6d2c639a8c22a08b9b6629309eeda3715eSatya Callojiextern void BTA_DmBleEnableBatchScan(tBTA_BLE_BATCH_SCAN_MODE scan_mode,
1935cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                     uint32_t scan_interval,
1936cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                     uint32_t scan_window,
1937cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                     tBTA_BLE_DISCARD_RULE discard_rule,
1938cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                     tBLE_ADDR_TYPE addr_type,
1939cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                     tBTA_DM_BLE_REF_VALUE ref_value);
1940c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji
1941c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji/*******************************************************************************
19428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleReadScanReports
19448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function is called to read the batch scan reports
19468af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19478af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters       scan_mode -Batch scan mode
19488af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  ref_value - Reference value
19498af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19508af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          None
19518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
19535725fc6d2c639a8c22a08b9b6629309eeda3715eSatya Callojiextern void BTA_DmBleReadScanReports(tBTA_BLE_BATCH_SCAN_MODE scan_type,
1954cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                     tBTA_DM_BLE_REF_VALUE ref_value);
1955c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji
1956c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji/*******************************************************************************
19578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleDisableBatchScan
19598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function is called to disable the batch scanning
19618af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19628af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters       ref_value - Reference value
19638af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          None
19658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
196724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmBleDisableBatchScan(tBTA_DM_BLE_REF_VALUE ref_value);
1968c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji
19691a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji/*******************************************************************************
19708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmEnableScanFilter
19728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
1973cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description      This function is called to enable the adv data payload
19741baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  filter
19758af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters       action - enable or disable the APCF feature
19778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  p_cmpl_cback - Command completed callback
19788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  ref_value - Reference value
19798af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19808af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
19818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
1983e9e58ced195ec2c983c7723c9cbdabd45eb0f2fdMarie Janssenextern void BTA_DmEnableScanFilter(uint8_t action,
1984cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                   tBTA_DM_BLE_PF_STATUS_CBACK* p_cmpl_cback,
1985cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                   tBTA_DM_BLE_REF_VALUE ref_value);
19861a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji
19871a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji/*******************************************************************************
19888af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19898af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleScanFilterSetup
19908af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
19918af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function is called to setup the filter params
19928af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
1993cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Parameters       p_target: enable the filter condition on a target device; if
19941baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                            NULL
19958af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  filt_index - Filter index
19968af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  p_filt_params -Filter parameters
19978af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  ref_value - Reference value
19988af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  action - Add, delete or clear
19998af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  p_cmpl_back - Command completed callback
20008af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
20018af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
20028af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
20038af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
2004709843216679a3c7852d7d254fde47a9d503abd8Jakub Pawlowskiextern void BTA_DmBleScanFilterSetup(
2005709843216679a3c7852d7d254fde47a9d503abd8Jakub Pawlowski    uint8_t action, tBTA_DM_BLE_PF_FILT_INDEX filt_index,
2006709843216679a3c7852d7d254fde47a9d503abd8Jakub Pawlowski    std::unique_ptr<btgatt_filt_param_setup_t> p_filt_params,
2007709843216679a3c7852d7d254fde47a9d503abd8Jakub Pawlowski    std::unique_ptr<tBLE_BD_ADDR> p_target,
2008709843216679a3c7852d7d254fde47a9d503abd8Jakub Pawlowski    tBTA_DM_BLE_PF_PARAM_CBACK p_cmpl_cback, tBTA_DM_BLE_REF_VALUE ref_value);
20091a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji
20101a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji/*******************************************************************************
20118af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
20128af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleCfgFilterCondition
20138af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
2014cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description      This function is called to configure the adv data payload
20151baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  filter condition.
20168af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
20178af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters       action: to read/write/clear
20188af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  cond_type: filter condition type
20198af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  filt_index - Filter index
20208af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  p_cond: filter condition parameter
20218af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  p_cmpl_back - Command completed callback
20228af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *                  ref_value - Reference value
20238af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
20248af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
20258af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
20268af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
202724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern void BTA_DmBleCfgFilterCondition(tBTA_DM_BLE_SCAN_COND_OP action,
2028cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                        tBTA_DM_BLE_PF_COND_TYPE cond_type,
2029cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                        tBTA_DM_BLE_PF_FILT_INDEX filt_index,
2030cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                        tBTA_DM_BLE_PF_COND_PARAM* p_cond,
2031cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                        tBTA_DM_BLE_PF_CFG_CBACK* p_cmpl_cback,
2032cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson                                        tBTA_DM_BLE_REF_VALUE ref_value);
20331acb61ce065053f91a0f8d43e8328c9eeec4b5edSatya Calloji
20341acb61ce065053f91a0f8d43e8328c9eeec4b5edSatya Calloji/*******************************************************************************
20358af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
20368af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleTrackAdvertiser
20378af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
20388af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function is called to track the advertiser
20398af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
20408af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters    ref_value - Reference value
20418af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *               p_track_adv_cback - ADV callback
20428af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
20438af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          None
20448af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
20458af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
2046cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmBleTrackAdvertiser(
2047cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson    tBTA_DM_BLE_REF_VALUE ref_value,
2048cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson    tBTA_BLE_TRACK_ADV_CBACK* p_track_adv_cback);
20491acb61ce065053f91a0f8d43e8328c9eeec4b5edSatya Calloji
2050e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji/*******************************************************************************
20518af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
20528af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_DmBleGetEnergyInfo
20538af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
20548af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Description      This function is called to obtain the energy info
20558af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
20568af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Parameters       p_cmpl_cback - Command complete callback
20578af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
20588af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
20598af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
20608af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
2061cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_DmBleGetEnergyInfo(tBTA_BLE_ENERGY_INFO_CBACK* p_cmpl_cback);
2062e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji
206316fe0822ccd3eb6f66d3afd9965d25a0a0cb4c30Prerepa Viswanadham/*******************************************************************************
20648af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
20658af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_BrcmInit
20668af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
2067cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description      This function initializes Broadcom specific VS handler in
20681baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  BTA
20698af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
20708af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
20718af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
20728af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
2073cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_VendorInit(void);
207416fe0822ccd3eb6f66d3afd9965d25a0a0cb4c30Prerepa Viswanadham
207516fe0822ccd3eb6f66d3afd9965d25a0a0cb4c30Prerepa Viswanadham/*******************************************************************************
20768af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
20778af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Function         BTA_BrcmCleanup
20788af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
2079cd1fd07f1306e08fe048682dd5918987e579f937Myles Watson * Description      This function frees up Broadcom specific VS specific dynamic
20801baaae3f34a667058e7f0c5f778357d98320cf38Myles Watson *                  memory
20818af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
20828af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson * Returns          void
20838af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson *
20848af480e24549ba51a3f6858d9d9af504715e0beaMyles Watson ******************************************************************************/
2085cd1fd07f1306e08fe048682dd5918987e579f937Myles Watsonextern void BTA_VendorCleanup(void);
208616fe0822ccd3eb6f66d3afd9965d25a0a0cb4c30Prerepa Viswanadham
20875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BTA_API_H */
2088