OSDN Git Service

am b0765000: Return ERROR for invalid CHLD command arguments
[android-x86/system-bt.git] / bta / dm / bta_dm_int.h
1 /******************************************************************************
2  *
3  *  Copyright (C) 2003-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  *  This is the private interface file for the BTA device manager.
22  *
23  ******************************************************************************/
24 #ifndef BTA_DM_INT_H
25 #define BTA_DM_INT_H
26
27 #include "bt_target.h"
28
29 #if (BLE_INCLUDED == TRUE && (defined BTA_GATT_INCLUDED) && (BTA_GATT_INCLUDED == TRUE))
30     #include "bta_gatt_api.h"
31 #endif
32
33
34
35 /*****************************************************************************
36 **  Constants and data types
37 *****************************************************************************/
38
39
40 #define BTA_COPY_DEVICE_CLASS(coddst, codsrc)   {((UINT8 *)(coddst))[0] = ((UINT8 *)(codsrc))[0]; \
41                                                  ((UINT8 *)(coddst))[1] = ((UINT8 *)(codsrc))[1];  \
42                                                  ((UINT8 *)(coddst))[2] = ((UINT8 *)(codsrc))[2];}
43
44
45 #define BTA_DM_MSG_LEN 50
46
47 #define BTA_SERVICE_ID_TO_SERVICE_MASK(id)       (1 << (id))
48
49 /* DM events */
50 enum
51 {
52     /* device manager local device API events */
53     BTA_DM_API_ENABLE_EVT = BTA_SYS_EVT_START(BTA_ID_DM),
54     BTA_DM_API_DISABLE_EVT,
55     BTA_DM_API_SET_NAME_EVT,
56     BTA_DM_API_SET_VISIBILITY_EVT,
57     BTA_DM_ACL_CHANGE_EVT,
58     BTA_DM_API_ADD_DEVICE_EVT,
59     BTA_DM_API_REMOVE_ACL_EVT,
60
61     /* security API events */
62     BTA_DM_API_BOND_EVT,
63     BTA_DM_API_BOND_CANCEL_EVT,
64     BTA_DM_API_PIN_REPLY_EVT,
65
66     /* power manger events */
67     BTA_DM_PM_BTM_STATUS_EVT,
68     BTA_DM_PM_TIMER_EVT,
69
70     /* simple pairing events */
71     BTA_DM_API_CONFIRM_EVT,
72
73     BTA_DM_API_SET_ENCRYPTION_EVT,
74
75
76 #if (BTM_OOB_INCLUDED == TRUE)
77     BTA_DM_API_LOC_OOB_EVT,
78     BTA_DM_CI_IO_REQ_EVT,
79     BTA_DM_CI_RMT_OOB_EVT,
80 #endif /* BTM_OOB_INCLUDED */
81
82     BTA_DM_API_REMOVE_DEVICE_EVT,
83
84 #if BLE_INCLUDED == TRUE
85     BTA_DM_API_ADD_BLEKEY_EVT,
86     BTA_DM_API_ADD_BLEDEVICE_EVT,
87     BTA_DM_API_BLE_PASSKEY_REPLY_EVT,
88     BTA_DM_API_BLE_CONFIRM_REPLY_EVT,
89     BTA_DM_API_BLE_SEC_GRANT_EVT,
90     BTA_DM_API_BLE_SET_BG_CONN_TYPE,
91     BTA_DM_API_BLE_CONN_PARAM_EVT,
92     BTA_DM_API_BLE_SCAN_PARAM_EVT,
93     BTA_DM_API_BLE_OBSERVE_EVT,
94     BTA_DM_API_UPDATE_CONN_PARAM_EVT,
95 #if BLE_PRIVACY_SPT == TRUE
96     BTA_DM_API_LOCAL_PRIVACY_EVT,
97 #endif
98     BTA_DM_API_BLE_ADV_PARAM_EVT,
99     BTA_DM_API_BLE_SET_ADV_CONFIG_EVT,
100     BTA_DM_API_BLE_SET_SCAN_RSP_EVT,
101     BTA_DM_API_BLE_BROADCAST_EVT,
102     BTA_DM_API_SET_DATA_LENGTH_EVT,
103
104 #if BLE_ANDROID_CONTROLLER_SCAN_FILTER == TRUE
105     BTA_DM_API_CFG_FILTER_COND_EVT,
106     BTA_DM_API_SCAN_FILTER_SETUP_EVT,
107     BTA_DM_API_SCAN_FILTER_ENABLE_EVT,
108 #endif
109     BTA_DM_API_BLE_MULTI_ADV_ENB_EVT,
110     BTA_DM_API_BLE_MULTI_ADV_PARAM_UPD_EVT,
111     BTA_DM_API_BLE_MULTI_ADV_DATA_EVT,
112     BTA_DM_API_BLE_MULTI_ADV_DISABLE_EVT,
113     BTA_DM_API_BLE_SETUP_STORAGE_EVT,
114     BTA_DM_API_BLE_ENABLE_BATCH_SCAN_EVT,
115     BTA_DM_API_BLE_DISABLE_BATCH_SCAN_EVT,
116     BTA_DM_API_BLE_READ_SCAN_REPORTS_EVT,
117     BTA_DM_API_BLE_TRACK_ADVERTISER_EVT,
118     BTA_DM_API_BLE_ENERGY_INFO_EVT,
119 #endif
120
121     BTA_DM_API_ENABLE_TEST_MODE_EVT,
122     BTA_DM_API_DISABLE_TEST_MODE_EVT,
123     BTA_DM_API_EXECUTE_CBACK_EVT,
124     BTA_DM_MAX_EVT
125 };
126
127
128 /* DM search events */
129 enum
130 {
131     /* DM search API events */
132     BTA_DM_API_SEARCH_EVT = BTA_SYS_EVT_START(BTA_ID_DM_SEARCH),
133     BTA_DM_API_SEARCH_CANCEL_EVT,
134     BTA_DM_API_DISCOVER_EVT,
135     BTA_DM_INQUIRY_CMPL_EVT,
136     BTA_DM_REMT_NAME_EVT,
137     BTA_DM_SDP_RESULT_EVT,
138     BTA_DM_SEARCH_CMPL_EVT,
139     BTA_DM_DISCOVERY_RESULT_EVT,
140     BTA_DM_API_DI_DISCOVER_EVT,
141     BTA_DM_DISC_CLOSE_TOUT_EVT
142 };
143
144 /* data type for BTA_DM_API_ENABLE_EVT */
145 typedef struct
146 {
147     BT_HDR              hdr;
148     tBTA_DM_SEC_CBACK *p_sec_cback;
149 } tBTA_DM_API_ENABLE;
150
151 /* data type for BTA_DM_API_SET_NAME_EVT */
152 typedef struct
153 {
154     BT_HDR              hdr;
155     BD_NAME             name; /* max 248 bytes name, plus must be Null terminated */
156 } tBTA_DM_API_SET_NAME;
157
158 /* data type for BTA_DM_API_SET_VISIBILITY_EVT */
159 typedef struct
160 {
161     BT_HDR              hdr;
162     tBTA_DM_DISC    disc_mode;
163     tBTA_DM_CONN    conn_mode;
164     UINT8           pair_mode;
165     UINT8           conn_paired_only;
166 } tBTA_DM_API_SET_VISIBILITY;
167
168 enum
169 {
170     BTA_DM_RS_NONE,     /* straight API call */
171     BTA_DM_RS_OK,       /* the role switch result - successful */
172     BTA_DM_RS_FAIL      /* the role switch result - failed */
173 };
174 typedef UINT8 tBTA_DM_RS_RES;
175
176 /* data type for BTA_DM_API_SEARCH_EVT */
177 typedef struct
178 {
179     BT_HDR      hdr;
180     tBTA_DM_INQ inq_params;
181     tBTA_SERVICE_MASK services;
182     tBTA_DM_SEARCH_CBACK * p_cback;
183     tBTA_DM_RS_RES  rs_res;
184 #if BLE_INCLUDED == TRUE && BTA_GATT_INCLUDED == TRUE
185     UINT8           num_uuid;
186     tBT_UUID        *p_uuid;
187 #endif
188 } tBTA_DM_API_SEARCH;
189
190 /* data type for BTA_DM_API_DISCOVER_EVT */
191 typedef struct
192 {
193     BT_HDR      hdr;
194     BD_ADDR bd_addr;
195     tBTA_SERVICE_MASK services;
196     tBTA_DM_SEARCH_CBACK * p_cback;
197     BOOLEAN         sdp_search;
198     tBTA_TRANSPORT  transport;
199 #if BLE_INCLUDED == TRUE && BTA_GATT_INCLUDED == TRUE
200     UINT8           num_uuid;
201     tBT_UUID        *p_uuid;
202 #endif
203     tSDP_UUID    uuid;
204 } tBTA_DM_API_DISCOVER;
205
206 /* data type for BTA_DM_API_DI_DISC_EVT */
207 typedef struct
208 {
209     BT_HDR              hdr;
210     BD_ADDR             bd_addr;
211     tBTA_DISCOVERY_DB   *p_sdp_db;
212     UINT32              len;
213     tBTA_DM_SEARCH_CBACK * p_cback;
214 }tBTA_DM_API_DI_DISC;
215
216 /* data type for BTA_DM_API_BOND_EVT */
217 typedef struct
218 {
219     BT_HDR      hdr;
220     BD_ADDR bd_addr;
221     tBTA_TRANSPORT transport;
222 } tBTA_DM_API_BOND;
223
224 /* data type for BTA_DM_API_BOND_CANCEL_EVT */
225 typedef struct
226 {
227     BT_HDR          hdr;
228     BD_ADDR         bd_addr;
229     tBTA_TRANSPORT  transport;
230 } tBTA_DM_API_BOND_CANCEL;
231
232 /* data type for BTA_DM_API_PIN_REPLY_EVT */
233 typedef struct
234 {
235     BT_HDR      hdr;
236     BD_ADDR bd_addr;
237     BOOLEAN accept;
238     UINT8 pin_len;
239     UINT8 p_pin[PIN_CODE_LEN];
240 } tBTA_DM_API_PIN_REPLY;
241
242 /* data type for BTA_DM_API_LOC_OOB_EVT */
243 typedef struct
244 {
245     BT_HDR      hdr;
246 } tBTA_DM_API_LOC_OOB;
247
248 /* data type for BTA_DM_API_CONFIRM_EVT */
249 typedef struct
250 {
251     BT_HDR      hdr;
252     BD_ADDR     bd_addr;
253     BOOLEAN     accept;
254 } tBTA_DM_API_CONFIRM;
255
256 /* data type for BTA_DM_CI_IO_REQ_EVT */
257 typedef struct
258 {
259     BT_HDR          hdr;
260     BD_ADDR         bd_addr;
261     tBTA_IO_CAP     io_cap;
262     tBTA_OOB_DATA   oob_data;
263     tBTA_AUTH_REQ   auth_req;
264 } tBTA_DM_CI_IO_REQ;
265
266 /* data type for BTA_DM_CI_RMT_OOB_EVT */
267 typedef struct
268 {
269     BT_HDR      hdr;
270     BD_ADDR     bd_addr;
271     BT_OCTET16  c;
272     BT_OCTET16  r;
273     BOOLEAN     accept;
274 } tBTA_DM_CI_RMT_OOB;
275
276 /* data type for BTA_DM_REMT_NAME_EVT */
277 typedef struct
278 {
279     BT_HDR      hdr;
280     tBTA_DM_SEARCH  result;
281 } tBTA_DM_REM_NAME;
282
283 /* data type for tBTA_DM_DISC_RESULT */
284 typedef struct
285 {
286     BT_HDR      hdr;
287     tBTA_DM_SEARCH  result;
288 } tBTA_DM_DISC_RESULT;
289
290
291 /* data type for BTA_DM_INQUIRY_CMPL_EVT */
292 typedef struct
293 {
294     BT_HDR      hdr;
295     UINT8       num;
296 } tBTA_DM_INQUIRY_CMPL;
297
298 /* data type for BTA_DM_SDP_RESULT_EVT */
299 typedef struct
300 {
301     BT_HDR      hdr;
302     UINT16 sdp_result;
303 } tBTA_DM_SDP_RESULT;
304
305 /* data type for BTA_DM_ACL_CHANGE_EVT */
306 typedef struct
307 {
308     BT_HDR          hdr;
309     tBTM_BL_EVENT   event;
310     UINT8           busy_level;
311     UINT8           busy_level_flags;
312     BOOLEAN         is_new;
313     UINT8           new_role;
314     BD_ADDR         bd_addr;
315     UINT8           hci_status;
316 #if BLE_INCLUDED == TRUE
317     UINT16          handle;
318     tBT_TRANSPORT   transport;
319 #endif
320 } tBTA_DM_ACL_CHANGE;
321
322 /* data type for BTA_DM_PM_BTM_STATUS_EVT */
323 typedef struct
324 {
325
326     BT_HDR          hdr;
327     BD_ADDR         bd_addr;
328     tBTM_PM_STATUS  status;
329     UINT16          value;
330     UINT8           hci_status;
331
332 } tBTA_DM_PM_BTM_STATUS;
333
334 /* data type for BTA_DM_PM_TIMER_EVT */
335 typedef struct
336 {
337     BT_HDR          hdr;
338     BD_ADDR         bd_addr;
339
340 } tBTA_DM_PM_TIMER;
341
342
343 /* data type for BTA_DM_API_ADD_DEVICE_EVT */
344 typedef struct
345 {
346     BT_HDR              hdr;
347     BD_ADDR             bd_addr;
348     DEV_CLASS           dc;
349     LINK_KEY            link_key;
350     tBTA_SERVICE_MASK   tm;
351     BOOLEAN             is_trusted;
352     UINT8               key_type;
353     tBTA_IO_CAP         io_cap;
354     BOOLEAN             link_key_known;
355     BOOLEAN             dc_known;
356     BD_NAME             bd_name;
357     UINT8               features[BTA_FEATURE_BYTES_PER_PAGE * (BTA_EXT_FEATURES_PAGE_MAX + 1)];
358     UINT8               pin_length;
359 } tBTA_DM_API_ADD_DEVICE;
360
361 /* data type for BTA_DM_API_REMOVE_ACL_EVT */
362 typedef struct
363 {
364     BT_HDR              hdr;
365     BD_ADDR             bd_addr;
366 } tBTA_DM_API_REMOVE_DEVICE;
367
368 /* data type for BTA_DM_API_EXECUTE_CBACK_EVT */
369 typedef struct
370 {
371     BT_HDR               hdr;
372     void *               p_param;
373     tBTA_DM_EXEC_CBACK  *p_exec_cback;
374 } tBTA_DM_API_EXECUTE_CBACK;
375
376 /* data type for tBTA_DM_API_SET_ENCRYPTION */
377 typedef struct
378 {
379     BT_HDR                    hdr;
380     tBTA_TRANSPORT            transport;
381     tBTA_DM_ENCRYPT_CBACK     *p_callback;
382     tBTA_DM_BLE_SEC_ACT       sec_act;
383     BD_ADDR                   bd_addr;
384 } tBTA_DM_API_SET_ENCRYPTION;
385
386 #if BLE_INCLUDED == TRUE
387 typedef struct
388 {
389     BT_HDR                  hdr;
390     BD_ADDR                 bd_addr;
391     tBTA_LE_KEY_VALUE       blekey;
392     tBTA_LE_KEY_TYPE        key_type;
393
394 }tBTA_DM_API_ADD_BLEKEY;
395
396 typedef struct
397 {
398     BT_HDR                  hdr;
399     BD_ADDR                 bd_addr;
400     tBT_DEVICE_TYPE         dev_type ;
401     tBLE_ADDR_TYPE          addr_type;
402
403 }tBTA_DM_API_ADD_BLE_DEVICE;
404
405 typedef struct
406 {
407     BT_HDR                  hdr;
408     BD_ADDR                 bd_addr;
409     BOOLEAN                 accept;
410     UINT32                  passkey;
411 }tBTA_DM_API_PASSKEY_REPLY;
412
413 typedef struct
414 {
415     BT_HDR                  hdr;
416     BD_ADDR                 bd_addr;
417     tBTA_DM_BLE_SEC_GRANT   res;
418 }tBTA_DM_API_BLE_SEC_GRANT;
419
420
421 typedef struct
422 {
423     BT_HDR                  hdr;
424     tBTA_DM_BLE_CONN_TYPE   bg_conn_type;
425     tBTA_DM_BLE_SEL_CBACK   *p_select_cback;
426 }tBTA_DM_API_BLE_SET_BG_CONN_TYPE;
427
428 /* set prefered BLE connection parameters for a device */
429 typedef struct
430 {
431     BT_HDR                  hdr;
432     BD_ADDR                 peer_bda;
433     UINT16                  conn_int_min;
434     UINT16                  conn_int_max;
435     UINT16                  supervision_tout;
436     UINT16                  slave_latency;
437
438 }tBTA_DM_API_BLE_CONN_PARAMS;
439
440 typedef struct
441 {
442     BT_HDR                  hdr;
443     BD_ADDR                 peer_bda;
444     BOOLEAN                 privacy_enable;
445
446 }tBTA_DM_API_ENABLE_PRIVACY;
447
448 typedef struct
449 {
450     BT_HDR                  hdr;
451     BOOLEAN                 privacy_enable;
452 }tBTA_DM_API_LOCAL_PRIVACY;
453
454 /* set scan parameter for BLE connections */
455 typedef struct
456 {
457     BT_HDR                  hdr;
458     UINT16                  scan_int;
459     UINT16                  scan_window;
460 }tBTA_DM_API_BLE_SCAN_PARAMS;
461
462 /* Data type for start/stop observe */
463 typedef struct
464 {
465     BT_HDR                  hdr;
466     BOOLEAN                 start;
467     UINT16                  duration;
468     tBTA_DM_SEARCH_CBACK * p_cback;
469 }tBTA_DM_API_BLE_OBSERVE;
470
471 typedef struct
472 {
473     BT_HDR      hdr;
474     BD_ADDR     remote_bda;
475     UINT16      tx_data_length;
476 }tBTA_DM_API_BLE_SET_DATA_LENGTH;
477
478 /* set adv parameter for BLE advertising */
479 typedef struct
480 {
481     BT_HDR                  hdr;
482     UINT16                  adv_int_min;
483     UINT16                  adv_int_max;
484     tBLE_BD_ADDR            *p_dir_bda;
485 }tBTA_DM_API_BLE_ADV_PARAMS;
486
487 typedef struct
488 {
489     BT_HDR                  hdr;
490     BOOLEAN                 enable;
491
492 }tBTA_DM_API_BLE_FEATURE;
493
494 /* multi adv data structure */
495 typedef struct
496 {
497     BT_HDR                      hdr;
498     tBTA_BLE_MULTI_ADV_CBACK    *p_cback;
499     void                        *p_ref;
500     tBTA_BLE_ADV_PARAMS         *p_params;
501 }tBTA_DM_API_BLE_MULTI_ADV_ENB;
502
503 typedef struct
504 {
505     BT_HDR                      hdr;
506     UINT8                        inst_id;
507     tBTA_BLE_ADV_PARAMS         *p_params;
508 }tBTA_DM_API_BLE_MULTI_ADV_PARAM;
509
510 typedef struct
511 {
512     BT_HDR                  hdr;
513     UINT8                   inst_id;
514     BOOLEAN                 is_scan_rsp;
515     tBTA_BLE_AD_MASK        data_mask;
516     tBTA_BLE_ADV_DATA      *p_data;
517 }tBTA_DM_API_BLE_MULTI_ADV_DATA;
518
519 typedef struct
520 {
521     BT_HDR                  hdr;
522     UINT8                   inst_id;
523 }tBTA_DM_API_BLE_MULTI_ADV_DISABLE;
524
525 typedef struct
526 {
527     BT_HDR                  hdr;
528     UINT32                  data_mask;
529     tBTA_BLE_ADV_DATA       *p_adv_cfg;
530     tBTA_SET_ADV_DATA_CMPL_CBACK    *p_adv_data_cback;
531 }tBTA_DM_API_SET_ADV_CONFIG;
532
533 typedef struct
534 {
535     BT_HDR                  hdr;
536     UINT8                   batch_scan_full_max;
537     UINT8                   batch_scan_trunc_max;
538     UINT8                   batch_scan_notify_threshold;
539     tBTA_BLE_SCAN_SETUP_CBACK *p_setup_cback;
540     tBTA_BLE_SCAN_THRESHOLD_CBACK *p_thres_cback;
541     tBTA_BLE_SCAN_REP_CBACK *p_read_rep_cback;
542     tBTA_DM_BLE_REF_VALUE    ref_value;
543 } tBTA_DM_API_SET_STORAGE_CONFIG;
544
545 typedef struct
546 {
547     BT_HDR                  hdr;
548     tBTA_BLE_SCAN_MODE      scan_mode;
549     UINT32                  scan_int;
550     UINT32                  scan_window;
551     tBTA_BLE_DISCARD_RULE   discard_rule;
552     tBLE_ADDR_TYPE          addr_type;
553     tBTA_DM_BLE_REF_VALUE   ref_value;
554 } tBTA_DM_API_ENABLE_SCAN;
555
556 typedef struct
557 {
558     BT_HDR                  hdr;
559     tBTA_DM_BLE_REF_VALUE    ref_value;
560 } tBTA_DM_API_DISABLE_SCAN;
561
562 typedef struct
563 {
564     BT_HDR                  hdr;
565     tBTA_BLE_SCAN_MODE scan_type;
566     tBTA_DM_BLE_REF_VALUE    ref_value;
567 } tBTA_DM_API_READ_SCAN_REPORTS;
568
569 typedef struct
570 {
571     BT_HDR                  hdr;
572     tBTA_DM_BLE_REF_VALUE ref_value;
573     tBTA_BLE_TRACK_ADV_CBACK *p_track_adv_cback;
574 } tBTA_DM_API_TRACK_ADVERTISER;
575
576 typedef struct
577 {
578     BT_HDR                  hdr;
579     tBTA_BLE_ENERGY_INFO_CBACK *p_energy_info_cback;
580 } tBTA_DM_API_ENERGY_INFO;
581
582 #endif /* BLE_INCLUDED */
583
584 /* data type for BTA_DM_API_REMOVE_ACL_EVT */
585 typedef struct
586 {
587     BT_HDR      hdr;
588     BD_ADDR     bd_addr;
589     BOOLEAN     remove_dev;
590     tBTA_TRANSPORT transport;
591
592 }tBTA_DM_API_REMOVE_ACL;
593 typedef struct
594 {
595     BT_HDR      hdr;
596     BD_ADDR     bd_addr;
597     UINT16      min_int;
598     UINT16      max_int;
599     UINT16      latency;
600     UINT16      timeout;
601 }tBTA_DM_API_UPDATE_CONN_PARAM;
602
603 #if BLE_ANDROID_CONTROLLER_SCAN_FILTER == TRUE
604 typedef struct
605 {
606     BT_HDR                          hdr;
607     tBTA_DM_BLE_SCAN_COND_OP        action;
608     tBTA_DM_BLE_PF_COND_TYPE        cond_type;
609     tBTA_DM_BLE_PF_FILT_INDEX       filt_index;
610     tBTA_DM_BLE_PF_COND_PARAM       *p_cond_param;
611     tBTA_DM_BLE_PF_CFG_CBACK      *p_filt_cfg_cback;
612     tBTA_DM_BLE_REF_VALUE            ref_value;
613 }tBTA_DM_API_CFG_FILTER_COND;
614
615 typedef struct
616 {
617     BT_HDR                          hdr;
618     UINT8                           action;
619     tBTA_DM_BLE_PF_STATUS_CBACK    *p_filt_status_cback;
620     tBTA_DM_BLE_REF_VALUE            ref_value;
621 }tBTA_DM_API_ENABLE_SCAN_FILTER;
622
623 typedef struct
624 {
625     BT_HDR                          hdr;
626     UINT8                           action;
627     tBTA_DM_BLE_PF_FILT_INDEX       filt_index;
628     tBTA_DM_BLE_PF_FILT_PARAMS      filt_params;
629     tBLE_BD_ADDR                    *p_target;
630     tBTA_DM_BLE_PF_PARAM_CBACK      *p_filt_param_cback;
631     tBTA_DM_BLE_REF_VALUE            ref_value;
632 }tBTA_DM_API_SCAN_FILTER_PARAM_SETUP;
633 #endif
634
635 /* union of all data types */
636 typedef union
637 {
638     /* GKI event buffer header */
639     BT_HDR              hdr;
640     tBTA_DM_API_ENABLE  enable;
641
642     tBTA_DM_API_SET_NAME set_name;
643
644     tBTA_DM_API_SET_VISIBILITY set_visibility;
645
646     tBTA_DM_API_ADD_DEVICE  add_dev;
647
648     tBTA_DM_API_REMOVE_DEVICE remove_dev;
649
650     tBTA_DM_API_SEARCH search;
651
652     tBTA_DM_API_DISCOVER discover;
653
654     tBTA_DM_API_BOND bond;
655
656     tBTA_DM_API_BOND_CANCEL bond_cancel;
657
658     tBTA_DM_API_PIN_REPLY pin_reply;
659
660     tBTA_DM_API_LOC_OOB     loc_oob;
661     tBTA_DM_API_CONFIRM     confirm;
662     tBTA_DM_CI_IO_REQ       ci_io_req;
663     tBTA_DM_CI_RMT_OOB      ci_rmt_oob;
664
665     tBTA_DM_REM_NAME rem_name;
666
667     tBTA_DM_DISC_RESULT disc_result;
668
669     tBTA_DM_INQUIRY_CMPL inq_cmpl;
670
671     tBTA_DM_SDP_RESULT sdp_event;
672
673     tBTA_DM_ACL_CHANGE  acl_change;
674
675     tBTA_DM_PM_BTM_STATUS pm_status;
676
677     tBTA_DM_PM_TIMER pm_timer;
678
679     tBTA_DM_API_DI_DISC     di_disc;
680
681     tBTA_DM_API_EXECUTE_CBACK exec_cback;
682
683     tBTA_DM_API_SET_ENCRYPTION     set_encryption;
684
685 #if BLE_INCLUDED == TRUE
686     tBTA_DM_API_ADD_BLEKEY              add_ble_key;
687     tBTA_DM_API_ADD_BLE_DEVICE          add_ble_device;
688     tBTA_DM_API_PASSKEY_REPLY           ble_passkey_reply;
689     tBTA_DM_API_BLE_SEC_GRANT           ble_sec_grant;
690     tBTA_DM_API_BLE_SET_BG_CONN_TYPE    ble_set_bd_conn_type;
691     tBTA_DM_API_BLE_CONN_PARAMS         ble_set_conn_params;
692     tBTA_DM_API_BLE_SCAN_PARAMS         ble_set_scan_params;
693     tBTA_DM_API_BLE_OBSERVE             ble_observe;
694     tBTA_DM_API_ENABLE_PRIVACY          ble_remote_privacy;
695     tBTA_DM_API_LOCAL_PRIVACY           ble_local_privacy;
696     tBTA_DM_API_BLE_ADV_PARAMS          ble_set_adv_params;
697     tBTA_DM_API_SET_ADV_CONFIG          ble_set_adv_data;
698 #if BLE_ANDROID_CONTROLLER_SCAN_FILTER == TRUE
699     tBTA_DM_API_SCAN_FILTER_PARAM_SETUP ble_scan_filt_param_setup;
700     tBTA_DM_API_CFG_FILTER_COND         ble_cfg_filter_cond;
701     tBTA_DM_API_ENABLE_SCAN_FILTER      ble_enable_scan_filt;
702 #endif
703     tBTA_DM_API_UPDATE_CONN_PARAM       ble_update_conn_params;
704     tBTA_DM_API_BLE_SET_DATA_LENGTH     ble_set_data_length;
705
706     tBTA_DM_API_BLE_MULTI_ADV_ENB       ble_multi_adv_enb;
707     tBTA_DM_API_BLE_MULTI_ADV_PARAM     ble_multi_adv_param;
708     tBTA_DM_API_BLE_MULTI_ADV_DATA      ble_multi_adv_data;
709     tBTA_DM_API_BLE_MULTI_ADV_DISABLE   ble_multi_adv_disable;
710
711     tBTA_DM_API_SET_STORAGE_CONFIG      ble_set_storage;
712     tBTA_DM_API_ENABLE_SCAN             ble_enable_scan;
713     tBTA_DM_API_READ_SCAN_REPORTS       ble_read_reports;
714     tBTA_DM_API_DISABLE_SCAN            ble_disable_scan;
715     tBTA_DM_API_TRACK_ADVERTISER        ble_track_advert;
716     tBTA_DM_API_ENERGY_INFO             ble_energy_info;
717 #endif
718
719     tBTA_DM_API_REMOVE_ACL              remove_acl;
720
721 } tBTA_DM_MSG;
722
723
724 #define BTA_DM_NUM_PEER_DEVICE 7
725
726 #define BTA_DM_NOT_CONNECTED  0
727 #define BTA_DM_CONNECTED      1
728 #define BTA_DM_UNPAIRING      2
729 typedef UINT8 tBTA_DM_CONN_STATE;
730
731
732 #define BTA_DM_DI_NONE          0x00       /* nothing special */
733 #define BTA_DM_DI_USE_SSR       0x10       /* set this bit if ssr is supported for this link */
734 #define BTA_DM_DI_AV_ACTIVE     0x20       /* set this bit if AV is active for this link */
735 #define BTA_DM_DI_SET_SNIFF     0x01       /* set this bit if call BTM_SetPowerMode(sniff) */
736 #define BTA_DM_DI_INT_SNIFF     0x02       /* set this bit if call BTM_SetPowerMode(sniff) & enter sniff mode */
737 #define BTA_DM_DI_ACP_SNIFF     0x04       /* set this bit if peer init sniff */
738 typedef UINT8 tBTA_DM_DEV_INFO;
739
740 typedef struct
741 {
742     BD_ADDR                     peer_bdaddr;
743     UINT16                      link_policy;
744     tBTA_DM_CONN_STATE          conn_state;
745     tBTA_PREF_ROLES             pref_role;
746     BOOLEAN                     in_use;
747     tBTA_DM_DEV_INFO            info;
748     tBTA_DM_ENCRYPT_CBACK      *p_encrypt_cback;
749 #if (BTM_SSR_INCLUDED == TRUE)
750     tBTM_PM_STATUS              prev_low;   /* previous low power mode used */
751 #endif
752     tBTA_DM_PM_ACTTION          pm_mode_attempted;
753     tBTA_DM_PM_ACTTION          pm_mode_failed;
754     BOOLEAN                     remove_dev_pending;
755     UINT16                      conn_handle;
756     tBT_TRANSPORT               transport;
757 } tBTA_DM_PEER_DEVICE;
758
759
760
761 /* structure to store list of
762   active connections */
763 typedef struct
764 {
765     tBTA_DM_PEER_DEVICE    peer_device[BTA_DM_NUM_PEER_DEVICE];
766     UINT8                  count;
767 #if BLE_INCLUDED == TRUE
768     UINT8                  le_count;
769 #endif
770 } tBTA_DM_ACTIVE_LINK;
771
772
773 typedef struct
774 {
775     BD_ADDR                 peer_bdaddr;
776     tBTA_SYS_ID             id;
777     UINT8                   app_id;
778     tBTA_SYS_CONN_STATUS    state;
779
780
781 } tBTA_DM_SRVCS;
782
783 #define BTA_DM_NUM_CONN_SRVS   5
784
785 typedef struct
786 {
787
788     UINT8 count;
789     tBTA_DM_SRVCS  conn_srvc[BTA_DM_NUM_CONN_SRVS];
790
791 }  tBTA_DM_CONNECTED_SRVCS;
792
793 typedef struct
794 {
795     TIMER_LIST_ENT          timer;
796     BD_ADDR                 peer_bdaddr;
797     BOOLEAN                 in_use;
798
799 } tBTA_PM_TIMER;
800
801 extern tBTA_DM_CONNECTED_SRVCS bta_dm_conn_srvcs;
802
803 #define BTA_DM_NUM_PM_TIMER 3
804
805 /* DM control block */
806 typedef struct
807 {
808     BOOLEAN                     is_bta_dm_active;
809     tBTA_DM_ACTIVE_LINK         device_list;
810     tBTA_DM_SEC_CBACK           *p_sec_cback;
811 #if ((defined BLE_INCLUDED) && (BLE_INCLUDED == TRUE))
812     tBTA_BLE_SCAN_SETUP_CBACK   *p_setup_cback;
813     tBTA_DM_BLE_PF_CFG_CBACK     *p_scan_filt_cfg_cback;
814     tBTA_DM_BLE_PF_STATUS_CBACK  *p_scan_filt_status_cback;
815     tBTA_DM_BLE_PF_PARAM_CBACK   *p_scan_filt_param_cback;
816     tBTA_BLE_MULTI_ADV_CBACK     *p_multi_adv_cback;
817     tBTA_BLE_ENERGY_INFO_CBACK   *p_energy_info_cback;
818 #endif
819     UINT16                      state;
820     BOOLEAN                     disabling;
821     TIMER_LIST_ENT              disable_timer;
822     UINT32                      wbt_sdp_handle;          /* WIDCOMM Extensions SDP record handle */
823     UINT8                       wbt_scn;                 /* WIDCOMM Extensions SCN */
824     UINT8                       num_master_only;
825     UINT8                       pm_id;
826     tBTA_PM_TIMER               pm_timer[BTA_DM_NUM_PM_TIMER];
827     UINT32                      role_policy_mask;   /* the bits set indicates the modules that wants to remove role switch from the default link policy */
828     UINT16                      cur_policy;         /* current default link policy */
829     UINT16                      rs_event;           /* the event waiting for role switch */
830     UINT8                       cur_av_count;       /* current AV connecions */
831     BOOLEAN                     disable_pair_mode;          /* disable pair mode or not */
832     BOOLEAN                     conn_paired_only;   /* allow connectable to paired device only or not */
833     tBTA_DM_API_SEARCH          search_msg;
834     UINT16                      page_scan_interval;
835     UINT16                      page_scan_window;
836     UINT16                      inquiry_scan_interval;
837     UINT16                      inquiry_scan_window;
838
839     /* Storage for pin code request parameters */
840     BD_ADDR                     pin_bd_addr;
841     DEV_CLASS                   pin_dev_class;
842     tBTA_DM_SEC_EVT             pin_evt;
843     UINT32          num_val;        /* the numeric value for comparison. If just_works, do not show this number to UI */
844     BOOLEAN         just_works;     /* TRUE, if "Just Works" association model */
845 #if ( BTA_EIR_CANNED_UUID_LIST != TRUE )
846     /* store UUID list for EIR */
847     TIMER_LIST_ENT              app_ready_timer;
848     UINT32                      eir_uuid[BTM_EIR_SERVICE_ARRAY_SIZE];
849 #if (BTA_EIR_SERVER_NUM_CUSTOM_UUID > 0)
850     tBT_UUID                    custom_uuid[BTA_EIR_SERVER_NUM_CUSTOM_UUID];
851 #endif
852
853 #endif
854
855     TIMER_LIST_ENT              switch_delay_timer;
856
857 } tBTA_DM_CB;
858
859 #ifndef BTA_DM_SDP_DB_SIZE
860 #define BTA_DM_SDP_DB_SIZE 250
861 #endif
862
863 /* DM search control block */
864 typedef struct
865 {
866
867     tBTA_DM_SEARCH_CBACK * p_search_cback;
868     tBTM_INQ_INFO        * p_btm_inq_info;
869     tBTA_SERVICE_MASK      services;
870     tBTA_SERVICE_MASK      services_to_search;
871     tBTA_SERVICE_MASK      services_found;
872     tSDP_DISCOVERY_DB    * p_sdp_db;
873     UINT16                 state;
874     BD_ADDR                peer_bdaddr;
875     BOOLEAN                name_discover_done;
876     BD_NAME                peer_name;
877     TIMER_LIST_ENT         search_timer;
878     UINT8                  service_index;
879     tBTA_DM_MSG          * p_search_queue;   /* search or discover commands during search cancel stored here */
880     BOOLEAN                wait_disc;
881     BOOLEAN                sdp_results;
882     tSDP_UUID              uuid;
883     UINT8                  peer_scn;
884     BOOLEAN                sdp_search;
885     tBTA_TRANSPORT         transport;
886 #if ((defined BLE_INCLUDED) && (BLE_INCLUDED == TRUE))
887     tBTA_DM_SEARCH_CBACK * p_scan_cback;
888 #if ((defined BTA_GATT_INCLUDED) && (BTA_GATT_INCLUDED == TRUE))
889     tBTA_GATTC_IF          client_if;
890     UINT8                  num_uuid;
891     tBT_UUID               *p_srvc_uuid;
892     UINT8                  uuid_to_search;
893     BOOLEAN                gatt_disc_active;
894     UINT16                 conn_id;
895     UINT8 *                 p_ble_rawdata;
896     UINT32                 ble_raw_size;
897     UINT32                 ble_raw_used;
898     TIMER_LIST_ENT         gatt_close_timer;
899     BD_ADDR                pending_close_bda;
900 #endif
901 #endif
902
903
904 } tBTA_DM_SEARCH_CB;
905
906 /* DI control block */
907 typedef struct
908 {
909     tSDP_DISCOVERY_DB    * p_di_db;     /* pointer to the DI discovery database */
910     UINT8               di_num;         /* total local DI record number */
911     UINT32              di_handle[BTA_DI_NUM_MAX];  /* local DI record handle, the first one is primary record */
912 }tBTA_DM_DI_CB;
913
914 /* DM search state */
915 enum
916 {
917
918     BTA_DM_SEARCH_IDLE,
919     BTA_DM_SEARCH_ACTIVE,
920     BTA_DM_SEARCH_CANCELLING,
921     BTA_DM_DISCOVER_ACTIVE
922
923 };
924
925
926
927 typedef struct
928 {
929     DEV_CLASS      dev_class;          /* local device class */
930     UINT16         policy_settings;    /* link policy setting hold, sniff, park, MS switch */
931     UINT16         page_timeout;       /* timeout for page in slots */
932     UINT16         link_timeout;       /* link supervision timeout in slots */
933     BOOLEAN        avoid_scatter;      /* TRUE to avoid scatternet when av is streaming (be the master) */
934
935 } tBTA_DM_CFG;
936
937 extern const UINT32 bta_service_id_to_btm_srv_id_lkup_tbl[];
938
939 extern const tBTA_DM_CFG bta_dm_cfg;
940
941
942 typedef struct
943 {
944     UINT8   id;
945     UINT8   app_id;
946     UINT8   cfg;
947
948 } tBTA_DM_RM ;
949
950 extern tBTA_DM_CFG *p_bta_dm_cfg;
951 extern tBTA_DM_RM *p_bta_dm_rm_cfg;
952
953 typedef struct
954 {
955
956   UINT8  id;
957   UINT8  app_id;
958   UINT8  spec_idx;  /* index of spec table to use */
959
960 } tBTA_DM_PM_CFG;
961
962
963 typedef struct
964 {
965
966   tBTA_DM_PM_ACTTION  power_mode;
967   UINT16              timeout;
968
969 } tBTA_DM_PM_ACTN;
970
971 typedef struct
972 {
973
974   UINT8  allow_mask;         /* mask of sniff/hold/park modes to allow */
975 #if (BTM_SSR_INCLUDED == TRUE)
976   UINT8  ssr;                /* set SSR on conn open/unpark */
977 #endif
978   tBTA_DM_PM_ACTN actn_tbl [BTA_DM_PM_NUM_EVTS][2];
979
980 } tBTA_DM_PM_SPEC;
981
982 typedef struct
983 {
984     UINT16      max_lat;
985     UINT16      min_rmt_to;
986     UINT16      min_loc_to;
987 } tBTA_DM_SSR_SPEC;
988
989 typedef struct
990 {
991    UINT16 manufacturer;
992    UINT16 lmp_sub_version;
993    UINT8 lmp_version;
994 }tBTA_DM_LMP_VER_INFO;
995
996 extern tBTA_DM_PM_CFG *p_bta_dm_pm_cfg;
997 extern tBTA_DM_PM_SPEC *p_bta_dm_pm_spec;
998 extern tBTM_PM_PWR_MD *p_bta_dm_pm_md;
999 #if (BTM_SSR_INCLUDED == TRUE)
1000 extern tBTA_DM_SSR_SPEC *p_bta_dm_ssr_spec;
1001 #endif
1002
1003 /* update dynamic BRCM Aware EIR data */
1004 extern const tBTA_DM_EIR_CONF bta_dm_eir_cfg;
1005 extern tBTA_DM_EIR_CONF *p_bta_dm_eir_cfg;
1006
1007 /* DM control block */
1008 #if BTA_DYNAMIC_MEMORY == FALSE
1009 extern tBTA_DM_CB  bta_dm_cb;
1010 #else
1011 extern tBTA_DM_CB *bta_dm_cb_ptr;
1012 #define bta_dm_cb (*bta_dm_cb_ptr)
1013 #endif
1014
1015 /* DM search control block */
1016 #if BTA_DYNAMIC_MEMORY == FALSE
1017 extern tBTA_DM_SEARCH_CB  bta_dm_search_cb;
1018 #else
1019 extern tBTA_DM_SEARCH_CB *bta_dm_search_cb_ptr;
1020 #define bta_dm_search_cb (*bta_dm_search_cb_ptr)
1021 #endif
1022
1023 /* DI control block */
1024 #if BTA_DYNAMIC_MEMORY == FALSE
1025 extern tBTA_DM_DI_CB  bta_dm_di_cb;
1026 #else
1027 extern tBTA_DM_DI_CB *bta_dm_di_cb_ptr;
1028 #define bta_dm_di_cb (*bta_dm_di_cb_ptr)
1029 #endif
1030
1031 extern BOOLEAN bta_dm_sm_execute(BT_HDR *p_msg);
1032 extern void bta_dm_sm_disable( void );
1033 extern BOOLEAN bta_dm_search_sm_execute(BT_HDR *p_msg);
1034 extern void bta_dm_search_sm_disable( void );
1035
1036
1037 extern void bta_dm_enable (tBTA_DM_MSG *p_data);
1038 extern void bta_dm_disable (tBTA_DM_MSG *p_data);
1039 extern void bta_dm_set_dev_name (tBTA_DM_MSG *p_data);
1040 extern void bta_dm_set_visibility (tBTA_DM_MSG *p_data);
1041 extern void bta_dm_bond (tBTA_DM_MSG *p_data);
1042 extern void bta_dm_bond_cancel (tBTA_DM_MSG *p_data);
1043 extern void bta_dm_pin_reply (tBTA_DM_MSG *p_data);
1044 extern void bta_dm_acl_change(tBTA_DM_MSG *p_data);
1045 extern void bta_dm_add_device (tBTA_DM_MSG *p_data);
1046 extern void bta_dm_remove_device (tBTA_DM_MSG *p_data);
1047 extern void bta_dm_close_acl(tBTA_DM_MSG *p_data);
1048
1049
1050 extern void bta_dm_pm_btm_status(tBTA_DM_MSG *p_data);
1051 extern void bta_dm_pm_timer(tBTA_DM_MSG *p_data);
1052 extern void bta_dm_add_ampkey (tBTA_DM_MSG *p_data);
1053
1054 #if BLE_INCLUDED == TRUE
1055 extern void bta_dm_add_blekey (tBTA_DM_MSG *p_data);
1056 extern void bta_dm_add_ble_device (tBTA_DM_MSG *p_data);
1057 extern void bta_dm_ble_passkey_reply (tBTA_DM_MSG *p_data);
1058 extern void bta_dm_ble_confirm_reply (tBTA_DM_MSG *p_data);
1059 extern void bta_dm_security_grant (tBTA_DM_MSG *p_data);
1060 extern void bta_dm_ble_set_bg_conn_type (tBTA_DM_MSG *p_data);
1061 extern void bta_dm_ble_set_conn_params (tBTA_DM_MSG *p_data);
1062 extern void bta_dm_ble_set_scan_params (tBTA_DM_MSG *p_data);
1063 extern void bta_dm_close_gatt_conn(tBTA_DM_MSG *p_data);
1064 extern void bta_dm_ble_observe (tBTA_DM_MSG *p_data);
1065 extern void bta_dm_ble_update_conn_params (tBTA_DM_MSG *p_data);
1066 extern void bta_dm_ble_config_local_privacy (tBTA_DM_MSG *p_data);
1067 extern void bta_dm_ble_set_adv_params (tBTA_DM_MSG *p_data);
1068 extern void bta_dm_ble_set_adv_config (tBTA_DM_MSG *p_data);
1069 extern void bta_dm_ble_set_scan_rsp (tBTA_DM_MSG *p_data);
1070 extern void bta_dm_ble_broadcast (tBTA_DM_MSG *p_data);
1071 extern void bta_dm_ble_set_data_length(tBTA_DM_MSG *p_data);
1072
1073 #if BLE_ANDROID_CONTROLLER_SCAN_FILTER == TRUE
1074 extern void bta_dm_cfg_filter_cond (tBTA_DM_MSG *p_data);
1075 extern void bta_dm_scan_filter_param_setup (tBTA_DM_MSG *p_data);
1076 extern void bta_dm_enable_scan_filter(tBTA_DM_MSG *p_data);
1077 #endif
1078 extern void btm_dm_ble_multi_adv_disable(tBTA_DM_MSG *p_data);
1079 extern void bta_dm_ble_multi_adv_data(tBTA_DM_MSG *p_data);
1080 extern void bta_dm_ble_multi_adv_upd_param(tBTA_DM_MSG *p_data);
1081 extern void bta_dm_ble_multi_adv_enb(tBTA_DM_MSG *p_data);
1082
1083 extern void bta_dm_ble_setup_storage(tBTA_DM_MSG *p_data);
1084 extern void bta_dm_ble_enable_batch_scan(tBTA_DM_MSG * p_data);
1085 extern void bta_dm_ble_disable_batch_scan(tBTA_DM_MSG * p_data);
1086 extern void bta_dm_ble_read_scan_reports(tBTA_DM_MSG * p_data);
1087 extern void bta_dm_ble_track_advertiser(tBTA_DM_MSG * p_data);
1088 extern void bta_dm_ble_get_energy_info(tBTA_DM_MSG *p_data);
1089
1090 #endif
1091 extern void bta_dm_set_encryption(tBTA_DM_MSG *p_data);
1092 extern void bta_dm_confirm(tBTA_DM_MSG *p_data);
1093 #if (BTM_OOB_INCLUDED == TRUE)
1094 extern void bta_dm_loc_oob(tBTA_DM_MSG *p_data);
1095 extern void bta_dm_ci_io_req_act(tBTA_DM_MSG *p_data);
1096 extern void bta_dm_ci_rmt_oob_act(tBTA_DM_MSG *p_data);
1097 #endif /* BTM_OOB_INCLUDED */
1098
1099 extern void bta_dm_init_pm(void);
1100 extern void bta_dm_disable_pm(void);
1101
1102 extern void bta_dm_search_start (tBTA_DM_MSG *p_data);
1103 extern void bta_dm_search_cancel (tBTA_DM_MSG *p_data);
1104 extern void bta_dm_discover (tBTA_DM_MSG *p_data);
1105 extern void bta_dm_di_disc (tBTA_DM_MSG *p_data);
1106 extern void bta_dm_inq_cmpl (tBTA_DM_MSG *p_data);
1107 extern void bta_dm_rmt_name (tBTA_DM_MSG *p_data);
1108 extern void bta_dm_sdp_result (tBTA_DM_MSG *p_data);
1109 extern void bta_dm_search_cmpl (tBTA_DM_MSG *p_data);
1110 extern void bta_dm_free_sdp_db (tBTA_DM_MSG *p_data);
1111 extern void bta_dm_disc_result (tBTA_DM_MSG *p_data);
1112 extern void bta_dm_search_result (tBTA_DM_MSG *p_data);
1113 extern void bta_dm_discovery_cmpl (tBTA_DM_MSG *p_data);
1114 extern void bta_dm_queue_search (tBTA_DM_MSG *p_data);
1115 extern void bta_dm_queue_disc (tBTA_DM_MSG *p_data);
1116 extern void bta_dm_search_clear_queue (tBTA_DM_MSG *p_data);
1117 extern void bta_dm_search_cancel_cmpl (tBTA_DM_MSG *p_data);
1118 extern void bta_dm_search_cancel_notify (tBTA_DM_MSG *p_data);
1119 extern void bta_dm_search_cancel_transac_cmpl(tBTA_DM_MSG *p_data);
1120 extern void bta_dm_disc_rmt_name (tBTA_DM_MSG *p_data);
1121 extern tBTA_DM_PEER_DEVICE * bta_dm_find_peer_device(BD_ADDR peer_addr);
1122
1123 extern void bta_dm_pm_active(BD_ADDR peer_addr);
1124
1125 void bta_dm_eir_update_uuid(UINT16 uuid16, BOOLEAN adding);
1126
1127 extern void bta_dm_enable_test_mode(tBTA_DM_MSG *p_data);
1128 extern void bta_dm_disable_test_mode(tBTA_DM_MSG *p_data);
1129 extern void bta_dm_execute_callback(tBTA_DM_MSG *p_data);
1130
1131 #endif /* BTA_DM_INT_H */