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