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