44#if BLE_INCLUDED == TRUE && SMP_INCLUDED == TRUE
54#define BTM_MAX_VENDOR_SPECIFIC_LEN HCI_COMMAND_SIZE
76 BTM_SUCCESS_NO_SECURITY,
77 BTM_FAILED_ON_SECURITY ,
80typedef UINT8 tBTM_STATUS;
85#define BTM_DEVICE_ROLE_BR 0x01
86#define BTM_DEVICE_ROLE_DUAL 0x02
87#define BTM_MAX_DEVICE_ROLE BTM_DEVICE_ROLE_DUAL
88typedef UINT8 tBTM_DEVICE_ROLE;
91typedef UINT8 tBTM_BD_NAME[BTM_MAX_REM_BD_NAME_LEN + 1];
100 UINT16 lmp_subversion;
111#define BTM_VSC_CMPL_DATA_SIZE (BTM_MAX_VENDOR_SPECIFIC_LEN + sizeof(tBTM_VSC_CMPL))
124 BTM_DEV_STATUS_CMD_TOUT
127typedef UINT8 tBTM_DEV_STATUS;
130typedef void (tBTM_DEV_STATUS_CB) (tBTM_DEV_STATUS status);
137typedef void (tBTM_VS_EVT_CB) (UINT8 len, UINT8 *p);
143typedef void (tBTM_CMPL_CB) (
void *p1);
154typedef UINT8 (tBTM_FILTER_CB) (BD_ADDR bd_addr, DEV_CLASS dc);
163#define BTM_NON_DISCOVERABLE 0
164#define BTM_LIMITED_DISCOVERABLE 1
165#define BTM_GENERAL_DISCOVERABLE 2
166#define BTM_DISCOVERABLE_MASK (BTM_LIMITED_DISCOVERABLE|BTM_GENERAL_DISCOVERABLE)
167#define BTM_MAX_DISCOVERABLE BTM_GENERAL_DISCOVERABLE
169#define BTM_BLE_NON_DISCOVERABLE 0x0000
170#define BTM_BLE_LIMITED_DISCOVERABLE 0x0100
171#define BTM_BLE_GENERAL_DISCOVERABLE 0x0200
172#define BTM_BLE_MAX_DISCOVERABLE BTM_BLE_GENERAL_DISCOVERABLE
173#define BTM_BLE_DISCOVERABLE_MASK (BTM_BLE_NON_DISCOVERABLE|BTM_BLE_LIMITED_DISCOVERABLE|BTM_BLE_GENERAL_DISCOVERABLE)
176#define BTM_NON_CONNECTABLE 0
177#define BTM_CONNECTABLE 1
178#define BTM_CONNECTABLE_MASK (BTM_NON_CONNECTABLE | BTM_CONNECTABLE)
180#define BTM_BLE_NON_CONNECTABLE 0x0000
181#define BTM_BLE_CONNECTABLE 0x0100
182#define BTM_BLE_MAX_CONNECTABLE BTM_BLE_CONNECTABLE
183#define BTM_BLE_CONNECTABLE_MASK (BTM_BLE_NON_CONNECTABLE | BTM_BLE_CONNECTABLE)
187#define BTM_GENERAL_INQUIRY 0
188#define BTM_LIMITED_INQUIRY 1
189#define BTM_BR_INQUIRY_MASK 0x0f
191#define BTM_BLE_INQUIRY_NONE 0x00
192#define BTM_BLE_GENERAL_INQUIRY 0x10
193#define BTM_BLE_LIMITED_INQUIRY 0x20
194#define BTM_BLE_INQUIRY_MASK (BTM_BLE_GENERAL_INQUIRY|BTM_BLE_LIMITED_INQUIRY)
198#define BTM_INQUIRY_INACTIVE 0x0
199#define BTM_GENERAL_INQUIRY_ACTIVE 0x1
200#define BTM_LIMITED_INQUIRY_ACTIVE 0x2
201#define BTM_PERIODIC_INQUIRY_ACTIVE 0x8
202#define BTM_SSP_INQUIRY_ACTIVE 0x4
205#define BTM_SCAN_TYPE_STANDARD 0
206#define BTM_SCAN_TYPE_INTERLACED 1
209#define BTM_INQ_RESULT_STANDARD 0
210#define BTM_INQ_RESULT_WITH_RSSI 1
211#define BTM_INQ_RESULT_EXTENDED 2
213#define BTM_INQ_RES_IGNORE_RSSI 0x7f
216#define BTM_CLR_INQUIRY_FILTER 0
217#define BTM_FILTER_COND_DEVICE_CLASS HCI_FILTER_COND_DEVICE_CLASS
218#define BTM_FILTER_COND_BD_ADDR HCI_FILTER_COND_BD_ADDR
225#define BTM_INQ_RMT_NAME_EMPTY 0
226#define BTM_INQ_RMT_NAME_PENDING 1
227#define BTM_INQ_RMT_NAME_DONE 2
228#define BTM_INQ_RMT_NAME_FAILED 3
233#define BTM_FORMAT_TYPE_1 0x00
240#define BTM_COD_MINOR_UNCLASSIFIED 0x00
244#define BTM_COD_MINOR_DESKTOP_WORKSTATION 0x04
245#define BTM_COD_MINOR_SERVER_COMPUTER 0x08
246#define BTM_COD_MINOR_LAPTOP 0x0C
247#define BTM_COD_MINOR_HANDHELD_PC_PDA 0x10
248#define BTM_COD_MINOR_PALM_SIZE_PC_PDA 0x14
249#define BTM_COD_MINOR_WEARABLE_COMPUTER 0x18
253#define BTM_COD_MINOR_CELLULAR 0x04
254#define BTM_COD_MINOR_CORDLESS 0x08
255#define BTM_COD_MINOR_SMART_PHONE 0x0C
256#define BTM_COD_MINOR_WIRED_MDM_V_GTWY 0x10
257#define BTM_COD_MINOR_ISDN_ACCESS 0x14
261#define BTM_COD_MINOR_FULLY_AVAILABLE 0x00
262#define BTM_COD_MINOR_1_17_UTILIZED 0x20
263#define BTM_COD_MINOR_17_33_UTILIZED 0x40
264#define BTM_COD_MINOR_33_50_UTILIZED 0x60
265#define BTM_COD_MINOR_50_67_UTILIZED 0x80
266#define BTM_COD_MINOR_67_83_UTILIZED 0xA0
267#define BTM_COD_MINOR_83_99_UTILIZED 0xC0
268#define BTM_COD_MINOR_NO_SERVICE_AVAILABLE 0xE0
274#define BTM_COD_MINOR_CONFM_HEADSET 0x04
275#define BTM_COD_MINOR_CONFM_HANDSFREE 0x08
276#define BTM_COD_MINOR_MICROPHONE 0x10
277#define BTM_COD_MINOR_LOUDSPEAKER 0x14
278#define BTM_COD_MINOR_HEADPHONES 0x18
279#define BTM_COD_MINOR_PORTABLE_AUDIO 0x1C
280#define BTM_COD_MINOR_CAR_AUDIO 0x20
281#define BTM_COD_MINOR_SET_TOP_BOX 0x24
282#define BTM_COD_MINOR_HIFI_AUDIO 0x28
283#define BTM_COD_MINOR_VCR 0x2C
284#define BTM_COD_MINOR_VIDEO_CAMERA 0x30
285#define BTM_COD_MINOR_CAMCORDER 0x34
286#define BTM_COD_MINOR_VIDEO_MONITOR 0x38
287#define BTM_COD_MINOR_VIDDISP_LDSPKR 0x3C
288#define BTM_COD_MINOR_VIDEO_CONFERENCING 0x40
289#define BTM_COD_MINOR_GAMING_TOY 0x48
293#define BTM_COD_MINOR_KEYBOARD 0x40
294#define BTM_COD_MINOR_POINTING 0x80
295#define BTM_COD_MINOR_COMBO 0xC0
298#define BTM_COD_MINOR_JOYSTICK 0x04
299#define BTM_COD_MINOR_GAMEPAD 0x08
300#define BTM_COD_MINOR_REMOTE_CONTROL 0x0C
301#define BTM_COD_MINOR_SENSING_DEVICE 0x10
302#define BTM_COD_MINOR_DIGITIZING_TABLET 0x14
303#define BTM_COD_MINOR_CARD_READER 0x18
304#define BTM_COD_MINOR_DIGITAL_PAN 0x1C
305#define BTM_COD_MINOR_HAND_SCANNER 0x20
306#define BTM_COD_MINOR_HAND_GESTURAL_INPUT 0x24
310#define BTM_COD_MINOR_DISPLAY 0x10
311#define BTM_COD_MINOR_CAMERA 0x20
312#define BTM_COD_MINOR_SCANNER 0x40
313#define BTM_COD_MINOR_PRINTER 0x80
319#define BTM_COD_MINOR_WRIST_WATCH 0x04
320#define BTM_COD_MINOR_PAGER 0x08
321#define BTM_COD_MINOR_JACKET 0x0C
322#define BTM_COD_MINOR_HELMET 0x10
323#define BTM_COD_MINOR_GLASSES 0x14
327#define BTM_COD_MINOR_ROBOT 0x04
328#define BTM_COD_MINOR_VEHICLE 0x08
329#define BTM_COD_MINOR_DOLL_ACTION_FIGURE 0x0C
330#define BTM_COD_MINOR_CONTROLLER 0x10
331#define BTM_COD_MINOR_GAME 0x14
335#define BTM_COD_MINOR_BLOOD_MONITOR 0x04
336#define BTM_COD_MINOR_THERMOMETER 0x08
337#define BTM_COD_MINOR_WEIGHING_SCALE 0x0C
338#define BTM_COD_MINOR_GLUCOSE_METER 0x10
339#define BTM_COD_MINOR_PULSE_OXIMETER 0x14
340#define BTM_COD_MINOR_HEART_PULSE_MONITOR 0x18
341#define BTM_COD_MINOR_HEALTH_DATA_DISPLAY 0x1C
342#define BTM_COD_MINOR_STEP_COUNTER 0x20
343#define BTM_COD_MINOR_BODY_COM_ANALYZER 0x24
344#define BTM_COD_MINOR_PEAK_FLOW_MONITOR 0x28
345#define BTM_COD_MINOR_MEDICATION_MONITOR 0x2C
346#define BTM_COD_MINOR_KNEE_PROSTHESIS 0x30
347#define BTM_COD_MINOR_ANKLE_PROSTHESIS 0x34
353#define BTM_COD_MAJOR_MISCELLANEOUS 0x00
354#define BTM_COD_MAJOR_COMPUTER 0x01
355#define BTM_COD_MAJOR_PHONE 0x02
356#define BTM_COD_MAJOR_LAN_ACCESS_PT 0x03
357#define BTM_COD_MAJOR_AUDIO 0x04
358#define BTM_COD_MAJOR_PERIPHERAL 0x05
359#define BTM_COD_MAJOR_IMAGING 0x06
360#define BTM_COD_MAJOR_WEARABLE 0x07
361#define BTM_COD_MAJOR_TOY 0x08
362#define BTM_COD_MAJOR_HEALTH 0x09
363#define BTM_COD_MAJOR_UNCLASSIFIED 0x1F
368#define BTM_COD_SERVICE_LMTD_DISCOVER 0x0020
369#define BTM_COD_SERVICE_POSITIONING 0x0100
370#define BTM_COD_SERVICE_NETWORKING 0x0200
371#define BTM_COD_SERVICE_RENDERING 0x0400
372#define BTM_COD_SERVICE_CAPTURING 0x0800
373#define BTM_COD_SERVICE_OBJ_TRANSFER 0x1000
374#define BTM_COD_SERVICE_AUDIO 0x2000
375#define BTM_COD_SERVICE_TELEPHONY 0x4000
376#define BTM_COD_SERVICE_INFORMATION 0x8000
379#define BTM_COD_FORMAT_TYPE(u8, pd) {u8 = pd[2]&0x03;}
380#define BTM_COD_MINOR_CLASS(u8, pd) {u8 = pd[2]&0xFC;}
381#define BTM_COD_MAJOR_CLASS(u8, pd) {u8 = pd[1]&0x1F;}
382#define BTM_COD_SERVICE_CLASS(u16, pd) {u16 = pd[0]; u16<<=8; u16 += pd[1]&0xE0;}
385#define FIELDS_TO_COD(pd, mn, mj, sv) {pd[2] = mn; pd[1] = \
386 mj+ ((sv)&BTM_COD_SERVICE_CLASS_LO_B); \
390#define BTM_COD_FORMAT_TYPE_MASK 0x03
391#define BTM_COD_MINOR_CLASS_MASK 0xFC
392#define BTM_COD_MAJOR_CLASS_MASK 0x1F
393#define BTM_COD_SERVICE_CLASS_LO_B 0x00E0
394#define BTM_COD_SERVICE_CLASS_MASK 0xFFE0
400#ifndef BTM_EIR_UUID_LKUP_TBL
403 BTM_EIR_UUID_SERVCLASS_SERVICE_DISCOVERY_SERVER,
406 BTM_EIR_UUID_SERVCLASS_SERIAL_PORT,
407 BTM_EIR_UUID_SERVCLASS_LAN_ACCESS_USING_PPP,
408 BTM_EIR_UUID_SERVCLASS_DIALUP_NETWORKING,
409 BTM_EIR_UUID_SERVCLASS_IRMC_SYNC,
410 BTM_EIR_UUID_SERVCLASS_OBEX_OBJECT_PUSH,
411 BTM_EIR_UUID_SERVCLASS_OBEX_FILE_TRANSFER,
412 BTM_EIR_UUID_SERVCLASS_IRMC_SYNC_COMMAND,
413 BTM_EIR_UUID_SERVCLASS_HEADSET,
414 BTM_EIR_UUID_SERVCLASS_CORDLESS_TELEPHONY,
415 BTM_EIR_UUID_SERVCLASS_AUDIO_SOURCE,
416 BTM_EIR_UUID_SERVCLASS_AUDIO_SINK,
417 BTM_EIR_UUID_SERVCLASS_AV_REM_CTRL_TARGET,
419 BTM_EIR_UUID_SERVCLASS_AV_REMOTE_CONTROL,
421 BTM_EIR_UUID_SERVCLASS_INTERCOM,
422 BTM_EIR_UUID_SERVCLASS_FAX,
423 BTM_EIR_UUID_SERVCLASS_HEADSET_AUDIO_GATEWAY,
426 BTM_EIR_UUID_SERVCLASS_PANU,
427 BTM_EIR_UUID_SERVCLASS_NAP,
428 BTM_EIR_UUID_SERVCLASS_GN,
429 BTM_EIR_UUID_SERVCLASS_DIRECT_PRINTING,
431 BTM_EIR_UUID_SERVCLASS_IMAGING,
432 BTM_EIR_UUID_SERVCLASS_IMAGING_RESPONDER,
433 BTM_EIR_UUID_SERVCLASS_IMAGING_AUTO_ARCHIVE,
434 BTM_EIR_UUID_SERVCLASS_IMAGING_REF_OBJECTS,
435 BTM_EIR_UUID_SERVCLASS_HF_HANDSFREE,
436 BTM_EIR_UUID_SERVCLASS_AG_HANDSFREE,
437 BTM_EIR_UUID_SERVCLASS_DIR_PRT_REF_OBJ_SERVICE,
439 BTM_EIR_UUID_SERVCLASS_BASIC_PRINTING,
440 BTM_EIR_UUID_SERVCLASS_PRINTING_STATUS,
441 BTM_EIR_UUID_SERVCLASS_HUMAN_INTERFACE,
442 BTM_EIR_UUID_SERVCLASS_CABLE_REPLACEMENT,
443 BTM_EIR_UUID_SERVCLASS_HCRP_PRINT,
444 BTM_EIR_UUID_SERVCLASS_HCRP_SCAN,
450 BTM_EIR_UUID_SERVCLASS_SAP,
451 BTM_EIR_UUID_SERVCLASS_PBAP_PCE,
452 BTM_EIR_UUID_SERVCLASS_PBAP_PSE,
455 BTM_EIR_UUID_SERVCLASS_PHONE_ACCESS,
456 BTM_EIR_UUID_SERVCLASS_HEADSET_HS,
457 BTM_EIR_UUID_SERVCLASS_PNP_INFORMATION,
467 BTM_EIR_UUID_SERVCLASS_VIDEO_SOURCE,
468 BTM_EIR_UUID_SERVCLASS_VIDEO_SINK,
471 BTM_EIR_UUID_SERVCLASS_MESSAGE_ACCESS,
472 BTM_EIR_UUID_SERVCLASS_MESSAGE_NOTIFICATION,
473 BTM_EIR_UUID_SERVCLASS_HDP_SOURCE,
474 BTM_EIR_UUID_SERVCLASS_HDP_SINK,
480#define BTM_EIR_FOUND 0
481#define BTM_EIR_NOT_FOUND 1
482#define BTM_EIR_UNKNOWN 2
484typedef UINT8 tBTM_EIR_SEARCH_RESULT;
486#define BTM_EIR_FLAGS_TYPE HCI_EIR_FLAGS_TYPE
487#define BTM_EIR_MORE_16BITS_UUID_TYPE HCI_EIR_MORE_16BITS_UUID_TYPE
488#define BTM_EIR_COMPLETE_16BITS_UUID_TYPE HCI_EIR_COMPLETE_16BITS_UUID_TYPE
489#define BTM_EIR_MORE_32BITS_UUID_TYPE HCI_EIR_MORE_32BITS_UUID_TYPE
490#define BTM_EIR_COMPLETE_32BITS_UUID_TYPE HCI_EIR_COMPLETE_32BITS_UUID_TYPE
491#define BTM_EIR_MORE_128BITS_UUID_TYPE HCI_EIR_MORE_128BITS_UUID_TYPE
492#define BTM_EIR_COMPLETE_128BITS_UUID_TYPE HCI_EIR_COMPLETE_128BITS_UUID_TYPE
493#define BTM_EIR_SHORTENED_LOCAL_NAME_TYPE HCI_EIR_SHORTENED_LOCAL_NAME_TYPE
494#define BTM_EIR_COMPLETE_LOCAL_NAME_TYPE HCI_EIR_COMPLETE_LOCAL_NAME_TYPE
495#define BTM_EIR_TX_POWER_LEVEL_TYPE HCI_EIR_TX_POWER_LEVEL_TYPE
496#define BTM_EIR_MANUFACTURER_SPECIFIC_TYPE HCI_EIR_MANUFACTURER_SPECIFIC_TYPE
499#define BTM_EIR_OOB_BD_ADDR_TYPE HCI_EIR_OOB_BD_ADDR_TYPE
500#define BTM_EIR_OOB_COD_TYPE HCI_EIR_OOB_COD_TYPE
501#define BTM_EIR_OOB_SSP_HASH_C_TYPE HCI_EIR_OOB_SSP_HASH_C_TYPE
502#define BTM_EIR_OOB_SSP_RAND_R_TYPE HCI_EIR_OOB_SSP_RAND_R_TYPE
504#define BTM_OOB_MANDATORY_SIZE 8
505#define BTM_OOB_DATA_LEN_SIZE 2
506#define BTM_OOB_BD_ADDR_SIZE 6
507#define BTM_OOB_COD_SIZE BT_OOB_COD_SIZE
508#define BTM_OOB_HASH_C_SIZE BT_OOB_HASH_C_SIZE
509#define BTM_OOB_RAND_R_SIZE BT_OOB_RAND_R_SIZE
512#if BLE_INCLUDED == TRUE
513#define BTM_BLE_SEC_NONE 0
514#define BTM_BLE_SEC_ENCRYPT 1
515#define BTM_BLE_SEC_ENCRYPT_NO_MITM 2
516#define BTM_BLE_SEC_ENCRYPT_MITM 3
517typedef UINT8 tBTM_BLE_SEC_ACT;
523#define BTM_EIR_ARRAY_BITS 32
524#define BTM_EIR_SERVICE_ARRAY_SIZE (((UINT32)BTM_EIR_MAX_SERVICES / BTM_EIR_ARRAY_BITS) + \
525 (((UINT32)BTM_EIR_MAX_SERVICES % BTM_EIR_ARRAY_BITS) ? 1 : 0))
528#define BTM_EIR_SET_SERVICE(p, service) (((UINT32 *)(p))[(((UINT32)(service)) / BTM_EIR_ARRAY_BITS)] |= \
529 ((UINT32)1 << (((UINT32)(service)) % BTM_EIR_ARRAY_BITS)))
533#define BTM_EIR_CLR_SERVICE(p, service) (((UINT32 *)(p))[(((UINT32)(service)) / BTM_EIR_ARRAY_BITS)] &= \
534 ~((UINT32)1 << (((UINT32)(service)) % BTM_EIR_ARRAY_BITS)))
537#define BTM_EIR_HAS_SERVICE(p, service) ((((UINT32 *)(p))[(((UINT32)(service)) / BTM_EIR_ARRAY_BITS)] & \
538 ((UINT32)1 << (((UINT32)(service)) % BTM_EIR_ARRAY_BITS))) >> (((UINT32)(service)) % BTM_EIR_ARRAY_BITS))
541#define BTM_HCI_EIR_OFFSET (BT_HDR_SIZE + 4)
552 DEV_CLASS dev_class_mask;
569 UINT8 filter_cond_type;
573#define BTM_INQ_RESULT_BR 0x01
574#define BTM_INQ_RESULT_BLE 0x02
576#if (BLE_INCLUDED == TRUE)
577#define BTM_BLE_EVT_CONN_ADV 0x00
578#define BTM_BLE_EVT_CONN_DIR_ADV 0x01
579#define BTM_BLE_EVT_DISC_ADV 0x02
580#define BTM_BLE_EVT_NON_CONN_ADV 0x03
581#define BTM_BLE_EVT_SCAN_RSP 0x04
582typedef UINT8 tBTM_BLE_EVT_TYPE;
591 BD_ADDR remote_bd_addr;
593 UINT8 page_scan_rep_mode;
594 UINT8 page_scan_per_mode;
595 UINT8 page_scan_mode;
597#if (BTM_EIR_CLIENT_INCLUDED == TRUE)
598 UINT32 eir_uuid[BTM_EIR_SERVICE_ARRAY_SIZE];
599 BOOLEAN eir_complete_list;
601#if (BLE_INCLUDED == TRUE)
602 tBT_DEVICE_TYPE device_type;
603 UINT8 inq_result_type;
605 tBTM_BLE_EVT_TYPE ble_evt_type;
618 BOOLEAN appl_knows_rem_name;
623#if (BTM_INQ_GET_REMOTE_NAME == TRUE || BLE_INCLUDED == TRUE)
624 UINT16 remote_name_len;
625 tBTM_BD_NAME remote_name;
626 UINT8 remote_name_state;
627 UINT8 remote_name_type;
646 BD_NAME remote_bd_name;
666typedef void (tBTM_INQ_DB_CHANGE_CB) (
void *p1, BOOLEAN is_new);
671typedef void (tBTM_INQ_RESULTS_CB) (
tBTM_INQ_RESULTS *p_inq_results, UINT8 *p_eir);
681#define BTM_ACL_MODE_NORMAL HCI_MODE_ACTIVE
682#define BTM_ACL_MODE_HOLD HCI_MODE_HOLD
683#define BTM_ACL_MODE_SNIFF HCI_MODE_SNIFF
684#define BTM_ACL_MODE_PARK HCI_MODE_PARK
687#define BTM_ROLE_MASTER HCI_ROLE_MASTER
688#define BTM_ROLE_SLAVE HCI_ROLE_SLAVE
689#define BTM_ROLE_UNDEFINED 0xff
692#define BTM_ACL_PKT_TYPES_MASK_DM1 HCI_PKT_TYPES_MASK_DM1
693#define BTM_ACL_PKT_TYPES_MASK_DH1 HCI_PKT_TYPES_MASK_DH1
694#define BTM_ACL_PKT_TYPES_MASK_DM3 HCI_PKT_TYPES_MASK_DM3
695#define BTM_ACL_PKT_TYPES_MASK_DH3 HCI_PKT_TYPES_MASK_DH3
696#define BTM_ACL_PKT_TYPES_MASK_DM5 HCI_PKT_TYPES_MASK_DM5
697#define BTM_ACL_PKT_TYPES_MASK_DH5 HCI_PKT_TYPES_MASK_DH5
698#define BTM_ACL_PKT_TYPES_MASK_NO_2_DH1 HCI_PKT_TYPES_MASK_NO_2_DH1
699#define BTM_ACL_PKT_TYPES_MASK_NO_3_DH1 HCI_PKT_TYPES_MASK_NO_3_DH1
700#define BTM_ACL_PKT_TYPES_MASK_NO_2_DH3 HCI_PKT_TYPES_MASK_NO_2_DH3
701#define BTM_ACL_PKT_TYPES_MASK_NO_3_DH3 HCI_PKT_TYPES_MASK_NO_3_DH3
702#define BTM_ACL_PKT_TYPES_MASK_NO_2_DH5 HCI_PKT_TYPES_MASK_NO_2_DH5
703#define BTM_ACL_PKT_TYPES_MASK_NO_3_DH5 HCI_PKT_TYPES_MASK_NO_3_DH5
727 BD_ADDR remote_bd_addr;
737 BD_ADDR remote_bd_addr;
803typedef UINT8 tBTM_BL_EVENT;
804typedef UINT16 tBTM_BL_EVENT_MASK;
806#define BTM_BL_CONN_MASK 0x0001
807#define BTM_BL_DISCN_MASK 0x0002
808#define BTM_BL_UPDATE_MASK 0x0004
809#define BTM_BL_ROLE_CHG_MASK 0x0008
830#define BTM_BL_INQUIRY_PAGING_MASK 0x10
831#define BTM_BL_INQUIRY_STARTED (BTM_BL_INQUIRY_PAGING_MASK | 0x1)
832#define BTM_BL_INQUIRY_CANCELLED (BTM_BL_INQUIRY_PAGING_MASK | 0x2)
833#define BTM_BL_INQUIRY_COMPLETE (BTM_BL_INQUIRY_PAGING_MASK | 0x3)
834#define BTM_BL_PAGING_STARTED (BTM_BL_INQUIRY_PAGING_MASK | 0x4)
835#define BTM_BL_PAGING_COMPLETE (BTM_BL_INQUIRY_PAGING_MASK | 0x5)
874typedef void (tBTM_ACL_DB_CHANGE_CB) (BD_ADDR p_bda, DEV_CLASS p_dc,
875 BD_NAME p_bdn, BD_FEATURES features,
886#define BTM_INVALID_SCO_INDEX 0xFFFF
887#define BTM_INVALID_HCI_HANDLE 0xFFFF
890#define BTM_INVALID_SCO_DISC_REASON 0xFFFF
893#define BTM_SCO_PKT_TYPES_MASK_HV1 HCI_ESCO_PKT_TYPES_MASK_HV1
894#define BTM_SCO_PKT_TYPES_MASK_HV2 HCI_ESCO_PKT_TYPES_MASK_HV2
895#define BTM_SCO_PKT_TYPES_MASK_HV3 HCI_ESCO_PKT_TYPES_MASK_HV3
896#define BTM_SCO_PKT_TYPES_MASK_EV3 HCI_ESCO_PKT_TYPES_MASK_EV3
897#define BTM_SCO_PKT_TYPES_MASK_EV4 HCI_ESCO_PKT_TYPES_MASK_EV4
898#define BTM_SCO_PKT_TYPES_MASK_EV5 HCI_ESCO_PKT_TYPES_MASK_EV5
899#define BTM_SCO_PKT_TYPES_MASK_NO_2_EV3 HCI_ESCO_PKT_TYPES_MASK_NO_2_EV3
900#define BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 HCI_ESCO_PKT_TYPES_MASK_NO_3_EV3
901#define BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 HCI_ESCO_PKT_TYPES_MASK_NO_2_EV5
902#define BTM_SCO_PKT_TYPES_MASK_NO_3_EV5 HCI_ESCO_PKT_TYPES_MASK_NO_3_EV5
904#define BTM_SCO_LINK_ONLY_MASK (BTM_SCO_PKT_TYPES_MASK_HV1 | \
905 BTM_SCO_PKT_TYPES_MASK_HV2 | \
906 BTM_SCO_PKT_TYPES_MASK_HV3)
908#define BTM_ESCO_LINK_ONLY_MASK (BTM_SCO_PKT_TYPES_MASK_EV3 | \
909 BTM_SCO_PKT_TYPES_MASK_EV4 | \
910 BTM_SCO_PKT_TYPES_MASK_EV5)
912#define BTM_SCO_LINK_ALL_PKT_MASK (BTM_SCO_LINK_ONLY_MASK | \
913 BTM_ESCO_LINK_ONLY_MASK)
915#define BTM_VALID_SCO_ALL_PKT_TYPE HCI_VALID_SCO_ALL_PKT_TYPE
918#define BTM_IGNORE_SCO_PKT_TYPE 0
923#define BTM_LINK_TYPE_SCO HCI_LINK_TYPE_SCO
924#define BTM_LINK_TYPE_ESCO HCI_LINK_TYPE_ESCO
925typedef UINT8 tBTM_SCO_TYPE;
931#define BTM_SCO_ROUTE_PCM HCI_BRCM_SCO_ROUTE_PCM
932#define BTM_SCO_ROUTE_HCI HCI_BRCM_SCO_ROUTE_HCI
933typedef UINT8 tBTM_SCO_ROUTE_TYPE;
939#define BTM_SCO_CODEC_NONE 0x0000
940#define BTM_SCO_CODEC_CVSD 0x0001
941#define BTM_SCO_CODEC_MSBC 0x0002
942typedef UINT16 tBTM_SCO_CODEC_TYPE;
947#define BTM_VOICE_SETTING_CVSD ((UINT16) (HCI_INP_CODING_LINEAR | \
948 HCI_INP_DATA_FMT_2S_COMPLEMENT | \
949 HCI_INP_SAMPLE_SIZE_16BIT | \
950 HCI_AIR_CODING_FORMAT_CVSD))
952#define BTM_VOICE_SETTING_TRANS ((UINT16) (HCI_INP_CODING_LINEAR | \
953 HCI_INP_DATA_FMT_2S_COMPLEMENT | \
954 HCI_INP_SAMPLE_SIZE_16BIT | \
955 HCI_AIR_CODING_FORMAT_TRANSPNT))
962 BTM_SCO_DATA_CORRECT,
963 BTM_SCO_DATA_PAR_ERR,
965 BTM_SCO_DATA_PAR_LOST
967typedef UINT8 tBTM_SCO_DATA_FLAG;
972typedef void (tBTM_SCO_CB) (UINT16 sco_inx);
973typedef void (tBTM_SCO_DATA_CB) (UINT16 sco_inx,
BT_HDR *p_data, tBTM_SCO_DATA_FLAG status);
978#define BTM_64KBITS_RATE 0x00001f40
981#define BTM_ESCO_RETRANS_OFF 0
982#define BTM_ESCO_RETRANS_POWER 1
983#define BTM_ESCO_RETRANS_QUALITY 2
984#define BTM_ESCO_RETRANS_DONTCARE 0xff
987#define BTM_ESCO_MAX_LAT_DONTCARE 0xffff
993#define BTM_ESCO_CHG_EVT 1
994#define BTM_ESCO_CONN_REQ_EVT 2
995typedef UINT8 tBTM_ESCO_EVT;
1003 UINT16 voice_contfmt;
1004 UINT16 packet_types;
1005 UINT8 retrans_effort;
1011 UINT16 packet_types;
1012 UINT8 retrans_effort;
1023 UINT8 retrans_window;
1035 UINT8 retrans_window;
1042 DEV_CLASS dev_class;
1043 tBTM_SCO_TYPE link_type;
1066#define BTM_SEC_MODE_UNDEFINED 0
1067#define BTM_SEC_MODE_NONE 1
1068#define BTM_SEC_MODE_SERVICE 2
1069#define BTM_SEC_MODE_LINK 3
1070#define BTM_SEC_MODE_SP 4
1071#define BTM_SEC_MODE_SP_DEBUG 5
1076#define BTM_SEC_NONE 0x0000
1077#define BTM_SEC_IN_AUTHORIZE 0x0001
1078#define BTM_SEC_IN_AUTHENTICATE 0x0002
1079#define BTM_SEC_IN_ENCRYPT 0x0004
1080#define BTM_SEC_OUT_AUTHORIZE 0x0008
1081#define BTM_SEC_OUT_AUTHENTICATE 0x0010
1082#define BTM_SEC_OUT_ENCRYPT 0x0020
1083#define BTM_SEC_BOND 0x0040
1084#define BTM_SEC_BOND_CONN 0x0080
1085#define BTM_SEC_FORCE_MASTER 0x0100
1086#define BTM_SEC_ATTEMPT_MASTER 0x0200
1087#define BTM_SEC_FORCE_SLAVE 0x0400
1088#define BTM_SEC_ATTEMPT_SLAVE 0x0800
1089#define BTM_SEC_IN_MITM 0x1000
1090#define BTM_SEC_OUT_MITM 0x2000
1094#define BTM_SEC_FLAG_AUTHORIZED 0x01
1095#define BTM_SEC_FLAG_AUTHENTICATED 0x02
1096#define BTM_SEC_FLAG_ENCRYPTED 0x04
1097#define BTM_SEC_FLAG_LKEY_KNOWN 0x10
1098#define BTM_SEC_FLAG_LKEY_AUTHED 0x20
1101#define BTM_PIN_TYPE_VARIABLE HCI_PIN_TYPE_VARIABLE
1102#define BTM_PIN_TYPE_FIXED HCI_PIN_TYPE_FIXED
1107#define BTM_LKEY_TYPE_COMBINATION HCI_LKEY_TYPE_COMBINATION
1108#define BTM_LKEY_TYPE_LOCAL_UNIT HCI_LKEY_TYPE_LOCAL_UNIT
1109#define BTM_LKEY_TYPE_REMOTE_UNIT HCI_LKEY_TYPE_REMOTE_UNIT
1110#define BTM_LKEY_TYPE_DEBUG_COMB HCI_LKEY_TYPE_DEBUG_COMB
1111#define BTM_LKEY_TYPE_UNAUTH_COMB HCI_LKEY_TYPE_UNAUTH_COMB
1112#define BTM_LKEY_TYPE_AUTH_COMB HCI_LKEY_TYPE_AUTH_COMB
1113#define BTM_LKEY_TYPE_CHANGED_COMB HCI_LKEY_TYPE_CHANGED_COMB
1114#define BTM_LKEY_TYPE_IGNORE 0xff
1118#define BTM_SEC_PROTO_L2CAP 0
1119#define BTM_SEC_PROTO_SDP 1
1120#define BTM_SEC_PROTO_TCS 2
1121#define BTM_SEC_PROTO_RFCOMM 3
1122#define BTM_SEC_PROTO_OBEX 4
1123#define BTM_SEC_PROTO_BNEP 5
1124#define BTM_SEC_PROTO_HID 6
1125#define BTM_SEC_PROTO_AVDT 7
1126#define BTM_SEC_PROTO_MCA 8
1129#define BTM_SEC_ARRAY_BITS 32
1130#define BTM_SEC_SERVICE_ARRAY_SIZE (((UINT32)BTM_SEC_MAX_SERVICES / BTM_SEC_ARRAY_BITS) + \
1131 (((UINT32)BTM_SEC_MAX_SERVICES % BTM_SEC_ARRAY_BITS) ? 1 : 0))
1136#define BTM_SEC_SERVICE_SDP_SERVER 0
1137#define BTM_SEC_SERVICE_SERIAL_PORT 1
1138#define BTM_SEC_SERVICE_LAN_ACCESS 2
1139#define BTM_SEC_SERVICE_DUN 3
1140#define BTM_SEC_SERVICE_IRMC_SYNC 4
1141#define BTM_SEC_SERVICE_IRMC_SYNC_CMD 5
1142#define BTM_SEC_SERVICE_OBEX 6
1143#define BTM_SEC_SERVICE_OBEX_FTP 7
1144#define BTM_SEC_SERVICE_HEADSET 8
1145#define BTM_SEC_SERVICE_CORDLESS 9
1146#define BTM_SEC_SERVICE_INTERCOM 10
1147#define BTM_SEC_SERVICE_FAX 11
1148#define BTM_SEC_SERVICE_HEADSET_AG 12
1149#define BTM_SEC_SERVICE_PNP_INFO 13
1150#define BTM_SEC_SERVICE_GEN_NET 14
1151#define BTM_SEC_SERVICE_GEN_FILE 15
1152#define BTM_SEC_SERVICE_GEN_AUDIO 16
1153#define BTM_SEC_SERVICE_GEN_TEL 17
1154#define BTM_SEC_SERVICE_CTP_DATA 18
1155#define BTM_SEC_SERVICE_HCRP_CTRL 19
1156#define BTM_SEC_SERVICE_HCRP_DATA 20
1157#define BTM_SEC_SERVICE_HCRP_NOTIF 21
1158#define BTM_SEC_SERVICE_BPP_JOB 22
1159#define BTM_SEC_SERVICE_BPP_STATUS 23
1160#define BTM_SEC_SERVICE_BPP_REF 24
1161#define BTM_SEC_SERVICE_BNEP_PANU 25
1162#define BTM_SEC_SERVICE_BNEP_GN 26
1163#define BTM_SEC_SERVICE_BNEP_NAP 27
1164#define BTM_SEC_SERVICE_HF_HANDSFREE 28
1165#define BTM_SEC_SERVICE_AG_HANDSFREE 29
1166#define BTM_SEC_SERVICE_TE_PHONE_ACCESS 30
1167#define BTM_SEC_SERVICE_ME_PHONE_ACCESS 31
1169#define BTM_SEC_SERVICE_HID_SEC_CTRL 32
1170#define BTM_SEC_SERVICE_HID_NOSEC_CTRL 33
1171#define BTM_SEC_SERVICE_HID_INTR 34
1172#define BTM_SEC_SERVICE_BIP 35
1173#define BTM_SEC_SERVICE_BIP_REF 36
1174#define BTM_SEC_SERVICE_AVDTP 37
1175#define BTM_SEC_SERVICE_AVDTP_NOSEC 38
1176#define BTM_SEC_SERVICE_AVCTP 39
1177#define BTM_SEC_SERVICE_SAP 40
1178#define BTM_SEC_SERVICE_PBAP 41
1179#define BTM_SEC_SERVICE_RFC_MUX 42
1180#define BTM_SEC_SERVICE_AVCTP_BROWSE 43
1181#define BTM_SEC_SERVICE_MAP 44
1182#define BTM_SEC_SERVICE_MAP_NOTIF 45
1183#define BTM_SEC_SERVICE_MCAP_CTRL 46
1184#define BTM_SEC_SERVICE_MCAP_DATA 47
1185#define BTM_SEC_SERVICE_HDP_SNK 48
1186#define BTM_SEC_SERVICE_HDP_SRC 49
1187#define BTM_SEC_SERVICE_ATT 50
1190#define BTM_SEC_SERVICE_FIRST_EMPTY 51
1192#ifndef BTM_SEC_MAX_SERVICES
1193#define BTM_SEC_MAX_SERVICES 65
1200#define BTM_SEC_SET_SERVICE(p, service) (((UINT32 *)(p))[(((UINT32)(service)) / BTM_SEC_ARRAY_BITS)] |= \
1201 ((UINT32)1 << (((UINT32)(service)) % BTM_SEC_ARRAY_BITS)))
1205#define BTM_SEC_CLR_SERVICE(p, service) (((UINT32 *)(p))[(((UINT32)(service)) / BTM_SEC_ARRAY_BITS)] &= \
1206 ~((UINT32)1 << (((UINT32)(service)) % BTM_SEC_ARRAY_BITS)))
1209#define BTM_SEC_IS_SERVICE_TRUSTED(p, service) (((((UINT32 *)(p))[(((UINT32)(service)) / BTM_SEC_ARRAY_BITS)]) & \
1210 (UINT32)(((UINT32)1 << (((UINT32)(service)) % BTM_SEC_ARRAY_BITS)))) ? TRUE : FALSE)
1213#define BTM_SEC_COPY_TRUSTED_DEVICE(p_src, p_dst) {int trst; for (trst = 0; trst < BTM_SEC_SERVICE_ARRAY_SIZE; trst++) \
1214 ((UINT32 *)(p_dst))[trst] = ((UINT32 *)(p_src))[trst];}
1217#define BTM_SEC_CLR_TRUSTED_DEVICE(p_dst) {int trst; for (trst = 0; trst < BTM_SEC_SERVICE_ARRAY_SIZE; trst++) \
1218 ((UINT32 *)(p_dst))[trst] = 0;}
1222#define BTM_SEC_TRUST_SDP_SERVER (1 << BTM_SEC_SERVICE_SDP_SERVER)
1223#define BTM_SEC_TRUST_SERIAL_PORT (1 << BTM_SEC_SERVICE_SERIAL_PORT)
1224#define BTM_SEC_TRUST_LAN_ACCESS (1 << BTM_SEC_SERVICE_LAN_ACCESS)
1225#define BTM_SEC_TRUST_DUN (1 << BTM_SEC_SERVICE_DUN)
1226#define BTM_SEC_TRUST_IRMC_SYNC (1 << BTM_SEC_SERVICE_IRMC_SYNC)
1227#define BTM_SEC_TRUST_IRMC_SYNC_CMD (1 << BTM_SEC_SERVICE_IRMC_SYNC_CMD)
1228#define BTM_SEC_TRUST_OBEX (1 << BTM_SEC_SERVICE_OBEX)
1229#define BTM_SEC_TRUST_OBEX_FTP (1 << BTM_SEC_SERVICE_OBEX_FTP)
1230#define BTM_SEC_TRUST_HEADSET (1 << BTM_SEC_SERVICE_HEADSET)
1231#define BTM_SEC_TRUST_CORDLESS (1 << BTM_SEC_SERVICE_CORDLESS)
1232#define BTM_SEC_TRUST_INTERCOM (1 << BTM_SEC_SERVICE_INTERCOM)
1233#define BTM_SEC_TRUST_FAX (1 << BTM_SEC_SERVICE_FAX)
1234#define BTM_SEC_TRUST_HEADSET_AG (1 << BTM_SEC_SERVICE_HEADSET_AG)
1235#define BTM_SEC_TRUST_PNP_INFO (1 << BTM_SEC_SERVICE_PNP_INFO)
1236#define BTM_SEC_TRUST_GEN_NET (1 << BTM_SEC_SERVICE_GEN_NET)
1237#define BTM_SEC_TRUST_GEN_FILE (1 << BTM_SEC_SERVICE_GEN_FILE)
1238#define BTM_SEC_TRUST_GEN_AUDIO (1 << BTM_SEC_SERVICE_GEN_AUDIO)
1239#define BTM_SEC_TRUST_GEN_TEL (1 << BTM_SEC_SERVICE_GEN_TEL)
1240#define BTM_SEC_TRUST_CTP_DATA (1 << BTM_SEC_SERVICE_CTP_DATA)
1241#define BTM_SEC_TRUST_HCRP_CTRL (1 << BTM_SEC_SERVICE_HCRP_CTRL)
1242#define BTM_SEC_TRUST_HCRP_DATA (1 << BTM_SEC_SERVICE_HCRP_DATA)
1243#define BTM_SEC_TRUST_HCRP_NOTIF (1 << BTM_SEC_SERVICE_HCRP_NOTIF)
1244#define BTM_SEC_TRUST_BPP_JOB (1 << BTM_SEC_SERVICE_JOB)
1245#define BTM_SEC_TRUST_BPP_STATUS (1 << BTM_SEC_SERVICE_STATUS)
1246#define BTM_SEC_TRUST_BPP_REF (1 << BTM_SEC_SERVICE_REF)
1247#define BTM_SEC_TRUST_BNEP_PANU (1 << BTM_SEC_SERVICE_BNEP_PANU)
1248#define BTM_SEC_TRUST_BNEP_GN (1 << BTM_SEC_SERVICE_BNEP_GN)
1249#define BTM_SEC_TRUST_BNEP_NAP (1 << BTM_SEC_SERVICE_BNEP_NAP)
1250#define BTM_SEC_TRUST_HFP_HF (1 << BTM_SEC_SERVICE_HF_HANDSFREE)
1251#define BTM_SEC_TRUST_HFP_AG (1 << BTM_SEC_SERVICE_AG_HANDSFREE)
1252#define BTM_SEC_TRUST_TE_PHONE_ACCESS (1 << BTM_SEC_SERVICE_TE_PHONE_ACCESS)
1253#define BTM_SEC_TRUST_ME_PHONE_ACCESS (1 << BTM_SEC_SERVICE_ME_PHONE_ACCESS)
1256#define BTM_SEC_TRUST_HID_CTRL (1 << (BTM_SEC_SERVICE_HID_SEC_CTRL - 32))
1257#define BTM_SEC_TRUST_HID_NOSEC_CTRL (1 << (BTM_SEC_SERVICE_HID_NOSEC_CTRL - 32))
1258#define BTM_SEC_TRUST_HID_INTR (1 << (BTM_SEC_SERVICE_HID_INTR - 32))
1259#define BTM_SEC_TRUST_BIP (1 << (BTM_SEC_SERVICE_BIP - 32))
1260#define BTM_SEC_TRUST_BIP_REF (1 << (BTM_SEC_SERVICE_BIP_REF - 32))
1261#define BTM_SEC_TRUST_AVDTP (1 << (BTM_SEC_SERVICE_AVDTP - 32))
1262#define BTM_SEC_TRUST_AVDTP_NOSEC (1 << (BTM_SEC_SERVICE_AVDTP_NOSEC - 32))
1263#define BTM_SEC_TRUST_AVCTP (1 << (BTM_SEC_SERVICE_AVCTP - 32))
1264#define BTM_SEC_TRUST_SAP (1 << (BTM_SEC_SERVICE_SAP - 32))
1265#define BTM_SEC_TRUST_PBAP (1 << (BTM_SEC_SERVICE_PBAP - 32))
1266#define BTM_SEC_TRUST_RFC_MUX (1 << (BTM_SEC_SERVICE_RFC_MUX - 32))
1267#define BTM_SEC_TRUST_AVCTP_BROWSE (1 << (BTM_SEC_SERVICE_AVCTP_BROWSE - 32))
1268#define BTM_SEC_TRUST_MAP (1 << (BTM_SEC_SERVICE_MAP - 32))
1269#define BTM_SEC_TRUST_MAP_NOTIF (1 << (BTM_SEC_SERVICE_MAP_NOTIF - 32))
1270#define BTM_SEC_TRUST_MCAP_CTRL (1 << (BTM_SEC_SERVICE_MCAP_CTRL - 32))
1271#define BTM_SEC_TRUST_MCAP_DATA (1 << (BTM_SEC_SERVICE_MCAP_DATA - 32))
1272#define BTM_SEC_TRUST_HDP_SNK (1 << (BTM_SEC_SERVICE_HDP_SNK - 32))
1273#define BTM_SEC_TRUST_HDP_SRC (1 << (BTM_SEC_SERVICE_HDP_SRC - 32))
1275#define BTM_SEC_TRUST_ALL 0xFFFFFFFF
1290typedef UINT8 (tBTM_AUTHORIZE_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dev_class,
1291 tBTM_BD_NAME bd_name, UINT8 *service_name,
1292 UINT8 service_id, BOOLEAN is_originator);
1299typedef UINT8 (tBTM_PIN_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dev_class,
1300 tBTM_BD_NAME bd_name);
1307typedef UINT8 (tBTM_LINK_KEY_REQ_CALLBACK) (BD_ADDR bd_addr, LINK_KEY key);
1314typedef UINT8 (tBTM_LINK_KEY_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dev_class,
1315 tBTM_BD_NAME bd_name, UINT8 *key,
1323typedef void (tBTM_RMT_NAME_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dc,
1324 tBTM_BD_NAME bd_name);
1333typedef UINT8 (tBTM_AUTH_COMPLETE_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dev_class,
1334 tBTM_BD_NAME bd_name,
int result);
1341typedef UINT8 (tBTM_ABORT_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dev_class,
1342 tBTM_BD_NAME bd_name);
1349 BTM_SP_KEY_NOTIF_EVT,
1351 BTM_SP_KEYPRESS_EVT,
1357typedef UINT8 tBTM_SP_EVT;
1359#define BTM_IO_CAP_OUT 0
1360#define BTM_IO_CAP_IO 1
1361#define BTM_IO_CAP_IN 2
1362#define BTM_IO_CAP_NONE 3
1363#if BLE_INCLUDED == TRUE && SMP_INCLUDED == TRUE
1364#define BTM_IO_CAP_KBDISP 4
1365#define BTM_IO_CAP_MAX 5
1367#define BTM_IO_CAP_MAX 4
1370typedef UINT8 tBTM_IO_CAP;
1372#define BTM_MAX_PASSKEY_VAL (999999)
1373#define BTM_MIN_PASSKEY_VAL (0)
1375#define BTM_AUTH_SP_NO 0
1377#define BTM_AUTH_SP_YES 1
1379#define BTM_AUTH_AP_NO 2
1381#define BTM_AUTH_AP_YES 3
1383#define BTM_AUTH_SPGB_NO 4
1385#define BTM_AUTH_SPGB_YES 5
1387#define BTM_AUTH_DD_BOND 2
1388#define BTM_AUTH_GB_BIT 4
1389#define BTM_AUTH_BONDS 6
1390#define BTM_AUTH_YN_BIT 1
1392typedef UINT8 tBTM_AUTH_REQ;
1398#if BTM_OOB_INCLUDED == TRUE
1402typedef UINT8 tBTM_OOB_DATA;
1409 tBTM_OOB_DATA oob_data;
1410 tBTM_AUTH_REQ auth_req;
1419 tBTM_OOB_DATA oob_data;
1420 tBTM_AUTH_REQ auth_req;
1427 DEV_CLASS dev_class;
1428 tBTM_BD_NAME bd_name;
1431 tBTM_AUTH_REQ loc_auth_req;
1432 tBTM_AUTH_REQ rmt_auth_req;
1433 tBTM_IO_CAP loc_io_caps;
1434 tBTM_IO_CAP rmt_io_caps;
1441 DEV_CLASS dev_class;
1442 tBTM_BD_NAME bd_name;
1449 DEV_CLASS dev_class;
1450 tBTM_BD_NAME bd_name;
1462typedef UINT8 tBTM_SP_KEY_TYPE;
1468 tBTM_SP_KEY_TYPE notif_type;
1483 DEV_CLASS dev_class;
1484 tBTM_BD_NAME bd_name;
1492 DEV_CLASS dev_class;
1493 tBTM_BD_NAME bd_name;
1521typedef UINT8 (tBTM_SP_CALLBACK) (tBTM_SP_EVT event,
tBTM_SP_EVT_DATA *p_data);
1524typedef void (tBTM_MKEY_CALLBACK) (BD_ADDR bd_addr, UINT8 status, UINT8 key_flag) ;
1532typedef void (tBTM_SEC_CBACK) (BD_ADDR bd_addr,
void *p_ref_data, tBTM_STATUS result);
1538typedef void (tBTM_BOND_CANCEL_CMPL_CALLBACK) (tBTM_STATUS result);
1544 BTM_LE_IO_REQ_EVT = 1,
1545 BTM_LE_SEC_REQUEST_EVT,
1546 BTM_LE_KEY_NOTIF_EVT,
1552typedef UINT8 tBTM_LE_EVT;
1554#define BTM_LE_KEY_PENC SMP_SEC_KEY_TYPE_ENC
1555#define BTM_LE_KEY_PID SMP_SEC_KEY_TYPE_ID
1556#define BTM_LE_KEY_PCSRK SMP_SEC_KEY_TYPE_CSRK
1557#define BTM_LE_KEY_LENC (SMP_SEC_KEY_TYPE_ENC << 3)
1558#define BTM_LE_KEY_LID (SMP_SEC_KEY_TYPE_ID << 3)
1559#define BTM_LE_KEY_LCSRK (SMP_SEC_KEY_TYPE_CSRK << 3)
1560typedef UINT8 tBTM_LE_KEY_TYPE;
1562#define BTM_LE_AUTH_REQ_NO_BOND SMP_AUTH_NO_BOND
1563#define BTM_LE_AUTH_REQ_BOND SMP_AUTH_GEN_BOND
1564#define BTM_LE_AUTH_REQ_MITM SMP_AUTH_YN_BIT
1565typedef UINT8 tBTM_LE_AUTH_REQ;
1567#define BTM_LE_AUTH_REQ_MASK SMP_AUTH_MASK
1570#define BTM_LE_SEC_NONE SMP_SEC_NONE
1571#define BTM_LE_SEC_UNAUTHENTICATE SMP_SEC_UNAUTHENTICATE
1572#define BTM_LE_SEC_AUTHENTICATED SMP_SEC_AUTHENTICATED
1573typedef UINT8 tBTM_LE_SEC;
1580 tBTM_LE_AUTH_REQ auth_req;
1582 tBTM_LE_KEY_TYPE init_keys;
1583 tBTM_LE_KEY_TYPE resp_keys;
1586#if BLE_INCLUDED == TRUE && SMP_INCLUDED == TRUE
1642 tBTM_LE_KEY_TYPE key_type;
1651#if BLE_INCLUDED == TRUE && SMP_INCLUDED == TRUE
1660typedef UINT8 (tBTM_LE_CALLBACK) (tBTM_LE_EVT event, BD_ADDR bda,
tBTM_LE_EVT_DATA *p_data);
1662#define BTM_BLE_KEY_TYPE_ID 1
1663#define BTM_BLE_KEY_TYPE_ER 2
1664#define BTM_BLE_KEY_TYPE_COUNTER 3
1692 tBTM_AUTHORIZE_CALLBACK *p_authorize_callback;
1693 tBTM_PIN_CALLBACK *p_pin_callback;
1694 tBTM_LINK_KEY_CALLBACK *p_link_key_callback;
1695 tBTM_LINK_KEY_REQ_CALLBACK *p_link_key_req_callback;
1696 tBTM_AUTH_COMPLETE_CALLBACK *p_auth_complete_callback;
1697 tBTM_ABORT_CALLBACK *p_abort_callback;
1698 tBTM_BOND_CANCEL_CMPL_CALLBACK *p_bond_cancel_cmpl_callback;
1699 tBTM_SP_CALLBACK *p_sp_callback;
1700#if BLE_INCLUDED == TRUE
1701#if SMP_INCLUDED == TRUE
1702 tBTM_LE_CALLBACK *p_le_callback;
1704 tBTM_LE_KEY_CALLBACK *p_le_key_callback;
1711typedef void (tBTM_LSTO_CBACK) (BD_ADDR remote_bda, UINT16 timeout);
1722 BTM_PM_STS_ACTIVE = HCI_MODE_ACTIVE,
1723 BTM_PM_STS_HOLD = HCI_MODE_HOLD,
1724 BTM_PM_STS_SNIFF = HCI_MODE_SNIFF,
1725 BTM_PM_STS_PARK = HCI_MODE_PARK,
1730typedef UINT8 tBTM_PM_STATUS;
1735 BTM_PM_MD_ACTIVE = BTM_PM_STS_ACTIVE,
1736 BTM_PM_MD_HOLD = BTM_PM_STS_HOLD,
1737 BTM_PM_MD_SNIFF = BTM_PM_STS_SNIFF,
1738 BTM_PM_MD_PARK = BTM_PM_STS_PARK,
1739 BTM_PM_MD_FORCE = 0x10
1741typedef UINT8 tBTM_PM_MODE;
1743#define BTM_PM_SET_ONLY_ID 0x80
1746#define BTM_PM_REG_SET 1
1747#define BTM_PM_REG_NOTIF 2
1748#define BTM_PM_DEREG 4
1765typedef void (tBTM_PM_STATUS_CBACK) (BD_ADDR p_bda, tBTM_PM_STATUS status,
1766 UINT16 value, UINT8 hci_status);
1772#define BTM_CB_EVT_RETURN_LINK_KEYS 1
1773#define BTM_CB_EVT_READ_STORED_LINK_KEYS 2
1774#define BTM_CB_EVT_WRITE_STORED_LINK_KEYS 3
1775#define BTM_CB_EVT_DELETE_STORED_LINK_KEYS 4
1831#define BTM_FEATURE_MULTI_AV_MASK 0x01
1832#define BTM_FEATURE_MULTI_AV_OFF 0
1833#define BTM_VSC_MULTI_AV_SUPPORTED(x) ((x)[BTM_FEATURE_MULTI_AV_OFF] & BTM_FEATURE_MULTI_AV_MASK)
1836#define BTM_FEATURE_WBS_SBC_MASK 0x02
1837#define BTM_FEATURE_WBS_SBC_OFF 0
1838#define BTM_VSC_WBS_SBC_SUPPORTED(x) ((x)[BTM_FEATURE_WBS_SBC_OFF] & BTM_FEATURE_WBS_SBC_MASK)
1841#define BTM_FEATURE_AUDIO_LC_PLC_MASK 0x04
1842#define BTM_FEATURE_AUDIO_LC_PLC_OFF 0
1843#define BTM_VSC_AUDIO_LC_PLC_SUPPORTED(x) ((x)[BTM_FEATURE_AUDIO_LC_PLC_OFF] & BTM_FEATURE_AUDIO_LC_PLC_MASK)
1846#define BTM_FEATURE_LIGHT_STACK_MASK 0x08
1847#define BTM_FEATURE_LIGHT_STACK_OFF 0
1848#define BTM_VSC_LIGHT_STACK_SUPPORTED(x) ((x)[BTM_FEATURE_LIGHT_STACK_OFF] & BTM_FEATURE_LIGHT_STACK_MASK)
1851#define BTM_FEATURE_NFC_MASK (HCI_BRCM_FEATURE_NFC_MASK)
1852#define BTM_FEATURE_NFC_OFF (HCI_BRCM_FEATURE_NFC_OFF)
1853#define BTM_VSC_NFC_SUPPORTED(x) ((x)[BTM_FEATURE_NFC_OFF] & BTM_FEATURE_NFC_MASK)
1860#define BTM_SYNC_SUCCESS 0
1861#define BTM_SYNC_FAIL_BTE_SWITCH_REJECTED 1
1862#define BTM_SYNC_FAIL_TRANS_PAUSE 2
1863#define BTM_SYNC_FAIL_CORE_SYNC 3
1864#define BTM_SYNC_FAIL_BTA_SYNC 4
1865#define BTM_SYNC_FAIL_TRANS_RESUME 5
1866#define BTM_SYNC_FAIL_RESYNC 6
1867#define BTM_SYNC_FAIL_ERROR 7
1868#define BTM_SYNC_FAIL_UIPC_OPEN 8
1869typedef UINT8 tBTM_SYNC_STATUS;
1872#define BTM_SW_BB_TO_MM 0
1873#define BTM_SW_TO_BB 1
1874#define BTM_SW_RESYNC 2
1875#define BTM_SW_BB_TO_BTC 3
1876#define BTM_SW_MM_TO_BB 4
1877#define BTM_SW_BTC_TO_BB 5
1878typedef UINT8 tBTM_SW_DIR;
1881#define BTM_SYNC_CPLT_EVT 0
1882#define BTM_SYNC_BTA_EVT 1
1883#define BTM_RESYNC_CPLT_EVT 2
1884#define BTM_UIPC_OPENED_EVT 3
1885#define BTM_UIPC_CLOSED_EVT 4
1886typedef UINT8 tBTM_SYNC_STACK_EVT;
1892 UINT16 lcid[BTM_SYNC_INFO_NUM_STR];
1893 UINT8 avdt_handle[BTM_SYNC_INFO_NUM_STR];
1901typedef void (*tBTM_SYNC_STACK_CBACK)(tBTM_SYNC_STACK_EVT event, tBTM_SYNC_STATUS status);
1910typedef void (*tBTM_SYNC_CPLT_CBACK)(tBTM_STATUS status);
1921typedef void (tBTM_IPC_EVT_CBACK)(tBTM_STATUS status,
BT_HDR *p_data);
1926 BTM_MIP_MODE_CHG_EVT,
1927 BTM_MIP_DISCONNECT_EVT,
1928 BTM_MIP_PKTS_COMPL_EVT,
1931typedef UINT8 tBTM_MIP_EVT;
1947#define BTM_MIP_MAX_RX_LEN 17
1954 UINT8 rx_data[BTM_MIP_MAX_RX_LEN];
1984typedef BOOLEAN (tBTM_MIP_QUERY_CB) (BD_ADDR dev_addr, UINT8 *p_mode, LINK_KEY link_key);
2006 BTM_API
extern tBTM_STATUS BTM_SetAfhChannels (UINT8 first, UINT8 last);
2017 BTM_API
extern tBTM_STATUS BTM_SetAfhChannelAssessment (BOOLEAN enable_or_disable);
2030 BTM_API
extern void BTM_DeviceReset (tBTM_CMPL_CB *p_cb);
2042 BTM_API
extern BOOLEAN BTM_IsDeviceUp (
void);
2054 BTM_API
extern tBTM_STATUS BTM_SetLocalDeviceName (
char *p_name);
2065 BTM_API
extern tBTM_STATUS BTM_SetDeviceClass (DEV_CLASS dev_class);
2081 BTM_API
extern tBTM_STATUS BTM_ReadLocalDeviceName (
char **p_name);
2093 BTM_API
extern tBTM_STATUS BTM_ReadLocalDeviceNameFromController (tBTM_CMPL_CB *p_rln_cmpl_cback);
2117 BTM_API
extern tBTM_STATUS BTM_ReadLocalDeviceAddr (tBTM_CMPL_CB *p_cb);
2130 BTM_API
extern void BTM_GetLocalDeviceAddr (BD_ADDR bd_addr);
2142 BTM_API
extern UINT8 *BTM_ReadDeviceClass (
void);
2154 BTM_API
extern UINT8 *BTM_ReadLocalFeatures (
void);
2165 BTM_API
extern UINT8 *BTM_ReadBrcmFeatures (
void);
2178 BTM_API
extern tBTM_DEV_STATUS_CB *BTM_RegisterForDeviceStatusNotif (tBTM_DEV_STATUS_CB *p_cb);
2197 BTM_API
extern tBTM_STATUS BTM_RegisterForVSEvents (tBTM_VS_EVT_CB *p_cb);
2199 BTM_API
extern tBTM_STATUS BTM_RegisterForVSEvents (tBTM_VS_EVT_CB *p_cb, BOOLEAN is_register);
2217 BTM_API
extern void BTM_ContinueReset (
void);
2234 BTM_API
extern tBTM_STATUS BTM_VendorSpecificCommand(UINT16 opcode,
2237 tBTM_VSC_CMPL_CB *p_cb);
2250 BTM_API
extern UINT8 BTM_AllocateSCN(
void);
2262BTM_API
extern BOOLEAN BTM_TryAllocateSCN(UINT8 scn);
2275 BTM_API
extern BOOLEAN BTM_FreeSCN(UINT8 scn);
2288 BTM_API
extern UINT8 BTM_SetTraceLevel (UINT8 new_level);
2302 BTM_API
extern tBTM_STATUS BTM_WritePageTimeout(UINT16 timeout);
2317 BTM_API
extern tBTM_STATUS BTM_WriteVoiceSettings(UINT16 settings);
2334 BTM_API
extern tBTM_STATUS BTM_EnableTestMode(
void);
2357 BTM_API
extern tBTM_STATUS BTM_SetDiscoverability (UINT16 inq_mode, UINT16 window,
2375 BTM_API
extern UINT16 BTM_ReadDiscoverability (UINT16 *p_window,
2376 UINT16 *p_interval);
2406 BTM_API
extern tBTM_STATUS BTM_SetPeriodicInquiryMode (
tBTM_INQ_PARMS *p_inqparms,
2407 UINT16 max_delay, UINT16 min_delay,
2408 tBTM_INQ_RESULTS_CB *p_results_cb);
2440 BTM_API
extern tBTM_STATUS BTM_StartInquiry (
tBTM_INQ_PARMS *p_inqparms,
2441 tBTM_INQ_RESULTS_CB *p_results_cb,
2442 tBTM_CMPL_CB *p_cmpl_cb);
2457 BTM_API
extern UINT16 BTM_IsInquiryActive (
void);
2471 BTM_API
extern tBTM_STATUS BTM_CancelInquiry(
void);
2486 BTM_API
extern tBTM_STATUS BTM_CancelPeriodicInquiry(
void);
2500 BTM_API
extern void BTM_SetInquiryFilterCallback(tBTM_FILTER_CB *p_callback);
2516 BTM_API
extern tBTM_STATUS BTM_SetConnectability (UINT16 page_mode, UINT16 window,
2532 BTM_API
extern UINT16 BTM_ReadConnectability (UINT16 *p_window, UINT16 *p_interval);
2551 BT_API
extern tBTM_STATUS BTM_SetInquiryMode (UINT8 mode);
2567 BT_API
extern tBTM_STATUS BTM_SetInquiryScanType (UINT16 scan_type);
2584 BT_API
extern tBTM_STATUS BTM_SetPageScanType (UINT16 scan_type);
2608 BTM_API
extern tBTM_STATUS BTM_ReadRemoteDeviceName (BD_ADDR remote_bda,
2609 tBTM_CMPL_CB *p_cb);
2628 BTM_API
extern tBTM_STATUS BTM_CancelRemoteDeviceName (
void);
2639 BTM_API
extern tBTM_STATUS BTM_ReadRemoteVersion (BD_ADDR addr,
2641 UINT16 *manufacturer,
2642 UINT16 *lmp_sub_version);
2653 BTM_API
extern UINT8 *BTM_ReadRemoteFeatures (BD_ADDR addr);
2695 BTM_API
extern tBTM_INQ_INFO *BTM_InqDbRead (BD_ADDR p_bda);
2741 BTM_API
extern tBTM_STATUS BTM_ClearInqDb (BD_ADDR p_bda);
2751 BTM_API
extern UINT8 BTM_ReadNumInqDbEntries (
void);
2764 BTM_API
extern tBTM_STATUS BTM_InquiryRegisterForChanges (tBTM_INQ_DB_CHANGE_CB *p_cb);
2777 BTM_API
extern tBTM_STATUS BTM_ReadInquiryRspTxPower (tBTM_CMPL_CB *p_cb);
2791 BTM_API
extern tBTM_STATUS BTM_WriteInquiryTxPower (INT8 tx_power);
2808 BTM_API
extern tBTM_STATUS BTM_StartDiscovery (tBTM_CMPL_CB *p_cmpl_cb,
2809 BD_ADDR_PTR p_rem_addr);
2823 BTM_API
extern tSDP_DISC_REC *BTM_FindAttribute (UINT16 attr_id,
2824 tSDP_DISC_REC *p_start_rec);
2838 BTM_API
extern tSDP_DISC_REC *BTM_FindService (UINT16 service_uuid,
2839 tSDP_DISC_REC *p_start_rec);
2853 BTM_API
extern void BTM_SetDiscoveryParams (UINT16 num_uuid, tSDP_UUID *p_uuid_list,
2854 UINT16 num_attr, UINT16 *p_attr_list);
2869 BTM_API
extern tBTM_STATUS BTM_SetLinkPolicy (BD_ADDR remote_bda,
2884 BTM_API
extern tBTM_STATUS BTM_ReadLinkPolicy (BD_ADDR remote_bda,
2885 tBTM_CMPL_CB *p_cb);
2898 BTM_API
extern void BTM_SetDefaultLinkPolicy (UINT16 settings);
2911 BTM_API
extern void BTM_SetDefaultLinkSuperTout (UINT16 timeout);
2923 BTM_API
extern tBTM_STATUS BTM_SetLinkSuperTout (BD_ADDR remote_bda,
2935 BTM_API
extern void BTM_RegForLstoEvt (tBTM_LSTO_CBACK *p_cback);
2939#if BTM_PWR_MGR_INCLUDED == FALSE
2951 BTM_API
extern tBTM_STATUS BTM_SetHoldMode (BD_ADDR remote_bda, UINT16 min_interval,
2952 UINT16 max_interval);
2966 BTM_API
extern tBTM_STATUS BTM_SetSniffMode (BD_ADDR remote_bda, UINT16 min_period,
2967 UINT16 max_period, UINT16 attempt,
2982 BTM_API
extern tBTM_STATUS BTM_CancelSniffMode (BD_ADDR remote_bda);
2996 BTM_API
extern tBTM_STATUS BTM_SetParkMode (BD_ADDR remote_bda,
2997 UINT16 beacon_min_period,
2998 UINT16 beacon_max_period);
3012 BTM_API
extern tBTM_STATUS BTM_CancelParkMode (BD_ADDR remote_bda);
3035 BTM_API
extern tBTM_STATUS BTM_ReadAclMode (BD_ADDR remote_bda, UINT8 *p_mode);
3050 BTM_API
extern tBTM_STATUS BTM_SetPacketTypes (BD_ADDR remote_bda, UINT16 pkt_types);
3063 BTM_API
extern UINT16 BTM_ReadPacketTypes (BD_ADDR remote_bda);
3076 BTM_API
extern BOOLEAN BTM_IsAclConnectionUp (BD_ADDR remote_bda);
3090 BTM_API
extern tBTM_STATUS BTM_GetRole (BD_ADDR remote_bd_addr, UINT8 *p_role);
3110 BTM_API
extern tBTM_STATUS BTM_SwitchRole (BD_ADDR remote_bd_addr,
3112 tBTM_CMPL_CB *p_cb);
3127 BTM_API
extern tBTM_STATUS BTM_ChangeLinkKey (BD_ADDR remote_bd_addr,
3128 tBTM_CMPL_CB *p_cb);
3144 BTM_API
extern tBTM_STATUS BTM_ReadRSSI (BD_ADDR remote_bda, tBTM_CMPL_CB *p_cb);
3162 BTM_API
extern tBTM_STATUS BTM_ReadTxPower (BD_ADDR remote_bda, tBTM_CMPL_CB *p_cb);
3178 BTM_API
extern tBTM_STATUS BTM_ReadLinkQuality (BD_ADDR remote_bda, tBTM_CMPL_CB *p_cb);
3190 BTM_API
extern tBTM_STATUS BTM_RegBusyLevelNotif (tBTM_BL_CHANGE_CB *p_cb, UINT8 *p_level,
3191 tBTM_BL_EVENT_MASK evt_mask);
3203 BTM_API
extern tBTM_STATUS BTM_AclRegisterForChanges (tBTM_ACL_DB_CHANGE_CB *p_cb);
3215 BTM_API
extern UINT16 BTM_GetNumAclLinks (
void);
3228 BTM_API
extern UINT16 BTM_ReadClockOffset (BD_ADDR remote_bda);
3240 BTM_API
extern tBTM_STATUS BTM_SetQoS(BD_ADDR bd,
FLOW_SPEC *p_flow,
3241 tBTM_CMPL_CB *p_cb);
3264 BTM_API
extern tBTM_STATUS BTM_CreateSco (BD_ADDR remote_bda, BOOLEAN is_orig,
3265 UINT16 pkt_types, UINT16 *p_sco_inx,
3266 tBTM_SCO_CB *p_conn_cb,
3267 tBTM_SCO_CB *p_disc_cb);
3279 BTM_API
extern tBTM_STATUS BTM_RemoveSco (UINT16 sco_inx);
3302 BTM_API
extern tBTM_STATUS BTM_SetScoPacketTypes (UINT16 sco_inx, UINT16 pkt_types);
3323 BTM_API
extern UINT16 BTM_ReadScoPacketTypes (UINT16 sco_inx);
3336 BTM_API
extern UINT16 BTM_ReadDeviceScoPacketTypes (
void);
3349 BTM_API
extern UINT16 BTM_ReadScoHandle (UINT16 sco_inx);
3362 BTM_API
extern UINT8 *BTM_ReadScoBdAddr (UINT16 sco_inx);
3376 BTM_API
extern UINT16 BTM_ReadScoDiscReason (
void);
3392 BTM_API
extern tBTM_STATUS BTM_SetEScoMode (tBTM_SCO_TYPE sco_mode,
3406BTM_API
extern tBTM_STATUS BTM_SetWBSCodec (tBTM_SCO_CODEC_TYPE codec_type);
3421 BTM_API
extern tBTM_STATUS BTM_RegForEScoEvts (UINT16 sco_inx,
3422 tBTM_ESCO_CBACK *p_esco_cback);
3440 BTM_API
extern tBTM_STATUS BTM_ReadEScoLinkParms (UINT16 sco_inx,
3462 BTM_API
extern tBTM_STATUS BTM_ChangeEScoLinkParms (UINT16 sco_inx,
3483 BTM_API
extern void BTM_EScoConnRsp (UINT16 sco_inx, UINT8 hci_status,
3495 BTM_API
extern UINT8 BTM_GetNumScoLinks (
void);
3511 BTM_API
extern BOOLEAN BTM_SecRegister (
tBTM_APPL_INFO *p_cb_info);
3524 BTM_API
extern BOOLEAN BTM_SecRegisterLinkKeyNotificationCallback (tBTM_LINK_KEY_CALLBACK *p_callback);
3537 BTM_API
extern BOOLEAN BTM_SecAddRmtNameNotifyCallback (tBTM_RMT_NAME_CALLBACK *p_callback);
3550 BTM_API
extern BOOLEAN BTM_SecDeleteRmtNameNotifyCallback (tBTM_RMT_NAME_CALLBACK *p_callback);
3565 BTM_API
extern void BTM_SecSetConnectFilterCallback (tBTM_FILTER_CB *p_callback);
3577 BTM_API
extern UINT8 BTM_GetSecurityMode (
void);
3589 BTM_API
extern BOOLEAN BTM_GetSecurityFlags (BD_ADDR bd_addr, UINT8 * p_sec_flags);
3601 BTM_API
extern UINT32 * BTM_ReadTrustedMask (BD_ADDR bd_addr);
3613 BTM_API
extern void BTM_SetSecurityMode (UINT8 sec_mode);
3625 BTM_API
extern void BTM_SetPinType (UINT8 pin_type, PIN_CODE pin_code, UINT8 pin_code_len);
3642 BTM_API
extern void BTM_SetPairableMode (BOOLEAN allow_pairing, BOOLEAN connect_only_paired);
3656 BTM_API
extern BOOLEAN BTM_SetSecurityLevel (BOOLEAN is_originator,
char *p_name,
3657 UINT8 service_id, UINT16 sec_level,
3658 UINT16 psm, UINT32 mx_proto_id,
3673 BTM_API
extern BOOLEAN BTM_SetUCDSecurityLevel (BOOLEAN is_originator,
char *p_name, UINT8 service_id,
3674 UINT16 sec_level, UINT16 psm, UINT32 mx_proto_id,
3687 BTM_API
extern void BTM_SetOutService(BD_ADDR bd_addr, UINT8 service_id, UINT32 mx_chan_id);
3702 BTM_API
extern UINT8 BTM_SecClrService (UINT8 service_id);
3716 BTM_API
extern UINT8 BTM_SecClrUCDService (UINT8 service_id);
3730 BTM_API
extern BOOLEAN BTM_SecAddDevice (BD_ADDR bd_addr, DEV_CLASS dev_class,
3731 BD_NAME bd_name, BD_FEATURES features,
3732 UINT32 trusted_mask[], LINK_KEY link_key,
3733 UINT8 key_type, tBTM_IO_CAP io_cap);
3745 BTM_API
extern BOOLEAN BTM_SecDeleteDevice (BD_ADDR bd_addr);
3758 BTM_API
extern tBTM_STATUS BTM_SecUseMasterLinkKey (BOOLEAN use_master_key);
3773 BTM_API
extern void BTM_SetMasterKeyCompCback(tBTM_MKEY_CALLBACK *mkey_cback );
3788 BTM_API
extern tBTM_STATUS BTM_SecGetDeviceLinkKey (BD_ADDR bd_addr,
3808 BTM_API
extern void BTM_PINCodeReply (BD_ADDR bd_addr, UINT8 res, UINT8 pin_len,
3809 UINT8 *p_pin, UINT32 trusted_mask[]);
3825 BTM_API
extern void BTM_DeviceAuthorized (BD_ADDR bd_addr, UINT8 res,
3826 UINT32 trusted_mask[]);
3838 BTM_API
extern tBTM_STATUS BTM_SecBond (BD_ADDR bd_addr, UINT8 pin_len, UINT8 *p_pin, UINT32 trusted_mask[]);
3850 BTM_API
extern tBTM_STATUS BTM_SecBondCancel (BD_ADDR bd_addr);
3877 BTM_API
extern tBTM_STATUS BTM_SetEncryption (BD_ADDR bd_addr, tBTM_SEC_CBACK *p_callback,
3891 BTM_API
extern void BTM_ConfirmReqReply(tBTM_STATUS res, BD_ADDR bd_addr);
3905 BTM_API
extern void BTM_PasskeyReqReply(tBTM_STATUS res, BD_ADDR bd_addr, UINT32 passkey);
3921 BTM_API
extern void BTM_SendKeypressNotif(BD_ADDR bd_addr, tBTM_SP_KEY_TYPE type);
3938 BTM_API
extern void BTM_IoCapRsp(BD_ADDR bd_addr, tBTM_IO_CAP io_cap,
3939 tBTM_OOB_DATA oob, tBTM_AUTH_REQ auth_req);
3949 BTM_API
extern tBTM_STATUS BTM_ReadLocalOobData(
void);
3963 BTM_API
extern void BTM_RemoteOobDataReply(tBTM_STATUS res, BD_ADDR bd_addr, BT_OCTET16 c, BT_OCTET16 r);
3983 BTM_API
extern UINT16 BTM_BuildOobData(UINT8 *p_data, UINT16 max_len, BT_OCTET16 c,
3984 BT_OCTET16 r, UINT8 name_len);
4001 BTM_API
extern UINT8 * BTM_ReadOobData(UINT8 *p_data, UINT8 eir_tag, UINT8 *p_len);
4013 BTM_API
extern char *BTM_SecReadDevName (BD_ADDR bd_addr);
4030 BTM_API
extern tBTM_STATUS BTM_PmRegister (UINT8 mask, UINT8 *p_pm_id,
4031 tBTM_PM_STATUS_CBACK *p_cb);
4045 BTM_API
extern tBTM_STATUS BTM_SetPowerMode (UINT8 pm_id, BD_ADDR remote_bda,
4069 BTM_API
extern tBTM_STATUS BTM_ReadPowerMode (BD_ADDR remote_bda,
4070 tBTM_PM_MODE *p_mode);
4090 BTM_API
extern tBTM_STATUS BTM_SetSsrParams (BD_ADDR remote_bda, UINT16 max_lat,
4091 UINT16 min_rmt_to, UINT16 min_loc_to);
4103 BTM_API
extern BOOLEAN BTM_IsPowerManagerOn (
void);
4116 BTM_API
extern UINT16 BTM_GetHCIConnHandle (BD_ADDR remote_bda);
4132 BTM_API
extern tBTM_STATUS BTM_ReadStoredLinkKey (BD_ADDR bd_addr, tBTM_CMPL_CB *p_cb);
4150 BTM_API
extern tBTM_STATUS BTM_WriteStoredLinkKey (UINT8 num_keys,
4153 tBTM_CMPL_CB *p_cb);
4169 BTM_API
extern tBTM_STATUS BTM_DeleteStoredLinkKey(BD_ADDR bd_addr, tBTM_CMPL_CB *p_cb);
4184 BTM_API
extern tBTM_STATUS BTM_WriteEIR(
BT_HDR * p_buff );
4199 BTM_API
extern UINT8 *BTM_CheckEirData( UINT8 *p_eir, UINT8 type, UINT8 *p_length );
4214 BTM_API
extern BOOLEAN BTM_HasEirService( UINT32 *p_eir_uuid, UINT16 uuid16 );
4230 BTM_API
extern tBTM_EIR_SEARCH_RESULT BTM_HasInquiryEirService(
tBTM_INQ_RESULTS *p_results,
4245 BTM_API
extern void BTM_AddEirService( UINT32 *p_eir_uuid, UINT16 uuid16 );
4259 BTM_API
extern void BTM_RemoveEirService( UINT32 *p_eir_uuid, UINT16 uuid16 );
4276 BTM_API
extern UINT8 BTM_GetEirSupportedServices( UINT32 *p_eir_uuid, UINT8 **p,
4277 UINT8 max_num_uuid16, UINT8 *p_num_uuid16);
4300 BTM_API
extern UINT8 BTM_GetEirUuidList( UINT8 *p_eir, UINT8 uuid_size, UINT8 *p_num_uuid,
4301 UINT8 *p_uuid_list, UINT8 max_num_uuid);
4319 BTM_API
extern tBTM_STATUS BTM_SyncStack(tBTM_SW_DIR sync_dir, tBTM_SYNC_STACK_CBACK p_sync_cback);
4340 BTM_API
extern void BTM_SyncBtaRsp(tBTM_STATUS status,
tBTM_SYNC_INFO *p_btm_sync_info);
4357 BTM_API
extern tBTM_STATUS BTM_OpenUIPC(tBTM_SW_DIR sync_dir, tBTM_SYNC_STACK_CBACK p_sync_callback);
4372 BTM_API
extern tBTM_STATUS BTM_CloseUIPC(tBTM_SYNC_STACK_CBACK p_sync_callback);
4390 BTM_API
extern void BTM_IpcSend(UINT16 len, UINT8* buffer);
4406 BTM_API
extern void BTM_IpcSendBuf(
BT_HDR* p_buf);
4418 BTM_API
extern void BTM_RegIpcEvtHandler(tBTM_IPC_EVT_CBACK *p_cback);
4430 BTM_API
extern void BTM_RegRTIpcEvtHandler(tBTM_IPC_EVT_CBACK *p_cback);
4437 typedef void (tBTM_N2BT_DATA_CB) (BD_ADDR bd_addr, UINT16 handle, UINT8 *p_data, UINT16 datalen);
4448 BTM_API
extern void BTM_N2BtAcquire(BD_ADDR bd_addr, UINT16 timeout,
4449 UINT8 freq, UINT8 src_addrlen, UINT8 sensor_flags,
4450 UINT8 sensor_type, UINT8 sensor_clk_accuracy,
4451 UINT16 add_rx_window, UINT16 init_crc,
4452 UINT32 ac_low, UINT32 ac_high, UINT16 pkt_hdr,
4453 UINT16 list_dur, UINT16 list_int,
4454 UINT8 oor_missed_pkts, tBTM_VSC_CMPL_CB *p_cb,
4455 tBTM_N2BT_DATA_CB *p_data_cback);
4466 BTM_API
extern void BTM_N2BtDisconnect(
void);
4487 BTM_API
extern tBTM_STATUS BTM_ConfigI2SPCM (tBTM_SCO_CODEC_TYPE codec_type, UINT8 role, UINT8 sample_rate, UINT8 clock_rate);
4516 BTM_API
extern tBTM_STATUS BTM_ConfigScoPath (tBTM_SCO_ROUTE_TYPE path,
4517 tBTM_SCO_DATA_CB *p_sco_data_cb,
4519 BOOLEAN err_data_rpt);
4542 BTM_API
extern tBTM_STATUS BTM_WriteScoData (UINT16 sco_inx,
BT_HDR *p_buf);
4553BTM_API
extern void BTM_SetARCMode (UINT8 iface, UINT8 arc_mode, tBTM_VSC_CMPL_CB *p_arc_cb);
4565BTM_API
extern void BTM_PCM2Setup_Write (BOOLEAN clk_master, tBTM_VSC_CMPL_CB *p_arc_cb);