15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************
25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
35b790feeeb211c42bf78ca3ae9c26aa30e516765Jakub Pawlowski *  Copyright 1999-2012 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 file contains the Bluetooth Manager (BTM) API function external
225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  definitions.
235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/
255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTM_API_H
265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTM_API_H
275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_target.h"
2957f6508cf7b22788fa2e7a739cec241b785718fbMudumba Ananth#include "device/include/esco_parameters.h"
30fe695a557a92053d4c44428ba08c0b8e945d4711Jack He#include "hcidefs.h"
31911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#include "sdp_api.h"
325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "smp_api.h"
343d6accfcc0bdc5c7a8713320c9bb069cbf253348Bryce Lee
35dc3c1f2afa2d5f311c3ea42bda432089a7f303a4Jakub Pawlowski#include "btm_api_types.h"
36dc3c1f2afa2d5f311c3ea42bda432089a7f303a4Jakub Pawlowski
375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
38ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *  DEVICE CONTROL and COMMON
39ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ****************************************************************************/
40e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji
415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
42ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *  EXTERNAL FUNCTION DECLARATIONS
43ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ****************************************************************************/
445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
46ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *  DEVICE CONTROL and COMMON FUNCTIONS
47ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ****************************************************************************/
48ee96a3c60fca590d38025925c072d264e06493c4Myles Watson
49ee96a3c60fca590d38025925c072d264e06493c4Myles Watson/*******************************************************************************
50ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
51ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_DeviceReset
52ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
539ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Description      This function is called to reset the controller.  The
549ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  Callback function if provided is called when startup of the
559ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  device has completed.
56ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
57ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          void
58ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
59ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
60911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern void BTM_DeviceReset(tBTM_CMPL_CB* p_cb);
615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
63ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
64ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_IsDeviceUp
65ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
66ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to check if the device is up.
67ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
68ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          true if device is up, else false
69ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
70ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
71911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern bool BTM_IsDeviceUp(void);
725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
74ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
75ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetLocalDeviceName
76ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
77ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to set the local device name.
78ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
79ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_CMD_STARTED if successful, otherwise an error
80ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
81ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
82911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_SetLocalDeviceName(char* p_name);
835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
85ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
86ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetDeviceClass
87ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
88ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to set the local device class
89ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
90ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if successful, otherwise an error
91ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
92ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
93911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_SetDeviceClass(DEV_CLASS dev_class);
945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
96ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
97ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadLocalDeviceName
98ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
99ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to read the local device name.
100ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
101ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          status of the operation
102ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  If success, BTM_SUCCESS is returned and p_name points stored
103ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                              local device name
104ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  If BTM doesn't store local device name, BTM_NO_RESOURCES is
105ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                              is returned and p_name is set to NULL
106ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
107ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
108911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_ReadLocalDeviceName(char** p_name);
1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
111ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
112ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadLocalDeviceNameFromController
113ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
114ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Get local device name from controller. Do not use cached
115ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  name (used to get chip-id prior to btm reset complete).
116ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
117ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_CMD_STARTED if successful, otherwise an error
118ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
119ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
120911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_ReadLocalDeviceNameFromController(
121911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson    tBTM_CMPL_CB* p_rln_cmpl_cback);
1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
124ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
125ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadDeviceClass
126ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
127ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to read the local device class
128ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
129ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          pointer to the device class
130ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
131ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
132911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint8_t* BTM_ReadDeviceClass(void);
1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
135ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
136ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadLocalFeatures
137ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
138ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to read the local features
139ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
140ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          pointer to the local features string
141ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
142ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
143911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint8_t* BTM_ReadLocalFeatures(void);
1445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
146ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
147ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_RegisterForDeviceStatusNotif
148ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
149ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to register for device status
150ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  change notifications.
151ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1529ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Returns          pointer to previous caller's callback function or NULL if
1539ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  first registration.
154ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
155ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
156911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_DEV_STATUS_CB* BTM_RegisterForDeviceStatusNotif(
157911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson    tBTM_DEV_STATUS_CB* p_cb);
1585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
160ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
161ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_RegisterForVSEvents
162ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
163ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to register/deregister for vendor
164ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  specific HCI events.
165ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
166ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  If is_register=true, then the function will be registered;
1679ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  otherwise the function will be deregistered.
168ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
169ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if successful,
170ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_BUSY if maximum number of callbacks have already been
171ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                           registered.
172ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
173ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
174911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_RegisterForVSEvents(tBTM_VS_EVT_CB* p_cb,
175911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                           bool is_register);
1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
178ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
179ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_VendorSpecificCommand
180ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
181ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Send a vendor specific HCI command to the controller.
182ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
183ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
184911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern void BTM_VendorSpecificCommand(uint16_t opcode, uint8_t param_len,
185911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                      uint8_t* p_param_buf,
186911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                      tBTM_VSC_CMPL_CB* p_cb);
1875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
189ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
190ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_AllocateSCN
191ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
192ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Look through the Server Channel Numbers for a free one to be
193ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  used with an RFCOMM connection.
194ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
195ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          Allocated SCN number or 0 if none.
196ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
197ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
198d19e0785e662e640191a075eda07acce61c2aedaMarie Janssenextern uint8_t BTM_AllocateSCN(void);
1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
201ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
202ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_TryAllocateSCN
203ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
204ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Try to allocate a fixed server channel
205ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
206ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          Returns true if server channel was available
207ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
208ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
209911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern bool BTM_TryAllocateSCN(uint8_t scn);
2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
212ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
213ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_FreeSCN
214ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
215ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Free the specified SCN.
216ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
217ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          true if successful, false if SCN is not in use or invalid
218ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
219ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
220911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern bool BTM_FreeSCN(uint8_t scn);
2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
223ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
224ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetTraceLevel
225ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
226ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function sets the trace level for BTM.  If called with
227ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  a value of 0xFF, it simply returns the current trace level.
228ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
229ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          The new or current trace level
230ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
231ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
232911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint8_t BTM_SetTraceLevel(uint8_t new_level);
2335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
235ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
236ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_WritePageTimeout
237ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
238ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Send HCI Wite Page Timeout.
239ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
240ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
241b6ab9b3af6b8793ff781e0359a78611726ab2300Jakub Pawlowskiextern void BTM_WritePageTimeout(uint16_t timeout);
2425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
244ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
245ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_WriteVoiceSettings
246ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
247ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Send HCI Write Voice Settings command.
248ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  See hcidefs.h for settings bitmask values.
249ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
250ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
251b6ab9b3af6b8793ff781e0359a78611726ab2300Jakub Pawlowskiextern void BTM_WriteVoiceSettings(uint16_t settings);
2525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
254ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
255ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_EnableTestMode
256ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
257ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Send HCI the enable device under test command.
258ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
259ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  Note: Controller can only be taken out of this mode by
260ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                      resetting the controller.
261ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
262ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns
263ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *      BTM_SUCCESS         Command sent.
264ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *      BTM_NO_RESOURCES    If out of resources to send the command.
265ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
266ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
267ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
26824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_EnableTestMode(void);
2695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2709ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/*******************************************************************************
2719ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * DEVICE DISCOVERY FUNCTIONS - Inquiry, Remote Name, Discovery, Class of Device
2729ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson ******************************************************************************/
273ee96a3c60fca590d38025925c072d264e06493c4Myles Watson
274ee96a3c60fca590d38025925c072d264e06493c4Myles Watson/*******************************************************************************
275ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
276ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetDiscoverability
277ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
278ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to set the device into or out of
279ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  discoverable mode. Discoverable mode means inquiry
2809ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  scans are enabled.  If a value of '0' is entered for window
2819ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  or interval, the default values are used.
282ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
283ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if successful
284ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_BUSY if a setting of the filter is already in progress
285ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_NO_RESOURCES if couldn't get a memory pool buffer
286ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_ILLEGAL_VALUE if a bad parameter was detected
287ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_WRONG_MODE if the device is not up.
288ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
289ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
290911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_SetDiscoverability(uint16_t inq_mode, uint16_t window,
291911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                          uint16_t interval);
2925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
294ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
295ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadDiscoverability
296ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
297ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to read the current discoverability
298ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  mode of the device.
299ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
300ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Output Params:   p_window - current inquiry scan duration
301ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  p_interval - current inquiry scan interval
302ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
303ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_NON_DISCOVERABLE, BTM_LIMITED_DISCOVERABLE, or
304ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_GENERAL_DISCOVERABLE
305ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
306ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
307911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint16_t BTM_ReadDiscoverability(uint16_t* p_window,
308911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                        uint16_t* p_interval);
3095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
311ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
312ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetPeriodicInquiryMode
313ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
3149ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Description      This function is called to set the device periodic inquiry
3159ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  mode. If the duration is zero, the periodic inquiry mode is
3169ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  cancelled.
317ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
318ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters:      p_inqparms - pointer to the inquiry information
319ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                      mode - GENERAL or LIMITED inquiry
3209ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                      duration - length in 1.28 sec intervals (If '0', the
3219ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                 inquiry is CANCELLED)
3229ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                      max_resps - maximum amount of devices to search for
3239ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                  before ending the inquiry
3249ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                      filter_cond_type - BTM_CLR_INQUIRY_FILTER,
3259ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                         BTM_FILTER_COND_DEVICE_CLASS, or
326ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                                         BTM_FILTER_COND_BD_ADDR
3279ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                      filter_cond - value for the filter (based on
3289ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                                          filter_cond_type)
329ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
3309ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  max_delay - maximum amount of time between successive
3319ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                              inquiries
3329ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  min_delay - minimum amount of time between successive
3339ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                              inquiries
3349ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  p_results_cb - callback returning pointer to results
3359ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                              (tBTM_INQ_RESULTS)
336ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
337ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_CMD_STARTED if successfully started
338ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_ILLEGAL_VALUE if a bad parameter is detected
339ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_NO_RESOURCES if could not allocate a message buffer
340ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_SUCCESS - if cancelling the periodic inquiry
341ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_BUSY - if an inquiry is already active
342ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_WRONG_MODE if the device is not up.
343ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
344ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
345911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_SetPeriodicInquiryMode(
346911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson    tBTM_INQ_PARMS* p_inqparms, uint16_t max_delay, uint16_t min_delay,
347911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson    tBTM_INQ_RESULTS_CB* p_results_cb);
3485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
350ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
351ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_StartInquiry
352ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
353ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to start an inquiry.
354ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
355ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters:      p_inqparms - pointer to the inquiry information
356ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                      mode - GENERAL or LIMITED inquiry
3579ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                      duration - length in 1.28 sec intervals (If '0', the
3589ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                 inquiry is CANCELLED)
3599ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                      max_resps - maximum amount of devices to search for
3609ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                  before ending the inquiry
3619ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                      filter_cond_type - BTM_CLR_INQUIRY_FILTER,
3629ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                         BTM_FILTER_COND_DEVICE_CLASS, or
363ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                                         BTM_FILTER_COND_BD_ADDR
3649ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                      filter_cond - value for the filter (based on
3659ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                                          filter_cond_type)
3669ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *
3679ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  p_results_cb  - Pointer to the callback routine which gets
3689ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                called upon receipt of an inquiry result. If
3699ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                this field is NULL, the application is not
3709ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                notified.
3719ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *
3729ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  p_cmpl_cb   - Pointer to the callback routine which gets
3739ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                called upon completion.  If this field is
3749ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                NULL, the application is not notified when
3759ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                completed.
376ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          tBTM_STATUS
377ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_CMD_STARTED if successfully initiated
378ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_BUSY if already in progress
379ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_ILLEGAL_VALUE if parameter(s) are out of range
3809ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  BTM_NO_RESOURCES if could not allocate resources to start
3819ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                   the command
382ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_WRONG_MODE if the device is not up.
383ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
384ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
385911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_StartInquiry(tBTM_INQ_PARMS* p_inqparms,
386911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                    tBTM_INQ_RESULTS_CB* p_results_cb,
387911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                    tBTM_CMPL_CB* p_cmpl_cb);
3885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
3895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
390ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
391ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_IsInquiryActive
392ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
3939ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Description      Return a bit mask of the current inquiry state
394ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
395ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_INQUIRY_INACTIVE if inactive (0)
396ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_LIMITED_INQUIRY_ACTIVE if a limted inquiry is active
397ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_GENERAL_INQUIRY_ACTIVE if a general inquiry is active
398ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_PERIODIC_INQUIRY_ACTIVE if a periodic inquiry is active
399ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
400ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
401911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint16_t BTM_IsInquiryActive(void);
4025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
404ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
405ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_CancelInquiry
406ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
407ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function cancels an inquiry if active
408ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
409ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if successful
410ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_NO_RESOURCES if could not allocate a message buffer
411ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_WRONG_MODE if the device is not up.
412ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
413ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
41424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_CancelInquiry(void);
4155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
417ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
418ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_CancelPeriodicInquiry
419ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
420ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function cancels a periodic inquiry
421ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
422ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns
423ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_NO_RESOURCES if could not allocate a message buffer
424ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_SUCCESS - if cancelling the periodic inquiry
425ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_WRONG_MODE if the device is not up.
426ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
427ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
42824933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_STATUS BTM_CancelPeriodicInquiry(void);
4295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
431ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
432ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetConnectability
433ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
434ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to set the device into or out of
4359ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  connectable mode. Discoverable mode means page scans are
4369ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  enabled.
437ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
438ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if successful
439ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_ILLEGAL_VALUE if a bad parameter is detected
440ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_NO_RESOURCES if could not allocate a message buffer
441ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_WRONG_MODE if the device is not up.
442ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
443ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
444911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_SetConnectability(uint16_t page_mode, uint16_t window,
445911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                         uint16_t interval);
4465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
448ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
449ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadConnectability
450ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
451ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to read the current discoverability
452ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  mode of the device.
453ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Output Params    p_window - current page scan duration
454ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  p_interval - current time between page scans
455ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
456ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_NON_CONNECTABLE or BTM_CONNECTABLE
457ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
458ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
459911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint16_t BTM_ReadConnectability(uint16_t* p_window,
460911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                       uint16_t* p_interval);
4615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
463ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
464ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetInquiryMode
465ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
466ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to set standard, with RSSI
467ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  mode or extended of the inquiry for local device.
468ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
469ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Input Params:    BTM_INQ_RESULT_STANDARD, BTM_INQ_RESULT_WITH_RSSI or
470ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_INQ_RESULT_EXTENDED
471ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
472ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if successful
473ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_NO_RESOURCES if couldn't get a memory pool buffer
474ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_ILLEGAL_VALUE if a bad parameter was detected
475ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_WRONG_MODE if the device is not up.
476ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
477ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
478911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_SetInquiryMode(uint8_t mode);
4795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
481ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
482ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetInquiryScanType
483ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
484ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to set the iquiry scan-type to
485ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  standard or interlaced.
486ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
487ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Input Params:    BTM_SCAN_TYPE_STANDARD or BTM_SCAN_TYPE_INTERLACED
488ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
489ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if successful
490ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_MODE_UNSUPPORTED if not a 1.2 device
491ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_WRONG_MODE if the device is not up.
492ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
493ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
494911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_SetInquiryScanType(uint16_t scan_type);
4955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
497ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
498ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetPageScanType
499ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
500ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to set the page scan-type to
501ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  standard or interlaced.
502ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
503ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Input Params:    BTM_SCAN_TYPE_STANDARD or BTM_SCAN_TYPE_INTERLACED
504ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
505ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if successful
506ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_MODE_UNSUPPORTED if not a 1.2 device
507ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_WRONG_MODE if the device is not up.
508ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
509ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
5105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
511911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_SetPageScanType(uint16_t scan_type);
5125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
514ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
515ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadRemoteDeviceName
516ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
517ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function initiates a remote device HCI command to the
5189ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  controller and calls the callback when the process has
5199ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  completed.
520ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
521ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Input Params:    remote_bda      - device address of name to retrieve
5229ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  p_cb            - callback function called when
5239ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                    BTM_CMD_STARTED is returned.
5249ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                    A pointer to tBTM_REMOTE_DEV_NAME is
5259ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                    passed to the callback.
526ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
527ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns
5289ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  BTM_CMD_STARTED is returned if the request was successfully
5299ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                  sent to HCI.
530ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_BUSY if already in progress
531ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_UNKNOWN_ADDR if device address is bad
5329ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  BTM_NO_RESOURCES if resources could not be allocated to
5339ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                   start the command
534ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_WRONG_MODE if the device is not up.
535ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
536ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
537a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_STATUS BTM_ReadRemoteDeviceName(const RawAddress& remote_bda,
538911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                            tBTM_CMPL_CB* p_cb,
539911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                            tBT_TRANSPORT transport);
5405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
542ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
543ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_CancelRemoteDeviceName
544ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
545ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function initiates the cancel request for the specified
546ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  remote device.
547ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
548ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Input Params:    None
549ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
550ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns
5519ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  BTM_CMD_STARTED is returned if the request was successfully
5529ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                  sent to HCI.
5539ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  BTM_NO_RESOURCES if resources could not be allocated to
5549ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                   start the command
5559ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  BTM_WRONG_MODE if there is no active remote name request.
556ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
557ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
558911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_CancelRemoteDeviceName(void);
5595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
561ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
562ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadRemoteVersion
563ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
564ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to read a remote device's version
565ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
566ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if successful, otherwise an error
567ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
568ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
569a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_STATUS BTM_ReadRemoteVersion(const RawAddress& addr,
570c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski                                         uint8_t* lmp_version,
571911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                         uint16_t* manufacturer,
572911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                         uint16_t* lmp_sub_version);
5735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
575ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
576ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadRemoteFeatures
577ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
578ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to read a remote device's
579ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  supported features mask (features mask located at page 0)
580ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
581ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  Note: The size of device features mask page is
582ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_FEATURE_BYTES_PER_PAGE bytes.
583ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
584ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          pointer to the remote supported features mask
585ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
586ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
587a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern uint8_t* BTM_ReadRemoteFeatures(const RawAddress& addr);
5885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
5895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
590ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
591ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadRemoteExtendedFeatures
592ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
593ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to read a specific extended features
594ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  page of the remote device
595ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
596ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  Note1: The size of device features mask page is
597ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_FEATURE_BYTES_PER_PAGE bytes.
598ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  Note2: The valid device features mask page number depends on
599ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  the remote device capabilities. It is expected to be in the
600ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  range [0 - BTM_EXT_FEATURES_PAGE_MAX].
601ee96a3c60fca590d38025925c072d264e06493c4Myles Watson
602ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          pointer to the remote extended features mask
603ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  or NULL if page_number is not valid
604ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
605ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
606a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern uint8_t* BTM_ReadRemoteExtendedFeatures(const RawAddress& addr,
607911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                               uint8_t page_number);
6083aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach
6093aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/*******************************************************************************
610ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
611ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadNumberRemoteFeaturesPages
612ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
6139ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Description      This function is called to retrieve the number of feature
6149ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  pages read from the remote device
615ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
616ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          number of features pages read from the remote device
617ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
618ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
619a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern uint8_t BTM_ReadNumberRemoteFeaturesPages(const RawAddress& addr);
6203aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach
6213aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/*******************************************************************************
622ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
623ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadAllRemoteFeatures
624ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
6259ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Description      Read all the features of the remote device
626ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
627ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          pointer to the byte[0] of the page[0] of the remote device
628ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  feature mask.
629ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
630ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Note:            the function returns the pointer to the array of the size
6319ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  BTM_FEATURE_BYTES_PER_PAGE * (BTM_EXT_FEATURES_PAGE_MAX + 1)
632ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
633ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
634a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern uint8_t* BTM_ReadAllRemoteFeatures(const RawAddress& addr);
6353aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach
6363aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/*******************************************************************************
637ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
638ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_InqDbRead
639ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
640ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function looks through the inquiry database for a match
641ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  based on Bluetooth Device Address. This is the application's
6429ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  interface to get the inquiry details of a specific BD
6439ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  address.
644ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
645ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          pointer to entry, or NULL if not found
646ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
647ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
648a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_INQ_INFO* BTM_InqDbRead(const RawAddress& p_bda);
6495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
651ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
652ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_InqDbFirst
653ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
6549ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Description      This function looks through the inquiry database for the
6559ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  first used entry, and returns that. This is used in
6569ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  conjunction with BTM_InqDbNext by applications as a way to
6579ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  walk through the inquiry database.
658ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
659ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          pointer to first in-use entry, or NULL if DB is empty
660ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
661ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
662911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_INQ_INFO* BTM_InqDbFirst(void);
6635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
665ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
666ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_InqDbNext
667ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
6689ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Description      This function looks through the inquiry database for the
6699ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  next used entry, and returns that.  If the input parameter
6709ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  is NULL, the first entry is returned.
671ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
672ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          pointer to next in-use entry, or NULL if no more found.
673ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
674ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
675911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_INQ_INFO* BTM_InqDbNext(tBTM_INQ_INFO* p_cur);
6765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
678ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
679ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ClearInqDb
680ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
681ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to clear out a device or all devices
682ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  from the inquiry database.
683ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
684ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameter        p_bda - (input) BD_ADDR ->  Address of device to clear
685ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                                              (NULL clears all entries)
686ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
687ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_BUSY if an inquiry, get remote name, or event filter
688ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                          is active, otherwise BTM_SUCCESS
689ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
690ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
691a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_STATUS BTM_ClearInqDb(const RawAddress* p_bda);
6925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
694ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
695ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadInquiryRspTxPower
696ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
697ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This command will read the inquiry Transmit Power level used
698ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  to transmit the FHS and EIR data packets.
6999ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  This can be used directly in the Tx Power Level EIR data
7009ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  type.
701ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
702ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if successful
703ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
704ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
705911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_ReadInquiryRspTxPower(tBTM_CMPL_CB* p_cb);
7065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
708ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *  ACL CHANNEL MANAGEMENT FUNCTIONS
709ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ****************************************************************************/
710ee96a3c60fca590d38025925c072d264e06493c4Myles Watson/*******************************************************************************
711ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
712ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetLinkPolicy
713ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
714ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Create and send HCI "Write Policy Set" command
715ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
716ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_CMD_STARTED if successfully initiated, otherwise error
717ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
718ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
719a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_STATUS BTM_SetLinkPolicy(const RawAddress& remote_bda,
720c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski                                     uint16_t* settings);
7215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
723ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
724ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetDefaultLinkPolicy
725ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
726ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Set the default value for HCI "Write Policy Set" command
727ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  to use when an ACL link is created.
728ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
729ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          void
730ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
731ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
732911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern void BTM_SetDefaultLinkPolicy(uint16_t settings);
733ee96a3c60fca590d38025925c072d264e06493c4Myles Watson
7345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
735ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
736ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetDefaultLinkSuperTout
737ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
7389ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Description      Set the default value for HCI "Write Link Supervision
7399ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  Timeout" command to use when an ACL link is created.
740ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
741ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          void
742ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
743ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
744911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern void BTM_SetDefaultLinkSuperTout(uint16_t timeout);
7455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
747ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
748ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetLinkSuperTout
749ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
750ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Create and send HCI "Write Link Supervision Timeout" command
751ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
752ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_CMD_STARTED if successfully initiated, otherwise error
753ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
754ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
755a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_STATUS BTM_SetLinkSuperTout(const RawAddress& remote_bda,
756c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski                                        uint16_t timeout);
757ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/*******************************************************************************
758ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
759ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_GetLinkSuperTout
760ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
761ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Read the link supervision timeout value of the connection
762ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
763ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          status of the operation
764ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
765ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
766a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_STATUS BTM_GetLinkSuperTout(const RawAddress& remote_bda,
767911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                        uint16_t* p_timeout);
7685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
770ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
771ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_IsAclConnectionUp
772ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
773ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to check if an ACL connection exists
774ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  to a specific remote BD Address.
775ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
776ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          true if connection is up, else false.
777ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
778ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
779a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern bool BTM_IsAclConnectionUp(const RawAddress& remote_bda,
780c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski                                  tBT_TRANSPORT transport);
7815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
783ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
784ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_GetRole
785ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
786ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to get the role of the local device
787ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  for the ACL connection with the specified remote device
788ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
789ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if connection exists.
790ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_UNKNOWN_ADDR if no active link with bd addr specified
791ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
792ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
793a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_STATUS BTM_GetRole(const RawAddress& remote_bd_addr,
794c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski                               uint8_t* p_role);
7955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
797ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
798ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SwitchRole
799ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
800ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to switch role between master and
801ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  slave.  If role is already set it will do nothing.  If the
802ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  command was initiated, the callback function is called upon
803ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  completion.
804ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
805ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if already in specified role.
806ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_CMD_STARTED if command issued to controller.
8079ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  BTM_NO_RESOURCES if memory couldn't be allocated to issue
8089ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                   the command
809ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_UNKNOWN_ADDR if no active link with bd addr specified
8109ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  BTM_MODE_UNSUPPORTED if the local device does not support
8119ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                       role switching
812ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
813ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
814a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_STATUS BTM_SwitchRole(const RawAddress& remote_bd_addr,
815c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski                                  uint8_t new_role, tBTM_CMPL_CB* p_cb);
8165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
818ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
819ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadRSSI
820ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
821ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to read the link policy settings.
8229ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  The address of link policy results are returned in the
823c7bf47cefc5446e99ff12b6cae45a0984e0b9999Pavlin Radoslavov *                  callback. (tBTM_RSSI_RESULT)
824ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
825ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_CMD_STARTED if command issued to controller.
8269ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  BTM_NO_RESOURCES if memory couldn't be allocated to issue
8279ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                   the command
828ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_UNKNOWN_ADDR if no active link with bd addr specified
829ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_BUSY if command is already in progress
830ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
831ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
832a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_STATUS BTM_ReadRSSI(const RawAddress& remote_bda,
833c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski                                tBTM_CMPL_CB* p_cb);
8345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
836ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
8376ab749f3cfd9c7660bb245764fcd01dcff51dbe9Pavlin Radoslavov * Function         BTM_ReadFailedContactCounter
8386ab749f3cfd9c7660bb245764fcd01dcff51dbe9Pavlin Radoslavov *
8396ab749f3cfd9c7660bb245764fcd01dcff51dbe9Pavlin Radoslavov * Description      This function is called to read the failed contact counter.
8406ab749f3cfd9c7660bb245764fcd01dcff51dbe9Pavlin Radoslavov *                  The result is returned in the callback.
8416ab749f3cfd9c7660bb245764fcd01dcff51dbe9Pavlin Radoslavov *                  (tBTM_FAILED_CONTACT_COUNTER_RESULT)
8426ab749f3cfd9c7660bb245764fcd01dcff51dbe9Pavlin Radoslavov *
8436ab749f3cfd9c7660bb245764fcd01dcff51dbe9Pavlin Radoslavov * Returns          BTM_CMD_STARTED if command issued to controller.
8446ab749f3cfd9c7660bb245764fcd01dcff51dbe9Pavlin Radoslavov *                  BTM_NO_RESOURCES if memory couldn't be allocated to issue
8456ab749f3cfd9c7660bb245764fcd01dcff51dbe9Pavlin Radoslavov *                                   the command
8466ab749f3cfd9c7660bb245764fcd01dcff51dbe9Pavlin Radoslavov *                  BTM_UNKNOWN_ADDR if no active link with bd addr specified
8476ab749f3cfd9c7660bb245764fcd01dcff51dbe9Pavlin Radoslavov *                  BTM_BUSY if command is already in progress
8486ab749f3cfd9c7660bb245764fcd01dcff51dbe9Pavlin Radoslavov *
8496ab749f3cfd9c7660bb245764fcd01dcff51dbe9Pavlin Radoslavov ******************************************************************************/
8506ab749f3cfd9c7660bb245764fcd01dcff51dbe9Pavlin Radoslavovextern tBTM_STATUS BTM_ReadFailedContactCounter(const RawAddress& remote_bda,
8516ab749f3cfd9c7660bb245764fcd01dcff51dbe9Pavlin Radoslavov                                                tBTM_CMPL_CB* p_cb);
8526ab749f3cfd9c7660bb245764fcd01dcff51dbe9Pavlin Radoslavov
8536ab749f3cfd9c7660bb245764fcd01dcff51dbe9Pavlin Radoslavov/*******************************************************************************
8546ab749f3cfd9c7660bb245764fcd01dcff51dbe9Pavlin Radoslavov *
855b8568ae0e198a84225c9fdef1e715dc4d45565c9Pavlin Radoslavov * Function         BTM_ReadAutomaticFlushTimeout
856b8568ae0e198a84225c9fdef1e715dc4d45565c9Pavlin Radoslavov *
857b8568ae0e198a84225c9fdef1e715dc4d45565c9Pavlin Radoslavov * Description      This function is called to read the automatic flush timeout.
858b8568ae0e198a84225c9fdef1e715dc4d45565c9Pavlin Radoslavov *                  The result is returned in the callback.
859b8568ae0e198a84225c9fdef1e715dc4d45565c9Pavlin Radoslavov *                  (tBTM_AUTOMATIC_FLUSH_TIMEOUT_RESULT)
860b8568ae0e198a84225c9fdef1e715dc4d45565c9Pavlin Radoslavov *
861b8568ae0e198a84225c9fdef1e715dc4d45565c9Pavlin Radoslavov * Returns          BTM_CMD_STARTED if command issued to controller.
862b8568ae0e198a84225c9fdef1e715dc4d45565c9Pavlin Radoslavov *                  BTM_NO_RESOURCES if memory couldn't be allocated to issue
863b8568ae0e198a84225c9fdef1e715dc4d45565c9Pavlin Radoslavov *                                   the command
864b8568ae0e198a84225c9fdef1e715dc4d45565c9Pavlin Radoslavov *                  BTM_UNKNOWN_ADDR if no active link with bd addr specified
865b8568ae0e198a84225c9fdef1e715dc4d45565c9Pavlin Radoslavov *                  BTM_BUSY if command is already in progress
866b8568ae0e198a84225c9fdef1e715dc4d45565c9Pavlin Radoslavov *
867b8568ae0e198a84225c9fdef1e715dc4d45565c9Pavlin Radoslavov ******************************************************************************/
868b8568ae0e198a84225c9fdef1e715dc4d45565c9Pavlin Radoslavovextern tBTM_STATUS BTM_ReadAutomaticFlushTimeout(const RawAddress& remote_bda,
869b8568ae0e198a84225c9fdef1e715dc4d45565c9Pavlin Radoslavov                                                 tBTM_CMPL_CB* p_cb);
870b8568ae0e198a84225c9fdef1e715dc4d45565c9Pavlin Radoslavov
871b8568ae0e198a84225c9fdef1e715dc4d45565c9Pavlin Radoslavov/*******************************************************************************
872b8568ae0e198a84225c9fdef1e715dc4d45565c9Pavlin Radoslavov *
873ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadTxPower
874ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
875ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to read the current connection
876ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  TX power of the connection. The TX power level results
877ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  are returned in the callback.
878c7bf47cefc5446e99ff12b6cae45a0984e0b9999Pavlin Radoslavov *                  (tBTM_RSSI_RESULT)
879ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
880ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_CMD_STARTED if command issued to controller.
8819ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  BTM_NO_RESOURCES if memory couldn't be allocated to issue
8829ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                   the command
883ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_UNKNOWN_ADDR if no active link with bd addr specified
884ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_BUSY if command is already in progress
885ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
886ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
887a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_STATUS BTM_ReadTxPower(const RawAddress& remote_bda,
888c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski                                   tBT_TRANSPORT transport, tBTM_CMPL_CB* p_cb);
8895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
891ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
892ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadLinkQuality
893ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
894ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to read the link quality.
895ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  The value of the link quality is returned in the callback.
896c7bf47cefc5446e99ff12b6cae45a0984e0b9999Pavlin Radoslavov *                  (tBTM_LINK_QUALITY_RESULT)
897ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
898ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_CMD_STARTED if command issued to controller.
8999ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  BTM_NO_RESOURCES if memory couldn't be allocated to issue
9009ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                   the command
901ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_UNKNOWN_ADDR if no active link with bd addr specified
902ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_BUSY if command is already in progress
903ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
904ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
905a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_STATUS BTM_ReadLinkQuality(const RawAddress& remote_bda,
906c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski                                       tBTM_CMPL_CB* p_cb);
9075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
909ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
910ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_RegBusyLevelNotif
911ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
912ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to register a callback to receive
913ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  busy level change events.
914ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
915ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if successfully registered, otherwise error
916ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
917ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
918911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_RegBusyLevelNotif(tBTM_BL_CHANGE_CB* p_cb,
919911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                         uint8_t* p_level,
920911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                         tBTM_BL_EVENT_MASK evt_mask);
9215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
923ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
924ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_AclRegisterForChanges
925ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
926ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to register a callback to receive
927ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  ACL database change events, i.e. new connection or removed.
928ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
929ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if successfully initiated, otherwise error
930ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
931ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
932911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_AclRegisterForChanges(tBTM_ACL_DB_CHANGE_CB* p_cb);
9335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
935ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
936ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_GetNumAclLinks
937ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
938ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to count the number of
939ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  ACL links that are active.
940ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
941ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          uint16_t Number of active ACL links
942ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
943ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
944911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint16_t BTM_GetNumAclLinks(void);
9455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
947ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
948ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetQoS
949ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
950ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to setup QoS
951ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
952ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_CMD_STARTED if successfully initiated, otherwise error
953ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
954ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
955a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_STATUS BTM_SetQoS(const RawAddress& bd, FLOW_SPEC* p_flow,
956911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                              tBTM_CMPL_CB* p_cb);
9575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
959ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *  (e)SCO CHANNEL MANAGEMENT FUNCTIONS
960ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ****************************************************************************/
961ee96a3c60fca590d38025925c072d264e06493c4Myles Watson/*******************************************************************************
962ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
963ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_CreateSco
964ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
965ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to create an SCO connection. If the
966ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  "is_orig" flag is true, the connection will be originated,
967ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  otherwise BTM will wait for the other side to connect.
968ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
969ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_UNKNOWN_ADDR if the ACL connection is not up
970ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_BUSY         if another SCO being set up to
971ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                                   the same BD address
972ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_NO_RESOURCES if the max SCO limit has been reached
973ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_CMD_STARTED  if the connection establishment is started.
974ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                                   In this case, "*p_sco_inx" is filled in
975ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                                   with the sco index used for the connection.
976ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
977ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
978a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_STATUS BTM_CreateSco(const RawAddress* remote_bda, bool is_orig,
979911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                 uint16_t pkt_types, uint16_t* p_sco_inx,
980911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                 tBTM_SCO_CB* p_conn_cb,
981911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                 tBTM_SCO_CB* p_disc_cb);
9825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
984ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
985ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_RemoveSco
986ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
987ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to remove a specific SCO connection.
988ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
989ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_CMD_STARTED if successfully initiated, otherwise error
990ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
991ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
992911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_RemoveSco(uint16_t sco_inx);
9935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
995ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
996ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetScoPacketTypes
997ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
998ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to set the packet types used for
999ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  a specific SCO connection,
1000ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1001ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters       pkt_types - One or more of the following
1002ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_SCO_PKT_TYPES_MASK_HV1
1003ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_SCO_PKT_TYPES_MASK_HV2
1004ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_SCO_PKT_TYPES_MASK_HV3
1005ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_SCO_PKT_TYPES_MASK_EV3
1006ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_SCO_PKT_TYPES_MASK_EV4
1007ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_SCO_PKT_TYPES_MASK_EV5
1008ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1009ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_SCO_LINK_ALL_MASK   - enables all supported types
1010ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1011ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_CMD_STARTED if successfully initiated, otherwise error
1012ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1013ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1014911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_SetScoPacketTypes(uint16_t sco_inx, uint16_t pkt_types);
10155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1017ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1018ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadScoPacketTypes
1019ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1020ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is read the packet types used for a specific
1021ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  SCO connection.
1022ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1023ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns       One or more of the following (bitmask)
1024ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_SCO_PKT_TYPES_MASK_HV1
1025ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_SCO_PKT_TYPES_MASK_HV2
1026ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_SCO_PKT_TYPES_MASK_HV3
1027ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_SCO_PKT_TYPES_MASK_EV3
1028ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_SCO_PKT_TYPES_MASK_EV4
1029ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_SCO_PKT_TYPES_MASK_EV5
1030ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1031ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          packet types supported for the connection
1032ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1033ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1034911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint16_t BTM_ReadScoPacketTypes(uint16_t sco_inx);
10355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1037ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1038ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadDeviceScoPacketTypes
1039ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1040ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is read the SCO packet types that
1041ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  the device supports.
1042ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1043ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          packet types supported by the device.
1044ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1045ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1046911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint16_t BTM_ReadDeviceScoPacketTypes(void);
10475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1049ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1050ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadScoHandle
1051ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
10529ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Description      Reead the HCI handle used for a specific SCO connection,
1053ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1054ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          handle for the connection, or 0xFFFF if invalid SCO index.
1055ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1056ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1057911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint16_t BTM_ReadScoHandle(uint16_t sco_inx);
10585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1060ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1061ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadScoBdAddr
1062ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1063ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is read the remote BD Address for a specific
1064ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  SCO connection,
1065ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1066ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          pointer to BD address or NULL if not known
1067ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1068ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1069a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern const RawAddress* BTM_ReadScoBdAddr(uint16_t sco_inx);
10705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1072ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1073ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadScoDiscReason
1074ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1075ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is returns the reason why an (e)SCO connection
1076ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  has been removed. It contains the value until read, or until
1077ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  another (e)SCO connection has disconnected.
1078ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1079ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          HCI reason or BTM_INVALID_SCO_DISC_REASON if not set.
1080ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1081ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1082911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint16_t BTM_ReadScoDiscReason(void);
10835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1085ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1086ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetEScoMode
1087ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1088ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function sets up the negotiated parameters for SCO or
1089ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  eSCO, and sets as the default mode used for calls to
1090ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_CreateSco.  It can be called only when there are no
1091ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  active (e)SCO links.
1092ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1093ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if the successful.
1094ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_BUSY if there are one or more active (e)SCO links.
1095ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1096ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
109757f6508cf7b22788fa2e7a739cec241b785718fbMudumba Ananthextern tBTM_STATUS BTM_SetEScoMode(enh_esco_params_t* p_parms);
10985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1100ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1101ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetWBSCodec
1102ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1103ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function sends command to the controller to setup
1104ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  WBS codec for the upcoming eSCO connection.
1105ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1106ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS.
1107ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1108ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1109ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1110911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_SetWBSCodec(tBTM_SCO_CODEC_TYPE codec_type);
11115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1113ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1114ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_RegForEScoEvts
1115ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1116ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function registers a SCO event callback with the
1117ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  specified instance.  It should be used to received
1118ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  connection indication events and change of link parameter
1119ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  events.
1120ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1121ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if the successful.
1122ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_ILLEGAL_VALUE if there is an illegal sco_inx
1123ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1124ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1125911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_RegForEScoEvts(uint16_t sco_inx,
1126911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                      tBTM_ESCO_CBACK* p_esco_cback);
11275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1129ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1130ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadEScoLinkParms
1131ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1132ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function returns the current eSCO link parameters for
11339ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  the specified handle.  This can be called anytime a
11349ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  connection is active, but is typically called after
11359ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  receiving the SCO opened callback.
1136ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1137ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  Note: If called over a 1.1 controller, only the packet types
1138ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                        field has meaning.
1139ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  Note: If the upper layer doesn't know the current sco index,
11409ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  BTM_FIRST_ACTIVE_SCO_INDEX can be used as the first
11419ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  parameter to find the first active SCO index
1142ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1143ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if returned data is valid connection.
1144ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_ILLEGAL_VALUE if no connection for specified sco_inx.
1145ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_MODE_UNSUPPORTED if local controller does not support
1146ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                      1.2 specification.
1147ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1148ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1149911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_ReadEScoLinkParms(uint16_t sco_inx,
1150911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                         tBTM_ESCO_DATA* p_parms);
11515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1153ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1154ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ChangeEScoLinkParms
1155ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1156ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function requests renegotiation of the parameters on
1157ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  the current eSCO Link.  If any of the changes are accepted
1158ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  by the controllers, the BTM_ESCO_CHG_EVT event is sent in
1159ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  the tBTM_ESCO_CBACK function with the current settings of
1160ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  the link. The callback is registered through the call to
1161ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_SetEScoMode.
1162ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1163ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1164ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_CMD_STARTED if command is successfully initiated.
1165ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_ILLEGAL_VALUE if no connection for specified sco_inx.
1166ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_NO_RESOURCES - not enough resources to initiate command.
1167ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_MODE_UNSUPPORTED if local controller does not support
1168ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                      1.2 specification.
1169ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1170ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1171911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_ChangeEScoLinkParms(uint16_t sco_inx,
1172911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                           tBTM_CHG_ESCO_PARAMS* p_parms);
11735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1175ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1176ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_EScoConnRsp
1177ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1178ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called upon receipt of an (e)SCO connection
1179ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  request event (BTM_ESCO_CONN_REQ_EVT) to accept or reject
1180ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  the request. Parameters used to negotiate eSCO links.
1181ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  If p_parms is NULL, then values set through BTM_SetEScoMode
1182ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  are used.
1183ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  If the link type of the incoming request is SCO, then only
1184ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  the tx_bw, max_latency, content format, and packet_types are
1185ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  valid.  The hci_status parameter should be
1186ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  ([0x0] to accept, [0x0d..0x0f] to reject)
1187ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1188ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1189ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          void
1190ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1191ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1192911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern void BTM_EScoConnRsp(uint16_t sco_inx, uint8_t hci_status,
119357f6508cf7b22788fa2e7a739cec241b785718fbMudumba Ananth                            enh_esco_params_t* p_parms);
11945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1196ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1197ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_GetNumScoLinks
1198ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1199ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function returns the number of active SCO links.
1200ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1201ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          uint8_t
1202ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1203ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1204911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint8_t BTM_GetNumScoLinks(void);
12055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
1207ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *  SECURITY MANAGEMENT FUNCTIONS
1208ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ****************************************************************************/
1209ee96a3c60fca590d38025925c072d264e06493c4Myles Watson/*******************************************************************************
1210ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1211ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SecRegister
1212ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1213ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Application manager calls this function to register for
12149ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  security services.  There can be one and only one
12159ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  application saving link keys.  BTM allows only first
12169ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  registration.
1217ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1218ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          true if registered OK, else false
1219ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1220ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
12216ef9190de8be01a36a3e409e8253624326bf30eaMyles Watsonextern bool BTM_SecRegister(const tBTM_APPL_INFO* p_cb_info);
12225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1223877123f5b9df90e7a71ea7b15997c521229decc1Satya Calloji/*******************************************************************************
1224ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1225ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SecRegisterLinkKeyNotificationCallback
1226ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1227ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Profiles can register to be notified when a new Link Key
1228ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  is generated per connection.
1229ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1230ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          true if registered OK, else false
1231ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1232ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1233911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern bool BTM_SecRegisterLinkKeyNotificationCallback(
1234911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson    tBTM_LINK_KEY_CALLBACK* p_callback);
12355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1237ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1238ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SecAddRmtNameNotifyCallback
1239ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1240ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Profiles can register to be notified when name of the
12419ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  remote device is resolved (up to
12429ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  BTM_SEC_MAX_RMT_NAME_CALLBACKS).
1243ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1244ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          true if registered OK, else false
1245ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1246ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1247911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern bool BTM_SecAddRmtNameNotifyCallback(tBTM_RMT_NAME_CALLBACK* p_callback);
12485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1250ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1251ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SecDeleteRmtNameNotifyCallback
1252ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1253ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      A profile can deregister notification when a new Link Key
1254ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  is generated per connection.
1255ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1256ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          true if OK, else false
1257ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1258ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1259911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern bool BTM_SecDeleteRmtNameNotifyCallback(
1260911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson    tBTM_RMT_NAME_CALLBACK* p_callback);
12615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1263ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1264ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_GetSecurityFlags
1265ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1266ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Get security flags for the device
1267ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1268ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          bool    true or false is device found
1269ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1270ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1271a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern bool BTM_GetSecurityFlags(const RawAddress& bd_addr,
1272c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski                                 uint8_t* p_sec_flags);
12735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1275ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1276ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_GetSecurityFlagsByTransport
1277ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1278ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Get security flags for the device on a particular transport
1279ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1280ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters      bd_addr: BD address of remote device
12819ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  p_sec_flags : Out parameter to be filled with security
12829ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                flags for the connection
12839ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  transport :  Physical transport of the connection
12849ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                               (BR/EDR or LE)
1285ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1286ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          bool    true or false is device found
1287ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1288ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1289a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern bool BTM_GetSecurityFlagsByTransport(const RawAddress& bd_addr,
1290911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                            uint8_t* p_sec_flags,
1291911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                            tBT_TRANSPORT transport);
12927fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
12937fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*******************************************************************************
1294ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1295ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadTrustedMask
1296ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1297ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Get trusted mask for the device
1298ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1299ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          NULL, if the device record is not found.
1300ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  otherwise, the trusted mask
1301ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1302ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1303a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern uint32_t* BTM_ReadTrustedMask(const RawAddress& bd_addr);
13045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1306ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1307ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetPinType
1308ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1309ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Set PIN type for the device.
1310ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1311ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          void
1312ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1313ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1314911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern void BTM_SetPinType(uint8_t pin_type, PIN_CODE pin_code,
1315911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                           uint8_t pin_code_len);
13165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1318ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1319ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetPairableMode
1320ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1321ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Enable or disable pairing
1322ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1323ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters       allow_pairing - (true or false) whether or not the device
1324ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                      allows pairing.
1325ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  connect_only_paired - (true or false) whether or not to
1326ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                      only allow paired devices to connect.
1327ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1328ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          void
1329ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1330ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1331911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern void BTM_SetPairableMode(bool allow_pairing, bool connect_only_paired);
13325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1334ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1335ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetSecureConnectionsOnly
1336ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
13379ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Description      Enable or disable default treatment for Mode 4 Level 0
13389ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  services
1339ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1340ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameter        secure_connections_only_mode - (true or false)
13419ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  true means that the device should treat Mode 4 Level 0
13429ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  services as services of other levels.
13439ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  false means that the device should provide default
13449ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  treatment for Mode 4 Level 0 services.
1345ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1346ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          void
1347ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1348ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1349911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern void BTM_SetSecureConnectionsOnly(bool secure_connections_only_mode);
1350899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth
1351899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth/*******************************************************************************
1352ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1353ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetSecurityLevel
1354ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1355ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Register service security level with Security Manager.  Each
1356ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  service must register its requirements regardless of the
13579ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  security level that is used.  This API is called once for
13589ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  originators and again for acceptors of connections.
1359ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1360ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          true if registered OK, else false
1361ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1362ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1363911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern bool BTM_SetSecurityLevel(bool is_originator, const char* p_name,
1364911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                 uint8_t service_id, uint16_t sec_level,
1365911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                 uint16_t psm, uint32_t mx_proto_id,
1366911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                 uint32_t mx_chan_id);
13675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1369ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1370ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetOutService
1371ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1372ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to set the service for
1373ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  outgoing connection.
1374ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1375ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          void
1376ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1377ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1378a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTM_SetOutService(const RawAddress& bd_addr, uint8_t service_id,
1379911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                              uint32_t mx_chan_id);
13805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1382ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1383ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SecClrService
1384ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
13859ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Description      Removes specified service record(s) from the security
13869ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  database. All service records with the specified name are
13879ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  removed. Typically used only by devices with limited RAM
13889ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  so that it can reuse an old security service record.
1389ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1390ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          Number of records that were freed.
1391ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1392ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1393911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint8_t BTM_SecClrService(uint8_t service_id);
13945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1396ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1397ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SecAddDevice
1398ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1399ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Add/modify device.  This function will be normally called
1400ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  during host startup to restore all required information
1401ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  stored in the NVRAM.
14029ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  dev_class, bd_name, link_key, and features are NULL if
14039ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  unknown
1404ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1405ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          true if added OK, else false
1406ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1407ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1408a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern bool BTM_SecAddDevice(const RawAddress& bd_addr, DEV_CLASS dev_class,
1409911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                             BD_NAME bd_name, uint8_t* features,
1410911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                             uint32_t trusted_mask[], LINK_KEY link_key,
1411911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                             uint8_t key_type, tBTM_IO_CAP io_cap,
1412911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                             uint8_t pin_length);
14135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1415ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1416ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SecDeleteDevice
1417ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1418ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Free resources associated with the device.
1419ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1420ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          true if rmoved OK, false if not found
1421ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1422ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1423a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern bool BTM_SecDeleteDevice(const RawAddress& bd_addr);
14245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1425415d1120561ba38c7cd00f0e41d8fb69cda97601Andre Eisenbach/*******************************************************************************
1426ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1427ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SecClearSecurityFlags
1428ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1429ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Reset the security flags (mark as not-paired) for a given
1430ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  remove device.
1431ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1432ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1433a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTM_SecClearSecurityFlags(const RawAddress& bd_addr);
14345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1436ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1437ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SecGetDeviceLinkKey
1438ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1439ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to obtain link key for the device
1440ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  it returns BTM_SUCCESS if link key is available, or
1441ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_UNKNOWN_ADDR if Security Manager does not know about
1442ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  the device or device record does not contain link key info
1443ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1444ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if successful, otherwise error code
1445ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1446ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1447a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_STATUS BTM_SecGetDeviceLinkKey(const RawAddress& bd_addr,
1448c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski                                           LINK_KEY link_key);
14495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1451ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1452ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SecGetDeviceLinkKeyType
1453ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1454ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to obtain link key type for the
1455ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  device.
1456ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  it returns BTM_SUCCESS if link key is available, or
1457ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_UNKNOWN_ADDR if Security Manager does not know about
1458ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  the device or device record does not contain link key info
1459ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1460ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_LKEY_TYPE_IGNORE if link key is unknown, link type
1461ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  otherwise.
1462ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1463ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1464c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowskiextern tBTM_LINK_KEY_TYPE BTM_SecGetDeviceLinkKeyType(
1465a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowski    const RawAddress& bd_addr);
1466444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji
1467444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/*******************************************************************************
1468ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1469ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_PINCodeReply
1470ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1471ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called after Security Manager submitted
1472ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  PIN code request to the UI.
1473ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
14749ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Parameters:      bd_addr      - Address of the device for which PIN was
14759ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                 requested
14769ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  res          - result of the operation BTM_SUCCESS if
14779ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                 success
1478ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  pin_len      - length in bytes of the PIN Code
1479ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  p_pin        - pointer to array with the PIN Code
14809ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  trusted_mask - bitwise OR of trusted services
14819ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                 (array of uint32_t)
1482ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1483ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          void
1484ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1485ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1486a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTM_PINCodeReply(const RawAddress& bd_addr, uint8_t res,
1487c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski                             uint8_t pin_len, uint8_t* p_pin,
1488c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski                             uint32_t trusted_mask[]);
14895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1491ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1492ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SecBond
1493ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1494ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to perform bonding with peer device.
1495ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1496ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters:      bd_addr      - Address of the device to bond
1497ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  pin_len      - length in bytes of the PIN Code
1498ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  p_pin        - pointer to array with the PIN Code
14999ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  trusted_mask - bitwise OR of trusted services
15009ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                 (array of uint32_t)
1501ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_CMD_STARTED if successfully initiated, otherwise error
1502ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1503ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1504a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_STATUS BTM_SecBond(const RawAddress& bd_addr, uint8_t pin_len,
1505c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski                               uint8_t* p_pin, uint32_t trusted_mask[]);
15067fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
15077fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*******************************************************************************
1508ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1509ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SecBondByTransport
1510ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
15119ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Description      Perform bonding by designated transport
1512ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1513ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters:      bd_addr      - Address of the device to bond
1514ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  pin_len      - length in bytes of the PIN Code
1515ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  p_pin        - pointer to array with the PIN Code
15169ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  trusted_mask - bitwise OR of trusted services
15179ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                 (array of uint32_t)
15189ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  transport :  Physical transport to use for bonding
15199ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                               (BR/EDR or LE)
1520ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1521ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_CMD_STARTED if successfully initiated, otherwise error
1522ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1523ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1524a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_STATUS BTM_SecBondByTransport(const RawAddress& bd_addr,
1525911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                          tBT_TRANSPORT transport,
1526911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                          uint8_t pin_len, uint8_t* p_pin,
1527911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                          uint32_t trusted_mask[]);
15285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1530ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1531ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SecBondCancel
1532ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1533ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to cancel ongoing bonding process
1534ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  with peer device.
1535ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1536ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_CMD_STARTED if successfully initiated, otherwise error
1537ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1538ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1539a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_STATUS BTM_SecBondCancel(const RawAddress& bd_addr);
15405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1542ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1543ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetEncryption
1544ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1545ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to ensure that connection is
1546ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  encrypted.  Should be called only on an open connection.
1547ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  Typically only needed for connections that first want to
1548ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  bring up unencrypted links, then later encrypt them.
1549ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1550ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters:      bd_addr       - Address of the peer device
1551ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  transport     - Link transport
1552ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  p_callback    - Pointer to callback function called if
1553ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                                  this function returns PENDING after required
15549ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                  procedures are completed.  Can be set to
15559ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                  NULL if status is not desired.
15569ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  p_ref_data    - pointer to any data the caller wishes to
15579ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                  receive in the callback function upon
15589ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                  completion.
1559ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                                  can be set to NULL if not used.
1560ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  sec_act       - LE security action, unused for BR/EDR
1561ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1562ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS   - already encrypted
1563ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_PENDING   - command will be returned in the callback
1564ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_WRONG_MODE- connection not up.
1565ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_BUSY      - security procedures are currently active
1566ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_MODE_UNSUPPORTED - if security manager not linked in.
1567ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1568ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1569a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_STATUS BTM_SetEncryption(const RawAddress& bd_addr,
1570c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski                                     tBT_TRANSPORT transport,
1571911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                     tBTM_SEC_CBACK* p_callback,
1572911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                     void* p_ref_data,
1573911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                     tBTM_BLE_SEC_ACT sec_act);
15745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1576ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1577ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ConfirmReqReply
1578ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1579ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to confirm the numeric value for
1580ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  Simple Pairing in response to BTM_SP_CFM_REQ_EVT
1581ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
15829ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Parameters:      res           - result of the operation BTM_SUCCESS if
15839ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                  success
1584ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  bd_addr       - Address of the peer device
1585ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1586ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1587a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTM_ConfirmReqReply(tBTM_STATUS res, const RawAddress& bd_addr);
15885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1590ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1591ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_PasskeyReqReply
1592ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1593ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to provide the passkey for
1594ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  Simple Pairing in response to BTM_SP_KEY_REQ_EVT
1595ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
15969ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Parameters:      res           - result of the operation BTM_SUCCESS if
15979ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                  success
1598ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  bd_addr       - Address of the peer device
15999ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  passkey       - numeric value in the range of
16009ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                  0 - 999999(0xF423F).
1601ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1602ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1603a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTM_PasskeyReqReply(tBTM_STATUS res, const RawAddress& bd_addr,
1604911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                uint32_t passkey);
16055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1607ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1608ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SendKeypressNotif
1609ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1610ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is used during the passkey entry model
1611ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  by a device with KeyboardOnly IO capabilities
1612ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  (very likely to be a HID Device).
16139ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  It is called by a HID Device to inform the remote device
16149ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  when a key has been entered or erased.
1615ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1616ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters:      bd_addr - Address of the peer device
1617ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  type - notification type
1618ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1619ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1620a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTM_SendKeypressNotif(const RawAddress& bd_addr,
1621c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski                                  tBTM_SP_KEY_TYPE type);
16225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1624ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1625ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_IoCapRsp
1626ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1627ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called in response to BTM_SP_IO_REQ_EVT
16289ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  When the event data io_req.oob_data is set to
16299ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  BTM_OOB_UNKNOWN by the tBTM_SP_CALLBACK implementation, this
16309ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  function is called to provide the actual response
1631ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1632ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters:      bd_addr - Address of the peer device
1633ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  io_cap  - The IO capability of local device.
1634ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  oob     - BTM_OOB_NONE or BTM_OOB_PRESENT.
1635ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  auth_req- MITM protection required or not.
1636ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1637ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1638a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTM_IoCapRsp(const RawAddress& bd_addr, tBTM_IO_CAP io_cap,
1639c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski                         tBTM_OOB_DATA oob, tBTM_AUTH_REQ auth_req);
16405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1642ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1643ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadLocalOobData
1644ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1645ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to read the local OOB data from
1646ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  LM
1647ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1648ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1649b6ab9b3af6b8793ff781e0359a78611726ab2300Jakub Pawlowskiextern void BTM_ReadLocalOobData(void);
16505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1652ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1653ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_RemoteOobDataReply
1654ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1655ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to provide the remote OOB data for
1656ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  Simple Pairing in response to BTM_SP_RMT_OOB_EVT
1657ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1658ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters:      bd_addr     - Address of the peer device
1659ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  c           - simple pairing Hash C.
1660ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  r           - simple pairing Randomizer  C.
1661ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1662ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1663a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern void BTM_RemoteOobDataReply(tBTM_STATUS res, const RawAddress& bd_addr,
166424933b5b1a06274c47133debac5251a97128a267June R. Tate-Gans                                   BT_OCTET16 c, BT_OCTET16 r);
16655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1667ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1668ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_BuildOobData
1669ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1670ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to build the OOB data payload to
1671ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  be sent over OOB (non-Bluetooth) link
1672ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1673ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters:      p_data  - the location for OOB data
1674ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  max_len - p_data size.
1675ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  c       - simple pairing Hash C.
1676ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  r       - simple pairing Randomizer  C.
1677ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  name_len- 0, local device name would not be included.
1678ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                            otherwise, the local device name is included for
1679ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                            up to this specified length
1680ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1681ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          Number of bytes in p_data.
1682ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1683ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1684911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint16_t BTM_BuildOobData(uint8_t* p_data, uint16_t max_len,
1685911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                 BT_OCTET16 c, BT_OCTET16 r, uint8_t name_len);
16865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1688ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1689ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_BothEndsSupportSecureConnections
1690ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
16919ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Description      This function is called to check if both the local device
16929ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  and the peer device specified by bd_addr support BR/EDR
16939ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  Secure Connections.
1694ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1695ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters:      bd_addr - address of the peer
1696ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
16979ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Returns          true if BR/EDR Secure Connections are supported by both
16989ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  local and the remote device.
1699ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  else false.
1700ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1701ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1702a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern bool BTM_BothEndsSupportSecureConnections(const RawAddress& bd_addr);
1703899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth
1704899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth/*******************************************************************************
1705ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1706ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_PeerSupportsSecureConnections
1707ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1708ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to check if the peer supports
1709ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BR/EDR Secure Connections.
1710ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1711ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters:      bd_addr - address of the peer
1712ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1713ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          true if BR/EDR Secure Connections are supported by the peer,
1714ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  else false.
1715ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1716ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1717a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern bool BTM_PeerSupportsSecureConnections(const RawAddress& bd_addr);
1718444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji
1719444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/*******************************************************************************
1720ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1721ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadOobData
1722ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1723ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to parse the OOB data payload
1724ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  received over OOB (non-Bluetooth) link
1725ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1726ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters:      p_data  - the location for OOB data
1727ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  eir_tag - The associated EIR tag to read the data.
1728ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  *p_len(output) - the length of the data with the given tag.
1729ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1730ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          the beginning of the data with the given tag.
1731ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  NULL, if the tag is not found.
1732ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1733ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1734911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint8_t* BTM_ReadOobData(uint8_t* p_data, uint8_t eir_tag,
1735911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                uint8_t* p_len);
17365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1738ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1739ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SecReadDevName
1740ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1741ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Looks for the device name in the security database for the
1742ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  specified BD address.
1743ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1744ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          Pointer to the name or NULL
1745ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1746ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1747a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern char* BTM_SecReadDevName(const RawAddress& bd_addr);
17485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
1750ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *  POWER MANAGEMENT FUNCTIONS
1751ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ****************************************************************************/
1752ee96a3c60fca590d38025925c072d264e06493c4Myles Watson/*******************************************************************************
1753ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1754ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_PmRegister
1755ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1756ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      register or deregister with power manager
1757ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1758ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if successful,
1759ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_NO_RESOURCES if no room to hold registration
1760ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_ILLEGAL_VALUE
1761ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1762ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1763911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_PmRegister(uint8_t mask, uint8_t* p_pm_id,
1764911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                  tBTM_PM_STATUS_CBACK* p_cb);
17655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1767ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1768ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetPowerMode
1769ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1770ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      store the mode in control block or
1771ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  alter ACL connection behavior.
1772ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1773ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if successful,
1774ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_UNKNOWN_ADDR if bd addr is not active or bad
1775ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1776ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1777a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_STATUS BTM_SetPowerMode(uint8_t pm_id, const RawAddress& remote_bda,
17786ef9190de8be01a36a3e409e8253624326bf30eaMyles Watson                                    const tBTM_PM_PWR_MD* p_mode);
17795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1781ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1782ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ReadPowerMode
1783ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1784ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This returns the current mode for a specific
1785ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  ACL connection.
1786ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1787ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Input Param      remote_bda - device address of desired ACL connection
1788ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1789ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Output Param     p_mode - address where the current mode is copied into.
1790ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                          BTM_ACL_MODE_NORMAL
1791ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                          BTM_ACL_MODE_HOLD
1792ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                          BTM_ACL_MODE_SNIFF
1793ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                          BTM_ACL_MODE_PARK
1794ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                          (valid only if return code is BTM_SUCCESS)
1795ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1796ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if successful,
1797ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_UNKNOWN_ADDR if bd addr is not active or bad
1798ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1799ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1800a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_STATUS BTM_ReadPowerMode(const RawAddress& remote_bda,
1801c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski                                     tBTM_PM_MODE* p_mode);
18025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1804ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1805ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetSsrParams
1806ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1807ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This sends the given SSR parameters for the given ACL
1808ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  connection if it is in ACTIVE mode.
1809ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1810ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Input Param      remote_bda - device address of desired ACL connection
1811ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  max_lat    - maximum latency (in 0.625ms)(0-0xFFFE)
1812ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  min_rmt_to - minimum remote timeout
1813ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  min_loc_to - minimum local timeout
1814ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1815ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1816ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if the HCI command is issued successful,
1817ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_UNKNOWN_ADDR if bd addr is not active or bad
1818ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_CMD_STORED if the command is stored
1819ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1820ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1821a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_STATUS BTM_SetSsrParams(const RawAddress& remote_bda,
1822c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski                                    uint16_t max_lat, uint16_t min_rmt_to,
1823c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski                                    uint16_t min_loc_to);
18245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1826ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1827ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_GetHCIConnHandle
1828ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
18299ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Description      This function is called to get the handle for an ACL
18309ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  connection to a specific remote BD Address.
1831ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1832ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          the handle of the connection, or 0xFFFF if none.
1833ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1834ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1835a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern uint16_t BTM_GetHCIConnHandle(const RawAddress& remote_bda,
1836911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                     tBT_TRANSPORT transport);
18375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1839ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1840ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_DeleteStoredLinkKey
1841ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1842ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to delete link key for the specified
18439ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  device addresses from the NVRAM storage attached to the
18449ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  Bluetooth controller.
1845ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1846ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters:      bd_addr      - Addresses of the devices
1847ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  p_cb         - Call back function to be called to return
1848ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                                 the results
1849ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1850ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1851a484a888196ddf8bcbf1ad3226d6451bc735a94bJakub Pawlowskiextern tBTM_STATUS BTM_DeleteStoredLinkKey(const RawAddress* bd_addr,
1852c2276b06572ab6fc1f900fbb1f41087e77d47e2aJakub Pawlowski                                           tBTM_CMPL_CB* p_cb);
18535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1855ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1856ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_WriteEIR
1857ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1858ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to write EIR data to controller.
1859ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1860ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters       p_buff - allocated HCI command buffer including extended
1861ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                           inquriry response
1862ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1863ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS  - if successful
1864ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_MODE_UNSUPPORTED - if local device cannot support it
1865ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1866ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1867911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_WriteEIR(BT_HDR* p_buff);
18685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1870ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1871ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_HasEirService
1872ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1873ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to know if UUID in bit map of UUID.
1874ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1875ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters       p_eir_uuid - bit map of UUID list
1876ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  uuid16 - UUID 16-bit
1877ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1878ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          true - if found
1879ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  false - if not found
1880ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1881ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
18826ef9190de8be01a36a3e409e8253624326bf30eaMyles Watsonextern bool BTM_HasEirService(const uint32_t* p_eir_uuid, uint16_t uuid16);
18835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1885ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1886ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_HasInquiryEirService
1887ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
18889ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Description      Return if a UUID is in the bit map of a UUID list.
1889ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1890ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters       p_results - inquiry results
1891ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  uuid16 - UUID 16-bit
1892ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1893ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_EIR_FOUND - if found
18949ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  BTM_EIR_NOT_FOUND - if not found and it is a complete list
1895ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_EIR_UNKNOWN - if not found and it is not complete list
1896ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1897ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1898911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_EIR_SEARCH_RESULT BTM_HasInquiryEirService(
1899911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson    tBTM_INQ_RESULTS* p_results, uint16_t uuid16);
19005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1902ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1903ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_AddEirService
1904ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
19059ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Description      This function is called to add a service in the bit map UUID
19069ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  list.
1907ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1908ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters       p_eir_uuid - bit mask of UUID list for EIR
1909ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  uuid16 - UUID 16-bit
1910ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1911ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          None
1912ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1913ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1914911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern void BTM_AddEirService(uint32_t* p_eir_uuid, uint16_t uuid16);
19155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1917ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1918ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_RemoveEirService
1919ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
19209ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Description      This function is called to remove a service from the bit map
19219ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  UUID list.
1922ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1923ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters       p_eir_uuid - bit mask of UUID list for EIR
1924ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  uuid16 - UUID 16-bit
1925ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1926ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          None
1927ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1928ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1929911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern void BTM_RemoveEirService(uint32_t* p_eir_uuid, uint16_t uuid16);
19305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1932ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1933ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_GetEirSupportedServices
1934ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
19359ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Description      This function is called to get UUID list from bit map UUID
19369ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  list.
1937ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1938ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters       p_eir_uuid - bit mask of UUID list for EIR
1939ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  p - reference of current pointer of EIR
1940ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  max_num_uuid16 - max number of UUID can be written in EIR
1941ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  num_uuid16 - number of UUID have been written in EIR
1942ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1943ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_EIR_MORE_16BITS_UUID_TYPE, if it has more than max
1944ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_EIR_COMPLETE_16BITS_UUID_TYPE, otherwise
1945ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1946ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
1947911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern uint8_t BTM_GetEirSupportedServices(uint32_t* p_eir_uuid, uint8_t** p,
1948911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                           uint8_t max_num_uuid16,
1949911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                           uint8_t* p_num_uuid16);
19505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
1952ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1953ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_GetEirUuidList
1954ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1955ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function parses EIR and returns UUID list.
1956ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1957ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameters       p_eir - EIR
19580595ca0018ac9980d1dd7e192301f8494a01f9cbJakub Pawlowski *                  eirl_len - EIR len
1959819e2ecb84a22d6e03ec9ed67b3260c0dd7e8abaJakub Pawlowski *                  uuid_size - Uuid::kNumBytes16, Uuid::kNumBytes32,
1960819e2ecb84a22d6e03ec9ed67b3260c0dd7e8abaJakub Pawlowski *                              Uuid::kNumBytes128
1961ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  p_num_uuid - return number of UUID in found list
1962ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  p_uuid_list - return UUID 16-bit list
1963ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  max_num_uuid - maximum number of UUID to be returned
1964ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1965ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          0 - if not found
1966ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_EIR_COMPLETE_16BITS_UUID_TYPE
1967ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_EIR_MORE_16BITS_UUID_TYPE
1968ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_EIR_COMPLETE_32BITS_UUID_TYPE
1969ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_EIR_MORE_32BITS_UUID_TYPE
1970ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_EIR_COMPLETE_128BITS_UUID_TYPE
1971ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_EIR_MORE_128BITS_UUID_TYPE
1972ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1973ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
19740595ca0018ac9980d1dd7e192301f8494a01f9cbJakub Pawlowskiextern uint8_t BTM_GetEirUuidList(uint8_t* p_eir, size_t eir_len,
19750595ca0018ac9980d1dd7e192301f8494a01f9cbJakub Pawlowski                                  uint8_t uuid_size, uint8_t* p_num_uuid,
19760595ca0018ac9980d1dd7e192301f8494a01f9cbJakub Pawlowski                                  uint8_t* p_uuid_list, uint8_t max_num_uuid);
19775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*****************************************************************************
1979ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *  SCO OVER HCI
1980ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ****************************************************************************/
1981ee96a3c60fca590d38025925c072d264e06493c4Myles Watson/*******************************************************************************
1982ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1983ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_ConfigScoPath
1984ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1985ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function enable/disable SCO over HCI and registers SCO
1986ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  data callback if SCO over HCI is enabled.
1987ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1988ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Parameter        path: SCO or HCI
1989ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  p_sco_data_cb: callback function or SCO data if path is set
1990ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                                 to transport.
19919ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  p_pcm_param: pointer to the PCM interface parameter. If a
19929ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                               NULL pointer is used, the PCM parameter
19939ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                               maintained in the control block will be used;
19949ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                               otherwise update the control block value.
19959ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  err_data_rpt: Lisbon feature to enable the erronous data
19969ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                report or not.
1997ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
1998ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS if the successful.
1999ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_NO_RESOURCES: no rsource to start the command.
2000ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_ILLEGAL_VALUE: invalid callback function pointer.
20019ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  BTM_CMD_STARTED : Command sent. Waiting for command
20029ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                    complete event.
2003ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
2004ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
2005ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
200657f6508cf7b22788fa2e7a739cec241b785718fbMudumba Ananthextern tBTM_STATUS BTM_ConfigScoPath(esco_data_path_t path,
2007911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                     tBTM_SCO_DATA_CB* p_sco_data_cb,
2008911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                     tBTM_SCO_PCM_PARAM* p_pcm_param,
2009911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                                     bool err_data_rpt);
20105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2012ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
2013ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_WriteScoData
2014ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
20159ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Description      This function write SCO data to a specified instance. The
20169ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  data to be written p_buf needs to carry an offset of
2017ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  HCI_SCO_PREAMBLE_SIZE bytes, and the data length can not
20189ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  exceed BTM_SCO_DATA_SIZE_MAX bytes, whose default value is
20199ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  set to 60 and is configurable. Data longer than the maximum
20209ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  bytes will be truncated.
2021ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
2022ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          BTM_SUCCESS: data write is successful
2023ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_ILLEGAL_VALUE: SCO data contains illegal offset value.
20249ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  BTM_SCO_BAD_LENGTH: SCO data length exceeds the max SCO
20259ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                      packet size.
2026ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *                  BTM_NO_RESOURCES: no resources.
20279ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                  BTM_UNKNOWN_ADDR: unknown SCO connection handle, or SCO is
20289ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                    not routed via HCI.
2029ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
2030ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
2031ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
2032911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern tBTM_STATUS BTM_WriteScoData(uint16_t sco_inx, BT_HDR* p_buf);
20335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2035ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
2036ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_SetARCMode
2037ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
2038ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Send Audio Routing Control command.
2039ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
2040ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          void
2041ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
2042ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
2043911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern void BTM_SetARCMode(uint8_t iface, uint8_t arc_mode,
2044911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson                           tBTM_VSC_CMPL_CB* p_arc_cb);
20455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
2047ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
2048ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_PCM2Setup_Write
2049ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
2050ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      Send PCM2_Setup write command.
2051ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
2052ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Returns          void
2053ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
2054ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
2055911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsonextern void BTM_PCM2Setup_Write(bool clk_master, tBTM_VSC_CMPL_CB* p_arc_cb);
2056e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji
2057e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji/*******************************************************************************
2058ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
2059ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Function         BTM_PM_ReadControllerState
2060ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
2061ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Description      This function is called to obtain the controller state
2062ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
20639ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * Returns          Controller state (BTM_CONTRL_ACTIVE, BTM_CONTRL_SCAN, and
20649ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson *                                    BTM_CONTRL_IDLE)
2065ee96a3c60fca590d38025925c072d264e06493c4Myles Watson *
2066ee96a3c60fca590d38025925c072d264e06493c4Myles Watson ******************************************************************************/
206724933b5b1a06274c47133debac5251a97128a267June R. Tate-Gansextern tBTM_CONTRL_STATE BTM_PM_ReadControllerState(void);
2068e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji
20695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BTM_API_H */
2070