Zephyr Project API  3.3.0
A Scalable Open Source RTOS
hci.h
Go to the documentation of this file.
1/* hci.h - Bluetooth Host Control Interface definitions */
2
3/*
4 * Copyright (c) 2015-2016 Intel Corporation
5 *
6 * SPDX-License-Identifier: Apache-2.0
7 */
8#ifndef ZEPHYR_INCLUDE_BLUETOOTH_HCI_H_
9#define ZEPHYR_INCLUDE_BLUETOOTH_HCI_H_
10
11#include <zephyr/toolchain.h>
12#include <zephyr/types.h>
13#include <stdbool.h>
14#include <string.h>
15#include <zephyr/sys/util.h>
16#include <zephyr/net/buf.h>
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25/* Special own address types for LL privacy (used in adv & scan parameters) */
26#define BT_HCI_OWN_ADDR_RPA_OR_PUBLIC 0x02
27#define BT_HCI_OWN_ADDR_RPA_OR_RANDOM 0x03
28#define BT_HCI_OWN_ADDR_RPA_MASK 0x02
29
30#define BT_HCI_PEER_ADDR_RPA_UNRESOLVED 0xfe
31#define BT_HCI_PEER_ADDR_ANONYMOUS 0xff
32
33#define BT_ENC_KEY_SIZE_MIN 0x07
34#define BT_ENC_KEY_SIZE_MAX 0x10
35
39} __packed;
40#define BT_HCI_EVT_HDR_SIZE 2
41
42#define BT_ACL_START_NO_FLUSH 0x00
43#define BT_ACL_CONT 0x01
44#define BT_ACL_START 0x02
45#define BT_ACL_COMPLETE 0x03
46
47#define BT_ACL_POINT_TO_POINT 0x00
48#define BT_ACL_BROADCAST 0x01
49
50#define BT_ACL_HANDLE_MASK BIT_MASK(12)
51
52#define bt_acl_handle(h) ((h) & BT_ACL_HANDLE_MASK)
53#define bt_acl_flags(h) ((h) >> 12)
54#define bt_acl_flags_pb(f) ((f) & BIT_MASK(2))
55#define bt_acl_flags_bc(f) ((f) >> 2)
56#define bt_acl_handle_pack(h, f) ((h) | ((f) << 12))
57
61} __packed;
62#define BT_HCI_ACL_HDR_SIZE 4
63
64#define BT_ISO_START 0x00
65#define BT_ISO_CONT 0x01
66#define BT_ISO_SINGLE 0x02
67#define BT_ISO_END 0x03
68
69#define bt_iso_handle(h) ((h) & 0x0fff)
70#define bt_iso_flags(h) ((h) >> 12)
71#define bt_iso_flags_pb(f) ((f) & 0x0003)
72#define bt_iso_flags_ts(f) (((f) >> 2) & 0x0001)
73#define bt_iso_pack_flags(pb, ts) \
74 (((pb) & 0x0003) | (((ts) & 0x0001) << 2))
75#define bt_iso_handle_pack(h, pb, ts) \
76 ((h) | (bt_iso_pack_flags(pb, ts) << 12))
77#define bt_iso_hdr_len(h) ((h) & BIT_MASK(14))
78
79#define BT_ISO_DATA_VALID 0x00
80#define BT_ISO_DATA_INVALID 0x01
81#define BT_ISO_DATA_NOP 0x02
82
83#define bt_iso_pkt_len(h) ((h) & 0x3fff)
84#define bt_iso_pkt_flags(h) ((h) >> 14)
85#define bt_iso_pkt_len_pack(h, f) ((h) | ((f) << 14))
86
90} __packed;
91#define BT_HCI_ISO_DATA_HDR_SIZE 4
92
96} __packed;
97#define BT_HCI_ISO_TS_DATA_HDR_SIZE 8
98
100 uint16_t handle; /* 12 bit handle, 2 bit PB flags, 1 bit TS_Flag, 1 bit RFU */
101 uint16_t len; /* 14 bits, 2 bits RFU */
102} __packed;
103#define BT_HCI_ISO_HDR_SIZE 4
104
108} __packed;
109#define BT_HCI_CMD_HDR_SIZE 3
110
111/* Supported Commands */
112#define BT_CMD_TEST(cmd, octet, bit) (cmd[octet] & BIT(bit))
113#define BT_CMD_LE_STATES(cmd) BT_CMD_TEST(cmd, 28, 3)
114
115#define BT_FEAT_TEST(feat, page, octet, bit) (feat[page][octet] & BIT(bit))
116
117#define BT_FEAT_BREDR(feat) !BT_FEAT_TEST(feat, 0, 4, 5)
118#define BT_FEAT_LE(feat) BT_FEAT_TEST(feat, 0, 4, 6)
119#define BT_FEAT_EXT_FEATURES(feat) BT_FEAT_TEST(feat, 0, 7, 7)
120#define BT_FEAT_HOST_SSP(feat) BT_FEAT_TEST(feat, 1, 0, 0)
121#define BT_FEAT_SC(feat) BT_FEAT_TEST(feat, 2, 1, 0)
122
123#define BT_FEAT_LMP_ESCO_CAPABLE(feat) BT_FEAT_TEST(feat, 0, 3, 7)
124#define BT_FEAT_HV2_PKT(feat) BT_FEAT_TEST(feat, 0, 1, 4)
125#define BT_FEAT_HV3_PKT(feat) BT_FEAT_TEST(feat, 0, 1, 5)
126#define BT_FEAT_EV4_PKT(feat) BT_FEAT_TEST(feat, 0, 4, 0)
127#define BT_FEAT_EV5_PKT(feat) BT_FEAT_TEST(feat, 0, 4, 1)
128#define BT_FEAT_2EV3_PKT(feat) BT_FEAT_TEST(feat, 0, 5, 5)
129#define BT_FEAT_3EV3_PKT(feat) BT_FEAT_TEST(feat, 0, 5, 6)
130#define BT_FEAT_3SLOT_PKT(feat) BT_FEAT_TEST(feat, 0, 5, 7)
131
132/* LE features */
133#define BT_LE_FEAT_BIT_ENC 0
134#define BT_LE_FEAT_BIT_CONN_PARAM_REQ 1
135#define BT_LE_FEAT_BIT_EXT_REJ_IND 2
136#define BT_LE_FEAT_BIT_PER_INIT_FEAT_XCHG 3
137#define BT_LE_FEAT_BIT_PING 4
138#define BT_LE_FEAT_BIT_DLE 5
139#define BT_LE_FEAT_BIT_PRIVACY 6
140#define BT_LE_FEAT_BIT_EXT_SCAN 7
141#define BT_LE_FEAT_BIT_PHY_2M 8
142#define BT_LE_FEAT_BIT_SMI_TX 9
143#define BT_LE_FEAT_BIT_SMI_RX 10
144#define BT_LE_FEAT_BIT_PHY_CODED 11
145#define BT_LE_FEAT_BIT_EXT_ADV 12
146#define BT_LE_FEAT_BIT_PER_ADV 13
147#define BT_LE_FEAT_BIT_CHAN_SEL_ALGO_2 14
148#define BT_LE_FEAT_BIT_PWR_CLASS_1 15
149#define BT_LE_FEAT_BIT_MIN_USED_CHAN_PROC 16
150#define BT_LE_FEAT_BIT_CONN_CTE_REQ 17
151#define BT_LE_FEAT_BIT_CONN_CTE_RESP 18
152#define BT_LE_FEAT_BIT_CONNECTIONLESS_CTE_TX 19
153#define BT_LE_FEAT_BIT_CONNECTIONLESS_CTE_RX 20
154#define BT_LE_FEAT_BIT_ANT_SWITCH_TX_AOD 21
155#define BT_LE_FEAT_BIT_ANT_SWITCH_RX_AOA 22
156#define BT_LE_FEAT_BIT_RX_CTE 23
157#define BT_LE_FEAT_BIT_PAST_SEND 24
158#define BT_LE_FEAT_BIT_PAST_RECV 25
159#define BT_LE_FEAT_BIT_SCA_UPDATE 26
160#define BT_LE_FEAT_BIT_REMOTE_PUB_KEY_VALIDATE 27
161#define BT_LE_FEAT_BIT_CIS_CENTRAL 28
162#define BT_LE_FEAT_BIT_CIS_PERIPHERAL 29
163#define BT_LE_FEAT_BIT_ISO_BROADCASTER 30
164#define BT_LE_FEAT_BIT_SYNC_RECEIVER 31
165#define BT_LE_FEAT_BIT_ISO_CHANNELS 32
166#define BT_LE_FEAT_BIT_PWR_CTRL_REQ 33
167#define BT_LE_FEAT_BIT_PWR_CHG_IND 34
168#define BT_LE_FEAT_BIT_PATH_LOSS_MONITOR 35
169#define BT_LE_FEAT_BIT_PER_ADV_ADI_SUPP 36
170#define BT_LE_FEAT_BIT_CONN_SUBRATING 37
171#define BT_LE_FEAT_BIT_CONN_SUBRATING_HOST_SUPP 38
172#define BT_LE_FEAT_BIT_CHANNEL_CLASSIFICATION 39
173
174#define BT_LE_FEAT_TEST(feat, n) (feat[(n) >> 3] & \
175 BIT((n) & 7))
176
177#define BT_FEAT_LE_ENCR(feat) BT_LE_FEAT_TEST(feat, \
178 BT_LE_FEAT_BIT_ENC)
179#define BT_FEAT_LE_CONN_PARAM_REQ_PROC(feat) BT_LE_FEAT_TEST(feat, \
180 BT_LE_FEAT_BIT_CONN_PARAM_REQ)
181#define BT_FEAT_LE_PER_INIT_FEAT_XCHG(feat) BT_LE_FEAT_TEST(feat, \
182 BT_LE_FEAT_BIT_PER_INIT_FEAT_XCHG)
183#define BT_FEAT_LE_DLE(feat) BT_LE_FEAT_TEST(feat, \
184 BT_LE_FEAT_BIT_DLE)
185#define BT_FEAT_LE_PHY_2M(feat) BT_LE_FEAT_TEST(feat, \
186 BT_LE_FEAT_BIT_PHY_2M)
187#define BT_FEAT_LE_PHY_CODED(feat) BT_LE_FEAT_TEST(feat, \
188 BT_LE_FEAT_BIT_PHY_CODED)
189#define BT_FEAT_LE_PRIVACY(feat) BT_LE_FEAT_TEST(feat, \
190 BT_LE_FEAT_BIT_PRIVACY)
191#define BT_FEAT_LE_EXT_ADV(feat) BT_LE_FEAT_TEST(feat, \
192 BT_LE_FEAT_BIT_EXT_ADV)
193#define BT_FEAT_LE_EXT_PER_ADV(feat) BT_LE_FEAT_TEST(feat, \
194 BT_LE_FEAT_BIT_PER_ADV)
195#define BT_FEAT_LE_CONNECTION_CTE_REQ(feat) BT_LE_FEAT_TEST(feat, \
196 BT_LE_FEAT_BIT_CONN_CTE_REQ)
197#define BT_FEAT_LE_CONNECTION_CTE_RESP(feat) BT_LE_FEAT_TEST(feat, \
198 BT_LE_FEAT_BIT_CONN_CTE_RESP)
199#define BT_FEAT_LE_CONNECTIONLESS_CTE_TX(feat) BT_LE_FEAT_TEST(feat, \
200 BT_LE_FEAT_BIT_CONNECTIONLESS_CTE_TX)
201#define BT_FEAT_LE_CONNECTIONLESS_CTE_RX(feat) BT_LE_FEAT_TEST(feat, \
202 BT_LE_FEAT_BIT_CONNECTIONLESS_CTE_RX)
203#define BT_FEAT_LE_ANT_SWITCH_TX_AOD(feat) BT_LE_FEAT_TEST(feat, \
204 BT_LE_FEAT_BIT_ANT_SWITCH_TX_AOD)
205#define BT_FEAT_LE_ANT_SWITCH_RX_AOA(feat) BT_LE_FEAT_TEST(feat, \
206 BT_LE_FEAT_BIT_ANT_SWITCH_RX_AOA)
207#define BT_FEAT_LE_RX_CTE(feat) BT_LE_FEAT_TEST(feat, \
208 BT_LE_FEAT_BIT_RX_CTE)
209#define BT_FEAT_LE_PAST_SEND(feat) BT_LE_FEAT_TEST(feat, \
210 BT_LE_FEAT_BIT_PAST_SEND)
211#define BT_FEAT_LE_PAST_RECV(feat) BT_LE_FEAT_TEST(feat, \
212 BT_LE_FEAT_BIT_PAST_RECV)
213#define BT_FEAT_LE_CIS_CENTRAL(feat) BT_LE_FEAT_TEST(feat, \
214 BT_LE_FEAT_BIT_CIS_CENTRAL)
215#define BT_FEAT_LE_CIS_PERIPHERAL(feat) BT_LE_FEAT_TEST(feat, \
216 BT_LE_FEAT_BIT_CIS_PERIPHERAL)
217#define BT_FEAT_LE_ISO_BROADCASTER(feat) BT_LE_FEAT_TEST(feat, \
218 BT_LE_FEAT_BIT_ISO_BROADCASTER)
219#define BT_FEAT_LE_SYNC_RECEIVER(feat) BT_LE_FEAT_TEST(feat, \
220 BT_LE_FEAT_BIT_SYNC_RECEIVER)
221#define BT_FEAT_LE_ISO_CHANNELS(feat) BT_LE_FEAT_TEST(feat, \
222 BT_LE_FEAT_BIT_ISO_CHANNELS)
223#define BT_FEAT_LE_PWR_CTRL_REQ(feat) BT_LE_FEAT_TEST(feat, \
224 BT_LE_FEAT_BIT_PWR_CTRL_REQ)
225#define BT_FEAT_LE_PWR_CHG_IND(feat) BT_LE_FEAT_TEST(feat, \
226 BT_LE_FEAT_BIT_PWR_CHG_IND)
227#define BT_FEAT_LE_PATH_LOSS_MONITOR(feat) BT_LE_FEAT_TEST(feat, \
228 BT_LE_FEAT_BIT_PATH_LOSS_MONITOR)
229#define BT_FEAT_LE_PER_ADV_ADI_SUPP(feat) BT_LE_FEAT_TEST(feat, \
230 BT_LE_FEAT_BIT_PER_ADV_ADI_SUPP)
231#define BT_FEAT_LE_CONN_SUBRATING(feat) BT_LE_FEAT_TEST(feat, \
232 BT_LE_FEAT_BIT_CONN_SUBRATING)
233#define BT_FEAT_LE_CONN_SUBRATING_HOST_SUPP(feat) BT_LE_FEAT_TEST(feat, \
234 BT_LE_FEAT_BIT_CONN_SUBRATING_HOST_SUPP)
235#define BT_FEAT_LE_CHANNEL_CLASSIFICATION(feat) BT_LE_FEAT_TEST(feat, \
236 BT_LE_FEAT_BIT_CHANNEL_CLASSIFICATION)
237
238#define BT_FEAT_LE_CIS(feat) (BT_FEAT_LE_CIS_CENTRAL(feat) | \
239 BT_FEAT_LE_CIS_PERIPHERAL(feat))
240#define BT_FEAT_LE_BIS(feat) (BT_FEAT_LE_ISO_BROADCASTER(feat) | \
241 BT_FEAT_LE_SYNC_RECEIVER(feat))
242#define BT_FEAT_LE_ISO(feat) (BT_FEAT_LE_CIS(feat) | \
243 BT_FEAT_LE_BIS(feat))
244
245/* LE States */
246#define BT_LE_STATES_PER_CONN_ADV(states) (states & 0x0000004000000000)
247
248/* Bonding/authentication types */
249#define BT_HCI_NO_BONDING 0x00
250#define BT_HCI_NO_BONDING_MITM 0x01
251#define BT_HCI_DEDICATED_BONDING 0x02
252#define BT_HCI_DEDICATED_BONDING_MITM 0x03
253#define BT_HCI_GENERAL_BONDING 0x04
254#define BT_HCI_GENERAL_BONDING_MITM 0x05
255
256/*
257 * MITM protection is enabled in SSP authentication requirements octet when
258 * LSB bit is set.
259 */
260#define BT_MITM 0x01
261
262/* I/O capabilities */
263#define BT_IO_DISPLAY_ONLY 0x00
264#define BT_IO_DISPLAY_YESNO 0x01
265#define BT_IO_KEYBOARD_ONLY 0x02
266#define BT_IO_NO_INPUT_OUTPUT 0x03
267
268/* SCO packet types */
269#define HCI_PKT_TYPE_HV1 0x0020
270#define HCI_PKT_TYPE_HV2 0x0040
271#define HCI_PKT_TYPE_HV3 0x0080
272
273/* eSCO packet types */
274#define HCI_PKT_TYPE_ESCO_HV1 0x0001
275#define HCI_PKT_TYPE_ESCO_HV2 0x0002
276#define HCI_PKT_TYPE_ESCO_HV3 0x0004
277#define HCI_PKT_TYPE_ESCO_EV3 0x0008
278#define HCI_PKT_TYPE_ESCO_EV4 0x0010
279#define HCI_PKT_TYPE_ESCO_EV5 0x0020
280#define HCI_PKT_TYPE_ESCO_2EV3 0x0040
281#define HCI_PKT_TYPE_ESCO_3EV3 0x0080
282#define HCI_PKT_TYPE_ESCO_2EV5 0x0100
283#define HCI_PKT_TYPE_ESCO_3EV5 0x0200
284
285
286#define ESCO_PKT_MASK (HCI_PKT_TYPE_ESCO_HV1 | \
287 HCI_PKT_TYPE_ESCO_HV2 | \
288 HCI_PKT_TYPE_ESCO_HV3)
289#define SCO_PKT_MASK (HCI_PKT_TYPE_HV1 | \
290 HCI_PKT_TYPE_HV2 | \
291 HCI_PKT_TYPE_HV3)
292#define EDR_ESCO_PKT_MASK (HCI_PKT_TYPE_ESCO_2EV3 | \
293 HCI_PKT_TYPE_ESCO_3EV3 | \
294 HCI_PKT_TYPE_ESCO_2EV5 | \
295 HCI_PKT_TYPE_ESCO_3EV5)
296
297/* HCI BR/EDR link types */
298#define BT_HCI_SCO 0x00
299#define BT_HCI_ACL 0x01
300#define BT_HCI_ESCO 0x02
301
302/* OpCode Group Fields */
303#define BT_OGF_LINK_CTRL 0x01
304#define BT_OGF_BASEBAND 0x03
305#define BT_OGF_INFO 0x04
306#define BT_OGF_STATUS 0x05
307#define BT_OGF_LE 0x08
308#define BT_OGF_VS 0x3f
309
310/* Construct OpCode from OGF and OCF */
311#define BT_OP(ogf, ocf) ((ocf) | ((ogf) << 10))
312
313/* Invalid opcode */
314#define BT_OP_NOP 0x0000
315
316/* Obtain OGF from OpCode */
317#define BT_OGF(opcode) (((opcode) >> 10) & BIT_MASK(6))
318/* Obtain OCF from OpCode */
319#define BT_OCF(opcode) ((opcode) & BIT_MASK(10))
320
321#define BT_HCI_OP_INQUIRY BT_OP(BT_OGF_LINK_CTRL, 0x0001)
326} __packed;
327
328#define BT_HCI_OP_INQUIRY_CANCEL BT_OP(BT_OGF_LINK_CTRL, 0x0002)
329
330#define BT_HCI_OP_CONNECT BT_OP(BT_OGF_LINK_CTRL, 0x0005)
338} __packed;
339
340#define BT_HCI_OP_DISCONNECT BT_OP(BT_OGF_LINK_CTRL, 0x0006)
344} __packed;
345
346#define BT_HCI_OP_CONNECT_CANCEL BT_OP(BT_OGF_LINK_CTRL, 0x0008)
349} __packed;
353} __packed;
354
355#define BT_HCI_OP_ACCEPT_CONN_REQ BT_OP(BT_OGF_LINK_CTRL, 0x0009)
359} __packed;
360
361#define BT_HCI_OP_SETUP_SYNC_CONN BT_OP(BT_OGF_LINK_CTRL, 0x0028)
370} __packed;
371
372#define BT_HCI_OP_ACCEPT_SYNC_CONN_REQ BT_OP(BT_OGF_LINK_CTRL, 0x0029)
381} __packed;
382
383#define BT_HCI_OP_REJECT_CONN_REQ BT_OP(BT_OGF_LINK_CTRL, 0x000a)
387} __packed;
388
389#define BT_HCI_OP_LINK_KEY_REPLY BT_OP(BT_OGF_LINK_CTRL, 0x000b)
393} __packed;
394
395#define BT_HCI_OP_LINK_KEY_NEG_REPLY BT_OP(BT_OGF_LINK_CTRL, 0x000c)
398} __packed;
399
400#define BT_HCI_OP_PIN_CODE_REPLY BT_OP(BT_OGF_LINK_CTRL, 0x000d)
405} __packed;
409} __packed;
410
411#define BT_HCI_OP_PIN_CODE_NEG_REPLY BT_OP(BT_OGF_LINK_CTRL, 0x000e)
414} __packed;
418} __packed;
419
420#define BT_HCI_OP_AUTH_REQUESTED BT_OP(BT_OGF_LINK_CTRL, 0x0011)
423} __packed;
424
425#define BT_HCI_OP_SET_CONN_ENCRYPT BT_OP(BT_OGF_LINK_CTRL, 0x0013)
429} __packed;
430
431#define BT_HCI_OP_REMOTE_NAME_REQUEST BT_OP(BT_OGF_LINK_CTRL, 0x0019)
437} __packed;
438
439#define BT_HCI_OP_REMOTE_NAME_CANCEL BT_OP(BT_OGF_LINK_CTRL, 0x001a)
442} __packed;
446} __packed;
447
448#define BT_HCI_OP_READ_REMOTE_FEATURES BT_OP(BT_OGF_LINK_CTRL, 0x001b)
451} __packed;
452
453#define BT_HCI_OP_READ_REMOTE_EXT_FEATURES BT_OP(BT_OGF_LINK_CTRL, 0x001c)
457} __packed;
458
459#define BT_HCI_OP_READ_REMOTE_VERSION_INFO BT_OP(BT_OGF_LINK_CTRL, 0x001d)
462} __packed;
463
464#define BT_HCI_OP_IO_CAPABILITY_REPLY BT_OP(BT_OGF_LINK_CTRL, 0x002b)
470} __packed;
471
472#define BT_HCI_OP_USER_CONFIRM_REPLY BT_OP(BT_OGF_LINK_CTRL, 0x002c)
473#define BT_HCI_OP_USER_CONFIRM_NEG_REPLY BT_OP(BT_OGF_LINK_CTRL, 0x002d)
476} __packed;
480} __packed;
481
482#define BT_HCI_OP_USER_PASSKEY_REPLY BT_OP(BT_OGF_LINK_CTRL, 0x002e)
486} __packed;
487
488#define BT_HCI_OP_USER_PASSKEY_NEG_REPLY BT_OP(BT_OGF_LINK_CTRL, 0x002f)
491} __packed;
492
493#define BT_HCI_OP_IO_CAPABILITY_NEG_REPLY BT_OP(BT_OGF_LINK_CTRL, 0x0034)
497} __packed;
498
499#define BT_HCI_OP_SET_EVENT_MASK BT_OP(BT_OGF_BASEBAND, 0x0001)
502} __packed;
503
504#define BT_HCI_OP_RESET BT_OP(BT_OGF_BASEBAND, 0x0003)
505
506#define BT_HCI_OP_WRITE_LOCAL_NAME BT_OP(BT_OGF_BASEBAND, 0x0013)
509} __packed;
510
511#define BT_HCI_OP_READ_CONN_ACCEPT_TIMEOUT BT_OP(BT_OGF_BASEBAND, 0x0015)
515} __packed;
516
517#define BT_HCI_OP_WRITE_CONN_ACCEPT_TIMEOUT BT_OP(BT_OGF_BASEBAND, 0x0016)
520} __packed;
521
524} __packed;
525
526#define BT_HCI_OP_WRITE_PAGE_TIMEOUT BT_OP(BT_OGF_BASEBAND, 0x0018)
527
528#define BT_HCI_OP_WRITE_SCAN_ENABLE BT_OP(BT_OGF_BASEBAND, 0x001a)
529#define BT_BREDR_SCAN_DISABLED 0x00
530#define BT_BREDR_SCAN_INQUIRY 0x01
531#define BT_BREDR_SCAN_PAGE 0x02
532
533#define BT_HCI_OP_WRITE_CLASS_OF_DEVICE BT_OP(BT_OGF_BASEBAND, 0x0024)
536} __packed;
537
538#define BT_TX_POWER_LEVEL_CURRENT 0x00
539#define BT_TX_POWER_LEVEL_MAX 0x01
540#define BT_HCI_OP_READ_TX_POWER_LEVEL BT_OP(BT_OGF_BASEBAND, 0x002d)
544} __packed;
545
550} __packed;
551
552#define BT_HCI_CTL_TO_HOST_FLOW_DISABLE 0x00
553#define BT_HCI_CTL_TO_HOST_FLOW_ENABLE 0x01
554#define BT_HCI_OP_SET_CTL_TO_HOST_FLOW BT_OP(BT_OGF_BASEBAND, 0x0031)
557} __packed;
558
559#define BT_HCI_OP_HOST_BUFFER_SIZE BT_OP(BT_OGF_BASEBAND, 0x0033)
565} __packed;
566
570} __packed;
571
572#define BT_HCI_OP_HOST_NUM_COMPLETED_PACKETS BT_OP(BT_OGF_BASEBAND, 0x0035)
576} __packed;
577
578#define BT_HCI_OP_WRITE_INQUIRY_MODE BT_OP(BT_OGF_BASEBAND, 0x0045)
581} __packed;
582
583#define BT_HCI_OP_WRITE_SSP_MODE BT_OP(BT_OGF_BASEBAND, 0x0056)
586} __packed;
587
588#define BT_HCI_OP_SET_EVENT_MASK_PAGE_2 BT_OP(BT_OGF_BASEBAND, 0x0063)
591} __packed;
592
593#define BT_HCI_OP_LE_WRITE_LE_HOST_SUPP BT_OP(BT_OGF_BASEBAND, 0x006d)
597} __packed;
598
599#define BT_HCI_OP_WRITE_SC_HOST_SUPP BT_OP(BT_OGF_BASEBAND, 0x007a)
602} __packed;
603
604#define BT_HCI_OP_READ_AUTH_PAYLOAD_TIMEOUT BT_OP(BT_OGF_BASEBAND, 0x007b)
607} __packed;
608
613} __packed;
614
615#define BT_HCI_OP_WRITE_AUTH_PAYLOAD_TIMEOUT BT_OP(BT_OGF_BASEBAND, 0x007c)
619} __packed;
620
624} __packed;
625
626#define BT_HCI_OP_CONFIGURE_DATA_PATH BT_OP(BT_OGF_BASEBAND, 0x0083)
632} __packed;
633
636} __packed;
637
638/* HCI version from Assigned Numbers */
639#define BT_HCI_VERSION_1_0B 0
640#define BT_HCI_VERSION_1_1 1
641#define BT_HCI_VERSION_1_2 2
642#define BT_HCI_VERSION_2_0 3
643#define BT_HCI_VERSION_2_1 4
644#define BT_HCI_VERSION_3_0 5
645#define BT_HCI_VERSION_4_0 6
646#define BT_HCI_VERSION_4_1 7
647#define BT_HCI_VERSION_4_2 8
648#define BT_HCI_VERSION_5_0 9
649#define BT_HCI_VERSION_5_1 10
650#define BT_HCI_VERSION_5_2 11
651#define BT_HCI_VERSION_5_3 12
652
653#define BT_HCI_OP_READ_LOCAL_VERSION_INFO BT_OP(BT_OGF_INFO, 0x0001)
661} __packed;
662
663#define BT_HCI_OP_READ_SUPPORTED_COMMANDS BT_OP(BT_OGF_INFO, 0x0002)
667} __packed;
668
669#define BT_HCI_OP_READ_LOCAL_EXT_FEATURES BT_OP(BT_OGF_INFO, 0x0004)
672};
678} __packed;
679
680#define BT_HCI_OP_READ_LOCAL_FEATURES BT_OP(BT_OGF_INFO, 0x0003)
684} __packed;
685
686#define BT_HCI_OP_READ_BUFFER_SIZE BT_OP(BT_OGF_INFO, 0x0005)
693} __packed;
694
695#define BT_HCI_OP_READ_BD_ADDR BT_OP(BT_OGF_INFO, 0x0009)
699} __packed;
700
701/* logic transport type bits as returned when reading supported codecs */
702#define BT_HCI_CODEC_TRANSPORT_MASK_BREDR_ACL BIT(0)
703#define BT_HCI_CODEC_TRANSPORT_MASK_BREDR_SCO BIT(1)
704#define BT_HCI_CODEC_TRANSPORT_MASK_LE_CIS BIT(2)
705#define BT_HCI_CODEC_TRANSPORT_MASK_LE_BIS BIT(3)
706
707/* logic transport types for reading codec capabilities and controller delays */
708#define BT_HCI_LOGICAL_TRANSPORT_TYPE_BREDR_ACL 0x00
709#define BT_HCI_LOGICAL_TRANSPORT_TYPE_BREDR_SCO 0x01
710#define BT_HCI_LOGICAL_TRANSPORT_TYPE_LE_CIS 0x02
711#define BT_HCI_LOGICAL_TRANSPORT_TYPE_LE_BIS 0x03
712
713/* audio datapath directions */
714#define BT_HCI_DATAPATH_DIR_HOST_TO_CTLR 0x00
715#define BT_HCI_DATAPATH_DIR_CTLR_TO_HOST 0x01
716
717/* audio datapath IDs */
718#define BT_HCI_DATAPATH_ID_HCI 0x00
719#define BT_HCI_DATAPATH_ID_VS 0x01
720#define BT_HCI_DATAPATH_ID_VS_END 0xfe
721
722/* coding format assigned numbers, used for codec IDs */
723#define BT_HCI_CODING_FORMAT_ULAW_LOG 0x00
724#define BT_HCI_CODING_FORMAT_ALAW_LOG 0x01
725#define BT_HCI_CODING_FORMAT_CVSD 0x02
726#define BT_HCI_CODING_FORMAT_TRANSPARENT 0x03
727#define BT_HCI_CODING_FORMAT_LINEAR_PCM 0x04
728#define BT_HCI_CODING_FORMAT_MSBC 0x05
729#define BT_HCI_CODING_FORMAT_VS 0xFF
730
731
732#define BT_HCI_OP_READ_CODECS BT_OP(BT_OGF_INFO, 0x000b)
735} __packed;
739} __packed;
743} __packed;
747} __packed;
750 /* other fields filled in dynamically */
752} __packed;
753
754#define BT_HCI_OP_READ_CODECS_V2 BT_OP(BT_OGF_INFO, 0x000d)
757 uint8_t transports; /* bitmap */
758} __packed;
762} __packed;
766 uint8_t transports; /* bitmap */
767} __packed;
771} __packed;
774 /* other fields filled in dynamically */
776} __packed;
777
782} __packed;
783
784#define BT_HCI_OP_READ_CODEC_CAPABILITIES BT_OP(BT_OGF_INFO, 0x000e)
789} __packed;
793} __packed;
797 /* other fields filled in dynamically */
799} __packed;
800
801#define BT_HCI_OP_READ_CTLR_DELAY BT_OP(BT_OGF_INFO, 0x000f)
808} __packed;
813} __packed;
814
815#define BT_HCI_OP_READ_RSSI BT_OP(BT_OGF_STATUS, 0x0005)
818} __packed;
823} __packed;
824
825#define BT_HCI_ENCRYPTION_KEY_SIZE_MIN 7
826#define BT_HCI_ENCRYPTION_KEY_SIZE_MAX 16
827
828#define BT_HCI_OP_READ_ENCRYPTION_KEY_SIZE BT_OP(BT_OGF_STATUS, 0x0008)
831} __packed;
836} __packed;
837
838/* BLE */
839
840#define BT_HCI_OP_LE_SET_EVENT_MASK BT_OP(BT_OGF_LE, 0x0001)
843} __packed;
844
845#define BT_HCI_OP_LE_READ_BUFFER_SIZE BT_OP(BT_OGF_LE, 0x0002)
850} __packed;
851
852#define BT_HCI_OP_LE_READ_LOCAL_FEATURES BT_OP(BT_OGF_LE, 0x0003)
856} __packed;
857
858#define BT_HCI_OP_LE_SET_RANDOM_ADDRESS BT_OP(BT_OGF_LE, 0x0005)
861} __packed;
862
863#define BT_HCI_ADV_IND 0x00
864#define BT_HCI_ADV_DIRECT_IND 0x01
865#define BT_HCI_ADV_SCAN_IND 0x02
866#define BT_HCI_ADV_NONCONN_IND 0x03
867#define BT_HCI_ADV_DIRECT_IND_LOW_DUTY 0x04
868#define BT_HCI_ADV_SCAN_RSP 0x04
869
870#define BT_LE_ADV_INTERVAL_MIN 0x0020
871#define BT_LE_ADV_INTERVAL_MAX 0x4000
872#define BT_LE_ADV_INTERVAL_DEFAULT 0x0800
873
874#define BT_LE_ADV_CHAN_MAP_CHAN_37 0x01
875#define BT_LE_ADV_CHAN_MAP_CHAN_38 0x02
876#define BT_LE_ADV_CHAN_MAP_CHAN_39 0x04
877#define BT_LE_ADV_CHAN_MAP_ALL 0x07
878
879#define BT_LE_ADV_FP_NO_FILTER 0x00
880#define BT_LE_ADV_FP_FILTER_SCAN_REQ 0x01
881#define BT_LE_ADV_FP_FILTER_CONN_IND 0x02
882#define BT_LE_ADV_FP_FILTER_BOTH 0x03
883
884#define BT_HCI_OP_LE_SET_ADV_PARAM BT_OP(BT_OGF_LE, 0x0006)
893} __packed;
894
895#define BT_HCI_OP_LE_READ_ADV_CHAN_TX_POWER BT_OP(BT_OGF_LE, 0x0007)
899} __packed;
900
901#define BT_HCI_OP_LE_SET_ADV_DATA BT_OP(BT_OGF_LE, 0x0008)
905} __packed;
906
907#define BT_HCI_OP_LE_SET_SCAN_RSP_DATA BT_OP(BT_OGF_LE, 0x0009)
911} __packed;
912
913#define BT_HCI_LE_ADV_DISABLE 0x00
914#define BT_HCI_LE_ADV_ENABLE 0x01
915
916#define BT_HCI_OP_LE_SET_ADV_ENABLE BT_OP(BT_OGF_LE, 0x000a)
919} __packed;
920
921/* Scan types */
922#define BT_HCI_OP_LE_SET_SCAN_PARAM BT_OP(BT_OGF_LE, 0x000b)
923#define BT_HCI_LE_SCAN_PASSIVE 0x00
924#define BT_HCI_LE_SCAN_ACTIVE 0x01
925
926#define BT_HCI_LE_SCAN_FP_BASIC_NO_FILTER 0x00
927#define BT_HCI_LE_SCAN_FP_BASIC_FILTER 0x01
928#define BT_HCI_LE_SCAN_FP_EXT_NO_FILTER 0x02
929#define BT_HCI_LE_SCAN_FP_EXT_FILTER 0x03
930
937} __packed;
938
939#define BT_HCI_OP_LE_SET_SCAN_ENABLE BT_OP(BT_OGF_LE, 0x000c)
940
941#define BT_HCI_LE_SCAN_DISABLE 0x00
942#define BT_HCI_LE_SCAN_ENABLE 0x01
943
944#define BT_HCI_LE_SCAN_FILTER_DUP_DISABLE 0x00
945#define BT_HCI_LE_SCAN_FILTER_DUP_ENABLE 0x01
946
950} __packed;
951
952#define BT_HCI_OP_LE_CREATE_CONN BT_OP(BT_OGF_LE, 0x000d)
953
954#define BT_HCI_LE_CREATE_CONN_FP_NO_FILTER 0x00
955#define BT_HCI_LE_CREATE_CONN_FP_FILTER 0x01
956
969} __packed;
970
971#define BT_HCI_OP_LE_CREATE_CONN_CANCEL BT_OP(BT_OGF_LE, 0x000e)
972
973#define BT_HCI_OP_LE_READ_FAL_SIZE BT_OP(BT_OGF_LE, 0x000f)
977} __packed;
978
979#define BT_HCI_OP_LE_CLEAR_FAL BT_OP(BT_OGF_LE, 0x0010)
980
981#define BT_HCI_OP_LE_ADD_DEV_TO_FAL BT_OP(BT_OGF_LE, 0x0011)
984} __packed;
985
986#define BT_HCI_OP_LE_REM_DEV_FROM_FAL BT_OP(BT_OGF_LE, 0x0012)
989} __packed;
990
991#define BT_HCI_OP_LE_CONN_UPDATE BT_OP(BT_OGF_LE, 0x0013)
1000} __packed;
1001
1002#define BT_HCI_OP_LE_SET_HOST_CHAN_CLASSIF BT_OP(BT_OGF_LE, 0x0014)
1005} __packed;
1006
1007#define BT_HCI_OP_LE_READ_CHAN_MAP BT_OP(BT_OGF_LE, 0x0015)
1010} __packed;
1015} __packed;
1016
1017#define BT_HCI_OP_LE_READ_REMOTE_FEATURES BT_OP(BT_OGF_LE, 0x0016)
1020} __packed;
1021
1022#define BT_HCI_OP_LE_ENCRYPT BT_OP(BT_OGF_LE, 0x0017)
1026} __packed;
1030} __packed;
1031
1032#define BT_HCI_OP_LE_RAND BT_OP(BT_OGF_LE, 0x0018)
1036} __packed;
1037
1038#define BT_HCI_OP_LE_START_ENCRYPTION BT_OP(BT_OGF_LE, 0x0019)
1044} __packed;
1045
1046#define BT_HCI_OP_LE_LTK_REQ_REPLY BT_OP(BT_OGF_LE, 0x001a)
1050} __packed;
1054} __packed;
1055
1056#define BT_HCI_OP_LE_LTK_REQ_NEG_REPLY BT_OP(BT_OGF_LE, 0x001b)
1059} __packed;
1063} __packed;
1064
1065#define BT_HCI_OP_LE_READ_SUPP_STATES BT_OP(BT_OGF_LE, 0x001c)
1069} __packed;
1070
1071#define BT_HCI_OP_LE_RX_TEST BT_OP(BT_OGF_LE, 0x001d)
1074} __packed;
1075
1076#define BT_HCI_TEST_PKT_PAYLOAD_PRBS9 0x00
1077#define BT_HCI_TEST_PKT_PAYLOAD_11110000 0x01
1078#define BT_HCI_TEST_PKT_PAYLOAD_10101010 0x02
1079#define BT_HCI_TEST_PKT_PAYLOAD_PRBS15 0x03
1080#define BT_HCI_TEST_PKT_PAYLOAD_11111111 0x04
1081#define BT_HCI_TEST_PKT_PAYLOAD_00000000 0x05
1082#define BT_HCI_TEST_PKT_PAYLOAD_00001111 0x06
1083#define BT_HCI_TEST_PKT_PAYLOAD_01010101 0x07
1084
1085#define BT_HCI_OP_LE_TX_TEST BT_OP(BT_OGF_LE, 0x001e)
1090} __packed;
1091
1092#define BT_HCI_OP_LE_TEST_END BT_OP(BT_OGF_LE, 0x001f)
1096} __packed;
1097
1098#define BT_HCI_OP_LE_CONN_PARAM_REQ_REPLY BT_OP(BT_OGF_LE, 0x0020)
1107} __packed;
1111} __packed;
1112
1113#define BT_HCI_OP_LE_CONN_PARAM_REQ_NEG_REPLY BT_OP(BT_OGF_LE, 0x0021)
1117} __packed;
1121} __packed;
1122
1123#define BT_HCI_OP_LE_SET_DATA_LEN BT_OP(BT_OGF_LE, 0x0022)
1128} __packed;
1132} __packed;
1133
1134#define BT_HCI_OP_LE_READ_DEFAULT_DATA_LEN BT_OP(BT_OGF_LE, 0x0023)
1139} __packed;
1140
1141#define BT_HCI_OP_LE_WRITE_DEFAULT_DATA_LEN BT_OP(BT_OGF_LE, 0x0024)
1145} __packed;
1146
1147#define BT_HCI_OP_LE_P256_PUBLIC_KEY BT_OP(BT_OGF_LE, 0x0025)
1148
1149#define BT_HCI_OP_LE_GENERATE_DHKEY BT_OP(BT_OGF_LE, 0x0026)
1152} __packed;
1153
1154
1155#define BT_HCI_OP_LE_GENERATE_DHKEY_V2 BT_OP(BT_OGF_LE, 0x005e)
1156
1157#define BT_HCI_LE_KEY_TYPE_GENERATED 0x00
1158#define BT_HCI_LE_KEY_TYPE_DEBUG 0x01
1159
1163} __packed;
1164
1165
1166#define BT_HCI_OP_LE_ADD_DEV_TO_RL BT_OP(BT_OGF_LE, 0x0027)
1171} __packed;
1172
1173#define BT_HCI_OP_LE_REM_DEV_FROM_RL BT_OP(BT_OGF_LE, 0x0028)
1176} __packed;
1177
1178#define BT_HCI_OP_LE_CLEAR_RL BT_OP(BT_OGF_LE, 0x0029)
1179
1180#define BT_HCI_OP_LE_READ_RL_SIZE BT_OP(BT_OGF_LE, 0x002a)
1184} __packed;
1185
1186#define BT_HCI_OP_LE_READ_PEER_RPA BT_OP(BT_OGF_LE, 0x002b)
1189} __packed;
1193} __packed;
1194
1195#define BT_HCI_OP_LE_READ_LOCAL_RPA BT_OP(BT_OGF_LE, 0x002c)
1198} __packed;
1202} __packed;
1203
1204#define BT_HCI_ADDR_RES_DISABLE 0x00
1205#define BT_HCI_ADDR_RES_ENABLE 0x01
1206
1207#define BT_HCI_OP_LE_SET_ADDR_RES_ENABLE BT_OP(BT_OGF_LE, 0x002d)
1210} __packed;
1211
1212#define BT_HCI_OP_LE_SET_RPA_TIMEOUT BT_OP(BT_OGF_LE, 0x002e)
1215} __packed;
1216
1217#define BT_HCI_OP_LE_READ_MAX_DATA_LEN BT_OP(BT_OGF_LE, 0x002f)
1224} __packed;
1225
1226#define BT_HCI_LE_PHY_1M 0x01
1227#define BT_HCI_LE_PHY_2M 0x02
1228#define BT_HCI_LE_PHY_CODED 0x03
1229
1230#define BT_HCI_OP_LE_READ_PHY BT_OP(BT_OGF_LE, 0x0030)
1233} __packed;
1239} __packed;
1240
1241#define BT_HCI_LE_PHY_TX_ANY BIT(0)
1242#define BT_HCI_LE_PHY_RX_ANY BIT(1)
1243
1244#define BT_HCI_LE_PHY_PREFER_1M BIT(0)
1245#define BT_HCI_LE_PHY_PREFER_2M BIT(1)
1246#define BT_HCI_LE_PHY_PREFER_CODED BIT(2)
1247
1248#define BT_HCI_OP_LE_SET_DEFAULT_PHY BT_OP(BT_OGF_LE, 0x0031)
1253} __packed;
1254
1255#define BT_HCI_LE_PHY_CODED_ANY 0x00
1256#define BT_HCI_LE_PHY_CODED_S2 0x01
1257#define BT_HCI_LE_PHY_CODED_S8 0x02
1258
1259#define BT_HCI_OP_LE_SET_PHY BT_OP(BT_OGF_LE, 0x0032)
1266} __packed;
1267
1268#define BT_HCI_LE_MOD_INDEX_STANDARD 0x00
1269#define BT_HCI_LE_MOD_INDEX_STABLE 0x01
1270
1271#define BT_HCI_LE_RX_PHY_1M 0x01
1272#define BT_HCI_LE_RX_PHY_2M 0x02
1273#define BT_HCI_LE_RX_PHY_CODED 0x03
1274
1275#define BT_HCI_OP_LE_ENH_RX_TEST BT_OP(BT_OGF_LE, 0x0033)
1280} __packed;
1281
1282#define BT_HCI_LE_TX_PHY_1M 0x01
1283#define BT_HCI_LE_TX_PHY_2M 0x02
1284#define BT_HCI_LE_TX_PHY_CODED_S8 0x03
1285#define BT_HCI_LE_TX_PHY_CODED_S2 0x04
1286
1287#define BT_HCI_OP_LE_ENH_TX_TEST BT_OP(BT_OGF_LE, 0x0034)
1293} __packed;
1294
1295#define BT_HCI_OP_LE_SET_ADV_SET_RANDOM_ADDR BT_OP(BT_OGF_LE, 0x0035)
1299} __packed;
1300
1301#define BT_HCI_LE_ADV_PROP_CONN BIT(0)
1302#define BT_HCI_LE_ADV_PROP_SCAN BIT(1)
1303#define BT_HCI_LE_ADV_PROP_DIRECT BIT(2)
1304#define BT_HCI_LE_ADV_PROP_HI_DC_CONN BIT(3)
1305#define BT_HCI_LE_ADV_PROP_LEGACY BIT(4)
1306#define BT_HCI_LE_ADV_PROP_ANON BIT(5)
1307#define BT_HCI_LE_ADV_PROP_TX_POWER BIT(6)
1308
1309#define BT_HCI_LE_PRIM_ADV_INTERVAL_MIN 0x000020
1310#define BT_HCI_LE_PRIM_ADV_INTERVAL_MAX 0xFFFFFF
1311
1312#define BT_HCI_LE_ADV_SCAN_REQ_ENABLE 1
1313#define BT_HCI_LE_ADV_SCAN_REQ_DISABLE 0
1314
1315#define BT_HCI_LE_ADV_TX_POWER_NO_PREF 0x7F
1316
1317#define BT_HCI_LE_ADV_HANDLE_MAX 0xEF
1318
1319#define BT_HCI_LE_EXT_ADV_SID_INVALID 0xFF
1320
1321#define BT_HCI_OP_LE_SET_EXT_ADV_PARAM BT_OP(BT_OGF_LE, 0x0036)
1337} __packed;
1341} __packed;
1342
1343#define BT_HCI_LE_EXT_ADV_OP_INTERM_FRAG 0x00
1344#define BT_HCI_LE_EXT_ADV_OP_FIRST_FRAG 0x01
1345#define BT_HCI_LE_EXT_ADV_OP_LAST_FRAG 0x02
1346#define BT_HCI_LE_EXT_ADV_OP_COMPLETE_DATA 0x03
1347#define BT_HCI_LE_EXT_ADV_OP_UNCHANGED_DATA 0x04
1348
1349#define BT_HCI_LE_EXT_ADV_FRAG_ENABLED 0x00
1350#define BT_HCI_LE_EXT_ADV_FRAG_DISABLED 0x01
1351
1352#define BT_HCI_LE_EXT_ADV_FRAG_MAX_LEN 251
1353
1354#define BT_HCI_OP_LE_SET_EXT_ADV_DATA BT_OP(BT_OGF_LE, 0x0037)
1361} __packed;
1362
1363#define BT_HCI_OP_LE_SET_EXT_SCAN_RSP_DATA BT_OP(BT_OGF_LE, 0x0038)
1370} __packed;
1371
1372#define BT_HCI_OP_LE_SET_EXT_ADV_ENABLE BT_OP(BT_OGF_LE, 0x0039)
1377} __packed;
1378
1383} __packed;
1384
1385#define BT_HCI_OP_LE_READ_MAX_ADV_DATA_LEN BT_OP(BT_OGF_LE, 0x003a)
1389} __packed;
1390
1391#define BT_HCI_OP_LE_READ_NUM_ADV_SETS BT_OP(BT_OGF_LE, 0x003b)
1395} __packed;
1396
1397#define BT_HCI_OP_LE_REMOVE_ADV_SET BT_OP(BT_OGF_LE, 0x003c)
1400} __packed;
1401
1402#define BT_HCI_OP_CLEAR_ADV_SETS BT_OP(BT_OGF_LE, 0x003d)
1403
1404#define BT_HCI_LE_PER_ADV_INTERVAL_MIN 0x0006
1405#define BT_HCI_LE_PER_ADV_INTERVAL_MAX 0xFFFF
1406
1407#define BT_HCI_OP_LE_SET_PER_ADV_PARAM BT_OP(BT_OGF_LE, 0x003e)
1413} __packed;
1414
1415#define BT_HCI_LE_PER_ADV_OP_INTERM_FRAG 0x00
1416#define BT_HCI_LE_PER_ADV_OP_FIRST_FRAG 0x01
1417#define BT_HCI_LE_PER_ADV_OP_LAST_FRAG 0x02
1418#define BT_HCI_LE_PER_ADV_OP_COMPLETE_DATA 0x03
1419
1420#define BT_HCI_LE_PER_ADV_FRAG_MAX_LEN 252
1421
1422#define BT_HCI_OP_LE_SET_PER_ADV_DATA BT_OP(BT_OGF_LE, 0x003f)
1428} __packed;
1429
1430#define BT_HCI_LE_SET_PER_ADV_ENABLE_ENABLE BIT(0)
1431#define BT_HCI_LE_SET_PER_ADV_ENABLE_ADI BIT(1)
1432
1433#define BT_HCI_OP_LE_SET_PER_ADV_ENABLE BT_OP(BT_OGF_LE, 0x0040)
1437} __packed;
1438
1439#define BT_HCI_OP_LE_SET_EXT_SCAN_PARAM BT_OP(BT_OGF_LE, 0x0041)
1444} __packed;
1445
1446#define BT_HCI_LE_EXT_SCAN_PHY_1M BIT(0)
1447#define BT_HCI_LE_EXT_SCAN_PHY_2M BIT(1)
1448#define BT_HCI_LE_EXT_SCAN_PHY_CODED BIT(2)
1449
1455} __packed;
1456
1457/* Extends BT_HCI_LE_SCAN_FILTER_DUP */
1458#define BT_HCI_LE_EXT_SCAN_FILTER_DUP_ENABLE_RESET 0x02
1459
1460#define BT_HCI_OP_LE_SET_EXT_SCAN_ENABLE BT_OP(BT_OGF_LE, 0x0042)
1466} __packed;
1467
1468#define BT_HCI_OP_LE_EXT_CREATE_CONN BT_OP(BT_OGF_LE, 0x0043)
1478} __packed;
1479
1486} __packed;
1487
1488#define BT_HCI_LE_PER_ADV_CREATE_SYNC_FP_USE_LIST BIT(0)
1489#define BT_HCI_LE_PER_ADV_CREATE_SYNC_FP_REPORTS_DISABLED BIT(1)
1490#define BT_HCI_LE_PER_ADV_CREATE_SYNC_FP_FILTER_DUPLICATE BIT(2)
1491
1492#define BT_HCI_LE_PER_ADV_CREATE_SYNC_CTE_TYPE_NO_FILTERING 0
1493#define BT_HCI_LE_PER_ADV_CREATE_SYNC_CTE_TYPE_NO_AOA BIT(0)
1494#define BT_HCI_LE_PER_ADV_CREATE_SYNC_CTE_TYPE_NO_AOD_1US BIT(1)
1495#define BT_HCI_LE_PER_ADV_CREATE_SYNC_CTE_TYPE_NO_AOD_2US BIT(2)
1496#define BT_HCI_LE_PER_ADV_CREATE_SYNC_CTE_TYPE_NO_CTE BIT(3)
1497#define BT_HCI_LE_PER_ADV_CREATE_SYNC_CTE_TYPE_ONLY_CTE BIT(4)
1498/* Constants to check correctness of CTE type */
1499#define BT_HCI_LE_PER_ADV_CREATE_SYNC_CTE_TYPE_ALLOWED_BITS 5
1500#define BT_HCI_LE_PER_ADV_CREATE_SYNC_CTE_TYPE_INVALID_VALUE \
1501 (~BIT_MASK(BT_HCI_LE_PER_ADV_CREATE_SYNC_CTE_TYPE_ALLOWED_BITS))
1502
1503#define BT_HCI_OP_LE_PER_ADV_CREATE_SYNC BT_OP(BT_OGF_LE, 0x0044)
1511} __packed;
1512
1513#define BT_HCI_OP_LE_PER_ADV_CREATE_SYNC_CANCEL BT_OP(BT_OGF_LE, 0x0045)
1514
1515#define BT_HCI_OP_LE_PER_ADV_TERMINATE_SYNC BT_OP(BT_OGF_LE, 0x0046)
1518} __packed;
1519
1520#define BT_HCI_OP_LE_ADD_DEV_TO_PER_ADV_LIST BT_OP(BT_OGF_LE, 0x0047)
1524} __packed;
1525
1526#define BT_HCI_OP_LE_REM_DEV_FROM_PER_ADV_LIST BT_OP(BT_OGF_LE, 0x0048)
1530} __packed;
1531
1532#define BT_HCI_OP_LE_CLEAR_PER_ADV_LIST BT_OP(BT_OGF_LE, 0x0049)
1533
1534#define BT_HCI_OP_LE_READ_PER_ADV_LIST_SIZE BT_OP(BT_OGF_LE, 0x004a)
1538} __packed;
1539
1540#define BT_HCI_OP_LE_READ_TX_POWER BT_OP(BT_OGF_LE, 0x004b)
1545} __packed;
1546
1547#define BT_HCI_OP_LE_READ_RF_PATH_COMP BT_OP(BT_OGF_LE, 0x004c)
1552} __packed;
1553
1554#define BT_HCI_OP_LE_WRITE_RF_PATH_COMP BT_OP(BT_OGF_LE, 0x004d)
1558} __packed;
1559
1560#define BT_HCI_LE_PRIVACY_MODE_NETWORK 0x00
1561#define BT_HCI_LE_PRIVACY_MODE_DEVICE 0x01
1562
1563#define BT_HCI_OP_LE_SET_PRIVACY_MODE BT_OP(BT_OGF_LE, 0x004e)
1567} __packed;
1568
1569#define BT_HCI_LE_TEST_CTE_DISABLED 0x00
1570#define BT_HCI_LE_TEST_CTE_TYPE_ANY 0x00
1571#define BT_HCI_LE_TEST_SLOT_DURATION_ANY 0x00
1572#define BT_HCI_LE_TEST_SWITCH_PATTERN_LEN_ANY 0x00
1573
1574#define BT_HCI_OP_LE_RX_TEST_V3 BT_OP(BT_OGF_LE, 0x004f)
1584} __packed;
1585
1586#define BT_HCI_OP_LE_TX_TEST_V3 BT_OP(BT_OGF_LE, 0x0050)
1587
1597} __packed;
1598
1599/* Min and max Constant Tone Extension length in 8us units */
1600#define BT_HCI_LE_CTE_LEN_MIN 0x2
1601#define BT_HCI_LE_CTE_LEN_MAX 0x14
1602
1603#define BT_HCI_LE_AOA_CTE 0x0
1604#define BT_HCI_LE_AOD_CTE_1US 0x1
1605#define BT_HCI_LE_AOD_CTE_2US 0x2
1606#define BT_HCI_LE_NO_CTE 0xFF
1607
1608#define BT_HCI_LE_CTE_COUNT_MIN 0x1
1609#define BT_HCI_LE_CTE_COUNT_MAX 0x10
1610
1611#define BT_HCI_OP_LE_SET_CL_CTE_TX_PARAMS BT_OP(BT_OGF_LE, 0x0051)
1619} __packed;
1620
1621#define BT_HCI_OP_LE_SET_CL_CTE_TX_ENABLE BT_OP(BT_OGF_LE, 0x0052)
1625} __packed;
1626
1627#define BT_HCI_LE_ANTENNA_SWITCHING_SLOT_1US 0x1
1628#define BT_HCI_LE_ANTENNA_SWITCHING_SLOT_2US 0x2
1629
1630#define BT_HCI_LE_SAMPLE_CTE_ALL 0x0
1631#define BT_HCI_LE_SAMPLE_CTE_COUNT_MIN 0x1
1632#define BT_HCI_LE_SAMPLE_CTE_COUNT_MAX 0x10
1633
1634#define BT_HCI_OP_LE_SET_CL_CTE_SAMPLING_ENABLE BT_OP(BT_OGF_LE, 0x0053)
1642} __packed;
1643
1647} __packed;
1648
1649#define BT_HCI_OP_LE_SET_CONN_CTE_RX_PARAMS BT_OP(BT_OGF_LE, 0x0054)
1656} __packed;
1657
1661} __packed;
1662
1663#define BT_HCI_LE_AOA_CTE_RSP BIT(0)
1664#define BT_HCI_LE_AOD_CTE_RSP_1US BIT(1)
1665#define BT_HCI_LE_AOD_CTE_RSP_2US BIT(2)
1666
1667#define BT_HCI_LE_SWITCH_PATTERN_LEN_MIN 0x2
1668#define BT_HCI_LE_SWITCH_PATTERN_LEN_MAX 0x4B
1669
1670#define BT_HCI_OP_LE_SET_CONN_CTE_TX_PARAMS BT_OP(BT_OGF_LE, 0x0055)
1676} __packed;
1677
1681} __packed;
1682
1683/* Interval between consecutive CTE request procedure starts in number of connection events. */
1684#define BT_HCI_REQUEST_CTE_ONCE 0x0
1685#define BT_HCI_REQUEST_CTE_INTERVAL_MIN 0x1
1686#define BT_HCI_REQUEST_CTE_INTERVAL_MAX 0xFFFF
1687
1688#define BT_HCI_OP_LE_CONN_CTE_REQ_ENABLE BT_OP(BT_OGF_LE, 0x0056)
1695} __packed;
1696
1700} __packed;
1701
1702#define BT_HCI_OP_LE_CONN_CTE_RSP_ENABLE BT_OP(BT_OGF_LE, 0x0057)
1706} __packed;
1707
1711} __packed;
1712
1713#define BT_HCI_LE_1US_AOD_TX BIT(0)
1714#define BT_HCI_LE_1US_AOD_RX BIT(1)
1715#define BT_HCI_LE_1US_AOA_RX BIT(2)
1716
1717#define BT_HCI_LE_NUM_ANT_MIN 0x1
1718#define BT_HCI_LE_NUM_ANT_MAX 0x4B
1719
1720#define BT_HCI_LE_MAX_SWITCH_PATTERN_LEN_MIN 0x2
1721#define BT_HCI_LE_MAX_SWITCH_PATTERN_LEN_MAX 0x4B
1722
1723#define BT_HCI_LE_MAX_CTE_LEN_MIN 0x2
1724#define BT_HCI_LE_MAX_CTE_LEN_MAX 0x14
1725
1726#define BT_HCI_OP_LE_READ_ANT_INFO BT_OP(BT_OGF_LE, 0x0058)
1733};
1734
1735#define BT_HCI_LE_SET_PER_ADV_RECV_ENABLE_ENABLE BIT(0)
1736#define BT_HCI_LE_SET_PER_ADV_RECV_ENABLE_FILTER_DUPLICATE BIT(1)
1737
1738#define BT_HCI_OP_LE_SET_PER_ADV_RECV_ENABLE BT_OP(BT_OGF_LE, 0x0059)
1742} __packed;
1743
1744#define BT_HCI_OP_LE_PER_ADV_SYNC_TRANSFER BT_OP(BT_OGF_LE, 0x005a)
1749} __packed;
1750
1754} __packed;
1755
1756#define BT_HCI_OP_LE_PER_ADV_SET_INFO_TRANSFER BT_OP(BT_OGF_LE, 0x005b)
1761} __packed;
1762
1766} __packed;
1767
1768#define BT_HCI_LE_PAST_MODE_NO_SYNC 0x00
1769#define BT_HCI_LE_PAST_MODE_NO_REPORTS 0x01
1770#define BT_HCI_LE_PAST_MODE_SYNC 0x02
1771#define BT_HCI_LE_PAST_MODE_SYNC_FILTER_DUPLICATES 0x03
1772
1773#define BT_HCI_LE_PAST_CTE_TYPE_NO_AOA BIT(0)
1774#define BT_HCI_LE_PAST_CTE_TYPE_NO_AOD_1US BIT(1)
1775#define BT_HCI_LE_PAST_CTE_TYPE_NO_AOD_2US BIT(2)
1776#define BT_HCI_LE_PAST_CTE_TYPE_NO_CTE BIT(3)
1777#define BT_HCI_LE_PAST_CTE_TYPE_ONLY_CTE BIT(4)
1778
1779#define BT_HCI_OP_LE_PAST_PARAM BT_OP(BT_OGF_LE, 0x005c)
1786} __packed;
1787
1791} __packed;
1792
1793#define BT_HCI_OP_LE_DEFAULT_PAST_PARAM BT_OP(BT_OGF_LE, 0x005d)
1799} __packed;
1800
1803} __packed;
1804
1805#define BT_HCI_OP_LE_READ_BUFFER_SIZE_V2 BT_OP(BT_OGF_LE, 0x0060)
1812} __packed;
1813
1814#define BT_HCI_OP_LE_READ_ISO_TX_SYNC BT_OP(BT_OGF_LE, 0x0061)
1817} __packed;
1818
1825} __packed;
1826
1827#define BT_HCI_OP_LE_SET_CIG_PARAMS BT_OP(BT_OGF_LE, 0x0062)
1836} __packed;
1837
1849} __packed;
1850
1856} __packed;
1857
1858#define BT_HCI_OP_LE_SET_CIG_PARAMS_TEST BT_OP(BT_OGF_LE, 0x0063)
1870} __packed;
1871
1884} __packed;
1885
1891} __packed;
1892
1893#define BT_HCI_OP_LE_CREATE_CIS BT_OP(BT_OGF_LE, 0x0064)
1897} __packed;
1898
1901 struct bt_hci_cis cis[0];
1902} __packed;
1903
1904#define BT_HCI_OP_LE_REMOVE_CIG BT_OP(BT_OGF_LE, 0x0065)
1907} __packed;
1908
1912} __packed;
1913
1914#define BT_HCI_OP_LE_ACCEPT_CIS BT_OP(BT_OGF_LE, 0x0066)
1917} __packed;
1918
1919#define BT_HCI_OP_LE_REJECT_CIS BT_OP(BT_OGF_LE, 0x0067)
1923} __packed;
1924
1928} __packed;
1929
1930#define BT_HCI_OP_LE_CREATE_BIG BT_OP(BT_OGF_LE, 0x0068)
1944} __packed;
1945
1946#define BT_HCI_OP_LE_CREATE_BIG_TEST BT_OP(BT_OGF_LE, 0x0069)
1964} __packed;
1965
1966#define BT_HCI_OP_LE_TERMINATE_BIG BT_OP(BT_OGF_LE, 0x006a)
1970} __packed;
1971
1972#define BT_HCI_OP_LE_BIG_CREATE_SYNC BT_OP(BT_OGF_LE, 0x006b)
1982} __packed;
1983
1984#define BT_HCI_OP_LE_BIG_TERMINATE_SYNC BT_OP(BT_OGF_LE, 0x006c)
1987} __packed;
1988
1992} __packed;
1993
1994#define BT_HCI_OP_LE_REQ_PEER_SC BT_OP(BT_OGF_LE, 0x006d)
1997} __packed;
1998
1999#define BT_HCI_OP_LE_SETUP_ISO_PATH BT_OP(BT_OGF_LE, 0x006e)
2008} __packed;
2009
2013} __packed;
2014
2015#define BT_HCI_OP_LE_REMOVE_ISO_PATH BT_OP(BT_OGF_LE, 0x006f)
2019} __packed;
2020
2024} __packed;
2025
2026#define BT_HCI_ISO_TEST_ZERO_SIZE_SDU 0
2027#define BT_HCI_ISO_TEST_VARIABLE_SIZE_SDU 1
2028#define BT_HCI_ISO_TEST_MAX_SIZE_SDU 2
2029
2030#define BT_HCI_OP_LE_ISO_TRANSMIT_TEST BT_OP(BT_OGF_LE, 0x0070)
2034} __packed;
2035
2039} __packed;
2040
2041#define BT_HCI_OP_LE_ISO_RECEIVE_TEST BT_OP(BT_OGF_LE, 0x0071)
2045} __packed;
2046
2050} __packed;
2051
2052#define BT_HCI_OP_LE_ISO_READ_TEST_COUNTERS BT_OP(BT_OGF_LE, 0x0072)
2055} __packed;
2056
2063} __packed;
2064
2065#define BT_HCI_OP_LE_ISO_TEST_END BT_OP(BT_OGF_LE, 0x0073)
2068} __packed;
2069
2076} __packed;
2077
2078#define BT_HCI_OP_LE_SET_HOST_FEATURE BT_OP(BT_OGF_LE, 0x0074)
2082} __packed;
2083
2086} __packed;
2087
2088#define BT_HCI_OP_LE_READ_ISO_LINK_QUALITY BT_OP(BT_OGF_LE, 0x0075)
2091} __packed;
2092
2103} __packed;
2104
2105#define BT_HCI_OP_LE_TX_TEST_V4 BT_OP(BT_OGF_LE, 0x007B)
2106
2116} __packed;
2117
2118#define BT_HCI_TX_TEST_POWER_MIN -0x7F
2119#define BT_HCI_TX_TEST_POWER_MAX 0x14
2120
2121#define BT_HCI_TX_TEST_POWER_MIN_SET 0x7E
2122#define BT_HCI_TX_TEST_POWER_MAX_SET 0x7F
2123
2124/* Helper structure for Tx power parameter in the HCI Tx Test v4 command.
2125 * Previous parameter of this command is variable size so having separated structure
2126 * for this parameter helps in command parameters unpacking.
2127 */
2130} __packed;
2131
2132/* Event definitions */
2133
2134#define BT_HCI_EVT_UNKNOWN 0x00
2135#define BT_HCI_EVT_VENDOR 0xff
2136
2137#define BT_HCI_EVT_INQUIRY_COMPLETE 0x01
2140} __packed;
2141
2142#define BT_HCI_EVT_CONN_COMPLETE 0x03
2149} __packed;
2150
2151#define BT_HCI_EVT_CONN_REQUEST 0x04
2156} __packed;
2157
2158#define BT_HCI_EVT_DISCONN_COMPLETE 0x05
2163} __packed;
2164
2165#define BT_HCI_EVT_AUTH_COMPLETE 0x06
2169} __packed;
2170
2171#define BT_HCI_EVT_REMOTE_NAME_REQ_COMPLETE 0x07
2176} __packed;
2177
2178#define BT_HCI_EVT_ENCRYPT_CHANGE 0x08
2183} __packed;
2184
2185#define BT_HCI_EVT_REMOTE_FEATURES 0x0b
2190} __packed;
2191
2192#define BT_HCI_EVT_REMOTE_VERSION_INFO 0x0c
2199} __packed;
2200
2201#define BT_HCI_EVT_CMD_COMPLETE 0x0e
2205} __packed;
2206
2209} __packed;
2210
2211#define BT_HCI_EVT_CMD_STATUS 0x0f
2216} __packed;
2217
2218#define BT_HCI_EVT_HARDWARE_ERROR 0x10
2221} __packed;
2222
2223#define BT_HCI_EVT_ROLE_CHANGE 0x12
2228} __packed;
2229
2230#define BT_HCI_EVT_NUM_COMPLETED_PACKETS 0x13
2234} __packed;
2235
2236#define BT_HCI_EVT_PIN_CODE_REQ 0x16
2239} __packed;
2240
2241#define BT_HCI_EVT_LINK_KEY_REQ 0x17
2244} __packed;
2245
2246/* Link Key types */
2247#define BT_LK_COMBINATION 0x00
2248#define BT_LK_LOCAL_UNIT 0x01
2249#define BT_LK_REMOTE_UNIT 0x02
2250#define BT_LK_DEBUG_COMBINATION 0x03
2251#define BT_LK_UNAUTH_COMBINATION_P192 0x04
2252#define BT_LK_AUTH_COMBINATION_P192 0x05
2253#define BT_LK_CHANGED_COMBINATION 0x06
2254#define BT_LK_UNAUTH_COMBINATION_P256 0x07
2255#define BT_LK_AUTH_COMBINATION_P256 0x08
2256
2257#define BT_HCI_EVT_LINK_KEY_NOTIFY 0x18
2262} __packed;
2263
2264/* Overflow link types */
2265#define BT_OVERFLOW_LINK_SYNCH 0x00
2266#define BT_OVERFLOW_LINK_ACL 0x01
2267#define BT_OVERFLOW_LINK_ISO 0x02
2268
2269#define BT_HCI_EVT_DATA_BUF_OVERFLOW 0x1a
2272} __packed;
2273
2274#define BT_HCI_EVT_INQUIRY_RESULT_WITH_RSSI 0x22
2282} __packed;
2283
2284#define BT_HCI_EVT_REMOTE_EXT_FEATURES 0x23
2291} __packed;
2292
2293#define BT_HCI_EVT_SYNC_CONN_COMPLETE 0x2c
2304} __packed;
2305
2306#define BT_HCI_EVT_EXTENDED_INQUIRY_RESULT 0x2f
2316} __packed;
2317
2318#define BT_HCI_EVT_ENCRYPT_KEY_REFRESH_COMPLETE 0x30
2322} __packed;
2323
2324#define BT_HCI_EVT_IO_CAPA_REQ 0x31
2327} __packed;
2328
2329#define BT_HCI_EVT_IO_CAPA_RESP 0x32
2335} __packed;
2336
2337#define BT_HCI_EVT_USER_CONFIRM_REQ 0x33
2341} __packed;
2342
2343#define BT_HCI_EVT_USER_PASSKEY_REQ 0x34
2346} __packed;
2347
2348#define BT_HCI_EVT_SSP_COMPLETE 0x36
2352} __packed;
2353
2354#define BT_HCI_EVT_USER_PASSKEY_NOTIFY 0x3b
2358} __packed;
2359
2360#define BT_HCI_EVT_LE_META_EVENT 0x3e
2363} __packed;
2364
2365#define BT_HCI_EVT_AUTH_PAYLOAD_TIMEOUT_EXP 0x57
2368} __packed;
2369
2370#define BT_HCI_ROLE_CENTRAL 0x00
2371#define BT_HCI_ROLE_PERIPHERAL 0x01
2372
2373#define BT_HCI_EVT_LE_CONN_COMPLETE 0x01
2383} __packed;
2384
2385#define BT_HCI_LE_RSSI_NOT_AVAILABLE 0x7F
2386
2387#define BT_HCI_EVT_LE_ADVERTISING_REPORT 0x02
2393} __packed;
2397} __packed;
2398
2399#define BT_HCI_EVT_LE_CONN_UPDATE_COMPLETE 0x03
2406} __packed;
2407
2408#define BT_HCI_EVT_LE_REMOTE_FEAT_COMPLETE 0x04
2413} __packed;
2414
2415#define BT_HCI_EVT_LE_LTK_REQUEST 0x05
2420} __packed;
2421
2422#define BT_HCI_EVT_LE_CONN_PARAM_REQ 0x06
2429} __packed;
2430
2431#define BT_HCI_EVT_LE_DATA_LEN_CHANGE 0x07
2438} __packed;
2439
2440#define BT_HCI_EVT_LE_P256_PUBLIC_KEY_COMPLETE 0x08
2444} __packed;
2445
2446#define BT_HCI_EVT_LE_GENERATE_DHKEY_COMPLETE 0x09
2450} __packed;
2451
2452#define BT_HCI_EVT_LE_ENH_CONN_COMPLETE 0x0a
2464} __packed;
2465
2466#define BT_HCI_EVT_LE_DIRECT_ADV_REPORT 0x0b
2472} __packed;
2476} __packed;
2477
2478#define BT_HCI_EVT_LE_PHY_UPDATE_COMPLETE 0x0c
2484} __packed;
2485
2486#define BT_HCI_EVT_LE_EXT_ADVERTISING_REPORT 0x0d
2487
2488#define BT_HCI_LE_ADV_EVT_TYPE_CONN BIT(0)
2489#define BT_HCI_LE_ADV_EVT_TYPE_SCAN BIT(1)
2490#define BT_HCI_LE_ADV_EVT_TYPE_DIRECT BIT(2)
2491#define BT_HCI_LE_ADV_EVT_TYPE_SCAN_RSP BIT(3)
2492#define BT_HCI_LE_ADV_EVT_TYPE_LEGACY BIT(4)
2493
2494#define BT_HCI_LE_ADV_EVT_TYPE_DATA_STATUS(ev_type) (((ev_type) >> 5) & 0x03)
2495#define BT_HCI_LE_ADV_EVT_TYPE_DATA_STATUS_COMPLETE 0
2496#define BT_HCI_LE_ADV_EVT_TYPE_DATA_STATUS_PARTIAL 1
2497#define BT_HCI_LE_ADV_EVT_TYPE_DATA_STATUS_INCOMPLETE 2
2498
2511} __packed;
2515} __packed;
2516
2517#define BT_HCI_EVT_LE_PER_ADV_SYNC_ESTABLISHED 0x0e
2526} __packed;
2527
2528#define BT_HCI_EVT_LE_PER_ADVERTISING_REPORT 0x0f
2537} __packed;
2538
2539#define BT_HCI_EVT_LE_PER_ADV_SYNC_LOST 0x10
2542} __packed;
2543
2544#define BT_HCI_EVT_LE_SCAN_TIMEOUT 0x11
2545
2546#define BT_HCI_EVT_LE_ADV_SET_TERMINATED 0x12
2552} __packed;
2553
2554#define BT_HCI_EVT_LE_SCAN_REQ_RECEIVED 0x13
2558} __packed;
2559
2560#define BT_HCI_LE_CHAN_SEL_ALGO_1 0x00
2561#define BT_HCI_LE_CHAN_SEL_ALGO_2 0x01
2562
2563#define BT_HCI_EVT_LE_CHAN_SEL_ALGO 0x14
2567} __packed;
2568
2569#define BT_HCI_LE_CTE_CRC_OK 0x0
2570#define BT_HCI_LE_CTE_CRC_ERR_CTE_BASED_TIME 0x1
2571#define BT_HCI_LE_CTE_CRC_ERR_CTE_BASED_OTHER 0x2
2572#define BT_HCI_LE_CTE_INSUFFICIENT_RESOURCES 0xFF
2573
2574#define B_HCI_LE_CTE_REPORT_SAMPLE_COUNT_MIN 0x9
2575#define B_HCI_LE_CTE_REPORT_SAMPLE_COUNT_MAX 0x52
2576
2577#define BT_HCI_LE_CTE_REPORT_NO_VALID_SAMPLE 0x80
2578
2579#define BT_HCI_EVT_LE_CONNECTIONLESS_IQ_REPORT 0x15
2583};
2584
2596} __packed;
2597
2598#define BT_HCI_EVT_LE_CONNECTION_IQ_REPORT 0x16
2611} __packed;
2612
2613#define BT_HCI_CTE_REQ_STATUS_RSP_WITHOUT_CTE 0x0
2614
2615#define BT_HCI_EVT_LE_CTE_REQUEST_FAILED 0x17
2617 /* According to BT 5.3 Core Spec the status field may have following
2618 * values:
2619 * - BT_HCI_CTE_REQ_STATUS_RSP_WITHOUT_CTE when received LL_CTE_RSP_PDU without CTE.
2620 * - Other Controller error code for peer rejected request.
2621 */
2624} __packed;
2625
2626#define BT_HCI_EVT_LE_PAST_RECEIVED 0x18
2637} __packed;
2638
2639#define BT_HCI_EVT_LE_CIS_ESTABLISHED 0x19
2657} __packed;
2658
2659#define BT_HCI_EVT_LE_CIS_REQ 0x1a
2665} __packed;
2666
2667#define BT_HCI_EVT_LE_BIG_COMPLETE 0x1b
2682} __packed;
2683
2684#define BT_HCI_EVT_LE_BIG_TERMINATE 0x1c
2688} __packed;
2689
2690#define BT_HCI_EVT_LE_BIG_SYNC_ESTABLISHED 0x1d
2703} __packed;
2704
2705#define BT_HCI_EVT_LE_BIG_SYNC_LOST 0x1e
2709} __packed;
2710
2711#define BT_HCI_EVT_LE_REQ_PEER_SCA_COMPLETE 0x1f
2716} __packed;
2717
2718#define BT_HCI_EVT_LE_BIGINFO_ADV_REPORT 0x22
2733} __packed;
2734
2735/* Event mask bits */
2736
2737#define BT_EVT_BIT(n) (1ULL << (n))
2738
2739#define BT_EVT_MASK_INQUIRY_COMPLETE BT_EVT_BIT(0)
2740#define BT_EVT_MASK_CONN_COMPLETE BT_EVT_BIT(2)
2741#define BT_EVT_MASK_CONN_REQUEST BT_EVT_BIT(3)
2742#define BT_EVT_MASK_DISCONN_COMPLETE BT_EVT_BIT(4)
2743#define BT_EVT_MASK_AUTH_COMPLETE BT_EVT_BIT(5)
2744#define BT_EVT_MASK_REMOTE_NAME_REQ_COMPLETE BT_EVT_BIT(6)
2745#define BT_EVT_MASK_ENCRYPT_CHANGE BT_EVT_BIT(7)
2746#define BT_EVT_MASK_REMOTE_FEATURES BT_EVT_BIT(10)
2747#define BT_EVT_MASK_REMOTE_VERSION_INFO BT_EVT_BIT(11)
2748#define BT_EVT_MASK_HARDWARE_ERROR BT_EVT_BIT(15)
2749#define BT_EVT_MASK_ROLE_CHANGE BT_EVT_BIT(17)
2750#define BT_EVT_MASK_PIN_CODE_REQ BT_EVT_BIT(21)
2751#define BT_EVT_MASK_LINK_KEY_REQ BT_EVT_BIT(22)
2752#define BT_EVT_MASK_LINK_KEY_NOTIFY BT_EVT_BIT(23)
2753#define BT_EVT_MASK_DATA_BUFFER_OVERFLOW BT_EVT_BIT(25)
2754#define BT_EVT_MASK_INQUIRY_RESULT_WITH_RSSI BT_EVT_BIT(33)
2755#define BT_EVT_MASK_REMOTE_EXT_FEATURES BT_EVT_BIT(34)
2756#define BT_EVT_MASK_SYNC_CONN_COMPLETE BT_EVT_BIT(43)
2757#define BT_EVT_MASK_EXTENDED_INQUIRY_RESULT BT_EVT_BIT(46)
2758#define BT_EVT_MASK_ENCRYPT_KEY_REFRESH_COMPLETE BT_EVT_BIT(47)
2759#define BT_EVT_MASK_IO_CAPA_REQ BT_EVT_BIT(48)
2760#define BT_EVT_MASK_IO_CAPA_RESP BT_EVT_BIT(49)
2761#define BT_EVT_MASK_USER_CONFIRM_REQ BT_EVT_BIT(50)
2762#define BT_EVT_MASK_USER_PASSKEY_REQ BT_EVT_BIT(51)
2763#define BT_EVT_MASK_SSP_COMPLETE BT_EVT_BIT(53)
2764#define BT_EVT_MASK_USER_PASSKEY_NOTIFY BT_EVT_BIT(58)
2765#define BT_EVT_MASK_LE_META_EVENT BT_EVT_BIT(61)
2766
2767/* Page 2 */
2768#define BT_EVT_MASK_NUM_COMPLETE_DATA_BLOCKS BT_EVT_BIT(8)
2769#define BT_EVT_MASK_TRIGG_CLOCK_CAPTURE BT_EVT_BIT(14)
2770#define BT_EVT_MASK_SYNCH_TRAIN_COMPLETE BT_EVT_BIT(15)
2771#define BT_EVT_MASK_SYNCH_TRAIN_RX BT_EVT_BIT(16)
2772#define BT_EVT_MASK_CL_PER_BC_RX BT_EVT_BIT(17)
2773#define BT_EVT_MASK_CL_PER_BC_TIMEOUT BT_EVT_BIT(18)
2774#define BT_EVT_MASK_TRUNC_PAGE_COMPLETE BT_EVT_BIT(19)
2775#define BT_EVT_MASK_PER_PAGE_RSP_TIMEOUT BT_EVT_BIT(20)
2776#define BT_EVT_MASK_CL_PER_BC_CH_MAP_CHANGE BT_EVT_BIT(21)
2777#define BT_EVT_MASK_INQUIRY_RSP_NOT BT_EVT_BIT(22)
2778#define BT_EVT_MASK_AUTH_PAYLOAD_TIMEOUT_EXP BT_EVT_BIT(23)
2779#define BT_EVT_MASK_SAM_STATUS_CHANGE BT_EVT_BIT(24)
2780
2781#define BT_EVT_MASK_LE_CONN_COMPLETE BT_EVT_BIT(0)
2782#define BT_EVT_MASK_LE_ADVERTISING_REPORT BT_EVT_BIT(1)
2783#define BT_EVT_MASK_LE_CONN_UPDATE_COMPLETE BT_EVT_BIT(2)
2784#define BT_EVT_MASK_LE_REMOTE_FEAT_COMPLETE BT_EVT_BIT(3)
2785#define BT_EVT_MASK_LE_LTK_REQUEST BT_EVT_BIT(4)
2786#define BT_EVT_MASK_LE_CONN_PARAM_REQ BT_EVT_BIT(5)
2787#define BT_EVT_MASK_LE_DATA_LEN_CHANGE BT_EVT_BIT(6)
2788#define BT_EVT_MASK_LE_P256_PUBLIC_KEY_COMPLETE BT_EVT_BIT(7)
2789#define BT_EVT_MASK_LE_GENERATE_DHKEY_COMPLETE BT_EVT_BIT(8)
2790#define BT_EVT_MASK_LE_ENH_CONN_COMPLETE BT_EVT_BIT(9)
2791#define BT_EVT_MASK_LE_DIRECT_ADV_REPORT BT_EVT_BIT(10)
2792#define BT_EVT_MASK_LE_PHY_UPDATE_COMPLETE BT_EVT_BIT(11)
2793#define BT_EVT_MASK_LE_EXT_ADVERTISING_REPORT BT_EVT_BIT(12)
2794#define BT_EVT_MASK_LE_PER_ADV_SYNC_ESTABLISHED BT_EVT_BIT(13)
2795#define BT_EVT_MASK_LE_PER_ADVERTISING_REPORT BT_EVT_BIT(14)
2796#define BT_EVT_MASK_LE_PER_ADV_SYNC_LOST BT_EVT_BIT(15)
2797#define BT_EVT_MASK_LE_SCAN_TIMEOUT BT_EVT_BIT(16)
2798#define BT_EVT_MASK_LE_ADV_SET_TERMINATED BT_EVT_BIT(17)
2799#define BT_EVT_MASK_LE_SCAN_REQ_RECEIVED BT_EVT_BIT(18)
2800#define BT_EVT_MASK_LE_CHAN_SEL_ALGO BT_EVT_BIT(19)
2801#define BT_EVT_MASK_LE_CONNECTIONLESS_IQ_REPORT BT_EVT_BIT(20)
2802#define BT_EVT_MASK_LE_CONNECTION_IQ_REPORT BT_EVT_BIT(21)
2803#define BT_EVT_MASK_LE_CTE_REQUEST_FAILED BT_EVT_BIT(22)
2804#define BT_EVT_MASK_LE_PAST_RECEIVED BT_EVT_BIT(23)
2805#define BT_EVT_MASK_LE_CIS_ESTABLISHED BT_EVT_BIT(24)
2806#define BT_EVT_MASK_LE_CIS_REQ BT_EVT_BIT(25)
2807#define BT_EVT_MASK_LE_BIG_COMPLETE BT_EVT_BIT(26)
2808#define BT_EVT_MASK_LE_BIG_TERMINATED BT_EVT_BIT(27)
2809#define BT_EVT_MASK_LE_BIG_SYNC_ESTABLISHED BT_EVT_BIT(28)
2810#define BT_EVT_MASK_LE_BIG_SYNC_LOST BT_EVT_BIT(29)
2811#define BT_EVT_MASK_LE_REQ_PEER_SCA_COMPLETE BT_EVT_BIT(30)
2812#define BT_EVT_MASK_LE_PATH_LOSS_THRESHOLD BT_EVT_BIT(31)
2813#define BT_EVT_MASK_LE_TRANSMIT_POWER_REPORTING BT_EVT_BIT(32)
2814#define BT_EVT_MASK_LE_BIGINFO_ADV_REPORT BT_EVT_BIT(33)
2815
2828struct net_buf *bt_hci_cmd_create(uint16_t opcode, uint8_t param_len);
2829
2847int bt_hci_cmd_send(uint16_t opcode, struct net_buf *buf);
2848
2872int bt_hci_cmd_send_sync(uint16_t opcode, struct net_buf *buf,
2873 struct net_buf **rsp);
2874
2882int bt_hci_get_conn_handle(const struct bt_conn *conn, uint16_t *conn_handle);
2883
2891int bt_hci_get_adv_handle(const struct bt_le_ext_adv *adv, uint8_t *adv_handle);
2892
2904typedef bool bt_hci_vnd_evt_cb_t(struct net_buf_simple *buf);
2905
2914
2928int bt_hci_le_rand(void *buffer, size_t len);
2929
2930
2931#ifdef __cplusplus
2932}
2933#endif
2934
2935#endif /* ZEPHYR_INCLUDE_BLUETOOTH_HCI_H_ */
Bluetooth device address definitions and utilities.
Bluetooth connection handling.
int bt_hci_get_adv_handle(const struct bt_le_ext_adv *adv, uint8_t *adv_handle)
Get advertising handle for an advertising set.
int bt_hci_le_rand(void *buffer, size_t len)
Get Random bytes from the LE Controller.
struct net_buf * bt_hci_cmd_create(uint16_t opcode, uint8_t param_len)
int bt_hci_cmd_send_sync(uint16_t opcode, struct net_buf *buf, struct net_buf **rsp)
int bt_hci_get_conn_handle(const struct bt_conn *conn, uint16_t *conn_handle)
Get connection handle for a connection.
int bt_hci_register_vnd_evt_cb(bt_hci_vnd_evt_cb_t cb)
int bt_hci_cmd_send(uint16_t opcode, struct net_buf *buf)
bool bt_hci_vnd_evt_cb_t(struct net_buf_simple *buf)
Callback type for vendor handling of HCI Vendor-Specific Events.
Definition: hci.h:2904
Bluetooth Host Control Interface status codes.
Buffer management.
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__UINT64_TYPE__ uint64_t
Definition: stdint.h:91
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
__INT8_TYPE__ int8_t
Definition: stdint.h:72
__INT16_TYPE__ int16_t
Definition: stdint.h:73
Definition: addr.h:48
Definition: addr.h:39
Definition: hci.h:58
uint16_t handle
Definition: hci.h:59
uint16_t len
Definition: hci.h:60
Definition: hci.h:1859
uint8_t cis_id
Definition: hci.h:1860
uint16_t c_sdu
Definition: hci.h:1862
uint8_t c_phy
Definition: hci.h:1866
uint8_t p_phy
Definition: hci.h:1867
uint16_t p_pdu
Definition: hci.h:1865
uint8_t p_bn
Definition: hci.h:1869
uint8_t nse
Definition: hci.h:1861
uint16_t c_pdu
Definition: hci.h:1864
uint8_t c_bn
Definition: hci.h:1868
uint16_t p_sdu
Definition: hci.h:1863
Definition: hci.h:1828
uint8_t p_phy
Definition: hci.h:1833
uint8_t c_phy
Definition: hci.h:1832
uint8_t cis_id
Definition: hci.h:1829
uint16_t c_sdu
Definition: hci.h:1830
uint8_t c_rtn
Definition: hci.h:1834
uint8_t p_rtn
Definition: hci.h:1835
uint16_t p_sdu
Definition: hci.h:1831
Definition: hci.h:1894
uint16_t acl_handle
Definition: hci.h:1896
uint16_t cis_handle
Definition: hci.h:1895
Definition: hci.h:105
uint16_t opcode
Definition: hci.h:106
uint8_t param_len
Definition: hci.h:107
Definition: hci.h:790
uint8_t length
Definition: hci.h:791
uint8_t data[0]
Definition: hci.h:792
Definition: hci.h:356
uint8_t role
Definition: hci.h:358
bt_addr_t bdaddr
Definition: hci.h:357
Definition: hci.h:373
uint16_t max_latency
Definition: hci.h:377
uint32_t tx_bandwidth
Definition: hci.h:375
bt_addr_t bdaddr
Definition: hci.h:374
uint16_t pkt_type
Definition: hci.h:380
uint8_t retrans_effort
Definition: hci.h:379
uint32_t rx_bandwidth
Definition: hci.h:376
uint16_t content_format
Definition: hci.h:378
Definition: hci.h:421
uint16_t handle
Definition: hci.h:422
Definition: hci.h:778
uint16_t vs_codec_id
Definition: hci.h:781
uint16_t company_id
Definition: hci.h:780
uint8_t coding_format
Definition: hci.h:779
Definition: hci.h:627
uint8_t vs_config_len
Definition: hci.h:630
uint8_t data_path_dir
Definition: hci.h:628
uint8_t data_path_id
Definition: hci.h:629
uint8_t vs_config[0]
Definition: hci.h:631
Definition: hci.h:347
bt_addr_t bdaddr
Definition: hci.h:348
Definition: hci.h:331
uint8_t pscan_rep_mode
Definition: hci.h:334
uint16_t packet_type
Definition: hci.h:333
bt_addr_t bdaddr
Definition: hci.h:332
uint8_t allow_role_switch
Definition: hci.h:337
uint16_t clock_offset
Definition: hci.h:336
uint8_t reserved
Definition: hci.h:335
Definition: hci.h:341
uint8_t reason
Definition: hci.h:343
uint16_t handle
Definition: hci.h:342
Definition: hci.h:560
uint16_t acl_mtu
Definition: hci.h:561
uint8_t sco_mtu
Definition: hci.h:562
uint16_t acl_pkts
Definition: hci.h:563
uint16_t sco_pkts
Definition: hci.h:564
struct bt_hci_handle_count h[0]
Definition: hci.h:575
uint8_t num_handles
Definition: hci.h:574
uint8_t reason
Definition: hci.h:496
bt_addr_t bdaddr
Definition: hci.h:495
Definition: hci.h:465
uint8_t capability
Definition: hci.h:467
uint8_t authentication
Definition: hci.h:469
uint8_t oob_data
Definition: hci.h:468
bt_addr_t bdaddr
Definition: hci.h:466
Definition: hci.h:1915
uint16_t handle
Definition: hci.h:1916
Definition: hci.h:982
bt_addr_le_t addr
Definition: hci.h:983
uint8_t sid
Definition: hci.h:1523
bt_addr_le_t addr
Definition: hci.h:1522
Definition: hci.h:1167
bt_addr_le_t peer_id_addr
Definition: hci.h:1168
uint8_t local_irk[16]
Definition: hci.h:1170
uint8_t peer_irk[16]
Definition: hci.h:1169
Definition: hci.h:1973
uint8_t bcode[16]
Definition: hci.h:1977
uint8_t mse
Definition: hci.h:1978
uint8_t encryption
Definition: hci.h:1976
uint16_t sync_timeout
Definition: hci.h:1979
uint8_t big_handle
Definition: hci.h:1974
uint8_t bis[0]
Definition: hci.h:1981
uint16_t sync_handle
Definition: hci.h:1975
uint8_t num_bis
Definition: hci.h:1980
Definition: hci.h:1985
uint8_t big_handle
Definition: hci.h:1986
Definition: hci.h:1689
uint8_t requested_cte_length
Definition: hci.h:1693
uint8_t requested_cte_type
Definition: hci.h:1694
uint16_t cte_request_interval
Definition: hci.h:1692
uint8_t enable
Definition: hci.h:1691
uint16_t handle
Definition: hci.h:1690
Definition: hci.h:1703
uint16_t handle
Definition: hci.h:1704
uint8_t enable
Definition: hci.h:1705
uint16_t handle
Definition: hci.h:1115
uint8_t reason
Definition: hci.h:1116
Definition: hci.h:1099
uint16_t interval_min
Definition: hci.h:1101
uint16_t min_ce_len
Definition: hci.h:1105
uint16_t latency
Definition: hci.h:1103
uint16_t max_ce_len
Definition: hci.h:1106
uint16_t handle
Definition: hci.h:1100
uint16_t interval_max
Definition: hci.h:1102
uint16_t timeout
Definition: hci.h:1104
Definition: hci.h:1947
uint16_t max_pdu
Definition: hci.h:1955
uint8_t pto
Definition: hci.h:1961
uint8_t sdu_interval[3]
Definition: hci.h:1951
uint8_t bcode[16]
Definition: hci.h:1963
uint8_t nse
Definition: hci.h:1953
uint8_t packing
Definition: hci.h:1957
uint8_t encryption
Definition: hci.h:1962
uint16_t iso_interval
Definition: hci.h:1952
uint8_t irc
Definition: hci.h:1960
uint8_t num_bis
Definition: hci.h:1950
uint8_t phy
Definition: hci.h:1956
uint8_t bn
Definition: hci.h:1959
uint16_t max_sdu
Definition: hci.h:1954
uint8_t big_handle
Definition: hci.h:1948
uint8_t framing
Definition: hci.h:1958
uint8_t adv_handle
Definition: hci.h:1949
Definition: hci.h:1931
uint16_t max_sdu
Definition: hci.h:1936
uint8_t bcode[16]
Definition: hci.h:1943
uint16_t max_latency
Definition: hci.h:1937
uint8_t rtn
Definition: hci.h:1938
uint8_t sdu_interval[3]
Definition: hci.h:1935
uint8_t framing
Definition: hci.h:1941
uint8_t encryption
Definition: hci.h:1942
uint8_t phy
Definition: hci.h:1939
uint8_t adv_handle
Definition: hci.h:1933
uint8_t packing
Definition: hci.h:1940
uint8_t num_bis
Definition: hci.h:1934
uint8_t big_handle
Definition: hci.h:1932
Definition: hci.h:1899
struct bt_hci_cis cis[0]
Definition: hci.h:1901
uint8_t num_cis
Definition: hci.h:1900
Definition: hci.h:957
uint16_t scan_interval
Definition: hci.h:958
uint8_t filter_policy
Definition: hci.h:960
uint16_t min_ce_len
Definition: hci.h:967
uint16_t conn_latency
Definition: hci.h:965
uint16_t max_ce_len
Definition: hci.h:968
uint8_t own_addr_type
Definition: hci.h:962
uint16_t conn_interval_min
Definition: hci.h:963
uint16_t conn_interval_max
Definition: hci.h:964
bt_addr_le_t peer_addr
Definition: hci.h:961
uint16_t scan_window
Definition: hci.h:959
uint16_t supervision_timeout
Definition: hci.h:966
Definition: hci.h:1794
uint16_t timeout
Definition: hci.h:1797
uint16_t skip
Definition: hci.h:1796
uint8_t mode
Definition: hci.h:1795
uint8_t cte_type
Definition: hci.h:1798
Definition: hci.h:1023
uint8_t key[16]
Definition: hci.h:1024
uint8_t plaintext[16]
Definition: hci.h:1025
Definition: hci.h:1276
uint8_t rx_ch
Definition: hci.h:1277
uint8_t mod_index
Definition: hci.h:1279
uint8_t phy
Definition: hci.h:1278
Definition: hci.h:1288
uint8_t tx_ch
Definition: hci.h:1289
uint8_t phy
Definition: hci.h:1292
uint8_t pkt_payload
Definition: hci.h:1291
uint8_t test_data_len
Definition: hci.h:1290
Definition: hci.h:1480
uint8_t filter_policy
Definition: hci.h:1481
uint8_t own_addr_type
Definition: hci.h:1482
bt_addr_le_t peer_addr
Definition: hci.h:1483
struct bt_hci_ext_conn_phy p[0]
Definition: hci.h:1485
uint8_t phys
Definition: hci.h:1484
Definition: hci.h:1160
uint8_t key_type
Definition: hci.h:1162
uint8_t key[64]
Definition: hci.h:1161
Definition: hci.h:1150
uint8_t key[64]
Definition: hci.h:1151
Definition: hci.h:2042
uint8_t payload_type
Definition: hci.h:2044
uint16_t handle
Definition: hci.h:2043
Definition: hci.h:2066
uint16_t handle
Definition: hci.h:2067
Definition: hci.h:2031
uint8_t payload_type
Definition: hci.h:2033
uint16_t handle
Definition: hci.h:2032
Definition: hci.h:1057
uint16_t handle
Definition: hci.h:1058
Definition: hci.h:1047
uint8_t ltk[16]
Definition: hci.h:1049
uint16_t handle
Definition: hci.h:1048
Definition: hci.h:1780
uint8_t cte_type
Definition: hci.h:1785
uint16_t skip
Definition: hci.h:1783
uint16_t conn_handle
Definition: hci.h:1781
uint8_t mode
Definition: hci.h:1782
uint16_t timeout
Definition: hci.h:1784
Definition: hci.h:1504
bt_addr_le_t addr
Definition: hci.h:1507
uint16_t sync_timeout
Definition: hci.h:1509
uint16_t skip
Definition: hci.h:1508
uint8_t cte_type
Definition: hci.h:1510
uint8_t sid
Definition: hci.h:1506
uint8_t options
Definition: hci.h:1505
uint16_t conn_handle
Definition: hci.h:1758
uint16_t service_data
Definition: hci.h:1759
uint8_t adv_handle
Definition: hci.h:1760
uint16_t service_data
Definition: hci.h:1747
uint16_t sync_handle
Definition: hci.h:1748
uint16_t conn_handle
Definition: hci.h:1746
uint16_t handle
Definition: hci.h:1517
Definition: hci.h:1008
uint16_t handle
Definition: hci.h:1009
Definition: hci.h:1815
uint16_t handle
Definition: hci.h:1816
Definition: hci.h:1196
bt_addr_le_t peer_id_addr
Definition: hci.h:1197
Definition: hci.h:1187
bt_addr_le_t peer_id_addr
Definition: hci.h:1188
Definition: hci.h:1231
uint16_t handle
Definition: hci.h:1232
Definition: hci.h:1018
uint16_t handle
Definition: hci.h:1019
Definition: hci.h:2053
uint16_t handle
Definition: hci.h:2054
Definition: hci.h:1920
uint16_t handle
Definition: hci.h:1921
uint8_t reason
Definition: hci.h:1922
Definition: hci.h:987
bt_addr_le_t addr
Definition: hci.h:988
uint8_t sid
Definition: hci.h:1529
bt_addr_le_t addr
Definition: hci.h:1528
Definition: hci.h:1174
bt_addr_le_t peer_id_addr
Definition: hci.h:1175
Definition: hci.h:1398
uint8_t handle
Definition: hci.h:1399
Definition: hci.h:1905
uint8_t cig_id
Definition: hci.h:1906
Definition: hci.h:2016
uint8_t path_dir
Definition: hci.h:2018
uint16_t handle
Definition: hci.h:2017
Definition: hci.h:1995
uint16_t handle
Definition: hci.h:1996
Definition: hci.h:1575
uint8_t expected_cte_type
Definition: hci.h:1580
uint8_t slot_durations
Definition: hci.h:1581
uint8_t mod_index
Definition: hci.h:1578
uint8_t ant_ids[0]
Definition: hci.h:1583
uint8_t switch_pattern_len
Definition: hci.h:1582
uint8_t rx_ch
Definition: hci.h:1576
uint8_t expected_cte_len
Definition: hci.h:1579
uint8_t phy
Definition: hci.h:1577
Definition: hci.h:1072
uint8_t rx_ch
Definition: hci.h:1073
Definition: hci.h:1208
uint8_t enable
Definition: hci.h:1209
Definition: hci.h:902
uint8_t len
Definition: hci.h:903
uint8_t data[31]
Definition: hci.h:904
Definition: hci.h:917
uint8_t enable
Definition: hci.h:918
Definition: hci.h:885
uint8_t channel_map
Definition: hci.h:891
uint16_t min_interval
Definition: hci.h:886
uint8_t filter_policy
Definition: hci.h:892
uint8_t type
Definition: hci.h:888
uint16_t max_interval
Definition: hci.h:887
bt_addr_le_t direct_addr
Definition: hci.h:890
uint8_t own_addr_type
Definition: hci.h:889
bt_addr_t bdaddr
Definition: hci.h:1298
uint8_t handle
Definition: hci.h:1297
Definition: hci.h:1872
uint8_t p_interval[3]
Definition: hci.h:1875
uint8_t cig_id
Definition: hci.h:1873
uint8_t sca
Definition: hci.h:1879
uint8_t c_ft
Definition: hci.h:1876
uint8_t framing
Definition: hci.h:1881
uint8_t num_cis
Definition: hci.h:1882
struct bt_hci_cis_params_test cis[0]
Definition: hci.h:1883
uint8_t packing
Definition: hci.h:1880
uint8_t c_interval[3]
Definition: hci.h:1874
uint16_t iso_interval
Definition: hci.h:1878
uint8_t p_ft
Definition: hci.h:1877
Definition: hci.h:1838
uint8_t c_interval[3]
Definition: hci.h:1840
uint8_t sca
Definition: hci.h:1842
uint8_t p_interval[3]
Definition: hci.h:1841
uint8_t packing
Definition: hci.h:1843
uint8_t cig_id
Definition: hci.h:1839
uint16_t p_latency
Definition: hci.h:1846
uint8_t framing
Definition: hci.h:1844
struct bt_hci_cis_params cis[0]
Definition: hci.h:1848
uint8_t num_cis
Definition: hci.h:1847
uint16_t c_latency
Definition: hci.h:1845
uint8_t max_sampled_cte
Definition: hci.h:1639
uint8_t switch_pattern_len
Definition: hci.h:1640
uint8_t ant_ids[0]
Definition: hci.h:1641
uint16_t sync_handle
Definition: hci.h:1636
uint8_t slot_durations
Definition: hci.h:1638
uint8_t sampling_enable
Definition: hci.h:1637
Definition: hci.h:1622
uint8_t cte_enable
Definition: hci.h:1624
uint8_t handle
Definition: hci.h:1623
Definition: hci.h:1612
uint8_t ant_ids[0]
Definition: hci.h:1618
uint8_t switch_pattern_len
Definition: hci.h:1617
uint8_t cte_type
Definition: hci.h:1615
uint8_t handle
Definition: hci.h:1613
uint8_t cte_len
Definition: hci.h:1614
uint8_t cte_count
Definition: hci.h:1616
uint8_t ant_ids[0]
Definition: hci.h:1655
uint8_t sampling_enable
Definition: hci.h:1652
uint8_t slot_durations
Definition: hci.h:1653
uint16_t handle
Definition: hci.h:1651
uint8_t switch_pattern_len
Definition: hci.h:1654
uint8_t switch_pattern_len
Definition: hci.h:1674
uint8_t cte_types
Definition: hci.h:1673
uint8_t ant_ids[0]
Definition: hci.h:1675
uint16_t handle
Definition: hci.h:1672
Definition: hci.h:1124
uint16_t tx_time
Definition: hci.h:1127
uint16_t handle
Definition: hci.h:1125
uint16_t tx_octets
Definition: hci.h:1126
Definition: hci.h:1249
uint8_t tx_phys
Definition: hci.h:1251
uint8_t rx_phys
Definition: hci.h:1252
uint8_t all_phys
Definition: hci.h:1250
Definition: hci.h:841
uint8_t events[8]
Definition: hci.h:842
Definition: hci.h:1355
uint8_t data[0]
Definition: hci.h:1360
uint8_t handle
Definition: hci.h:1356
uint8_t op
Definition: hci.h:1357
uint8_t len
Definition: hci.h:1359
uint8_t frag_pref
Definition: hci.h:1358
Definition: hci.h:1379
struct bt_hci_ext_adv_set s[0]
Definition: hci.h:1382
uint8_t set_num
Definition: hci.h:1381
uint8_t enable
Definition: hci.h:1380
Definition: hci.h:1322
uint8_t prim_adv_phy
Definition: hci.h:1332
uint8_t prim_max_interval[3]
Definition: hci.h:1326
uint8_t filter_policy
Definition: hci.h:1330
uint8_t own_addr_type
Definition: hci.h:1328
uint16_t props
Definition: hci.h:1324
uint8_t sec_adv_max_skip
Definition: hci.h:1333
int8_t tx_power
Definition: hci.h:1331
uint8_t handle
Definition: hci.h:1323
bt_addr_le_t peer_addr
Definition: hci.h:1329
uint8_t prim_min_interval[3]
Definition: hci.h:1325
uint8_t sec_adv_phy
Definition: hci.h:1334
uint8_t prim_channel_map
Definition: hci.h:1327
uint8_t scan_req_notify_enable
Definition: hci.h:1336
uint8_t sid
Definition: hci.h:1335
Definition: hci.h:1461
uint8_t enable
Definition: hci.h:1462
uint8_t filter_dup
Definition: hci.h:1463
uint16_t period
Definition: hci.h:1465
uint16_t duration
Definition: hci.h:1464
Definition: hci.h:1450
uint8_t own_addr_type
Definition: hci.h:1451
uint8_t filter_policy
Definition: hci.h:1452
uint8_t phys
Definition: hci.h:1453
struct bt_hci_ext_scan_phy p[0]
Definition: hci.h:1454
uint8_t op
Definition: hci.h:1366
uint8_t len
Definition: hci.h:1368
uint8_t handle
Definition: hci.h:1365
uint8_t data[0]
Definition: hci.h:1369
uint8_t frag_pref
Definition: hci.h:1367
uint8_t ch_map[5]
Definition: hci.h:1004
Definition: hci.h:2079
uint8_t bit_value
Definition: hci.h:2081
uint8_t bit_number
Definition: hci.h:2080
Definition: hci.h:1423
uint8_t handle
Definition: hci.h:1424
uint8_t op
Definition: hci.h:1425
uint8_t data[0]
Definition: hci.h:1427
uint8_t len
Definition: hci.h:1426
Definition: hci.h:1434
uint8_t handle
Definition: hci.h:1436
uint8_t enable
Definition: hci.h:1435
Definition: hci.h:1408
uint16_t max_interval
Definition: hci.h:1411
uint8_t handle
Definition: hci.h:1409
uint16_t props
Definition: hci.h:1412
uint16_t min_interval
Definition: hci.h:1410
uint16_t handle
Definition: hci.h:1740
uint8_t enable
Definition: hci.h:1741
Definition: hci.h:1260
uint8_t tx_phys
Definition: hci.h:1263
uint16_t phy_opts
Definition: hci.h:1265
uint8_t rx_phys
Definition: hci.h:1264
uint16_t handle
Definition: hci.h:1261
uint8_t all_phys
Definition: hci.h:1262
Definition: hci.h:1564
bt_addr_le_t id_addr
Definition: hci.h:1565
uint8_t mode
Definition: hci.h:1566
Definition: hci.h:859
bt_addr_t bdaddr
Definition: hci.h:860
Definition: hci.h:1213
uint16_t rpa_timeout
Definition: hci.h:1214
Definition: hci.h:947
uint8_t enable
Definition: hci.h:948
uint8_t filter_dup
Definition: hci.h:949
Definition: hci.h:931
uint16_t window
Definition: hci.h:934
uint8_t addr_type
Definition: hci.h:935
uint8_t filter_policy
Definition: hci.h:936
uint8_t scan_type
Definition: hci.h:932
uint16_t interval
Definition: hci.h:933
Definition: hci.h:908
uint8_t len
Definition: hci.h:909
uint8_t data[31]
Definition: hci.h:910
Definition: hci.h:2000
uint16_t handle
Definition: hci.h:2001
uint8_t codec_config_len
Definition: hci.h:2006
uint8_t controller_delay[3]
Definition: hci.h:2005
struct bt_hci_cp_codec_id codec_id
Definition: hci.h:2004
uint8_t path_id
Definition: hci.h:2003
uint8_t path_dir
Definition: hci.h:2002
uint8_t codec_config[0]
Definition: hci.h:2007
Definition: hci.h:1039
uint16_t handle
Definition: hci.h:1040
uint16_t ediv
Definition: hci.h:1042
uint8_t ltk[16]
Definition: hci.h:1043
uint64_t rand
Definition: hci.h:1041
Definition: hci.h:1967
uint8_t reason
Definition: hci.h:1969
uint8_t big_handle
Definition: hci.h:1968
Definition: hci.h:1588
uint8_t test_data_len
Definition: hci.h:1590
uint8_t switch_pattern_len
Definition: hci.h:1595
uint8_t cte_len
Definition: hci.h:1593
uint8_t tx_ch
Definition: hci.h:1589
uint8_t phy
Definition: hci.h:1592
uint8_t pkt_payload
Definition: hci.h:1591
uint8_t cte_type
Definition: hci.h:1594
uint8_t ant_ids[0]
Definition: hci.h:1596
Definition: hci.h:2128
int8_t tx_power
Definition: hci.h:2129
Definition: hci.h:2107
uint8_t switch_pattern_len
Definition: hci.h:2114
uint8_t tx_ch
Definition: hci.h:2108
uint8_t ant_ids[0]
Definition: hci.h:2115
uint8_t phy
Definition: hci.h:2111
uint8_t test_data_len
Definition: hci.h:2109
uint8_t cte_len
Definition: hci.h:2112
uint8_t pkt_payload
Definition: hci.h:2110
uint8_t cte_type
Definition: hci.h:2113
Definition: hci.h:1086
uint8_t test_data_len
Definition: hci.h:1088
uint8_t tx_ch
Definition: hci.h:1087
uint8_t pkt_payload
Definition: hci.h:1089
uint16_t max_tx_octets
Definition: hci.h:1143
uint16_t max_tx_time
Definition: hci.h:1144
Definition: hci.h:1555
int16_t rx_path_comp
Definition: hci.h:1557
int16_t tx_path_comp
Definition: hci.h:1556
Definition: hci.h:412
bt_addr_t bdaddr
Definition: hci.h:413
Definition: hci.h:401
bt_addr_t bdaddr
Definition: hci.h:402
uint8_t pin_len
Definition: hci.h:403
uint8_t pin_code[16]
Definition: hci.h:404
uint16_t handle
Definition: hci.h:606
uint8_t direction
Definition: hci.h:788
uint8_t transport
Definition: hci.h:787
struct bt_hci_cp_codec_id codec_id
Definition: hci.h:786
Definition: hci.h:802
struct bt_hci_cp_codec_id codec_id
Definition: hci.h:803
uint8_t direction
Definition: hci.h:805
uint8_t transport
Definition: hci.h:804
uint8_t codec_config[0]
Definition: hci.h:807
uint8_t codec_config_len
Definition: hci.h:806
uint16_t handle
Definition: hci.h:830
uint8_t page
Definition: hci.h:671
uint8_t page
Definition: hci.h:456
uint16_t handle
Definition: hci.h:455
Definition: hci.h:449
uint16_t handle
Definition: hci.h:450
uint16_t handle
Definition: hci.h:461
Definition: hci.h:816
uint16_t handle
Definition: hci.h:817
Definition: hci.h:541
uint8_t type
Definition: hci.h:543
uint16_t handle
Definition: hci.h:542
Definition: hci.h:384
uint8_t reason
Definition: hci.h:386
bt_addr_t bdaddr
Definition: hci.h:385
Definition: hci.h:440
bt_addr_t bdaddr
Definition: hci.h:441
Definition: hci.h:432
bt_addr_t bdaddr
Definition: hci.h:433
uint16_t clock_offset
Definition: hci.h:436
uint8_t reserved
Definition: hci.h:435
uint8_t pscan_rep_mode
Definition: hci.h:434
Definition: hci.h:426
uint16_t handle
Definition: hci.h:427
uint8_t encrypt
Definition: hci.h:428
Definition: hci.h:555
uint8_t flow_enable
Definition: hci.h:556
Definition: hci.h:589
uint8_t events_page_2[8]
Definition: hci.h:590
Definition: hci.h:500
uint8_t events[8]
Definition: hci.h:501
Definition: hci.h:362
uint32_t rx_bandwidth
Definition: hci.h:365
uint16_t content_format
Definition: hci.h:367
uint16_t max_latency
Definition: hci.h:366
uint8_t retrans_effort
Definition: hci.h:368
uint16_t pkt_type
Definition: hci.h:369
uint32_t tx_bandwidth
Definition: hci.h:364
uint16_t handle
Definition: hci.h:363
Definition: hci.h:474
bt_addr_t bdaddr
Definition: hci.h:475
bt_addr_t bdaddr
Definition: hci.h:490
Definition: hci.h:483
bt_addr_t bdaddr
Definition: hci.h:484
uint32_t passkey
Definition: hci.h:485
uint16_t auth_payload_timeout
Definition: hci.h:618
uint16_t handle
Definition: hci.h:617
Definition: hci.h:534
uint8_t class_of_device[3]
Definition: hci.h:535
uint16_t conn_accept_timeout
Definition: hci.h:519
Definition: hci.h:579
uint8_t mode
Definition: hci.h:580
Definition: hci.h:594
uint8_t le
Definition: hci.h:595
uint8_t simul
Definition: hci.h:596
Definition: hci.h:600
uint8_t sc_support
Definition: hci.h:601
Definition: hci.h:584
uint8_t mode
Definition: hci.h:585
Definition: hci.h:2166
uint16_t handle
Definition: hci.h:2168
uint8_t status
Definition: hci.h:2167
uint16_t handle
Definition: hci.h:2367
Definition: hci.h:2207
uint8_t status
Definition: hci.h:2208
Definition: hci.h:2202
uint16_t opcode
Definition: hci.h:2204
uint8_t ncmd
Definition: hci.h:2203
Definition: hci.h:2212
uint16_t opcode
Definition: hci.h:2215
uint8_t ncmd
Definition: hci.h:2214
uint8_t status
Definition: hci.h:2213
Definition: hci.h:2143
uint8_t status
Definition: hci.h:2144
bt_addr_t bdaddr
Definition: hci.h:2146
uint8_t encr_enabled
Definition: hci.h:2148
uint16_t handle
Definition: hci.h:2145
uint8_t link_type
Definition: hci.h:2147
Definition: hci.h:2152
bt_addr_t bdaddr
Definition: hci.h:2153
uint8_t dev_class[3]
Definition: hci.h:2154
uint8_t link_type
Definition: hci.h:2155
Definition: hci.h:2270
uint8_t link_type
Definition: hci.h:2271
Definition: hci.h:2159
uint8_t reason
Definition: hci.h:2162
uint16_t handle
Definition: hci.h:2161
uint8_t status
Definition: hci.h:2160
Definition: hci.h:2179
uint8_t encrypt
Definition: hci.h:2182
uint16_t handle
Definition: hci.h:2181
uint8_t status
Definition: hci.h:2180
uint16_t handle
Definition: hci.h:2321
uint8_t status
Definition: hci.h:2320
uint8_t eir[240]
Definition: hci.h:2315
int8_t rssi
Definition: hci.h:2314
uint16_t clock_offset
Definition: hci.h:2313
uint8_t num_reports
Definition: hci.h:2308
bt_addr_t addr
Definition: hci.h:2309
uint8_t cod[3]
Definition: hci.h:2312
uint8_t reserved
Definition: hci.h:2311
uint8_t pscan_rep_mode
Definition: hci.h:2310
Definition: hci.h:2219
uint8_t hardware_code
Definition: hci.h:2220
Definition: hci.h:36
uint8_t len
Definition: hci.h:38
uint8_t evt
Definition: hci.h:37
Definition: hci.h:2138
uint8_t status
Definition: hci.h:2139
uint8_t reserved
Definition: hci.h:2278
uint8_t pscan_rep_mode
Definition: hci.h:2277
uint16_t clock_offset
Definition: hci.h:2280
int8_t rssi
Definition: hci.h:2281
uint8_t cod[3]
Definition: hci.h:2279
bt_addr_t addr
Definition: hci.h:2276
Definition: hci.h:2325
bt_addr_t bdaddr
Definition: hci.h:2326
Definition: hci.h:2330
uint8_t authentication
Definition: hci.h:2334
uint8_t capability
Definition: hci.h:2332
uint8_t oob_data
Definition: hci.h:2333
bt_addr_t bdaddr
Definition: hci.h:2331
Definition: hci.h:2547
uint8_t num_completed_ext_adv_evts
Definition: hci.h:2551
uint8_t status
Definition: hci.h:2548
uint16_t conn_handle
Definition: hci.h:2550
uint8_t adv_handle
Definition: hci.h:2549
Definition: hci.h:2388
uint8_t length
Definition: hci.h:2391
bt_addr_le_t addr
Definition: hci.h:2390
uint8_t evt_type
Definition: hci.h:2389
uint8_t data[0]
Definition: hci.h:2392
Definition: hci.h:2394
struct bt_hci_evt_le_advertising_info adv_info[0]
Definition: hci.h:2396
uint8_t num_reports
Definition: hci.h:2395
Definition: hci.h:2668
uint8_t irc
Definition: hci.h:2677
uint16_t iso_interval
Definition: hci.h:2679
uint8_t big_handle
Definition: hci.h:2670
uint8_t bn
Definition: hci.h:2675
uint8_t latency[3]
Definition: hci.h:2672
uint8_t sync_delay[3]
Definition: hci.h:2671
uint8_t pto
Definition: hci.h:2676
uint16_t max_pdu
Definition: hci.h:2678
uint8_t num_bis
Definition: hci.h:2680
uint8_t phy
Definition: hci.h:2673
uint8_t status
Definition: hci.h:2669
uint8_t nse
Definition: hci.h:2674
uint16_t handle[0]
Definition: hci.h:2681
uint16_t max_pdu
Definition: hci.h:2699
uint8_t num_bis
Definition: hci.h:2701
uint8_t big_handle
Definition: hci.h:2693
uint8_t nse
Definition: hci.h:2695
uint8_t bn
Definition: hci.h:2696
uint16_t handle[0]
Definition: hci.h:2702
uint16_t iso_interval
Definition: hci.h:2700
uint8_t pto
Definition: hci.h:2697
uint8_t status
Definition: hci.h:2692
uint8_t latency[3]
Definition: hci.h:2694
uint8_t irc
Definition: hci.h:2698
Definition: hci.h:2706
uint8_t reason
Definition: hci.h:2708
uint8_t big_handle
Definition: hci.h:2707
Definition: hci.h:2685
uint8_t reason
Definition: hci.h:2687
uint8_t big_handle
Definition: hci.h:2686
Definition: hci.h:2719
uint16_t max_sdu
Definition: hci.h:2729
uint16_t max_pdu
Definition: hci.h:2727
uint8_t phy
Definition: hci.h:2730
uint8_t sdu_interval[3]
Definition: hci.h:2728
uint16_t sync_handle
Definition: hci.h:2720
uint8_t irc
Definition: hci.h:2726
uint8_t framing
Definition: hci.h:2731
uint8_t bn
Definition: hci.h:2724
uint8_t nse
Definition: hci.h:2722
uint8_t encryption
Definition: hci.h:2732
uint8_t num_bis
Definition: hci.h:2721
uint16_t iso_interval
Definition: hci.h:2723
uint8_t pto
Definition: hci.h:2725
Definition: hci.h:2564
uint16_t handle
Definition: hci.h:2565
uint8_t chan_sel_algo
Definition: hci.h:2566
Definition: hci.h:2640
uint16_t interval
Definition: hci.h:2656
uint8_t p_ft
Definition: hci.h:2653
uint8_t p_phy
Definition: hci.h:2648
uint8_t status
Definition: hci.h:2641
uint8_t c_phy
Definition: hci.h:2647
uint8_t nse
Definition: hci.h:2649
uint8_t c_latency[3]
Definition: hci.h:2645
uint16_t conn_handle
Definition: hci.h:2642
uint8_t c_bn
Definition: hci.h:2650
uint8_t cig_sync_delay[3]
Definition: hci.h:2643
uint8_t p_bn
Definition: hci.h:2651
uint8_t c_ft
Definition: hci.h:2652
uint8_t cis_sync_delay[3]
Definition: hci.h:2644
uint16_t p_max_pdu
Definition: hci.h:2655
uint16_t c_max_pdu
Definition: hci.h:2654
uint8_t p_latency[3]
Definition: hci.h:2646
Definition: hci.h:2660
uint8_t cis_id
Definition: hci.h:2664
uint8_t cig_id
Definition: hci.h:2663
uint16_t cis_handle
Definition: hci.h:2662
uint16_t acl_handle
Definition: hci.h:2661
Definition: hci.h:2374
uint8_t clock_accuracy
Definition: hci.h:2382
uint16_t supv_timeout
Definition: hci.h:2381
uint16_t handle
Definition: hci.h:2376
uint8_t role
Definition: hci.h:2377
uint8_t status
Definition: hci.h:2375
bt_addr_le_t peer_addr
Definition: hci.h:2378
uint16_t latency
Definition: hci.h:2380
uint16_t interval
Definition: hci.h:2379
Definition: hci.h:2423
uint16_t interval_max
Definition: hci.h:2426
uint16_t handle
Definition: hci.h:2424
uint16_t interval_min
Definition: hci.h:2425
uint16_t latency
Definition: hci.h:2427
uint16_t timeout
Definition: hci.h:2428
uint16_t interval
Definition: hci.h:2403
uint16_t handle
Definition: hci.h:2402
uint16_t supv_timeout
Definition: hci.h:2405
uint8_t status
Definition: hci.h:2401
uint16_t latency
Definition: hci.h:2404
uint8_t cte_type
Definition: hci.h:2605
uint8_t rssi_ant_id
Definition: hci.h:2604
uint16_t conn_evt_counter
Definition: hci.h:2608
uint16_t conn_handle
Definition: hci.h:2600
int16_t rssi
Definition: hci.h:2603
struct bt_hci_le_iq_sample sample[0]
Definition: hci.h:2610
uint8_t slot_durations
Definition: hci.h:2606
uint8_t sample_count
Definition: hci.h:2609
uint8_t rx_phy
Definition: hci.h:2601
uint8_t data_chan_idx
Definition: hci.h:2602
uint8_t packet_status
Definition: hci.h:2607
int16_t rssi
Definition: hci.h:2588
struct bt_hci_le_iq_sample sample[0]
Definition: hci.h:2595
uint16_t sync_handle
Definition: hci.h:2586
uint8_t sample_count
Definition: hci.h:2594
uint8_t cte_type
Definition: hci.h:2590
uint8_t slot_durations
Definition: hci.h:2591
uint8_t packet_status
Definition: hci.h:2592
uint16_t per_evt_counter
Definition: hci.h:2593
uint8_t chan_idx
Definition: hci.h:2587
uint8_t rssi_ant_id
Definition: hci.h:2589
Definition: hci.h:2616
uint8_t status
Definition: hci.h:2622
uint16_t conn_handle
Definition: hci.h:2623
Definition: hci.h:2432
uint16_t max_rx_octets
Definition: hci.h:2436
uint16_t handle
Definition: hci.h:2433
uint16_t max_tx_time
Definition: hci.h:2435
uint16_t max_rx_time
Definition: hci.h:2437
uint16_t max_tx_octets
Definition: hci.h:2434
Definition: hci.h:2467
int8_t rssi
Definition: hci.h:2471
bt_addr_le_t addr
Definition: hci.h:2469
bt_addr_le_t dir_addr
Definition: hci.h:2470
uint8_t evt_type
Definition: hci.h:2468
Definition: hci.h:2473
struct bt_hci_evt_le_direct_adv_info direct_adv_info[0]
Definition: hci.h:2475
uint8_t num_reports
Definition: hci.h:2474
Definition: hci.h:2453
uint16_t handle
Definition: hci.h:2455
bt_addr_le_t peer_addr
Definition: hci.h:2457
bt_addr_t peer_rpa
Definition: hci.h:2459
uint8_t clock_accuracy
Definition: hci.h:2463
uint16_t latency
Definition: hci.h:2461
uint16_t supv_timeout
Definition: hci.h:2462
bt_addr_t local_rpa
Definition: hci.h:2458
uint16_t interval
Definition: hci.h:2460
uint8_t status
Definition: hci.h:2454
uint8_t role
Definition: hci.h:2456
uint16_t evt_type
Definition: hci.h:2500
uint8_t prim_phy
Definition: hci.h:2502
uint8_t length
Definition: hci.h:2509
bt_addr_le_t direct_addr
Definition: hci.h:2508
int8_t tx_power
Definition: hci.h:2505
uint8_t sid
Definition: hci.h:2504
int8_t rssi
Definition: hci.h:2506
uint16_t interval
Definition: hci.h:2507
uint8_t data[0]
Definition: hci.h:2510
bt_addr_le_t addr
Definition: hci.h:2501
uint8_t sec_phy
Definition: hci.h:2503
uint8_t num_reports
Definition: hci.h:2513
struct bt_hci_evt_le_ext_advertising_info adv_info[0]
Definition: hci.h:2514
uint8_t status
Definition: hci.h:2448
uint8_t dhkey[32]
Definition: hci.h:2449
Definition: hci.h:2416
uint16_t ediv
Definition: hci.h:2419
uint64_t rand
Definition: hci.h:2418
uint16_t handle
Definition: hci.h:2417
Definition: hci.h:2361
uint8_t subevent
Definition: hci.h:2362
uint8_t status
Definition: hci.h:2442
uint8_t key[64]
Definition: hci.h:2443
Definition: hci.h:2627
uint8_t clock_accuracy
Definition: hci.h:2636
uint8_t adv_sid
Definition: hci.h:2632
uint8_t status
Definition: hci.h:2628
uint16_t conn_handle
Definition: hci.h:2629
uint16_t sync_handle
Definition: hci.h:2631
bt_addr_le_t addr
Definition: hci.h:2633
uint16_t interval
Definition: hci.h:2635
uint16_t service_data
Definition: hci.h:2630
uint8_t phy
Definition: hci.h:2634
uint16_t handle
Definition: hci.h:2520
uint16_t interval
Definition: hci.h:2524
uint8_t status
Definition: hci.h:2519
uint8_t sid
Definition: hci.h:2521
uint8_t phy
Definition: hci.h:2523
bt_addr_le_t adv_addr
Definition: hci.h:2522
uint8_t clock_accuracy
Definition: hci.h:2525
Definition: hci.h:2540
uint16_t handle
Definition: hci.h:2541
uint8_t length
Definition: hci.h:2535
uint8_t data[0]
Definition: hci.h:2536
int8_t tx_power
Definition: hci.h:2531
uint8_t cte_type
Definition: hci.h:2533
uint8_t data_status
Definition: hci.h:2534
uint16_t handle
Definition: hci.h:2530
int8_t rssi
Definition: hci.h:2532
Definition: hci.h:2479
uint16_t handle
Definition: hci.h:2481
uint8_t status
Definition: hci.h:2480
uint8_t tx_phy
Definition: hci.h:2482
uint8_t rx_phy
Definition: hci.h:2483
uint8_t features[8]
Definition: hci.h:2412
uint8_t status
Definition: hci.h:2410
uint16_t handle
Definition: hci.h:2411
uint8_t status
Definition: hci.h:2713
uint8_t sca
Definition: hci.h:2715
uint16_t handle
Definition: hci.h:2714
Definition: hci.h:2555
uint8_t handle
Definition: hci.h:2556
bt_addr_le_t addr
Definition: hci.h:2557
Definition: hci.h:2231
uint8_t num_handles
Definition: hci.h:2232
struct bt_hci_handle_count h[0]
Definition: hci.h:2233
Definition: hci.h:2237
bt_addr_t bdaddr
Definition: hci.h:2238
Definition: hci.h:2285
uint16_t handle
Definition: hci.h:2287
uint8_t features[8]
Definition: hci.h:2290
uint8_t status
Definition: hci.h:2286
uint8_t page
Definition: hci.h:2288
uint8_t max_page
Definition: hci.h:2289
Definition: hci.h:2186
uint8_t status
Definition: hci.h:2187
uint8_t features[8]
Definition: hci.h:2189
uint16_t handle
Definition: hci.h:2188
bt_addr_t bdaddr
Definition: hci.h:2174
uint8_t name[248]
Definition: hci.h:2175
uint8_t status
Definition: hci.h:2173
Definition: hci.h:2193
uint16_t subversion
Definition: hci.h:2198
uint16_t handle
Definition: hci.h:2195
uint8_t status
Definition: hci.h:2194
uint8_t version
Definition: hci.h:2196
uint16_t manufacturer
Definition: hci.h:2197
Definition: hci.h:2224
bt_addr_t bdaddr
Definition: hci.h:2226
uint8_t role
Definition: hci.h:2227
uint8_t status
Definition: hci.h:2225
Definition: hci.h:2349
uint8_t status
Definition: hci.h:2350
bt_addr_t bdaddr
Definition: hci.h:2351
Definition: hci.h:2294
uint8_t tx_interval
Definition: hci.h:2299
uint8_t air_mode
Definition: hci.h:2303
uint8_t retansmission_window
Definition: hci.h:2300
uint16_t rx_pkt_length
Definition: hci.h:2301
bt_addr_t bdaddr
Definition: hci.h:2297
uint16_t handle
Definition: hci.h:2296
uint8_t link_type
Definition: hci.h:2298
uint16_t tx_pkt_length
Definition: hci.h:2302
uint8_t status
Definition: hci.h:2295
Definition: hci.h:2338
bt_addr_t bdaddr
Definition: hci.h:2339
uint32_t passkey
Definition: hci.h:2340
Definition: hci.h:2355
uint32_t passkey
Definition: hci.h:2357
bt_addr_t bdaddr
Definition: hci.h:2356
Definition: hci.h:2344
bt_addr_t bdaddr
Definition: hci.h:2345
Definition: hci.h:1373
uint8_t max_ext_adv_evts
Definition: hci.h:1376
uint8_t handle
Definition: hci.h:1374
uint16_t duration
Definition: hci.h:1375
Definition: hci.h:1469
uint16_t max_ce_len
Definition: hci.h:1477
uint16_t scan_interval
Definition: hci.h:1470
uint16_t conn_interval_max
Definition: hci.h:1473
uint16_t conn_latency
Definition: hci.h:1474
uint16_t conn_interval_min
Definition: hci.h:1472
uint16_t supervision_timeout
Definition: hci.h:1475
uint16_t scan_window
Definition: hci.h:1471
uint16_t min_ce_len
Definition: hci.h:1476
Definition: hci.h:1440
uint16_t interval
Definition: hci.h:1442
uint8_t type
Definition: hci.h:1441
uint16_t window
Definition: hci.h:1443
Definition: hci.h:567
uint16_t count
Definition: hci.h:569
uint16_t handle
Definition: hci.h:568
Definition: hci.h:87
uint16_t sn
Definition: hci.h:88
uint16_t slen
Definition: hci.h:89
Definition: hci.h:99
uint16_t len
Definition: hci.h:101
uint16_t handle
Definition: hci.h:100
Definition: hci.h:93
uint32_t ts
Definition: hci.h:94
struct bt_hci_iso_data_hdr data
Definition: hci.h:95
Definition: hci.h:2580
int8_t q
Definition: hci.h:2582
int8_t i
Definition: hci.h:2581
Definition: hci.h:322
uint8_t lap[3]
Definition: hci.h:323
uint8_t num_rsp
Definition: hci.h:325
uint8_t length
Definition: hci.h:324
Definition: hci.h:634
uint8_t status
Definition: hci.h:635
Definition: hci.h:350
uint8_t status
Definition: hci.h:351
bt_addr_t bdaddr
Definition: hci.h:352
Definition: hci.h:1989
uint8_t big_handle
Definition: hci.h:1991
uint8_t status
Definition: hci.h:1990
Definition: hci.h:1697
uint8_t status
Definition: hci.h:1698
uint16_t handle
Definition: hci.h:1699
Definition: hci.h:1708
uint8_t status
Definition: hci.h:1709
uint16_t handle
Definition: hci.h:1710
uint8_t status
Definition: hci.h:1119
uint16_t handle
Definition: hci.h:1120
Definition: hci.h:1108
uint8_t status
Definition: hci.h:1109
uint16_t handle
Definition: hci.h:1110
Definition: hci.h:1801
uint8_t status
Definition: hci.h:1802
Definition: hci.h:1027
uint8_t enc_data[16]
Definition: hci.h:1029
uint8_t status
Definition: hci.h:1028
Definition: hci.h:2047
uint8_t status
Definition: hci.h:2048
uint16_t handle
Definition: hci.h:2049
Definition: hci.h:2070
uint32_t missed_cnt
Definition: hci.h:2074
uint8_t status
Definition: hci.h:2071
uint16_t handle
Definition: hci.h:2072
uint32_t received_cnt
Definition: hci.h:2073
uint32_t failed_cnt
Definition: hci.h:2075
Definition: hci.h:2036
uint8_t status
Definition: hci.h:2037
uint16_t handle
Definition: hci.h:2038
Definition: hci.h:1060
uint8_t status
Definition: hci.h:1061
uint16_t handle
Definition: hci.h:1062
Definition: hci.h:1051
uint16_t handle
Definition: hci.h:1053
uint8_t status
Definition: hci.h:1052
Definition: hci.h:1788
uint8_t status
Definition: hci.h:1789
uint16_t conn_handle
Definition: hci.h:1790
uint16_t conn_handle
Definition: hci.h:1765
uint8_t status
Definition: hci.h:1764
uint16_t conn_handle
Definition: hci.h:1753
uint8_t status
Definition: hci.h:1752
Definition: hci.h:1033
uint8_t rand[8]
Definition: hci.h:1035
uint8_t status
Definition: hci.h:1034
Definition: hci.h:1727
uint8_t num_ant
Definition: hci.h:1730
uint8_t switch_sample_rates
Definition: hci.h:1729
uint8_t max_cte_len
Definition: hci.h:1732
uint8_t status
Definition: hci.h:1728
uint8_t max_switch_pattern_len
Definition: hci.h:1731
Definition: hci.h:1806
uint8_t acl_max_num
Definition: hci.h:1809
uint8_t status
Definition: hci.h:1807
uint16_t iso_max_len
Definition: hci.h:1810
uint8_t iso_max_num
Definition: hci.h:1811
uint16_t acl_max_len
Definition: hci.h:1808
Definition: hci.h:846
uint8_t le_max_num
Definition: hci.h:849
uint16_t le_max_len
Definition: hci.h:848
uint8_t status
Definition: hci.h:847
Definition: hci.h:1011
uint8_t ch_map[5]
Definition: hci.h:1014
uint8_t status
Definition: hci.h:1012
uint16_t handle
Definition: hci.h:1013
Definition: hci.h:896
uint8_t status
Definition: hci.h:897
int8_t tx_power_level
Definition: hci.h:898
uint16_t max_tx_octets
Definition: hci.h:1137
uint8_t status
Definition: hci.h:1136
uint16_t max_tx_time
Definition: hci.h:1138
Definition: hci.h:974
uint8_t status
Definition: hci.h:975
uint8_t fal_size
Definition: hci.h:976
Definition: hci.h:1819
uint8_t status
Definition: hci.h:1820
uint8_t offset[3]
Definition: hci.h:1824
uint32_t timestamp
Definition: hci.h:1823
uint16_t handle
Definition: hci.h:1821
uint16_t seq
Definition: hci.h:1822
uint8_t status
Definition: hci.h:854
uint8_t features[8]
Definition: hci.h:855
Definition: hci.h:1199
uint8_t status
Definition: hci.h:1200
bt_addr_t local_rpa
Definition: hci.h:1201
uint8_t status
Definition: hci.h:1387
uint16_t max_adv_data_len
Definition: hci.h:1388
Definition: hci.h:1218
uint16_t max_tx_octets
Definition: hci.h:1220
uint8_t status
Definition: hci.h:1219
uint16_t max_tx_time
Definition: hci.h:1221
uint16_t max_rx_octets
Definition: hci.h:1222
uint16_t max_rx_time
Definition: hci.h:1223
Definition: hci.h:1392
uint8_t status
Definition: hci.h:1393
uint8_t num_sets
Definition: hci.h:1394
Definition: hci.h:1190
bt_addr_t peer_rpa
Definition: hci.h:1192
uint8_t status
Definition: hci.h:1191
uint8_t status
Definition: hci.h:1536
uint8_t list_size
Definition: hci.h:1537
Definition: hci.h:1234
uint8_t rx_phy
Definition: hci.h:1238
uint8_t tx_phy
Definition: hci.h:1237
uint8_t status
Definition: hci.h:1235
uint16_t handle
Definition: hci.h:1236
Definition: hci.h:1548
int16_t rx_path_comp
Definition: hci.h:1551
int16_t tx_path_comp
Definition: hci.h:1550
uint8_t status
Definition: hci.h:1549
Definition: hci.h:1181
uint8_t rl_size
Definition: hci.h:1183
uint8_t status
Definition: hci.h:1182
Definition: hci.h:1066
uint8_t le_states[8]
Definition: hci.h:1068
uint8_t status
Definition: hci.h:1067
Definition: hci.h:2057
uint16_t handle
Definition: hci.h:2059
uint32_t received_cnt
Definition: hci.h:2060
uint8_t status
Definition: hci.h:2058
uint32_t missed_cnt
Definition: hci.h:2061
uint32_t failed_cnt
Definition: hci.h:2062
Definition: hci.h:1541
int8_t max_tx_power
Definition: hci.h:1544
int8_t min_tx_power
Definition: hci.h:1543
uint8_t status
Definition: hci.h:1542
Definition: hci.h:1925
uint16_t handle
Definition: hci.h:1927
uint8_t status
Definition: hci.h:1926
Definition: hci.h:1909
uint8_t status
Definition: hci.h:1910
uint8_t cig_id
Definition: hci.h:1911
Definition: hci.h:2021
uint8_t status
Definition: hci.h:2022
uint16_t handle
Definition: hci.h:2023
Definition: hci.h:1886
uint16_t handle[0]
Definition: hci.h:1890
uint8_t num_handles
Definition: hci.h:1889
uint8_t cig_id
Definition: hci.h:1888
uint8_t status
Definition: hci.h:1887
Definition: hci.h:1851
uint16_t handle[0]
Definition: hci.h:1855
uint8_t status
Definition: hci.h:1852
uint8_t num_handles
Definition: hci.h:1854
uint8_t cig_id
Definition: hci.h:1853
uint16_t sync_handle
Definition: hci.h:1646
uint8_t status
Definition: hci.h:1645
uint16_t handle
Definition: hci.h:1660
uint8_t status
Definition: hci.h:1659
uint8_t status
Definition: hci.h:1679
uint16_t handle
Definition: hci.h:1680
Definition: hci.h:1129
uint16_t handle
Definition: hci.h:1131
uint8_t status
Definition: hci.h:1130
Definition: hci.h:1338
uint8_t status
Definition: hci.h:1339
int8_t tx_power
Definition: hci.h:1340
Definition: hci.h:2084
uint8_t status
Definition: hci.h:2085
Definition: hci.h:2010
uint16_t handle
Definition: hci.h:2012
uint8_t status
Definition: hci.h:2011
Definition: hci.h:1093
uint8_t status
Definition: hci.h:1094
uint16_t rx_pkt_count
Definition: hci.h:1095
Definition: hci.h:415
uint8_t status
Definition: hci.h:416
bt_addr_t bdaddr
Definition: hci.h:417
Definition: hci.h:406
uint8_t status
Definition: hci.h:407
bt_addr_t bdaddr
Definition: hci.h:408
uint8_t status
Definition: hci.h:610
uint16_t auth_payload_timeout
Definition: hci.h:612
uint16_t handle
Definition: hci.h:611
Definition: hci.h:696
uint8_t status
Definition: hci.h:697
bt_addr_t bdaddr
Definition: hci.h:698
Definition: hci.h:687
uint8_t status
Definition: hci.h:688
uint8_t sco_max_len
Definition: hci.h:690
uint16_t acl_max_num
Definition: hci.h:691
uint16_t acl_max_len
Definition: hci.h:689
uint16_t sco_max_num
Definition: hci.h:692
uint8_t num_capabilities
Definition: hci.h:796
uint8_t status
Definition: hci.h:795
uint8_t capabilities[0]
Definition: hci.h:798
Definition: hci.h:772
uint8_t codecs[0]
Definition: hci.h:775
uint8_t status
Definition: hci.h:773
Definition: hci.h:748
uint8_t status
Definition: hci.h:749
uint8_t codecs[0]
Definition: hci.h:751
uint16_t conn_accept_timeout
Definition: hci.h:514
uint8_t status
Definition: hci.h:513
Definition: hci.h:809
uint8_t status
Definition: hci.h:810
uint8_t max_ctlr_delay[3]
Definition: hci.h:812
uint8_t min_ctlr_delay[3]
Definition: hci.h:811
uint8_t status
Definition: hci.h:833
uint16_t handle
Definition: hci.h:834
uint8_t key_size
Definition: hci.h:835
uint8_t max_page
Definition: hci.h:676
uint8_t ext_features[8]
Definition: hci.h:677
uint8_t page
Definition: hci.h:675
uint8_t status
Definition: hci.h:674
Definition: hci.h:681
uint8_t status
Definition: hci.h:682
uint8_t features[8]
Definition: hci.h:683
uint16_t hci_revision
Definition: hci.h:657
uint8_t hci_version
Definition: hci.h:656
uint16_t lmp_subversion
Definition: hci.h:660
uint8_t lmp_version
Definition: hci.h:658
uint16_t manufacturer
Definition: hci.h:659
uint8_t status
Definition: hci.h:655
Definition: hci.h:819
int8_t rssi
Definition: hci.h:822
uint8_t status
Definition: hci.h:820
uint16_t handle
Definition: hci.h:821
uint8_t status
Definition: hci.h:665
uint8_t commands[64]
Definition: hci.h:666
Definition: hci.h:546
int8_t tx_power_level
Definition: hci.h:549
uint16_t handle
Definition: hci.h:548
uint8_t status
Definition: hci.h:547
Definition: hci.h:443
bt_addr_t bdaddr
Definition: hci.h:445
uint8_t status
Definition: hci.h:444
Definition: hci.h:477
bt_addr_t bdaddr
Definition: hci.h:479
uint8_t status
Definition: hci.h:478
uint16_t handle
Definition: hci.h:623
uint8_t status
Definition: hci.h:622
uint8_t status
Definition: hci.h:523
Definition: hci.h:755
uint8_t codec_id
Definition: hci.h:756
uint8_t transports
Definition: hci.h:757
Definition: hci.h:733
uint8_t codec_id
Definition: hci.h:734
Definition: hci.h:759
struct bt_hci_std_codec_info_v2 codec_info[0]
Definition: hci.h:761
uint8_t num_codecs
Definition: hci.h:760
Definition: hci.h:736
struct bt_hci_std_codec_info codec_info[0]
Definition: hci.h:738
uint8_t num_codecs
Definition: hci.h:737
Definition: hci.h:763
uint16_t company_id
Definition: hci.h:764
uint8_t transports
Definition: hci.h:766
uint16_t codec_id
Definition: hci.h:765
Definition: hci.h:740
uint16_t codec_id
Definition: hci.h:742
uint16_t company_id
Definition: hci.h:741
Definition: hci.h:768
struct bt_hci_vs_codec_info_v2 codec_info[0]
Definition: hci.h:770
uint8_t num_codecs
Definition: hci.h:769
Definition: hci.h:744
uint8_t num_codecs
Definition: hci.h:745
struct bt_hci_vs_codec_info codec_info[0]
Definition: hci.h:746
Definition: hci.h:507
uint8_t local_name[248]
Definition: hci.h:508
Definition: hci.h:992
uint16_t min_ce_len
Definition: hci.h:998
uint16_t max_ce_len
Definition: hci.h:999
uint16_t handle
Definition: hci.h:993
uint16_t conn_latency
Definition: hci.h:996
uint16_t conn_interval_max
Definition: hci.h:995
uint16_t supervision_timeout
Definition: hci.h:997
uint16_t conn_interval_min
Definition: hci.h:994
Simple network buffer representation.
Definition: buf.h:82
Network buffer representation.
Definition: buf.h:905
uint16_t len
Definition: buf.h:934
static ZTEST_BMEM char buffer[8]
Definition: test_mbox_api.c:551
Macros to abstract toolchain specific capabilities.
Misc utilities.