btif_api.h revision 1bd691cb8ae3c23ffe25b5ca1fcfd11b82a9fbda
1/****************************************************************************** 2 * 3 * Copyright (C) 2009-2012 Broadcom Corporation 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at: 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 ******************************************************************************/ 18 19/******************************************************************************* 20 * 21 * Filename: btif_api.h 22 * 23 * Description: Main API header file for all BTIF functions accessed 24 * from main bluetooth HAL. All HAL extensions will not 25 * require headerfiles as they would be accessed through 26 * callout/callins. 27 * 28 *******************************************************************************/ 29 30#ifndef BTIF_API_H 31#define BTIF_API_H 32 33#include <hardware/bluetooth.h> 34 35#include "btif_common.h" 36#include "btif_dm.h" 37 38/******************************************************************************* 39** BTIF CORE API 40********************************************************************************/ 41 42/******************************************************************************* 43** 44** Function btif_init_bluetooth 45** 46** Description Creates BTIF task and prepares BT scheduler for startup 47** 48** Returns bt_status_t 49** 50*******************************************************************************/ 51bt_status_t btif_init_bluetooth(void); 52 53/******************************************************************************* 54** 55** Function btif_enable_bluetooth 56** 57** Description Performs chip power on and kickstarts OS scheduler 58** 59** Returns bt_status_t 60** 61*******************************************************************************/ 62bt_status_t btif_enable_bluetooth(void); 63 64/******************************************************************************* 65** 66** Function btif_disable_bluetooth 67** 68** Description Inititates shutdown of Bluetooth system. 69** Any active links will be dropped and device entering 70** non connectable/discoverable mode 71** 72** Returns void 73** 74*******************************************************************************/ 75bt_status_t btif_disable_bluetooth(void); 76 77/******************************************************************************* 78** 79** Function btif_cleanup_bluetooth 80** 81** Description Cleanup BTIF state. 82** 83** 84** Returns void 85** 86*******************************************************************************/ 87bt_status_t btif_cleanup_bluetooth(void); 88 89/******************************************************************************* 90** 91** Function is_restricted_mode 92** 93** Description Checks if BT was enabled in restriced mode. In restricted 94** mode, bonds that are created are marked as temporary. 95** These bonds persist until we leave restricted mode, at 96** which point they will be deleted from the config. Also 97** while in restricted mode, the user can access devices 98** that are already paired before entering restricted mode, 99** but they cannot remove any of these devices. 100** 101** Returns bool 102** 103*******************************************************************************/ 104bool is_restricted_mode(void); 105 106/******************************************************************************* 107** 108** Function btif_get_adapter_properties 109** 110** Description Fetches all local adapter properties 111** 112** Returns bt_status_t 113** 114*******************************************************************************/ 115bt_status_t btif_get_adapter_properties(void); 116 117/******************************************************************************* 118** 119** Function btif_get_adapter_property 120** 121** Description Fetches property value from local cache 122** 123** Returns bt_status_t 124** 125*******************************************************************************/ 126bt_status_t btif_get_adapter_property( bt_property_type_t type); 127 128/******************************************************************************* 129** 130** Function btif_set_adapter_property 131** 132** Description Updates core stack with property value and stores it in 133** local cache 134** 135** Returns bt_status_t 136** 137*******************************************************************************/ 138bt_status_t btif_set_adapter_property( const bt_property_t *property); 139 140/******************************************************************************* 141** 142** Function btif_get_remote_device_property 143** 144** Description Fetches the remote device property from the NVRAM 145** 146** Returns bt_status_t 147** 148*******************************************************************************/ 149bt_status_t btif_get_remote_device_property( bt_bdaddr_t *remote_addr, 150 bt_property_type_t type); 151 152/******************************************************************************* 153** 154** Function btif_get_remote_device_properties 155** 156** Description Fetches all the remote device properties from NVRAM 157** 158** Returns bt_status_t 159** 160*******************************************************************************/ 161bt_status_t btif_get_remote_device_properties( bt_bdaddr_t *remote_addr); 162 163/******************************************************************************* 164** 165** Function btif_set_remote_device_property 166** 167** Description Writes the remote device property to NVRAM. 168** Currently, BT_PROPERTY_REMOTE_FRIENDLY_NAME is the only 169** remote device property that can be set 170** 171** Returns bt_status_t 172** 173*******************************************************************************/ 174bt_status_t btif_set_remote_device_property( bt_bdaddr_t *remote_addr, 175 const bt_property_t *property); 176 177/******************************************************************************* 178** 179** Function btif_get_remote_service_record 180** 181** Description Looks up the service matching uuid on the remote device 182** and fetches the SCN and service_name if the UUID is found 183** 184** Returns bt_status_t 185** 186*******************************************************************************/ 187bt_status_t btif_get_remote_service_record( bt_bdaddr_t *remote_addr, 188 bt_uuid_t *uuid); 189 190 191/******************************************************************************* 192** BTIF DM API 193********************************************************************************/ 194 195/******************************************************************************* 196** 197** Function btif_dm_start_discovery 198** 199** Description Start device discovery/inquiry 200** 201** 202** Returns bt_status_t 203** 204*******************************************************************************/ 205bt_status_t btif_dm_start_discovery(void); 206 207/******************************************************************************* 208** 209** Function btif_dm_cancel_discovery 210** 211** Description Cancels search 212** 213** Returns bt_status_t 214** 215*******************************************************************************/ 216bt_status_t btif_dm_cancel_discovery(void); 217 218/******************************************************************************* 219** 220** Function btif_dm_create_bond 221** 222** Description Initiate bonding with the specified device 223** 224** Returns bt_status_t 225** 226*******************************************************************************/ 227bt_status_t btif_dm_create_bond(const bt_bdaddr_t *bd_addr, int transport); 228 229/******************************************************************************* 230** 231** Function btif_dm_create_bond_out_of_band 232** 233** Description Initiate bonding with the specified device using OOB data. 234** 235** Returns bt_status_t 236** 237*******************************************************************************/ 238bt_status_t btif_dm_create_bond_out_of_band(const bt_bdaddr_t *bd_addr, int transport, 239 const bt_out_of_band_data_t *oob_data); 240 241/******************************************************************************* 242** 243** Function btif_dm_cancel_bond 244** 245** Description Initiate bonding with the specified device 246** 247** Returns bt_status_t 248** 249*******************************************************************************/ 250bt_status_t btif_dm_cancel_bond(const bt_bdaddr_t *bd_addr); 251 252/******************************************************************************* 253** 254** Function btif_dm_remove_bond 255** 256** Description Removes bonding with the specified device 257** 258** Returns bt_status_t 259** 260*******************************************************************************/ 261bt_status_t btif_dm_remove_bond(const bt_bdaddr_t *bd_addr); 262 263/******************************************************************************* 264** 265** Function btif_dm_get_connection_state 266** 267** Description Returns whether the remote device is currently connected 268** 269** Returns 0 if not connected 270** 271*******************************************************************************/ 272uint16_t btif_dm_get_connection_state(const bt_bdaddr_t *bd_addr); 273 274/******************************************************************************* 275** 276** Function btif_dm_pin_reply 277** 278** Description BT legacy pairing - PIN code reply 279** 280** Returns bt_status_t 281** 282*******************************************************************************/ 283bt_status_t btif_dm_pin_reply( const bt_bdaddr_t *bd_addr, uint8_t accept, 284 uint8_t pin_len, bt_pin_code_t *pin_code); 285 286/******************************************************************************* 287** 288** Function btif_dm_passkey_reply 289** 290** Description BT SSP passkey reply 291** 292** Returns bt_status_t 293** 294*******************************************************************************/ 295bt_status_t btif_dm_passkey_reply( const bt_bdaddr_t *bd_addr, 296 uint8_t accept, uint32_t passkey); 297 298/******************************************************************************* 299** 300** Function btif_dm_ssp_reply 301** 302** Description BT SSP Reply - Just Works, Numeric Comparison & Passkey Entry 303** 304** Returns bt_status_t 305** 306*******************************************************************************/ 307bt_status_t btif_dm_ssp_reply( const bt_bdaddr_t *bd_addr, 308 bt_ssp_variant_t variant, uint8_t accept, 309 uint32_t passkey); 310 311/******************************************************************************* 312** 313** Function btif_dm_get_adapter_property 314** 315** Description Queries the BTA for the adapter property 316** 317** Returns bt_status_t 318** 319*******************************************************************************/ 320bt_status_t btif_dm_get_adapter_property(bt_property_t *prop); 321 322/******************************************************************************* 323** 324** Function btif_dm_get_remote_services 325** 326** Description Start SDP to get remote services 327** 328** Returns bt_status_t 329** 330*******************************************************************************/ 331bt_status_t btif_dm_get_remote_service_record(bt_bdaddr_t *remote_addr, 332 bt_uuid_t *uuid); 333 334 335/******************************************************************************* 336** 337** Function btif_dm_get_remote_services 338** 339** Description Start SDP to get remote services 340** 341** Returns bt_status_t 342** 343*******************************************************************************/ 344bt_status_t btif_dm_get_remote_services(bt_bdaddr_t *remote_addr); 345 346/******************************************************************************* 347** 348** Function btif_dm_get_remote_services_by_transport 349** 350** Description Start SDP to get remote services by transport 351** 352** Returns bt_status_t 353** 354*******************************************************************************/ 355bt_status_t btif_dm_get_remote_services_by_transport(bt_bdaddr_t *remote_addr, int transport); 356 357/******************************************************************************* 358** 359** Function btif_dut_mode_configure 360** 361** Description Configure Test Mode - 'enable' to 1 puts the device in test mode and 0 exits 362** test mode 363** 364** Returns BT_STATUS_SUCCESS on success 365** 366*******************************************************************************/ 367bt_status_t btif_dut_mode_configure(uint8_t enable); 368 369/******************************************************************************* 370** 371** Function btif_dut_mode_send 372** 373** Description Sends a HCI Vendor specific command to the controller 374** 375** Returns BT_STATUS_SUCCESS on success 376** 377*******************************************************************************/ 378bt_status_t btif_dut_mode_send(uint16_t opcode, uint8_t *buf, uint8_t len); 379 380/******************************************************************************* 381** 382** Function btif_le_test_mode 383** 384** Description Sends a HCI BLE Test command to the Controller 385** 386** Returns BT_STATUS_SUCCESS on success 387** 388*******************************************************************************/ 389bt_status_t btif_le_test_mode(uint16_t opcode, uint8_t *buf, uint8_t len); 390 391/******************************************************************************* 392** 393** Function btif_dm_read_energy_info 394** 395** Description Reads the energy info from controller 396** 397** Returns void 398** 399*******************************************************************************/ 400void btif_dm_read_energy_info(); 401 402/******************************************************************************* 403** 404** Function btif_config_hci_snoop_log 405** 406** Description enable or disable HCI snoop log 407** 408** Returns BT_STATUS_SUCCESS on success 409** 410*******************************************************************************/ 411bt_status_t btif_config_hci_snoop_log(uint8_t enable); 412 413/******************************************************************************* 414** 415** Function btif_debug_bond_event_dump 416** 417** Description Dump bond event information 418** 419** Returns void 420** 421*******************************************************************************/ 422void btif_debug_bond_event_dump(int fd); 423#endif /* BTIF_API_H */ 424