1 /******************************************************************************
3 * Copyright (C) 2009-2012 Broadcom Corporation
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:
9 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 ******************************************************************************/
19 /*******************************************************************************
21 * Filename: btif_api.h
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
28 *******************************************************************************/
33 #include <hardware/bluetooth.h>
35 #include "btif_common.h"
38 /*******************************************************************************
40 ********************************************************************************/
42 /*******************************************************************************
44 ** Function btif_init_bluetooth
46 ** Description Creates BTIF task and prepares BT scheduler for startup
48 ** Returns bt_status_t
50 *******************************************************************************/
51 bt_status_t btif_init_bluetooth(void);
53 /*******************************************************************************
55 ** Function btif_enable_bluetooth
57 ** Description Performs chip power on and kickstarts OS scheduler
59 ** Returns bt_status_t
61 *******************************************************************************/
62 bt_status_t btif_enable_bluetooth(void);
64 /*******************************************************************************
66 ** Function btif_disable_bluetooth
68 ** Description Inititates shutdown of Bluetooth system.
69 ** Any active links will be dropped and device entering
70 ** non connectable/discoverable mode
74 *******************************************************************************/
75 bt_status_t btif_disable_bluetooth(void);
77 /*******************************************************************************
79 ** Function btif_shutdown_bluetooth
81 ** Description Finalizes BT scheduler shutdown and terminates BTIF
87 *******************************************************************************/
88 bt_status_t btif_shutdown_bluetooth(void);
90 /*******************************************************************************
92 ** Function is_restricted_mode
94 ** Description Checks if BT was enabled in restriced mode. In restricted
95 ** mode, bonds that are created are marked as temporary.
96 ** These bonds persist until we leave restricted mode, at
97 ** which point they will be deleted from the config. Also
98 ** while in restricted mode, the user cannot remove any
99 ** devices that were already paired before entering restricted
104 *******************************************************************************/
105 bool is_restricted_mode(void);
107 /*******************************************************************************
109 ** Function btif_get_adapter_properties
111 ** Description Fetches all local adapter properties
113 ** Returns bt_status_t
115 *******************************************************************************/
116 bt_status_t btif_get_adapter_properties(void);
118 /*******************************************************************************
120 ** Function btif_get_adapter_property
122 ** Description Fetches property value from local cache
124 ** Returns bt_status_t
126 *******************************************************************************/
127 bt_status_t btif_get_adapter_property( bt_property_type_t type);
129 /*******************************************************************************
131 ** Function btif_set_adapter_property
133 ** Description Updates core stack with property value and stores it in
136 ** Returns bt_status_t
138 *******************************************************************************/
139 bt_status_t btif_set_adapter_property( const bt_property_t *property);
141 /*******************************************************************************
143 ** Function btif_get_remote_device_property
145 ** Description Fetches the remote device property from the NVRAM
147 ** Returns bt_status_t
149 *******************************************************************************/
150 bt_status_t btif_get_remote_device_property( bt_bdaddr_t *remote_addr,
151 bt_property_type_t type);
153 /*******************************************************************************
155 ** Function btif_get_remote_device_properties
157 ** Description Fetches all the remote device properties from NVRAM
159 ** Returns bt_status_t
161 *******************************************************************************/
162 bt_status_t btif_get_remote_device_properties( bt_bdaddr_t *remote_addr);
164 /*******************************************************************************
166 ** Function btif_set_remote_device_property
168 ** Description Writes the remote device property to NVRAM.
169 ** Currently, BT_PROPERTY_REMOTE_FRIENDLY_NAME is the only
170 ** remote device property that can be set
172 ** Returns bt_status_t
174 *******************************************************************************/
175 bt_status_t btif_set_remote_device_property( bt_bdaddr_t *remote_addr,
176 const bt_property_t *property);
178 /*******************************************************************************
180 ** Function btif_get_remote_service_record
182 ** Description Looks up the service matching uuid on the remote device
183 ** and fetches the SCN and service_name if the UUID is found
185 ** Returns bt_status_t
187 *******************************************************************************/
188 bt_status_t btif_get_remote_service_record( bt_bdaddr_t *remote_addr,
192 /*******************************************************************************
194 ********************************************************************************/
196 /*******************************************************************************
198 ** Function btif_dm_start_discovery
200 ** Description Start device discovery/inquiry
203 ** Returns bt_status_t
205 *******************************************************************************/
206 bt_status_t btif_dm_start_discovery(void);
208 /*******************************************************************************
210 ** Function btif_dm_cancel_discovery
212 ** Description Cancels search
214 ** Returns bt_status_t
216 *******************************************************************************/
217 bt_status_t btif_dm_cancel_discovery(void);
219 /*******************************************************************************
221 ** Function btif_dm_create_bond
223 ** Description Initiate bonding with the specified device
225 ** Returns bt_status_t
227 *******************************************************************************/
228 bt_status_t btif_dm_create_bond(const bt_bdaddr_t *bd_addr, int transport);
230 /*******************************************************************************
232 ** Function btif_dm_create_bond_out_of_band
234 ** Description Initiate bonding with the specified device using OOB data.
236 ** Returns bt_status_t
238 *******************************************************************************/
239 bt_status_t btif_dm_create_bond_out_of_band(const bt_bdaddr_t *bd_addr, int transport,
240 const bt_out_of_band_data_t *oob_data);
242 /*******************************************************************************
244 ** Function btif_dm_cancel_bond
246 ** Description Initiate bonding with the specified device
248 ** Returns bt_status_t
250 *******************************************************************************/
251 bt_status_t btif_dm_cancel_bond(const bt_bdaddr_t *bd_addr);
253 /*******************************************************************************
255 ** Function btif_dm_remove_bond
257 ** Description Removes bonding with the specified device
259 ** Returns bt_status_t
261 *******************************************************************************/
262 bt_status_t btif_dm_remove_bond(const bt_bdaddr_t *bd_addr);
264 /*******************************************************************************
266 ** Function btif_dm_get_connection_state
268 ** Description Returns whether the remote device is currently connected
270 ** Returns 0 if not connected
272 *******************************************************************************/
273 uint16_t btif_dm_get_connection_state(const bt_bdaddr_t *bd_addr);
275 /*******************************************************************************
277 ** Function btif_dm_pin_reply
279 ** Description BT legacy pairing - PIN code reply
281 ** Returns bt_status_t
283 *******************************************************************************/
284 bt_status_t btif_dm_pin_reply( const bt_bdaddr_t *bd_addr, uint8_t accept,
285 uint8_t pin_len, bt_pin_code_t *pin_code);
287 /*******************************************************************************
289 ** Function btif_dm_passkey_reply
291 ** Description BT SSP passkey reply
293 ** Returns bt_status_t
295 *******************************************************************************/
296 bt_status_t btif_dm_passkey_reply( const bt_bdaddr_t *bd_addr,
297 uint8_t accept, uint32_t passkey);
299 /*******************************************************************************
301 ** Function btif_dm_ssp_reply
303 ** Description BT SSP Reply - Just Works, Numeric Comparison & Passkey Entry
305 ** Returns bt_status_t
307 *******************************************************************************/
308 bt_status_t btif_dm_ssp_reply( const bt_bdaddr_t *bd_addr,
309 bt_ssp_variant_t variant, uint8_t accept,
312 /*******************************************************************************
314 ** Function btif_dm_get_adapter_property
316 ** Description Queries the BTA for the adapter property
318 ** Returns bt_status_t
320 *******************************************************************************/
321 bt_status_t btif_dm_get_adapter_property(bt_property_t *prop);
323 /*******************************************************************************
325 ** Function btif_dm_get_remote_services
327 ** Description Start SDP to get remote services
329 ** Returns bt_status_t
331 *******************************************************************************/
332 bt_status_t btif_dm_get_remote_service_record(bt_bdaddr_t *remote_addr,
336 /*******************************************************************************
338 ** Function btif_dm_get_remote_services
340 ** Description Start SDP to get remote services
342 ** Returns bt_status_t
344 *******************************************************************************/
345 bt_status_t btif_dm_get_remote_services(bt_bdaddr_t *remote_addr);
347 /*******************************************************************************
349 ** Function btif_dm_get_remote_services_by_transport
351 ** Description Start SDP to get remote services by transport
353 ** Returns bt_status_t
355 *******************************************************************************/
356 bt_status_t btif_dm_get_remote_services_by_transport(bt_bdaddr_t *remote_addr, int transport);
358 /*******************************************************************************
360 ** Function btif_dut_mode_configure
362 ** Description Configure Test Mode - 'enable' to 1 puts the device in test mode and 0 exits
365 ** Returns BT_STATUS_SUCCESS on success
367 *******************************************************************************/
368 bt_status_t btif_dut_mode_configure(uint8_t enable);
370 /*******************************************************************************
372 ** Function btif_dut_mode_send
374 ** Description Sends a HCI Vendor specific command to the controller
376 ** Returns BT_STATUS_SUCCESS on success
378 *******************************************************************************/
379 bt_status_t btif_dut_mode_send(uint16_t opcode, uint8_t *buf, uint8_t len);
381 /*******************************************************************************
383 ** Function btif_le_test_mode
385 ** Description Sends a HCI BLE Test command to the Controller
387 ** Returns BT_STATUS_SUCCESS on success
389 *******************************************************************************/
390 bt_status_t btif_le_test_mode(uint16_t opcode, uint8_t *buf, uint8_t len);
392 /*******************************************************************************
394 ** Function btif_dm_read_energy_info
396 ** Description Reads the energy info from controller
400 *******************************************************************************/
401 void btif_dm_read_energy_info();
403 /*******************************************************************************
405 ** Function btif_config_hci_snoop_log
407 ** Description enable or disable HCI snoop log
409 ** Returns BT_STATUS_SUCCESS on success
411 *******************************************************************************/
412 bt_status_t btif_config_hci_snoop_log(uint8_t enable);
414 /*******************************************************************************
416 ** Function btif_debug_bond_event_dump
418 ** Description Dump bond event information
422 *******************************************************************************/
423 void btif_debug_bond_event_dump(int fd);
424 #endif /* BTIF_API_H */