Mistake on this page? Email us
hci_api.h
Go to the documentation of this file.
1 /*************************************************************************************************/
2 /*!
3  * \file
4  *
5  * \brief HCI subsystem API.
6  *
7  * Copyright (c) 2009-2019 Arm Ltd. All Rights Reserved.
8  * Arm Ltd. confidential and proprietary.
9  *
10  * IMPORTANT. Your use of this file is governed by a Software License Agreement
11  * ("Agreement") that must be accepted in order to download or otherwise receive a
12  * copy of this file. You may not use or copy this file for any purpose other than
13  * as described in the Agreement. If you do not agree to all of the terms of the
14  * Agreement do not use this file and delete all copies in your possession or control;
15  * if you do not have a copy of the Agreement, you must contact Arm Ltd. prior
16  * to any use, copying or further distribution of this software.
17  */
18 /*************************************************************************************************/
19 #ifndef HCI_API_H
20 #define HCI_API_H
21 
22 #include "wsf_types.h"
23 #include "hci_defs.h"
24 #include "wsf_os.h"
25 #include "util/bda.h"
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
31 
32 
33 /**************************************************************************************************
34  Macros
35 **************************************************************************************************/
36 
37 /*! \addtogroup STACK_HCI_EVT_API
38  * \{ */
39 
40 /** \name HCI Internal Event Codes
41  * Proprietary HCI event codes for handling HCI events in callbacks.
42  */
43 /**@{*/
44 #define HCI_RESET_SEQ_CMPL_CBACK_EVT 0 /*!< \brief Reset sequence complete */
45 #define HCI_LE_CONN_CMPL_CBACK_EVT 1 /*!< \brief LE connection complete */
46 #define HCI_LE_ENHANCED_CONN_CMPL_CBACK_EVT 2 /*!< \brief LE enhanced connection complete */
47 #define HCI_DISCONNECT_CMPL_CBACK_EVT 3 /*!< \brief LE disconnect complete */
48 #define HCI_LE_CONN_UPDATE_CMPL_CBACK_EVT 4 /*!< \brief LE connection update complete */
49 #define HCI_LE_CREATE_CONN_CANCEL_CMD_CMPL_CBACK_EVT 5 /*!< \brief LE create connection cancel command complete */
50 #define HCI_LE_ADV_REPORT_CBACK_EVT 6 /*!< \brief LE advertising report */
51 #define HCI_READ_RSSI_CMD_CMPL_CBACK_EVT 7 /*!< \brief Read RSSI command complete */
52 #define HCI_LE_READ_CHAN_MAP_CMD_CMPL_CBACK_EVT 8 /*!< \brief LE Read channel map command complete */
53 #define HCI_READ_TX_PWR_LVL_CMD_CMPL_CBACK_EVT 9 /*!< \brief Read transmit power level command complete */
54 #define HCI_READ_REMOTE_VER_INFO_CMPL_CBACK_EVT 10 /*!< \brief Read remote version information complete */
55 #define HCI_LE_READ_REMOTE_FEAT_CMPL_CBACK_EVT 11 /*!< \brief LE read remote features complete */
56 #define HCI_LE_LTK_REQ_REPL_CMD_CMPL_CBACK_EVT 12 /*!< \brief LE LTK request reply command complete */
57 #define HCI_LE_LTK_REQ_NEG_REPL_CMD_CMPL_CBACK_EVT 13 /*!< \brief LE LTK request negative reply command complete */
58 #define HCI_ENC_KEY_REFRESH_CMPL_CBACK_EVT 14 /*!< \brief Encryption key refresh complete */
59 #define HCI_ENC_CHANGE_CBACK_EVT 15 /*!< \brief Encryption change */
60 #define HCI_LE_LTK_REQ_CBACK_EVT 16 /*!< \brief LE LTK request */
61 #define HCI_VENDOR_SPEC_CMD_STATUS_CBACK_EVT 17 /*!< \brief Vendor specific command status */
62 #define HCI_VENDOR_SPEC_CMD_CMPL_CBACK_EVT 18 /*!< \brief Vendor specific command complete */
63 #define HCI_VENDOR_SPEC_CBACK_EVT 19 /*!< \brief Vendor specific */
64 #define HCI_HW_ERROR_CBACK_EVT 20 /*!< \brief Hardware error */
65 #define HCI_LE_ADD_DEV_TO_RES_LIST_CMD_CMPL_CBACK_EVT 21 /*!< \brief LE add device to resolving list command complete */
66 #define HCI_LE_REM_DEV_FROM_RES_LIST_CMD_CMPL_CBACK_EVT 22 /*!< \brief LE remove device from resolving command complete */
67 #define HCI_LE_CLEAR_RES_LIST_CMD_CMPL_CBACK_EVT 23 /*!< \brief LE clear resolving list command complete */
68 #define HCI_LE_READ_PEER_RES_ADDR_CMD_CMPL_CBACK_EVT 24 /*!< \brief LE read peer resolving address command complete */
69 #define HCI_LE_READ_LOCAL_RES_ADDR_CMD_CMPL_CBACK_EVT 25 /*!< \brief LE read local resolving address command complete */
70 #define HCI_LE_SET_ADDR_RES_ENABLE_CMD_CMPL_CBACK_EVT 26 /*!< \brief LE set address resolving enable command complete */
71 #define HCI_LE_ENCRYPT_CMD_CMPL_CBACK_EVT 27 /*!< \brief LE encrypt command complete */
72 #define HCI_LE_RAND_CMD_CMPL_CBACK_EVT 28 /*!< \brief LE rand command complete */
73 #define HCI_LE_REM_CONN_PARAM_REP_CMD_CMPL_CBACK_EVT 29 /*!< \brief LE remote connection parameter request reply complete */
74 #define HCI_LE_REM_CONN_PARAM_NEG_REP_CMD_CMPL_CBACK_EVT 30 /*!< \brief LE remote connection parameter request negative reply complete */
75 #define HCI_LE_READ_DEF_DATA_LEN_CMD_CMPL_CBACK_EVT 31 /*!< \brief LE read suggested default data length command complete */
76 #define HCI_LE_WRITE_DEF_DATA_LEN_CMD_CMPL_CBACK_EVT 32 /*!< \brief LE write suggested default data length command complete */
77 #define HCI_LE_SET_DATA_LEN_CMD_CMPL_CBACK_EVT 33 /*!< \brief LE set data length command complete */
78 #define HCI_LE_READ_MAX_DATA_LEN_CMD_CMPL_CBACK_EVT 34 /*!< \brief LE read maximum data length command complete */
79 #define HCI_LE_REM_CONN_PARAM_REQ_CBACK_EVT 35 /*!< \brief LE remote connection parameter request */
80 #define HCI_LE_DATA_LEN_CHANGE_CBACK_EVT 36 /*!< \brief LE data length change */
81 #define HCI_LE_READ_LOCAL_P256_PUB_KEY_CMPL_CBACK_EVT 37 /*!< \brief LE read local P-256 public key */
82 #define HCI_LE_GENERATE_DHKEY_CMPL_CBACK_EVT 38 /*!< \brief LE generate DHKey complete */
83 #define HCI_WRITE_AUTH_PAYLOAD_TO_CMD_CMPL_CBACK_EVT 39 /*!< \brief Write authenticated payload timeout command complete */
84 #define HCI_AUTH_PAYLOAD_TO_EXPIRED_CBACK_EVT 40 /*!< \brief Authenticated payload timeout expired event */
85 #define HCI_LE_READ_PHY_CMD_CMPL_CBACK_EVT 41 /*!< \brief LE read phy command complete */
86 #define HCI_LE_SET_DEF_PHY_CMD_CMPL_CBACK_EVT 42 /*!< \brief LE set default phy command complete */
87 #define HCI_LE_PHY_UPDATE_CMPL_CBACK_EVT 43 /*!< \brief LE phy update complete */
88 #define HCI_LE_EXT_ADV_REPORT_CBACK_EVT 44 /*!< \brief LE extended advertising report */
89 #define HCI_LE_SCAN_TIMEOUT_CBACK_EVT 45 /*!< \brief LE scan timeout event */
90 #define HCI_LE_ADV_SET_TERM_CBACK_EVT 46 /*!< \brief LE advertising set terminated event */
91 #define HCI_LE_SCAN_REQ_RCVD_CBACK_EVT 47 /*!< \brief LE scan request received event */
92 #define HCI_LE_PER_ADV_SYNC_EST_CBACK_EVT 48 /*!< \brief LE periodic advertising sync established event */
93 #define HCI_LE_PER_ADV_REPORT_CBACK_EVT 49 /*!< \brief LE periodic advertising report event */
94 #define HCI_LE_PER_ADV_SYNC_LOST_CBACK_EVT 50 /*!< \brief LE periodic advertising synch lost event */
95 #define HCI_LE_CH_SEL_ALGO_CBACK_EVT 51 /*!< \brief LE channel selection algorithm event */
96 #define HCI_LE_SCAN_ENABLE_CMD_CMPL_CBACK_EVT 52 /*!< \brief LE scan enable command complete */
97 #define HCI_LE_ADV_ENABLE_CMD_CMPL_CBACK_EVT 53 /*!< \brief LE advertise enable command complete */
98 #define HCI_LE_EXT_SCAN_ENABLE_CMD_CMPL_CBACK_EVT 54 /*!< \brief LE extended scan enable command complete */
99 #define HCI_LE_EXT_ADV_ENABLE_CMD_CMPL_CBACK_EVT 55 /*!< \brief LE extended advertise enable command complete */
100 #define HCI_LE_PER_ADV_ENABLE_CMD_CMPL_CBACK_EVT 56 /*!< \brief LE periodic advertise enable command complete */
101 #define HCI_LE_SET_RAND_ADDR_CMD_CMPL_CBACK_EVT 57 /*!< \brief LE set random address command complete */
102 #define HCI_LE_PER_SYNC_TRSF_RCVD_CBACK_EVT 58 /*!< \brief LE periodic advertising sync transfer received event */
103 #define HCI_LE_PER_ADV_SYNC_TRSF_CMD_CMPL_CBACK_EVT 59 /*!< \brief LE periodic advertising sync transfer command complete */
104 #define HCI_LE_PER_ADV_SET_INFO_TRSF_CMD_CMPL_CBACK_EVT 60 /*!< \brief LE set periodic advertising set info transfer command complete */
105 #define HCI_LE_CONN_IQ_REPORT_CBACK_EVT 61 /*!< \brief LE connection IQ report event */
106 #define HCI_LE_CTE_REQ_FAILED_CBACK_EVT 62 /*!< \brief LE CTE request failed event */
107 #define HCI_LE_SET_CONN_CTE_RX_PARAMS_CMD_CMPL_CBACK_EVT 63 /*!< \brief LE set connection CTE receive parameters command complete */
108 #define HCI_LE_SET_CONN_CTE_TX_PARAMS_CMD_CMPL_CBACK_EVT 64 /*!< \brief LE set connection CTE transmit parameters command complete */
109 #define HCI_LE_CONN_CTE_REQ_ENABLE_CMD_CMPL_CBACK_EVT 65 /*!< \brief LE connection CTE request enable command complete */
110 #define HCI_LE_CONN_CTE_RSP_ENABLE_CMD_CMPL_CBACK_EVT 66 /*!< \brief LE connection CTE response enable command complete */
111 #define HCI_LE_READ_ANTENNA_INFO_CMD_CMPL_CBACK_EVT 67 /*!< \brief LE read antenna information command complete */
112 #define HCI_CIS_EST_CBACK_EVT 68 /*!< \brief CIS established event */
113 #define HCI_CIS_REQ_CBACK_EVT 69 /*!< \brief CIS request event */
114 #define HCI_REQ_PEER_SCA_CBACK_EVT 70 /*!< \brief Request peer SCA complete */
115 /**@}*/
116 
117 /**************************************************************************************************
118  Data Types
119 **************************************************************************************************/
120 
121 /*! \brief LE connection complete event */
122 typedef struct
123 {
124  wsfMsgHdr_t hdr; /*!< \brief Event header */
125  uint8_t status; /*!< \brief Status. */
126  uint16_t handle; /*!< \brief Connection handle. */
127  uint8_t role; /*!< \brief Local connection role. */
128  uint8_t addrType; /*!< \brief Peer address type. */
129  bdAddr_t peerAddr; /*!< \brief Peer address. */
130  uint16_t connInterval; /*!< \brief Connection interval */
131  uint16_t connLatency; /*!< \brief Connection latency. */
132  uint16_t supTimeout; /*!< \brief Supervision timeout. */
133  uint8_t clockAccuracy; /*!< \brief Clock accuracy. */
134 
135  /* \brief enhanced fields */
136  bdAddr_t localRpa; /*!< \brief Local RPA. */
137  bdAddr_t peerRpa; /*!< \brief Peer RPA. */
139 
140 /*! \brief Disconnect complete event */
141 typedef struct
142 {
143  wsfMsgHdr_t hdr; /*!< \brief Event header. */
144  uint8_t status; /*!< \brief Disconnect complete status. */
145  uint16_t handle; /*!< \brief Connect handle. */
146  uint8_t reason; /*!< \brief Reason. */
148 
149 /*! \brief LE connection update complete event */
150 typedef struct
151 {
152  wsfMsgHdr_t hdr; /*!< \brief Event header. */
153  uint8_t status; /*!< \brief Status. */
154  uint16_t handle; /*!< \brief Connection handle. */
155  uint16_t connInterval; /*!< \brief Connection interval. */
156  uint16_t connLatency; /*!< \brief Connection latency. */
157  uint16_t supTimeout; /*!< \brief Supervision timeout. */
159 
160 /*! \brief LE create connection cancel command complete event */
161 typedef struct
162 {
163  wsfMsgHdr_t hdr; /*!< \brief Event header. */
164  uint8_t status; /*!< \brief Status. */
166 
167 /*! \brief LE advertising report event */
168 typedef struct
169 {
170  wsfMsgHdr_t hdr; /*!< \brief Event header. */
171  uint8_t *pData; /*!< \brief advertising or scan response data. */
172  uint8_t len; /*!< \brief length of advertising or scan response data. */
173  int8_t rssi; /*!< \brief RSSI. */
174  uint8_t eventType; /*!< \brief Advertising event type. */
175  uint8_t addrType; /*!< \brief Address type. */
176  bdAddr_t addr; /*!< \brief Device address. */
177 
178  /* \brief direct fields */
179  uint8_t directAddrType; /*!< \brief Direct advertising address type. */
180  bdAddr_t directAddr; /*!< \brief Direct advertising address. */
182 
183 /*! \brief LE extended advertising report */
184 typedef struct
185 {
186  wsfMsgHdr_t hdr; /*!< \brief Event header. */
187  uint16_t eventType; /*!< \brief Event type. */
188  uint8_t addrType; /*!< \brief Address type. */
189  bdAddr_t addr; /*!< \brief Address. */
190  uint8_t priPhy; /*!< \brief Primary PHY. */
191  uint8_t secPhy; /*!< \brief Secondary PHY. */
192  uint8_t advSid; /*!< \brief Advertising SID. */
193  int8_t txPower; /*!< \brief Tx Power. */
194  int8_t rssi; /*!< \brief RSSI. */
195  int16_t perAdvInter; /*!< \brief Periodic advertising interval. */
196  uint8_t directAddrType; /*!< \brief Directed address type. */
197  bdAddr_t directAddr; /*!< \brief Directed address. */
198  uint16_t len; /*!< \brief Data buffer length. */
199  uint8_t *pData; /*!< \brief Data buffer. */
201 
202 /*! \brief LE scan timeout */
203 typedef struct
204 {
205  wsfMsgHdr_t hdr; /*!< \brief Event header. */
207 
208 /*! \brief LE advertising set terminated */
209 typedef struct
210 {
211  wsfMsgHdr_t hdr; /*!< \brief Event header. */
212  uint8_t status; /*!< \brief Status. */
213  uint8_t advHandle; /*!< \brief Advertising handle. */
214  uint16_t handle; /*!< \brief Connection handle. */
215  uint8_t numComplEvts; /*!< \brief Number of completed extended advertising events. */
217 
218 /*! \brief LE scan request received */
219 typedef struct
220 {
221  wsfMsgHdr_t hdr; /*!< \brief Event header. */
222  uint8_t advHandle; /*!< \brief Advertising handle. */
223  uint8_t scanAddrType; /*!< \brief Scanner address type. */
224  bdAddr_t scanAddr; /*!< \brief Scanner address. */
226 
227 /*! \brief LE periodic advertising sync established */
228 typedef struct
229 {
230  wsfMsgHdr_t hdr; /*!< \brief Event header. */
231  uint8_t status; /*!< \brief Status. */
232  uint16_t syncHandle; /*!< \brief Sync handle. */
233  uint8_t advSid; /*!< \brief Advertising SID. */
234  uint8_t advAddrType; /*!< \brief Advertiser address type. */
235  bdAddr_t advAddr; /*!< \brief Advertiser address. */
236  uint8_t advPhy; /*!< \brief Advertiser PHY. */
237  uint16_t perAdvInterval; /*!< \brief Periodic advertising interval. */
238  uint8_t clockAccuracy; /*!< \brief Advertiser clock accuracy. */
240 
241 /*! \brief LE periodic advertising report */
242 typedef struct
243 {
244  wsfMsgHdr_t hdr; /*!< \brief Event header. */
245  uint16_t syncHandle; /*!< \brief Sync handle. */
246  uint8_t txPower; /*!< \brief Tx power. */
247  uint8_t rssi; /*!< \brief RSSI. */
248  uint8_t unused; /*!< \brief Intended to be used in a future feature. */
249  uint8_t status; /*!< \brief Data status. */
250  uint16_t len; /*!< \brief Data buffer length. */
251  uint8_t *pData; /*!< \brief Data buffer. */
253 
254 /*! \brief LE periodic advertising synch lost */
255 typedef struct
256 {
257  wsfMsgHdr_t hdr; /*!< \brief Event header. */
258  uint16_t syncHandle; /*!< \brief Sync handle. */
260 
261 /*! \brief LE periodic advertising sync transfer received */
262 typedef struct
263 {
264  wsfMsgHdr_t hdr; /*!< \brief Event header. */
265  uint8_t status; /*!< \brief Status. */
266  uint16_t connHandle; /*!< \brief Connection handle. */
267  uint16_t serviceData; /*!< \brief Service data. */
268  uint16_t syncHandle; /*!< \brief Sync handle. */
269  uint8_t advSid; /*!< \brief Advertising SID. */
270  uint8_t advAddrType; /*!< \brief Advertiser address type. */
271  bdAddr_t advAddr; /*!< \brief Advertiser address. */
272  uint8_t advPhy; /*!< \brief Advertiser PHY. */
273  uint16_t perAdvInterval; /*!< \brief Periodic advertising interval. */
274  uint8_t clockAccuracy; /*!< \brief Advertiser clock accuracy. */
276 
277 /*! \brief LE channel selection algorithm */
278 typedef struct
279 {
280  wsfMsgHdr_t hdr; /*!< \brief Event header. */
281  uint16_t handle; /*!< \brief Connection handle. */
282  uint8_t chSelAlgo; /*!< \brief Channel selection algorithm */
284 
285 /*! \brief Read RSSI command complete event */
286 typedef struct
287 {
288  wsfMsgHdr_t hdr; /*!< \brief Event header. */
289  uint8_t status; /*!< \brief Status. */
290  uint16_t handle; /*!< \brief Connection handle. */
291  int8_t rssi; /*!< \brief RSSI. */
293 
294 /*! \brief LE Read channel map command complete event */
295 typedef struct
296 {
297  wsfMsgHdr_t hdr; /*!< \brief Event header. */
298  uint8_t status; /*!< \brief Status. */
299  uint16_t handle; /*!< \brief Connection handle. */
300  uint8_t chanMap[HCI_CHAN_MAP_LEN]; /*!< \brief channel map. */
302 
303 /*! \brief Read transmit power level command complete event */
304 typedef struct
305 {
306  wsfMsgHdr_t hdr; /*!< \brief Event header. */
307  uint8_t status; /*!< \brief Status. */
308  uint8_t handle; /*!< \brief Connection handle. */
309  int8_t pwrLvl; /*!< \brief Tx power level. */
311 
312 /*! \brief Read remote version information complete event */
313 typedef struct
314 {
315  wsfMsgHdr_t hdr; /*!< \brief Event header. */
316  uint8_t status; /*!< \brief Status. */
317  uint16_t handle; /*!< \brief Connection handle. */
318  uint8_t version; /*!< \brief Version. */
319  uint16_t mfrName; /*!< \brief Manufacturer name. */
320  uint16_t subversion; /*!< \brief Sub-version. */
322 
323 /*! \brief LE read remote features complete event */
324 typedef struct
325 {
326  wsfMsgHdr_t hdr; /*!< \brief Event header. */
327  uint8_t status; /*!< \brief Status. */
328  uint16_t handle; /*!< \brief Connection handle. */
329  uint8_t features[HCI_FEAT_LEN]; /*!< \brief Remote features buffer. */
331 
332 /*! \brief LE LTK request reply command complete event */
333 typedef struct
334 {
335  wsfMsgHdr_t hdr; /*!< \brief Event header. */
336  uint8_t status; /*!< \brief Status. */
337  uint16_t handle; /*!< \brief Connection handle. */
339 
340 /*! \brief LE LTK request negative reply command complete event */
341 typedef struct
342 {
343  wsfMsgHdr_t hdr; /*!< \brief Event header. */
344  uint8_t status; /*!< \brief Status. */
345  uint16_t handle; /*!< \brief Connection handle. */
347 
348 /*! \brief Encryption key refresh complete event */
349 typedef struct
350 {
351  wsfMsgHdr_t hdr; /*!< \brief Event header. */
352  uint8_t status; /*!< \brief Status. */
353  uint16_t handle; /*!< \brief Connection handle. */
355 
356 /*! \brief Encryption change event */
357 typedef struct
358 {
359  wsfMsgHdr_t hdr; /*!< \brief Event header. */
360  uint8_t status; /*!< \brief Status. */
361  uint16_t handle; /*!< \brief Connection handle. */
362  uint8_t enabled; /*!< \brief Encryption enabled flag. */
364 
365 /*! \brief LE LTK request event */
366 typedef struct
367 {
368  wsfMsgHdr_t hdr; /*!< \brief Event header. */
369  uint16_t handle; /*!< \brief Connection handle. */
370  uint8_t randNum[HCI_RAND_LEN]; /*!< \brief LTK random number. */
371  uint16_t encDiversifier; /*!< \brief LTK encryption diversifier. */
373 
374 /*! \brief Vendor specific command status event */
375 typedef struct
376 {
377  wsfMsgHdr_t hdr; /*!< \brief Event header. */
378  uint16_t opcode; /*!< \brief Opcode. */
380 
381 /*! \brief Vendor specific command complete event */
382 typedef struct
383 {
384  wsfMsgHdr_t hdr; /*!< \brief Event header. */
385  uint16_t opcode; /*!< \brief Opcode. */
386  uint8_t param[1]; /*!< \brief Operation parameter. */
388 
389 /*! \brief Vendor specific event */
390 typedef struct
391 {
392  wsfMsgHdr_t hdr; /*!< \brief Event header. */
393  uint8_t param[1]; /*!< \brief Vendor specific event. */
395 
396 /*! \brief Hardware error event */
397 typedef struct
398 {
399  wsfMsgHdr_t hdr; /*!< \brief Event header. */
400  uint8_t code; /*!< \brief Error code. */
402 
403 /*! \brief LE encrypt command complete event */
404 typedef struct
405 {
406  wsfMsgHdr_t hdr; /*!< \brief Event header. */
407  uint8_t status; /*!< \brief Status. */
408  uint8_t data[HCI_ENCRYPT_DATA_LEN]; /*!< \brief Data. */
410 
411 /*! \brief LE rand command complete event */
412 typedef struct
413 {
414  wsfMsgHdr_t hdr; /*!< \brief Event header. */
415  uint8_t status; /*!< \brief Status. */
416  uint8_t randNum[HCI_RAND_LEN]; /*!< \brief Random number buffer. */
418 
419 /*! \brief LE remote connection parameter request reply command complete event */
420 typedef struct
421 {
422  wsfMsgHdr_t hdr; /*!< \brief Event header. */
423  uint8_t status; /*!< \brief Status. */
424  uint16_t handle; /*!< \brief Connection handle. */
426 
427 /*! \brief LE remote connection parameter request negative reply command complete event */
428 typedef struct
429 {
430  wsfMsgHdr_t hdr; /*!< \brief Event header. */
431  uint8_t status; /*!< \brief Status. */
432  uint16_t handle; /*!< \brief Connection handle. */
434 
435 /*! \brief LE read suggested default data len command complete event */
436 typedef struct
437 {
438  wsfMsgHdr_t hdr; /*!< \brief Event header. */
439  uint8_t status; /*!< \brief Status. */
440  uint16_t suggestedMaxTxOctets; /*!< \brief Suggested maximum Tx octets. */
441  uint16_t suggestedMaxTxTime; /*!< \brief Suggested maximum Tx time. */
443 
444 /*! \brief LE write suggested default data len command complete event */
445 typedef struct
446 {
447  wsfMsgHdr_t hdr; /*!< \brief Event header. */
448  uint8_t status; /*!< \brief Status. */
450 
451 /*! \brief LE set data len command complete event */
452 typedef struct
453 {
454  wsfMsgHdr_t hdr; /*!< \brief Event header. */
455  uint8_t status; /*!< \brief Status. */
456  uint16_t handle; /*!< \brief Connection handle. */
458 
459 /*! \brief LE read maximum data len command complete event */
460 typedef struct
461 {
462  wsfMsgHdr_t hdr; /*!< \brief Event header. */
463  uint8_t status; /*!< \brief Status. */
464  uint16_t supportedMaxTxOctets; /*!< \brief Supported maximum Tx octets. */
465  uint16_t supportedMaxTxTime; /*!< \brief Supported maximum Tx time. */
466  uint16_t supportedMaxRxOctets; /*!< \brief Supported maximum Rx octets. */
467  uint16_t supportedMaxRxTime; /*!< \brief Supported maximum Rx time. */
469 
470 /*! \brief LE remote connetion parameter request event */
471 typedef struct
472 {
473  wsfMsgHdr_t hdr; /*!< \brief Event header. */
474  uint16_t handle; /*!< \brief Connection handle. */
475  uint16_t intervalMin; /*!< \brief Interval minimum. */
476  uint16_t intervalMax; /*!< \brief Interval maximum. */
477  uint16_t latency; /*!< \brief Connection latency. */
478  uint16_t timeout; /*!< \brief Connection timeout. */
480 
481 /*! \brief LE data length change event */
482 typedef struct
483 {
484  wsfMsgHdr_t hdr; /*!< \brief Event header. */
485  uint16_t handle; /*!< \brief Connection handle. */
486  uint16_t maxTxOctets; /*!< \brief Maximum Tx octets. */
487  uint16_t maxTxTime; /*!< \brief Maximum Tx time. */
488  uint16_t maxRxOctets; /*!< \brief Maximum Rx octets. */
489  uint16_t maxRxTime; /*!< \brief Maximum Rx time. */
491 
492 /*! \brief LE local p256 ecc key command complete event */
493 typedef struct
494 {
495  wsfMsgHdr_t hdr; /*!< \brief Event header. */
496  uint8_t status; /*!< \brief Status. */
497  uint8_t key[HCI_P256_KEY_LEN]; /*!< \brief P-256 public keys. */
499 
500 /*! \brief LE generate DH key command complete event */
501 typedef struct
502 {
503  wsfMsgHdr_t hdr; /*!< \brief Event header. */
504  uint8_t status; /*!< \brief Status. */
505  uint8_t key[HCI_DH_KEY_LEN]; /*!< \brief Diffie-Hellman (Share Secret) key. */
507 
508 /*! \brief LE read peer resolving address command complete event */
509 typedef struct
510 {
511  wsfMsgHdr_t hdr; /*!< \brief Event header. */
512  uint8_t status; /*!< \brief Status. */
513  uint8_t peerRpa[BDA_ADDR_LEN]; /*!< \brief Peer RPA. */
515 
516 /*! \brief LE read local resolving address command complete event */
517 typedef struct
518 {
519  wsfMsgHdr_t hdr; /*!< \brief Event header. */
520  uint8_t status; /*!< \brief Status. */
521  uint8_t localRpa[BDA_ADDR_LEN]; /*!< \brief Local RPA. */
523 
524 /*! \brief LE set address resolving enable command complete event */
525 typedef struct
526 {
527  wsfMsgHdr_t hdr; /*!< \brief Event header. */
528  uint8_t status; /*!< \brief Status. */
530 
531 /*! \brief LE add device to resolving list command complete event */
532 typedef struct
533 {
534  wsfMsgHdr_t hdr; /*!< \brief Event header. */
535  uint8_t status; /*!< \brief Status. */
537 
538 /*! \brief LE remove device from resolving list command complete event */
539 typedef struct
540 {
541  wsfMsgHdr_t hdr; /*!< \brief Event header. */
542  uint8_t status; /*!< \brief Status. */
544 
545 /*! \brief LE clear resolving list command complete event */
546 typedef struct
547 {
548  wsfMsgHdr_t hdr; /*!< \brief Event header. */
549  uint8_t status; /*!< \brief Status. */
551 
552 /*! \brief Write authenticated payload to command complete event */
553 typedef struct
554 {
555  wsfMsgHdr_t hdr; /*!< \brief Event header. */
556  uint8_t status; /*!< \brief Status. */
557  uint16_t handle; /*!< \brief Connection handle. */
559 
560 /*! \brief Authenticated payload to expire event */
561 typedef struct
562 {
563  wsfMsgHdr_t hdr; /*!< \brief Event header. */
564  uint16_t handle; /*!< \brief Connection handle. */
566 
567 /*! \brief LE read PHY command complete event */
568  typedef struct
569 {
570  wsfMsgHdr_t hdr; /*!< \brief Event header. */
571  uint8_t status; /*!< \brief Status. */
572  uint16_t handle; /*!< \brief Connection handle. */
573  uint8_t txPhy; /*!< \brief Tx PHY. */
574  uint8_t rxPhy; /*!< \brief Rx PHY. */
576 
577 /*! \brief LE set default PHY command complete event */
578 typedef struct
579 {
580  wsfMsgHdr_t hdr; /*!< \brief Event header. */
581  uint8_t status; /*!< \brief Status. */
583 
584 /*! \brief LE PHY update complete event */
585 typedef struct
586 {
587  wsfMsgHdr_t hdr; /*!< \brief Event header. */
588  uint8_t status; /*!< \brief Status. */
589  uint16_t handle; /*!< \brief Handle. */
590  uint8_t txPhy; /*!< \brief Tx PHY. */
591  uint8_t rxPhy; /*!< \brief Rx PHY. */
593 
594 /*! \brief LE periodic advertising sync transfer command complete event */
595 typedef struct
596 {
597  wsfMsgHdr_t hdr; /*!< \brief Event header. */
598  uint8_t status; /*!< \brief Status. */
599  uint16_t handle; /*!< \brief Connection handle. */
601 
602 /*! \brief LE set periodic advertising set info transfer command complete event */
603 typedef struct
604 {
605  wsfMsgHdr_t hdr; /*!< \brief Event header. */
606  uint8_t status; /*!< \brief Status. */
607  uint16_t handle; /*!< \brief Connection handle. */
609 
610 /*! \brief LE connection IQ report */
611 typedef struct
612 {
613  wsfMsgHdr_t hdr; /*!< \brief Event header. */
614  uint16_t handle; /*!< \brief Connection handle. */
615  uint8_t rxPhy; /*!< \brief Rx Phy. */
616  uint8_t dataChIdx; /*!< \brief Data Channel Index. */
617  int16_t rssi; /*!< \brief RSSI. */
618  uint8_t rssiAntennaId; /*!< \brief RSSI Antenna ID. */
619  uint8_t cteType; /*!< \brief CTE Type. */
620  uint8_t slotDurations; /*!< \brief Slot Durations. */
621  uint8_t pktStatus; /*!< \brief Packet Status. */
622  uint16_t connEvtCnt; /*!< \brief Connection Event Counter. */
623  uint8_t sampleCnt; /*!< \brief Sample Count. */
624  int8_t *pISample; /*!< \brief List of I Samples. */
625  int8_t *pQSample; /*!< \brief List of Q Samples. */
627 
628 /*! \brief LE CTE request failed event */
629 typedef struct
630 {
631  wsfMsgHdr_t hdr; /*!< \brief Event header. */
632  uint8_t status; /*!< \brief Status. */
633  uint16_t handle; /*!< \brief Connection handle. */
635 
636 /*! \brief LE set connection CTE receive parameters command complete event */
637 typedef struct
638 {
639  wsfMsgHdr_t hdr; /*!< \brief Event header. */
640  uint8_t status; /*!< \brief Status. */
641  uint16_t handle; /*!< \brief Connection handle. */
643 
644 /*! \brief LE set connection CTE transmit parameters command complete event */
645 typedef struct
646 {
647  wsfMsgHdr_t hdr; /*!< \brief Event header. */
648  uint8_t status; /*!< \brief Status. */
649  uint16_t handle; /*!< \brief Connection handle. */
651 
652 /*! \brief LE connection CTE request enable command complete event */
653 typedef struct
654 {
655  wsfMsgHdr_t hdr; /*!< \brief Event header. */
656  uint8_t status; /*!< \brief Status. */
657  uint16_t handle; /*!< \brief Connection handle. */
659 
660 /*! \brief LE connection CTE response enable command complete event */
661 typedef struct
662 {
663  wsfMsgHdr_t hdr; /*!< \brief Event header. */
664  uint8_t status; /*!< \brief Status. */
665  uint16_t handle; /*!< \brief Connection handle. */
667 
668 /*! \brief LE read antenna information command complete event */
669 typedef struct
670 {
671  wsfMsgHdr_t hdr; /*!< \brief Event header. */
672  uint8_t status; /*!< \brief Status. */
673  uint8_t switchSampleRates; /*!< \brief Supported Switching Sampling Rates. */
674  uint8_t numAntennae; /*!< \brief Number of Antennae. */
675  uint8_t switchPatternMaxLen; /*!< \brief Max Length of Switching Pattern. */
676  uint8_t cteMaxLen; /*!< \brief Max CTE Length. */
678 
679 /*! \brief Local version information */
680 typedef struct
681 {
682  uint8_t hciVersion; /*!< \brief HCI version. */
683  uint16_t hciRevision; /*!< \brief HCI revision. */
684  uint8_t lmpVersion; /*!< \brief LMP version. */
685  uint16_t manufacturerName; /*!< \brief Manufacturer name. */
686  uint16_t lmpSubversion; /*!< \brief LMP Sub-version. */
688 
689 /*! \brief Union of all event types */
690 typedef union
691 {
692  wsfMsgHdr_t hdr; /*!< \brief Event header. */
693  wsfMsgHdr_t resetSeqCmpl; /*!< \brief Reset sequence complete. */
694  hciLeConnCmplEvt_t leConnCmpl; /*!< \brief LE connection complete. */
695  hciDisconnectCmplEvt_t disconnectCmpl; /*!< \brief Disconnect complete. */
696  hciLeConnUpdateCmplEvt_t leConnUpdateCmpl; /*!< \brief LE connection update complete. */
697  hciLeCreateConnCancelCmdCmplEvt_t leCreateConnCancelCmdCmpl; /*!< \brief LE create connection cancel command complete. */
698  hciLeAdvReportEvt_t leAdvReport; /*!< \brief LE advertising report. */
699  hciReadRssiCmdCmplEvt_t readRssiCmdCmpl; /*!< \brief Read RSSI command complete. */
700  hciReadChanMapCmdCmplEvt_t readChanMapCmdCmpl; /*!< \brief Read channel map command complete. */
701  hciReadTxPwrLvlCmdCmplEvt_t readTxPwrLvlCmdCmpl; /*!< \brief Read Tx power level command complete. */
702  hciReadRemoteVerInfoCmplEvt_t readRemoteVerInfoCmpl; /*!< \brief Read remote version information complete. */
703  hciLeReadRemoteFeatCmplEvt_t leReadRemoteFeatCmpl; /*!< \brief LE read remote feature complete. */
704  hciLeLtkReqReplCmdCmplEvt_t leLtkReqReplCmdCmpl; /*!< \brief LE LTK request reply command complete. */
705  hciLeLtkReqNegReplCmdCmplEvt_t leLtkReqNegReplCmdCmpl; /*!< \brief LE LT request negative reply command complete. */
706  hciEncKeyRefreshCmpl_t encKeyRefreshCmpl; /*!< \brief Encryption key refresh complete. */
707  hciEncChangeEvt_t encChange; /*!< \brief Encryption change. */
708  hciLeLtkReqEvt_t leLtkReq; /*!< \brief LE LTK request. */
709  hciVendorSpecCmdStatusEvt_t vendorSpecCmdStatus; /*!< \brief Vendor specific command status. */
710  hciVendorSpecCmdCmplEvt_t vendorSpecCmdCmpl; /*!< \brief Vendor specific command complete. */
711  hciVendorSpecEvt_t vendorSpec; /*!< \brief Vendor specific. */
712  hciHwErrorEvt_t hwError; /*!< \brief Hardware error. */
713  hciLeEncryptCmdCmplEvt_t leEncryptCmdCmpl; /*!< \brief LE encrypt command complete. */
714  hciLeRandCmdCmplEvt_t leRandCmdCmpl; /*!< \brief LE random command complete. */
715  hciLeReadPeerResAddrCmdCmplEvt_t leReadPeerResAddrCmdCmpl; /*!< \brief LE read peer resolvable address command complete. */
716  hciLeReadLocalResAddrCmdCmplEvt_t leReadLocalResAddrCmdCmpl; /*!< \brief LE read local resolvable address command complete. */
717  hciLeSetAddrResEnableCmdCmplEvt_t leSetAddrResEnableCmdCmpl; /*!< \brief LE set address resolution enable command complete. */
718  hciLeAddDevToResListCmdCmplEvt_t leAddDevToResListCmdCmpl; /*!< \brief LE add device to resolving list command complete. */
719  hciLeRemDevFromResListCmdCmplEvt_t leRemDevFromResListCmdCmpl; /*!< \brief LE remove device from resolving list command complete. */
720  hciLeClearResListCmdCmplEvt_t leClearResListCmdCmpl; /*!< \brief LE clear resolving list command complete. */
721  hciLeRemConnParamRepEvt_t leRemConnParamRepCmdCmpl; /*!< \brief LE Remo Connection Parameter Reply Command Complete. */
722  hciLeRemConnParamNegRepEvt_t leRemConnParamNegRepCmdCmpl; /*!< \brief LE Remote Connection Parameter Negative Reply Command Complete. */
723  hciLeReadDefDataLenEvt_t leReadDefDataLenCmdCmpl; /*!< \brief LE read default data length command complete. */
724  hciLeWriteDefDataLenEvt_t leWriteDefDataLenCmdCmpl; /*!< \brief LE write default data length command complete. */
725  hciLeSetDataLenEvt_t leSetDataLenCmdCmpl; /*!< \brief LE set data length command complete. */
726  hciLeReadMaxDataLenEvt_t leReadMaxDataLenCmdCmpl; /*!< \brief LE read max data length command complete. */
727  hciLeRemConnParamReqEvt_t leRemConnParamReq; /*!< \brief LE remote connection parameter request. */
728  hciLeDataLenChangeEvt_t leDataLenChange; /*!< \brief LE data length change. */
729  hciLeP256CmplEvt_t leP256; /*!< \brief LE P-256 */
730  hciLeGenDhKeyEvt_t leGenDHKey; /*!< \brief LE generate Diffie-Hellman key. */
731  hciWriteAuthPayloadToCmdCmplEvt_t writeAuthPayloadToCmdCmpl; /*!< \brief Write authenticated payload to command complete. */
732  hciAuthPayloadToExpiredEvt_t authPayloadToExpired; /*!< \brief Authenticated payload to expired. */
733  hciLeReadPhyCmdCmplEvt_t leReadPhyCmdCmpl; /*!< \brief LE read PHY command complete. */
734  hciLeSetDefPhyCmdCmplEvt_t leSetDefPhyCmdCmpl; /*!< \brief LE set default PHY command complete. */
735  hciLePhyUpdateEvt_t lePhyUpdate; /*!< \brief LE PHY update. */
736  hciLeExtAdvReportEvt_t leExtAdvReport; /*!< \brief LE extended advertising report. */
737  hciLeScanTimeoutEvt_t leScanTimeout; /*!< \brief LE scan timeout. */
738  hciLeAdvSetTermEvt_t leAdvSetTerm; /*!< \brief LE advertising set terminated. */
739  hciLeScanReqRcvdEvt_t leScanReqRcvd; /*!< \brief LE scan request received. */
740  hciLePerAdvSyncEstEvt_t lePerAdvSyncEst; /*!< \brief LE periodic advertising synchronization established. */
741  hciLePerAdvReportEvt_t lePerAdvReport; /*!< \brief LE periodic advertising report. */
742  hciLePerAdvSyncLostEvt_t lePerAdvSyncLost; /*!< \brief LE periodic advertising synchronization lost. */
743  hciLeChSelAlgoEvt_t leChSelAlgo; /*!< \brief LE channel select algorithm. */
744  HciLePerAdvSyncTrsfRcvdEvt_t lePerAdvSyncTrsfRcvd; /*!< \brief LE periodic advertising sync transfer received. */
745  hciLePerAdvSyncTrsfCmdCmplEvt_t lePerAdvSyncTrsfCmdCmpl; /*!< \brief LE periodic advertising sync transfer command complete. */
746  hciLePerAdvSetInfoTrsfCmdCmplEvt_t lePerAdvSetInfoTrsfCmdCmpl; /*!< \brief LE set periodic advertising set info transfer command complete. */
747  hciLeConnIQReportEvt_t leConnIQReport; /*!< \brief LE connection IQ report. */
748  hciLeCteReqFailedEvt_t leCteReqFailed; /*!< \brief LE CTE request failed. */
749  hciLeSetConnCteRxParamsCmdCmplEvt_t leSetConnCteRxParamsCmdCmpl; /*!< \brief LE set connection CTE receive parameters command complete. */
750  hciLeSetConnCteTxParamsCmdCmplEvt_t leSetConnCteTxParamsCmdCmpl; /*!< \brief LE set connection CTE transmit parameters command complete. */
751  hciLeConnCteReqEnableCmdCmplEvt_t leConnCteReqEnableCmdCmpl; /*!< \brief LE connection CTE request enable command complete. */
752  hciLeConnCteRspEnableCmdCmplEvt_t leConnCteRspEnableCmdCmpl; /*!< \brief LE connection CTE response enable command complete. */
753  hciLeReadAntennaInfoCmdCmplEvt_t leReadAntennaInfoCmdCmpl; /*!< \brief LE read antenna information command complete. */
754 } hciEvt_t;
755 
756 /*! \} */ /* STACK_HCI_EVT_API */
757 
758 /*! \addtogroup STACK_HCI_CMD_API
759  * \{ */
760 
761 /*! \brief Connection specification type */
762 typedef struct
763 {
764  uint16_t connIntervalMin; /*!< \brief Minimum connection interval. */
765  uint16_t connIntervalMax; /*!< \brief Maximum connection interval. */
766  uint16_t connLatency; /*!< \brief Connection latency. */
767  uint16_t supTimeout; /*!< \brief Supervision timeout. */
768  uint16_t minCeLen; /*!< \brief Minimum CE length. */
769  uint16_t maxCeLen; /*!< \brief Maximum CE length. */
770 } hciConnSpec_t;
771 
772 /*! \brief Initiating parameters */
773 typedef struct
774 {
775  uint8_t filterPolicy; /*!< \brief Scan filter policy. */
776  uint8_t ownAddrType; /*!< \brief Address type used by this device. */
777  uint8_t peerAddrType; /*!< \brief Address type used for peer device. */
778  const uint8_t *pPeerAddr; /*!< \brief Address of peer device. */
779  uint8_t initPhys; /*!< \brief Initiating PHYs. */
781 
782 /*! \brief Initiating scan parameters */
783 typedef struct
784 {
785  uint16_t scanInterval; /*!< \brief Scan interval. */
786  uint16_t scanWindow; /*!< \brief Scan window. */
788 
789 /*! \brief Extended advertising parameters */
790 typedef struct
791 {
792  uint16_t advEventProp; /*!< \brief Advertising Event Properties. */
793  uint32_t priAdvInterMin; /*!< \brief Primary Advertising Interval Minimum. */
794  uint32_t priAdvInterMax; /*!< \brief Primary Advertising Interval Maximum. */
795  uint8_t priAdvChanMap; /*!< \brief Primary Advertising Channel Map. */
796  uint8_t ownAddrType; /*!< \brief Own Address Type. */
797  uint8_t peerAddrType; /*!< \brief Peer Address Type. */
798  uint8_t *pPeerAddr; /*!< \brief Peer Address. */
799  uint8_t advFiltPolicy; /*!< \brief Advertising Filter Policy. */
800  int8_t advTxPwr; /*!< \brief Advertising Tx Power. */
801  uint8_t priAdvPhy; /*!< \brief Primary Advertising PHY. */
802  uint8_t secAdvMaxSkip; /*!< \brief Secondary Advertising Maximum Skip. */
803  uint8_t secAdvPhy; /*!< \brief Secondary Advertising PHY. */
804  uint8_t advSetId; /*!< \brief Advertising set ID. */
805  uint8_t scanReqNotifEna; /*!< \brief Scan Request Notification Enable. */
807 
808 /*! \brief Extended advertising enable parameters */
809 typedef struct
810 {
811  uint8_t advHandle; /*!< \brief Advertising handle. */
812  uint16_t duration; /*!< \brief Advertising duration in 10 ms units. */
813  uint8_t maxEaEvents; /*!< \brief Maximum number of extended advertising events. */
815 
816 /*! \brief Extended scanning parameters */
817 typedef struct
818 {
819  uint16_t scanInterval; /*!< \brief Scan interval. */
820  uint16_t scanWindow; /*!< \brief Scan window. */
821  uint8_t scanType; /*!< \brief Scan type. */
823 
824 /*! \} */ /* STACK_HCI_CMD_API */
825 
826 /**************************************************************************************************
827  Callback Function Types
828 **************************************************************************************************/
829 
830 /*! \addtogroup STACK_HCI_EVT_API
831  * \{ */
832 
833 /*! \brief HCI event callback type.
834  *
835  * This callback function sends events from HCI to the stack.
836  *
837  * \param pEvent Pointer to HCI callback event structure.
838  *
839  * \return None.
840  */
841 typedef void (*hciEvtCback_t)(hciEvt_t *pEvent);
842 
843 /*! \brief HCI security callback type
844  *
845  * This callback function sends certain security events from HCI to the stack.
846  * The security events passed in this callback are the LE Rand Command Complete event and the
847  * LE Encrypt Command Complete event.
848  *
849  * \param pEvt Pointer to HCK callback event structure.
850  *
851  * \return None.
852  */
853 typedef void (*hciSecCback_t)(hciEvt_t *pEvent);
854 
855 /*! \} */ /* STACK_HCI_EVT_API */
856 
857 /*! \addtogroup STACK_HCI_ACL_API
858  * \{ */
859 
860 /*! \brief HCI ACL callback type
861  *
862  * This callback function sends a data from HCI to the stack.
863  *
864  * \param pData WSF buffer containing an ACL packet.
865  *
866  * \return None.
867  */
868 typedef void (*hciAclCback_t)(uint8_t *pData);
869 
870 /*! \brief HCI flow control callback type
871  *
872  * This callback function manages flow control in the TX path betrween the stack and HCI.
873  *
874  * \param connId Connection handle.
875  * \param flowDisabled TRUE if flow is disabled.
876  *
877  * \return None.
878  */
879 typedef void (*hciFlowCback_t)(uint16_t handle, bool_t flowDisabled);
880 
881 /*! \} */ /* STACK_HCI_ACL_API */
882 
883 /**************************************************************************************************
884  Function Declarations
885 **************************************************************************************************/
886 
887 /*! \addtogroup STACK_HCI_INIT_API
888  * \{ */
889 
890 /** \name HCI Initialization, Registration, Reset
891  *
892  */
893 /**@{*/
894 /*************************************************************************************************/
895 /*!
896  * \brief Register a callback for HCI events.
897  *
898  * \param evtCback Callback function.
899  *
900  * \return None.
901  */
902 /*************************************************************************************************/
903 void HciEvtRegister(hciEvtCback_t evtCback);
904 
905 /*************************************************************************************************/
906 /*!
907  * \brief Register a callback for certain HCI security events.
908  *
909  * \param secCback Callback function.
910  *
911  * \return None.
912  */
913 /*************************************************************************************************/
914 void HciSecRegister(hciSecCback_t secCback);
915 
916 /*************************************************************************************************/
917 /*!
918  * \brief Register callbacks for the HCI data path.
919  *
920  * \param aclCback ACL data callback function.
921  * \param flowCback Flow control callback function.
922  *
923  * \return None.
924  */
925 /*************************************************************************************************/
926 void HciAclRegister(hciAclCback_t aclCback, hciFlowCback_t flowCback);
927 
928 /*************************************************************************************************/
929 /*!
930  * \brief Initiate an HCI reset sequence.
931  *
932  * \return None.
933  */
934 /*************************************************************************************************/
935 void HciResetSequence(void);
936 
937 /*************************************************************************************************/
938 /*!
939  * \brief Vendor-specific controller initialization function.
940  *
941  * \param param Vendor-specific parameter.
942  *
943  * \return None.
944  */
945 /*************************************************************************************************/
946 void HciVsInit(uint8_t param);
947 
948 /*************************************************************************************************/
949 /*!
950  * \brief HCI core initialization.
951  *
952  * \return None.
953  */
954 /*************************************************************************************************/
955 void HciCoreInit(void);
956 
957 /*************************************************************************************************/
958 /*!
959  * \brief WSF event handler for core HCI.
960  *
961  * \param event WSF event mask.
962  * \param pMsg WSF message.
963  *
964  * \return None.
965  */
966 /*************************************************************************************************/
967 void HciCoreHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg);
968 
969 /*************************************************************************************************/
970 /*!
971  * \brief Set the maximum reassembled RX ACL packet length. Minimum value is 27.
972  *
973  * \param len ACL packet length.
974  *
975  * \return None.
976  */
977 /*************************************************************************************************/
978 void HciSetMaxRxAclLen(uint16_t len);
979 
980 /*************************************************************************************************/
981 /*!
982  * \brief Set TX ACL queue high and low watermarks.
983  *
984  * \param queueHi Disable flow on a connection when this many ACL buffers are queued.
985  * \param queueLo Disable flow on a connection when this many ACL buffers are queued.
986  *
987  * \return None.
988  */
989 /*************************************************************************************************/
990 void HciSetAclQueueWatermarks(uint8_t queueHi, uint8_t queueLo);
991 
992 /*************************************************************************************************/
993 /*!
994 * \brief Set LE supported features configuration mask.
995 *
996 * \param feat Feature bit to set or clear
997 * \param flag TRUE to set feature bit and FALSE to clear it
998 *
999 * \return None.
1000 */
1001 /*************************************************************************************************/
1002 void HciSetLeSupFeat(uint32_t feat, bool_t flag);
1003 /**@}*/
1004 
1005 /*************************************************************************************************/
1006 /*!
1007  * \brief Vendor-specific controller AE initialization function.
1008  *
1009  * \param param Vendor-specific parameter.
1010  *
1011  * \return None.
1012  */
1013 /*************************************************************************************************/
1014 void HciVsAeInit(uint8_t param);
1015 
1016 /*! \} */ /* STACK_HCI_INIT_API */
1017 
1018 /*! \addtogroup STACK_HCI_OPT_API
1019  * \{ */
1020 
1021 /** \name HCI Optimization Interface Functions
1022  * This is an optimized interface for certain HCI commands that simply read a
1023  * value. The stack uses these functions rather than their corresponding
1024  * functions in the command interface.
1025  * These functions can only be called after the reset sequence has been completed.
1026  */
1027 /**@{*/
1028 /*************************************************************************************************/
1029 /*!
1030  * \brief Return a pointer to the BD address of this device.
1031  *
1032  * \return Pointer to the BD address.
1033  */
1034 /*************************************************************************************************/
1035 uint8_t *HciGetBdAddr(void);
1036 
1037 /*************************************************************************************************/
1038 /*!
1039  * \brief Return the white list size.
1040  *
1041  * \return White list size.
1042  */
1043 /*************************************************************************************************/
1044 uint8_t HciGetWhiteListSize(void);
1045 
1046 /*************************************************************************************************/
1047 /*!
1048  * \brief Return the advertising transmit power.
1049  *
1050  * \return Advertising transmit power.
1051  */
1052 /*************************************************************************************************/
1053 int8_t HciGetAdvTxPwr(void);
1054 
1055 /*************************************************************************************************/
1056 /*!
1057  * \brief Return the ACL buffer size supported by the controller.
1058  *
1059  * \return ACL buffer size.
1060  */
1061 /*************************************************************************************************/
1062 uint16_t HciGetBufSize(void);
1063 
1064 /*************************************************************************************************/
1065 /*!
1066  * \brief Return the number of ACL buffers supported by the controller.
1067  *
1068  * \return Number of ACL buffers.
1069  */
1070 /*************************************************************************************************/
1071 uint8_t HciGetNumBufs(void);
1072 
1073 /*************************************************************************************************/
1074 /*!
1075  * \brief Return the states supported by the controller.
1076  *
1077  * \return Pointer to the supported states array.
1078  */
1079 /*************************************************************************************************/
1080 uint8_t *HciGetSupStates(void);
1081 
1082 /*************************************************************************************************/
1083 /*!
1084  * \brief Return the LE supported features supported by the controller.
1085  *
1086  * \return Supported features.
1087  */
1088 /*************************************************************************************************/
1089 uint32_t HciGetLeSupFeat(void);
1090 
1091 /*************************************************************************************************/
1092 /*!
1093  * \brief Get the maximum reassembled RX ACL packet length.
1094  *
1095  * \return ACL packet length.
1096  */
1097 /*************************************************************************************************/
1098 uint16_t HciGetMaxRxAclLen(void);
1099 
1100 /*************************************************************************************************/
1101 /*!
1102  * \brief Return the resolving list size.
1103  *
1104  * \return resolving list size.
1105  */
1106 /*************************************************************************************************/
1107 uint8_t HciGetResolvingListSize(void);
1108 
1109 /*************************************************************************************************/
1110 /*!
1111 * \brief Whether LL Privacy is supported.
1112 *
1113 * \return TRUE if LL Privacy is supported. FALSE, otherwise.
1114 */
1115 /*************************************************************************************************/
1116 bool_t HciLlPrivacySupported(void);
1117 
1118 /*************************************************************************************************/
1119 /*!
1120 * \brief Get the maximum advertisement (or scan response) data length supported by the Controller.
1121 *
1122 * \return Maximum advertisement data length.
1123 */
1124 /*************************************************************************************************/
1125 uint16_t HciGetMaxAdvDataLen(void);
1126 
1127 /*************************************************************************************************/
1128 /*!
1129 * \brief Get the maximum number of advertising sets supported by the Controller.
1130 *
1131 * \return Maximum number of advertising sets.
1132 */
1133 /*************************************************************************************************/
1134 uint8_t HciGetNumSupAdvSets(void);
1135 
1136 /*************************************************************************************************/
1137 /*!
1138 * \brief Whether LE Advertising Extensions is supported.
1139 *
1140 * \return TRUE if LE Advertising Extensions is supported. FALSE, otherwise.
1141 */
1142 /*************************************************************************************************/
1143 bool_t HciLeAdvExtSupported(void);
1144 
1145 /*************************************************************************************************/
1146 /*!
1147  * \brief Return the periodic advertising list size.
1148  *
1149  * \return periodic advertising list size.
1150  */
1151 /*************************************************************************************************/
1152 uint8_t HciGetPerAdvListSize(void);
1153 
1154 /*************************************************************************************************/
1155 /*!
1156  * \brief Return a pointer to the local version information.
1157  *
1158  * \return Pointer to the local version information.
1159  */
1160 /*************************************************************************************************/
1162 /**@}*/
1163 
1164 /*! \} */ /* STACK_HCI_OPT_API */
1165 
1166 /*! \addtogroup STACK_HCI_ACL_API
1167  * \{ */
1168 
1169 /** \name HCI ACL Data Functions
1170  * HCI ACL data interface
1171  */
1172 /**@{*/
1173 
1174 /*************************************************************************************************/
1175 /*!
1176  * \brief Send ACL Data from the stack to HCI.
1177  *
1178  * \param pAclData WSF buffer containing an ACL packet.
1179  *
1180  * \return None.
1181  */
1182 /*************************************************************************************************/
1183 void HciSendAclData(uint8_t *pAclData);
1184 /**@}*/
1185 
1186 /*! \} */ /* STACK_HCI_ACL_API */
1187 
1188 /*! \addtogroup STACK_HCI_CMD_API
1189  * \{ */
1190 
1191 /** \name HCI Command Interface Functions
1192  * HCI commands
1193  */
1194 /**@{*/
1195 /*************************************************************************************************/
1196 /*!
1197  * \brief HCI disconnect command.
1198  *
1199  * \param handle Connection handle.
1200  * \param reason Reason for disconnect.
1201  *
1202  * \return None.
1203  */
1204 /*************************************************************************************************/
1205 void HciDisconnectCmd(uint16_t handle, uint8_t reason);
1206 
1207 /*************************************************************************************************/
1208 /*!
1209  * \brief HCI LE add device white list command.
1210  *
1211  * \param addrType Address type.
1212  * \param pAddr Peer address.
1213  *
1214  * \return None.
1215  */
1216 /*************************************************************************************************/
1217 void HciLeAddDevWhiteListCmd(uint8_t addrType, uint8_t *pAddr);
1218 
1219 /*************************************************************************************************/
1220 /*!
1221  * \brief HCI LE clear white list command.
1222  *
1223  * \return None.
1224  */
1225 /*************************************************************************************************/
1226 void HciLeClearWhiteListCmd(void);
1227 
1228 /*************************************************************************************************/
1229 /*!
1230  * \brief HCI connection update command.
1231  *
1232  * \param handle Connection handle.
1233  * \param pConnSpec Update connection parameters.
1234  *
1235  * \return None.
1236  */
1237 /*************************************************************************************************/
1238 void HciLeConnUpdateCmd(uint16_t handle, hciConnSpec_t *pConnSpec);
1239 
1240 /*************************************************************************************************/
1241 /*!
1242  * \brief HCI LE create connection command.
1243  *
1244  * \param scanInterval Scan interval.
1245  * \param scanWindow Scan window.
1246  * \param filterPolicy Filter policy.
1247  * \param peerAddrType Peer address type.
1248  * \param pPeerAddr Peer address.
1249  * \param ownAddrType Own address type.
1250  * \param pConnSpec Connecdtion parameters.
1251  *
1252  * \return None.
1253  */
1254 /*************************************************************************************************/
1255 void HciLeCreateConnCmd(uint16_t scanInterval, uint16_t scanWindow, uint8_t filterPolicy,
1256  uint8_t peerAddrType, uint8_t *pPeerAddr, uint8_t ownAddrType,
1257  hciConnSpec_t *pConnSpec);
1258 
1259 /*************************************************************************************************/
1260 /*!
1261  * \brief HCI LE create connection cancel command.
1262  *
1263  * \return None.
1264  */
1265 /*************************************************************************************************/
1266 void HciLeCreateConnCancelCmd(void);
1267 
1268 /*************************************************************************************************/
1269 /*!
1270  * \brief HCI LE encrypt command.
1271  *
1272  * \param pKey Encryption key.
1273  * \param pData Data to encrypt.
1274  *
1275  * \return None.
1276  */
1277 /*************************************************************************************************/
1278 void HciLeEncryptCmd(uint8_t *pKey, uint8_t *pData);
1279 
1280 /*************************************************************************************************/
1281 /*!
1282  * \brief HCI LE long term key request negative reply command.
1283  *
1284  * \param handle Connection handle.
1285  *
1286  * \return None.
1287  */
1288 /*************************************************************************************************/
1289 void HciLeLtkReqNegReplCmd(uint16_t handle);
1290 
1291 /*************************************************************************************************/
1292 /*!
1293  * \brief HCI LE long term key request reply command.
1294  *
1295  * \param handle Connection handle.
1296  * \param pKey LTK.
1297  *
1298  * \return None.
1299  */
1300 /*************************************************************************************************/
1301 void HciLeLtkReqReplCmd(uint16_t handle, uint8_t *pKey);
1302 
1303 /*************************************************************************************************/
1304 /*!
1305  * \brief HCI LE random command.
1306  *
1307  * \return None.
1308  */
1309 /*************************************************************************************************/
1310 void HciLeRandCmd(void);
1311 
1312 /*************************************************************************************************/
1313 /*!
1314  * \brief HCI LE read advertising TX power command.
1315  *
1316  * \return None.
1317  */
1318 /*************************************************************************************************/
1319 void HciLeReadAdvTXPowerCmd(void);
1320 
1321 /*************************************************************************************************/
1322 /*!
1323  * \brief HCI LE read buffer size command.
1324  *
1325  * \return None.
1326  */
1327 /*************************************************************************************************/
1328 void HciLeReadBufSizeCmd(void);
1329 
1330 /*************************************************************************************************/
1331 /*!
1332  * \brief HCI LE read channel map command.
1333  *
1334  * \param handle Connection handle.
1335  *
1336  * \return None.
1337  */
1338 /*************************************************************************************************/
1339 void HciLeReadChanMapCmd(uint16_t handle);
1340 
1341 /*************************************************************************************************/
1342 /*!
1343  * \brief HCI LE read local supported feautre command.
1344  *
1345  * \return None.
1346  */
1347 /*************************************************************************************************/
1348 void HciLeReadLocalSupFeatCmd(void);
1349 
1350 /*************************************************************************************************/
1351 /*!
1352  * \brief HCI LE read remote feature command.
1353  *
1354  * \param handle Connection handle.
1355  *
1356  * \return None.
1357  */
1358 /*************************************************************************************************/
1359 void HciLeReadRemoteFeatCmd(uint16_t handle);
1360 
1361 /*************************************************************************************************/
1362 /*!
1363  * \brief HCI LE read supported states command.
1364  *
1365  * \return None.
1366  */
1367 /*************************************************************************************************/
1368 void HciLeReadSupStatesCmd(void);
1369 
1370 /*************************************************************************************************/
1371 /*!
1372  * \brief HCI LE read white list size command.
1373  *
1374  * \return None.
1375  */
1376 /*************************************************************************************************/
1377 void HciLeReadWhiteListSizeCmd(void);
1378 
1379 /*************************************************************************************************/
1380 /*!
1381  * \brief HCI LE remove device white list command.
1382  *
1383  * \param addrType Address type.
1384  * \param pAddr Peer address.
1385  *
1386  * \return None.
1387  */
1388 /*************************************************************************************************/
1389 void HciLeRemoveDevWhiteListCmd(uint8_t addrType, uint8_t *pAddr);
1390 
1391 /*************************************************************************************************/
1392 /*!
1393  * \brief HCI LE set advanced enable command.
1394  *
1395  * \param enable Enable.
1396  *
1397  * \return None.
1398  */
1399 /*************************************************************************************************/
1400 void HciLeSetAdvEnableCmd(uint8_t enable);
1401 
1402 /*************************************************************************************************/
1403 /*!
1404  * \brief HCI LE set advertising data command.
1405  *
1406  * \param len Length of advertising data.
1407  * \param pData Advertising data.
1408  *
1409  * \return None.
1410  */
1411 /*************************************************************************************************/
1412 void HciLeSetAdvDataCmd(uint8_t len, uint8_t *pData);
1413 
1414 /*************************************************************************************************/
1415 /*!
1416  * \brief HCI LE set advertising parameters command.
1417  *
1418  * \param advIntervalMin Adveritsing minimum interval.
1419  * \param advIntervalMax Advertising maximum interval.
1420  * \param advType Advertising type.
1421  * \param ownAddrType Own address type.
1422  * \param peerAddrType Peer address type.
1423  * \param pPeerAddr Peer address.
1424  * \param advChanMap Advertising channel map.
1425  * \param advFiltPolicy Advertising filter policy.
1426  *
1427  * \return None.
1428  */
1429 /*************************************************************************************************/
1430 void HciLeSetAdvParamCmd(uint16_t advIntervalMin, uint16_t advIntervalMax, uint8_t advType,
1431  uint8_t ownAddrType, uint8_t peerAddrType, uint8_t *pPeerAddr,
1432  uint8_t advChanMap, uint8_t advFiltPolicy);
1433 
1434 /*************************************************************************************************/
1435 /*!
1436  * \brief HCI LE set event mask command.
1437  *
1438  * \param pLeEventMask LE Event mask.
1439  *
1440  * \return None.
1441  */
1442 /*************************************************************************************************/
1443 void HciLeSetEventMaskCmd(uint8_t *pLeEventMask);
1444 
1445 /*************************************************************************************************/
1446 /*!
1447  * \brief HCI set host channel class command.
1448  *
1449  * \param pChanMap Channel map.
1450  *
1451  * \return None.
1452  */
1453 /*************************************************************************************************/
1454 void HciLeSetHostChanClassCmd(uint8_t *pChanMap);
1455 
1456 /*************************************************************************************************/
1457 /*!
1458  * \brief HCI LE set random address command.
1459  *
1460  * \param pAddr Randon address.
1461  *
1462  * \return None.
1463  */
1464 /*************************************************************************************************/
1465 void HciLeSetRandAddrCmd(uint8_t *pAddr);
1466 
1467 /*************************************************************************************************/
1468 /*!
1469  * \brief HCI LE set scan enable command.
1470  *
1471  * \param enable Enable.
1472  * \param filterDup Filter duplicates.
1473  *
1474  * \return None.
1475  */
1476 /*************************************************************************************************/
1477 void HciLeSetScanEnableCmd(uint8_t enable, uint8_t filterDup);
1478 
1479 /*************************************************************************************************/
1480 /*!
1481  * \brief HCI set scan parameters command.
1482  *
1483  * \param scanType Scan type.
1484  * \param scanInterval Scan interval.
1485  * \param scanWindow Scan window.
1486  * \param ownAddrType Own address type.
1487  * \param scanFiltPolicy Scanning filter policy.
1488  *
1489  * \return None.
1490  */
1491 /*************************************************************************************************/
1492 void HciLeSetScanParamCmd(uint8_t scanType, uint16_t scanInterval, uint16_t scanWindow,
1493  uint8_t ownAddrType, uint8_t scanFiltPolicy);
1494 
1495 /*************************************************************************************************/
1496 /*!
1497  * \brief HCI LE set scan response data.
1498  *
1499  * \param len Scan response data length.
1500  * \param pData Scan response data.
1501  *
1502  * \return None.
1503  */
1504 /*************************************************************************************************/
1505 void HciLeSetScanRespDataCmd(uint8_t len, uint8_t *pData);
1506 
1507 /*************************************************************************************************/
1508 /*!
1509  * \brief HCI LE start encryption command.
1510  *
1511  * \param handle Connection handle.
1512  * \param pRand Random number.
1513  * \param diversifier Diversifier.
1514  * \param pKey Encryption key.
1515  *
1516  * \return None.
1517  */
1518 /*************************************************************************************************/
1519 void HciLeStartEncryptionCmd(uint16_t handle, uint8_t *pRand, uint16_t diversifier, uint8_t *pKey);
1520 
1521 /*************************************************************************************************/
1522 /*!
1523  * \brief HCI read BD address command.
1524  *
1525  * \return None.
1526  */
1527 /*************************************************************************************************/
1528 void HciReadBdAddrCmd(void);
1529 
1530 /*************************************************************************************************/
1531 /*!
1532  * \brief HCI read buffer size command.
1533  *
1534  * \return None.
1535  */
1536 /*************************************************************************************************/
1537 void HciReadBufSizeCmd(void);
1538 
1539 /*************************************************************************************************/
1540 /*!
1541  * \brief HCI read local supported feature command.
1542  *
1543  * \return None.
1544  */
1545 /*************************************************************************************************/
1546 void HciReadLocalSupFeatCmd(void);
1547 
1548 /*************************************************************************************************/
1549 /*!
1550  * \brief HCI read local version info command.
1551  *
1552  * \return None.
1553  */
1554 /*************************************************************************************************/
1555 void HciReadLocalVerInfoCmd(void);
1556 
1557 /*************************************************************************************************/
1558 /*!
1559  * \brief HCI read remote version info command.
1560  *
1561  * \param handle Connection handle.
1562  *
1563  * \return None.
1564  */
1565 /*************************************************************************************************/
1566 void HciReadRemoteVerInfoCmd(uint16_t handle);
1567 
1568 /*************************************************************************************************/
1569 /*!
1570  * \brief HCI read RSSI command.
1571  *
1572  * \param handle Connection handle.
1573  *
1574  * \return None.
1575  */
1576 /*************************************************************************************************/
1577 void HciReadRssiCmd(uint16_t handle);
1578 
1579 /*************************************************************************************************/
1580 /*!
1581  * \brief HCI read Tx power level command.
1582  *
1583  * \param handle Connection handle.
1584  * \param type Type.
1585  *
1586  * \return None.
1587  */
1588 /*************************************************************************************************/
1589 void HciReadTxPwrLvlCmd(uint16_t handle, uint8_t type);
1590 
1591 /*************************************************************************************************/
1592 /*!
1593  * \brief HCI reset command.
1594  *
1595  * \return None.
1596  */
1597 /*************************************************************************************************/
1598 void HciResetCmd(void);
1599 
1600 /*************************************************************************************************/
1601 /*!
1602  * \brief HCI set event mask command.
1603  *
1604  * \param pEventMask Page 1 of the event mask.
1605  *
1606  * \return None.
1607  */
1608 /*************************************************************************************************/
1609 void HciSetEventMaskCmd(uint8_t *pEventMask);
1610 
1611 /*************************************************************************************************/
1612 /*!
1613  * \brief HCI set event page 2 mask command.
1614  *
1615  * \param pEventMask Page 2 of the event mask.
1616  * \return None.
1617  */
1618 /*************************************************************************************************/
1619 void HciSetEventMaskPage2Cmd(uint8_t *pEventMask);
1620 
1621 /*************************************************************************************************/
1622 /*!
1623  * \brief HCI read authenticated payload timeout command.
1624  *
1625  * \param handle Connection handle.
1626  *
1627  * \return None.
1628  */
1629 /*************************************************************************************************/
1630 void HciReadAuthPayloadTimeout(uint16_t handle);
1631 
1632 /*************************************************************************************************/
1633 /*!
1634  * \brief HCI write authenticated payload timeout command.
1635  *
1636  * \param handle Connection handle.
1637  * \param timeout Timeout value.
1638  *
1639  * \return None.
1640  */
1641 /*************************************************************************************************/
1642 void HciWriteAuthPayloadTimeout(uint16_t handle, uint16_t timeout);
1643 
1644 /*************************************************************************************************/
1645 /*!
1646  * \brief HCI add device to resolving list command.
1647  *
1648  * \param peerAddrType Peer identity address type.
1649  * \param pPeerIdentityAddr Peer identity address.
1650  * \param pPeerIrk Peer IRK.
1651  * \param pLocalIrk Local IRK.
1652  *
1653  * \return None.
1654  */
1655 /*************************************************************************************************/
1656 void HciLeAddDeviceToResolvingListCmd(uint8_t peerAddrType, const uint8_t *pPeerIdentityAddr,
1657  const uint8_t *pPeerIrk, const uint8_t *pLocalIrk);
1658 
1659 /*************************************************************************************************/
1660 /*!
1661  * \brief HCI remove device from resolving list command.
1662  *
1663  * \param peerAddrType Peer identity address type.
1664  * \param pPeerIdentityAddr Peer identity address.
1665  *
1666  * \return None.
1667  */
1668 /*************************************************************************************************/
1669 void HciLeRemoveDeviceFromResolvingList(uint8_t peerAddrType, const uint8_t *pPeerIdentityAddr);
1670 
1671 /*************************************************************************************************/
1672 /*!
1673  * \brief HCI clear resolving list command.
1674  *
1675  * \return None.
1676  */
1677 /*************************************************************************************************/
1678 void HciLeClearResolvingList(void);
1679 
1680 /*************************************************************************************************/
1681 /*!
1682  * \brief HCI read resolving list command.
1683  *
1684  * \return None.
1685  */
1686 /*************************************************************************************************/
1687 void HciLeReadResolvingListSize(void);
1688 
1689 /*************************************************************************************************/
1690 /*!
1691  * \brief HCI read peer resolvable address command.
1692  *
1693  * \param addrType Peer identity address type.
1694  * \param pIdentityAddr Peer identity address.
1695  *
1696  * \return None.
1697  */
1698 /*************************************************************************************************/
1699 void HciLeReadPeerResolvableAddr(uint8_t addrType, const uint8_t *pIdentityAddr);
1700 
1701 /*************************************************************************************************/
1702 /*!
1703  * \brief HCI read local resolvable address command.
1704  *
1705  * \param addrType Peer identity address type.
1706  * \param pIdentityAddr Peer identity address.
1707  *
1708  * \return None.
1709  */
1710 /*************************************************************************************************/
1711 void HciLeReadLocalResolvableAddr(uint8_t addrType, const uint8_t *pIdentityAddr);
1712 
1713 /*************************************************************************************************/
1714 /*!
1715  * \brief HCI enable or disable address resolution command.
1716  *
1717  * \param enable Set to TRUE to enable address resolution or FALSE to disable address
1718  * resolution.
1719  *
1720  * \return None.
1721  */
1722 /*************************************************************************************************/
1723 void HciLeSetAddrResolutionEnable(uint8_t enable);
1724 
1725 /*************************************************************************************************/
1726 /*!
1727  * \brief HCI set resolvable private address timeout command.
1728  *
1729  * \param rpaTimeout Timeout measured in seconds.
1730  *
1731  * \return None.
1732  */
1733 /*************************************************************************************************/
1734 void HciLeSetResolvablePrivateAddrTimeout(uint16_t rpaTimeout);
1735 
1736 /*************************************************************************************************/
1737 /*!
1738  * \brief HCI LE set privacy mode command.
1739  *
1740  * \param addrType Peer identity address type.
1741  * \param pAddr Peer identity address.
1742  * \param mode Privacy mode.
1743  *
1744  * \return None.
1745  */
1746 /*************************************************************************************************/
1747 void HciLeSetPrivacyModeCmd(uint8_t addrType, uint8_t *pAddr, uint8_t mode);
1748 
1749 /*************************************************************************************************/
1750 /*!
1751 * \brief HCI read PHY command.
1752 *
1753 * \param handle Connection handle.
1754 *
1755 * \return None.
1756 */
1757 /*************************************************************************************************/
1758 void HciLeReadPhyCmd(uint16_t handle);
1759 
1760 /*************************************************************************************************/
1761 /*!
1762 * \brief HCI set default PHY command.
1763 *
1764 * \param allPhys All PHYs.
1765 * \param txPhys Tx PHYs.
1766 * \param rxPhys Rx PHYs.
1767 *
1768 * \return None.
1769 */
1770 /*************************************************************************************************/
1771 void HciLeSetDefaultPhyCmd(uint8_t allPhys, uint8_t txPhys, uint8_t rxPhys);
1772 
1773 /*************************************************************************************************/
1774 /*!
1775 * \brief HCI set PHY command.
1776 *
1777 * \param handle Connection handle.
1778 * \param allPhys All PHYs.
1779 * \param txPhys Tx PHYs.
1780 * \param rxPhys Rx PHYs.
1781 * \param phyOptions PHY options.
1782 *
1783 * \return None.
1784 */
1785 /*************************************************************************************************/
1786 void HciLeSetPhyCmd(uint16_t handle, uint8_t allPhys, uint8_t txPhys, uint8_t rxPhys, uint16_t phyOptions);
1787 
1788 /*************************************************************************************************/
1789 /*!
1790  * \brief HCI vencor specific command.
1791  *
1792  * \param opcode Opcode.
1793  * \param len Length of pData.
1794  * \param pData Command data.
1795  *
1796  * \return None.
1797  */
1798 /*************************************************************************************************/
1799 void HciVendorSpecificCmd(uint16_t opcode, uint8_t len, uint8_t *pData);
1800 
1801 /*************************************************************************************************/
1802 /*!
1803  * \brief HCI Remote Connection Parameter Request Reply.
1804  *
1805  * \param handle Connection handle.
1806  * \param intervalMin Interval minimum.
1807  * \param intervalMax Interval maximum.
1808  * \param latency Connection latency.
1809  * \param timeout Connection timeout.
1810  * \param minCeLen Minimum connection event length.
1811  * \param maxCeLen Maximum connection event length.
1812  *
1813  * \return None.
1814  */
1815 /*************************************************************************************************/
1816 void HciLeRemoteConnParamReqReply(uint16_t handle, uint16_t intervalMin, uint16_t intervalMax, uint16_t latency,
1817  uint16_t timeout, uint16_t minCeLen, uint16_t maxCeLen);
1818 
1819 /*************************************************************************************************/
1820 /*!
1821  * \brief HCI Remote Connection Parameter Request Negative Reply.
1822  *
1823  * \param handle Connection handle.
1824  * \param reason Negative reply reason.
1825  *
1826  * \return None.
1827  */
1828 /*************************************************************************************************/
1829 void HciLeRemoteConnParamReqNegReply(uint16_t handle, uint8_t reason);
1830 
1831 /*************************************************************************************************/
1832 /*!
1833  * \brief HCI LE Set Data Length.
1834  *
1835  * \param handle Connection handle.
1836  * \param txOctets Tx octets.
1837  * \param txTime Tx time.
1838  *
1839  * \return None.
1840  */
1841 /*************************************************************************************************/
1842 void HciLeSetDataLen(uint16_t handle, uint16_t txOctets, uint16_t txTime);
1843 
1844 /*************************************************************************************************/
1845 /*!
1846  * \brief HCI LE Read Default Data Length.
1847  *
1848  * \return None.
1849  */
1850 /*************************************************************************************************/
1851 void HciLeReadDefDataLen(void);
1852 
1853 /*************************************************************************************************/
1854 /*!
1855  * \brief HCI LE Write Default Data Length.
1856  *
1857  * \param suggestedMaxTxOctets Suggested maximum Tx octets.
1858  * \param suggestedMaxTxTime Suggested maximum Tx time.
1859  *
1860  *
1861  * \return None.
1862  */
1863 /*************************************************************************************************/
1864 void HciLeWriteDefDataLen(uint16_t suggestedMaxTxOctets, uint16_t suggestedMaxTxTime);
1865 
1866 /*************************************************************************************************/
1867 /*!
1868  * \brief HCI LE Read Local P-256 Public Key.
1869  *
1870  * \return None.
1871  */
1872 /*************************************************************************************************/
1873 void HciLeReadLocalP256PubKey(void);
1874 
1875 /*************************************************************************************************/
1876 /*!
1877  * \brief HCI LE Generate DH Key.
1878  *
1879  * \param pPubKeyX Public key X-coordinate.
1880  * \param pPubKeyY Public key Y-coordinate.
1881  *
1882  * \return None.
1883  */
1884 /*************************************************************************************************/
1885 void HciLeGenerateDHKey(uint8_t *pPubKeyX, uint8_t *pPubKeyY);
1886 
1887 /*************************************************************************************************/
1888 /*!
1889  * \brief HCI LE Generate DH Key Version 2.
1890  *
1891  * \param pPubKeyX Public key X-coordinate.
1892  * \param pPubKeyY Public key Y-coordinate.
1893  * \param keyType Key type.
1894  *
1895  * \return None.
1896  */
1897 /*************************************************************************************************/
1898 void HciLeGenerateDHKeyV2(uint8_t *pPubKeyX, uint8_t *pPubKeyY, uint8_t keyType);
1899 
1900 /*************************************************************************************************/
1901 /*!
1902  * \brief HCI LE Read Maximum Data Length.
1903  *
1904  * \return None.
1905  */
1906 /*************************************************************************************************/
1907 void HciLeReadMaxDataLen(void);
1908 
1909 /*************************************************************************************************/
1910 /*!
1911  * \brief HCI write authenticated payload timeout command.
1912  *
1913  * \param handle Connection handle.
1914  * \param timeout Timeout value.
1915  *
1916  * \return None.
1917  */
1918 /*************************************************************************************************/
1919 void HciWriteAuthPayloadTimeout(uint16_t handle, uint16_t timeout);
1920 
1921 /*************************************************************************************************/
1922 /*!
1923  * \brief HCI LE read transmit power command.
1924  *
1925  * \return None.
1926  */
1927 /*************************************************************************************************/
1928 void HciLeReadTxPower(void);
1929 
1930 /*************************************************************************************************/
1931 /*!
1932  * \brief HCI LE read RF path compensation command.
1933  *
1934  * \return None.
1935  */
1936 /*************************************************************************************************/
1937 void HciLeReadRfPathComp(void);
1938 
1939 /*************************************************************************************************/
1940 /*!
1941  * \brief HCI LE write RF path compensation command.
1942  *
1943  * \param txPathComp RF transmit path compensation value.
1944  * \param rxPathComp RF receive path compensation value.
1945  *
1946  * \return None.
1947  */
1948 /*************************************************************************************************/
1949 void HciLeWriteRfPathComp(int16_t txPathComp, int16_t rxPathComp);
1950 /**@}*/
1951 
1952 /** \name HCI AE Advertiser Interface
1953  * HCI Advertising Extension functions used by the Advertiser role.
1954  */
1955 /**@{*/
1956 /*************************************************************************************************/
1957 /*!
1958  * \brief HCI LE set advertising set random device address command.
1959  *
1960  * \param advHandle Advertising handle.
1961  * \param pAddr Random device address.
1962  *
1963  * \return None.
1964  */
1965 /*************************************************************************************************/
1966 void HciLeSetAdvSetRandAddrCmd(uint8_t advHandle, const uint8_t *pAddr);
1967 
1968 /*************************************************************************************************/
1969 /*!
1970  * \brief HCI LE set extended advertising parameters command.
1971  *
1972  * \param advHandle Advertising handle.
1973  * \param pExtAdvParam Extended advertising parameters.
1974  *
1975  * \return None.
1976  */
1977 /*************************************************************************************************/
1978 void HciLeSetExtAdvParamCmd(uint8_t advHandle, hciExtAdvParam_t *pExtAdvParam);
1979 
1980 /*************************************************************************************************/
1981 /*!
1982  * \brief HCI LE set extended advertising data command.
1983  *
1984  * \param advHandle Advertising handle.
1985  * \param op Operation.
1986  * \param fragPref Fragment preference.
1987  * \param len Data buffer length.
1988  * \param pData Advertising data buffer.
1989  *
1990  * \return None.
1991  */
1992 /*************************************************************************************************/
1993 void HciLeSetExtAdvDataCmd(uint8_t advHandle, uint8_t op, uint8_t fragPref, uint8_t len,
1994  const uint8_t *pData);
1995 
1996 /*************************************************************************************************/
1997 /*!
1998  * \brief HCI LE set extended scan response data command.
1999  *
2000  * \param advHandle Advertising handle.
2001  * \param op Operation.
2002  * \param fragPref Fragment preference.
2003  * \param len Data buffer length.
2004  * \param pData Scan response data buffer.
2005  *
2006  * \return None.
2007  */
2008 /*************************************************************************************************/
2009 void HciLeSetExtScanRespDataCmd(uint8_t advHandle, uint8_t op, uint8_t fragPref, uint8_t len,
2010  const uint8_t *pData);
2011 
2012 /*************************************************************************************************/
2013 /*!
2014  * \brief HCI LE set extended advertising enable command.
2015  *
2016  * \param enable Set to TRUE to enable advertising, FALSE to disable advertising.
2017  * \param numSets Number of advertising sets.
2018  * \param pEnableParam Advertising enable parameter array.
2019  *
2020  * \return None.
2021  */
2022 /*************************************************************************************************/
2023 void HciLeSetExtAdvEnableCmd(uint8_t enable, uint8_t numSets, hciExtAdvEnableParam_t *pEnableParam);
2024 
2025 /*************************************************************************************************/
2026 /*!
2027  * \brief HCI LE read maximum advertising data length command.
2028  *
2029  * \return None.
2030  */
2031 /*************************************************************************************************/
2032 void HciLeReadMaxAdvDataLen(void);
2033 
2034 /*************************************************************************************************/
2035 /*!
2036  * \brief HCI LE read number of supported advertising sets command.
2037  *
2038  * \return None.
2039  */
2040 /*************************************************************************************************/
2041 void HciLeReadNumSupAdvSets(void);
2042 
2043 /*************************************************************************************************/
2044 /*!
2045  * \brief HCI LE remove advertising set command.
2046  *
2047  * \param advHandle Advertising handle.
2048  *
2049  * \return Status error code.
2050  */
2051 /*************************************************************************************************/
2052 void HciLeRemoveAdvSet(uint8_t advHandle);
2053 
2054 /*************************************************************************************************/
2055 /*!
2056  * \brief HCI LE clear advertising sets command.
2057  *
2058  * \return None.
2059  */
2060 /*************************************************************************************************/
2061 void HciLeClearAdvSets(void);
2062 
2063 /*************************************************************************************************/
2064 /*!
2065  * \brief HCI LE set periodic advertising parameters command.
2066  *
2067  * \param advHandle Advertising handle.
2068  * \param advIntervalMin Periodic advertising interval minimum.
2069  * \param advIntervalMax Periodic advertising interval maximum.
2070  * \param advProps Periodic advertising properties.
2071  *
2072  * \return None.
2073  */
2074 /*************************************************************************************************/
2075 void HciLeSetPerAdvParamCmd(uint8_t advHandle, uint16_t advIntervalMin, uint16_t advIntervalMax,
2076  uint16_t advProps);
2077 
2078 /*************************************************************************************************/
2079 /*!
2080  * \brief HCI LE set periodic advertising data command.
2081  *
2082  * \param advHandle Advertising handle.
2083  * \param op Operation.
2084  * \param len Data buffer length.
2085  * \param pData Advertising data buffer.
2086  *
2087  * \return None.
2088  */
2089 /*************************************************************************************************/
2090 void HciLeSetPerAdvDataCmd(uint8_t advHandle, uint8_t op, uint8_t len, const uint8_t *pData);
2091 
2092 /*************************************************************************************************/
2093 /*!
2094  * \brief HCI LE set periodic advertising enable command.
2095  *
2096  * \param enable Set to TRUE to enable advertising, FALSE to disable advertising.
2097  * \param advHandle Advertising handle.
2098  *
2099  * \return None.
2100  */
2101 /*************************************************************************************************/
2102 void HciLeSetPerAdvEnableCmd(uint8_t enable, uint8_t advHandle);
2103 /**@}*/
2104 
2105 /** \name HCI AE Scanner Interface
2106  * HCI Advertising Extension functions used in the Scanner role.
2107  */
2108 /**@{*/
2109 /*************************************************************************************************/
2110 /*!
2111  * \brief HCI LE set extended scanning parameters command.
2112  *
2113  * \param ownAddrType Address type used by this device.
2114  * \param scanFiltPolicy Scan filter policy.
2115  * \param scanPhys Scanning PHYs.
2116  * \param pScanParam Scanning parameter array.
2117  *
2118  * \return None.
2119  */
2120 /*************************************************************************************************/
2121 void HciLeSetExtScanParamCmd(uint8_t ownAddrType, uint8_t scanFiltPolicy, uint8_t scanPhys,
2122  hciExtScanParam_t *pScanParam);
2123 
2124 /*************************************************************************************************/
2125 /*!
2126  * \brief HCI LE extended scan enable command.
2127  *
2128  * \param enable Set to TRUE to enable scanning, FALSE to disable scanning.
2129  * \param filterDup Set to TRUE to filter duplicates.
2130  * \param duration Duration.
2131  * \param period Period.
2132  *
2133  * \return None.
2134  */
2135 /*************************************************************************************************/
2136 void HciLeExtScanEnableCmd(uint8_t enable, uint8_t filterDup, uint16_t duration, uint16_t period);
2137 
2138 /*************************************************************************************************/
2139 /*!
2140  * \brief HCI LE extended create connection command.
2141  *
2142  * \param pInitParam Initiating parameters.
2143  * \param pScanParam Initiating scan parameters.
2144  * \param pConnSpec Connection specification.
2145  *
2146  * \return None.
2147  */
2148 /*************************************************************************************************/
2149 void HciLeExtCreateConnCmd(hciExtInitParam_t *pInitParam, hciExtInitScanParam_t *pScanParam,
2150  hciConnSpec_t *pConnSpec);
2151 
2152 /*************************************************************************************************/
2153 /*!
2154  * \brief HCI LE periodic advertising create sync command.
2155  *
2156  * \param options options.
2157  * \param advSid Advertising SID.
2158  * \param advAddrType Advertiser address type.
2159  * \param pAdvAddr Advertiser address.
2160  * \param skip Number of periodic advertising packets that can be skipped after
2161  * successful receive.
2162  * \param syncTimeout Synchronization timeout.
2163  * \param unused Reserved for future use (must be zero).
2164  *
2165  * \return None.
2166  */
2167 /*************************************************************************************************/
2168 void HciLePerAdvCreateSyncCmd(uint8_t options, uint8_t advSid, uint8_t advAddrType,
2169  uint8_t *pAdvAddr, uint16_t skip, uint16_t syncTimeout, uint8_t unused);
2170 
2171 /*************************************************************************************************/
2172 /*!
2173  * \brief HCI LE periodic advertising create sync cancel command.
2174  *
2175  * \return None.
2176  */
2177 /*************************************************************************************************/
2179 
2180 /*************************************************************************************************/
2181 /*!
2182  * \brief HCI LE periodic advertising terminate sync command.
2183  *
2184  * \param syncHandle Sync handle.
2185  *
2186  * \return None.
2187  */
2188 /*************************************************************************************************/
2189 void HciLePerAdvTerminateSyncCmd(uint16_t syncHandle);
2190 
2191 /*************************************************************************************************/
2192 /*!
2193  * \brief HCI LE add device to periodic advertiser list command.
2194  *
2195  * \param advAddrType Advertiser address type.
2196  * \param pAdvAddr Advertiser address.
2197  * \param advSid Advertising SID.
2198  *
2199  * \return None.
2200  */
2201 /*************************************************************************************************/
2202 void HciLeAddDeviceToPerAdvListCmd(uint8_t advAddrType, uint8_t *pAdvAddr, uint8_t advSid);
2203 
2204 /*************************************************************************************************/
2205 /*!
2206  * \brief HCI LE remove device from periodic advertiser list command.
2207  *
2208  * \param advAddrType Advertiser address type.
2209  * \param pAdvAddr Advertiser address.
2210  * \param advSid Advertising SID.
2211  *
2212  * \return None.
2213  */
2214 /*************************************************************************************************/
2215 void HciLeRemoveDeviceFromPerAdvListCmd(uint8_t advAddrType, uint8_t *pAdvAddr, uint8_t advSid);
2216 
2217 /*************************************************************************************************/
2218 /*!
2219  * \brief HCI LE clear periodic advertiser list command.
2220  *
2221  * \return None.
2222  */
2223 /*************************************************************************************************/
2224 void HciLeClearPerAdvListCmd(void);
2225 
2226 /*************************************************************************************************/
2227 /*!
2228  * \brief HCI LE read periodic advertiser size command.
2229  *
2230  * \return None.
2231  */
2232 /*************************************************************************************************/
2233 void HciLeReadPerAdvListSizeCmd(void);
2234 
2235 /*************************************************************************************************/
2236 /*!
2237  * \brief HCI LE set periodic advertising receive enable command.
2238  *
2239  * \param syncHandle Periodic sync handle.
2240  * \param enable TRUE to enable reports, FALSE to disable reports.
2241  *
2242  * \return None.
2243  */
2244 /*************************************************************************************************/
2245 void HciLeSetPerAdvRcvEnableCmd(uint16_t syncHandle, uint8_t enable);
2246 
2247 /*************************************************************************************************/
2248 /*!
2249  * \brief HCI LE periodic advertising sync transfer command.
2250  *
2251  * \param connHandle Connection handle.
2252  * \param serviceData Service data provided by the host.
2253  * \param syncHandle Periodic sync handle.
2254  *
2255  * \return None.
2256  */
2257 /*************************************************************************************************/
2258 void HciLePerAdvSyncTrsfCmd(uint16_t connHandle, uint16_t serviceData, uint16_t syncHandle);
2259 
2260 /*************************************************************************************************/
2261 /*!
2262  * \brief HCI LE set periodic advertising set info transfer command.
2263  *
2264  * \param connHandle Connection handle.
2265  * \param serviceData Service data provided by the host.
2266  * \param advHandle Handle to identify an advertising set.
2267  *
2268  * \return None.
2269  */
2270 /*************************************************************************************************/
2271 void HciLePerAdvSetInfoTrsfCmd(uint16_t connHandle, uint16_t serviceData, uint8_t advHandle);
2272 
2273 /*************************************************************************************************/
2274 /*!
2275  * \brief HCI LE set periodic advertising sync transfer parameters command.
2276  *
2277  * \param connHandle Connection handle.
2278  * \param mode Periodic sync advertising sync transfer mode.
2279  * \param skip The number of periodic advertising packets that can be skipped after
2280  * a successful receive.
2281  * \param syncTimeout Synchronization timeout for the periodic advertising.
2282  * \param cteType Constant tone extension type(Used in AoD/AoA).
2283  *
2284  * \return None.
2285  */
2286 /*************************************************************************************************/
2287 void HciLeSetPerAdvSyncTrsfParamsCmd(uint16_t connHandle, uint8_t mode, uint16_t skip,
2288  uint16_t syncTimeout, uint8_t cteType);
2289 
2290 /*************************************************************************************************/
2291 /*!
2292  * \brief HCI LE set default periodic advertising sync transfer parameters command.
2293  *
2294  * \param mode Periodic sync advertising sync transfer mode.
2295  * \param skip The number of periodic advertising packets that can be skipped after
2296  * a successful receive.
2297  * \param syncTimeout Synchronization timeout for the periodic advertising.
2298  * \param cteType Constant tone extension type(Used in AoD/AoA).
2299  *
2300  * \return None.
2301  */
2302 /*************************************************************************************************/
2303 void HciLeSetDefaultPerAdvSyncTrsfParamsCmd(uint8_t mode, uint16_t skip, uint16_t syncTimeout,
2304  uint8_t cteType);
2305 
2306 /*************************************************************************************************/
2307 /*!
2308  * \brief HCI LE set connection CTE receive parameters command.
2309  *
2310  * \param connHandle Connection handle.
2311  * \param samplingEnable TRUE to enable Connection IQ sampling, FALSE to disable it.
2312  * \param slotDurations Switching and sampling slot durations to be used while receiving CTE.
2313  * \param switchPatternLen Number of Antenna IDs in switching pattern.
2314  * \param pAntennaIDs List of Antenna IDs in switching pattern.
2315  *
2316  * \return None.
2317  */
2318 /*************************************************************************************************/
2319 void HciLeSetConnCteRxParamsCmd(uint16_t connHandle, uint8_t samplingEnable, uint8_t slotDurations,
2320  uint8_t switchPatternLen, uint8_t *pAntennaIDs);
2321 
2322 /*************************************************************************************************/
2323 /*!
2324  * \brief HCI LE set connection CTE transmit parameters command.
2325  *
2326  * \param connHandle Connection handle.
2327  * \param cteTypeBits Permitted CTE type bits used for transmitting CTEs requested by peer.
2328  * \param switchPatternLen Number of Antenna IDs in switching pattern.
2329  * \param pAntennaIDs List of Antenna IDs in switching pattern.
2330  *
2331  * \return None.
2332  */
2333 /*************************************************************************************************/
2334 void HciLeSetConnCteTxParamsCmd(uint16_t connHandle, uint8_t cteTypeBits, uint8_t switchPatternLen,
2335  uint8_t *pAntennaIDs);
2336 
2337 /*************************************************************************************************/
2338 /*!
2339  * \brief HCI LE connection CTE request enable command.
2340  *
2341  * \param connHandle Connection handle.
2342  * \param enable TRUE to enable CTE request for connection, FALSE to disable it.
2343  * \param cteReqInt CTE request interval.
2344  * \param reqCteLen Minimum length of CTE being requested in 8 us units.
2345  * \param reqCteType Requested CTE type.
2346  *
2347  * \return None.
2348  */
2349 /*************************************************************************************************/
2350 void HciLeConnCteReqEnableCmd(uint16_t connHandle, uint8_t enable, uint16_t cteReqInt,
2351  uint8_t reqCteLen, uint8_t reqCteType);
2352 
2353 /*************************************************************************************************/
2354 /*!
2355  * \brief HCI LE connection CTE response enable command.
2356  *
2357  * \param connHandle Connection handle.
2358  * \param enable TRUE to enable CTE response for connection, FALSE to disable it.
2359  *
2360  * \return None.
2361  */
2362 /*************************************************************************************************/
2363 void HciLeConnCteRspEnableCmd(uint16_t connHandle, uint8_t enable);
2364 
2365 /*************************************************************************************************/
2366 /*!
2367  * \brief HCI LE read antenna information command.
2368  *
2369  * \return None.
2370  */
2371 /*************************************************************************************************/
2372 void HciLeReadAntennaInfoCmd(void);
2373 /**@}*/
2374 
2375 /*! \} */ /* STACK_HCI_CMD_API */
2376 
2377 #ifdef __cplusplus
2378 };
2379 #endif
2380 
2381 #endif /* HCI_API_H */
void HciLePerAdvSyncTrsfCmd(uint16_t connHandle, uint16_t serviceData, uint16_t syncHandle)
HCI LE periodic advertising sync transfer command.
hciLePerAdvSyncLostEvt_t lePerAdvSyncLost
LE periodic advertising synchronization lost.
Definition: hci_api.h:742
uint16_t connIntervalMax
Maximum connection interval.
Definition: hci_api.h:765
void HciLeReadSupStatesCmd(void)
HCI LE read supported states command.
hciLePerAdvSyncTrsfCmdCmplEvt_t lePerAdvSyncTrsfCmdCmpl
LE periodic advertising sync transfer command complete.
Definition: hci_api.h:745
void HciSetAclQueueWatermarks(uint8_t queueHi, uint8_t queueLo)
Set TX ACL queue high and low watermarks.
uint8_t len
length of advertising or scan response data.
Definition: hci_api.h:172
uint8_t priAdvPhy
Primary Advertising PHY.
Definition: hci_api.h:801
void HciLeRandCmd(void)
HCI LE random command.
void HciLeRemoveDeviceFromPerAdvListCmd(uint8_t advAddrType, uint8_t *pAdvAddr, uint8_t advSid)
HCI LE remove device from periodic advertiser list command.
void HciLeAddDevWhiteListCmd(uint8_t addrType, uint8_t *pAddr)
HCI LE add device white list command.
LE create connection cancel command complete event.
Definition: hci_api.h:161
LE read local resolving address command complete event.
Definition: hci_api.h:517
void HciLeReadPhyCmd(uint16_t handle)
HCI read PHY command.
uint8_t status
Status.
Definition: hci_api.h:231
void HciLeReadRemoteFeatCmd(uint16_t handle)
HCI LE read remote feature command.
uint8_t status
Status.
Definition: hci_api.h:549
uint8_t addrType
Peer address type.
Definition: hci_api.h:128
uint8_t secAdvPhy
Secondary Advertising PHY.
Definition: hci_api.h:803
hciLeCteReqFailedEvt_t leCteReqFailed
LE CTE request failed.
Definition: hci_api.h:748
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:438
uint8_t reason
Reason.
Definition: hci_api.h:146
bdAddr_t peerRpa
Peer RPA.
Definition: hci_api.h:137
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:377
void HciLePerAdvTerminateSyncCmd(uint16_t syncHandle)
HCI LE periodic advertising terminate sync command.
uint8_t scanType
Scan type.
Definition: hci_api.h:821
void HciLeCreateConnCmd(uint16_t scanInterval, uint16_t scanWindow, uint8_t filterPolicy, uint8_t peerAddrType, uint8_t *pPeerAddr, uint8_t ownAddrType, hciConnSpec_t *pConnSpec)
HCI LE create connection command.
uint8_t HciGetNumSupAdvSets(void)
Get the maximum number of advertising sets supported by the Controller.
uint8_t advAddrType
Advertiser address type.
Definition: hci_api.h:234
uint8_t peerAddrType
Address type used for peer device.
Definition: hci_api.h:777
uint8_t handle
Connection handle.
Definition: hci_api.h:308
void HciLeCreateConnCancelCmd(void)
HCI LE create connection cancel command.
void HciLeSetConnCteTxParamsCmd(uint16_t connHandle, uint8_t cteTypeBits, uint8_t switchPatternLen, uint8_t *pAntennaIDs)
HCI LE set connection CTE transmit parameters command.
void HciLeReadNumSupAdvSets(void)
HCI LE read number of supported advertising sets command.
hciLePhyUpdateEvt_t lePhyUpdate
LE PHY update.
Definition: hci_api.h:735
uint16_t connLatency
Connection latency.
Definition: hci_api.h:766
uint16_t handle
Connection handle.
Definition: hci_api.h:126
hciReadRemoteVerInfoCmplEvt_t readRemoteVerInfoCmpl
Read remote version information complete.
Definition: hci_api.h:702
void HciLeSetPrivacyModeCmd(uint8_t addrType, uint8_t *pAddr, uint8_t mode)
HCI LE set privacy mode command.
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:414
hciAuthPayloadToExpiredEvt_t authPayloadToExpired
Authenticated payload to expired.
Definition: hci_api.h:732
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:384
uint8_t status
Status.
Definition: hci_api.h:352
uint16_t suggestedMaxTxOctets
Suggested maximum Tx octets.
Definition: hci_api.h:440
uint8_t dataChIdx
Data Channel Index.
Definition: hci_api.h:616
void HciLeSetDefaultPerAdvSyncTrsfParamsCmd(uint8_t mode, uint16_t skip, uint16_t syncTimeout, uint8_t cteType)
HCI LE set default periodic advertising sync transfer parameters command.
uint8_t status
Status.
Definition: hci_api.h:212
void HciLeSetScanRespDataCmd(uint8_t len, uint8_t *pData)
HCI LE set scan response data.
uint8_t advSid
Advertising SID.
Definition: hci_api.h:192
LE connection complete event.
Definition: hci_api.h:122
uint8_t switchPatternMaxLen
Max Length of Switching Pattern.
Definition: hci_api.h:675
hciLeCreateConnCancelCmdCmplEvt_t leCreateConnCancelCmdCmpl
LE create connection cancel command complete.
Definition: hci_api.h:697
hciLeReadLocalResAddrCmdCmplEvt_t leReadLocalResAddrCmdCmpl
LE read local resolvable address command complete.
Definition: hci_api.h:716
Write authenticated payload to command complete event.
Definition: hci_api.h:553
uint8_t * pData
Data buffer.
Definition: hci_api.h:199
hciLeSetConnCteTxParamsCmdCmplEvt_t leSetConnCteTxParamsCmdCmpl
LE set connection CTE transmit parameters command complete.
Definition: hci_api.h:750
void HciLePerAdvCreateSyncCancelCmd(void)
HCI LE periodic advertising create sync cancel command.
LE PHY update complete event.
Definition: hci_api.h:585
uint16_t lmpSubversion
LMP Sub-version.
Definition: hci_api.h:686
hciLocalVerInfo_t * HciGetLocalVerInfo(void)
Return a pointer to the local version information.
uint8_t status
Status.
Definition: hci_api.h:344
void HciLeReadDefDataLen(void)
HCI LE Read Default Data Length.
uint8_t rssiAntennaId
RSSI Antenna ID.
Definition: hci_api.h:618
uint16_t maxCeLen
Maximum CE length.
Definition: hci_api.h:769
uint8_t advSid
Advertising SID.
Definition: hci_api.h:269
hciLeReadMaxDataLenEvt_t leReadMaxDataLenCmdCmpl
LE read max data length command complete.
Definition: hci_api.h:726
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:534
uint16_t opcode
Opcode.
Definition: hci_api.h:385
uint8_t status
Status.
Definition: hci_api.h:463
uint8_t advHandle
Advertising handle.
Definition: hci_api.h:811
void HciDisconnectCmd(uint16_t handle, uint8_t reason)
HCI disconnect command.
uint8_t status
Status.
Definition: hci_api.h:496
uint16_t advEventProp
Advertising Event Properties.
Definition: hci_api.h:792
uint16_t handle
Connection handle.
Definition: hci_api.h:456
uint16_t timeout
Connection timeout.
Definition: hci_api.h:478
uint8_t switchSampleRates
Supported Switching Sampling Rates.
Definition: hci_api.h:673
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:399
uint8_t HciGetPerAdvListSize(void)
Return the periodic advertising list size.
uint16_t handle
Connection handle.
Definition: hci_api.h:361
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:306
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:124
uint8_t scanAddrType
Scanner address type.
Definition: hci_api.h:223
void HciLePerAdvCreateSyncCmd(uint8_t options, uint8_t advSid, uint8_t advAddrType, uint8_t *pAdvAddr, uint16_t skip, uint16_t syncTimeout, uint8_t unused)
HCI LE periodic advertising create sync command.
void HciLeGenerateDHKey(uint8_t *pPubKeyX, uint8_t *pPubKeyY)
HCI LE Generate DH Key.
LE periodic advertising sync transfer received.
Definition: hci_api.h:262
hciLeSetDefPhyCmdCmplEvt_t leSetDefPhyCmdCmpl
LE set default PHY command complete.
Definition: hci_api.h:734
uint16_t maxTxOctets
Maximum Tx octets.
Definition: hci_api.h:486
void HciLeSetDataLen(uint16_t handle, uint16_t txOctets, uint16_t txTime)
HCI LE Set Data Length.
uint8_t status
Status.
Definition: hci_api.h:327
void HciReadTxPwrLvlCmd(uint16_t handle, uint8_t type)
HCI read Tx power level command.
hciLeSetDataLenEvt_t leSetDataLenCmdCmpl
LE set data length command complete.
Definition: hci_api.h:725
uint16_t supportedMaxTxOctets
Supported maximum Tx octets.
Definition: hci_api.h:464
Hardware error event.
Definition: hci_api.h:397
void HciResetCmd(void)
HCI reset command.
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:186
uint16_t handle
Handle.
Definition: hci_api.h:589
hciLePerAdvSetInfoTrsfCmdCmplEvt_t lePerAdvSetInfoTrsfCmdCmpl
LE set periodic advertising set info transfer command complete.
Definition: hci_api.h:746
LE add device to resolving list command complete event.
Definition: hci_api.h:532
int8_t rssi
RSSI.
Definition: hci_api.h:291
uint8_t cteType
CTE Type.
Definition: hci_api.h:619
hciLeScanTimeoutEvt_t leScanTimeout
LE scan timeout.
Definition: hci_api.h:737
void HciLeReadLocalP256PubKey(void)
HCI LE Read Local P-256 Public Key.
int8_t advTxPwr
Advertising Tx Power.
Definition: hci_api.h:800
void HciLeReadChanMapCmd(uint16_t handle)
HCI LE read channel map command.
uint8_t advFiltPolicy
Advertising Filter Policy.
Definition: hci_api.h:799
LE CTE request failed event.
Definition: hci_api.h:629
uint8_t maxEaEvents
Maximum number of extended advertising events.
Definition: hci_api.h:813
uint32_t priAdvInterMax
Primary Advertising Interval Maximum.
Definition: hci_api.h:794
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:288
bdAddr_t localRpa
Local RPA.
Definition: hci_api.h:136
uint16_t len
Data buffer length.
Definition: hci_api.h:198
uint8_t lmpVersion
LMP version.
Definition: hci_api.h:684
void HciReadLocalVerInfoCmd(void)
HCI read local version info command.
bdAddr_t addr
Address.
Definition: hci_api.h:189
void HciLeAddDeviceToResolvingListCmd(uint8_t peerAddrType, const uint8_t *pPeerIdentityAddr, const uint8_t *pPeerIrk, const uint8_t *pLocalIrk)
HCI add device to resolving list command.
void HciLeLtkReqReplCmd(uint16_t handle, uint8_t *pKey)
HCI LE long term key request reply command.
hciLeRemConnParamReqEvt_t leRemConnParamReq
LE remote connection parameter request.
Definition: hci_api.h:727
uint16_t handle
Connection handle.
Definition: hci_api.h:572
Encryption key refresh complete event.
Definition: hci_api.h:349
hciLeAddDevToResListCmdCmplEvt_t leAddDevToResListCmdCmpl
LE add device to resolving list command complete.
Definition: hci_api.h:718
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:548
void HciLeExtScanEnableCmd(uint8_t enable, uint8_t filterDup, uint16_t duration, uint16_t period)
HCI LE extended scan enable command.
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:647
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:473
void HciLeClearAdvSets(void)
HCI LE clear advertising sets command.
uint8_t addrType
Address type.
Definition: hci_api.h:175
void HciVsInit(uint8_t param)
Vendor-specific controller initialization function.
int8_t * pISample
List of I Samples.
Definition: hci_api.h:624
uint16_t mfrName
Manufacturer name.
Definition: hci_api.h:319
uint8_t status
Status.
Definition: hci_api.h:455
uint16_t scanInterval
Scan interval.
Definition: hci_api.h:819
uint8_t * pPeerAddr
Peer Address.
Definition: hci_api.h:798
uint8_t status
Status.
Definition: hci_api.h:431
uint8_t status
Status.
Definition: hci_api.h:307
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:580
hciLeDataLenChangeEvt_t leDataLenChange
LE data length change.
Definition: hci_api.h:728
hciLeChSelAlgoEvt_t leChSelAlgo
LE channel select algorithm.
Definition: hci_api.h:743
uint8_t cteMaxLen
Max CTE Length.
Definition: hci_api.h:676
void HciLeSetPerAdvDataCmd(uint8_t advHandle, uint8_t op, uint8_t len, const uint8_t *pData)
HCI LE set periodic advertising data command.
void HciReadRssiCmd(uint16_t handle)
HCI read RSSI command.
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:335
void HciLeSetAdvDataCmd(uint8_t len, uint8_t *pData)
HCI LE set advertising data command.
void HciLeSetHostChanClassCmd(uint8_t *pChanMap)
HCI set host channel class command.
LE remote connetion parameter request event.
Definition: hci_api.h:471
hciLeAdvSetTermEvt_t leAdvSetTerm
LE advertising set terminated.
Definition: hci_api.h:738
uint8_t secAdvMaxSkip
Secondary Advertising Maximum Skip.
Definition: hci_api.h:802
const uint8_t * pPeerAddr
Address of peer device.
Definition: hci_api.h:778
uint16_t handle
Connection handle.
Definition: hci_api.h:369
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:454
uint8_t ownAddrType
Address type used by this device.
Definition: hci_api.h:776
uint16_t scanInterval
Scan interval.
Definition: hci_api.h:785
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:692
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:511
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:351
uint16_t handle
Connection handle.
Definition: hci_api.h:564
void HciLeSetPerAdvRcvEnableCmd(uint16_t syncHandle, uint8_t enable)
HCI LE set periodic advertising receive enable command.
hciReadChanMapCmdCmplEvt_t readChanMapCmdCmpl
Read channel map command complete.
Definition: hci_api.h:700
void HciEvtRegister(hciEvtCback_t evtCback)
Register a callback for HCI events.
uint8_t advHandle
Advertising handle.
Definition: hci_api.h:213
Read transmit power level command complete event.
Definition: hci_api.h:304
void HciLeWriteDefDataLen(uint16_t suggestedMaxTxOctets, uint16_t suggestedMaxTxTime)
HCI LE Write Default Data Length.
uint16_t eventType
Event type.
Definition: hci_api.h:187
Encryption change event.
Definition: hci_api.h:357
LE read suggested default data len command complete event.
Definition: hci_api.h:436
bool_t HciLlPrivacySupported(void)
Whether LL Privacy is supported.
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:143
LE LTK request negative reply command complete event.
Definition: hci_api.h:341
uint8_t secPhy
Secondary PHY.
Definition: hci_api.h:191
uint8_t status
Status.
Definition: hci_api.h:316
uint8_t status
Disconnect complete status.
Definition: hci_api.h:144
hciLeRemDevFromResListCmdCmplEvt_t leRemDevFromResListCmdCmpl
LE remove device from resolving list command complete.
Definition: hci_api.h:719
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:230
Extended advertising parameters.
Definition: hci_api.h:790
LE extended advertising report.
Definition: hci_api.h:184
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:519
void HciLeReadPerAdvListSizeCmd(void)
HCI LE read periodic advertiser size command.
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:343
uint16_t suggestedMaxTxTime
Suggested maximum Tx time.
Definition: hci_api.h:441
void HciSetEventMaskCmd(uint8_t *pEventMask)
HCI set event mask command.
uint16_t handle
Connection handle.
Definition: hci_api.h:485
uint8_t status
Status.
Definition: hci_api.h:504
hciLeConnUpdateCmplEvt_t leConnUpdateCmpl
LE connection update complete.
Definition: hci_api.h:696
LE periodic advertising sync transfer command complete event.
Definition: hci_api.h:595
bdAddr_t addr
Device address.
Definition: hci_api.h:176
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:655
uint16_t hciRevision
HCI revision.
Definition: hci_api.h:683
void(* hciEvtCback_t)(hciEvt_t *pEvent)
HCI event callback type.
Definition: hci_api.h:841
void HciLeReadLocalResolvableAddr(uint8_t addrType, const uint8_t *pIdentityAddr)
HCI read local resolvable address command.
uint16_t minCeLen
Minimum CE length.
Definition: hci_api.h:768
LE set default PHY command complete event.
Definition: hci_api.h:578
uint8_t txPower
Tx power.
Definition: hci_api.h:246
uint16_t connLatency
Connection latency.
Definition: hci_api.h:131
void HciLeSetAdvParamCmd(uint16_t advIntervalMin, uint16_t advIntervalMax, uint8_t advType, uint8_t ownAddrType, uint8_t peerAddrType, uint8_t *pPeerAddr, uint8_t advChanMap, uint8_t advFiltPolicy)
HCI LE set advertising parameters command.
uint8_t status
Status.
Definition: hci_api.h:289
uint16_t handle
Connection handle.
Definition: hci_api.h:649
void HciLeConnUpdateCmd(uint16_t handle, hciConnSpec_t *pConnSpec)
HCI connection update command.
uint16_t len
Data buffer length.
Definition: hci_api.h:250
uint16_t perAdvInterval
Periodic advertising interval.
Definition: hci_api.h:273
void HciLeSetExtAdvEnableCmd(uint8_t enable, uint8_t numSets, hciExtAdvEnableParam_t *pEnableParam)
HCI LE set extended advertising enable command.
uint16_t scanWindow
Scan window.
Definition: hci_api.h:820
LE encrypt command complete event.
Definition: hci_api.h:404
uint16_t HciGetMaxAdvDataLen(void)
Get the maximum advertisement (or scan response) data length supported by the Controller.
uint8_t status
Status.
Definition: hci_api.h:298
hciDisconnectCmplEvt_t disconnectCmpl
Disconnect complete.
Definition: hci_api.h:695
uint8_t status
Status.
Definition: hci_api.h:439
void HciSetEventMaskPage2Cmd(uint8_t *pEventMask)
HCI set event page 2 mask command.
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:462
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:639
void HciReadAuthPayloadTimeout(uint16_t handle)
HCI read authenticated payload timeout command.
hciLeRemConnParamRepEvt_t leRemConnParamRepCmdCmpl
LE Remo Connection Parameter Reply Command Complete.
Definition: hci_api.h:721
void HciLeReadWhiteListSizeCmd(void)
HCI LE read white list size command.
hciLeLtkReqReplCmdCmplEvt_t leLtkReqReplCmdCmpl
LE LTK request reply command complete.
Definition: hci_api.h:704
uint16_t intervalMax
Interval maximum.
Definition: hci_api.h:476
void HciWriteAuthPayloadTimeout(uint16_t handle, uint16_t timeout)
HCI write authenticated payload timeout command.
LE write suggested default data len command complete event.
Definition: hci_api.h:445
hciLeSetConnCteRxParamsCmdCmplEvt_t leSetConnCteRxParamsCmdCmpl
LE set connection CTE receive parameters command complete.
Definition: hci_api.h:749
uint8_t rxPhy
Rx Phy.
Definition: hci_api.h:615
uint16_t maxRxOctets
Maximum Rx octets.
Definition: hci_api.h:488
uint16_t handle
Connect handle.
Definition: hci_api.h:145
void HciLeReadPeerResolvableAddr(uint8_t addrType, const uint8_t *pIdentityAddr)
HCI read peer resolvable address command.
hciLeP256CmplEvt_t leP256
LE P-256.
Definition: hci_api.h:729
void HciLeReadTxPower(void)
HCI LE read transmit power command.
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:587
uint16_t intervalMin
Interval minimum.
Definition: hci_api.h:475
hciReadRssiCmdCmplEvt_t readRssiCmdCmpl
Read RSSI command complete.
Definition: hci_api.h:699
int8_t rssi
RSSI.
Definition: hci_api.h:173
uint16_t syncHandle
Sync handle.
Definition: hci_api.h:232
Initiating parameters.
Definition: hci_api.h:773
uint8_t enabled
Encryption enabled flag.
Definition: hci_api.h:362
void HciLeReadAntennaInfoCmd(void)
HCI LE read antenna information command.
uint8_t peerAddrType
Peer Address Type.
Definition: hci_api.h:797
Extended scanning parameters.
Definition: hci_api.h:817
uint16_t handle
Connection handle.
Definition: hci_api.h:633
LE periodic advertising report.
Definition: hci_api.h:242
uint8_t version
Version.
Definition: hci_api.h:318
void(* hciFlowCback_t)(uint16_t handle, bool_t flowDisabled)
HCI flow control callback type.
Definition: hci_api.h:879
uint8_t directAddrType
Direct advertising address type.
Definition: hci_api.h:179
void HciLeClearResolvingList(void)
HCI clear resolving list command.
hciLeSetAddrResEnableCmdCmplEvt_t leSetAddrResEnableCmdCmpl
LE set address resolution enable command complete.
Definition: hci_api.h:717
Read RSSI command complete event.
Definition: hci_api.h:286
hciLeReadDefDataLenEvt_t leReadDefDataLenCmdCmpl
LE read default data length command complete.
Definition: hci_api.h:723
void HciAclRegister(hciAclCback_t aclCback, hciFlowCback_t flowCback)
Register callbacks for the HCI data path.
HciLePerAdvSyncTrsfRcvdEvt_t lePerAdvSyncTrsfRcvd
LE periodic advertising sync transfer received.
Definition: hci_api.h:744
uint8_t eventType
Advertising event type.
Definition: hci_api.h:174
hciLeConnCteRspEnableCmdCmplEvt_t leConnCteRspEnableCmdCmpl
LE connection CTE response enable command complete.
Definition: hci_api.h:752
hciLeReadRemoteFeatCmplEvt_t leReadRemoteFeatCmpl
LE read remote feature complete.
Definition: hci_api.h:703
void HciSecRegister(hciSecCback_t secCback)
Register a callback for certain HCI security events.
hciLeRemConnParamNegRepEvt_t leRemConnParamNegRepCmdCmpl
LE Remote Connection Parameter Negative Reply Command Complete.
Definition: hci_api.h:722
uint16_t handle
Connection handle.
Definition: hci_api.h:657
void HciReadBufSizeCmd(void)
HCI read buffer size command.
uint8_t clockAccuracy
Clock accuracy.
Definition: hci_api.h:133
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:663
uint8_t status
Status.
Definition: hci_api.h:632
uint8_t scanReqNotifEna
Scan Request Notification Enable.
Definition: hci_api.h:805
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:264
Authenticated payload to expire event.
Definition: hci_api.h:561
uint8_t filterPolicy
Scan filter policy.
Definition: hci_api.h:775
hciVendorSpecEvt_t vendorSpec
Vendor specific.
Definition: hci_api.h:711
int8_t HciGetAdvTxPwr(void)
Return the advertising transmit power.
void HciLeSetAdvEnableCmd(uint8_t enable)
HCI LE set advanced enable command.
void HciLeRemoveAdvSet(uint8_t advHandle)
HCI LE remove advertising set command.
Vendor specific command complete event.
Definition: hci_api.h:382
uint8_t status
Status.
Definition: hci_api.h:336
uint16_t syncHandle
Sync handle.
Definition: hci_api.h:245
void HciResetSequence(void)
Initiate an HCI reset sequence.
void(* hciAclCback_t)(uint8_t *pData)
HCI ACL callback type.
Definition: hci_api.h:868
uint8_t rssi
RSSI.
Definition: hci_api.h:247
void HciLeExtCreateConnCmd(hciExtInitParam_t *pInitParam, hciExtInitScanParam_t *pScanParam, hciConnSpec_t *pConnSpec)
HCI LE extended create connection command.
uint16_t opcode
Opcode.
Definition: hci_api.h:378
Read remote version information complete event.
Definition: hci_api.h:313
hciEncChangeEvt_t encChange
Encryption change.
Definition: hci_api.h:707
hciLeLtkReqEvt_t leLtkReq
LE LTK request.
Definition: hci_api.h:708
uint16_t handle
Connection handle.
Definition: hci_api.h:317
uint8_t advSid
Advertising SID.
Definition: hci_api.h:233
uint16_t manufacturerName
Manufacturer name.
Definition: hci_api.h:685
uint16_t handle
Connection handle.
Definition: hci_api.h:299
bdAddr_t peerAddr
Peer address.
Definition: hci_api.h:129
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:297
void HciLeRemoveDeviceFromResolvingList(uint8_t peerAddrType, const uint8_t *pPeerIdentityAddr)
HCI remove device from resolving list command.
Connection specification type.
Definition: hci_api.h:762
uint8_t sampleCnt
Sample Count.
Definition: hci_api.h:623
LE connection update complete event.
Definition: hci_api.h:150
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:495
hciEncKeyRefreshCmpl_t encKeyRefreshCmpl
Encryption key refresh complete.
Definition: hci_api.h:706
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:406
void HciLeSetScanParamCmd(uint8_t scanType, uint16_t scanInterval, uint16_t scanWindow, uint8_t ownAddrType, uint8_t scanFiltPolicy)
HCI set scan parameters command.
Extended advertising enable parameters.
Definition: hci_api.h:809
hciLeReadPeerResAddrCmdCmplEvt_t leReadPeerResAddrCmdCmpl
LE read peer resolvable address command complete.
Definition: hci_api.h:715
void HciLeGenerateDHKeyV2(uint8_t *pPubKeyX, uint8_t *pPubKeyY, uint8_t keyType)
HCI LE Generate DH Key Version 2.
LE connection IQ report.
Definition: hci_api.h:611
void HciVendorSpecificCmd(uint16_t opcode, uint8_t len, uint8_t *pData)
HCI vencor specific command.
uint16_t supTimeout
Supervision timeout.
Definition: hci_api.h:132
Initiating scan parameters.
Definition: hci_api.h:783
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:555
int16_t perAdvInter
Periodic advertising interval.
Definition: hci_api.h:195
uint16_t handle
Connection handle.
Definition: hci_api.h:665
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:205
uint8_t rxPhy
Rx PHY.
Definition: hci_api.h:574
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:244
LE set connection CTE transmit parameters command complete event.
Definition: hci_api.h:645
LE clear resolving list command complete event.
Definition: hci_api.h:546
void HciLeSetResolvablePrivateAddrTimeout(uint16_t rpaTimeout)
HCI set resolvable private address timeout command.
LE data length change event.
Definition: hci_api.h:482
uint8_t advSetId
Advertising set ID.
Definition: hci_api.h:804
uint16_t connInterval
Connection interval.
Definition: hci_api.h:130
uint8_t * pData
Data buffer.
Definition: hci_api.h:251
bool_t HciLeAdvExtSupported(void)
Whether LE Advertising Extensions is supported.
void(* hciSecCback_t)(hciEvt_t *pEvent)
HCI security callback type.
Definition: hci_api.h:853
uint8_t advHandle
Advertising handle.
Definition: hci_api.h:222
void HciLeSetRandAddrCmd(uint8_t *pAddr)
HCI LE set random address command.
LE LTK request reply command complete event.
Definition: hci_api.h:333
void HciLeSetAdvSetRandAddrCmd(uint8_t advHandle, const uint8_t *pAddr)
HCI LE set advertising set random device address command.
void HciCoreHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg)
WSF event handler for core HCI.
uint16_t maxRxTime
Maximum Rx time.
Definition: hci_api.h:489
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:257
hciLeClearResListCmdCmplEvt_t leClearResListCmdCmpl
LE clear resolving list command complete.
Definition: hci_api.h:720
uint16_t connIntervalMin
Minimum connection interval.
Definition: hci_api.h:764
LE LTK request event.
Definition: hci_api.h:366
uint8_t txPhy
Tx PHY.
Definition: hci_api.h:590
uint8_t unused
Intended to be used in a future feature.
Definition: hci_api.h:248
uint16_t supTimeout
Supervision timeout.
Definition: hci_api.h:767
LE read antenna information command complete event.
Definition: hci_api.h:669
uint16_t handle
Connection handle.
Definition: hci_api.h:345
uint16_t connHandle
Connection handle.
Definition: hci_api.h:266
bdAddr_t advAddr
Advertiser address.
Definition: hci_api.h:235
uint8_t priPhy
Primary PHY.
Definition: hci_api.h:190
hciVendorSpecCmdCmplEvt_t vendorSpecCmdCmpl
Vendor specific command complete.
Definition: hci_api.h:710
void HciLeReadMaxAdvDataLen(void)
HCI LE read maximum advertising data length command.
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:671
void HciLeSetPerAdvParamCmd(uint8_t advHandle, uint16_t advIntervalMin, uint16_t advIntervalMax, uint16_t advProps)
HCI LE set periodic advertising parameters command.
void HciLeReadResolvingListSize(void)
HCI read resolving list command.
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:447
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:527
uint32_t HciGetLeSupFeat(void)
Return the LE supported features supported by the controller.
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:541
LE read PHY command complete event.
Definition: hci_api.h:568
uint16_t HciGetMaxRxAclLen(void)
Get the maximum reassembled RX ACL packet length.
hciLeExtAdvReportEvt_t leExtAdvReport
LE extended advertising report.
Definition: hci_api.h:736
uint8_t status
Status.
Definition: hci_api.h:581
bdAddr_t scanAddr
Scanner address.
Definition: hci_api.h:224
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:280
void HciLeReadMaxDataLen(void)
HCI LE Read Maximum Data Length.
uint16_t handle
Connection handle.
Definition: hci_api.h:337
uint8_t HciGetWhiteListSize(void)
Return the white list size.
uint16_t handle
Connection handle.
Definition: hci_api.h:599
uint16_t maxTxTime
Maximum Tx time.
Definition: hci_api.h:487
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:613
uint16_t syncHandle
Sync handle.
Definition: hci_api.h:258
uint8_t status
Status.
Definition: hci_api.h:153
void HciSendAclData(uint8_t *pAclData)
Send ACL Data from the stack to HCI.
void HciLeReadAdvTXPowerCmd(void)
HCI LE read advertising TX power command.
uint8_t priAdvChanMap
Primary Advertising Channel Map.
Definition: hci_api.h:795
Union of all event types.
Definition: hci_api.h:690
void HciLeReadRfPathComp(void)
HCI LE read RF path compensation command.
LE remote connection parameter request negative reply command complete event.
Definition: hci_api.h:428
uint16_t serviceData
Service data.
Definition: hci_api.h:267
LE set address resolving enable command complete event.
Definition: hci_api.h:525
uint8_t HciGetResolvingListSize(void)
Return the resolving list size.
hciLeReadAntennaInfoCmdCmplEvt_t leReadAntennaInfoCmdCmpl
LE read antenna information command complete.
Definition: hci_api.h:753
uint16_t connEvtCnt
Connection Event Counter.
Definition: hci_api.h:622
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:422
hciLeConnCteReqEnableCmdCmplEvt_t leConnCteReqEnableCmdCmpl
LE connection CTE request enable command complete.
Definition: hci_api.h:751
uint8_t pktStatus
Packet Status.
Definition: hci_api.h:621
LE read peer resolving address command complete event.
Definition: hci_api.h:509
void HciLeSetPhyCmd(uint16_t handle, uint8_t allPhys, uint8_t txPhys, uint8_t rxPhys, uint16_t phyOptions)
HCI set PHY command.
LE set connection CTE receive parameters command complete event.
Definition: hci_api.h:637
int16_t rssi
RSSI.
Definition: hci_api.h:617
LE set periodic advertising set info transfer command complete event.
Definition: hci_api.h:603
void HciReadRemoteVerInfoCmd(uint16_t handle)
HCI read remote version info command.
uint16_t handle
Connection handle.
Definition: hci_api.h:641
uint8_t ownAddrType
Own Address Type.
Definition: hci_api.h:796
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:597
uint8_t HciGetNumBufs(void)
Return the number of ACL buffers supported by the controller.
hciHwErrorEvt_t hwError
Hardware error.
Definition: hci_api.h:712
uint8_t status
Status.
Definition: hci_api.h:423
void HciLeEncryptCmd(uint8_t *pKey, uint8_t *pData)
HCI LE encrypt command.
uint8_t advPhy
Advertiser PHY.
Definition: hci_api.h:272
LE scan request received.
Definition: hci_api.h:219
LE remove device from resolving list command complete event.
Definition: hci_api.h:539
uint8_t initPhys
Initiating PHYs.
Definition: hci_api.h:779
LE Read channel map command complete event.
Definition: hci_api.h:295
LE advertising report event.
Definition: hci_api.h:168
hciWriteAuthPayloadToCmdCmplEvt_t writeAuthPayloadToCmdCmpl
Write authenticated payload to command complete.
Definition: hci_api.h:731
hciLeEncryptCmdCmplEvt_t leEncryptCmdCmpl
LE encrypt command complete.
Definition: hci_api.h:713
uint16_t connInterval
Connection interval.
Definition: hci_api.h:155
void HciLeSetExtScanParamCmd(uint8_t ownAddrType, uint8_t scanFiltPolicy, uint8_t scanPhys, hciExtScanParam_t *pScanParam)
HCI LE set extended scanning parameters command.
void HciLeClearPerAdvListCmd(void)
HCI LE clear periodic advertiser list command.
uint16_t handle
Connection handle.
Definition: hci_api.h:290
void HciReadBdAddrCmd(void)
HCI read BD address command.
uint16_t handle
Connection handle.
Definition: hci_api.h:474
LE local p256 ecc key command complete event.
Definition: hci_api.h:493
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:392
uint8_t advPhy
Advertiser PHY.
Definition: hci_api.h:236
hciLeAdvReportEvt_t leAdvReport
LE advertising report.
Definition: hci_api.h:698
void HciLeStartEncryptionCmd(uint16_t handle, uint8_t *pRand, uint16_t diversifier, uint8_t *pKey)
HCI LE start encryption command.
void HciLeSetScanEnableCmd(uint8_t enable, uint8_t filterDup)
HCI LE set scan enable command.
uint16_t syncHandle
Sync handle.
Definition: hci_api.h:268
LE remote connection parameter request reply command complete event.
Definition: hci_api.h:420
void HciLeRemoteConnParamReqNegReply(uint16_t handle, uint8_t reason)
HCI Remote Connection Parameter Request Negative Reply.
hciLeGenDhKeyEvt_t leGenDHKey
LE generate Diffie-Hellman key.
Definition: hci_api.h:730
uint8_t status
Status.
Definition: hci_api.h:360
Vendor specific event.
Definition: hci_api.h:390
uint8_t code
Error code.
Definition: hci_api.h:400
uint32_t priAdvInterMin
Primary Advertising Interval Minimum.
Definition: hci_api.h:793
uint8_t status
Status.
Definition: hci_api.h:265
void HciLeWriteRfPathComp(int16_t txPathComp, int16_t rxPathComp)
HCI LE write RF path compensation command.
LE connection CTE response enable command complete event.
Definition: hci_api.h:661
void HciLeSetAddrResolutionEnable(uint8_t enable)
HCI enable or disable address resolution command.
Disconnect complete event.
Definition: hci_api.h:141
void HciLeClearWhiteListCmd(void)
HCI LE clear white list command.
uint8_t advAddrType
Advertiser address type.
Definition: hci_api.h:270
uint8_t chSelAlgo
Channel selection algorithm.
Definition: hci_api.h:282
uint8_t status
Status.
Definition: hci_api.h:415
uint8_t status
Data status.
Definition: hci_api.h:249
LE connection CTE request enable command complete event.
Definition: hci_api.h:653
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:221
void HciLeSetConnCteRxParamsCmd(uint16_t connHandle, uint8_t samplingEnable, uint8_t slotDurations, uint8_t switchPatternLen, uint8_t *pAntennaIDs)
HCI LE set connection CTE receive parameters command.
void HciLeSetExtScanRespDataCmd(uint8_t advHandle, uint8_t op, uint8_t fragPref, uint8_t len, const uint8_t *pData)
HCI LE set extended scan response data command.
uint16_t duration
Advertising duration in 10 ms units.
Definition: hci_api.h:812
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:563
LE read remote features complete event.
Definition: hci_api.h:324
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:430
void HciLeSetDefaultPhyCmd(uint8_t allPhys, uint8_t txPhys, uint8_t rxPhys)
HCI set default PHY command.
uint16_t handle
Connection handle.
Definition: hci_api.h:214
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:484
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:368
LE set data len command complete event.
Definition: hci_api.h:452
uint8_t rxPhy
Rx PHY.
Definition: hci_api.h:591
void HciCoreInit(void)
HCI core initialization.
uint16_t handle
Connection handle.
Definition: hci_api.h:353
uint16_t connLatency
Connection latency.
Definition: hci_api.h:156
uint8_t status
Status.
Definition: hci_api.h:588
bdAddr_t directAddr
Directed address.
Definition: hci_api.h:197
hciLeConnCmplEvt_t leConnCmpl
LE connection complete.
Definition: hci_api.h:694
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:570
LE periodic advertising sync established.
Definition: hci_api.h:228
uint8_t status
Status.
Definition: hci_api.h:448
uint16_t supTimeout
Supervision timeout.
Definition: hci_api.h:157
uint16_t scanWindow
Scan window.
Definition: hci_api.h:786
void HciLeSetExtAdvParamCmd(uint8_t advHandle, hciExtAdvParam_t *pExtAdvParam)
HCI LE set extended advertising parameters command.
uint8_t * HciGetSupStates(void)
Return the states supported by the controller.
uint16_t supportedMaxTxTime
Supported maximum Tx time.
Definition: hci_api.h:465
uint16_t handle
Connection handle.
Definition: hci_api.h:281
void HciSetMaxRxAclLen(uint16_t len)
Set the maximum reassembled RX ACL packet length. Minimum value is 27.
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:163
LE scan timeout.
Definition: hci_api.h:203
uint8_t directAddrType
Directed address type.
Definition: hci_api.h:196
hciLePerAdvReportEvt_t lePerAdvReport
LE periodic advertising report.
Definition: hci_api.h:741
LE rand command complete event.
Definition: hci_api.h:412
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:211
uint16_t handle
Connection handle.
Definition: hci_api.h:614
uint16_t handle
Connection handle.
Definition: hci_api.h:154
void HciReadLocalSupFeatCmd(void)
HCI read local supported feature command.
int8_t txPower
Tx Power.
Definition: hci_api.h:193
Vendor specific command status event.
Definition: hci_api.h:375
uint16_t supportedMaxRxTime
Supported maximum Rx time.
Definition: hci_api.h:467
uint16_t subversion
Sub-version.
Definition: hci_api.h:320
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:503
int8_t * pQSample
List of Q Samples.
Definition: hci_api.h:625
void HciLeSetPerAdvEnableCmd(uint8_t enable, uint8_t advHandle)
HCI LE set periodic advertising enable command.
uint16_t handle
Connection handle.
Definition: hci_api.h:432
hciLeReadPhyCmdCmplEvt_t leReadPhyCmdCmpl
LE read PHY command complete.
Definition: hci_api.h:733
void HciLeRemoteConnParamReqReply(uint16_t handle, uint16_t intervalMin, uint16_t intervalMax, uint16_t latency, uint16_t timeout, uint16_t minCeLen, uint16_t maxCeLen)
HCI Remote Connection Parameter Request Reply.
void HciLeConnCteRspEnableCmd(uint16_t connHandle, uint8_t enable)
HCI LE connection CTE response enable command.
uint8_t addrType
Address type.
Definition: hci_api.h:188
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:315
void HciVsAeInit(uint8_t param)
Vendor-specific controller AE initialization function.
LE read maximum data len command complete event.
Definition: hci_api.h:460
uint8_t txPhy
Tx PHY.
Definition: hci_api.h:573
void HciLeAddDeviceToPerAdvListCmd(uint8_t advAddrType, uint8_t *pAdvAddr, uint8_t advSid)
HCI LE add device to periodic advertiser list command.
uint8_t numAntennae
Number of Antennae.
Definition: hci_api.h:674
uint16_t handle
Connection handle.
Definition: hci_api.h:328
uint8_t status
Status.
Definition: hci_api.h:571
hciVendorSpecCmdStatusEvt_t vendorSpecCmdStatus
Vendor specific command status.
Definition: hci_api.h:709
void HciLeReadBufSizeCmd(void)
HCI LE read buffer size command.
LE channel selection algorithm.
Definition: hci_api.h:278
void HciLeSetExtAdvDataCmd(uint8_t advHandle, uint8_t op, uint8_t fragPref, uint8_t len, const uint8_t *pData)
HCI LE set extended advertising data command.
bdAddr_t advAddr
Advertiser address.
Definition: hci_api.h:271
void HciLePerAdvSetInfoTrsfCmd(uint16_t connHandle, uint16_t serviceData, uint8_t advHandle)
HCI LE set periodic advertising set info transfer command.
uint16_t supportedMaxRxOctets
Supported maximum Rx octets.
Definition: hci_api.h:466
uint8_t numComplEvts
Number of completed extended advertising events.
Definition: hci_api.h:215
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:152
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:326
wsfMsgHdr_t resetSeqCmpl
Reset sequence complete.
Definition: hci_api.h:693
uint8_t clockAccuracy
Advertiser clock accuracy.
Definition: hci_api.h:274
void HciLeSetEventMaskCmd(uint8_t *pLeEventMask)
HCI LE set event mask command.
uint8_t * pData
advertising or scan response data.
Definition: hci_api.h:171
uint16_t handle
Connection handle.
Definition: hci_api.h:424
uint16_t latency
Connection latency.
Definition: hci_api.h:477
uint8_t * HciGetBdAddr(void)
Return a pointer to the BD address of this device.
hciReadTxPwrLvlCmdCmplEvt_t readTxPwrLvlCmdCmpl
Read Tx power level command complete.
Definition: hci_api.h:701
LE generate DH key command complete event.
Definition: hci_api.h:501
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:170
hciLeRandCmdCmplEvt_t leRandCmdCmpl
LE random command complete.
Definition: hci_api.h:714
uint8_t clockAccuracy
Advertiser clock accuracy.
Definition: hci_api.h:238
int8_t rssi
RSSI.
Definition: hci_api.h:194
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:605
hciLeWriteDefDataLenEvt_t leWriteDefDataLenCmdCmpl
LE write default data length command complete.
Definition: hci_api.h:724
Local version information.
Definition: hci_api.h:680
uint16_t handle
Connection handle.
Definition: hci_api.h:557
LE advertising set terminated.
Definition: hci_api.h:209
LE periodic advertising synch lost.
Definition: hci_api.h:255
void HciLeSetPerAdvSyncTrsfParamsCmd(uint16_t connHandle, uint8_t mode, uint16_t skip, uint16_t syncTimeout, uint8_t cteType)
HCI LE set periodic advertising sync transfer parameters command.
void HciLeReadLocalSupFeatCmd(void)
HCI LE read local supported feautre command.
void HciLeLtkReqNegReplCmd(uint16_t handle)
HCI LE long term key request negative reply command.
hciLeLtkReqNegReplCmdCmplEvt_t leLtkReqNegReplCmdCmpl
LE LT request negative reply command complete.
Definition: hci_api.h:705
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:631
uint8_t hciVersion
HCI version.
Definition: hci_api.h:682
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:359
void HciSetLeSupFeat(uint32_t feat, bool_t flag)
Set LE supported features configuration mask.
bdAddr_t directAddr
Direct advertising address.
Definition: hci_api.h:180
uint16_t handle
Connection handle.
Definition: hci_api.h:607
uint8_t status
Status.
Definition: hci_api.h:125
hciLeScanReqRcvdEvt_t leScanReqRcvd
LE scan request received.
Definition: hci_api.h:739
hciLePerAdvSyncEstEvt_t lePerAdvSyncEst
LE periodic advertising synchronization established.
Definition: hci_api.h:740
uint8_t role
Local connection role.
Definition: hci_api.h:127
hciLeConnIQReportEvt_t leConnIQReport
LE connection IQ report.
Definition: hci_api.h:747
uint16_t perAdvInterval
Periodic advertising interval.
Definition: hci_api.h:237
void HciLeRemoveDevWhiteListCmd(uint8_t addrType, uint8_t *pAddr)
HCI LE remove device white list command.
uint8_t slotDurations
Slot Durations.
Definition: hci_api.h:620
uint16_t HciGetBufSize(void)
Return the ACL buffer size supported by the controller.
void HciLeConnCteReqEnableCmd(uint16_t connHandle, uint8_t enable, uint16_t cteReqInt, uint8_t reqCteLen, uint8_t reqCteType)
HCI LE connection CTE request enable command.
uint8_t status
Status.
Definition: hci_api.h:407
int8_t pwrLvl
Tx power level.
Definition: hci_api.h:309
uint16_t encDiversifier
LTK encryption diversifier.
Definition: hci_api.h:371
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.