OSDN Git Service

Add guest mode functionality (2/5)
[android-x86/system-bt.git] / btif / include / btif_api.h
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 *******************************************************************************/
51 bt_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 *******************************************************************************/
62 bt_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 *******************************************************************************/
75 bt_status_t btif_disable_bluetooth(void);
76
77 /*******************************************************************************
78 **
79 ** Function         btif_shutdown_bluetooth
80 **
81 ** Description      Finalizes BT scheduler shutdown and terminates BTIF
82 **                  task.
83 **
84 **
85 ** Returns          void
86 **
87 *******************************************************************************/
88 bt_status_t btif_shutdown_bluetooth(void);
89
90 /*******************************************************************************
91 **
92 ** Function         is_restricted_mode
93 **
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
100 **                  mode.
101 **
102 ** Returns          bool
103 **
104 *******************************************************************************/
105 bool is_restricted_mode(void);
106
107 /*******************************************************************************
108 **
109 ** Function         btif_get_adapter_properties
110 **
111 ** Description      Fetches all local adapter properties
112 **
113 ** Returns          bt_status_t
114 **
115 *******************************************************************************/
116 bt_status_t btif_get_adapter_properties(void);
117
118 /*******************************************************************************
119 **
120 ** Function         btif_get_adapter_property
121 **
122 ** Description      Fetches property value from local cache
123 **
124 ** Returns          bt_status_t
125 **
126 *******************************************************************************/
127 bt_status_t btif_get_adapter_property( bt_property_type_t type);
128
129 /*******************************************************************************
130 **
131 ** Function         btif_set_adapter_property
132 **
133 ** Description      Updates core stack with property value and stores it in
134 **                  local cache
135 **
136 ** Returns          bt_status_t
137 **
138 *******************************************************************************/
139 bt_status_t btif_set_adapter_property( const bt_property_t *property);
140
141 /*******************************************************************************
142 **
143 ** Function         btif_get_remote_device_property
144 **
145 ** Description      Fetches the remote device property from the NVRAM
146 **
147 ** Returns          bt_status_t
148 **
149 *******************************************************************************/
150 bt_status_t btif_get_remote_device_property( bt_bdaddr_t *remote_addr,
151                                              bt_property_type_t type);
152
153 /*******************************************************************************
154 **
155 ** Function         btif_get_remote_device_properties
156 **
157 ** Description      Fetches all the remote device properties from NVRAM
158 **
159 ** Returns          bt_status_t
160 **
161 *******************************************************************************/
162 bt_status_t btif_get_remote_device_properties( bt_bdaddr_t *remote_addr);
163
164 /*******************************************************************************
165 **
166 ** Function         btif_set_remote_device_property
167 **
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
171 **
172 ** Returns          bt_status_t
173 **
174 *******************************************************************************/
175 bt_status_t btif_set_remote_device_property( bt_bdaddr_t *remote_addr,
176                                              const bt_property_t *property);
177
178 /*******************************************************************************
179 **
180 ** Function         btif_get_remote_service_record
181 **
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
184 **
185 ** Returns          bt_status_t
186 **
187 *******************************************************************************/
188 bt_status_t btif_get_remote_service_record( bt_bdaddr_t *remote_addr,
189                                             bt_uuid_t *uuid);
190
191
192 /*******************************************************************************
193 **  BTIF DM API
194 ********************************************************************************/
195
196 /*******************************************************************************
197 **
198 ** Function         btif_dm_start_discovery
199 **
200 ** Description      Start device discovery/inquiry
201 **
202 **
203 ** Returns          bt_status_t
204 **
205 *******************************************************************************/
206 bt_status_t btif_dm_start_discovery(void);
207
208 /*******************************************************************************
209 **
210 ** Function         btif_dm_cancel_discovery
211 **
212 ** Description      Cancels search
213 **
214 ** Returns          bt_status_t
215 **
216 *******************************************************************************/
217 bt_status_t btif_dm_cancel_discovery(void);
218
219 /*******************************************************************************
220 **
221 ** Function         btif_dm_create_bond
222 **
223 ** Description      Initiate bonding with the specified device
224 **
225 ** Returns          bt_status_t
226 **
227 *******************************************************************************/
228 bt_status_t btif_dm_create_bond(const bt_bdaddr_t *bd_addr, int transport);
229
230 /*******************************************************************************
231 **
232 ** Function         btif_dm_create_bond_out_of_band
233 **
234 ** Description      Initiate bonding with the specified device using OOB data.
235 **
236 ** Returns          bt_status_t
237 **
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);
241
242 /*******************************************************************************
243 **
244 ** Function         btif_dm_cancel_bond
245 **
246 ** Description      Initiate bonding with the specified device
247 **
248 ** Returns          bt_status_t
249 **
250 *******************************************************************************/
251 bt_status_t btif_dm_cancel_bond(const bt_bdaddr_t *bd_addr);
252
253 /*******************************************************************************
254 **
255 ** Function         btif_dm_remove_bond
256 **
257 ** Description      Removes bonding with the specified device
258 **
259 ** Returns          bt_status_t
260 **
261 *******************************************************************************/
262 bt_status_t btif_dm_remove_bond(const bt_bdaddr_t *bd_addr);
263
264 /*******************************************************************************
265 **
266 ** Function         btif_dm_get_connection_state
267 **
268 ** Description      Returns whether the remote device is currently connected
269 **
270 ** Returns          0 if not connected
271 **
272 *******************************************************************************/
273 uint16_t btif_dm_get_connection_state(const bt_bdaddr_t *bd_addr);
274
275 /*******************************************************************************
276 **
277 ** Function         btif_dm_pin_reply
278 **
279 ** Description      BT legacy pairing - PIN code reply
280 **
281 ** Returns          bt_status_t
282 **
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);
286
287 /*******************************************************************************
288 **
289 ** Function         btif_dm_passkey_reply
290 **
291 ** Description      BT SSP passkey reply
292 **
293 ** Returns          bt_status_t
294 **
295 *******************************************************************************/
296 bt_status_t btif_dm_passkey_reply( const bt_bdaddr_t *bd_addr,
297                                    uint8_t accept, uint32_t passkey);
298
299 /*******************************************************************************
300 **
301 ** Function         btif_dm_ssp_reply
302 **
303 ** Description      BT SSP Reply - Just Works, Numeric Comparison & Passkey Entry
304 **
305 ** Returns          bt_status_t
306 **
307 *******************************************************************************/
308 bt_status_t btif_dm_ssp_reply( const bt_bdaddr_t *bd_addr,
309                               bt_ssp_variant_t variant, uint8_t accept,
310                               uint32_t passkey);
311
312 /*******************************************************************************
313 **
314 ** Function         btif_dm_get_adapter_property
315 **
316 ** Description      Queries the BTA for the adapter property
317 **
318 ** Returns          bt_status_t
319 **
320 *******************************************************************************/
321 bt_status_t btif_dm_get_adapter_property(bt_property_t *prop);
322
323 /*******************************************************************************
324 **
325 ** Function         btif_dm_get_remote_services
326 **
327 ** Description      Start SDP to get remote services
328 **
329 ** Returns          bt_status_t
330 **
331 *******************************************************************************/
332 bt_status_t btif_dm_get_remote_service_record(bt_bdaddr_t *remote_addr,
333                                               bt_uuid_t *uuid);
334
335
336 /*******************************************************************************
337 **
338 ** Function         btif_dm_get_remote_services
339 **
340 ** Description      Start SDP to get remote services
341 **
342 ** Returns          bt_status_t
343 **
344 *******************************************************************************/
345 bt_status_t btif_dm_get_remote_services(bt_bdaddr_t *remote_addr);
346
347 /*******************************************************************************
348 **
349 ** Function         btif_dm_get_remote_services_by_transport
350 **
351 ** Description      Start SDP to get remote services by transport
352 **
353 ** Returns          bt_status_t
354 **
355 *******************************************************************************/
356 bt_status_t btif_dm_get_remote_services_by_transport(bt_bdaddr_t *remote_addr, int transport);
357
358 /*******************************************************************************
359 **
360 ** Function         btif_dut_mode_configure
361 **
362 ** Description      Configure Test Mode - 'enable' to 1 puts the device in test mode and 0 exits
363 **                       test mode
364 **
365 ** Returns          BT_STATUS_SUCCESS on success
366 **
367 *******************************************************************************/
368 bt_status_t btif_dut_mode_configure(uint8_t enable);
369
370 /*******************************************************************************
371 **
372 ** Function         btif_dut_mode_send
373 **
374 ** Description     Sends a HCI Vendor specific command to the controller
375 **
376 ** Returns          BT_STATUS_SUCCESS on success
377 **
378 *******************************************************************************/
379 bt_status_t btif_dut_mode_send(uint16_t opcode, uint8_t *buf, uint8_t len);
380
381 /*******************************************************************************
382 **
383 ** Function         btif_le_test_mode
384 **
385 ** Description     Sends a HCI BLE Test command to the Controller
386 **
387 ** Returns          BT_STATUS_SUCCESS on success
388 **
389 *******************************************************************************/
390 bt_status_t btif_le_test_mode(uint16_t opcode, uint8_t *buf, uint8_t len);
391
392 /*******************************************************************************
393 **
394 ** Function         btif_dm_read_energy_info
395 **
396 ** Description     Reads the energy info from controller
397 **
398 ** Returns          void
399 **
400 *******************************************************************************/
401 void btif_dm_read_energy_info();
402
403 /*******************************************************************************
404 **
405 ** Function         btif_config_hci_snoop_log
406 **
407 ** Description     enable or disable HCI snoop log
408 **
409 ** Returns          BT_STATUS_SUCCESS on success
410 **
411 *******************************************************************************/
412 bt_status_t btif_config_hci_snoop_log(uint8_t enable);
413
414 /*******************************************************************************
415 **
416 ** Function         btif_debug_bond_event_dump
417 **
418 ** Description     Dump bond event information
419 **
420 ** Returns          void
421 **
422 *******************************************************************************/
423 void btif_debug_bond_event_dump(int fd);
424 #endif /* BTIF_API_H */