31typedef UINT8 tBTM_BLE_CHNL_MAP[CHNL_MAP_LEN];
33#define BTM_BLE_SCAN_MODE_PASS 0
34#define BTM_BLE_SCAN_MODE_ACTI 1
35#define BTM_BLE_SCAN_MODE_NONE 0xff
36typedef UINT8 tBTM_BLE_SCAN_MODE;
39#define BTM_BLE_ADV_CHNL_37 (0x01 << 0)
40#define BTM_BLE_ADV_CHNL_38 (0x01 << 1)
41#define BTM_BLE_ADV_CHNL_39 (0x01 << 2)
42typedef UINT8 tBTM_BLE_ADV_CHNL_MAP;
45#ifndef BTM_BLE_DEFAULT_ADV_CHNL_MAP
46#define BTM_BLE_DEFAULT_ADV_CHNL_MAP (BTM_BLE_ADV_CHNL_37| BTM_BLE_ADV_CHNL_38| BTM_BLE_ADV_CHNL_39)
50#define AP_SCAN_CONN_ALL 0x00
51#define AP_SCAN_WL_CONN_ALL 0x01
52#define AP_SCAN_ALL_CONN_WL 0x02
53#define AP_SCAN_CONN_WL 0x03
54#define AP_SCAN_CONN_POLICY_MAX 0x04
55typedef UINT8 tBTM_BLE_AFP;
58#ifndef BTM_BLE_DEFAULT_AFP
59#define BTM_BLE_DEFAULT_AFP AP_SCAN_CONN_ALL
63#define SP_ADV_ALL 0x00
65typedef UINT8 tBTM_BLE_SFP;
67#ifndef BTM_BLE_DEFAULT_SFP
68#define BTM_BLE_DEFAULT_SFP SP_ADV_ALL
72#define BTM_BLE_ADV_INT_MIN 0x0020
73#define BTM_BLE_ADV_INT_MAX 0x4000
76#define BTM_BLE_SCAN_INT_MIN 0x0004
77#define BTM_BLE_SCAN_INT_MAX 0x4000
78#define BTM_BLE_SCAN_WIN_MIN 0x0004
79#define BTM_BLE_SCAN_WIN_MAX 0x4000
80#define BTM_BLE_CONN_INT_MIN 0x0006
81#define BTM_BLE_CONN_INT_MAX 0x0C80
82#define BTM_BLE_CONN_LATENCY_MAX 500
83#define BTM_BLE_CONN_SUP_TOUT_MIN 0x000A
84#define BTM_BLE_CONN_SUP_TOUT_MAX 0x0C80
85#define BTM_BLE_CONN_PARAM_UNDEF 0xffff
89#ifndef BTM_BLE_CONN_EST_SCAN_INT
90#define BTM_BLE_CONN_EST_SCAN_INT 96
93#ifndef BTM_BLE_CONN_EST_SCAN_WIND
94#define BTM_BLE_CONN_EST_SCAN_WIND 48
98#ifndef BTM_BLE_CONN_EST_SCAN_INT_LO
99#define BTM_BLE_CONN_EST_SCAN_INT_LO 2048
101#ifndef BTM_BLE_CONN_EST_SCAN_WIND_LO
102#define BTM_BLE_CONN_EST_SCAN_WIND_LO 18
106#ifndef BTM_BLE_CONN_INT_MIN_DEF
107#define BTM_BLE_CONN_INT_MIN_DEF 40
110#ifndef BTM_BLE_CONN_INT_MAX_DEF
111#define BTM_BLE_CONN_INT_MAX_DEF 56
114#ifndef BTM_BLE_CONN_SLAVE_LATENCY_DEF
115#define BTM_BLE_CONN_SLAVE_LATENCY_DEF 0
118#ifndef BTM_BLE_CONN_TIMEOUT_DEF
119#define BTM_BLE_CONN_TIMEOUT_DEF 2000
122#define BTM_CMAC_TLEN_SIZE 8
123#define BTM_BLE_AUTH_SIGN_LEN 12
124typedef UINT8 BLE_SIGNATURE[BTM_BLE_AUTH_SIGN_LEN];
132 UINT8 param_buf[BT_OCTET16_LEN];
140#define BTM_BLE_FILTER_TARGET_SCANNER 0x01
141#define BTM_BLE_FILTER_TARGET_ADVR 0x00
143#define BTM_BLE_POLICY_BLACK_ALL 0x00
144#define BTM_BLE_POLICY_ALLOW_SCAN 0x01
145#define BTM_BLE_POLICY_ALLOW_CONN 0x02
146#define BTM_BLE_POLICY_WHITE_ALL 0x03
152 tBTM_BLE_CHNL_MAP chnl_map;
157#define BTM_BLE_LIMIT_DISC_FLAG (0x01 << 0)
158#define BTM_BLE_GEN_DISC_FLAG (0x01 << 1)
159#define BTM_BLE_BREDR_NOT_SPT (0x01 << 2)
160#define BTM_BLE_NON_LIMIT_DISC_FLAG (0x00 )
161#define BTM_BLE_ADV_FLAG_MASK (BTM_BLE_LIMIT_DISC_FLAG | BTM_BLE_BREDR_NOT_SPT | BTM_BLE_GEN_DISC_FLAG)
162#define BTM_BLE_LIMIT_DISC_MASK (BTM_BLE_LIMIT_DISC_FLAG )
164#define BTM_BLE_AD_BIT_DEV_NAME (0x0001 << 0)
165#define BTM_BLE_AD_BIT_FLAGS (0x0001 << 1)
166#define BTM_BLE_AD_BIT_MANU (0x0001 << 2)
167#define BTM_BLE_AD_BIT_TX_PWR (0x0001 << 3)
168#define BTM_BLE_AD_BIT_ATTR (0x0001 << 4)
169#define BTM_BLE_AD_BIT_INT_RANGE (0x0001 << 5)
170#define BTM_BLE_AD_BIT_SERVICE (0x0001 << 6)
171#define BTM_BLE_AD_BIT_SERVICE_SOL (0x0001 << 7)
172#define BTM_BLE_AD_BIT_SERVICE_DATA (0x0001 << 8)
173#define BTM_BLE_AD_BIT_SIGN_DATA (0x0001 << 9)
174#define BTM_BLE_AD_BIT_PROPRIETARY (0x0001 << 15)
176typedef UINT16 tBTM_BLE_AD_MASK;
178#define BTM_BLE_AD_TYPE_FLAG 0x01
179#define BTM_BLE_AD_TYPE_SRV_PART 0x02
180#define BTM_BLE_AD_TYPE_SRV_CMPL 0x03
181#define BTM_BLE_AD_TYPE_NAME_SHORT 0x08
182#define BTM_BLE_AD_TYPE_NAME_CMPL 0x09
183#define BTM_BLE_AD_TYPE_TX_PWR 0x0A
184#define BTM_BLE_AD_TYPE_DEV_CLASS 0x0D
185#define BTM_BLE_AD_TYPE_ATTR 0x10
186#define BTM_BLE_AD_TYPE_MANU 0xff
187#define BTM_BLE_AD_TYPE_INT_RANGE 0x12
188#define BTM_BLE_AD_TYPE_SOL_SRV_UUID 0x14
189typedef UINT8 tBTM_BLE_AD_TYPE;
215#ifndef BTM_BLE_NUM_AD_ATTR_MAX
216#define BTM_BLE_NUM_AD_ATTR_MAX 10
260 tBTM_BLE_AD_MASK ad_mask;
262 UINT8 tx_power_level;
263 UINT8 remote_name_len;
264 UINT8 *p_remote_name;
273 BTM_BLE_CONN_SELECTIVE
275typedef UINT8 tBTM_BLE_CONN_TYPE;
277typedef BOOLEAN (tBTM_BLE_SEL_CBACK)(BD_ADDR random_bda, UINT8 *p_remote_name);
280typedef void (tBTM_BLE_SIGN_CBACK)(
void *p_ref_data, UINT8 *p_signing_data);
281typedef void (tBTM_BLE_VERIFY_CBACK)(
void *p_ref_data, BOOLEAN match);
283typedef void (tBTM_BLE_RANDOM_SET_CBACK) (BD_ADDR random_bda);
285typedef void (tBTM_BLE_SCAN_REQ_CBACK)(BD_ADDR remote_bda, tBLE_ADDR_TYPE addr_type, UINT8 adv_evt);
308BTM_API
extern BOOLEAN BTM_SecAddBleDevice (BD_ADDR bd_addr, BD_NAME bd_name,
309 tBT_DEVICE_TYPE dev_type, tBLE_ADDR_TYPE addr_type);
326BTM_API
extern BOOLEAN BTM_SecAddBleKey (BD_ADDR bd_addr,
tBTM_LE_KEY_VALUE *p_le_key,
327 tBTM_LE_KEY_TYPE key_type);
340BTM_API
extern tBTM_STATUS BTM_BleSetAdvParams(UINT16 adv_int_min, UINT16 adv_int_max,
341 tBLE_BD_ADDR *p_dir_bda, tBTM_BLE_ADV_CHNL_MAP chnl_map);
354BTM_API
extern tBTM_STATUS BTM_BleWriteAdvData(tBTM_BLE_AD_MASK data_mask,
371BTM_API
extern void BTM_BleReadAdvParams (UINT16 *adv_int_min, UINT16 *adv_int_max,
372 tBLE_BD_ADDR *p_dir_bda, tBTM_BLE_ADV_CHNL_MAP *p_chnl_map);
388BTM_API
extern void BTM_BleSetScanParams(UINT16 scan_interval, UINT16 scan_window,
389 tBTM_BLE_SCAN_MODE scan_type);
402BTM_API
extern tBTM_STATUS BTM_BleWriteScanRsp(tBTM_BLE_AD_MASK data_mask,
416BTM_API
extern void BTM_BleReset(
void);
430BTM_API
extern tBTM_STATUS BTM_BleObserve(BOOLEAN start, UINT8 duration,
431 tBTM_INQ_RESULTS_CB *p_results_cb, tBTM_CMPL_CB *p_cmpl_cb);
445BTM_API
extern void BTM_GetDeviceIDRoot (BT_OCTET16 ir);
458BTM_API
extern void BTM_GetDeviceEncRoot (BT_OCTET16 er);
470BTM_API
extern void BTM_GetDeviceDHK (BT_OCTET16 dhk);
485BTM_API
extern void BTM_SecurityGrant(BD_ADDR bd_addr, UINT8 res);
500BTM_API
extern void BTM_BlePasskeyReply (BD_ADDR bd_addr, UINT8 res, UINT32 passkey);
514BTM_API
extern void BTM_BleOobDataReply(BD_ADDR bd_addr, UINT8 res, UINT8 len, UINT8 *p_data);
533BTM_API
extern BOOLEAN BTM_BleDataSignature (BD_ADDR bd_addr, UINT8 *p_text, UINT16 len,
534 BLE_SIGNATURE signature);
551BTM_API
extern BOOLEAN BTM_BleVerifySignature (BD_ADDR bd_addr, UINT8 *p_orig,
552 UINT16 len, UINT32 counter,
565BTM_API
extern void BTM_SetRandomAddr (tBTM_BLE_RANDOM_SET_CBACK *p_cback);
577BTM_API
extern void BTM_ReadConnectionAddr (BD_ADDR conn_addr);
609BTM_API
extern BOOLEAN BTM_BleSetBgConnType(tBTM_BLE_CONN_TYPE conn_type,
610 tBTM_BLE_SEL_CBACK *p_select_cback);
627BTM_API
extern BOOLEAN BTM_BleUpdateBgConnDev(BOOLEAN add_remove, BD_ADDR remote_bda);
648BTM_API
extern void BTM_BleSetPrefConnParams (BD_ADDR bd_addr,
649 UINT16 min_conn_int, UINT16 max_conn_int,
650 UINT16 slave_latency, UINT16 supervision_tout);
664BTM_API
extern void BTM_BleSetConnScanParams (UINT16 scan_interval, UINT16 scan_window);
679BTM_API
extern UINT8 *BTM_CheckAdvData( UINT8 *p_adv, UINT8 type, UINT8 *p_length);
693BTM_API
extern void BTM_ReadDevInfo (BD_ADDR remote_bda, tBT_DEVICE_TYPE *p_dev_type,
694 tBLE_ADDR_TYPE *p_addr_type);
707BTM_API
extern tBTM_STATUS BTM_BleBroadcast(BOOLEAN start);
722BTM_API
extern void BTM_RegisterScanReqEvt(tBTM_BLE_SCAN_REQ_CBACK *p_scan_req_cback);