Zephyr API Documentation  3.7.0-rc3
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
hci_types.h
Go to the documentation of this file.
1/* hci.h - Bluetooth Host Control Interface types */
2
3/*
4 * Copyright (c) 2015-2016 Intel Corporation
5 * Copyright (c) 2023 Nordic Semiconductor ASA
6 *
7 * SPDX-License-Identifier: Apache-2.0
8 */
9#ifndef ZEPHYR_INCLUDE_BLUETOOTH_HCI_TYPES_H_
10#define ZEPHYR_INCLUDE_BLUETOOTH_HCI_TYPES_H_
11
12#include <stdbool.h>
13#include <stdint.h>
14#include <string.h>
15
16#include <zephyr/toolchain.h>
17#include <zephyr/types.h>
18#include <zephyr/sys/util.h>
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25/* Bluetooth spec v5.4 Vol 4, Part A Table 2.1: HCI packet indicators
26 * The following definitions are intended for use with the UART Transport Layer and
27 * may be reused with other transport layers if desired.
28 */
29#define BT_HCI_H4_NONE 0x00 /* None of the known packet types */
30#define BT_HCI_H4_CMD 0x01 /* HCI Command packet */
31#define BT_HCI_H4_ACL 0x02 /* HCI ACL Data packet */
32#define BT_HCI_H4_SCO 0x03 /* HCI Synchronous Data packet */
33#define BT_HCI_H4_EVT 0x04 /* HCI Event packet */
34#define BT_HCI_H4_ISO 0x05 /* HCI ISO Data packet */
35
36/* Special own address types for LL privacy (used in adv & scan parameters) */
37#define BT_HCI_OWN_ADDR_RPA_OR_PUBLIC 0x02
38#define BT_HCI_OWN_ADDR_RPA_OR_RANDOM 0x03
39#define BT_HCI_OWN_ADDR_RPA_MASK 0x02
40
41#define BT_HCI_PEER_ADDR_RPA_UNRESOLVED 0xfe
42#define BT_HCI_PEER_ADDR_ANONYMOUS 0xff
43
44#define BT_ENC_KEY_SIZE_MIN 0x07
45#define BT_ENC_KEY_SIZE_MAX 0x10
46
47#define BT_HCI_ADV_HANDLE_INVALID 0xff
48#define BT_HCI_SYNC_HANDLE_INVALID 0xffff
49#define BT_HCI_PAWR_SUBEVENT_MAX 128
50
51/* Bluetooth spec v5.4 Vol 4, Part E - 5.4.3 HCI Synchronous Data Packets */
53 uint16_t handle; /* 12 bit handle, 2 bit Packet Status Flag, 1 bit RFU */
55} __packed;
56#define BT_HCI_SCO_HDR_SIZE 3
57
58/* Bluetooth spec v5.4 Vol 4, Part E - 5.4.4 HCI Event Packet */
62} __packed;
63#define BT_HCI_EVT_HDR_SIZE 2
64
65#define BT_ACL_START_NO_FLUSH 0x00
66#define BT_ACL_CONT 0x01
67#define BT_ACL_START 0x02
68#define BT_ACL_COMPLETE 0x03
69
70#define BT_ACL_POINT_TO_POINT 0x00
71#define BT_ACL_BROADCAST 0x01
72
73#define BT_ACL_HANDLE_MASK BIT_MASK(12)
74
75#define bt_acl_handle(h) ((h) & BT_ACL_HANDLE_MASK)
76#define bt_acl_flags(h) ((h) >> 12)
77#define bt_acl_flags_pb(f) ((f) & BIT_MASK(2))
78#define bt_acl_flags_bc(f) ((f) >> 2)
79#define bt_acl_handle_pack(h, f) ((h) | ((f) << 12))
80
81/* Bluetooth spec v5.4 Vol 4, Part E - 5.4.2 ACL Data Packets */
85} __packed;
86#define BT_HCI_ACL_HDR_SIZE 4
87
88#define BT_ISO_START 0x00
89#define BT_ISO_CONT 0x01
90#define BT_ISO_SINGLE 0x02
91#define BT_ISO_END 0x03
92
93#define bt_iso_handle(h) ((h) & 0x0fff)
94#define bt_iso_flags(h) ((h) >> 12)
95#define bt_iso_flags_pb(f) ((f) & 0x0003)
96#define bt_iso_flags_ts(f) (((f) >> 2) & 0x0001)
97#define bt_iso_pack_flags(pb, ts) \
98 (((pb) & 0x0003) | (((ts) & 0x0001) << 2))
99#define bt_iso_handle_pack(h, pb, ts) \
100 ((h) | (bt_iso_pack_flags(pb, ts) << 12))
101#define bt_iso_hdr_len(h) ((h) & BIT_MASK(14))
102
103#define BT_ISO_DATA_VALID 0x00
104#define BT_ISO_DATA_INVALID 0x01
105#define BT_ISO_DATA_NOP 0x02
106
107#define bt_iso_pkt_len(h) ((h) & BIT_MASK(12))
108#define bt_iso_pkt_flags(h) ((h) >> 14)
109#define bt_iso_pkt_len_pack(h, f) (((h) & BIT_MASK(12)) | ((f) << 14))
110
113 uint16_t slen; /* 12 bit len, 2 bit RFU, 2 bit packet status */
114} __packed;
115#define BT_HCI_ISO_SDU_HDR_SIZE 4
116
120} __packed;
121#define BT_HCI_ISO_SDU_TS_HDR_SIZE 8
122
123/* Bluetooth spec v5.4 Vol 4, Part E - 5.4.5 HCI ISO Data Packets */
125 uint16_t handle; /* 12 bit handle, 2 bit PB flags, 1 bit TS_Flag, 1 bit RFU */
126 uint16_t len; /* 14 bits, 2 bits RFU */
127} __packed;
128#define BT_HCI_ISO_HDR_SIZE 4
129
130/* Bluetooth spec v5.4 Vol 4, Part E - 5.4.1 HCI Command Packet */
134} __packed;
135#define BT_HCI_CMD_HDR_SIZE 3
136
137/* Supported Commands */
138#define BT_CMD_TEST(cmd, octet, bit) (cmd[octet] & BIT(bit))
139#define BT_CMD_LE_STATES(cmd) BT_CMD_TEST(cmd, 28, 3)
140
141#define BT_FEAT_TEST(feat, page, octet, bit) (feat[page][octet] & BIT(bit))
142
143#define BT_FEAT_BREDR(feat) !BT_FEAT_TEST(feat, 0, 4, 5)
144#define BT_FEAT_LE(feat) BT_FEAT_TEST(feat, 0, 4, 6)
145#define BT_FEAT_EXT_FEATURES(feat) BT_FEAT_TEST(feat, 0, 7, 7)
146#define BT_FEAT_HOST_SSP(feat) BT_FEAT_TEST(feat, 1, 0, 0)
147#define BT_FEAT_SC(feat) BT_FEAT_TEST(feat, 2, 1, 0)
148
149#define BT_FEAT_LMP_SCO_CAPABLE(feat) BT_FEAT_TEST(feat, 0, 1, 3)
150#define BT_FEAT_LMP_ESCO_CAPABLE(feat) BT_FEAT_TEST(feat, 0, 3, 7)
151#define BT_FEAT_HV2_PKT(feat) BT_FEAT_TEST(feat, 0, 1, 4)
152#define BT_FEAT_HV3_PKT(feat) BT_FEAT_TEST(feat, 0, 1, 5)
153#define BT_FEAT_EV4_PKT(feat) BT_FEAT_TEST(feat, 0, 4, 0)
154#define BT_FEAT_EV5_PKT(feat) BT_FEAT_TEST(feat, 0, 4, 1)
155#define BT_FEAT_2EV3_PKT(feat) BT_FEAT_TEST(feat, 0, 5, 5)
156#define BT_FEAT_3EV3_PKT(feat) BT_FEAT_TEST(feat, 0, 5, 6)
157#define BT_FEAT_3SLOT_PKT(feat) BT_FEAT_TEST(feat, 0, 5, 7)
158
159/* LE features */
160#define BT_LE_FEAT_BIT_ENC 0
161#define BT_LE_FEAT_BIT_CONN_PARAM_REQ 1
162#define BT_LE_FEAT_BIT_EXT_REJ_IND 2
163#define BT_LE_FEAT_BIT_PER_INIT_FEAT_XCHG 3
164#define BT_LE_FEAT_BIT_PING 4
165#define BT_LE_FEAT_BIT_DLE 5
166#define BT_LE_FEAT_BIT_PRIVACY 6
167#define BT_LE_FEAT_BIT_EXT_SCAN 7
168#define BT_LE_FEAT_BIT_PHY_2M 8
169#define BT_LE_FEAT_BIT_SMI_TX 9
170#define BT_LE_FEAT_BIT_SMI_RX 10
171#define BT_LE_FEAT_BIT_PHY_CODED 11
172#define BT_LE_FEAT_BIT_EXT_ADV 12
173#define BT_LE_FEAT_BIT_PER_ADV 13
174#define BT_LE_FEAT_BIT_CHAN_SEL_ALGO_2 14
175#define BT_LE_FEAT_BIT_PWR_CLASS_1 15
176#define BT_LE_FEAT_BIT_MIN_USED_CHAN_PROC 16
177#define BT_LE_FEAT_BIT_CONN_CTE_REQ 17
178#define BT_LE_FEAT_BIT_CONN_CTE_RESP 18
179#define BT_LE_FEAT_BIT_CONNECTIONLESS_CTE_TX 19
180#define BT_LE_FEAT_BIT_CONNECTIONLESS_CTE_RX 20
181#define BT_LE_FEAT_BIT_ANT_SWITCH_TX_AOD 21
182#define BT_LE_FEAT_BIT_ANT_SWITCH_RX_AOA 22
183#define BT_LE_FEAT_BIT_RX_CTE 23
184#define BT_LE_FEAT_BIT_PAST_SEND 24
185#define BT_LE_FEAT_BIT_PAST_RECV 25
186#define BT_LE_FEAT_BIT_SCA_UPDATE 26
187#define BT_LE_FEAT_BIT_REMOTE_PUB_KEY_VALIDATE 27
188#define BT_LE_FEAT_BIT_CIS_CENTRAL 28
189#define BT_LE_FEAT_BIT_CIS_PERIPHERAL 29
190#define BT_LE_FEAT_BIT_ISO_BROADCASTER 30
191#define BT_LE_FEAT_BIT_SYNC_RECEIVER 31
192#define BT_LE_FEAT_BIT_ISO_CHANNELS 32
193#define BT_LE_FEAT_BIT_PWR_CTRL_REQ 33
194#define BT_LE_FEAT_BIT_PWR_CHG_IND 34
195#define BT_LE_FEAT_BIT_PATH_LOSS_MONITOR 35
196#define BT_LE_FEAT_BIT_PER_ADV_ADI_SUPP 36
197#define BT_LE_FEAT_BIT_CONN_SUBRATING 37
198#define BT_LE_FEAT_BIT_CONN_SUBRATING_HOST_SUPP 38
199#define BT_LE_FEAT_BIT_CHANNEL_CLASSIFICATION 39
200
201#define BT_LE_FEAT_BIT_PAWR_ADVERTISER 43
202#define BT_LE_FEAT_BIT_PAWR_SCANNER 44
203
204#define BT_LE_FEAT_TEST(feat, n) (feat[(n) >> 3] & \
205 BIT((n) & 7))
206
207#define BT_FEAT_LE_ENCR(feat) BT_LE_FEAT_TEST(feat, \
208 BT_LE_FEAT_BIT_ENC)
209#define BT_FEAT_LE_CONN_PARAM_REQ_PROC(feat) BT_LE_FEAT_TEST(feat, \
210 BT_LE_FEAT_BIT_CONN_PARAM_REQ)
211#define BT_FEAT_LE_PER_INIT_FEAT_XCHG(feat) BT_LE_FEAT_TEST(feat, \
212 BT_LE_FEAT_BIT_PER_INIT_FEAT_XCHG)
213#define BT_FEAT_LE_DLE(feat) BT_LE_FEAT_TEST(feat, \
214 BT_LE_FEAT_BIT_DLE)
215#define BT_FEAT_LE_PHY_2M(feat) BT_LE_FEAT_TEST(feat, \
216 BT_LE_FEAT_BIT_PHY_2M)
217#define BT_FEAT_LE_PHY_CODED(feat) BT_LE_FEAT_TEST(feat, \
218 BT_LE_FEAT_BIT_PHY_CODED)
219#define BT_FEAT_LE_PRIVACY(feat) BT_LE_FEAT_TEST(feat, \
220 BT_LE_FEAT_BIT_PRIVACY)
221#define BT_FEAT_LE_EXT_ADV(feat) BT_LE_FEAT_TEST(feat, \
222 BT_LE_FEAT_BIT_EXT_ADV)
223#define BT_FEAT_LE_EXT_PER_ADV(feat) BT_LE_FEAT_TEST(feat, \
224 BT_LE_FEAT_BIT_PER_ADV)
225#define BT_FEAT_LE_CONNECTION_CTE_REQ(feat) BT_LE_FEAT_TEST(feat, \
226 BT_LE_FEAT_BIT_CONN_CTE_REQ)
227#define BT_FEAT_LE_CONNECTION_CTE_RESP(feat) BT_LE_FEAT_TEST(feat, \
228 BT_LE_FEAT_BIT_CONN_CTE_RESP)
229#define BT_FEAT_LE_CONNECTIONLESS_CTE_TX(feat) BT_LE_FEAT_TEST(feat, \
230 BT_LE_FEAT_BIT_CONNECTIONLESS_CTE_TX)
231#define BT_FEAT_LE_CONNECTIONLESS_CTE_RX(feat) BT_LE_FEAT_TEST(feat, \
232 BT_LE_FEAT_BIT_CONNECTIONLESS_CTE_RX)
233#define BT_FEAT_LE_ANT_SWITCH_TX_AOD(feat) BT_LE_FEAT_TEST(feat, \
234 BT_LE_FEAT_BIT_ANT_SWITCH_TX_AOD)
235#define BT_FEAT_LE_ANT_SWITCH_RX_AOA(feat) BT_LE_FEAT_TEST(feat, \
236 BT_LE_FEAT_BIT_ANT_SWITCH_RX_AOA)
237#define BT_FEAT_LE_RX_CTE(feat) BT_LE_FEAT_TEST(feat, \
238 BT_LE_FEAT_BIT_RX_CTE)
239#define BT_FEAT_LE_PAST_SEND(feat) BT_LE_FEAT_TEST(feat, \
240 BT_LE_FEAT_BIT_PAST_SEND)
241#define BT_FEAT_LE_PAST_RECV(feat) BT_LE_FEAT_TEST(feat, \
242 BT_LE_FEAT_BIT_PAST_RECV)
243#define BT_FEAT_LE_CIS_CENTRAL(feat) BT_LE_FEAT_TEST(feat, \
244 BT_LE_FEAT_BIT_CIS_CENTRAL)
245#define BT_FEAT_LE_CIS_PERIPHERAL(feat) BT_LE_FEAT_TEST(feat, \
246 BT_LE_FEAT_BIT_CIS_PERIPHERAL)
247#define BT_FEAT_LE_ISO_BROADCASTER(feat) BT_LE_FEAT_TEST(feat, \
248 BT_LE_FEAT_BIT_ISO_BROADCASTER)
249#define BT_FEAT_LE_SYNC_RECEIVER(feat) BT_LE_FEAT_TEST(feat, \
250 BT_LE_FEAT_BIT_SYNC_RECEIVER)
251#define BT_FEAT_LE_ISO_CHANNELS(feat) BT_LE_FEAT_TEST(feat, \
252 BT_LE_FEAT_BIT_ISO_CHANNELS)
253#define BT_FEAT_LE_PWR_CTRL_REQ(feat) BT_LE_FEAT_TEST(feat, \
254 BT_LE_FEAT_BIT_PWR_CTRL_REQ)
255#define BT_FEAT_LE_PWR_CHG_IND(feat) BT_LE_FEAT_TEST(feat, \
256 BT_LE_FEAT_BIT_PWR_CHG_IND)
257#define BT_FEAT_LE_PATH_LOSS_MONITOR(feat) BT_LE_FEAT_TEST(feat, \
258 BT_LE_FEAT_BIT_PATH_LOSS_MONITOR)
259#define BT_FEAT_LE_PER_ADV_ADI_SUPP(feat) BT_LE_FEAT_TEST(feat, \
260 BT_LE_FEAT_BIT_PER_ADV_ADI_SUPP)
261#define BT_FEAT_LE_CONN_SUBRATING(feat) BT_LE_FEAT_TEST(feat, \
262 BT_LE_FEAT_BIT_CONN_SUBRATING)
263#define BT_FEAT_LE_CONN_SUBRATING_HOST_SUPP(feat) BT_LE_FEAT_TEST(feat, \
264 BT_LE_FEAT_BIT_CONN_SUBRATING_HOST_SUPP)
265#define BT_FEAT_LE_CHANNEL_CLASSIFICATION(feat) BT_LE_FEAT_TEST(feat, \
266 BT_LE_FEAT_BIT_CHANNEL_CLASSIFICATION)
267#define BT_FEAT_LE_PAWR_ADVERTISER(feat) BT_LE_FEAT_TEST(feat, \
268 BT_LE_FEAT_BIT_PAWR_ADVERTISER)
269#define BT_FEAT_LE_PAWR_SCANNER(feat) BT_LE_FEAT_TEST(feat, \
270 BT_LE_FEAT_BIT_PAWR_SCANNER)
271
272#define BT_FEAT_LE_CIS(feat) (BT_FEAT_LE_CIS_CENTRAL(feat) | \
273 BT_FEAT_LE_CIS_PERIPHERAL(feat))
274#define BT_FEAT_LE_BIS(feat) (BT_FEAT_LE_ISO_BROADCASTER(feat) | \
275 BT_FEAT_LE_SYNC_RECEIVER(feat))
276#define BT_FEAT_LE_ISO(feat) (BT_FEAT_LE_CIS(feat) | \
277 BT_FEAT_LE_BIS(feat))
278
279/* LE States. See Core_v5.4, Vol 4, Part E, Section 7.8.27 */
280#define BT_LE_STATES_PER_CONN_ADV(states) (states & BIT64_MASK(38))
281
282#if defined(CONFIG_BT_SCAN_AND_INITIATE_IN_PARALLEL)
283/* Both passive and active scanner can be run in parallel with initiator. */
284#define BT_LE_STATES_SCAN_INIT(states) ((states) & BIT64_MASK(22) && \
285 (states) & BIT64_MASK(23))
286
287#else
288#define BT_LE_STATES_SCAN_INIT(states) 0
289#endif
290
291/* Bonding/authentication types */
292#define BT_HCI_NO_BONDING 0x00
293#define BT_HCI_NO_BONDING_MITM 0x01
294#define BT_HCI_DEDICATED_BONDING 0x02
295#define BT_HCI_DEDICATED_BONDING_MITM 0x03
296#define BT_HCI_GENERAL_BONDING 0x04
297#define BT_HCI_GENERAL_BONDING_MITM 0x05
298
299/*
300 * MITM protection is enabled in SSP authentication requirements octet when
301 * LSB bit is set.
302 */
303#define BT_MITM 0x01
304
305/* I/O capabilities */
306#define BT_IO_DISPLAY_ONLY 0x00
307#define BT_IO_DISPLAY_YESNO 0x01
308#define BT_IO_KEYBOARD_ONLY 0x02
309#define BT_IO_NO_INPUT_OUTPUT 0x03
310
311/* SCO packet types */
312#define HCI_PKT_TYPE_HV1 0x0020
313#define HCI_PKT_TYPE_HV2 0x0040
314#define HCI_PKT_TYPE_HV3 0x0080
315
316/* eSCO packet types */
317#define HCI_PKT_TYPE_SCO_HV1 0x0001
318#define HCI_PKT_TYPE_SCO_HV2 0x0002
319#define HCI_PKT_TYPE_SCO_HV3 0x0004
320#define HCI_PKT_TYPE_ESCO_EV3 0x0008
321#define HCI_PKT_TYPE_ESCO_EV4 0x0010
322#define HCI_PKT_TYPE_ESCO_EV5 0x0020
323#define HCI_PKT_TYPE_ESCO_2EV3 0x0040
324#define HCI_PKT_TYPE_ESCO_3EV3 0x0080
325#define HCI_PKT_TYPE_ESCO_2EV5 0x0100
326#define HCI_PKT_TYPE_ESCO_3EV5 0x0200
327
328
329#define ESCO_PKT_MASK (HCI_PKT_TYPE_SCO_HV1 | \
330 HCI_PKT_TYPE_SCO_HV2 | \
331 HCI_PKT_TYPE_SCO_HV3 | \
332 HCI_PKT_TYPE_ESCO_EV3 | \
333 HCI_PKT_TYPE_ESCO_EV4 | \
334 HCI_PKT_TYPE_ESCO_EV5)
335#define SCO_PKT_MASK (HCI_PKT_TYPE_SCO_HV1 | \
336 HCI_PKT_TYPE_SCO_HV2 | \
337 HCI_PKT_TYPE_SCO_HV3)
338#define EDR_ESCO_PKT_MASK (HCI_PKT_TYPE_ESCO_2EV3 | \
339 HCI_PKT_TYPE_ESCO_3EV3 | \
340 HCI_PKT_TYPE_ESCO_2EV5 | \
341 HCI_PKT_TYPE_ESCO_3EV5)
342
343/* HCI BR/EDR link types */
344#define BT_HCI_SCO 0x00
345#define BT_HCI_ACL 0x01
346#define BT_HCI_ESCO 0x02
347
348/* OpCode Group Fields */
349#define BT_OGF_LINK_CTRL 0x01
350#define BT_OGF_BASEBAND 0x03
351#define BT_OGF_INFO 0x04
352#define BT_OGF_STATUS 0x05
353#define BT_OGF_LE 0x08
354#define BT_OGF_VS 0x3f
355
356/* Construct OpCode from OGF and OCF */
357#define BT_OP(ogf, ocf) ((ocf) | ((ogf) << 10))
358
359/* Invalid opcode */
360#define BT_OP_NOP 0x0000
361
362/* Obtain OGF from OpCode */
363#define BT_OGF(opcode) (((opcode) >> 10) & BIT_MASK(6))
364/* Obtain OCF from OpCode */
365#define BT_OCF(opcode) ((opcode) & BIT_MASK(10))
366
367#define BT_HCI_OP_INQUIRY BT_OP(BT_OGF_LINK_CTRL, 0x0001) /* 0x0401 */
372} __packed;
373
374#define BT_HCI_OP_INQUIRY_CANCEL BT_OP(BT_OGF_LINK_CTRL, 0x0002) /* 0x0402 */
375
376#define BT_HCI_OP_CONNECT BT_OP(BT_OGF_LINK_CTRL, 0x0005) /* 0x0405 */
384} __packed;
385
386#define BT_HCI_OP_DISCONNECT BT_OP(BT_OGF_LINK_CTRL, 0x0006) /* 0x0406 */
390} __packed;
391
392#define BT_HCI_OP_CONNECT_CANCEL BT_OP(BT_OGF_LINK_CTRL, 0x0008) /* 0x0408 */
395} __packed;
399} __packed;
400
401#define BT_HCI_OP_ACCEPT_CONN_REQ BT_OP(BT_OGF_LINK_CTRL, 0x0009) /* 0x0409 */
405} __packed;
406
407#define BT_HCI_OP_SETUP_SYNC_CONN BT_OP(BT_OGF_LINK_CTRL, 0x0028) /* 0x0428 */
416} __packed;
417
418#define BT_HCI_OP_ACCEPT_SYNC_CONN_REQ BT_OP(BT_OGF_LINK_CTRL, 0x0029) /* 0x0429 */
427} __packed;
428
429#define BT_HCI_OP_REJECT_CONN_REQ BT_OP(BT_OGF_LINK_CTRL, 0x000a) /* 0x040a */
433} __packed;
434
435#define BT_HCI_OP_LINK_KEY_REPLY BT_OP(BT_OGF_LINK_CTRL, 0x000b) /* 0x040b */
439} __packed;
440
441#define BT_HCI_OP_LINK_KEY_NEG_REPLY BT_OP(BT_OGF_LINK_CTRL, 0x000c) /* 0x040c */
444} __packed;
445
446#define BT_HCI_OP_PIN_CODE_REPLY BT_OP(BT_OGF_LINK_CTRL, 0x000d) /* 0x040d */
451} __packed;
455} __packed;
456
457#define BT_HCI_OP_PIN_CODE_NEG_REPLY BT_OP(BT_OGF_LINK_CTRL, 0x000e) /* 0x040e */
460} __packed;
464} __packed;
465
466#define BT_HCI_OP_AUTH_REQUESTED BT_OP(BT_OGF_LINK_CTRL, 0x0011) /* 0x0411 */
469} __packed;
470
471#define BT_HCI_OP_SET_CONN_ENCRYPT BT_OP(BT_OGF_LINK_CTRL, 0x0013) /* 0x0413 */
475} __packed;
476
477#define BT_HCI_OP_REMOTE_NAME_REQUEST BT_OP(BT_OGF_LINK_CTRL, 0x0019) /* 0x0419 */
483} __packed;
484
485#define BT_HCI_OP_REMOTE_NAME_CANCEL BT_OP(BT_OGF_LINK_CTRL, 0x001a) /* 0x041a */
488} __packed;
492} __packed;
493
494#define BT_HCI_OP_READ_REMOTE_FEATURES BT_OP(BT_OGF_LINK_CTRL, 0x001b) /* 0x041b */
497} __packed;
498
499#define BT_HCI_OP_READ_REMOTE_EXT_FEATURES BT_OP(BT_OGF_LINK_CTRL, 0x001c) /* 0x041c */
503} __packed;
504
505#define BT_HCI_OP_READ_REMOTE_VERSION_INFO BT_OP(BT_OGF_LINK_CTRL, 0x001d) /* 0x041d */
508} __packed;
509
510#define BT_HCI_OP_IO_CAPABILITY_REPLY BT_OP(BT_OGF_LINK_CTRL, 0x002b) /* 0x042b */
516} __packed;
517
518#define BT_HCI_OP_USER_CONFIRM_REPLY BT_OP(BT_OGF_LINK_CTRL, 0x002c) /* 0x042c */
519#define BT_HCI_OP_USER_CONFIRM_NEG_REPLY BT_OP(BT_OGF_LINK_CTRL, 0x002d) /* 0x042d */
522} __packed;
526} __packed;
527
528#define BT_HCI_OP_USER_PASSKEY_REPLY BT_OP(BT_OGF_LINK_CTRL, 0x002e) /* 0x042e */
532} __packed;
533
534#define BT_HCI_OP_USER_PASSKEY_NEG_REPLY BT_OP(BT_OGF_LINK_CTRL, 0x002f) /* 0x042f */
537} __packed;
538
539#define BT_HCI_OP_IO_CAPABILITY_NEG_REPLY BT_OP(BT_OGF_LINK_CTRL, 0x0034) /* 0x0434 */
543} __packed;
544
545#define BT_HCI_OP_SET_EVENT_MASK BT_OP(BT_OGF_BASEBAND, 0x0001) /* 0x0c01 */
548} __packed;
549
550#define BT_HCI_OP_RESET BT_OP(BT_OGF_BASEBAND, 0x0003) /* 0x0c03 */
551
552#define BT_HCI_OP_WRITE_LOCAL_NAME BT_OP(BT_OGF_BASEBAND, 0x0013) /* 0x0c13 */
555} __packed;
556
557#define BT_HCI_OP_READ_CONN_ACCEPT_TIMEOUT BT_OP(BT_OGF_BASEBAND, 0x0015) /* 0x0c15 */
561} __packed;
562
563#define BT_HCI_OP_WRITE_CONN_ACCEPT_TIMEOUT BT_OP(BT_OGF_BASEBAND, 0x0016) /* 0x0c16 */
566} __packed;
567
570} __packed;
571
572#define BT_HCI_OP_WRITE_PAGE_TIMEOUT BT_OP(BT_OGF_BASEBAND, 0x0018) /* 0x0c18 */
573
574#define BT_HCI_OP_WRITE_SCAN_ENABLE BT_OP(BT_OGF_BASEBAND, 0x001a) /* 0x0c1a */
575#define BT_BREDR_SCAN_DISABLED 0x00
576#define BT_BREDR_SCAN_INQUIRY 0x01
577#define BT_BREDR_SCAN_PAGE 0x02
578
579#define BT_COD(major_service, major_device, minor_device) \
580 (((uint32_t)major_service << 13) | ((uint32_t)major_device << 8) | \
581 ((uint32_t)minor_device << 2))
582#define BT_COD_VALID(cod) ((0 == (cod[0] & (BIT(0) | BIT(1)))) ? true : false)
583#define BT_COD_MAJOR_SERVICE_CLASSES(cod) \
584 ((((uint32_t)cod[2] & 0xFF) >> 5) | (((uint32_t)cod[1] & 0xD0) >> 5))
585#define BT_COD_MAJOR_DEVICE_CLASS(cod) ((((uint32_t)cod[1]) & 0x1FUL))
586#define BT_COD_MINOR_DEVICE_CLASS(cod) (((((uint32_t)cod[0]) & 0xFF) >> 2))
587
588#define BT_COD_MAJOR_MISC 0x00
589#define BT_COD_MAJOR_COMPUTER 0x01
590#define BT_COD_MAJOR_PHONE 0x02
591#define BT_COD_MAJOR_LAN_NETWORK_AP 0x03
592#define BT_COD_MAJOR_AUDIO_VIDEO 0x04
593#define BT_COD_MAJOR_PERIPHERAL 0x05
594#define BT_COD_MAJOR_IMAGING 0x06
595#define BT_COD_MAJOR_WEARABLE 0x07
596#define BT_COD_MAJOR_TOY 0x08
597#define BT_COD_MAJOR_HEALTH 0x09
598#define BT_COD_MAJOR_UNCATEGORIZED 0x1F
599
600/* Minor Device Class field - Computer Major Class */
601#define BT_COD_MAJOR_COMPUTER_MINOR_UNCATEGORIZED 0x00
602#define BT_COD_MAJOR_COMPUTER_MINOR_DESKTOP 0x01
603#define BT_COD_MAJOR_COMPUTER_MINOR_SERVER_CLASS_COMPUTER 0x02
604#define BT_COD_MAJOR_COMPUTER_MINOR_LAPTOP 0x03
605#define BT_COD_MAJOR_COMPUTER_MINOR_HANDHELD_PC_PDA 0x04
606#define BT_COD_MAJOR_COMPUTER_MINOR_PALM_SIZE_PC_PDA 0x05
607#define BT_COD_MAJOR_COMPUTER_MINOR_WEARABLE_COMPUTER 0x06
608#define BT_COD_MAJOR_COMPUTER_MINOR_TABLET 0x07
609
610/* Minor Device Class field - Phone Major Class */
611#define BT_COD_MAJOR_PHONE_MINOR_UNCATEGORIZED 0x00
612#define BT_COD_MAJOR_PHONE_MINOR_CELLULAR 0x01
613#define BT_COD_MAJOR_PHONE_MINOR_CORDLESS 0x02
614#define BT_COD_MAJOR_PHONE_MINOR_SMARTPHONE 0x03
615#define BT_COD_MAJOR_PHONE_MINOR_WIRED_MODEM_VOICE_GATEWAY 0x04
616#define BT_COD_MAJOR_PHONE_MINOR_ISDN 0x05
617
618/* Minor Device Class field - Audio/Video Major Class */
619#define BT_COD_MAJOR_AUDIO_VIDEO_MINOR_UNCATEGORIZED 0x00
620#define BT_COD_MAJOR_AUDIO_VIDEO_MINOR_WEARABLE_HEADSET 0x01
621#define BT_COD_MAJOR_AUDIO_VIDEO_MINOR_HANDS_FREE 0x02
622#define BT_COD_MAJOR_AUDIO_VIDEO_MINOR_RFU 0x03
623#define BT_COD_MAJOR_AUDIO_VIDEO_MINOR_MICROPHONE 0x04
624#define BT_COD_MAJOR_AUDIO_VIDEO_MINOR_LOUDSPEAKER 0x05
625#define BT_COD_MAJOR_AUDIO_VIDEO_MINOR_HEADPHONES 0x06
626#define BT_COD_MAJOR_AUDIO_VIDEO_MINOR_PORTABLE_AUDIO 0x07
627#define BT_COD_MAJOR_AUDIO_VIDEO_MINOR_CAR_AUDIO 0x08
628#define BT_COD_MAJOR_AUDIO_VIDEO_MINOR_SET_TOP_BOX 0x09
629#define BT_COD_MAJOR_AUDIO_VIDEO_MINOR_HIFI_AUDIO 0x0A
630#define BT_COD_MAJOR_AUDIO_VIDEO_MINOR_VCR 0x0B
631#define BT_COD_MAJOR_AUDIO_VIDEO_MINOR_VIDEO_CAMERA 0x0C
632#define BT_COD_MAJOR_AUDIO_VIDEO_MINOR_CAMCORDER 0x0D
633#define BT_COD_MAJOR_AUDIO_VIDEO_MINOR_VIDEO_MONITOR 0x0E
634#define BT_COD_MAJOR_AUDIO_VIDEO_MINOR_VIDEO_DISPLAY_LOUDSPEAKER 0x0F
635#define BT_COD_MAJOR_AUDIO_VIDEO_MINOR_VIDEO_CONFERENCING 0x10
636#define BT_COD_MAJOR_AUDIO_VIDEO_MINOR_RFU2 0x11
637#define BT_COD_MAJOR_AUDIO_VIDEO_MINOR_GAME_TOY 0x12
638
639#define BT_HCI_OP_WRITE_CLASS_OF_DEVICE BT_OP(BT_OGF_BASEBAND, 0x0024) /* 0x0c24 */
642} __packed;
643
644#define BT_TX_POWER_LEVEL_CURRENT 0x00
645#define BT_TX_POWER_LEVEL_MAX 0x01
646#define BT_HCI_OP_READ_TX_POWER_LEVEL BT_OP(BT_OGF_BASEBAND, 0x002d) /* 0x0c2d */
650} __packed;
651
656} __packed;
657
658#define BT_HCI_LE_TX_POWER_PHY_1M 0x01
659#define BT_HCI_LE_TX_POWER_PHY_2M 0x02
660#define BT_HCI_LE_TX_POWER_PHY_CODED_S8 0x03
661#define BT_HCI_LE_TX_POWER_PHY_CODED_S2 0x04
662#define BT_HCI_OP_LE_ENH_READ_TX_POWER_LEVEL BT_OP(BT_OGF_LE, 0x0076) /* 0x2076 */
666} __packed;
667
674} __packed;
675
676#define BT_HCI_OP_LE_READ_REMOTE_TX_POWER_LEVEL BT_OP(BT_OGF_LE, 0x0077) /* 0x2077 */
677
678#define BT_HCI_LE_TX_POWER_REPORT_DISABLE 0x00
679#define BT_HCI_LE_TX_POWER_REPORT_ENABLE 0x01
680#define BT_HCI_OP_LE_SET_TX_POWER_REPORT_ENABLE BT_OP(BT_OGF_LE, 0x007A) /* 0x207A */
685} __packed;
686
694} __packed;
695
699} __packed;
700
701#define BT_HCI_OP_LE_SET_PATH_LOSS_REPORTING_PARAMETERS BT_OP(BT_OGF_LE, 0x0078) /* 0x2078 */
702
703#define BT_HCI_LE_PATH_LOSS_REPORTING_DISABLE 0x00
704#define BT_HCI_LE_PATH_LOSS_REPORTING_ENABLE 0x01
705#define BT_HCI_OP_LE_SET_PATH_LOSS_REPORTING_ENABLE BT_OP(BT_OGF_LE, 0x0079) /* 0x2079 */
706
707#define BT_HCI_CTL_TO_HOST_FLOW_DISABLE 0x00
708#define BT_HCI_CTL_TO_HOST_FLOW_ENABLE 0x01
709#define BT_HCI_OP_SET_CTL_TO_HOST_FLOW BT_OP(BT_OGF_BASEBAND, 0x0031) /* 0x0c31 */
712} __packed;
713
714#define BT_HCI_OP_HOST_BUFFER_SIZE BT_OP(BT_OGF_BASEBAND, 0x0033) /* 0x0c33 */
720} __packed;
721
725} __packed;
726
727#define BT_HCI_OP_HOST_NUM_COMPLETED_PACKETS BT_OP(BT_OGF_BASEBAND, 0x0035) /* 0x0c35 */
731} __packed;
732
733#define BT_HCI_OP_WRITE_INQUIRY_MODE BT_OP(BT_OGF_BASEBAND, 0x0045) /* 0x0c45 */
736} __packed;
737
738#define BT_HCI_OP_WRITE_SSP_MODE BT_OP(BT_OGF_BASEBAND, 0x0056) /* 0x0c56 */
741} __packed;
742
743#define BT_HCI_OP_SET_EVENT_MASK_PAGE_2 BT_OP(BT_OGF_BASEBAND, 0x0063) /* 0x0c63 */
746} __packed;
747
748#define BT_HCI_OP_LE_WRITE_LE_HOST_SUPP BT_OP(BT_OGF_BASEBAND, 0x006d) /* 0x0c6d */
752} __packed;
753
754#define BT_HCI_OP_WRITE_SC_HOST_SUPP BT_OP(BT_OGF_BASEBAND, 0x007a) /* 0x0c7a */
757} __packed;
758
759#define BT_HCI_OP_READ_AUTH_PAYLOAD_TIMEOUT BT_OP(BT_OGF_BASEBAND, 0x007b) /* 0x0c7b */
762} __packed;
763
768} __packed;
769
770#define BT_HCI_OP_WRITE_AUTH_PAYLOAD_TIMEOUT BT_OP(BT_OGF_BASEBAND, 0x007c) /* 0x0c7c */
774} __packed;
775
779} __packed;
780
781#define BT_HCI_OP_CONFIGURE_DATA_PATH BT_OP(BT_OGF_BASEBAND, 0x0083) /* 0x0c83 */
787} __packed;
788
791} __packed;
792
793/* HCI version from Assigned Numbers */
794#define BT_HCI_VERSION_1_0B 0
795#define BT_HCI_VERSION_1_1 1
796#define BT_HCI_VERSION_1_2 2
797#define BT_HCI_VERSION_2_0 3
798#define BT_HCI_VERSION_2_1 4
799#define BT_HCI_VERSION_3_0 5
800#define BT_HCI_VERSION_4_0 6
801#define BT_HCI_VERSION_4_1 7
802#define BT_HCI_VERSION_4_2 8
803#define BT_HCI_VERSION_5_0 9
804#define BT_HCI_VERSION_5_1 10
805#define BT_HCI_VERSION_5_2 11
806#define BT_HCI_VERSION_5_3 12
807#define BT_HCI_VERSION_5_4 13
808
809#define BT_HCI_OP_READ_LOCAL_VERSION_INFO BT_OP(BT_OGF_INFO, 0x0001) /* 0x1001 */
817} __packed;
818
819#define BT_HCI_OP_READ_SUPPORTED_COMMANDS BT_OP(BT_OGF_INFO, 0x0002) /* 0x1002 */
823} __packed;
824
825#define BT_HCI_OP_READ_LOCAL_EXT_FEATURES BT_OP(BT_OGF_INFO, 0x0004) /* 0x1004 */
828};
834} __packed;
835
836#define BT_HCI_OP_READ_LOCAL_FEATURES BT_OP(BT_OGF_INFO, 0x0003) /* 0x1003 */
840} __packed;
841
842#define BT_HCI_OP_READ_BUFFER_SIZE BT_OP(BT_OGF_INFO, 0x0005) /* 0x1005 */
849} __packed;
850
851#define BT_HCI_OP_READ_BD_ADDR BT_OP(BT_OGF_INFO, 0x0009) /* 0x1009 */
855} __packed;
856
857/* logic transport type bits as returned when reading supported codecs */
858#define BT_HCI_CODEC_TRANSPORT_MASK_BREDR_ACL BIT(0)
859#define BT_HCI_CODEC_TRANSPORT_MASK_BREDR_SCO BIT(1)
860#define BT_HCI_CODEC_TRANSPORT_MASK_LE_CIS BIT(2)
861#define BT_HCI_CODEC_TRANSPORT_MASK_LE_BIS BIT(3)
862
863/* logic transport types for reading codec capabilities and controller delays */
864#define BT_HCI_LOGICAL_TRANSPORT_TYPE_BREDR_ACL 0x00
865#define BT_HCI_LOGICAL_TRANSPORT_TYPE_BREDR_SCO 0x01
866#define BT_HCI_LOGICAL_TRANSPORT_TYPE_LE_CIS 0x02
867#define BT_HCI_LOGICAL_TRANSPORT_TYPE_LE_BIS 0x03
868
869/* audio datapath directions */
870#define BT_HCI_DATAPATH_DIR_HOST_TO_CTLR 0x00
871#define BT_HCI_DATAPATH_DIR_CTLR_TO_HOST 0x01
872
873/* audio datapath IDs */
874#define BT_HCI_DATAPATH_ID_HCI 0x00
875#define BT_HCI_DATAPATH_ID_VS 0x01
876#define BT_HCI_DATAPATH_ID_VS_END 0xfe
877
878/* coding format assigned numbers, used for codec IDs */
879#define BT_HCI_CODING_FORMAT_ULAW_LOG 0x00
880#define BT_HCI_CODING_FORMAT_ALAW_LOG 0x01
881#define BT_HCI_CODING_FORMAT_CVSD 0x02
882#define BT_HCI_CODING_FORMAT_TRANSPARENT 0x03
883#define BT_HCI_CODING_FORMAT_LINEAR_PCM 0x04
884#define BT_HCI_CODING_FORMAT_MSBC 0x05
885#define BT_HCI_CODING_FORMAT_LC3 0x06
886#define BT_HCI_CODING_FORMAT_G729A 0x07
887#define BT_HCI_CODING_FORMAT_VS 0xFF
888
889
890#define BT_HCI_OP_READ_CODECS BT_OP(BT_OGF_INFO, 0x000b) /* 0x100b */
893} __packed;
897} __packed;
901} __packed;
905} __packed;
908 /* other fields filled in dynamically */
910} __packed;
911
912#define BT_HCI_OP_READ_CODECS_V2 BT_OP(BT_OGF_INFO, 0x000d) /* 0x100d */
915 uint8_t transports; /* bitmap */
916} __packed;
920} __packed;
924 uint8_t transports; /* bitmap */
925} __packed;
929} __packed;
932 /* other fields filled in dynamically */
934} __packed;
935
940} __packed;
941
942#define BT_HCI_OP_READ_CODEC_CAPABILITIES BT_OP(BT_OGF_INFO, 0x000e) /* 0x100e */
947} __packed;
951} __packed;
955 /* other fields filled in dynamically */
957} __packed;
958
959#define BT_HCI_OP_READ_CTLR_DELAY BT_OP(BT_OGF_INFO, 0x000f) /* 0x100f */
966} __packed;
971} __packed;
972
973#define BT_HCI_OP_READ_RSSI BT_OP(BT_OGF_STATUS, 0x0005) /* 0x1405 */
976} __packed;
981} __packed;
982
983#define BT_HCI_ENCRYPTION_KEY_SIZE_MIN 7
984#define BT_HCI_ENCRYPTION_KEY_SIZE_MAX 16
985
986#define BT_HCI_OP_READ_ENCRYPTION_KEY_SIZE BT_OP(BT_OGF_STATUS, 0x0008) /* 0x1408 */
989} __packed;
994} __packed;
995
996/* BLE */
997
998#define BT_HCI_OP_LE_SET_EVENT_MASK BT_OP(BT_OGF_LE, 0x0001) /* 0x2001 */
1001} __packed;
1002
1003#define BT_HCI_OP_LE_READ_BUFFER_SIZE BT_OP(BT_OGF_LE, 0x0002) /* 0x2002 */
1008} __packed;
1009
1010#define BT_HCI_OP_LE_READ_LOCAL_FEATURES BT_OP(BT_OGF_LE, 0x0003) /* 0x2003 */
1014} __packed;
1015
1016#define BT_HCI_OP_LE_SET_RANDOM_ADDRESS BT_OP(BT_OGF_LE, 0x0005) /* 0x2005 */
1019} __packed;
1020
1021#define BT_HCI_ADV_IND 0x00
1022#define BT_HCI_ADV_DIRECT_IND 0x01
1023#define BT_HCI_ADV_SCAN_IND 0x02
1024#define BT_HCI_ADV_NONCONN_IND 0x03
1025#define BT_HCI_ADV_DIRECT_IND_LOW_DUTY 0x04
1026#define BT_HCI_ADV_SCAN_RSP 0x04
1027
1028#define BT_LE_ADV_INTERVAL_MIN 0x0020
1029#define BT_LE_ADV_INTERVAL_MAX 0x4000
1030#define BT_LE_ADV_INTERVAL_DEFAULT 0x0800
1031
1032#define BT_LE_ADV_CHAN_MAP_CHAN_37 0x01
1033#define BT_LE_ADV_CHAN_MAP_CHAN_38 0x02
1034#define BT_LE_ADV_CHAN_MAP_CHAN_39 0x04
1035#define BT_LE_ADV_CHAN_MAP_ALL 0x07
1036
1037#define BT_LE_ADV_FP_NO_FILTER 0x00
1038#define BT_LE_ADV_FP_FILTER_SCAN_REQ 0x01
1039#define BT_LE_ADV_FP_FILTER_CONN_IND 0x02
1040#define BT_LE_ADV_FP_FILTER_BOTH 0x03
1041
1042#define BT_HCI_OP_LE_SET_ADV_PARAM BT_OP(BT_OGF_LE, 0x0006) /* 0x2006 */
1051} __packed;
1052
1053#define BT_HCI_OP_LE_READ_ADV_CHAN_TX_POWER BT_OP(BT_OGF_LE, 0x0007) /* 0x2007 */
1057} __packed;
1058
1059#define BT_HCI_OP_LE_SET_ADV_DATA BT_OP(BT_OGF_LE, 0x0008) /* 0x2008 */
1063} __packed;
1064
1065#define BT_HCI_OP_LE_SET_SCAN_RSP_DATA BT_OP(BT_OGF_LE, 0x0009) /* 0x2009 */
1069} __packed;
1070
1071#define BT_HCI_LE_ADV_DISABLE 0x00
1072#define BT_HCI_LE_ADV_ENABLE 0x01
1073
1074#define BT_HCI_OP_LE_SET_ADV_ENABLE BT_OP(BT_OGF_LE, 0x000a) /* 0x200a */
1077} __packed;
1078
1079/* Scan types */
1080#define BT_HCI_OP_LE_SET_SCAN_PARAM BT_OP(BT_OGF_LE, 0x000b) /* 0x200b */
1081#define BT_HCI_LE_SCAN_PASSIVE 0x00
1082#define BT_HCI_LE_SCAN_ACTIVE 0x01
1083
1084#define BT_HCI_LE_SCAN_FP_BASIC_NO_FILTER 0x00
1085#define BT_HCI_LE_SCAN_FP_BASIC_FILTER 0x01
1086#define BT_HCI_LE_SCAN_FP_EXT_NO_FILTER 0x02
1087#define BT_HCI_LE_SCAN_FP_EXT_FILTER 0x03
1088
1095} __packed;
1096
1097#define BT_HCI_OP_LE_SET_SCAN_ENABLE BT_OP(BT_OGF_LE, 0x000c) /* 0x200c */
1098
1099#define BT_HCI_LE_SCAN_DISABLE 0x00
1100#define BT_HCI_LE_SCAN_ENABLE 0x01
1101
1102#define BT_HCI_LE_SCAN_FILTER_DUP_DISABLE 0x00
1103#define BT_HCI_LE_SCAN_FILTER_DUP_ENABLE 0x01
1104
1108} __packed;
1109
1110#define BT_HCI_OP_LE_CREATE_CONN BT_OP(BT_OGF_LE, 0x000d) /* 0x200d */
1111
1112#define BT_HCI_LE_CREATE_CONN_FP_NO_FILTER 0x00
1113#define BT_HCI_LE_CREATE_CONN_FP_FILTER 0x01
1114
1127} __packed;
1128
1129#define BT_HCI_OP_LE_CREATE_CONN_CANCEL BT_OP(BT_OGF_LE, 0x000e) /* 0x200e */
1130
1131#define BT_HCI_OP_LE_READ_FAL_SIZE BT_OP(BT_OGF_LE, 0x000f) /* 0x200f */
1135} __packed;
1136
1137#define BT_HCI_OP_LE_CLEAR_FAL BT_OP(BT_OGF_LE, 0x0010) /* 0x2010 */
1138
1139#define BT_HCI_OP_LE_ADD_DEV_TO_FAL BT_OP(BT_OGF_LE, 0x0011) /* 0x2011 */
1142} __packed;
1143
1144#define BT_HCI_OP_LE_REM_DEV_FROM_FAL BT_OP(BT_OGF_LE, 0x0012) /* 0x2012 */
1147} __packed;
1148
1149#define BT_HCI_OP_LE_CONN_UPDATE BT_OP(BT_OGF_LE, 0x0013) /* 0x2013 */
1158} __packed;
1159
1160#define BT_HCI_OP_LE_SET_HOST_CHAN_CLASSIF BT_OP(BT_OGF_LE, 0x0014) /* 0x2014 */
1163} __packed;
1164
1165#define BT_HCI_OP_LE_READ_CHAN_MAP BT_OP(BT_OGF_LE, 0x0015) /* 0x2015 */
1168} __packed;
1173} __packed;
1174
1175#define BT_HCI_OP_LE_READ_REMOTE_FEATURES BT_OP(BT_OGF_LE, 0x0016) /* 0x2016 */
1178} __packed;
1179
1180#define BT_HCI_OP_LE_ENCRYPT BT_OP(BT_OGF_LE, 0x0017) /* 0x2017 */
1184} __packed;
1188} __packed;
1189
1190#define BT_HCI_OP_LE_RAND BT_OP(BT_OGF_LE, 0x0018) /* 0x2018 */
1194} __packed;
1195
1196#define BT_HCI_OP_LE_START_ENCRYPTION BT_OP(BT_OGF_LE, 0x0019) /* 0x2019 */
1202} __packed;
1203
1204#define BT_HCI_OP_LE_LTK_REQ_REPLY BT_OP(BT_OGF_LE, 0x001a) /* 0x201a */
1208} __packed;
1212} __packed;
1213
1214#define BT_HCI_OP_LE_LTK_REQ_NEG_REPLY BT_OP(BT_OGF_LE, 0x001b) /* 0x201b */
1217} __packed;
1221} __packed;
1222
1223#define BT_HCI_OP_LE_READ_SUPP_STATES BT_OP(BT_OGF_LE, 0x001c) /* 0x201c */
1227} __packed;
1228
1229#define BT_HCI_OP_LE_RX_TEST BT_OP(BT_OGF_LE, 0x001d) /* 0x201d */
1232} __packed;
1233
1234#define BT_HCI_TEST_PKT_PAYLOAD_PRBS9 0x00
1235#define BT_HCI_TEST_PKT_PAYLOAD_11110000 0x01
1236#define BT_HCI_TEST_PKT_PAYLOAD_10101010 0x02
1237#define BT_HCI_TEST_PKT_PAYLOAD_PRBS15 0x03
1238#define BT_HCI_TEST_PKT_PAYLOAD_11111111 0x04
1239#define BT_HCI_TEST_PKT_PAYLOAD_00000000 0x05
1240#define BT_HCI_TEST_PKT_PAYLOAD_00001111 0x06
1241#define BT_HCI_TEST_PKT_PAYLOAD_01010101 0x07
1242
1243#define BT_HCI_OP_LE_TX_TEST BT_OP(BT_OGF_LE, 0x001e) /* 0x201e */
1248} __packed;
1249
1250#define BT_HCI_OP_LE_TEST_END BT_OP(BT_OGF_LE, 0x001f) /* 0x201f */
1254} __packed;
1255
1256#define BT_HCI_OP_LE_CONN_PARAM_REQ_REPLY BT_OP(BT_OGF_LE, 0x0020) /* 0x2020 */
1265} __packed;
1269} __packed;
1270
1271#define BT_HCI_OP_LE_CONN_PARAM_REQ_NEG_REPLY BT_OP(BT_OGF_LE, 0x0021) /* 0x2021 */
1275} __packed;
1279} __packed;
1280
1281#define BT_HCI_OP_LE_SET_DATA_LEN BT_OP(BT_OGF_LE, 0x0022) /* 0x2022 */
1286} __packed;
1290} __packed;
1291
1292#define BT_HCI_OP_LE_READ_DEFAULT_DATA_LEN BT_OP(BT_OGF_LE, 0x0023) /* 0x2023 */
1297} __packed;
1298
1299#define BT_HCI_OP_LE_WRITE_DEFAULT_DATA_LEN BT_OP(BT_OGF_LE, 0x0024) /* 0x2024 */
1303} __packed;
1304
1305#define BT_HCI_OP_LE_P256_PUBLIC_KEY BT_OP(BT_OGF_LE, 0x0025) /* 0x2025 */
1306
1307#define BT_HCI_OP_LE_GENERATE_DHKEY BT_OP(BT_OGF_LE, 0x0026) /* 0x2026 */
1310} __packed;
1311
1312
1313#define BT_HCI_OP_LE_GENERATE_DHKEY_V2 BT_OP(BT_OGF_LE, 0x005e) /* 0x205e */
1314
1315#define BT_HCI_LE_KEY_TYPE_GENERATED 0x00
1316#define BT_HCI_LE_KEY_TYPE_DEBUG 0x01
1317
1321} __packed;
1322
1323
1324#define BT_HCI_OP_LE_ADD_DEV_TO_RL BT_OP(BT_OGF_LE, 0x0027) /* 0x2027 */
1329} __packed;
1330
1331#define BT_HCI_OP_LE_REM_DEV_FROM_RL BT_OP(BT_OGF_LE, 0x0028) /* 0x2028 */
1334} __packed;
1335
1336#define BT_HCI_OP_LE_CLEAR_RL BT_OP(BT_OGF_LE, 0x0029) /* 0x2029 */
1337
1338#define BT_HCI_OP_LE_READ_RL_SIZE BT_OP(BT_OGF_LE, 0x002a) /* 0x202a */
1342} __packed;
1343
1344#define BT_HCI_OP_LE_READ_PEER_RPA BT_OP(BT_OGF_LE, 0x002b) /* 0x202b */
1347} __packed;
1351} __packed;
1352
1353#define BT_HCI_OP_LE_READ_LOCAL_RPA BT_OP(BT_OGF_LE, 0x002c) /* 0x202c */
1356} __packed;
1360} __packed;
1361
1362#define BT_HCI_ADDR_RES_DISABLE 0x00
1363#define BT_HCI_ADDR_RES_ENABLE 0x01
1364
1365#define BT_HCI_OP_LE_SET_ADDR_RES_ENABLE BT_OP(BT_OGF_LE, 0x002d) /* 0x202d */
1368} __packed;
1369
1370#define BT_HCI_OP_LE_SET_RPA_TIMEOUT BT_OP(BT_OGF_LE, 0x002e) /* 0x202e */
1373} __packed;
1374
1375/* All limits according to BT Core spec 5.4 [Vol 4, Part E, 7.8.46] */
1376#define BT_HCI_LE_MAX_TX_OCTETS_MIN 0x001B
1377#define BT_HCI_LE_MAX_TX_OCTETS_MAX 0x00FB
1378#define BT_HCI_LE_MAX_RX_OCTETS_MIN 0x001B
1379#define BT_HCI_LE_MAX_RX_OCTETS_MAX 0x00FB
1380
1381#define BT_HCI_LE_MAX_TX_TIME_MIN 0x0148
1382#define BT_HCI_LE_MAX_TX_TIME_MAX 0x4290
1383#define BT_HCI_LE_MAX_RX_TIME_MIN 0x0148
1384#define BT_HCI_LE_MAX_RX_TIME_MAX 0x4290
1385
1386#define BT_HCI_OP_LE_READ_MAX_DATA_LEN BT_OP(BT_OGF_LE, 0x002f) /* 0x202f */
1393} __packed;
1394
1395#define BT_HCI_LE_PHY_1M 0x01
1396#define BT_HCI_LE_PHY_2M 0x02
1397#define BT_HCI_LE_PHY_CODED 0x03
1398
1399#define BT_HCI_OP_LE_READ_PHY BT_OP(BT_OGF_LE, 0x0030) /* 0x2030 */
1402} __packed;
1408} __packed;
1409
1410#define BT_HCI_LE_PHY_TX_ANY BIT(0)
1411#define BT_HCI_LE_PHY_RX_ANY BIT(1)
1412
1413#define BT_HCI_LE_PHY_PREFER_1M BIT(0)
1414#define BT_HCI_LE_PHY_PREFER_2M BIT(1)
1415#define BT_HCI_LE_PHY_PREFER_CODED BIT(2)
1416
1417#define BT_HCI_OP_LE_SET_DEFAULT_PHY BT_OP(BT_OGF_LE, 0x0031) /* 0x2031 */
1422} __packed;
1423
1424#define BT_HCI_LE_PHY_CODED_ANY 0x00
1425#define BT_HCI_LE_PHY_CODED_S2 0x01
1426#define BT_HCI_LE_PHY_CODED_S8 0x02
1427
1428#define BT_HCI_OP_LE_SET_PHY BT_OP(BT_OGF_LE, 0x0032) /* 0x2032 */
1435} __packed;
1436
1437#define BT_HCI_LE_MOD_INDEX_STANDARD 0x00
1438#define BT_HCI_LE_MOD_INDEX_STABLE 0x01
1439
1440#define BT_HCI_LE_RX_PHY_1M 0x01
1441#define BT_HCI_LE_RX_PHY_2M 0x02
1442#define BT_HCI_LE_RX_PHY_CODED 0x03
1443
1444#define BT_HCI_OP_LE_ENH_RX_TEST BT_OP(BT_OGF_LE, 0x0033) /* 0x2033 */
1449} __packed;
1450
1451#define BT_HCI_LE_TX_PHY_1M 0x01
1452#define BT_HCI_LE_TX_PHY_2M 0x02
1453#define BT_HCI_LE_TX_PHY_CODED_S8 0x03
1454#define BT_HCI_LE_TX_PHY_CODED_S2 0x04
1455
1456#define BT_HCI_OP_LE_ENH_TX_TEST BT_OP(BT_OGF_LE, 0x0034) /* 0x2034 */
1462} __packed;
1463
1464#define BT_HCI_OP_LE_SET_ADV_SET_RANDOM_ADDR BT_OP(BT_OGF_LE, 0x0035) /* 0x2035 */
1468} __packed;
1469
1470#define BT_HCI_LE_ADV_PROP_CONN BIT(0)
1471#define BT_HCI_LE_ADV_PROP_SCAN BIT(1)
1472#define BT_HCI_LE_ADV_PROP_DIRECT BIT(2)
1473#define BT_HCI_LE_ADV_PROP_HI_DC_CONN BIT(3)
1474#define BT_HCI_LE_ADV_PROP_LEGACY BIT(4)
1475#define BT_HCI_LE_ADV_PROP_ANON BIT(5)
1476#define BT_HCI_LE_ADV_PROP_TX_POWER BIT(6)
1477
1478#define BT_HCI_LE_PRIM_ADV_INTERVAL_MIN 0x000020
1479#define BT_HCI_LE_PRIM_ADV_INTERVAL_MAX 0xFFFFFF
1480
1481#define BT_HCI_LE_ADV_SCAN_REQ_ENABLE 1
1482#define BT_HCI_LE_ADV_SCAN_REQ_DISABLE 0
1483
1484#define BT_HCI_LE_ADV_TX_POWER_NO_PREF 0x7F
1485
1486#define BT_HCI_LE_ADV_HANDLE_MAX 0xEF
1487
1488#define BT_HCI_LE_EXT_ADV_SID_INVALID 0xFF
1489
1490#define BT_HCI_OP_LE_SET_EXT_ADV_PARAM BT_OP(BT_OGF_LE, 0x0036) /* 0x2036 */
1506} __packed;
1510} __packed;
1511
1512#define BT_HCI_LE_EXT_ADV_OP_INTERM_FRAG 0x00
1513#define BT_HCI_LE_EXT_ADV_OP_FIRST_FRAG 0x01
1514#define BT_HCI_LE_EXT_ADV_OP_LAST_FRAG 0x02
1515#define BT_HCI_LE_EXT_ADV_OP_COMPLETE_DATA 0x03
1516#define BT_HCI_LE_EXT_ADV_OP_UNCHANGED_DATA 0x04
1517
1518#define BT_HCI_LE_EXT_ADV_FRAG_ENABLED 0x00
1519#define BT_HCI_LE_EXT_ADV_FRAG_DISABLED 0x01
1520
1521#define BT_HCI_LE_EXT_ADV_FRAG_MAX_LEN 251
1522
1523#define BT_HCI_OP_LE_SET_EXT_ADV_DATA BT_OP(BT_OGF_LE, 0x0037) /* 0x2037 */
1530} __packed;
1531
1532#define BT_HCI_OP_LE_SET_EXT_SCAN_RSP_DATA BT_OP(BT_OGF_LE, 0x0038) /* 0x2038 */
1539} __packed;
1540
1541#define BT_HCI_OP_LE_SET_EXT_ADV_ENABLE BT_OP(BT_OGF_LE, 0x0039) /* 0x2039 */
1546} __packed;
1547
1552} __packed;
1553
1554#define BT_HCI_OP_LE_READ_MAX_ADV_DATA_LEN BT_OP(BT_OGF_LE, 0x003a) /* 0x203a */
1558} __packed;
1559
1560#define BT_HCI_OP_LE_READ_NUM_ADV_SETS BT_OP(BT_OGF_LE, 0x003b) /* 0x203b */
1564} __packed;
1565
1566#define BT_HCI_OP_LE_REMOVE_ADV_SET BT_OP(BT_OGF_LE, 0x003c) /* 0x203c */
1569} __packed;
1570
1571#define BT_HCI_OP_CLEAR_ADV_SETS BT_OP(BT_OGF_LE, 0x003d) /* 0x203d */
1572
1573#define BT_HCI_LE_PER_ADV_INTERVAL_MIN 0x0006
1574#define BT_HCI_LE_PER_ADV_INTERVAL_MAX 0xFFFF
1575
1576#define BT_HCI_OP_LE_SET_PER_ADV_PARAM BT_OP(BT_OGF_LE, 0x003e) /* 0x203e */
1582} __packed;
1583
1584#define BT_HCI_LE_PER_ADV_OP_INTERM_FRAG 0x00
1585#define BT_HCI_LE_PER_ADV_OP_FIRST_FRAG 0x01
1586#define BT_HCI_LE_PER_ADV_OP_LAST_FRAG 0x02
1587#define BT_HCI_LE_PER_ADV_OP_COMPLETE_DATA 0x03
1588
1589#define BT_HCI_LE_PER_ADV_FRAG_MAX_LEN 252
1590
1591#define BT_HCI_OP_LE_SET_PER_ADV_DATA BT_OP(BT_OGF_LE, 0x003f) /* 0x203f */
1597} __packed;
1598
1599#define BT_HCI_LE_SET_PER_ADV_ENABLE_ENABLE BIT(0)
1600#define BT_HCI_LE_SET_PER_ADV_ENABLE_ADI BIT(1)
1601
1602#define BT_HCI_OP_LE_SET_PER_ADV_ENABLE BT_OP(BT_OGF_LE, 0x0040) /* 0x2040 */
1606} __packed;
1607
1608#define BT_HCI_OP_LE_SET_EXT_SCAN_PARAM BT_OP(BT_OGF_LE, 0x0041) /* 0x2041 */
1613} __packed;
1614
1615#define BT_HCI_LE_EXT_SCAN_PHY_1M BIT(0)
1616#define BT_HCI_LE_EXT_SCAN_PHY_2M BIT(1)
1617#define BT_HCI_LE_EXT_SCAN_PHY_CODED BIT(2)
1618
1624} __packed;
1625
1626/* Extends BT_HCI_LE_SCAN_FILTER_DUP */
1627#define BT_HCI_LE_EXT_SCAN_FILTER_DUP_ENABLE_RESET 0x02
1628
1629#define BT_HCI_OP_LE_SET_EXT_SCAN_ENABLE BT_OP(BT_OGF_LE, 0x0042) /* 0x2042 */
1635} __packed;
1636
1637#define BT_HCI_OP_LE_EXT_CREATE_CONN BT_OP(BT_OGF_LE, 0x0043) /* 0x2043 */
1638#define BT_HCI_OP_LE_EXT_CREATE_CONN_V2 BT_OP(BT_OGF_LE, 0x0085) /* 0x2085 */
1648} __packed;
1649
1656} __packed;
1657
1666} __packed;
1667
1668#define BT_HCI_OP_LE_SET_PER_ADV_SUBEVENT_DATA BT_OP(BT_OGF_LE, 0x0082) /* 0x2082 */
1675} __packed;
1676
1681} __packed;
1682
1683
1684#define BT_HCI_OP_LE_SET_PER_ADV_RESPONSE_DATA BT_OP(BT_OGF_LE, 0x0083) /* 0x2083 */
1693} __packed;
1694
1695#define BT_HCI_OP_LE_SET_PER_ADV_SYNC_SUBEVENT BT_OP(BT_OGF_LE, 0x0084) /* 0x2084 */
1701} __packed;
1702
1703
1704#define BT_HCI_OP_LE_SET_PER_ADV_PARAM_V2 BT_OP(BT_OGF_LE, 0x0086) /* 0x2086 */
1715} __packed;
1716
1717
1718#define BT_HCI_LE_PER_ADV_CREATE_SYNC_FP_USE_LIST BIT(0)
1719#define BT_HCI_LE_PER_ADV_CREATE_SYNC_FP_REPORTS_DISABLED BIT(1)
1720#define BT_HCI_LE_PER_ADV_CREATE_SYNC_FP_FILTER_DUPLICATE BIT(2)
1721
1722#define BT_HCI_LE_PER_ADV_CREATE_SYNC_CTE_TYPE_NO_FILTERING 0
1723#define BT_HCI_LE_PER_ADV_CREATE_SYNC_CTE_TYPE_NO_AOA BIT(0)
1724#define BT_HCI_LE_PER_ADV_CREATE_SYNC_CTE_TYPE_NO_AOD_1US BIT(1)
1725#define BT_HCI_LE_PER_ADV_CREATE_SYNC_CTE_TYPE_NO_AOD_2US BIT(2)
1726#define BT_HCI_LE_PER_ADV_CREATE_SYNC_CTE_TYPE_NO_CTE BIT(3)
1727#define BT_HCI_LE_PER_ADV_CREATE_SYNC_CTE_TYPE_ONLY_CTE BIT(4)
1728/* Constants to check correctness of CTE type */
1729#define BT_HCI_LE_PER_ADV_CREATE_SYNC_CTE_TYPE_ALLOWED_BITS 5
1730#define BT_HCI_LE_PER_ADV_CREATE_SYNC_CTE_TYPE_INVALID_VALUE \
1731 (~BIT_MASK(BT_HCI_LE_PER_ADV_CREATE_SYNC_CTE_TYPE_ALLOWED_BITS))
1732
1733#define BT_HCI_OP_LE_PER_ADV_CREATE_SYNC BT_OP(BT_OGF_LE, 0x0044) /* 0x2044 */
1741} __packed;
1742
1743#define BT_HCI_OP_LE_PER_ADV_CREATE_SYNC_CANCEL BT_OP(BT_OGF_LE, 0x0045) /* 0x2045 */
1744
1745#define BT_HCI_OP_LE_PER_ADV_TERMINATE_SYNC BT_OP(BT_OGF_LE, 0x0046) /* 0x2046 */
1748} __packed;
1749
1750#define BT_HCI_OP_LE_ADD_DEV_TO_PER_ADV_LIST BT_OP(BT_OGF_LE, 0x0047) /* 0x2047 */
1754} __packed;
1755
1756#define BT_HCI_OP_LE_REM_DEV_FROM_PER_ADV_LIST BT_OP(BT_OGF_LE, 0x0048) /* 0x2048 */
1760} __packed;
1761
1762#define BT_HCI_OP_LE_CLEAR_PER_ADV_LIST BT_OP(BT_OGF_LE, 0x0049) /* 0x2049 */
1763
1764#define BT_HCI_OP_LE_READ_PER_ADV_LIST_SIZE BT_OP(BT_OGF_LE, 0x004a) /* 0x204a */
1768} __packed;
1769
1770#define BT_HCI_OP_LE_READ_TX_POWER BT_OP(BT_OGF_LE, 0x004b) /* 0x204b */
1775} __packed;
1776
1777#define BT_HCI_OP_LE_READ_RF_PATH_COMP BT_OP(BT_OGF_LE, 0x004c) /* 0x204c */
1782} __packed;
1783
1784#define BT_HCI_OP_LE_WRITE_RF_PATH_COMP BT_OP(BT_OGF_LE, 0x004d) /* 0x204d */
1788} __packed;
1789
1790#define BT_HCI_LE_PRIVACY_MODE_NETWORK 0x00
1791#define BT_HCI_LE_PRIVACY_MODE_DEVICE 0x01
1792
1793#define BT_HCI_OP_LE_SET_PRIVACY_MODE BT_OP(BT_OGF_LE, 0x004e) /* 0x204e */
1797} __packed;
1798
1799#define BT_HCI_LE_TEST_CTE_DISABLED 0x00
1800#define BT_HCI_LE_TEST_CTE_TYPE_ANY 0x00
1801#define BT_HCI_LE_TEST_SLOT_DURATION_ANY 0x00
1802#define BT_HCI_LE_TEST_SWITCH_PATTERN_LEN_ANY 0x00
1803
1804#define BT_HCI_OP_LE_RX_TEST_V3 BT_OP(BT_OGF_LE, 0x004f) /* 0x204f */
1814} __packed;
1815
1816#define BT_HCI_OP_LE_TX_TEST_V3 BT_OP(BT_OGF_LE, 0x0050) /* 0x2050 */
1817
1827} __packed;
1828
1829/* Min and max Constant Tone Extension length in 8us units */
1830#define BT_HCI_LE_CTE_LEN_MIN 0x2
1831#define BT_HCI_LE_CTE_LEN_MAX 0x14
1832
1833#define BT_HCI_LE_AOA_CTE 0x0
1834#define BT_HCI_LE_AOD_CTE_1US 0x1
1835#define BT_HCI_LE_AOD_CTE_2US 0x2
1836#define BT_HCI_LE_NO_CTE 0xFF
1837
1838#define BT_HCI_LE_CTE_COUNT_MIN 0x1
1839#define BT_HCI_LE_CTE_COUNT_MAX 0x10
1840
1841#define BT_HCI_OP_LE_SET_CL_CTE_TX_PARAMS BT_OP(BT_OGF_LE, 0x0051) /* 0x2051 */
1849} __packed;
1850
1851#define BT_HCI_OP_LE_SET_CL_CTE_TX_ENABLE BT_OP(BT_OGF_LE, 0x0052) /* 0x2052 */
1855} __packed;
1856
1857#define BT_HCI_LE_ANTENNA_SWITCHING_SLOT_1US 0x1
1858#define BT_HCI_LE_ANTENNA_SWITCHING_SLOT_2US 0x2
1859
1860#define BT_HCI_LE_SAMPLE_CTE_ALL 0x0
1861#define BT_HCI_LE_SAMPLE_CTE_COUNT_MIN 0x1
1862#define BT_HCI_LE_SAMPLE_CTE_COUNT_MAX 0x10
1863
1864#define BT_HCI_OP_LE_SET_CL_CTE_SAMPLING_ENABLE BT_OP(BT_OGF_LE, 0x0053) /* 0x2053 */
1872} __packed;
1873
1877} __packed;
1878
1879#define BT_HCI_OP_LE_SET_CONN_CTE_RX_PARAMS BT_OP(BT_OGF_LE, 0x0054) /* 0x2054 */
1886} __packed;
1887
1891} __packed;
1892
1893#define BT_HCI_LE_AOA_CTE_RSP BIT(0)
1894#define BT_HCI_LE_AOD_CTE_RSP_1US BIT(1)
1895#define BT_HCI_LE_AOD_CTE_RSP_2US BIT(2)
1896
1897#define BT_HCI_LE_SWITCH_PATTERN_LEN_MIN 0x2
1898#define BT_HCI_LE_SWITCH_PATTERN_LEN_MAX 0x4B
1899
1900#define BT_HCI_OP_LE_SET_CONN_CTE_TX_PARAMS BT_OP(BT_OGF_LE, 0x0055) /* 0x2055 */
1906} __packed;
1907
1911} __packed;
1912
1913/* Interval between consecutive CTE request procedure starts in number of connection events. */
1914#define BT_HCI_REQUEST_CTE_ONCE 0x0
1915#define BT_HCI_REQUEST_CTE_INTERVAL_MIN 0x1
1916#define BT_HCI_REQUEST_CTE_INTERVAL_MAX 0xFFFF
1917
1918#define BT_HCI_OP_LE_CONN_CTE_REQ_ENABLE BT_OP(BT_OGF_LE, 0x0056) /* 0x2056 */
1925} __packed;
1926
1930} __packed;
1931
1932#define BT_HCI_OP_LE_CONN_CTE_RSP_ENABLE BT_OP(BT_OGF_LE, 0x0057) /* 0x2057 */
1936} __packed;
1937
1941} __packed;
1942
1943#define BT_HCI_LE_1US_AOD_TX BIT(0)
1944#define BT_HCI_LE_1US_AOD_RX BIT(1)
1945#define BT_HCI_LE_1US_AOA_RX BIT(2)
1946
1947#define BT_HCI_LE_NUM_ANT_MIN 0x1
1948#define BT_HCI_LE_NUM_ANT_MAX 0x4B
1949
1950#define BT_HCI_LE_MAX_SWITCH_PATTERN_LEN_MIN 0x2
1951#define BT_HCI_LE_MAX_SWITCH_PATTERN_LEN_MAX 0x4B
1952
1953#define BT_HCI_LE_MAX_CTE_LEN_MIN 0x2
1954#define BT_HCI_LE_MAX_CTE_LEN_MAX 0x14
1955
1956#define BT_HCI_OP_LE_READ_ANT_INFO BT_OP(BT_OGF_LE, 0x0058) /* 0x2058 */
1963};
1964
1965#define BT_HCI_LE_SET_PER_ADV_RECV_ENABLE_ENABLE BIT(0)
1966#define BT_HCI_LE_SET_PER_ADV_RECV_ENABLE_FILTER_DUPLICATE BIT(1)
1967
1968#define BT_HCI_OP_LE_SET_PER_ADV_RECV_ENABLE BT_OP(BT_OGF_LE, 0x0059) /* 0x2059 */
1972} __packed;
1973
1974#define BT_HCI_OP_LE_PER_ADV_SYNC_TRANSFER BT_OP(BT_OGF_LE, 0x005a) /* 0x205a */
1979} __packed;
1980
1984} __packed;
1985
1986#define BT_HCI_OP_LE_PER_ADV_SET_INFO_TRANSFER BT_OP(BT_OGF_LE, 0x005b) /* 0x205b */
1991} __packed;
1992
1996} __packed;
1997
1998#define BT_HCI_LE_PAST_MODE_NO_SYNC 0x00
1999#define BT_HCI_LE_PAST_MODE_NO_REPORTS 0x01
2000#define BT_HCI_LE_PAST_MODE_SYNC 0x02
2001#define BT_HCI_LE_PAST_MODE_SYNC_FILTER_DUPLICATES 0x03
2002
2003#define BT_HCI_LE_PAST_CTE_TYPE_NO_AOA BIT(0)
2004#define BT_HCI_LE_PAST_CTE_TYPE_NO_AOD_1US BIT(1)
2005#define BT_HCI_LE_PAST_CTE_TYPE_NO_AOD_2US BIT(2)
2006#define BT_HCI_LE_PAST_CTE_TYPE_NO_CTE BIT(3)
2007#define BT_HCI_LE_PAST_CTE_TYPE_ONLY_CTE BIT(4)
2008
2009#define BT_HCI_OP_LE_PAST_PARAM BT_OP(BT_OGF_LE, 0x005c) /* 0x205c */
2016} __packed;
2017
2021} __packed;
2022
2023#define BT_HCI_OP_LE_DEFAULT_PAST_PARAM BT_OP(BT_OGF_LE, 0x005d) /* 0x205d */
2029} __packed;
2030
2033} __packed;
2034
2035#define BT_HCI_OP_LE_READ_BUFFER_SIZE_V2 BT_OP(BT_OGF_LE, 0x0060) /* 0x2060 */
2042} __packed;
2043
2044#define BT_HCI_OP_LE_READ_ISO_TX_SYNC BT_OP(BT_OGF_LE, 0x0061) /* 0x2061 */
2047} __packed;
2048
2055} __packed;
2056
2057#define BT_HCI_ISO_CIG_ID_MAX 0xFE
2058#define BT_HCI_ISO_CIS_COUNT_MAX 0x1F
2059#define BT_HCI_ISO_SDU_INTERVAL_MIN 0x0000FF
2060#define BT_HCI_ISO_SDU_INTERVAL_MAX 0x0FFFFF
2061#define BT_HCI_ISO_WORST_CASE_SCA_VALID_MASK 0x07
2062#define BT_HCI_ISO_PACKING_VALID_MASK 0x01
2063#define BT_HCI_ISO_FRAMING_VALID_MASK 0x01
2064#define BT_HCI_ISO_MAX_TRANSPORT_LATENCY_MIN 0x0005
2065#define BT_HCI_ISO_MAX_TRANSPORT_LATENCY_MAX 0x0FA0
2066#define BT_HCI_ISO_CIS_ID_VALID_MAX 0xEF
2067#define BT_HCI_ISO_MAX_SDU_VALID_MASK 0x0FFF
2068#define BT_HCI_ISO_PHY_VALID_MASK 0x07
2069#define BT_HCI_ISO_INTERVAL_MIN 0x0004
2070#define BT_HCI_ISO_INTERVAL_MAX 0x0C80
2071
2072#define BT_HCI_OP_LE_SET_CIG_PARAMS BT_OP(BT_OGF_LE, 0x0062) /* 0x2062 */
2081} __packed;
2082
2094} __packed;
2095
2101} __packed;
2102
2103#define BT_HCI_OP_LE_SET_CIG_PARAMS_TEST BT_OP(BT_OGF_LE, 0x0063) /* 0x2063 */
2115} __packed;
2116
2129} __packed;
2130
2136} __packed;
2137
2138#define BT_HCI_OP_LE_CREATE_CIS BT_OP(BT_OGF_LE, 0x0064) /* 0x2064 */
2142} __packed;
2143
2146 struct bt_hci_cis cis[0];
2147} __packed;
2148
2149#define BT_HCI_OP_LE_REMOVE_CIG BT_OP(BT_OGF_LE, 0x0065) /* 0x2065 */
2152} __packed;
2153
2157} __packed;
2158
2159#define BT_HCI_OP_LE_ACCEPT_CIS BT_OP(BT_OGF_LE, 0x0066) /* 0x2066 */
2162} __packed;
2163
2164#define BT_HCI_OP_LE_REJECT_CIS BT_OP(BT_OGF_LE, 0x0067) /* 0x2067 */
2168} __packed;
2169
2173} __packed;
2174
2175#define BT_HCI_OP_LE_CREATE_BIG BT_OP(BT_OGF_LE, 0x0068) /* 0x2068 */
2189} __packed;
2190
2191#define BT_HCI_OP_LE_CREATE_BIG_TEST BT_OP(BT_OGF_LE, 0x0069) /* 0x2069 */
2209} __packed;
2210
2211#define BT_HCI_OP_LE_TERMINATE_BIG BT_OP(BT_OGF_LE, 0x006a) /* 0x206a */
2215} __packed;
2216
2217#define BT_HCI_OP_LE_BIG_CREATE_SYNC BT_OP(BT_OGF_LE, 0x006b) /* 0x206b */
2227} __packed;
2228
2229#define BT_HCI_OP_LE_BIG_TERMINATE_SYNC BT_OP(BT_OGF_LE, 0x006c) /* 0x206c */
2232} __packed;
2233
2237} __packed;
2238
2239#define BT_HCI_OP_LE_REQ_PEER_SC BT_OP(BT_OGF_LE, 0x006d) /* 0x206d */
2242} __packed;
2243
2244#define BT_HCI_OP_LE_SETUP_ISO_PATH BT_OP(BT_OGF_LE, 0x006e) /* 0x206e */
2253} __packed;
2254
2258} __packed;
2259
2260#define BT_HCI_OP_LE_REMOVE_ISO_PATH BT_OP(BT_OGF_LE, 0x006f) /* 0x206f */
2264} __packed;
2265
2269} __packed;
2270
2271#define BT_HCI_ISO_TEST_ZERO_SIZE_SDU 0
2272#define BT_HCI_ISO_TEST_VARIABLE_SIZE_SDU 1
2273#define BT_HCI_ISO_TEST_MAX_SIZE_SDU 2
2274
2275#define BT_HCI_OP_LE_ISO_TRANSMIT_TEST BT_OP(BT_OGF_LE, 0x0070) /* 0x2070 */
2279} __packed;
2280
2284} __packed;
2285
2286#define BT_HCI_OP_LE_ISO_RECEIVE_TEST BT_OP(BT_OGF_LE, 0x0071) /* 0x2071 */
2290} __packed;
2291
2295} __packed;
2296
2297#define BT_HCI_OP_LE_ISO_READ_TEST_COUNTERS BT_OP(BT_OGF_LE, 0x0072) /* 0x2072 */
2300} __packed;
2301
2308} __packed;
2309
2310#define BT_HCI_OP_LE_ISO_TEST_END BT_OP(BT_OGF_LE, 0x0073) /* 0x2073 */
2313} __packed;
2314
2321} __packed;
2322
2323#define BT_HCI_OP_LE_SET_HOST_FEATURE BT_OP(BT_OGF_LE, 0x0074) /* 0x2074 */
2327} __packed;
2328
2331} __packed;
2332
2333#define BT_HCI_OP_LE_READ_ISO_LINK_QUALITY BT_OP(BT_OGF_LE, 0x0075) /* 0x2075 */
2336} __packed;
2337
2348} __packed;
2349
2350#define BT_HCI_OP_LE_TX_TEST_V4 BT_OP(BT_OGF_LE, 0x007B) /* 0x207B */
2351
2361} __packed;
2362
2363#define BT_HCI_TX_TEST_POWER_MIN -0x7F
2364#define BT_HCI_TX_TEST_POWER_MAX 0x14
2365
2366#define BT_HCI_TX_TEST_POWER_MIN_SET 0x7E
2367#define BT_HCI_TX_TEST_POWER_MAX_SET 0x7F
2368
2369/* Helper structure for Tx power parameter in the HCI Tx Test v4 command.
2370 * Previous parameter of this command is variable size so having separated structure
2371 * for this parameter helps in command parameters unpacking.
2372 */
2375} __packed;
2376
2377/* Event definitions */
2378
2379#define BT_HCI_EVT_UNKNOWN 0x00
2380#define BT_HCI_EVT_VENDOR 0xff
2381
2382#define BT_HCI_EVT_INQUIRY_COMPLETE 0x01
2385} __packed;
2386
2387#define BT_HCI_EVT_CONN_COMPLETE 0x03
2394} __packed;
2395
2396#define BT_HCI_EVT_CONN_REQUEST 0x04
2401} __packed;
2402
2403#define BT_HCI_EVT_DISCONN_COMPLETE 0x05
2408} __packed;
2409
2410#define BT_HCI_EVT_AUTH_COMPLETE 0x06
2414} __packed;
2415
2416#define BT_HCI_EVT_REMOTE_NAME_REQ_COMPLETE 0x07
2421} __packed;
2422
2423#define BT_HCI_EVT_ENCRYPT_CHANGE 0x08
2428} __packed;
2429
2430#define BT_HCI_EVT_REMOTE_FEATURES 0x0b
2435} __packed;
2436
2437#define BT_HCI_EVT_REMOTE_VERSION_INFO 0x0c
2444} __packed;
2445
2446#define BT_HCI_EVT_CMD_COMPLETE 0x0e
2450} __packed;
2451
2454} __packed;
2455
2456#define BT_HCI_EVT_CMD_STATUS 0x0f
2461} __packed;
2462
2463#define BT_HCI_EVT_HARDWARE_ERROR 0x10
2466} __packed;
2467
2468#define BT_HCI_EVT_ROLE_CHANGE 0x12
2473} __packed;
2474
2475#define BT_HCI_EVT_NUM_COMPLETED_PACKETS 0x13
2479} __packed;
2480
2481#define BT_HCI_EVT_PIN_CODE_REQ 0x16
2484} __packed;
2485
2486#define BT_HCI_EVT_LINK_KEY_REQ 0x17
2489} __packed;
2490
2491/* Link Key types */
2492#define BT_LK_COMBINATION 0x00
2493#define BT_LK_LOCAL_UNIT 0x01
2494#define BT_LK_REMOTE_UNIT 0x02
2495#define BT_LK_DEBUG_COMBINATION 0x03
2496#define BT_LK_UNAUTH_COMBINATION_P192 0x04
2497#define BT_LK_AUTH_COMBINATION_P192 0x05
2498#define BT_LK_CHANGED_COMBINATION 0x06
2499#define BT_LK_UNAUTH_COMBINATION_P256 0x07
2500#define BT_LK_AUTH_COMBINATION_P256 0x08
2501
2502#define BT_HCI_EVT_LINK_KEY_NOTIFY 0x18
2507} __packed;
2508
2509/* Overflow link types */
2510#define BT_OVERFLOW_LINK_SYNCH 0x00
2511#define BT_OVERFLOW_LINK_ACL 0x01
2512#define BT_OVERFLOW_LINK_ISO 0x02
2513
2514#define BT_HCI_EVT_DATA_BUF_OVERFLOW 0x1a
2517} __packed;
2518
2519#define BT_HCI_EVT_INQUIRY_RESULT_WITH_RSSI 0x22
2527} __packed;
2528
2529#define BT_HCI_EVT_REMOTE_EXT_FEATURES 0x23
2536} __packed;
2537
2538#define BT_HCI_EVT_LE_PER_ADV_SYNC_ESTABLISHED_V2 0x24
2551} __packed;
2552
2553#define BT_HCI_EVT_LE_PER_ADVERTISING_REPORT_V2 0x25
2564} __packed;
2565
2566#define BT_HCI_EVT_LE_PAST_RECEIVED_V2 0x26
2581} __packed;
2582
2583#define BT_HCI_EVT_LE_PER_ADV_SUBEVENT_DATA_REQUEST 0x27
2588} __packed;
2589
2590#define BT_HCI_EVT_LE_PER_ADV_RESPONSE_REPORT 0x28
2591
2600} __packed;
2601
2608} __packed;
2609
2610#define BT_HCI_EVT_LE_ENH_CONN_COMPLETE_V2 0x29
2624} __packed;
2625
2626#define BT_HCI_EVT_SYNC_CONN_COMPLETE 0x2c
2637} __packed;
2638
2639#define BT_HCI_EVT_EXTENDED_INQUIRY_RESULT 0x2f
2649} __packed;
2650
2651#define BT_HCI_EVT_ENCRYPT_KEY_REFRESH_COMPLETE 0x30
2655} __packed;
2656
2657#define BT_HCI_EVT_IO_CAPA_REQ 0x31
2660} __packed;
2661
2662#define BT_HCI_EVT_IO_CAPA_RESP 0x32
2668} __packed;
2669
2670#define BT_HCI_EVT_USER_CONFIRM_REQ 0x33
2674} __packed;
2675
2676#define BT_HCI_EVT_USER_PASSKEY_REQ 0x34
2679} __packed;
2680
2681#define BT_HCI_EVT_SSP_COMPLETE 0x36
2685} __packed;
2686
2687#define BT_HCI_EVT_USER_PASSKEY_NOTIFY 0x3b
2691} __packed;
2692
2693#define BT_HCI_EVT_LE_META_EVENT 0x3e
2696} __packed;
2697
2698#define BT_HCI_EVT_AUTH_PAYLOAD_TIMEOUT_EXP 0x57
2701} __packed;
2702
2703#define BT_HCI_ROLE_CENTRAL 0x00
2704#define BT_HCI_ROLE_PERIPHERAL 0x01
2705
2706#define BT_HCI_EVT_LE_CONN_COMPLETE 0x01
2716} __packed;
2717
2718#define BT_HCI_LE_RSSI_NOT_AVAILABLE 0x7F
2719
2720#define BT_HCI_EVT_LE_ADVERTISING_REPORT 0x02
2726} __packed;
2730} __packed;
2731
2732#define BT_HCI_EVT_LE_CONN_UPDATE_COMPLETE 0x03
2739} __packed;
2740
2741#define BT_HCI_EVT_LE_REMOTE_FEAT_COMPLETE 0x04
2746} __packed;
2747
2748#define BT_HCI_EVT_LE_LTK_REQUEST 0x05
2753} __packed;
2754
2755#define BT_HCI_EVT_LE_CONN_PARAM_REQ 0x06
2762} __packed;
2763
2764#define BT_HCI_EVT_LE_DATA_LEN_CHANGE 0x07
2771} __packed;
2772
2773#define BT_HCI_EVT_LE_P256_PUBLIC_KEY_COMPLETE 0x08
2777} __packed;
2778
2779#define BT_HCI_EVT_LE_GENERATE_DHKEY_COMPLETE 0x09
2783} __packed;
2784
2785#define BT_HCI_EVT_LE_ENH_CONN_COMPLETE 0x0a
2797} __packed;
2798
2799#define BT_HCI_EVT_LE_DIRECT_ADV_REPORT 0x0b
2805} __packed;
2809} __packed;
2810
2811#define BT_HCI_EVT_LE_PHY_UPDATE_COMPLETE 0x0c
2817} __packed;
2818
2819#define BT_HCI_EVT_LE_EXT_ADVERTISING_REPORT 0x0d
2820
2821#define BT_HCI_LE_ADV_EVT_TYPE_CONN BIT(0)
2822#define BT_HCI_LE_ADV_EVT_TYPE_SCAN BIT(1)
2823#define BT_HCI_LE_ADV_EVT_TYPE_DIRECT BIT(2)
2824#define BT_HCI_LE_ADV_EVT_TYPE_SCAN_RSP BIT(3)
2825#define BT_HCI_LE_ADV_EVT_TYPE_LEGACY BIT(4)
2826
2827#define BT_HCI_LE_ADV_EVT_TYPE_DATA_STATUS(ev_type) (((ev_type) >> 5) & 0x03)
2828#define BT_HCI_LE_ADV_EVT_TYPE_DATA_STATUS_COMPLETE 0
2829#define BT_HCI_LE_ADV_EVT_TYPE_DATA_STATUS_PARTIAL 1
2830#define BT_HCI_LE_ADV_EVT_TYPE_DATA_STATUS_INCOMPLETE 2
2831#define BT_HCI_LE_ADV_EVT_TYPE_DATA_STATUS_RX_FAILED 0xFF
2832
2845} __packed;
2849} __packed;
2850
2851#define BT_HCI_EVT_LE_PER_ADV_SYNC_ESTABLISHED 0x0e
2860} __packed;
2861
2862#define BT_HCI_EVT_LE_PER_ADVERTISING_REPORT 0x0f
2871} __packed;
2872
2873#define BT_HCI_EVT_LE_PER_ADV_SYNC_LOST 0x10
2876} __packed;
2877
2878#define BT_HCI_EVT_LE_SCAN_TIMEOUT 0x11
2879
2880#define BT_HCI_EVT_LE_ADV_SET_TERMINATED 0x12
2886} __packed;
2887
2888#define BT_HCI_EVT_LE_SCAN_REQ_RECEIVED 0x13
2892} __packed;
2893
2894#define BT_HCI_LE_CHAN_SEL_ALGO_1 0x00
2895#define BT_HCI_LE_CHAN_SEL_ALGO_2 0x01
2896
2897#define BT_HCI_EVT_LE_CHAN_SEL_ALGO 0x14
2901} __packed;
2902
2903#define BT_HCI_LE_CTE_CRC_OK 0x0
2904#define BT_HCI_LE_CTE_CRC_ERR_CTE_BASED_TIME 0x1
2905#define BT_HCI_LE_CTE_CRC_ERR_CTE_BASED_OTHER 0x2
2906#define BT_HCI_LE_CTE_INSUFFICIENT_RESOURCES 0xFF
2907
2908#define B_HCI_LE_CTE_REPORT_SAMPLE_COUNT_MIN 0x9
2909#define B_HCI_LE_CTE_REPORT_SAMPLE_COUNT_MAX 0x52
2910
2911#define BT_HCI_LE_CTE_REPORT_NO_VALID_SAMPLE 0x80
2912
2913#define BT_HCI_EVT_LE_CONNECTIONLESS_IQ_REPORT 0x15
2917};
2918
2930} __packed;
2931
2932#define BT_HCI_EVT_LE_CONNECTION_IQ_REPORT 0x16
2945} __packed;
2946
2947#define BT_HCI_CTE_REQ_STATUS_RSP_WITHOUT_CTE 0x0
2948
2949#define BT_HCI_EVT_LE_CTE_REQUEST_FAILED 0x17
2951 /* According to BT 5.3 Core Spec the status field may have following
2952 * values:
2953 * - BT_HCI_CTE_REQ_STATUS_RSP_WITHOUT_CTE when received LL_CTE_RSP_PDU without CTE.
2954 * - Other Controller error code for peer rejected request.
2955 */
2958} __packed;
2959
2960#define BT_HCI_EVT_LE_PAST_RECEIVED 0x18
2971} __packed;
2972
2973#define BT_HCI_EVT_LE_CIS_ESTABLISHED 0x19
2991} __packed;
2992
2993#define BT_HCI_EVT_LE_CIS_REQ 0x1a
2999} __packed;
3000
3001#define BT_HCI_EVT_LE_BIG_COMPLETE 0x1b
3016} __packed;
3017
3018#define BT_HCI_EVT_LE_BIG_TERMINATE 0x1c
3022} __packed;
3023
3024#define BT_HCI_EVT_LE_BIG_SYNC_ESTABLISHED 0x1d
3037} __packed;
3038
3039#define BT_HCI_EVT_LE_BIG_SYNC_LOST 0x1e
3043} __packed;
3044
3045#define BT_HCI_EVT_LE_REQ_PEER_SCA_COMPLETE 0x1f
3050} __packed;
3051
3052#define BT_HCI_LE_ZONE_ENTERED_LOW 0x0
3053#define BT_HCI_LE_ZONE_ENTERED_MIDDLE 0x1
3054#define BT_HCI_LE_ZONE_ENTERED_HIGH 0x2
3055#define BT_HCI_LE_PATH_LOSS_UNAVAILABLE 0xFF
3056
3057#define BT_HCI_EVT_LE_PATH_LOSS_THRESHOLD 0x20
3062} __packed;
3063
3066/* Local Transmit power changed. */
3067#define BT_HCI_LE_TX_POWER_REPORT_REASON_LOCAL_CHANGED 0x00
3068/* Remote Transmit power changed. */
3069#define BT_HCI_LE_TX_POWER_REPORT_REASON_REMOTE_CHANGED 0x01
3070/* HCI_LE_Read_Remote_Transmit_Power_Level command completed. */
3071#define BT_HCI_LE_TX_POWER_REPORT_REASON_READ_REMOTE_COMPLETED 0x02
3072
3073#define BT_HCI_EVT_LE_TRANSMIT_POWER_REPORT 0x21
3082} __packed;
3083
3084#define BT_HCI_EVT_LE_BIGINFO_ADV_REPORT 0x22
3099} __packed;
3100
3101/* Event mask bits */
3102
3103#define BT_EVT_BIT(n) (1ULL << (n))
3104
3105#define BT_EVT_MASK_INQUIRY_COMPLETE BT_EVT_BIT(0)
3106#define BT_EVT_MASK_CONN_COMPLETE BT_EVT_BIT(2)
3107#define BT_EVT_MASK_CONN_REQUEST BT_EVT_BIT(3)
3108#define BT_EVT_MASK_DISCONN_COMPLETE BT_EVT_BIT(4)
3109#define BT_EVT_MASK_AUTH_COMPLETE BT_EVT_BIT(5)
3110#define BT_EVT_MASK_REMOTE_NAME_REQ_COMPLETE BT_EVT_BIT(6)
3111#define BT_EVT_MASK_ENCRYPT_CHANGE BT_EVT_BIT(7)
3112#define BT_EVT_MASK_REMOTE_FEATURES BT_EVT_BIT(10)
3113#define BT_EVT_MASK_REMOTE_VERSION_INFO BT_EVT_BIT(11)
3114#define BT_EVT_MASK_HARDWARE_ERROR BT_EVT_BIT(15)
3115#define BT_EVT_MASK_ROLE_CHANGE BT_EVT_BIT(17)
3116#define BT_EVT_MASK_PIN_CODE_REQ BT_EVT_BIT(21)
3117#define BT_EVT_MASK_LINK_KEY_REQ BT_EVT_BIT(22)
3118#define BT_EVT_MASK_LINK_KEY_NOTIFY BT_EVT_BIT(23)
3119#define BT_EVT_MASK_DATA_BUFFER_OVERFLOW BT_EVT_BIT(25)
3120#define BT_EVT_MASK_INQUIRY_RESULT_WITH_RSSI BT_EVT_BIT(33)
3121#define BT_EVT_MASK_REMOTE_EXT_FEATURES BT_EVT_BIT(34)
3122#define BT_EVT_MASK_SYNC_CONN_COMPLETE BT_EVT_BIT(43)
3123#define BT_EVT_MASK_EXTENDED_INQUIRY_RESULT BT_EVT_BIT(46)
3124#define BT_EVT_MASK_ENCRYPT_KEY_REFRESH_COMPLETE BT_EVT_BIT(47)
3125#define BT_EVT_MASK_IO_CAPA_REQ BT_EVT_BIT(48)
3126#define BT_EVT_MASK_IO_CAPA_RESP BT_EVT_BIT(49)
3127#define BT_EVT_MASK_USER_CONFIRM_REQ BT_EVT_BIT(50)
3128#define BT_EVT_MASK_USER_PASSKEY_REQ BT_EVT_BIT(51)
3129#define BT_EVT_MASK_SSP_COMPLETE BT_EVT_BIT(53)
3130#define BT_EVT_MASK_USER_PASSKEY_NOTIFY BT_EVT_BIT(58)
3131#define BT_EVT_MASK_LE_META_EVENT BT_EVT_BIT(61)
3132
3133/* Page 2 */
3134#define BT_EVT_MASK_NUM_COMPLETE_DATA_BLOCKS BT_EVT_BIT(8)
3135#define BT_EVT_MASK_TRIGG_CLOCK_CAPTURE BT_EVT_BIT(14)
3136#define BT_EVT_MASK_SYNCH_TRAIN_COMPLETE BT_EVT_BIT(15)
3137#define BT_EVT_MASK_SYNCH_TRAIN_RX BT_EVT_BIT(16)
3138#define BT_EVT_MASK_CL_PER_BC_RX BT_EVT_BIT(17)
3139#define BT_EVT_MASK_CL_PER_BC_TIMEOUT BT_EVT_BIT(18)
3140#define BT_EVT_MASK_TRUNC_PAGE_COMPLETE BT_EVT_BIT(19)
3141#define BT_EVT_MASK_PER_PAGE_RSP_TIMEOUT BT_EVT_BIT(20)
3142#define BT_EVT_MASK_CL_PER_BC_CH_MAP_CHANGE BT_EVT_BIT(21)
3143#define BT_EVT_MASK_INQUIRY_RSP_NOT BT_EVT_BIT(22)
3144#define BT_EVT_MASK_AUTH_PAYLOAD_TIMEOUT_EXP BT_EVT_BIT(23)
3145#define BT_EVT_MASK_SAM_STATUS_CHANGE BT_EVT_BIT(24)
3146
3147#define BT_EVT_MASK_LE_CONN_COMPLETE BT_EVT_BIT(0)
3148#define BT_EVT_MASK_LE_ADVERTISING_REPORT BT_EVT_BIT(1)
3149#define BT_EVT_MASK_LE_CONN_UPDATE_COMPLETE BT_EVT_BIT(2)
3150#define BT_EVT_MASK_LE_REMOTE_FEAT_COMPLETE BT_EVT_BIT(3)
3151#define BT_EVT_MASK_LE_LTK_REQUEST BT_EVT_BIT(4)
3152#define BT_EVT_MASK_LE_CONN_PARAM_REQ BT_EVT_BIT(5)
3153#define BT_EVT_MASK_LE_DATA_LEN_CHANGE BT_EVT_BIT(6)
3154#define BT_EVT_MASK_LE_P256_PUBLIC_KEY_COMPLETE BT_EVT_BIT(7)
3155#define BT_EVT_MASK_LE_GENERATE_DHKEY_COMPLETE BT_EVT_BIT(8)
3156#define BT_EVT_MASK_LE_ENH_CONN_COMPLETE BT_EVT_BIT(9)
3157#define BT_EVT_MASK_LE_DIRECT_ADV_REPORT BT_EVT_BIT(10)
3158#define BT_EVT_MASK_LE_PHY_UPDATE_COMPLETE BT_EVT_BIT(11)
3159#define BT_EVT_MASK_LE_EXT_ADVERTISING_REPORT BT_EVT_BIT(12)
3160#define BT_EVT_MASK_LE_PER_ADV_SYNC_ESTABLISHED BT_EVT_BIT(13)
3161#define BT_EVT_MASK_LE_PER_ADVERTISING_REPORT BT_EVT_BIT(14)
3162#define BT_EVT_MASK_LE_PER_ADV_SYNC_LOST BT_EVT_BIT(15)
3163#define BT_EVT_MASK_LE_SCAN_TIMEOUT BT_EVT_BIT(16)
3164#define BT_EVT_MASK_LE_ADV_SET_TERMINATED BT_EVT_BIT(17)
3165#define BT_EVT_MASK_LE_SCAN_REQ_RECEIVED BT_EVT_BIT(18)
3166#define BT_EVT_MASK_LE_CHAN_SEL_ALGO BT_EVT_BIT(19)
3167#define BT_EVT_MASK_LE_CONNECTIONLESS_IQ_REPORT BT_EVT_BIT(20)
3168#define BT_EVT_MASK_LE_CONNECTION_IQ_REPORT BT_EVT_BIT(21)
3169#define BT_EVT_MASK_LE_CTE_REQUEST_FAILED BT_EVT_BIT(22)
3170#define BT_EVT_MASK_LE_PAST_RECEIVED BT_EVT_BIT(23)
3171#define BT_EVT_MASK_LE_CIS_ESTABLISHED BT_EVT_BIT(24)
3172#define BT_EVT_MASK_LE_CIS_REQ BT_EVT_BIT(25)
3173#define BT_EVT_MASK_LE_BIG_COMPLETE BT_EVT_BIT(26)
3174#define BT_EVT_MASK_LE_BIG_TERMINATED BT_EVT_BIT(27)
3175#define BT_EVT_MASK_LE_BIG_SYNC_ESTABLISHED BT_EVT_BIT(28)
3176#define BT_EVT_MASK_LE_BIG_SYNC_LOST BT_EVT_BIT(29)
3177#define BT_EVT_MASK_LE_REQ_PEER_SCA_COMPLETE BT_EVT_BIT(30)
3178#define BT_EVT_MASK_LE_PATH_LOSS_THRESHOLD BT_EVT_BIT(31)
3179#define BT_EVT_MASK_LE_TRANSMIT_POWER_REPORTING BT_EVT_BIT(32)
3180#define BT_EVT_MASK_LE_BIGINFO_ADV_REPORT BT_EVT_BIT(33)
3181
3182#define BT_EVT_MASK_LE_PER_ADV_SYNC_ESTABLISHED_V2 BT_EVT_BIT(35)
3183#define BT_EVT_MASK_LE_PER_ADVERTISING_REPORT_V2 BT_EVT_BIT(36)
3184#define BT_EVT_MASK_LE_PAST_RECEIVED_V2 BT_EVT_BIT(37)
3185#define BT_EVT_MASK_LE_PER_ADV_SUBEVENT_DATA_REQ BT_EVT_BIT(38)
3186#define BT_EVT_MASK_LE_PER_ADV_RESPONSE_REPORT BT_EVT_BIT(39)
3187#define BT_EVT_MASK_LE_ENH_CONN_COMPLETE_V2 BT_EVT_BIT(40)
3188
3190#define BT_HCI_ERR_SUCCESS 0x00
3191#define BT_HCI_ERR_UNKNOWN_CMD 0x01
3192#define BT_HCI_ERR_UNKNOWN_CONN_ID 0x02
3193#define BT_HCI_ERR_HW_FAILURE 0x03
3194#define BT_HCI_ERR_PAGE_TIMEOUT 0x04
3195#define BT_HCI_ERR_AUTH_FAIL 0x05
3196#define BT_HCI_ERR_PIN_OR_KEY_MISSING 0x06
3197#define BT_HCI_ERR_MEM_CAPACITY_EXCEEDED 0x07
3198#define BT_HCI_ERR_CONN_TIMEOUT 0x08
3199#define BT_HCI_ERR_CONN_LIMIT_EXCEEDED 0x09
3200#define BT_HCI_ERR_SYNC_CONN_LIMIT_EXCEEDED 0x0a
3201#define BT_HCI_ERR_CONN_ALREADY_EXISTS 0x0b
3202#define BT_HCI_ERR_CMD_DISALLOWED 0x0c
3203#define BT_HCI_ERR_INSUFFICIENT_RESOURCES 0x0d
3204#define BT_HCI_ERR_INSUFFICIENT_SECURITY 0x0e
3205#define BT_HCI_ERR_BD_ADDR_UNACCEPTABLE 0x0f
3206#define BT_HCI_ERR_CONN_ACCEPT_TIMEOUT 0x10
3207#define BT_HCI_ERR_UNSUPP_FEATURE_PARAM_VAL 0x11
3208#define BT_HCI_ERR_INVALID_PARAM 0x12
3209#define BT_HCI_ERR_REMOTE_USER_TERM_CONN 0x13
3210#define BT_HCI_ERR_REMOTE_LOW_RESOURCES 0x14
3211#define BT_HCI_ERR_REMOTE_POWER_OFF 0x15
3212#define BT_HCI_ERR_LOCALHOST_TERM_CONN 0x16
3213#define BT_HCI_ERR_REPEATED_ATTEMPTS 0x17
3214#define BT_HCI_ERR_PAIRING_NOT_ALLOWED 0x18
3215#define BT_HCI_ERR_UNKNOWN_LMP_PDU 0x19
3216#define BT_HCI_ERR_UNSUPP_REMOTE_FEATURE 0x1a
3217#define BT_HCI_ERR_SCO_OFFSET_REJECTED 0x1b
3218#define BT_HCI_ERR_SCO_INTERVAL_REJECTED 0x1c
3219#define BT_HCI_ERR_SCO_AIR_MODE_REJECTED 0x1d
3220#define BT_HCI_ERR_INVALID_LL_PARAM 0x1e
3221#define BT_HCI_ERR_UNSPECIFIED 0x1f
3222#define BT_HCI_ERR_UNSUPP_LL_PARAM_VAL 0x20
3223#define BT_HCI_ERR_ROLE_CHANGE_NOT_ALLOWED 0x21
3224#define BT_HCI_ERR_LL_RESP_TIMEOUT 0x22
3225#define BT_HCI_ERR_LL_PROC_COLLISION 0x23
3226#define BT_HCI_ERR_LMP_PDU_NOT_ALLOWED 0x24
3227#define BT_HCI_ERR_ENC_MODE_NOT_ACCEPTABLE 0x25
3228#define BT_HCI_ERR_LINK_KEY_CANNOT_BE_CHANGED 0x26
3229#define BT_HCI_ERR_REQUESTED_QOS_NOT_SUPPORTED 0x27
3230#define BT_HCI_ERR_INSTANT_PASSED 0x28
3231#define BT_HCI_ERR_PAIRING_NOT_SUPPORTED 0x29
3232#define BT_HCI_ERR_DIFF_TRANS_COLLISION 0x2a
3233#define BT_HCI_ERR_QOS_UNACCEPTABLE_PARAM 0x2c
3234#define BT_HCI_ERR_QOS_REJECTED 0x2d
3235#define BT_HCI_ERR_CHAN_ASSESS_NOT_SUPPORTED 0x2e
3236#define BT_HCI_ERR_INSUFF_SECURITY 0x2f
3237#define BT_HCI_ERR_PARAM_OUT_OF_MANDATORY_RANGE 0x30
3238#define BT_HCI_ERR_ROLE_SWITCH_PENDING 0x32
3239#define BT_HCI_ERR_RESERVED_SLOT_VIOLATION 0x34
3240#define BT_HCI_ERR_ROLE_SWITCH_FAILED 0x35
3241#define BT_HCI_ERR_EXT_INQ_RESP_TOO_LARGE 0x36
3242#define BT_HCI_ERR_SIMPLE_PAIR_NOT_SUPP_BY_HOST 0x37
3243#define BT_HCI_ERR_HOST_BUSY_PAIRING 0x38
3244#define BT_HCI_ERR_CONN_REJECTED_DUE_TO_NO_CHAN 0x39
3245#define BT_HCI_ERR_CONTROLLER_BUSY 0x3a
3246#define BT_HCI_ERR_UNACCEPT_CONN_PARAM 0x3b
3247#define BT_HCI_ERR_ADV_TIMEOUT 0x3c
3248#define BT_HCI_ERR_TERM_DUE_TO_MIC_FAIL 0x3d
3249#define BT_HCI_ERR_CONN_FAIL_TO_ESTAB 0x3e
3250#define BT_HCI_ERR_MAC_CONN_FAILED 0x3f
3251#define BT_HCI_ERR_CLOCK_ADJUST_REJECTED 0x40
3252#define BT_HCI_ERR_SUBMAP_NOT_DEFINED 0x41
3253#define BT_HCI_ERR_UNKNOWN_ADV_IDENTIFIER 0x42
3254#define BT_HCI_ERR_LIMIT_REACHED 0x43
3255#define BT_HCI_ERR_OP_CANCELLED_BY_HOST 0x44
3256#define BT_HCI_ERR_PACKET_TOO_LONG 0x45
3257#define BT_HCI_ERR_TOO_LATE 0x46
3258#define BT_HCI_ERR_TOO_EARLY 0x47
3259
3260#ifdef __cplusplus
3261}
3262#endif
3263
3264#endif /* ZEPHYR_INCLUDE_BLUETOOTH_HCI_TYPES_H_ */
Bluetooth device address definitions and utilities.
__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
Bluetooth LE Device Address.
Definition: addr.h:49
Bluetooth Device Address.
Definition: addr.h:40
Definition: hci_types.h:82
uint16_t handle
Definition: hci_types.h:83
uint16_t len
Definition: hci_types.h:84
Definition: hci_types.h:2104
uint8_t cis_id
Definition: hci_types.h:2105
uint16_t c_sdu
Definition: hci_types.h:2107
uint8_t c_phy
Definition: hci_types.h:2111
uint8_t p_phy
Definition: hci_types.h:2112
uint16_t p_pdu
Definition: hci_types.h:2110
uint8_t p_bn
Definition: hci_types.h:2114
uint8_t nse
Definition: hci_types.h:2106
uint16_t c_pdu
Definition: hci_types.h:2109
uint8_t c_bn
Definition: hci_types.h:2113
uint16_t p_sdu
Definition: hci_types.h:2108
Definition: hci_types.h:2073
uint8_t p_phy
Definition: hci_types.h:2078
uint8_t c_phy
Definition: hci_types.h:2077
uint8_t cis_id
Definition: hci_types.h:2074
uint16_t c_sdu
Definition: hci_types.h:2075
uint8_t c_rtn
Definition: hci_types.h:2079
uint8_t p_rtn
Definition: hci_types.h:2080
uint16_t p_sdu
Definition: hci_types.h:2076
Definition: hci_types.h:2139
uint16_t acl_handle
Definition: hci_types.h:2141
uint16_t cis_handle
Definition: hci_types.h:2140
Definition: hci_types.h:131
uint16_t opcode
Definition: hci_types.h:132
uint8_t param_len
Definition: hci_types.h:133
Definition: hci_types.h:948
uint8_t length
Definition: hci_types.h:949
uint8_t data[0]
Definition: hci_types.h:950
Definition: hci_types.h:402
uint8_t role
Definition: hci_types.h:404
bt_addr_t bdaddr
Definition: hci_types.h:403
Definition: hci_types.h:419
uint16_t max_latency
Definition: hci_types.h:423
uint32_t tx_bandwidth
Definition: hci_types.h:421
bt_addr_t bdaddr
Definition: hci_types.h:420
uint16_t pkt_type
Definition: hci_types.h:426
uint8_t retrans_effort
Definition: hci_types.h:425
uint32_t rx_bandwidth
Definition: hci_types.h:422
uint16_t content_format
Definition: hci_types.h:424
Definition: hci_types.h:467
uint16_t handle
Definition: hci_types.h:468
Definition: hci_types.h:936
uint16_t vs_codec_id
Definition: hci_types.h:939
uint16_t company_id
Definition: hci_types.h:938
uint8_t coding_format
Definition: hci_types.h:937
Definition: hci_types.h:782
uint8_t vs_config_len
Definition: hci_types.h:785
uint8_t data_path_dir
Definition: hci_types.h:783
uint8_t data_path_id
Definition: hci_types.h:784
uint8_t vs_config[0]
Definition: hci_types.h:786
Definition: hci_types.h:393
bt_addr_t bdaddr
Definition: hci_types.h:394
Definition: hci_types.h:377
uint8_t pscan_rep_mode
Definition: hci_types.h:380
uint16_t packet_type
Definition: hci_types.h:379
bt_addr_t bdaddr
Definition: hci_types.h:378
uint8_t allow_role_switch
Definition: hci_types.h:383
uint16_t clock_offset
Definition: hci_types.h:382
uint8_t reserved
Definition: hci_types.h:381
Definition: hci_types.h:387
uint8_t reason
Definition: hci_types.h:389
uint16_t handle
Definition: hci_types.h:388
Definition: hci_types.h:715
uint16_t acl_mtu
Definition: hci_types.h:716
uint8_t sco_mtu
Definition: hci_types.h:717
uint16_t acl_pkts
Definition: hci_types.h:718
uint16_t sco_pkts
Definition: hci_types.h:719
Definition: hci_types.h:728
struct bt_hci_handle_count h[0]
Definition: hci_types.h:730
uint8_t num_handles
Definition: hci_types.h:729
Definition: hci_types.h:540
uint8_t reason
Definition: hci_types.h:542
bt_addr_t bdaddr
Definition: hci_types.h:541
Definition: hci_types.h:511
uint8_t capability
Definition: hci_types.h:513
uint8_t authentication
Definition: hci_types.h:515
uint8_t oob_data
Definition: hci_types.h:514
bt_addr_t bdaddr
Definition: hci_types.h:512
Definition: hci_types.h:2160
uint16_t handle
Definition: hci_types.h:2161
Definition: hci_types.h:1140
bt_addr_le_t addr
Definition: hci_types.h:1141
Definition: hci_types.h:1751
uint8_t sid
Definition: hci_types.h:1753
bt_addr_le_t addr
Definition: hci_types.h:1752
Definition: hci_types.h:1325
bt_addr_le_t peer_id_addr
Definition: hci_types.h:1326
uint8_t local_irk[16]
Definition: hci_types.h:1328
uint8_t peer_irk[16]
Definition: hci_types.h:1327
Definition: hci_types.h:2218
uint8_t bcode[16]
Definition: hci_types.h:2222
uint8_t mse
Definition: hci_types.h:2223
uint8_t encryption
Definition: hci_types.h:2221
uint16_t sync_timeout
Definition: hci_types.h:2224
uint8_t big_handle
Definition: hci_types.h:2219
uint8_t bis[0]
Definition: hci_types.h:2226
uint16_t sync_handle
Definition: hci_types.h:2220
uint8_t num_bis
Definition: hci_types.h:2225
Definition: hci_types.h:2230
uint8_t big_handle
Definition: hci_types.h:2231
Definition: hci_types.h:1919
uint8_t requested_cte_length
Definition: hci_types.h:1923
uint8_t requested_cte_type
Definition: hci_types.h:1924
uint16_t cte_request_interval
Definition: hci_types.h:1922
uint8_t enable
Definition: hci_types.h:1921
uint16_t handle
Definition: hci_types.h:1920
Definition: hci_types.h:1933
uint16_t handle
Definition: hci_types.h:1934
uint8_t enable
Definition: hci_types.h:1935
Definition: hci_types.h:1272
uint16_t handle
Definition: hci_types.h:1273
uint8_t reason
Definition: hci_types.h:1274
Definition: hci_types.h:1257
uint16_t interval_min
Definition: hci_types.h:1259
uint16_t min_ce_len
Definition: hci_types.h:1263
uint16_t latency
Definition: hci_types.h:1261
uint16_t max_ce_len
Definition: hci_types.h:1264
uint16_t handle
Definition: hci_types.h:1258
uint16_t interval_max
Definition: hci_types.h:1260
uint16_t timeout
Definition: hci_types.h:1262
Definition: hci_types.h:2192
uint16_t max_pdu
Definition: hci_types.h:2200
uint8_t pto
Definition: hci_types.h:2206
uint8_t sdu_interval[3]
Definition: hci_types.h:2196
uint8_t bcode[16]
Definition: hci_types.h:2208
uint8_t nse
Definition: hci_types.h:2198
uint8_t packing
Definition: hci_types.h:2202
uint8_t encryption
Definition: hci_types.h:2207
uint16_t iso_interval
Definition: hci_types.h:2197
uint8_t irc
Definition: hci_types.h:2205
uint8_t num_bis
Definition: hci_types.h:2195
uint8_t phy
Definition: hci_types.h:2201
uint8_t bn
Definition: hci_types.h:2204
uint16_t max_sdu
Definition: hci_types.h:2199
uint8_t big_handle
Definition: hci_types.h:2193
uint8_t framing
Definition: hci_types.h:2203
uint8_t adv_handle
Definition: hci_types.h:2194
Definition: hci_types.h:2176
uint16_t max_sdu
Definition: hci_types.h:2181
uint8_t bcode[16]
Definition: hci_types.h:2188
uint16_t max_latency
Definition: hci_types.h:2182
uint8_t rtn
Definition: hci_types.h:2183
uint8_t sdu_interval[3]
Definition: hci_types.h:2180
uint8_t framing
Definition: hci_types.h:2186
uint8_t encryption
Definition: hci_types.h:2187
uint8_t phy
Definition: hci_types.h:2184
uint8_t adv_handle
Definition: hci_types.h:2178
uint8_t packing
Definition: hci_types.h:2185
uint8_t num_bis
Definition: hci_types.h:2179
uint8_t big_handle
Definition: hci_types.h:2177
Definition: hci_types.h:2144
struct bt_hci_cis cis[0]
Definition: hci_types.h:2146
uint8_t num_cis
Definition: hci_types.h:2145
Definition: hci_types.h:1115
uint16_t scan_interval
Definition: hci_types.h:1116
uint8_t filter_policy
Definition: hci_types.h:1118
uint16_t min_ce_len
Definition: hci_types.h:1125
uint16_t conn_latency
Definition: hci_types.h:1123
uint16_t max_ce_len
Definition: hci_types.h:1126
uint8_t own_addr_type
Definition: hci_types.h:1120
uint16_t conn_interval_min
Definition: hci_types.h:1121
uint16_t conn_interval_max
Definition: hci_types.h:1122
bt_addr_le_t peer_addr
Definition: hci_types.h:1119
uint16_t scan_window
Definition: hci_types.h:1117
uint16_t supervision_timeout
Definition: hci_types.h:1124
Definition: hci_types.h:2024
uint16_t timeout
Definition: hci_types.h:2027
uint16_t skip
Definition: hci_types.h:2026
uint8_t mode
Definition: hci_types.h:2025
uint8_t cte_type
Definition: hci_types.h:2028
Definition: hci_types.h:1181
uint8_t key[16]
Definition: hci_types.h:1182
uint8_t plaintext[16]
Definition: hci_types.h:1183
Definition: hci_types.h:1445
uint8_t rx_ch
Definition: hci_types.h:1446
uint8_t mod_index
Definition: hci_types.h:1448
uint8_t phy
Definition: hci_types.h:1447
Definition: hci_types.h:1457
uint8_t tx_ch
Definition: hci_types.h:1458
uint8_t phy
Definition: hci_types.h:1461
uint8_t pkt_payload
Definition: hci_types.h:1460
uint8_t test_data_len
Definition: hci_types.h:1459
Definition: hci_types.h:1658
uint8_t own_addr_type
Definition: hci_types.h:1662
bt_addr_le_t peer_addr
Definition: hci_types.h:1663
uint8_t subevent
Definition: hci_types.h:1660
uint8_t filter_policy
Definition: hci_types.h:1661
struct bt_hci_ext_conn_phy p[0]
Definition: hci_types.h:1665
uint8_t adv_handle
Definition: hci_types.h:1659
uint8_t phys
Definition: hci_types.h:1664
Definition: hci_types.h:1650
uint8_t filter_policy
Definition: hci_types.h:1651
uint8_t own_addr_type
Definition: hci_types.h:1652
bt_addr_le_t peer_addr
Definition: hci_types.h:1653
struct bt_hci_ext_conn_phy p[0]
Definition: hci_types.h:1655
uint8_t phys
Definition: hci_types.h:1654
Definition: hci_types.h:1318
uint8_t key_type
Definition: hci_types.h:1320
uint8_t key[64]
Definition: hci_types.h:1319
Definition: hci_types.h:1308
uint8_t key[64]
Definition: hci_types.h:1309
Definition: hci_types.h:2287
uint8_t payload_type
Definition: hci_types.h:2289
uint16_t handle
Definition: hci_types.h:2288
Definition: hci_types.h:2311
uint16_t handle
Definition: hci_types.h:2312
Definition: hci_types.h:2276
uint8_t payload_type
Definition: hci_types.h:2278
uint16_t handle
Definition: hci_types.h:2277
Definition: hci_types.h:1215
uint16_t handle
Definition: hci_types.h:1216
Definition: hci_types.h:1205
uint8_t ltk[16]
Definition: hci_types.h:1207
uint16_t handle
Definition: hci_types.h:1206
Definition: hci_types.h:2010
uint8_t cte_type
Definition: hci_types.h:2015
uint16_t skip
Definition: hci_types.h:2013
uint16_t conn_handle
Definition: hci_types.h:2011
uint8_t mode
Definition: hci_types.h:2012
uint16_t timeout
Definition: hci_types.h:2014
Definition: hci_types.h:1734
bt_addr_le_t addr
Definition: hci_types.h:1737
uint16_t sync_timeout
Definition: hci_types.h:1739
uint16_t skip
Definition: hci_types.h:1738
uint8_t cte_type
Definition: hci_types.h:1740
uint8_t sid
Definition: hci_types.h:1736
uint8_t options
Definition: hci_types.h:1735
Definition: hci_types.h:1987
uint16_t conn_handle
Definition: hci_types.h:1988
uint16_t service_data
Definition: hci_types.h:1989
uint8_t adv_handle
Definition: hci_types.h:1990
Definition: hci_types.h:1975
uint16_t service_data
Definition: hci_types.h:1977
uint16_t sync_handle
Definition: hci_types.h:1978
uint16_t conn_handle
Definition: hci_types.h:1976
Definition: hci_types.h:1746
uint16_t handle
Definition: hci_types.h:1747
Definition: hci_types.h:1166
uint16_t handle
Definition: hci_types.h:1167
Definition: hci_types.h:2045
uint16_t handle
Definition: hci_types.h:2046
Definition: hci_types.h:1354
bt_addr_le_t peer_id_addr
Definition: hci_types.h:1355
Definition: hci_types.h:1345
bt_addr_le_t peer_id_addr
Definition: hci_types.h:1346
Definition: hci_types.h:1400
uint16_t handle
Definition: hci_types.h:1401
Definition: hci_types.h:1176
uint16_t handle
Definition: hci_types.h:1177
Definition: hci_types.h:2298
uint16_t handle
Definition: hci_types.h:2299
Definition: hci_types.h:663
uint8_t phy
Definition: hci_types.h:665
uint16_t handle
Definition: hci_types.h:664
Definition: hci_types.h:2165
uint16_t handle
Definition: hci_types.h:2166
uint8_t reason
Definition: hci_types.h:2167
Definition: hci_types.h:1145
bt_addr_le_t addr
Definition: hci_types.h:1146
Definition: hci_types.h:1757
uint8_t sid
Definition: hci_types.h:1759
bt_addr_le_t addr
Definition: hci_types.h:1758
Definition: hci_types.h:1332
bt_addr_le_t peer_id_addr
Definition: hci_types.h:1333
Definition: hci_types.h:1567
uint8_t handle
Definition: hci_types.h:1568
Definition: hci_types.h:2150
uint8_t cig_id
Definition: hci_types.h:2151
Definition: hci_types.h:2261
uint8_t path_dir
Definition: hci_types.h:2263
uint16_t handle
Definition: hci_types.h:2262
Definition: hci_types.h:2240
uint16_t handle
Definition: hci_types.h:2241
Definition: hci_types.h:1805
uint8_t expected_cte_type
Definition: hci_types.h:1810
uint8_t slot_durations
Definition: hci_types.h:1811
uint8_t mod_index
Definition: hci_types.h:1808
uint8_t ant_ids[0]
Definition: hci_types.h:1813
uint8_t switch_pattern_len
Definition: hci_types.h:1812
uint8_t rx_ch
Definition: hci_types.h:1806
uint8_t expected_cte_len
Definition: hci_types.h:1809
uint8_t phy
Definition: hci_types.h:1807
Definition: hci_types.h:1230
uint8_t rx_ch
Definition: hci_types.h:1231
Definition: hci_types.h:1366
uint8_t enable
Definition: hci_types.h:1367
Definition: hci_types.h:1060
uint8_t len
Definition: hci_types.h:1061
uint8_t data[31]
Definition: hci_types.h:1062
Definition: hci_types.h:1075
uint8_t enable
Definition: hci_types.h:1076
Definition: hci_types.h:1043
uint8_t channel_map
Definition: hci_types.h:1049
uint16_t min_interval
Definition: hci_types.h:1044
uint8_t filter_policy
Definition: hci_types.h:1050
uint8_t type
Definition: hci_types.h:1046
uint16_t max_interval
Definition: hci_types.h:1045
bt_addr_le_t direct_addr
Definition: hci_types.h:1048
uint8_t own_addr_type
Definition: hci_types.h:1047
Definition: hci_types.h:1465
bt_addr_t bdaddr
Definition: hci_types.h:1467
uint8_t handle
Definition: hci_types.h:1466
Definition: hci_types.h:2117
uint8_t p_interval[3]
Definition: hci_types.h:2120
uint8_t cig_id
Definition: hci_types.h:2118
uint8_t sca
Definition: hci_types.h:2124
uint8_t c_ft
Definition: hci_types.h:2121
uint8_t framing
Definition: hci_types.h:2126
uint8_t num_cis
Definition: hci_types.h:2127
struct bt_hci_cis_params_test cis[0]
Definition: hci_types.h:2128
uint8_t packing
Definition: hci_types.h:2125
uint8_t c_interval[3]
Definition: hci_types.h:2119
uint16_t iso_interval
Definition: hci_types.h:2123
uint8_t p_ft
Definition: hci_types.h:2122
Definition: hci_types.h:2083
uint8_t c_interval[3]
Definition: hci_types.h:2085
uint8_t sca
Definition: hci_types.h:2087