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