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 "btif_common.h" 34 #include "btif_dm.h" 35 36 /******************************************************************************* 37 ** BTIF CORE API 38 ********************************************************************************/ 39 40 /******************************************************************************* 41 ** 42 ** Function btif_init_bluetooth 43 ** 44 ** Description Creates BTIF task and prepares BT scheduler for startup 45 ** 46 ** Returns bt_status_t 47 ** 48 *******************************************************************************/ 49 bt_status_t btif_init_bluetooth(void); 50 51 /******************************************************************************* 52 ** 53 ** Function btif_enable_bluetooth 54 ** 55 ** Description Performs chip power on and kickstarts OS scheduler 56 ** 57 ** Returns bt_status_t 58 ** 59 *******************************************************************************/ 60 bt_status_t btif_enable_bluetooth(void); 61 62 /******************************************************************************* 63 ** 64 ** Function btif_disable_bluetooth 65 ** 66 ** Description Inititates shutdown of Bluetooth system. 67 ** Any active links will be dropped and device entering 68 ** non connectable/discoverable mode 69 ** 70 ** Returns void 71 ** 72 *******************************************************************************/ 73 bt_status_t btif_disable_bluetooth(void); 74 75 /******************************************************************************* 76 ** 77 ** Function btif_shutdown_bluetooth 78 ** 79 ** Description Finalizes BT scheduler shutdown and terminates BTIF 80 ** task. 81 ** 82 ** 83 ** Returns void 84 ** 85 *******************************************************************************/ 86 bt_status_t btif_shutdown_bluetooth(void); 87 88 /******************************************************************************* 89 ** 90 ** Function btif_get_adapter_properties 91 ** 92 ** Description Fetches all local adapter properties 93 ** 94 ** Returns bt_status_t 95 ** 96 *******************************************************************************/ 97 bt_status_t btif_get_adapter_properties(void); 98 99 /******************************************************************************* 100 ** 101 ** Function btif_get_adapter_property 102 ** 103 ** Description Fetches property value from local cache 104 ** 105 ** Returns bt_status_t 106 ** 107 *******************************************************************************/ 108 bt_status_t btif_get_adapter_property( bt_property_type_t type); 109 110 /******************************************************************************* 111 ** 112 ** Function btif_set_adapter_property 113 ** 114 ** Description Updates core stack with property value and stores it in 115 ** local cache 116 ** 117 ** Returns bt_status_t 118 ** 119 *******************************************************************************/ 120 bt_status_t btif_set_adapter_property( const bt_property_t *property); 121 122 /******************************************************************************* 123 ** 124 ** Function btif_get_remote_device_property 125 ** 126 ** Description Fetches the remote device property from the NVRAM 127 ** 128 ** Returns bt_status_t 129 ** 130 *******************************************************************************/ 131 bt_status_t btif_get_remote_device_property( bt_bdaddr_t *remote_addr, 132 bt_property_type_t type); 133 134 /******************************************************************************* 135 ** 136 ** Function btif_get_remote_device_properties 137 ** 138 ** Description Fetches all the remote device properties from NVRAM 139 ** 140 ** Returns bt_status_t 141 ** 142 *******************************************************************************/ 143 bt_status_t btif_get_remote_device_properties( bt_bdaddr_t *remote_addr); 144 145 /******************************************************************************* 146 ** 147 ** Function btif_set_remote_device_property 148 ** 149 ** Description Writes the remote device property to NVRAM. 150 ** Currently, BT_PROPERTY_REMOTE_FRIENDLY_NAME is the only 151 ** remote device property that can be set 152 ** 153 ** Returns bt_status_t 154 ** 155 *******************************************************************************/ 156 bt_status_t btif_set_remote_device_property( bt_bdaddr_t *remote_addr, 157 const bt_property_t *property); 158 159 /******************************************************************************* 160 ** 161 ** Function btif_get_remote_service_record 162 ** 163 ** Description Looks up the service matching uuid on the remote device 164 ** and fetches the SCN and service_name if the UUID is found 165 ** 166 ** Returns bt_status_t 167 ** 168 *******************************************************************************/ 169 bt_status_t btif_get_remote_service_record( bt_bdaddr_t *remote_addr, 170 bt_uuid_t *uuid); 171 172 173 /******************************************************************************* 174 ** BTIF DM API 175 ********************************************************************************/ 176 177 /******************************************************************************* 178 ** 179 ** Function btif_dm_start_discovery 180 ** 181 ** Description Start device discovery/inquiry 182 ** 183 ** 184 ** Returns bt_status_t 185 ** 186 *******************************************************************************/ 187 bt_status_t btif_dm_start_discovery(void); 188 189 /******************************************************************************* 190 ** 191 ** Function btif_dm_cancel_discovery 192 ** 193 ** Description Cancels search 194 ** 195 ** Returns bt_status_t 196 ** 197 *******************************************************************************/ 198 bt_status_t btif_dm_cancel_discovery(void); 199 200 /******************************************************************************* 201 ** 202 ** Function btif_dm_create_bond 203 ** 204 ** Description Initiate bonding with the specified device 205 ** 206 ** Returns bt_status_t 207 ** 208 *******************************************************************************/ 209 bt_status_t btif_dm_create_bond(const bt_bdaddr_t *bd_addr); 210 211 /******************************************************************************* 212 ** 213 ** Function btif_dm_cancel_bond 214 ** 215 ** Description Initiate bonding with the specified device 216 ** 217 ** Returns bt_status_t 218 ** 219 *******************************************************************************/ 220 bt_status_t btif_dm_cancel_bond(const bt_bdaddr_t *bd_addr); 221 222 /******************************************************************************* 223 ** 224 ** Function btif_dm_remove_bond 225 ** 226 ** Description Removes bonding with the specified device 227 ** 228 ** Returns bt_status_t 229 ** 230 *******************************************************************************/ 231 bt_status_t btif_dm_remove_bond(const bt_bdaddr_t *bd_addr); 232 233 /******************************************************************************* 234 ** 235 ** Function btif_dm_pin_reply 236 ** 237 ** Description BT legacy pairing - PIN code reply 238 ** 239 ** Returns bt_status_t 240 ** 241 *******************************************************************************/ 242 bt_status_t btif_dm_pin_reply( const bt_bdaddr_t *bd_addr, uint8_t accept, 243 uint8_t pin_len, bt_pin_code_t *pin_code); 244 245 /******************************************************************************* 246 ** 247 ** Function btif_dm_passkey_reply 248 ** 249 ** Description BT SSP passkey reply 250 ** 251 ** Returns bt_status_t 252 ** 253 *******************************************************************************/ 254 bt_status_t btif_dm_passkey_reply( const bt_bdaddr_t *bd_addr, 255 uint8_t accept, uint32_t passkey); 256 257 /******************************************************************************* 258 ** 259 ** Function btif_dm_ssp_reply 260 ** 261 ** Description BT SSP Reply - Just Works, Numeric Comparison & Passkey Entry 262 ** 263 ** Returns bt_status_t 264 ** 265 *******************************************************************************/ 266 bt_status_t btif_dm_ssp_reply( const bt_bdaddr_t *bd_addr, 267 bt_ssp_variant_t variant, uint8_t accept, 268 uint32_t passkey); 269 270 /******************************************************************************* 271 ** 272 ** Function btif_dm_get_adapter_property 273 ** 274 ** Description Queries the BTA for the adapter property 275 ** 276 ** Returns bt_status_t 277 ** 278 *******************************************************************************/ 279 bt_status_t btif_dm_get_adapter_property(bt_property_t *prop); 280 281 /******************************************************************************* 282 ** 283 ** Function btif_dm_get_remote_services 284 ** 285 ** Description Start SDP to get remote services 286 ** 287 ** Returns bt_status_t 288 ** 289 *******************************************************************************/ 290 bt_status_t btif_dm_get_remote_service_record(bt_bdaddr_t *remote_addr, 291 bt_uuid_t *uuid); 292 293 294 /******************************************************************************* 295 ** 296 ** Function btif_dm_get_remote_services 297 ** 298 ** Description Start SDP to get remote services 299 ** 300 ** Returns bt_status_t 301 ** 302 *******************************************************************************/ 303 bt_status_t btif_dm_get_remote_services(bt_bdaddr_t *remote_addr); 304 305 /******************************************************************************* 306 ** 307 ** Function btif_dut_mode_configure 308 ** 309 ** Description Configure Test Mode - 'enable' to 1 puts the device in test mode and 0 exits 310 ** test mode 311 ** 312 ** Returns BT_STATUS_SUCCESS on success 313 ** 314 *******************************************************************************/ 315 bt_status_t btif_dut_mode_configure(uint8_t enable); 316 317 /******************************************************************************* 318 ** 319 ** Function btif_dut_mode_send 320 ** 321 ** Description Sends a HCI Vendor specific command to the controller 322 ** 323 ** Returns BT_STATUS_SUCCESS on success 324 ** 325 *******************************************************************************/ 326 bt_status_t btif_dut_mode_send(uint16_t opcode, uint8_t *buf, uint8_t len); 327 328 #endif /* BTIF_API_H */ 329