OSDN Git Service

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