blob: 2369b13d0232a52fd840a0baa46c61cc20d41b7f [file] [log] [blame]
The Android Open Source Project5738f832012-12-12 16:00:35 -08001/******************************************************************************
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*******************************************************************************/
49bt_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*******************************************************************************/
60bt_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*******************************************************************************/
73bt_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*******************************************************************************/
86bt_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*******************************************************************************/
97bt_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*******************************************************************************/
108bt_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*******************************************************************************/
120bt_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*******************************************************************************/
131bt_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*******************************************************************************/
143bt_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*******************************************************************************/
156bt_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*******************************************************************************/
169bt_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*******************************************************************************/
187bt_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*******************************************************************************/
198bt_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*******************************************************************************/
209bt_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*******************************************************************************/
220bt_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*******************************************************************************/
231bt_status_t btif_dm_remove_bond(const bt_bdaddr_t *bd_addr);
232
233/*******************************************************************************
234**
Andre Eisenbach5c0b0522014-06-18 12:20:37 -0700235** Function btif_dm_get_connection_state
236**
237** Description Returns whether the remote device is currently connected
238**
239** Returns 0 if not connected
240**
241*******************************************************************************/
242uint16_t btif_dm_get_connection_state(const bt_bdaddr_t *bd_addr);
243
244/*******************************************************************************
245**
The Android Open Source Project5738f832012-12-12 16:00:35 -0800246** Function btif_dm_pin_reply
247**
248** Description BT legacy pairing - PIN code reply
249**
250** Returns bt_status_t
251**
252*******************************************************************************/
253bt_status_t btif_dm_pin_reply( const bt_bdaddr_t *bd_addr, uint8_t accept,
254 uint8_t pin_len, bt_pin_code_t *pin_code);
255
256/*******************************************************************************
257**
258** Function btif_dm_passkey_reply
259**
260** Description BT SSP passkey reply
261**
262** Returns bt_status_t
263**
264*******************************************************************************/
265bt_status_t btif_dm_passkey_reply( const bt_bdaddr_t *bd_addr,
266 uint8_t accept, uint32_t passkey);
267
268/*******************************************************************************
269**
270** Function btif_dm_ssp_reply
271**
272** Description BT SSP Reply - Just Works, Numeric Comparison & Passkey Entry
273**
274** Returns bt_status_t
275**
276*******************************************************************************/
277bt_status_t btif_dm_ssp_reply( const bt_bdaddr_t *bd_addr,
278 bt_ssp_variant_t variant, uint8_t accept,
279 uint32_t passkey);
280
281/*******************************************************************************
282**
283** Function btif_dm_get_adapter_property
284**
285** Description Queries the BTA for the adapter property
286**
287** Returns bt_status_t
288**
289*******************************************************************************/
290bt_status_t btif_dm_get_adapter_property(bt_property_t *prop);
291
292/*******************************************************************************
293**
294** Function btif_dm_get_remote_services
295**
296** Description Start SDP to get remote services
297**
298** Returns bt_status_t
299**
300*******************************************************************************/
301bt_status_t btif_dm_get_remote_service_record(bt_bdaddr_t *remote_addr,
302 bt_uuid_t *uuid);
303
304
305/*******************************************************************************
306**
307** Function btif_dm_get_remote_services
308**
309** Description Start SDP to get remote services
310**
311** Returns bt_status_t
312**
313*******************************************************************************/
314bt_status_t btif_dm_get_remote_services(bt_bdaddr_t *remote_addr);
315
316/*******************************************************************************
317**
318** Function btif_dut_mode_configure
319**
320** Description Configure Test Mode - 'enable' to 1 puts the device in test mode and 0 exits
321** test mode
322**
323** Returns BT_STATUS_SUCCESS on success
324**
325*******************************************************************************/
326bt_status_t btif_dut_mode_configure(uint8_t enable);
327
328/*******************************************************************************
329**
330** Function btif_dut_mode_send
331**
332** Description Sends a HCI Vendor specific command to the controller
333**
334** Returns BT_STATUS_SUCCESS on success
335**
336*******************************************************************************/
337bt_status_t btif_dut_mode_send(uint16_t opcode, uint8_t *buf, uint8_t len);
338
Ganesh Ganapathi Battaead3cde2013-02-05 15:22:31 -0800339/*******************************************************************************
340**
341** Function btif_le_test_mode
342**
343** Description Sends a HCI BLE Test command to the Controller
344**
345** Returns BT_STATUS_SUCCESS on success
346**
347*******************************************************************************/
348bt_status_t btif_le_test_mode(uint16_t opcode, uint8_t *buf, uint8_t len);
Zhihai Xubad70b12013-06-04 18:21:25 -0700349
350/*******************************************************************************
351**
Satya Callojie5ba8842014-07-03 17:18:02 -0700352** Function btif_dm_read_energy_info
353**
354** Description Reads the energy info from controller
355**
356** Returns void
357**
358*******************************************************************************/
359void btif_dm_read_energy_info();
360
361/*******************************************************************************
362**
Zhihai Xubad70b12013-06-04 18:21:25 -0700363** Function btif_config_hci_snoop_log
364**
365** Description enable or disable HCI snoop log
366**
367** Returns BT_STATUS_SUCCESS on success
368**
369*******************************************************************************/
370bt_status_t btif_config_hci_snoop_log(uint8_t enable);
The Android Open Source Project5738f832012-12-12 16:00:35 -0800371#endif /* BTIF_API_H */