Select one of the symbols to view example projects that use it.
 
Outline
#define BTM_BLE_INT_H
#include "common/bt_target.h"
#include "osi/fixed_queue.h"
#include "osi/pkt_queue.h"
#include "osi/thread.h"
#include "stack/hcidefs.h"
#include "stack/btm_ble_api.h"
#include "btm_int.h"
#include "stack/smp_api.h"
#define BTM_BLE_SCAN_ENABLE
#define BTM_BLE_SCAN_DISABLE
#define BTM_BLE_ADV_ENABLE
#define BTM_BLE_ADV_DISABLE
#define BTM_BLE_SELECT_SCAN
#define BTM_BLE_NAME_REQUEST
#define BTM_BLE_OBSERVE
#define BTM_BLE_MAX_WL_ENTRY
#define BTM_BLE_AD_DATA_LEN
#define BTM_BLE_ENC_MASK
#define BTM_BLE_DUPLICATE_DISABLE
#define BTM_BLE_DUPLICATE_ENABLE
#define BTM_BLE_DUPLICATE_MAX
#define BTM_BLE_GAP_DISC_SCAN_INT
#define BTM_BLE_GAP_DISC_SCAN_WIN
#define BTM_BLE_GAP_ADV_INT
#define BTM_BLE_GAP_LIM_TOUT
#define BTM_BLE_LOW_LATENCY_SCAN_INT
#define BTM_BLE_LOW_LATENCY_SCAN_WIN
#define BTM_BLE_GAP_ADV_FAST_INT_1
#define BTM_BLE_GAP_ADV_FAST_INT_2
#define BTM_BLE_GAP_ADV_SLOW_INT
#define BTM_BLE_GAP_ADV_DIR_MAX_INT
#define BTM_BLE_GAP_ADV_DIR_MIN_INT
#define BTM_BLE_GAP_FAST_ADV_TOUT
#define BTM_BLE_SEC_REQ_ACT_NONE
#define BTM_BLE_SEC_REQ_ACT_ENCRYPT
#define BTM_BLE_SEC_REQ_ACT_PAIR
#define BTM_BLE_SEC_REQ_ACT_DISCARD
tBTM_BLE_SEC_REQ_ACT
#define BLE_STATIC_PRIVATE_MSB_MASK
#define BLE_NON_RESOLVE_ADDR_MSB
#define BLE_RESOLVE_ADDR_MSB
#define BLE_RESOLVE_ADDR_MASK
#define BTM_BLE_IS_NON_RESLVE_BDA
#define BTM_BLE_IS_RESOLVE_BDA
#define BTM_LE_SELECT_CONN_ACTIVE
#define BTM_LE_OBSERVE_ACTIVE
#define BTM_LE_DISCOVER_ACTIVE
#define BTM_BLE_IS_SCAN_ACTIVE
#define BTM_BLE_IS_INQ_ACTIVE
#define BTM_BLE_IS_OBS_ACTIVE
#define BTM_BLE_IS_DISCO_ACTIVE
#define BTM_BLE_IS_SEL_CONN_ACTIVE
#define BLE_ADDR_TYPE_ID_BIT
#define BTM_VSC_CHIP_CAPABILITY_L_VERSION
#define BTM_VSC_CHIP_CAPABILITY_M_VERSION
tBTM_BLE_GAP_STATE
tBTM_BLE_LOCAL_ADV_DATA
tINQ_LE_BDADDR
#define BTM_BLE_ADV_DATA_LEN_MAX
#define BTM_BLE_CACHE_ADV_DATA_MAX
#define BTM_BLE_EXT_ADV_DATA_LEN_MAX
#define BTM_BLE_PERIODIC_ADV_DATA_LEN_MAX
#define BTM_BLE_ADV_DATA_OP_INTERMEDIATE_FRAG
#define BTM_BLE_ADV_DATA_OP_FIRST_FRAG
#define BTM_BLE_ADV_DATA_OP_LAST_FRAG
#define BTM_BLE_ADV_DATA_OP_COMPLETE
#define BTM_BLE_ADV_DATA_OP_UNCHANGED_DATA
#define BTM_BLE_ISVALID_PARAM
tBTM_BLE_INQ_CB
tBTM_BLE_RESOLVE_CBACK
tBTM_BLE_ADDR_CBACK
#define BTM_BLE_GAP_ADDR_BIT_RANDOM
#define BTM_BLE_GAP_ADDR_BIT_RESOLVABLE
tBTM_LE_RANDOM_CB
#define BTM_BLE_MAX_BG_CONN_DEV_NUM
tBTM_LE_CONN_PRAMS
tBTM_LE_BG_CONN_DEV
#define BTM_BLE_WL_IDLE
#define BTM_BLE_WL_INIT
#define BTM_BLE_WL_SCAN
#define BTM_BLE_WL_ADV
tBTM_BLE_WL_STATE
#define BTM_BLE_RL_IDLE
#define BTM_BLE_RL_INIT
#define BTM_BLE_RL_SCAN
#define BTM_BLE_RL_ADV
tBTM_BLE_RL_STATE
#define BLE_CONN_IDLE
#define BLE_DIR_CONN
#define BLE_BG_CONN
#define BLE_CONN_CANCEL
tBTM_BLE_CONN_ST
tBTM_BLE_CONN_REQ
#define BTM_BLE_STATE_INVALID
#define BTM_BLE_STATE_CONN_ADV
#define BTM_BLE_STATE_INIT
#define BTM_BLE_STATE_MASTER
#define BTM_BLE_STATE_SLAVE
#define BTM_BLE_STATE_LO_DUTY_DIR_ADV
#define BTM_BLE_STATE_HI_DUTY_DIR_ADV
#define BTM_BLE_STATE_NON_CONN_ADV
#define BTM_BLE_STATE_PASSIVE_SCAN
#define BTM_BLE_STATE_ACTIVE_SCAN
#define BTM_BLE_STATE_SCAN_ADV
#define BTM_BLE_STATE_MAX
tBTM_BLE_STATE
#define BTM_BLE_STATE_CONN_ADV_BIT
#define BTM_BLE_STATE_INIT_BIT
#define BTM_BLE_STATE_MASTER_BIT
#define BTM_BLE_STATE_SLAVE_BIT
#define BTM_BLE_STATE_LO_DUTY_DIR_ADV_BIT
#define BTM_BLE_STATE_HI_DUTY_DIR_ADV_BIT
#define BTM_BLE_STATE_NON_CONN_ADV_BIT
#define BTM_BLE_STATE_PASSIVE_SCAN_BIT
#define BTM_BLE_STATE_ACTIVE_SCAN_BIT
#define BTM_BLE_STATE_SCAN_ADV_BIT
tBTM_BLE_STATE_MASK
#define BTM_BLE_STATE_ALL_MASK
#define BTM_BLE_STATE_ALL_ADV_MASK
#define BTM_BLE_STATE_ALL_SCAN_MASK
#define BTM_BLE_STATE_ALL_CONN_MASK
#define BTM_LE_RESOLVING_LIST_MAX
#define BTM_DUPLICATE_SCAN_EXCEPTIONAL_INFO_ADV_ADDR
#define BTM_DUPLICATE_SCAN_EXCEPTIONAL_INFO_MESH_LINK_ID
#define BTM_DUPLICATE_SCAN_EXCEPTIONAL_INFO_MESH_BEACON_TYPE
#define BTM_DUPLICATE_SCAN_EXCEPTIONAL_INFO_MESH_PROV_SRV_ADV
#define BTM_DUPLICATE_SCAN_EXCEPTIONAL_INFO_MESH_PROXY_SRV_ADV
tBTM_BLE_RESOLVE_Q
tBTM_BLE_WL_OP
#define BTM_PRIVACY_NONE
#define BTM_PRIVACY_1_1
#define BTM_PRIVACY_1_2
#define BTM_PRIVACY_MIXED
tBTM_PRIVACY_MODE
tBTM_DATA_LENGTH_CHANGE_CBACK
tBTM_BLE_CB
btm_ble_timeout(TIMER_LIST_ENT *);
btm_ble_process_adv_pkt(UINT8 *);
btm_ble_process_adv_discard_evt(UINT8 *);
btm_ble_process_direct_adv_pkt(UINT8 *);
btm_ble_adv_pkt_ready();
btm_ble_adv_pkt_post(pkt_linked_item_t *);
btm_ble_proc_scan_rsp_rpt(UINT8 *);
btm_ble_read_remote_name(UINT8 *, tBTM_INQ_INFO *, tBTM_CMPL_CB *);
btm_ble_cancel_remote_name(UINT8 *);
btm_ble_set_discoverability(UINT16);
btm_ble_set_connectability(UINT16);
btm_ble_start_inquiry(UINT8, UINT8);
btm_ble_stop_scan();
btm_clear_all_pending_le_entry();
btm_ble_send_extended_scan_params(UINT8, UINT32, UINT32, UINT8, UINT8);
btm_ble_stop_inquiry();
btm_ble_init();
btm_ble_free();
btm_ble_connected(UINT8 *, UINT16, UINT8, UINT8, tBLE_ADDR_TYPE, BOOLEAN);
btm_ble_read_remote_features_complete(UINT8 *);
btm_ble_write_adv_enable_complete(UINT8 *);
btm_ble_conn_complete(UINT8 *, UINT16, BOOLEAN);
btm_read_ble_local_supported_states_complete(UINT8 *, UINT16);
btm_ble_get_conn_st();
btm_ble_set_conn_st(tBTM_BLE_CONN_ST);
btm_ble_build_adv_data(tBTM_BLE_AD_MASK *, UINT8 **, tBTM_BLE_ADV_DATA *);
btm_ble_start_adv();
btm_ble_stop_adv();
btm_ble_start_scan();
btm_ble_create_ll_conn_complete(UINT8);
btm_ble_create_conn_cancel_complete(UINT8 *);
btm_ble_set_random_addr(UINT8 *);
btm_ble_link_sec_check(UINT8 *, tBTM_LE_AUTH_REQ, tBTM_BLE_SEC_REQ_ACT *);
btm_ble_ltk_request_reply(UINT8 *, BOOLEAN, UINT8 *);
btm_proc_smp_cback(tSMP_EVT, UINT8 *, tSMP_EVT_DATA *);
btm_ble_set_encryption(UINT8 *, void *, UINT8);
btm_ble_ltk_request(UINT16, UINT8 *, UINT16);
btm_ble_start_encrypt(UINT8 *, BOOLEAN, UINT8 *);
btm_ble_link_encrypted(UINT8 *, UINT8);
btm_ble_reset_id();
btm_ble_increment_sign_ctr(UINT8 *, BOOLEAN);
btm_get_local_div(UINT8 *, UINT16 *);
btm_ble_get_enc_key_type(UINT8 *, UINT8 *);
btm_ble_test_command_complete(UINT8 *);
btm_ble_rand_enc_complete(UINT8 *, UINT16, tBTM_RAND_ENC_CB *);
btm_sec_save_le_key(UINT8 *, tBTM_LE_KEY_TYPE, tBTM_LE_KEY_VALUE *, BOOLEAN);
btm_ble_update_sec_key_size(UINT8 *, UINT8);
btm_ble_read_sec_key_size(UINT8 *);
btm_update_dev_to_white_list(BOOLEAN, UINT8 *, tBLE_ADDR_TYPE, tBTM_UPDATE_WHITELIST_CBACK *);
btm_update_scanner_filter_policy(tBTM_BLE_SFP);
btm_update_adv_filter_policy(tBTM_BLE_AFP);
btm_ble_clear_white_list(tBTM_UPDATE_WHITELIST_CBACK *);
btm_read_white_list_size_complete(UINT8 *, UINT16);
btm_ble_add_2_white_list_complete(UINT8);
btm_ble_remove_from_white_list_complete(UINT8 *, UINT16);
btm_ble_clear_white_list_complete(UINT8 *, UINT16);
btm_ble_white_list_init(UINT8);
btm_ble_suspend_bg_conn();
btm_ble_resume_bg_conn();
btm_ble_initiate_select_conn(UINT8 *);
btm_ble_start_auto_conn(BOOLEAN);
btm_ble_start_select_conn(BOOLEAN, tBTM_BLE_SEL_CBACK *);
btm_ble_renew_bg_conn_params(BOOLEAN, UINT8 *);
btm_write_dir_conn_wl(UINT8 *);
btm_ble_update_mode_operation(UINT8, UINT8 *, UINT8);
btm_execute_wl_dev_operation();
btm_ble_update_link_topology_mask(UINT8, BOOLEAN);
btm_send_pending_direct_conn();
btm_ble_enqueue_direct_conn_req(void *);
btm_gen_resolvable_private_addr(void *);
btm_gen_non_resolvable_private_addr(tBTM_BLE_ADDR_CBACK *, void *);
btm_ble_resolve_random_addr(UINT8 *, tBTM_BLE_RESOLVE_CBACK *, void *);
btm_gen_resolve_paddr_low(tBTM_RAND_ENC *);
btm_identity_addr_to_random_pseudo(UINT8 *, UINT8 *, BOOLEAN);
btm_random_pseudo_to_identity_addr(UINT8 *, UINT8 *);
btm_ble_refresh_peer_resolvable_private_addr(UINT8 *, UINT8 *, UINT8);
btm_ble_refresh_local_resolvable_private_addr(UINT8 *, UINT8 *);
btm_ble_read_resolving_list_entry_complete(UINT8 *, UINT16);
btm_ble_set_addr_resolution_enable_complete(UINT8 *, UINT16);
btm_ble_set_rpa_timeout_complete(UINT8 *, UINT16);
btm_ble_remove_resolving_list_entry_complete(UINT8 *, UINT16);
btm_ble_add_resolving_list_entry_complete(UINT8 *, UINT16);
btm_ble_clear_resolving_list_complete(UINT8 *, UINT16);
btm_read_ble_resolving_list_size_complete(UINT8 *, UINT16);
btm_ble_enable_resolving_list(UINT8);
btm_ble_disable_resolving_list(UINT8, BOOLEAN);
btm_ble_enable_resolving_list_for_platform(UINT8);
btm_ble_resolving_list_init(UINT8);
btm_ble_resolving_list_cleanup();
btm_ble_add_default_entry_to_resolving_list();
btm_ble_set_privacy_mode_complete(UINT8 *, UINT16);
btm_ble_multi_adv_configure_rpa(tBTM_BLE_MULTI_ADV_INST *);
btm_ble_multi_adv_init();
btm_ble_multi_adv_get_ref(UINT8);
btm_ble_multi_adv_cleanup();
btm_ble_multi_adv_reenable(UINT8);
btm_ble_multi_adv_enb_privacy(BOOLEAN);
btm_ble_map_adv_tx_power(int);
btm_ble_batchscan_init();
btm_ble_batchscan_cleanup();
btm_ble_adv_filter_init();
btm_ble_adv_filter_cleanup();
btm_ble_topology_check(tBTM_BLE_STATE_MASK);
btm_ble_clear_topology_mask(tBTM_BLE_STATE_MASK);
btm_ble_set_topology_mask(tBTM_BLE_STATE_MASK);
btm_ble_get_topology_mask();
btm_get_current_conn_params(UINT8 *, UINT16 *, UINT16 *, UINT16 *);
Files
loading...
SourceVuESP-IDF Framework and ExamplesESP-IDFcomponents/bt/host/bluedroid/stack/btm/include/btm_ble_int.h
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/****************************************************************************** * * Copyright (C) 1999-2012 Broadcom Corporation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ******************************************************************************//* ... */ /****************************************************************************** * * this file contains the main Bluetooth Manager (BTM) internal * definitions. * ******************************************************************************//* ... */ #ifndef BTM_BLE_INT_H #define BTM_BLE_INT_H #include "common/bt_target.h" #include "osi/fixed_queue.h" #include "osi/pkt_queue.h" #include "osi/thread.h" #include "stack/hcidefs.h" #include "stack/btm_ble_api.h" #include "btm_int.h"7 includes #if BLE_INCLUDED == TRUE && SMP_INCLUDED == TRUE #include "stack/smp_api.h" #endif /* scanning enable status */ #define BTM_BLE_SCAN_ENABLE 0x01 #define BTM_BLE_SCAN_DISABLE 0x00 /* advertising enable status */ #define BTM_BLE_ADV_ENABLE 0x01 #define BTM_BLE_ADV_DISABLE 0x00 /* use the high 4 bits unused by inquiry mode */ #define BTM_BLE_SELECT_SCAN 0x20 #define BTM_BLE_NAME_REQUEST 0x40 #define BTM_BLE_OBSERVE 0x80 #define BTM_BLE_MAX_WL_ENTRY 1 #define BTM_BLE_AD_DATA_LEN 31 #define BTM_BLE_ENC_MASK 0x03 #define BTM_BLE_DUPLICATE_DISABLE 0 #define BTM_BLE_DUPLICATE_ENABLE 1 #define BTM_BLE_DUPLICATE_MAX BTM_BLE_DUPLICATE_ENABLE #define BTM_BLE_GAP_DISC_SCAN_INT 18 /* Interval(scan_int) = 11.25 ms= 0x0010 * 0.625 ms */ #define BTM_BLE_GAP_DISC_SCAN_WIN 18 /* scan_window = 11.25 ms= 0x0010 * 0.625 ms */ #define BTM_BLE_GAP_ADV_INT 512 /* Tgap(gen_disc) = 1.28 s= 512 * 0.625 ms */ #define BTM_BLE_GAP_LIM_TOUT 180 /* Tgap(lim_timeout) = 180s max */ #define BTM_BLE_LOW_LATENCY_SCAN_INT 8000 /* Interval(scan_int) = 5s= 8000 * 0.625 ms */ #define BTM_BLE_LOW_LATENCY_SCAN_WIN 8000 /* scan_window = 5s= 8000 * 0.625 ms */ #define BTM_BLE_GAP_ADV_FAST_INT_1 48 /* TGAP(adv_fast_interval1) = 30(used) ~ 60 ms = 48 *0.625 */ #define BTM_BLE_GAP_ADV_FAST_INT_2 160 /* TGAP(adv_fast_interval2) = 100(used) ~ 150 ms = 160 * 0.625 ms */ #define BTM_BLE_GAP_ADV_SLOW_INT 2048 /* Tgap(adv_slow_interval) = 1.28 s= 512 * 0.625 ms */ #define BTM_BLE_GAP_ADV_DIR_MAX_INT 800 /* Tgap(dir_conn_adv_int_max) = 500 ms = 800 * 0.625 ms */ #define BTM_BLE_GAP_ADV_DIR_MIN_INT 400 /* Tgap(dir_conn_adv_int_min) = 250 ms = 400 * 0.625 ms */ #define BTM_BLE_GAP_FAST_ADV_TOUT 30 #define BTM_BLE_SEC_REQ_ACT_NONE 0 #define BTM_BLE_SEC_REQ_ACT_ENCRYPT 1 /* encrypt the link using current key or key refresh */ #define BTM_BLE_SEC_REQ_ACT_PAIR 2 #define BTM_BLE_SEC_REQ_ACT_DISCARD 3 /* discard the sec request while encryption is started but not completed */29 defines typedef UINT8 tBTM_BLE_SEC_REQ_ACT; #define BLE_STATIC_PRIVATE_MSB_MASK 0x3f #define BLE_NON_RESOLVE_ADDR_MSB 0x00 /* most significant bit, bit7, bit6 is 00 to be non-resolvable random */ #define BLE_RESOLVE_ADDR_MSB 0x40 /* most significant bit, bit7, bit6 is 01 to be resolvable random */ #define BLE_RESOLVE_ADDR_MASK 0xc0 /* bit 6, and bit7 */ #define BTM_BLE_IS_NON_RESLVE_BDA(x) ((x[0] & BLE_RESOLVE_ADDR_MASK) == BLE_NON_RESOLVE_ADDR_MSB) #define BTM_BLE_IS_RESOLVE_BDA(x) ((x[0] & BLE_RESOLVE_ADDR_MASK) == BLE_RESOLVE_ADDR_MSB) /* LE scan activity bit mask, continue with LE inquiry bits */ #define BTM_LE_SELECT_CONN_ACTIVE 0x0040 /* selection connection is in progress */ #define BTM_LE_OBSERVE_ACTIVE 0x0080 /* observe is in progress */ #define BTM_LE_DISCOVER_ACTIVE 0x0100 /* scan is in progress */ /* BLE scan activity mask checking */ #define BTM_BLE_IS_SCAN_ACTIVE(x) ((x) & BTM_BLE_SCAN_ACTIVE_MASK) #define BTM_BLE_IS_INQ_ACTIVE(x) ((x) & BTM_BLE_INQUIRY_MASK) #define BTM_BLE_IS_OBS_ACTIVE(x) ((x) & BTM_LE_OBSERVE_ACTIVE) #define BTM_BLE_IS_DISCO_ACTIVE(x) ((x) & BTM_LE_DISCOVER_ACTIVE) #define BTM_BLE_IS_SEL_CONN_ACTIVE(x) ((x) & BTM_LE_SELECT_CONN_ACTIVE) /* BLE ADDR type ID bit */ #define BLE_ADDR_TYPE_ID_BIT 0x02 #define BTM_VSC_CHIP_CAPABILITY_L_VERSION 55 #define BTM_VSC_CHIP_CAPABILITY_M_VERSION 9517 defines typedef enum { BTM_BLE_IDLE = 0, BTM_BLE_SCANNING = 1, BTM_BLE_ADVERTISING = 2, }{ ... }tBTM_BLE_GAP_STATE; typedef struct { UINT16 data_mask; UINT8 *p_flags; UINT8 ad_data[BTM_BLE_AD_DATA_LEN]; UINT8 *p_pad; }{ ... } tBTM_BLE_LOCAL_ADV_DATA; typedef struct { UINT32 inq_count; /* Used for determining if a response has already been */ /* received for the current inquiry operation. (We do not */ /* want to flood the caller with multiple responses from */ /* the same device. */ BOOLEAN scan_rsp; tBLE_BD_ADDR le_bda; }{ ... } tINQ_LE_BDADDR; #define BTM_BLE_ADV_DATA_LEN_MAX 31 #define BTM_BLE_CACHE_ADV_DATA_MAX 62 #if (BLE_50_FEATURE_SUPPORT == TRUE) #define BTM_BLE_EXT_ADV_DATA_LEN_MAX 251 #define BTM_BLE_PERIODIC_ADV_DATA_LEN_MAX 252 #define BTM_BLE_ADV_DATA_OP_INTERMEDIATE_FRAG 0 #define BTM_BLE_ADV_DATA_OP_FIRST_FRAG 1 #define BTM_BLE_ADV_DATA_OP_LAST_FRAG 2 #define BTM_BLE_ADV_DATA_OP_COMPLETE 3 #define BTM_BLE_ADV_DATA_OP_UNCHANGED_DATA 4/* ... */ #endif // #if (BLE_50_FEATURE_SUPPORT == TRUE) #define BTM_BLE_ISVALID_PARAM(x, min, max) (((x) >= (min) && (x) <= (max)) || ((x) == BTM_BLE_CONN_PARAM_UNDEF)) typedef struct { UINT16 discoverable_mode; UINT16 connectable_mode; BOOLEAN scan_params_set; UINT32 scan_window; UINT32 scan_interval; UINT8 scan_type; /* current scan type: active or passive */ UINT8 scan_duplicate_filter; /* duplicate filter enabled for scan */ UINT16 adv_interval_min; UINT16 adv_interval_max; tBTM_BLE_AFP afp; /* advertising filter policy */ tBTM_BLE_SFP sfp; /* scanning filter policy */ tBTM_START_ADV_CMPL_CBACK *p_adv_cb; tBTM_START_STOP_ADV_CMPL_CBACK *p_stop_adv_cb; tBTM_CLEAR_ADV_CMPL_CBACK *p_clear_adv_cb; tBLE_ADDR_TYPE adv_addr_type; UINT8 evt_type; UINT8 adv_mode; tBLE_BD_ADDR direct_bda; tBTM_BLE_EVT directed_conn; BOOLEAN fast_adv_on; TIMER_LIST_ENT fast_adv_timer; UINT8 adv_len; UINT8 adv_data_cache[BTM_BLE_CACHE_ADV_DATA_MAX]; BD_ADDR adv_addr; /* inquiry BD addr database */ UINT8 num_bd_entries; UINT8 max_bd_entries; tBTM_BLE_LOCAL_ADV_DATA adv_data; tBTM_BLE_ADV_CHNL_MAP adv_chnl_map; TIMER_LIST_ENT inq_timer_ent; BOOLEAN scan_rsp; tBTM_BLE_GAP_STATE state; /* Current state that the adv or scan process is in */ INT8 tx_power; }{ ... } tBTM_BLE_INQ_CB; /* random address resolving complete callback */ typedef void (tBTM_BLE_RESOLVE_CBACK) (void *match_rec, void *p); typedef void (tBTM_BLE_ADDR_CBACK) (BD_ADDR_PTR static_random, void *p); #define BTM_BLE_GAP_ADDR_BIT_RANDOM (1<<0) #define BTM_BLE_GAP_ADDR_BIT_RESOLVABLE (1<<1) /* random address management control block */ typedef struct { tBLE_ADDR_TYPE own_addr_type; /* local device LE address type */ UINT8 exist_addr_bit; BD_ADDR static_rand_addr; BD_ADDR resolvale_addr; BD_ADDR private_addr; BD_ADDR random_bda; BOOLEAN busy; tBTM_SEC_DEV_REC *p_dev_rec; tBTM_BLE_RESOLVE_CBACK *p_resolve_cback; tBTM_BLE_ADDR_CBACK *p_generate_cback; void *p; TIMER_LIST_ENT raddr_timer_ent; tBTM_SET_LOCAL_PRIVACY_CBACK *set_local_privacy_cback; }{ ... } tBTM_LE_RANDOM_CB; #define BTM_BLE_MAX_BG_CONN_DEV_NUM 10 typedef struct { UINT16 scan_interval; UINT16 scan_window; UINT16 min_conn_int; UINT16 max_conn_int; UINT16 slave_latency; UINT16 supervision_tout; UINT16 min_ce_len; UINT16 max_ce_len; }{ ... } tBTM_LE_CONN_PRAMS; typedef struct { BD_ADDR bd_addr; UINT8 attr; BOOLEAN is_connected; BOOLEAN in_use; }{ ... } tBTM_LE_BG_CONN_DEV; /* white list using state as a bit mask */ #define BTM_BLE_WL_IDLE 0 #define BTM_BLE_WL_INIT 1 #define BTM_BLE_WL_SCAN 2 #define BTM_BLE_WL_ADV 4 typedef UINT8 tBTM_BLE_WL_STATE; /* resolving list using state as a bit mask */ #define BTM_BLE_RL_IDLE 0 #define BTM_BLE_RL_INIT 1 #define BTM_BLE_RL_SCAN 2 #define BTM_BLE_RL_ADV 4 typedef UINT8 tBTM_BLE_RL_STATE; /* BLE connection state */ #define BLE_CONN_IDLE 0 #define BLE_DIR_CONN 1 #define BLE_BG_CONN 2 #define BLE_CONN_CANCEL 3 typedef UINT8 tBTM_BLE_CONN_ST; typedef struct { void *p_param; }{ ... } tBTM_BLE_CONN_REQ; /* LE state request */ #define BTM_BLE_STATE_INVALID 0 #define BTM_BLE_STATE_CONN_ADV 1 #define BTM_BLE_STATE_INIT 2 #define BTM_BLE_STATE_MASTER 3 #define BTM_BLE_STATE_SLAVE 4 #define BTM_BLE_STATE_LO_DUTY_DIR_ADV 5 #define BTM_BLE_STATE_HI_DUTY_DIR_ADV 6 #define BTM_BLE_STATE_NON_CONN_ADV 7 #define BTM_BLE_STATE_PASSIVE_SCAN 8 #define BTM_BLE_STATE_ACTIVE_SCAN 9 #define BTM_BLE_STATE_SCAN_ADV 10 #define BTM_BLE_STATE_MAX 1112 defines typedef UINT8 tBTM_BLE_STATE; #define BTM_BLE_STATE_CONN_ADV_BIT 0x0001 #define BTM_BLE_STATE_INIT_BIT 0x0002 #define BTM_BLE_STATE_MASTER_BIT 0x0004 #define BTM_BLE_STATE_SLAVE_BIT 0x0008 #define BTM_BLE_STATE_LO_DUTY_DIR_ADV_BIT 0x0010 #define BTM_BLE_STATE_HI_DUTY_DIR_ADV_BIT 0x0020 #define BTM_BLE_STATE_NON_CONN_ADV_BIT 0x0040 #define BTM_BLE_STATE_PASSIVE_SCAN_BIT 0x0080 #define BTM_BLE_STATE_ACTIVE_SCAN_BIT 0x0100 #define BTM_BLE_STATE_SCAN_ADV_BIT 0x020010 defines typedef UINT16 tBTM_BLE_STATE_MASK; #define BTM_BLE_STATE_ALL_MASK 0x03ff #define BTM_BLE_STATE_ALL_ADV_MASK (BTM_BLE_STATE_CONN_ADV_BIT|BTM_BLE_STATE_LO_DUTY_DIR_ADV_BIT|BTM_BLE_STATE_HI_DUTY_DIR_ADV_BIT|BTM_BLE_STATE_SCAN_ADV_BIT) #define BTM_BLE_STATE_ALL_SCAN_MASK (BTM_BLE_STATE_PASSIVE_SCAN_BIT|BTM_BLE_STATE_ACTIVE_SCAN_BIT) #define BTM_BLE_STATE_ALL_CONN_MASK (BTM_BLE_STATE_MASTER_BIT|BTM_BLE_STATE_SLAVE_BIT) #ifndef BTM_LE_RESOLVING_LIST_MAX #define BTM_LE_RESOLVING_LIST_MAX 0x20 #endif #define BTM_DUPLICATE_SCAN_EXCEPTIONAL_INFO_ADV_ADDR 0 #define BTM_DUPLICATE_SCAN_EXCEPTIONAL_INFO_MESH_LINK_ID 1 #define BTM_DUPLICATE_SCAN_EXCEPTIONAL_INFO_MESH_BEACON_TYPE 2 #define BTM_DUPLICATE_SCAN_EXCEPTIONAL_INFO_MESH_PROV_SRV_ADV 3 #define BTM_DUPLICATE_SCAN_EXCEPTIONAL_INFO_MESH_PROXY_SRV_ADV 45 defines typedef struct { BD_ADDR *resolve_q_random_pseudo; UINT8 *resolve_q_action; UINT8 q_next; UINT8 q_pending; }{ ... } tBTM_BLE_RESOLVE_Q; typedef struct { BOOLEAN in_use; BOOLEAN to_add; BD_ADDR bd_addr; tBLE_ADDR_TYPE addr_type; UINT8 attr; }{ ... } tBTM_BLE_WL_OP; /* BLE privacy mode */ #define BTM_PRIVACY_NONE 0 /* BLE no privacy */ #define BTM_PRIVACY_1_1 1 /* BLE privacy 1.1, do not support privacy 1.0 */ #define BTM_PRIVACY_1_2 2 /* BLE privacy 1.2 */ #define BTM_PRIVACY_MIXED 3 /* BLE privacy mixed mode, broadcom proprietary mode */ typedef UINT8 tBTM_PRIVACY_MODE; /* data length change event callback */ typedef void (tBTM_DATA_LENGTH_CHANGE_CBACK) (UINT16 max_tx_length, UINT16 max_rx_length); /* Define BLE Device Management control structure *//* ... */ typedef struct { UINT16 scan_activity; /* LE scan activity mask */ /***************************************************** ** BLE Inquiry *****************************************************//* ... */ tBTM_BLE_INQ_CB inq_var; /* observer callback and timer */ tBTM_INQ_RESULTS_CB *p_obs_results_cb; tBTM_CMPL_CB *p_obs_cmpl_cb; tBTM_INQ_DIS_CB *p_obs_discard_cb; TIMER_LIST_ENT obs_timer_ent; /* scan callback and timer */ tBTM_INQ_RESULTS_CB *p_scan_results_cb; tBTM_CMPL_CB *p_scan_cmpl_cb; TIMER_LIST_ENT scan_timer_ent; struct pkt_queue *adv_rpt_queue; struct osi_event *adv_rpt_ready; /* background connection procedure cb value */ tBTM_BLE_CONN_TYPE bg_conn_type; UINT32 scan_int; UINT32 scan_win; tBTM_BLE_SEL_CBACK *p_select_cback; /* white list information */ UINT8 white_list_avail_size; tBTM_UPDATE_WHITELIST_CBACK *update_wl_cb; tBTM_BLE_WL_STATE wl_state; fixed_queue_t *conn_pending_q; tBTM_BLE_CONN_ST conn_state; /* random address management control block */ tBTM_LE_RANDOM_CB addr_mgnt_cb; BOOLEAN enabled; #if BLE_PRIVACY_SPT == TRUE BOOLEAN mixed_mode; /* privacy 1.2 mixed mode is on or not */ tBTM_PRIVACY_MODE privacy_mode; /* privacy mode */ UINT8 resolving_list_avail_size; /* resolving list available size */ tBTM_BLE_RESOLVE_Q resolving_list_pend_q; /* Resolving list queue */ tBTM_BLE_RL_STATE suspended_rl_state; /* Suspended resolving list state */ UINT8 *irk_list_mask; /* IRK list availability mask, up to max entry bits */ tBTM_BLE_RL_STATE rl_state; /* Resolving list state *//* ... */ #endif tBTM_BLE_WL_OP wl_op_q[BTM_BLE_MAX_BG_CONN_DEV_NUM]; /* current BLE link state */ tBTM_BLE_STATE_MASK cur_states; /* bit mask of tBTM_BLE_STATE */ UINT8 link_count[2]; /* total link count master and slave*/ tBTM_UPDATE_DUPLICATE_EXCEPTIONAL_LIST_CMPL_CBACK *update_exceptional_list_cmp_cb; tBTM_SET_CSA_SUPPORT_CMPL_CBACK *set_csa_support_cmpl_cb; }{ ... } tBTM_BLE_CB; #ifdef __cplusplus extern "C" { #endif void btm_ble_timeout(TIMER_LIST_ENT *p_tle); void btm_ble_process_adv_pkt (UINT8 *p); void btm_ble_process_adv_discard_evt(UINT8 *p); void btm_ble_process_direct_adv_pkt (UINT8 *p); bool btm_ble_adv_pkt_ready(void); bool btm_ble_adv_pkt_post(pkt_linked_item_t *pkt); void btm_ble_proc_scan_rsp_rpt (UINT8 *p); tBTM_STATUS btm_ble_read_remote_name(BD_ADDR remote_bda, tBTM_INQ_INFO *p_cur, tBTM_CMPL_CB *p_cb); BOOLEAN btm_ble_cancel_remote_name(BD_ADDR remote_bda); tBTM_STATUS btm_ble_set_discoverability(UINT16 combined_mode); tBTM_STATUS btm_ble_set_connectability(UINT16 combined_mode); tBTM_STATUS btm_ble_start_inquiry (UINT8 mode, UINT8 duration); void btm_ble_stop_scan(void); void btm_clear_all_pending_le_entry(void); BOOLEAN btm_ble_send_extended_scan_params(UINT8 scan_type, UINT32 scan_int, UINT32 scan_win, UINT8 addr_type_own, UINT8 scan_filter_policy); void btm_ble_stop_inquiry(void); void btm_ble_init (void); void btm_ble_free (void); void btm_ble_connected (UINT8 *bda, UINT16 handle, UINT8 enc_mode, UINT8 role, tBLE_ADDR_TYPE addr_type, BOOLEAN addr_matched); void btm_ble_read_remote_features_complete(UINT8 *p); void btm_ble_write_adv_enable_complete(UINT8 *p); void btm_ble_conn_complete(UINT8 *p, UINT16 evt_len, BOOLEAN enhanced); void btm_read_ble_local_supported_states_complete(UINT8 *p, UINT16 evt_len); tBTM_BLE_CONN_ST btm_ble_get_conn_st(void); void btm_ble_set_conn_st(tBTM_BLE_CONN_ST new_st); UINT8 *btm_ble_build_adv_data(tBTM_BLE_AD_MASK *p_data_mask, UINT8 **p_dst, tBTM_BLE_ADV_DATA *p_data); tBTM_STATUS btm_ble_start_adv(void); tBTM_STATUS btm_ble_stop_adv(void); tBTM_STATUS btm_ble_start_scan(void); void btm_ble_create_ll_conn_complete (UINT8 status); void btm_ble_create_conn_cancel_complete (UINT8 *p); tBTM_STATUS btm_ble_set_random_addr(BD_ADDR random_bda); /* LE security function from btm_sec.c */ #if SMP_INCLUDED == TRUE void btm_ble_link_sec_check(BD_ADDR bd_addr, tBTM_LE_AUTH_REQ auth_req, tBTM_BLE_SEC_REQ_ACT *p_sec_req_act); void btm_ble_ltk_request_reply(BD_ADDR bda, BOOLEAN use_stk, BT_OCTET16 stk); UINT8 btm_proc_smp_cback(tSMP_EVT event, BD_ADDR bd_addr, tSMP_EVT_DATA *p_data); tBTM_STATUS btm_ble_set_encryption (BD_ADDR bd_addr, void *p_ref_data, UINT8 link_role); void btm_ble_ltk_request(UINT16 handle, UINT8 rand[8], UINT16 ediv); tBTM_STATUS btm_ble_start_encrypt(BD_ADDR bda, BOOLEAN use_stk, BT_OCTET16 stk); void btm_ble_link_encrypted(BD_ADDR bd_addr, UINT8 encr_enable);/* ... */ #endif /* LE device management functions */ void btm_ble_reset_id( void ); /* security related functions */ void btm_ble_increment_sign_ctr(BD_ADDR bd_addr, BOOLEAN is_local ); BOOLEAN btm_get_local_div (BD_ADDR bd_addr, UINT16 *p_div); BOOLEAN btm_ble_get_enc_key_type(BD_ADDR bd_addr, UINT8 *p_key_types); void btm_ble_test_command_complete(UINT8 *p); void btm_ble_rand_enc_complete (UINT8 *p, UINT16 op_code, tBTM_RAND_ENC_CB *p_enc_cplt_cback); void btm_sec_save_le_key(BD_ADDR bd_addr, tBTM_LE_KEY_TYPE key_type, tBTM_LE_KEY_VALUE *p_keys, BOOLEAN pass_to_application); void btm_ble_update_sec_key_size(BD_ADDR bd_addr, UINT8 enc_key_size); UINT8 btm_ble_read_sec_key_size(BD_ADDR bd_addr); /* white list function */ BOOLEAN btm_update_dev_to_white_list(BOOLEAN to_add, BD_ADDR bd_addr, tBLE_ADDR_TYPE addr_type, tBTM_UPDATE_WHITELIST_CBACK *update_wl_cb); void btm_update_scanner_filter_policy(tBTM_BLE_SFP scan_policy); void btm_update_adv_filter_policy(tBTM_BLE_AFP adv_policy); void btm_ble_clear_white_list (tBTM_UPDATE_WHITELIST_CBACK *update_wl_cb); void btm_read_white_list_size_complete(UINT8 *p, UINT16 evt_len); void btm_ble_add_2_white_list_complete(UINT8 status); void btm_ble_remove_from_white_list_complete(UINT8 *p, UINT16 evt_len); void btm_ble_clear_white_list_complete(UINT8 *p, UINT16 evt_len); void btm_ble_white_list_init(UINT8 white_list_size); /* background connection function */ BOOLEAN btm_ble_suspend_bg_conn(void); BOOLEAN btm_ble_resume_bg_conn(void); void btm_ble_initiate_select_conn(BD_ADDR bda); BOOLEAN btm_ble_start_auto_conn(BOOLEAN start); BOOLEAN btm_ble_start_select_conn(BOOLEAN start, tBTM_BLE_SEL_CBACK *p_select_cback); BOOLEAN btm_ble_renew_bg_conn_params(BOOLEAN add, BD_ADDR bd_addr); void btm_write_dir_conn_wl(BD_ADDR target_addr); BOOLEAN btm_ble_update_mode_operation(UINT8 link_role, BD_ADDR bda, UINT8 status); BOOLEAN btm_execute_wl_dev_operation(void); void btm_ble_update_link_topology_mask(UINT8 role, BOOLEAN increase); /* direct connection utility */ BOOLEAN btm_send_pending_direct_conn(void); void btm_ble_enqueue_direct_conn_req(void *p_param); /* BLE address management */ void btm_gen_resolvable_private_addr (void *p_cmd_cplt_cback); void btm_gen_non_resolvable_private_addr (tBTM_BLE_ADDR_CBACK *p_cback, void *p); void btm_ble_resolve_random_addr(BD_ADDR random_bda, tBTM_BLE_RESOLVE_CBACK *p_cback, void *p); void btm_gen_resolve_paddr_low(tBTM_RAND_ENC *p); /* privacy function */ #if (defined BLE_PRIVACY_SPT && BLE_PRIVACY_SPT == TRUE) /* BLE address mapping with CS feature */ BOOLEAN btm_identity_addr_to_random_pseudo(BD_ADDR bd_addr, UINT8 *p_addr_type, BOOLEAN refresh); BOOLEAN btm_random_pseudo_to_identity_addr(BD_ADDR random_pseudo, UINT8 *p_static_addr_type); void btm_ble_refresh_peer_resolvable_private_addr(BD_ADDR pseudo_bda, BD_ADDR rra, UINT8 rra_type); void btm_ble_refresh_local_resolvable_private_addr(BD_ADDR pseudo_addr, BD_ADDR local_rpa); void btm_ble_read_resolving_list_entry_complete(UINT8 *p, UINT16 evt_len) ; void btm_ble_set_addr_resolution_enable_complete(UINT8 *p, UINT16 evt_len) ; void btm_ble_set_rpa_timeout_complete(UINT8 *p, UINT16 evt_len) ; void btm_ble_remove_resolving_list_entry_complete(UINT8 *p, UINT16 evt_len); void btm_ble_add_resolving_list_entry_complete(UINT8 *p, UINT16 evt_len); void btm_ble_clear_resolving_list_complete(UINT8 *p, UINT16 evt_len); void btm_read_ble_resolving_list_size_complete (UINT8 *p, UINT16 evt_len); void btm_ble_enable_resolving_list(UINT8); BOOLEAN btm_ble_disable_resolving_list(UINT8 rl_mask, BOOLEAN to_resume); void btm_ble_enable_resolving_list_for_platform (UINT8 rl_mask); void btm_ble_resolving_list_init(UINT8 max_irk_list_sz); void btm_ble_resolving_list_cleanup(void); void btm_ble_add_default_entry_to_resolving_list(void); void btm_ble_set_privacy_mode_complete(UINT8 *p, UINT16 evt_len);/* ... */ #endif void btm_ble_multi_adv_configure_rpa (tBTM_BLE_MULTI_ADV_INST *p_inst); void btm_ble_multi_adv_init(void); void *btm_ble_multi_adv_get_ref(UINT8 inst_id); void btm_ble_multi_adv_cleanup(void); void btm_ble_multi_adv_reenable(UINT8 inst_id); void btm_ble_multi_adv_enb_privacy(BOOLEAN enable); char btm_ble_map_adv_tx_power(int tx_power_index); void btm_ble_batchscan_init(void); void btm_ble_batchscan_cleanup(void); void btm_ble_adv_filter_init(void); void btm_ble_adv_filter_cleanup(void); BOOLEAN btm_ble_topology_check(tBTM_BLE_STATE_MASK request); BOOLEAN btm_ble_clear_topology_mask(tBTM_BLE_STATE_MASK request_state); BOOLEAN btm_ble_set_topology_mask(tBTM_BLE_STATE_MASK request_state); tBTM_BLE_STATE_MASK btm_ble_get_topology_mask(void); #if BTM_BLE_CONFORMANCE_TESTING == TRUE void btm_ble_set_no_disc_if_pair_fail (BOOLEAN disble_disc); void btm_ble_set_test_mac_value (BOOLEAN enable, UINT8 *p_test_mac_val); void btm_ble_set_test_local_sign_cntr_value(BOOLEAN enable, UINT32 test_local_sign_cntr); void btm_set_random_address(BD_ADDR random_bda); void btm_ble_set_keep_rfu_in_auth_req(BOOLEAN keep_rfu);/* ... */ #endif BOOLEAN btm_get_current_conn_params(BD_ADDR bda, UINT16 *interval, UINT16 *latency, UINT16 *timeout); #if (BLE_50_FEATURE_SUPPORT == TRUE) void btm_ble_update_phy_evt(tBTM_BLE_UPDATE_PHY *params); void btm_ble_scan_timeout_evt(void); void btm_ble_adv_set_terminated_evt(tBTM_BLE_ADV_TERMINAT *params); void btm_ble_ext_adv_report_evt(tBTM_BLE_EXT_ADV_REPORT *params); void btm_ble_scan_req_received_evt(tBTM_BLE_SCAN_REQ_RECEIVED *params); void btm_ble_channel_select_algorithm_evt(tBTM_BLE_CHANNEL_SEL_ALG *params); void btm_ble_periodic_adv_report_evt(tBTM_PERIOD_ADV_REPORT *params); void btm_ble_periodic_adv_sync_lost_evt(tBTM_BLE_PERIOD_ADV_SYNC_LOST *params); void btm_ble_periodic_adv_sync_establish_evt(tBTM_BLE_PERIOD_ADV_SYNC_ESTAB *params);/* ... */ #endif // #if (BLE_50_FEATURE_SUPPORT == TRUE) #if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE) void btm_ble_periodic_adv_sync_trans_recv_evt(tBTM_BLE_PERIOD_ADV_SYNC_TRANS_RECV *params); #endif // #if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE) /* #ifdef __cplusplus } #endif *//* ... */ /* ... */#endif
Details
Show:
from
Types: Columns:
This file uses the notable symbols shown below. Click anywhere in the file to view more details.