Cordio Stack and Cordio Profiles  r2p3-02rel0
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-2018 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_CMPL_CBACK_EVT 52 /*!< \brief LE scan enable complete event */
97 #define HCI_LE_ADV_ENABLE_CMPL_CBACK_EVT 53 /*!< \brief LE advertise enable complete event */
98 #define HCI_LE_EXT_SCAN_ENABLE_CMPL_CBACK_EVT 54 /*!< \brief LE extended scan enable complete event */
99 #define HCI_LE_EXT_ADV_ENABLE_CMPL_CBACK_EVT 55 /*!< \brief LE extended advertise enable complete event */
100 #define HCI_LE_PER_ADV_ENABLE_CMPL_CBACK_EVT 56 /*!< \brief LE periodic advertise enable complete event */
101 #define HCI_READ_LOCAL_VER_INFO_CMPL_CBACK_EVT 57 /*!< \brief Read local version info complete event */
102 /**@}*/
103 
104 /**************************************************************************************************
105  Data Types
106 **************************************************************************************************/
107 
108 /*! \brief LE connection complete event */
109 typedef struct
110 {
111  wsfMsgHdr_t hdr; /*!< \brief Event header */
112  uint8_t status; /*!< \brief Status. */
113  uint16_t handle; /*!< \brief Connection handle. */
114  uint8_t role; /*!< \brief Local connection role. */
115  uint8_t addrType; /*!< \brief Peer address type. */
116  bdAddr_t peerAddr; /*!< \brief Peer address. */
117  uint16_t connInterval; /*!< \brief Connection interval */
118  uint16_t connLatency; /*!< \brief Connection latency. */
119  uint16_t supTimeout; /*!< \brief Supervision timeout. */
120  uint8_t clockAccuracy; /*!< \brief Clock accuracy. */
121 
122  /* \brief enhanced fields */
123  bdAddr_t localRpa; /*!< \brief Local RPA. */
124  bdAddr_t peerRpa; /*!< \brief Peer RPA. */
126 
127 /*! \brief Disconnect complete event */
128 typedef struct
129 {
130  wsfMsgHdr_t hdr; /*!< \brief Event header. */
131  uint8_t status; /*!< \brief Disconnect complete status. */
132  uint16_t handle; /*!< \brief Connect handle. */
133  uint8_t reason; /*!< \brief Reason. */
135 
136 /*! \brief LE connection update complete event */
137 typedef struct
138 {
139  wsfMsgHdr_t hdr; /*!< \brief Event header. */
140  uint8_t status; /*!< \brief Status. */
141  uint16_t handle; /*!< \brief Connection handle. */
142  uint16_t connInterval; /*!< \brief Connection interval. */
143  uint16_t connLatency; /*!< \brief Connection latency. */
144  uint16_t supTimeout; /*!< \brief Supervision timeout. */
146 
147 /*! \brief LE create connection cancel command complete event */
148 typedef struct
149 {
150  wsfMsgHdr_t hdr; /*!< \brief Event header. */
151  uint8_t status; /*!< \brief Status. */
153 
154 /*! \brief LE advertising report event */
155 typedef struct
156 {
157  wsfMsgHdr_t hdr; /*!< \brief Event header. */
158  uint8_t *pData; /*!< \brief advertising or scan response data. */
159  uint8_t len; /*!< \brief length of advertising or scan response data. */
160  int8_t rssi; /*!< \brief RSSI. */
161  uint8_t eventType; /*!< \brief Advertising event type. */
162  uint8_t addrType; /*!< \brief Address type. */
163  bdAddr_t addr; /*!< \brief Device address. */
164 
165  /* \brief direct fields */
166  uint8_t directAddrType; /*!< \brief Direct advertising address type. */
167  bdAddr_t directAddr; /*!< \brief Direct advertising address. */
169 
170 /*! \brief LE extended advertising report */
171 typedef struct
172 {
173  wsfMsgHdr_t hdr; /*!< \brief Event header. */
174  uint16_t eventType; /*!< \brief Event type. */
175  uint8_t addrType; /*!< \brief Address type. */
176  bdAddr_t addr; /*!< \brief Address. */
177  uint8_t priPhy; /*!< \brief Primary PHY. */
178  uint8_t secPhy; /*!< \brief Secondary PHY. */
179  uint8_t advSid; /*!< \brief Advertising SID. */
180  int8_t txPower; /*!< \brief Tx Power. */
181  int8_t rssi; /*!< \brief RSSI. */
182  int16_t perAdvInter; /*!< \brief Periodic advertising interval. */
183  uint8_t directAddrType; /*!< \brief Directed address type. */
184  bdAddr_t directAddr; /*!< \brief Directed address. */
185  uint16_t len; /*!< \brief Data buffer length. */
186  uint8_t *pData; /*!< \brief Data buffer. */
188 
189 /*! \brief LE scan timeout */
190 typedef struct
191 {
192  wsfMsgHdr_t hdr; /*!< \brief Event header. */
194 
195 /*! \brief LE advertising set terminated */
196 typedef struct
197 {
198  wsfMsgHdr_t hdr; /*!< \brief Event header. */
199  uint8_t status; /*!< \brief Status. */
200  uint8_t advHandle; /*!< \brief Advertising handle. */
201  uint16_t handle; /*!< \brief Connection handle. */
202  uint8_t numComplEvts; /*!< \brief Number of completed extended advertising events. */
204 
205 /*! \brief LE scan request received */
206 typedef struct
207 {
208  wsfMsgHdr_t hdr; /*!< \brief Event header. */
209  uint8_t advHandle; /*!< \brief Advertising handle. */
210  uint8_t scanAddrType; /*!< \brief Scanner address type. */
211  bdAddr_t scanAddr; /*!< \brief Scanner address. */
213 
214 /*! \brief LE periodic advertising sync established */
215 typedef struct
216 {
217  wsfMsgHdr_t hdr; /*!< \brief Event header. */
218  uint8_t status; /*!< \brief Status. */
219  uint16_t syncHandle; /*!< \brief Sync handle. */
220  uint8_t advSid; /*!< \brief Advertising SID. */
221  uint8_t advAddrType; /*!< \brief Advertiser address type. */
222  bdAddr_t advAddr; /*!< \brief Advertiser address. */
223  uint8_t advPhy; /*!< \brief Advertiser PHY. */
224  uint16_t perAdvInterval; /*!< \brief Periodic advertising interval. */
225  uint8_t clockAccuracy; /*!< \brief Advertiser clock accuracy. */
227 
228 /*! \brief LE periodic advertising report */
229 typedef struct
230 {
231  wsfMsgHdr_t hdr; /*!< \brief Event header. */
232  uint16_t syncHandle; /*!< \brief Sync handle. */
233  uint8_t txPower; /*!< \brief Tx power. */
234  uint8_t rssi; /*!< \brief RSSI. */
235  uint8_t unused; /*!< \brief Intended to be used in a future feature. */
236  uint8_t status; /*!< \brief Data status. */
237  uint16_t len; /*!< \brief Data buffer length. */
238  uint8_t *pData; /*!< \brief Data buffer. */
240 
241 /*! \brief LE periodic advertising synch lost */
242 typedef struct
243 {
244  wsfMsgHdr_t hdr; /*!< \brief Event header. */
245  uint16_t syncHandle; /*!< \brief Sync handle. */
247 
248 /*! \brief LE channel selection algorithm */
249 typedef struct
250 {
251  wsfMsgHdr_t hdr; /*!< \brief Event header. */
252  uint16_t handle; /*!< \brief Connection handle. */
253  uint8_t chSelAlgo; /*!< \brief Channel selection algorithm */
255 
256 /*! \brief Read RSSI command complete event */
257 typedef struct
258 {
259  wsfMsgHdr_t hdr; /*!< \brief Event header. */
260  uint8_t status; /*!< \brief Status. */
261  uint16_t handle; /*!< \brief Connection handle. */
262  int8_t rssi; /*!< \brief RSSI. */
264 
265 /*! \brief LE Read channel map command complete event */
266 typedef struct
267 {
268  wsfMsgHdr_t hdr; /*!< \brief Event header. */
269  uint8_t status; /*!< \brief Status. */
270  uint16_t handle; /*!< \brief Connection handle. */
271  uint8_t chanMap[HCI_CHAN_MAP_LEN]; /*!< \brief channel map. */
273 
274 /*! \brief Read transmit power level command complete event */
275 typedef struct
276 {
277  wsfMsgHdr_t hdr; /*!< \brief Event header. */
278  uint8_t status; /*!< \brief Status. */
279  uint8_t handle; /*!< \brief Connection handle. */
280  int8_t pwrLvl; /*!< \brief Tx power level. */
282 
283 /*! \brief Read remote version information complete event */
284 typedef struct
285 {
286  wsfMsgHdr_t hdr; /*!< \brief Event header. */
287  uint8_t status; /*!< \brief Status. */
288  uint16_t handle; /*!< \brief Connection handle. */
289  uint8_t version; /*!< \brief Version. */
290  uint16_t mfrName; /*!< \brief Manufacturer name. */
291  uint16_t subversion; /*!< \brief Sub-version. */
293 
294 /*! \brief LE read remote features 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 features[HCI_FEAT_LEN]; /*!< \brief Remote features buffer. */
302 
303 /*! \brief LE LTK request reply command complete event */
304 typedef struct
305 {
306  wsfMsgHdr_t hdr; /*!< \brief Event header. */
307  uint8_t status; /*!< \brief Status. */
308  uint16_t handle; /*!< \brief Connection handle. */
310 
311 /*! \brief LE LTK request negative reply command complete event */
312 typedef struct
313 {
314  wsfMsgHdr_t hdr; /*!< \brief Event header. */
315  uint8_t status; /*!< \brief Status. */
316  uint16_t handle; /*!< \brief Connection handle. */
318 
319 /*! \brief Encryption key refresh complete event */
320 typedef struct
321 {
322  wsfMsgHdr_t hdr; /*!< \brief Event header. */
323  uint8_t status; /*!< \brief Status. */
324  uint16_t handle; /*!< \brief Connection handle. */
326 
327 /*! \brief Encryption change event */
328 typedef struct
329 {
330  wsfMsgHdr_t hdr; /*!< \brief Event header. */
331  uint8_t status; /*!< \brief Status. */
332  uint16_t handle; /*!< \brief Connection handle. */
333  uint8_t enabled; /*!< \brief Encryption enabled flag. */
335 
336 /*! \brief LE LTK request event */
337 typedef struct
338 {
339  wsfMsgHdr_t hdr; /*!< \brief Event header. */
340  uint16_t handle; /*!< \brief Connection handle. */
341  uint8_t randNum[HCI_RAND_LEN]; /*!< \brief LTK random number. */
342  uint16_t encDiversifier; /*!< \brief LTK encryption diversifier. */
344 
345 /*! \brief Vendor specific command status event */
346 typedef struct
347 {
348  wsfMsgHdr_t hdr; /*!< \brief Event header. */
349  uint16_t opcode; /*!< \brief Opcode. */
351 
352 /*! \brief Vendor specific command complete event */
353 typedef struct
354 {
355  wsfMsgHdr_t hdr; /*!< \brief Event header. */
356  uint16_t opcode; /*!< \brief Opcode. */
357  uint8_t param[1]; /*!< \brief Operation parameter. */
359 
360 /*! \brief Vendor specific event */
361 typedef struct
362 {
363  wsfMsgHdr_t hdr; /*!< \brief Event header. */
364  uint8_t param[1]; /*!< \brief Vendor specific event. */
366 
367 /*! \brief Hardware error event */
368 typedef struct
369 {
370  wsfMsgHdr_t hdr; /*!< \brief Event header. */
371  uint8_t code; /*!< \brief Error code. */
373 
374 /*! \brief LE encrypt command complete event */
375 typedef struct
376 {
377  wsfMsgHdr_t hdr; /*!< \brief Event header. */
378  uint8_t status; /*!< \brief Status. */
379  uint8_t data[HCI_ENCRYPT_DATA_LEN]; /*!< \brief Data. */
381 
382 /*! \brief LE rand command complete event */
383 typedef struct
384 {
385  wsfMsgHdr_t hdr; /*!< \brief Event header. */
386  uint8_t status; /*!< \brief Status. */
387  uint8_t randNum[HCI_RAND_LEN]; /*!< \brief Random number buffer. */
389 
390 /*! \brief LE remote connection parameter request reply command complete event */
391 typedef struct
392 {
393  wsfMsgHdr_t hdr; /*!< \brief Event header. */
394  uint8_t status; /*!< \brief Status. */
395  uint16_t handle; /*!< \brief Connection handle. */
397 
398 /*! \brief LE remote connection parameter request negative reply command complete event */
399 typedef struct
400 {
401  wsfMsgHdr_t hdr; /*!< \brief Event header. */
402  uint8_t status; /*!< \brief Status. */
403  uint16_t handle; /*!< \brief Connection handle. */
405 
406 /*! \brief LE read suggested default data len command complete event */
407 typedef struct
408 {
409  wsfMsgHdr_t hdr; /*!< \brief Event header. */
410  uint8_t status; /*!< \brief Status. */
411  uint16_t suggestedMaxTxOctets; /*!< \brief Suggested maximum Tx octets. */
412  uint16_t suggestedMaxTxTime; /*!< \brief Suggested maximum Tx time. */
414 
415 /*! \brief LE write suggested default data len command complete event */
416 typedef struct
417 {
418  wsfMsgHdr_t hdr; /*!< \brief Event header. */
419  uint8_t status; /*!< \brief Status. */
421 
422 /*! \brief LE set data len command complete event */
423 typedef struct
424 {
425  wsfMsgHdr_t hdr; /*!< \brief Event header. */
426  uint8_t status; /*!< \brief Status. */
427  uint16_t handle; /*!< \brief Connection handle. */
429 
430 /*! \brief LE read maximum data len command complete event */
431 typedef struct
432 {
433  wsfMsgHdr_t hdr; /*!< \brief Event header. */
434  uint8_t status; /*!< \brief Status. */
435  uint16_t supportedMaxTxOctets; /*!< \brief Supported maximum Tx octets. */
436  uint16_t supportedMaxTxTime; /*!< \brief Supported maximum Tx time. */
437  uint16_t supportedMaxRxOctets; /*!< \brief Supported maximum Rx octets. */
438  uint16_t supportedMaxRxTime; /*!< \brief Supported maximum Rx time. */
440 
441 /*! \brief LE remote connetion parameter request event */
442 typedef struct
443 {
444  wsfMsgHdr_t hdr; /*!< \brief Event header. */
445  uint16_t handle; /*!< \brief Connection handle. */
446  uint16_t intervalMin; /*!< \brief Interval minimum. */
447  uint16_t intervalMax; /*!< \brief Interval maximum. */
448  uint16_t latency; /*!< \brief Connection latency. */
449  uint16_t timeout; /*!< \brief Connection timeout. */
451 
452 /*! \brief LE data length change event */
453 typedef struct
454 {
455  wsfMsgHdr_t hdr; /*!< \brief Event header. */
456  uint16_t handle; /*!< \brief Connection handle. */
457  uint16_t maxTxOctets; /*!< \brief Maximum Tx octets. */
458  uint16_t maxTxTime; /*!< \brief Maximum Tx time. */
459  uint16_t maxRxOctets; /*!< \brief Maximum Rx octets. */
460  uint16_t maxRxTime; /*!< \brief Maximum Rx time. */
462 
463 /*! \brief LE local p256 ecc key command complete event */
464 typedef struct
465 {
466  wsfMsgHdr_t hdr; /*!< \brief Event header. */
467  uint8_t status; /*!< \brief Status. */
468  uint8_t key[HCI_P256_KEY_LEN]; /*!< \brief P-256 public keys. */
470 
471 /*! \brief LE generate DH key command complete event */
472 typedef struct
473 {
474  wsfMsgHdr_t hdr; /*!< \brief Event header. */
475  uint8_t status; /*!< \brief Status. */
476  uint8_t key[HCI_DH_KEY_LEN]; /*!< \brief Diffie-Hellman (Share Secret) key. */
478 
479 /*! \brief LE read peer resolving address command complete event */
480 typedef struct
481 {
482  wsfMsgHdr_t hdr; /*!< \brief Event header. */
483  uint8_t status; /*!< \brief Status. */
484  uint8_t peerRpa[BDA_ADDR_LEN]; /*!< \brief Peer RPA. */
486 
487 /*! \brief LE read local resolving address command complete event */
488 typedef struct
489 {
490  wsfMsgHdr_t hdr; /*!< \brief Event header. */
491  uint8_t status; /*!< \brief Status. */
492  uint8_t localRpa[BDA_ADDR_LEN]; /*!< \brief Local RPA. */
494 
495 /*! \brief LE set address resolving enable command complete event */
496 typedef struct
497 {
498  wsfMsgHdr_t hdr; /*!< \brief Event header. */
499  uint8_t status; /*!< \brief Status. */
501 
502 /*! \brief LE add device to resolving list command complete event */
503 typedef struct
504 {
505  wsfMsgHdr_t hdr; /*!< \brief Event header. */
506  uint8_t status; /*!< \brief Status. */
508 
509 /*! \brief LE remove device from resolving list command complete event */
510 typedef struct
511 {
512  wsfMsgHdr_t hdr; /*!< \brief Event header. */
513  uint8_t status; /*!< \brief Status. */
515 
516 /*! \brief LE clear resolving list command complete event */
517 typedef struct
518 {
519  wsfMsgHdr_t hdr; /*!< \brief Event header. */
520  uint8_t status; /*!< \brief Status. */
522 
523 /*! \brief Write authenticated payload to command complete event */
524 typedef struct
525 {
526  wsfMsgHdr_t hdr; /*!< \brief Event header. */
527  uint8_t status; /*!< \brief Status. */
528  uint16_t handle; /*!< \brief Connection handle. */
530 
531 /*! \brief Authenticated payload to expire event */
532 typedef struct
533 {
534  wsfMsgHdr_t hdr; /*!< \brief Event header. */
535  uint16_t handle; /*!< \brief Connection handle. */
537 
538 /*! \brief LE read PHY command complete event */
539  typedef struct
540 {
541  wsfMsgHdr_t hdr; /*!< \brief Event header. */
542  uint8_t status; /*!< \brief Status. */
543  uint16_t handle; /*!< \brief Connection handle. */
544  uint8_t txPhy; /*!< \brief Tx PHY. */
545  uint8_t rxPhy; /*!< \brief Rx PHY. */
547 
548 /*! \brief LE set default PHY command complete event */
549 typedef struct
550 {
551  wsfMsgHdr_t hdr; /*!< \brief Event header. */
552  uint8_t status; /*!< \brief Status. */
554 
555 /*! \brief LE PHY update complete event */
556 typedef struct
557 {
558  wsfMsgHdr_t hdr; /*!< \brief Event header. */
559  uint8_t status; /*!< \brief Status. */
560  uint16_t handle; /*!< \brief Handle. */
561  uint8_t txPhy; /*!< \brief Tx PHY. */
562  uint8_t rxPhy; /*!< \brief Rx PHY. */
564 
565 /*! \brief Read local version information complete event */
566 typedef struct
567 {
568  wsfMsgHdr_t hdr; /*!< \brief Event header. */
569  uint8_t status; /*!< \brief Status. */
570  uint8_t hciVersion; /*!< \brief HCI version. */
571  uint16_t hciRevision; /*!< \brief HCI revision. */
572  uint8_t lmpVersion; /*!< \brief LMP version. */
573  uint16_t manufacturerName; /*!< \brief Manufacturer name. */
574  uint16_t lmpSubversion; /*!< \brief LMP Sub-version. */
576 
577 /*! \brief Union of all event types */
578 typedef union
579 {
580  wsfMsgHdr_t hdr; /*!< \brief Event header. */
581  wsfMsgHdr_t resetSeqCmpl; /*!< \brief Reset sequence complete. */
582  hciLeConnCmplEvt_t leConnCmpl; /*!< \brief LE connection complete. */
583  hciDisconnectCmplEvt_t disconnectCmpl; /*!< \brief Disconnect complete. */
584  hciLeConnUpdateCmplEvt_t leConnUpdateCmpl; /*!< \brief LE connection update complete. */
585  hciLeCreateConnCancelCmdCmplEvt_t leCreateConnCancelCmdCmpl; /*!< \brief LE create connection cancel command complete. */
586  hciLeAdvReportEvt_t leAdvReport; /*!< \brief LE advertising report. */
587  hciReadRssiCmdCmplEvt_t readRssiCmdCmpl; /*!< \brief Read RSSI command complete. */
588  hciReadChanMapCmdCmplEvt_t readChanMapCmdCmpl; /*!< \brief Read channel map command complete. */
589  hciReadTxPwrLvlCmdCmplEvt_t readTxPwrLvlCmdCmpl; /*!< \brief Read Tx power level command complete. */
590  hciReadRemoteVerInfoCmplEvt_t readRemoteVerInfoCmpl; /*!< \brief Read remote version information complete. */
591  hciLeReadRemoteFeatCmplEvt_t leReadRemoteFeatCmpl; /*!< \brief LE read remote feature complete. */
592  hciLeLtkReqReplCmdCmplEvt_t leLtkReqReplCmdCmpl; /*!< \brief LE LTK request reply command complete. */
593  hciLeLtkReqNegReplCmdCmplEvt_t leLtkReqNegReplCmdCmpl; /*!< \brief LE LT request negative reply command complete. */
594  hciEncKeyRefreshCmpl_t encKeyRefreshCmpl; /*!< \brief Encryption key refresh complete. */
595  hciEncChangeEvt_t encChange; /*!< \brief Encryption change. */
596  hciLeLtkReqEvt_t leLtkReq; /*!< \brief LE LTK request. */
597  hciVendorSpecCmdStatusEvt_t vendorSpecCmdStatus; /*!< \brief Vendor specific command status. */
598  hciVendorSpecCmdCmplEvt_t vendorSpecCmdCmpl; /*!< \brief Vendor specific command complete. */
599  hciVendorSpecEvt_t vendorSpec; /*!< \brief Vendor specific. */
600  hciHwErrorEvt_t hwError; /*!< \brief Hardware error. */
601  hciLeEncryptCmdCmplEvt_t leEncryptCmdCmpl; /*!< \brief LE encrypt command complete. */
602  hciLeRandCmdCmplEvt_t leRandCmdCmpl; /*!< \brief LE random command complete. */
603  hciLeReadPeerResAddrCmdCmplEvt_t leReadPeerResAddrCmdCmpl; /*!< \brief LE read peer resolvable address command complete. */
604  hciLeReadLocalResAddrCmdCmplEvt_t leReadLocalResAddrCmdCmpl; /*!< \brief LE read local resolvable address command complete. */
605  hciLeSetAddrResEnableCmdCmplEvt_t leSetAddrResEnableCmdCmpl; /*!< \brief LE set address resolution enable command complete. */
606  hciLeAddDevToResListCmdCmplEvt_t leAddDevToResListCmdCmpl; /*!< \brief LE add device to resolving list command complete. */
607  hciLeRemDevFromResListCmdCmplEvt_t leRemDevFromResListCmdCmpl; /*!< \brief LE remove device from resolving list command complete. */
608  hciLeClearResListCmdCmplEvt_t leClearResListCmdCmpl; /*!< \brief LE clear resolving list command complete. */
609  hciLeRemConnParamRepEvt_t leRemConnParamRepCmdCmpl; /*!< \brief LE Remo Connection Parameter Reply Command Complete. */
610  hciLeRemConnParamNegRepEvt_t leRemConnParamNegRepCmdCmpl; /*!< \brief LE Remote Connection Parameter Negative Reply Command Complete. */
611  hciLeReadDefDataLenEvt_t leReadDefDataLenCmdCmpl; /*!< \brief LE read default data length command complete. */
612  hciLeWriteDefDataLenEvt_t leWriteDefDataLenCmdCmpl; /*!< \brief LE write default data length command complete. */
613  hciLeSetDataLenEvt_t leSetDataLenCmdCmpl; /*!< \brief LE set data length command complete. */
614  hciLeReadMaxDataLenEvt_t leReadMaxDataLenCmdCmpl; /*!< \brief LE read max data length command complete. */
615  hciLeRemConnParamReqEvt_t leRemConnParamReq; /*!< \brief LE remote connection parameter request. */
616  hciLeDataLenChangeEvt_t leDataLenChange; /*!< \brief LE data length change. */
617  hciLeP256CmplEvt_t leP256; /*!< \brief LE P-256 */
618  hciLeGenDhKeyEvt_t leGenDHKey; /*!< \brief LE generate Diffie-Hellman key. */
619  hciWriteAuthPayloadToCmdCmplEvt_t writeAuthPayloadToCmdCmpl; /*!< \brief Write authenticated payload to command complete. */
620  hciAuthPayloadToExpiredEvt_t authPayloadToExpired; /*!< \brief Authenticated payload to expired. */
621  hciLeReadPhyCmdCmplEvt_t leReadPhyCmdCmpl; /*!< \brief LE read PHY command complete. */
622  hciLeSetDefPhyCmdCmplEvt_t leSetDefPhyCmdCmpl; /*!< \brief LE set default PHY command complete. */
623  hciLePhyUpdateEvt_t lePhyUpdate; /*!< \brief LE PHY update. */
624  hciLeExtAdvReportEvt_t leExtAdvReport; /*!< \brief LE extended advertising report. */
625  hciLeScanTimeoutEvt_t leScanTimeout; /*!< \brief LE scan timeout. */
626  hciLeAdvSetTermEvt_t leAdvSetTerm; /*!< \brief LE advertising set terminated. */
627  hciLeScanReqRcvdEvt_t leScanReqRcvd; /*!< \brief LE scan request received. */
628  hciLePerAdvSyncEstEvt_t lePerAdvSyncEst; /*!< \brief LE periodic advertising synchronization established. */
629  hciLePerAdvReportEvt_t lePerAdvReport; /*!< \brief LE periodic advertising report. */
630  hciLePerAdvSyncLostEvt_t lePerAdvSyncLost; /*!< \brief LE periodic advertising synchronization lost. */
631  hciLeChSelAlgoEvt_t leChSelAlgo; /*!< \brief LE channel select algorithm. */
632  hciReadLocalVerInfo_t readLocalVerInfo; /*!< \brief Read local version information. */
633 } hciEvt_t;
634 
635 /*! \} */ /* STACK_HCI_EVT_API */
636 
637 /*! \addtogroup STACK_HCI_CMD_API
638  * \{ */
639 
640 /*! \brief Connection specification type */
641 typedef struct
642 {
643  uint16_t connIntervalMin; /*!< \brief Minimum connection interval. */
644  uint16_t connIntervalMax; /*!< \brief Maximum connection interval. */
645  uint16_t connLatency; /*!< \brief Connection latency. */
646  uint16_t supTimeout; /*!< \brief Supervision timeout. */
647  uint16_t minCeLen; /*!< \brief Minimum CE length. */
648  uint16_t maxCeLen; /*!< \brief Maximum CE length. */
649 } hciConnSpec_t;
650 
651 /*! \brief Initiating parameters */
652 typedef struct
653 {
654  uint8_t filterPolicy; /*!< \brief Scan filter policy. */
655  uint8_t ownAddrType; /*!< \brief Address type used by this device. */
656  uint8_t peerAddrType; /*!< \brief Address type used for peer device. */
657  const uint8_t *pPeerAddr; /*!< \brief Address of peer device. */
658  uint8_t initPhys; /*!< \brief Initiating PHYs. */
660 
661 /*! \brief Initiating scan parameters */
662 typedef struct
663 {
664  uint16_t scanInterval; /*!< \brief Scan interval. */
665  uint16_t scanWindow; /*!< \brief Scan window. */
667 
668 /*! \brief Extended advertising parameters */
669 typedef struct
670 {
671  uint16_t advEventProp; /*!< \brief Advertising Event Properties. */
672  uint32_t priAdvInterMin; /*!< \brief Primary Advertising Interval Minimum. */
673  uint32_t priAdvInterMax; /*!< \brief Primary Advertising Interval Maximum. */
674  uint8_t priAdvChanMap; /*!< \brief Primary Advertising Channel Map. */
675  uint8_t ownAddrType; /*!< \brief Own Address Type. */
676  uint8_t peerAddrType; /*!< \brief Peer Address Type. */
677  uint8_t *pPeerAddr; /*!< \brief Peer Address. */
678  uint8_t advFiltPolicy; /*!< \brief Advertising Filter Policy. */
679  int8_t advTxPwr; /*!< \brief Advertising Tx Power. */
680  uint8_t priAdvPhy; /*!< \brief Primary Advertising PHY. */
681  uint8_t secAdvMaxSkip; /*!< \brief Secondary Advertising Maximum Skip. */
682  uint8_t secAdvPhy; /*!< \brief Secondary Advertising PHY. */
683  uint8_t advSetId; /*!< \brief Advertising set ID. */
684  uint8_t scanReqNotifEna; /*!< \brief Scan Request Notification Enable. */
686 
687 /*! \brief Extended advertising enable parameters */
688 typedef struct
689 {
690  uint8_t advHandle; /*!< \brief Advertising handle. */
691  uint16_t duration; /*!< \brief Advertising duration in 10 ms units. */
692  uint8_t maxEaEvents; /*!< \brief Maximum number of extended advertising events. */
694 
695 /*! \brief Extended scanning parameters */
696 typedef struct
697 {
698  uint16_t scanInterval; /*!< \brief Scan interval. */
699  uint16_t scanWindow; /*!< \brief Scan window. */
700  uint8_t scanType; /*!< \brief Scan type. */
702 
703 /*! \} */ /* STACK_HCI_CMD_API */
704 
705 /**************************************************************************************************
706  Callback Function Types
707 **************************************************************************************************/
708 
709 /*! \addtogroup STACK_HCI_EVT_API
710  * \{ */
711 
712 /*! \brief HCI event callback type.
713  *
714  * This callback function sends events from HCI to the stack.
715  *
716  * \param pEvent Pointer to HCI callback event structure.
717  *
718  * \return None.
719  */
720 typedef void (*hciEvtCback_t)(hciEvt_t *pEvent);
721 
722 /*! \brief HCI security callback type
723  *
724  * This callback function sends certain security events from HCI to the stack.
725  * The security events passed in this callback are the LE Rand Command Complete event and the
726  * LE Encrypt Command Complete event.
727  *
728  * \param pEvt Pointer to HCK callback event structure.
729  *
730  * \return None.
731  */
732 typedef void (*hciSecCback_t)(hciEvt_t *pEvent);
733 
734 /*! \} */ /* STACK_HCI_EVT_API */
735 
736 /*! \addtogroup STACK_HCI_ACL_API
737  * \{ */
738 
739 /*! \brief HCI ACL callback type
740  *
741  * This callback function sends a data from HCI to the stack.
742  *
743  * \param pData WSF buffer containing an ACL packet.
744  *
745  * \return None.
746  */
747 typedef void (*hciAclCback_t)(uint8_t *pData);
748 
749 /*! \brief HCI flow control callback type
750  *
751  * This callback function manages flow control in the TX path betrween the stack and HCI.
752  *
753  * \param connId Connection handle.
754  * \param flowDisabled TRUE if flow is disabled.
755  *
756  * \return None.
757  */
758 typedef void (*hciFlowCback_t)(uint16_t handle, bool_t flowDisabled);
759 
760 /*! \} */ /* STACK_HCI_ACL_API */
761 
762 /**************************************************************************************************
763  Function Declarations
764 **************************************************************************************************/
765 
766 /*! \addtogroup STACK_HCI_INIT_API
767  * \{ */
768 
769 /** \name HCI Initialization, Registration, Reset
770  *
771  */
772 /**@{*/
773 /*************************************************************************************************/
774 /*!
775  * \brief Register a callback for HCI events.
776  *
777  * \param evtCback Callback function.
778  *
779  * \return None.
780  */
781 /*************************************************************************************************/
782 void HciEvtRegister(hciEvtCback_t evtCback);
783 
784 /*************************************************************************************************/
785 /*!
786  * \brief Register a callback for certain HCI security events.
787  *
788  * \param secCback Callback function.
789  *
790  * \return None.
791  */
792 /*************************************************************************************************/
793 void HciSecRegister(hciSecCback_t secCback);
794 
795 /*************************************************************************************************/
796 /*!
797  * \brief Register callbacks for the HCI data path.
798  *
799  * \param aclCback ACL data callback function.
800  * \param flowCback Flow control callback function.
801  *
802  * \return None.
803  */
804 /*************************************************************************************************/
805 void HciAclRegister(hciAclCback_t aclCback, hciFlowCback_t flowCback);
806 
807 /*************************************************************************************************/
808 /*!
809  * \brief Initiate an HCI reset sequence.
810  *
811  * \return None.
812  */
813 /*************************************************************************************************/
814 void HciResetSequence(void);
815 
816 /*************************************************************************************************/
817 /*!
818  * \fn HciVsInit
819  *
820  * \brief Vendor-specific controller initialization function.
821  *
822  * \param param Vendor-specific parameter.
823  *
824  * \return None.
825  */
826 /*************************************************************************************************/
827 void HciVsInit(uint8_t param);
828 
829 /*************************************************************************************************/
830 /*!
831  * \brief HCI core initialization.
832  *
833  * \return None.
834  */
835 /*************************************************************************************************/
836 void HciCoreInit(void);
837 
838 /*************************************************************************************************/
839 /*!
840  * \brief WSF event handler for core HCI.
841  *
842  * \param event WSF event mask.
843  * \param pMsg WSF message.
844  *
845  * \return None.
846  */
847 /*************************************************************************************************/
848 void HciCoreHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg);
849 
850 /*************************************************************************************************/
851 /*!
852  * \brief Set the maximum reassembled RX ACL packet length. Minimum value is 27.
853  *
854  * \param len ACL packet length.
855  *
856  * \return None.
857  */
858 /*************************************************************************************************/
859 void HciSetMaxRxAclLen(uint16_t len);
860 
861 /*************************************************************************************************/
862 /*!
863  * \brief Set TX ACL queue high and low watermarks.
864  *
865  * \param queueHi Disable flow on a connection when this many ACL buffers are queued.
866  * \param queueLo Disable flow on a connection when this many ACL buffers are queued.
867  *
868  * \return None.
869  */
870 /*************************************************************************************************/
871 void HciSetAclQueueWatermarks(uint8_t queueHi, uint8_t queueLo);
872 
873 /*************************************************************************************************/
874 /*!
875 * \brief Set LE supported features configuration mask.
876 *
877 * \param feat Feature bit to set or clear
878 * \param flag TRUE to set feature bit and FALSE to clear it
879 *
880 * \return None.
881 */
882 /*************************************************************************************************/
883 void HciSetLeSupFeat(uint16_t feat, bool_t flag);
884 /**@}*/
885 
886 /*************************************************************************************************/
887 /*!
888  * \brief Vendor-specific controller AE initialization function.
889  *
890  * \param param Vendor-specific parameter.
891  *
892  * \return None.
893  */
894 /*************************************************************************************************/
895 void HciVsAeInit(uint8_t param);
896 
897 /*! \} */ /* STACK_HCI_INIT_API */
898 
899 /*! \addtogroup STACK_HCI_OPT_API
900  * \{ */
901 
902 /** \name HCI Optimization Interface Functions
903  * This is an optimized interface for certain HCI commands that simply read a
904  * value. The stack uses these functions rather than their corresponding
905  * functions in the command interface.
906  * These functions can only be called after the reset sequence has been completed.
907  */
908 /**@{*/
909 /*************************************************************************************************/
910 /*!
911  * \brief Return a pointer to the BD address of this device.
912  *
913  * \return Pointer to the BD address.
914  */
915 /*************************************************************************************************/
916 uint8_t *HciGetBdAddr(void);
917 
918 /*************************************************************************************************/
919 /*!
920  * \brief Return the white list size.
921  *
922  * \return White list size.
923  */
924 /*************************************************************************************************/
926 
927 /*************************************************************************************************/
928 /*!
929  * \brief Return the advertising transmit power.
930  *
931  * \return Advertising transmit power.
932  */
933 /*************************************************************************************************/
934 int8_t HciGetAdvTxPwr(void);
935 
936 /*************************************************************************************************/
937 /*!
938  * \brief Return the ACL buffer size supported by the controller.
939  *
940  * \return ACL buffer size.
941  */
942 /*************************************************************************************************/
943 uint16_t HciGetBufSize(void);
944 
945 /*************************************************************************************************/
946 /*!
947  * \brief Return the number of ACL buffers supported by the controller.
948  *
949  * \return Number of ACL buffers.
950  */
951 /*************************************************************************************************/
952 uint8_t HciGetNumBufs(void);
953 
954 /*************************************************************************************************/
955 /*!
956  * \brief Return the states supported by the controller.
957  *
958  * \return Pointer to the supported states array.
959  */
960 /*************************************************************************************************/
961 uint8_t *HciGetSupStates(void);
962 
963 /*************************************************************************************************/
964 /*!
965  * \brief Return the LE supported features supported by the controller.
966  *
967  * \return Supported features.
968  */
969 /*************************************************************************************************/
971 
972 /*************************************************************************************************/
973 /*!
974  * \brief Get the maximum reassembled RX ACL packet length.
975  *
976  * \return ACL packet length.
977  */
978 /*************************************************************************************************/
980 
981 /*************************************************************************************************/
982 /*!
983  * \brief Return the resolving list size.
984  *
985  * \return resolving list size.
986  */
987 /*************************************************************************************************/
989 
990 /*************************************************************************************************/
991 /*!
992 * \brief Whether LL Privacy is supported.
993 *
994 * \return TRUE if LL Privacy is supported. FALSE, otherwise.
995 */
996 /*************************************************************************************************/
998 
999 /*************************************************************************************************/
1000 /*!
1001 * \brief Get the maximum advertisement (or scan response) data length supported by the Controller.
1002 *
1003 * \return Maximum advertisement data length.
1004 */
1005 /*************************************************************************************************/
1007 
1008 /*************************************************************************************************/
1009 /*!
1010 * \brief Get the maximum number of advertising sets supported by the Controller.
1011 *
1012 * \return Maximum number of advertising sets.
1013 */
1014 /*************************************************************************************************/
1016 
1017 /*************************************************************************************************/
1018 /*!
1019 * \brief Whether LE Advertising Extensions is supported.
1020 *
1021 * \return TRUE if LE Advertising Extensions is supported. FALSE, otherwise.
1022 */
1023 /*************************************************************************************************/
1025 
1026 /*************************************************************************************************/
1027 /*!
1028  * \brief Return the periodic advertising list size.
1029  *
1030  * \return periodic advertising list size.
1031  */
1032 /*************************************************************************************************/
1034 /**@}*/
1035 
1036 /*! \} */ /* STACK_HCI_OPT_API */
1037 
1038 /*! \addtogroup STACK_HCI_ACL_API
1039  * \{ */
1040 
1041 /** \name HCI ACL Data Functions
1042  * HCI ACL data interface
1043  */
1044 /**@{*/
1045 
1046 /*************************************************************************************************/
1047 /*!
1048  * \brief Send ACL Data from the stack to HCI.
1049  *
1050  * \param pAclData WSF buffer containing an ACL packet.
1051  *
1052  * \return None.
1053  */
1054 /*************************************************************************************************/
1055 void HciSendAclData(uint8_t *pAclData);
1056 /**@}*/
1057 
1058 /*! \} */ /* STACK_HCI_ACL_API */
1059 
1060 /*! \addtogroup STACK_HCI_CMD_API
1061  * \{ */
1062 
1063 /** \name HCI Command Interface Functions
1064  * HCI commands
1065  */
1066 /**@{*/
1067 /*************************************************************************************************/
1068 /*!
1069  * \brief HCI disconnect command.
1070  *
1071  * \param handle Connection handle.
1072  * \param reason Reason for disconnect.
1073  *
1074  * \return None.
1075  */
1076 /*************************************************************************************************/
1077 void HciDisconnectCmd(uint16_t handle, uint8_t reason);
1078 
1079 /*************************************************************************************************/
1080 /*!
1081  * \brief HCI LE add device white list command.
1082  *
1083  * \param addrType Address type.
1084  * \param pAddr Peer address.
1085  *
1086  * \return None.
1087  */
1088 /*************************************************************************************************/
1089 void HciLeAddDevWhiteListCmd(uint8_t addrType, uint8_t *pAddr);
1090 
1091 /*************************************************************************************************/
1092 /*!
1093  * \brief HCI LE clear white list command.
1094  *
1095  * \return None.
1096  */
1097 /*************************************************************************************************/
1098 void HciLeClearWhiteListCmd(void);
1099 
1100 /*************************************************************************************************/
1101 /*!
1102  * \brief HCI connection update command.
1103  *
1104  * \param handle Connection handle.
1105  * \param pConnSpec Update connection parameters.
1106  *
1107  * \return None.
1108  */
1109 /*************************************************************************************************/
1110 void HciLeConnUpdateCmd(uint16_t handle, hciConnSpec_t *pConnSpec);
1111 
1112 /*************************************************************************************************/
1113 /*!
1114  * \brief HCI LE create connection command.
1115  *
1116  * \param scanInterval Scan interval.
1117  * \param scanWindow Scan window.
1118  * \param filterPolicy Filter policy.
1119  * \param peerAddrType Peer address type.
1120  * \param pPeerAddr Peer address.
1121  * \param ownAddrType Own address type.
1122  * \param pConnSpec Connecdtion parameters.
1123  *
1124  * \return None.
1125  */
1126 /*************************************************************************************************/
1127 void HciLeCreateConnCmd(uint16_t scanInterval, uint16_t scanWindow, uint8_t filterPolicy,
1128  uint8_t peerAddrType, uint8_t *pPeerAddr, uint8_t ownAddrType,
1129  hciConnSpec_t *pConnSpec);
1130 
1131 /*************************************************************************************************/
1132 /*!
1133  * \brief HCI LE create connection cancel command.
1134  *
1135  * \return None.
1136  */
1137 /*************************************************************************************************/
1138 void HciLeCreateConnCancelCmd(void);
1139 
1140 /*************************************************************************************************/
1141 /*!
1142  * \brief HCI LE encrypt command.
1143  *
1144  * \param pKey Encryption key.
1145  * \param pData Data to encrypt.
1146  *
1147  * \return None.
1148  */
1149 /*************************************************************************************************/
1150 void HciLeEncryptCmd(uint8_t *pKey, uint8_t *pData);
1151 
1152 /*************************************************************************************************/
1153 /*!
1154  * \brief HCI LE long term key request negative reply command.
1155  *
1156  * \param handle Connection handle.
1157  *
1158  * \return None.
1159  */
1160 /*************************************************************************************************/
1161 void HciLeLtkReqNegReplCmd(uint16_t handle);
1162 
1163 /*************************************************************************************************/
1164 /*!
1165  * \brief HCI LE long term key request reply command.
1166  *
1167  * \param handle Connection handle.
1168  * \param pKey LTK.
1169  *
1170  * \return None.
1171  */
1172 /*************************************************************************************************/
1173 void HciLeLtkReqReplCmd(uint16_t handle, uint8_t *pKey);
1174 
1175 /*************************************************************************************************/
1176 /*!
1177  * \brief HCI LE random command.
1178  *
1179  * \return None.
1180  */
1181 /*************************************************************************************************/
1182 void HciLeRandCmd(void);
1183 
1184 /*************************************************************************************************/
1185 /*!
1186  * \brief HCI LE read advertising TX power command.
1187  *
1188  * \return None.
1189  */
1190 /*************************************************************************************************/
1191 void HciLeReadAdvTXPowerCmd(void);
1192 
1193 /*************************************************************************************************/
1194 /*!
1195  * \brief HCI LE read buffer size command.
1196  *
1197  * \return None.
1198  */
1199 /*************************************************************************************************/
1200 void HciLeReadBufSizeCmd(void);
1201 
1202 /*************************************************************************************************/
1203 /*!
1204  * \brief HCI LE read channel map command.
1205  *
1206  * \param handle Connection handle.
1207  *
1208  * \return None.
1209  */
1210 /*************************************************************************************************/
1211 void HciLeReadChanMapCmd(uint16_t handle);
1212 
1213 /*************************************************************************************************/
1214 /*!
1215  * \brief HCI LE read local supported feautre command.
1216  *
1217  * \return None.
1218  */
1219 /*************************************************************************************************/
1220 void HciLeReadLocalSupFeatCmd(void);
1221 
1222 /*************************************************************************************************/
1223 /*!
1224  * \brief HCI LE read remote feature command.
1225  *
1226  * \param handle Connection handle.
1227  *
1228  * \return None.
1229  */
1230 /*************************************************************************************************/
1231 void HciLeReadRemoteFeatCmd(uint16_t handle);
1232 
1233 /*************************************************************************************************/
1234 /*!
1235  * \brief HCI LE read supported states command.
1236  *
1237  * \return None.
1238  */
1239 /*************************************************************************************************/
1240 void HciLeReadSupStatesCmd(void);
1241 
1242 /*************************************************************************************************/
1243 /*!
1244  * \brief HCI LE read white list size command.
1245  *
1246  * \return None.
1247  */
1248 /*************************************************************************************************/
1249 void HciLeReadWhiteListSizeCmd(void);
1250 
1251 /*************************************************************************************************/
1252 /*!
1253  * \brief HCI LE remove device white list command.
1254  *
1255  * \param addrType Address type.
1256  * \param pAddr Peer address.
1257  *
1258  * \return None.
1259  */
1260 /*************************************************************************************************/
1261 void HciLeRemoveDevWhiteListCmd(uint8_t addrType, uint8_t *pAddr);
1262 
1263 /*************************************************************************************************/
1264 /*!
1265  * \brief HCI LE set advanced enable command.
1266  *
1267  * \param enable Enable.
1268  *
1269  * \return None.
1270  */
1271 /*************************************************************************************************/
1272 void HciLeSetAdvEnableCmd(uint8_t enable);
1273 
1274 /*************************************************************************************************/
1275 /*!
1276  * \brief HCI LE set advertising data command.
1277  *
1278  * \param len Length of advertising data.
1279  * \param pData Advertising data.
1280  *
1281  * \return None.
1282  */
1283 /*************************************************************************************************/
1284 void HciLeSetAdvDataCmd(uint8_t len, uint8_t *pData);
1285 
1286 /*************************************************************************************************/
1287 /*!
1288  * \brief HCI LE set advertising parameters command.
1289  *
1290  * \param advIntervalMin Adveritsing minimum interval.
1291  * \param advIntervalMax Advertising maximum interval.
1292  * \param advType Advertising type.
1293  * \param ownAddrType Own address type.
1294  * \param peerAddrType Peer address type.
1295  * \param pPeerAddr Peer address.
1296  * \param advChanMap Advertising channel map.
1297  * \param advFiltPolicy Advertising filter policy.
1298  *
1299  * \return None.
1300  */
1301 /*************************************************************************************************/
1302 void HciLeSetAdvParamCmd(uint16_t advIntervalMin, uint16_t advIntervalMax, uint8_t advType,
1303  uint8_t ownAddrType, uint8_t peerAddrType, uint8_t *pPeerAddr,
1304  uint8_t advChanMap, uint8_t advFiltPolicy);
1305 
1306 /*************************************************************************************************/
1307 /*!
1308  * \brief HCI LE set event mask command.
1309  *
1310  * \param pLeEventMask LE Event mask.
1311  *
1312  * \return None.
1313  */
1314 /*************************************************************************************************/
1315 void HciLeSetEventMaskCmd(uint8_t *pLeEventMask);
1316 
1317 /*************************************************************************************************/
1318 /*!
1319  * \brief HCI set host channel class command.
1320  *
1321  * \param pChanMap Channel map.
1322  *
1323  * \return None.
1324  */
1325 /*************************************************************************************************/
1326 void HciLeSetHostChanClassCmd(uint8_t *pChanMap);
1327 
1328 /*************************************************************************************************/
1329 /*!
1330  * \brief HCI LE set random address command.
1331  *
1332  * \param pAddr Randon address.
1333  *
1334  * \return None.
1335  */
1336 /*************************************************************************************************/
1337 void HciLeSetRandAddrCmd(uint8_t *pAddr);
1338 
1339 /*************************************************************************************************/
1340 /*!
1341  * \brief HCI LE set scan enable command.
1342  *
1343  * \param enable Enable.
1344  * \param filterDup Filter duplicates.
1345  *
1346  * \return None.
1347  */
1348 /*************************************************************************************************/
1349 void HciLeSetScanEnableCmd(uint8_t enable, uint8_t filterDup);
1350 
1351 /*************************************************************************************************/
1352 /*!
1353  * \brief HCI set scan parameters command.
1354  *
1355  * \param scanType Scan type.
1356  * \param scanInterval Scan interval.
1357  * \param scanWindow Scan window.
1358  * \param ownAddrType Own address type.
1359  * \param scanFiltPolicy Scanning filter policy.
1360  *
1361  * \return None.
1362  */
1363 /*************************************************************************************************/
1364 void HciLeSetScanParamCmd(uint8_t scanType, uint16_t scanInterval, uint16_t scanWindow,
1365  uint8_t ownAddrType, uint8_t scanFiltPolicy);
1366 
1367 /*************************************************************************************************/
1368 /*!
1369  * \brief HCI LE set scan response data.
1370  *
1371  * \param len Scan response data length.
1372  * \param pData Scan response data.
1373  *
1374  * \return None.
1375  */
1376 /*************************************************************************************************/
1377 void HciLeSetScanRespDataCmd(uint8_t len, uint8_t *pData);
1378 
1379 /*************************************************************************************************/
1380 /*!
1381  * \brief HCI LE start encryption command.
1382  *
1383  * \param handle Connection handle.
1384  * \param pRand Random number.
1385  * \param diversifier Diversifier.
1386  * \param pKey Encryption key.
1387  *
1388  * \return None.
1389  */
1390 /*************************************************************************************************/
1391 void HciLeStartEncryptionCmd(uint16_t handle, uint8_t *pRand, uint16_t diversifier, uint8_t *pKey);
1392 
1393 /*************************************************************************************************/
1394 /*!
1395  * \brief HCI read BD address command.
1396  *
1397  * \return None.
1398  */
1399 /*************************************************************************************************/
1400 void HciReadBdAddrCmd(void);
1401 
1402 /*************************************************************************************************/
1403 /*!
1404  * \brief HCI read buffer size command.
1405  *
1406  * \return None.
1407  */
1408 /*************************************************************************************************/
1409 void HciReadBufSizeCmd(void);
1410 
1411 /*************************************************************************************************/
1412 /*!
1413  * \brief HCI read local supported feature command.
1414  *
1415  * \return None.
1416  */
1417 /*************************************************************************************************/
1418 void HciReadLocalSupFeatCmd(void);
1419 
1420 /*************************************************************************************************/
1421 /*!
1422  * \brief HCI read local version info command.
1423  *
1424  * \return None.
1425  */
1426 /*************************************************************************************************/
1427 void HciReadLocalVerInfoCmd(void);
1428 
1429 /*************************************************************************************************/
1430 /*!
1431  * \brief HCI read remote version info command.
1432  *
1433  * \param handle Connection handle.
1434  *
1435  * \return None.
1436  */
1437 /*************************************************************************************************/
1438 void HciReadRemoteVerInfoCmd(uint16_t handle);
1439 
1440 /*************************************************************************************************/
1441 /*!
1442  * \brief HCI read RSSI command.
1443  *
1444  * \param handle Connection handle.
1445  *
1446  * \return None.
1447  */
1448 /*************************************************************************************************/
1449 void HciReadRssiCmd(uint16_t handle);
1450 
1451 /*************************************************************************************************/
1452 /*!
1453  * \brief HCI read Tx power level command.
1454  *
1455  * \param handle Connection handle.
1456  * \param type Type.
1457  *
1458  * \return None.
1459  */
1460 /*************************************************************************************************/
1461 void HciReadTxPwrLvlCmd(uint16_t handle, uint8_t type);
1462 
1463 /*************************************************************************************************/
1464 /*!
1465  * \brief HCI reset command.
1466  *
1467  * \return None.
1468  */
1469 /*************************************************************************************************/
1470 void HciResetCmd(void);
1471 
1472 /*************************************************************************************************/
1473 /*!
1474  * \brief HCI set event mask command.
1475  *
1476  * \param pEventMask Page 1 of the event mask.
1477  *
1478  * \return None.
1479  */
1480 /*************************************************************************************************/
1481 void HciSetEventMaskCmd(uint8_t *pEventMask);
1482 
1483 /*************************************************************************************************/
1484 /*!
1485  * \brief HCI set event page 2 mask command.
1486  *
1487  * \param pEventMask Page 2 of the event mask.
1488  * \return None.
1489  */
1490 /*************************************************************************************************/
1491 void HciSetEventMaskPage2Cmd(uint8_t *pEventMask);
1492 
1493 /*************************************************************************************************/
1494 /*!
1495  * \brief HCI read authenticated payload timeout command.
1496  *
1497  * \param handle Connection handle.
1498  *
1499  * \return None.
1500  */
1501 /*************************************************************************************************/
1502 void HciReadAuthPayloadTimeout(uint16_t handle);
1503 
1504 /*************************************************************************************************/
1505 /*!
1506  * \brief HCI write authenticated payload timeout command.
1507  *
1508  * \param handle Connection handle.
1509  * \param timeout Timeout value.
1510  *
1511  * \return None.
1512  */
1513 /*************************************************************************************************/
1514 void HciWriteAuthPayloadTimeout(uint16_t handle, uint16_t timeout);
1515 
1516 /*************************************************************************************************/
1517 /*!
1518  * \brief HCI add device to resolving list command.
1519  *
1520  * \param peerAddrType Peer identity address type.
1521  * \param pPeerIdentityAddr Peer identity address.
1522  * \param pPeerIrk Peer IRK.
1523  * \param pLocalIrk Local IRK.
1524  *
1525  * \return None.
1526  */
1527 /*************************************************************************************************/
1528 void HciLeAddDeviceToResolvingListCmd(uint8_t peerAddrType, const uint8_t *pPeerIdentityAddr,
1529  const uint8_t *pPeerIrk, const uint8_t *pLocalIrk);
1530 
1531 /*************************************************************************************************/
1532 /*!
1533  * \brief HCI remove device from resolving list command.
1534  *
1535  * \param peerAddrType Peer identity address type.
1536  * \param pPeerIdentityAddr Peer identity address.
1537  *
1538  * \return None.
1539  */
1540 /*************************************************************************************************/
1541 void HciLeRemoveDeviceFromResolvingList(uint8_t peerAddrType, const uint8_t *pPeerIdentityAddr);
1542 
1543 /*************************************************************************************************/
1544 /*!
1545  * \brief HCI clear resolving list command.
1546  *
1547  * \return None.
1548  */
1549 /*************************************************************************************************/
1550 void HciLeClearResolvingList(void);
1551 
1552 /*************************************************************************************************/
1553 /*!
1554  * \brief HCI read resolving list command.
1555  *
1556  * \return None.
1557  */
1558 /*************************************************************************************************/
1559 void HciLeReadResolvingListSize(void);
1560 
1561 /*************************************************************************************************/
1562 /*!
1563  * \brief HCI read peer resolvable address command.
1564  *
1565  * \param addrType Peer identity address type.
1566  * \param pIdentityAddr Peer identity address.
1567  *
1568  * \return None.
1569  */
1570 /*************************************************************************************************/
1571 void HciLeReadPeerResolvableAddr(uint8_t addrType, const uint8_t *pIdentityAddr);
1572 
1573 /*************************************************************************************************/
1574 /*!
1575  * \brief HCI read local resolvable address command.
1576  *
1577  * \param addrType Peer identity address type.
1578  * \param pIdentityAddr Peer identity address.
1579  *
1580  * \return None.
1581  */
1582 /*************************************************************************************************/
1583 void HciLeReadLocalResolvableAddr(uint8_t addrType, const uint8_t *pIdentityAddr);
1584 
1585 /*************************************************************************************************/
1586 /*!
1587  * \brief HCI enable or disable address resolution command.
1588  *
1589  * \param enable Set to TRUE to enable address resolution or FALSE to disable address
1590  * resolution.
1591  *
1592  * \return None.
1593  */
1594 /*************************************************************************************************/
1596 
1597 /*************************************************************************************************/
1598 /*!
1599  * \brief HCI set resolvable private address timeout command.
1600  *
1601  * \param rpaTimeout Timeout measured in seconds.
1602  *
1603  * \return None.
1604  */
1605 /*************************************************************************************************/
1607 
1608 /*************************************************************************************************/
1609 /*!
1610  * \brief HCI LE set privacy mode command.
1611  *
1612  * \param addrType Peer identity address type.
1613  * \param pAddr Peer identity address.
1614  * \param mode Privacy mode.
1615  *
1616  * \return None.
1617  */
1618 /*************************************************************************************************/
1619 void HciLeSetPrivacyModeCmd(uint8_t addrType, uint8_t *pAddr, uint8_t mode);
1620 
1621 /*************************************************************************************************/
1622 /*!
1623 * \brief HCI read PHY command.
1624 *
1625 * \param handle Connection handle.
1626 *
1627 * \return None.
1628 */
1629 /*************************************************************************************************/
1630 void HciLeReadPhyCmd(uint16_t handle);
1631 
1632 /*************************************************************************************************/
1633 /*!
1634 * \brief HCI set default PHY command.
1635 *
1636 * \param allPhys All PHYs.
1637 * \param txPhys Tx PHYs.
1638 * \param rxPhys Rx PHYs.
1639 *
1640 * \return None.
1641 */
1642 /*************************************************************************************************/
1643 void HciLeSetDefaultPhyCmd(uint8_t allPhys, uint8_t txPhys, uint8_t rxPhys);
1644 
1645 /*************************************************************************************************/
1646 /*!
1647 * \brief HCI set PHY command.
1648 *
1649 * \param handle Connection handle.
1650 * \param allPhys All PHYs.
1651 * \param txPhys Tx PHYs.
1652 * \param rxPhys Rx PHYs.
1653 * \param phyOptions PHY options.
1654 *
1655 * \return None.
1656 */
1657 /*************************************************************************************************/
1658 void HciLeSetPhyCmd(uint16_t handle, uint8_t allPhys, uint8_t txPhys, uint8_t rxPhys, uint16_t phyOptions);
1659 
1660 /*************************************************************************************************/
1661 /*!
1662  * \brief HCI vencor specific command.
1663  *
1664  * \param opcode Opcode.
1665  * \param len Length of pData.
1666  * \param pData Command data.
1667  *
1668  * \return None.
1669  */
1670 /*************************************************************************************************/
1671 void HciVendorSpecificCmd(uint16_t opcode, uint8_t len, uint8_t *pData);
1672 
1673 /*************************************************************************************************/
1674 /*!
1675  * \brief HCI Remote Connection Parameter Request Reply.
1676  *
1677  * \param handle Connection handle.
1678  * \param intervalMin Interval minimum.
1679  * \param intervalMax Interval maximum.
1680  * \param latency Connection latency.
1681  * \param timeout Connection timeout.
1682  * \param minCeLen Minimum connection event length.
1683  * \param maxCeLen Maximum connection event length.
1684  *
1685  * \return None.
1686  */
1687 /*************************************************************************************************/
1688 void HciLeRemoteConnParamReqReply(uint16_t handle, uint16_t intervalMin, uint16_t intervalMax, uint16_t latency,
1689  uint16_t timeout, uint16_t minCeLen, uint16_t maxCeLen);
1690 
1691 /*************************************************************************************************/
1692 /*!
1693  * \brief HCI Remote Connection Parameter Request Negative Reply.
1694  *
1695  * \param handle Connection handle.
1696  * \param reason Negative reply reason.
1697  *
1698  * \return None.
1699  */
1700 /*************************************************************************************************/
1701 void HciLeRemoteConnParamReqNegReply(uint16_t handle, uint8_t reason);
1702 
1703 /*************************************************************************************************/
1704 /*!
1705  * \brief HCI LE Set Data Length.
1706  *
1707  * \param handle Connection handle.
1708  * \param txOctets Tx octets.
1709  * \param txTime Tx time.
1710  *
1711  * \return None.
1712  */
1713 /*************************************************************************************************/
1714 void HciLeSetDataLen(uint16_t handle, uint16_t txOctets, uint16_t txTime);
1715 
1716 /*************************************************************************************************/
1717 /*!
1718  * \brief HCI LE Read Default Data Length.
1719  *
1720  * \return None.
1721  */
1722 /*************************************************************************************************/
1723 void HciLeReadDefDataLen(void);
1724 
1725 /*************************************************************************************************/
1726 /*!
1727  * \brief HCI LE Write Default Data Length.
1728  *
1729  * \param suggestedMaxTxOctets Suggested maximum Tx octets.
1730  * \param suggestedMaxTxTime Suggested maximum Tx time.
1731  *
1732  *
1733  * \return None.
1734  */
1735 /*************************************************************************************************/
1736 void HciLeWriteDefDataLen(uint16_t suggestedMaxTxOctets, uint16_t suggestedMaxTxTime);
1737 
1738 /*************************************************************************************************/
1739 /*!
1740  * \brief HCI LE Read Local P-256 Public Key.
1741  *
1742  * \return None.
1743  */
1744 /*************************************************************************************************/
1745 void HciLeReadLocalP256PubKey(void);
1746 
1747 /*************************************************************************************************/
1748 /*!
1749  * \brief HCI LE Generate DH Key.
1750  *
1751  * \param pPubKeyX Public key X-coordinate.
1752  * \param pPubKeyY Public key Y-coordinate.
1753  *
1754  * \return None.
1755  */
1756 /*************************************************************************************************/
1757 void HciLeGenerateDHKey(uint8_t *pPubKeyX, uint8_t *pPubKeyY);
1758 
1759 /*************************************************************************************************/
1760 /*!
1761  * \brief HCI LE Read Maximum Data Length.
1762  *
1763  * \return None.
1764  */
1765 /*************************************************************************************************/
1766 void HciLeReadMaxDataLen(void);
1767 
1768 /*************************************************************************************************/
1769 /*!
1770  * \brief HCI write authenticated payload timeout command.
1771  *
1772  * \param handle Connection handle.
1773  * \param timeout Timeout value.
1774  *
1775  * \return None.
1776  */
1777 /*************************************************************************************************/
1778 void HciWriteAuthPayloadTimeout(uint16_t handle, uint16_t timeout);
1779 
1780 /*************************************************************************************************/
1781 /*!
1782  * \brief HCI LE read transmit power command.
1783  *
1784  * \return None.
1785  */
1786 /*************************************************************************************************/
1787 void HciLeReadTxPower(void);
1788 
1789 /*************************************************************************************************/
1790 /*!
1791  * \brief HCI LE read RF path compensation command.
1792  *
1793  * \return None.
1794  */
1795 /*************************************************************************************************/
1796 void HciLeReadRfPathComp(void);
1797 
1798 /*************************************************************************************************/
1799 /*!
1800  * \brief HCI LE write RF path compensation command.
1801  *
1802  * \param txPathComp RF transmit path compensation value.
1803  * \param rxPathComp RF receive path compensation value.
1804  *
1805  * \return None.
1806  */
1807 /*************************************************************************************************/
1808 void HciLeWriteRfPathComp(int16_t txPathComp, int16_t rxPathComp);
1809 /**@}*/
1810 
1811 /** \name HCI AE Advertiser Interface
1812  * HCI Advertising Extension functions used by the Advertiser role.
1813  */
1814 /**@{*/
1815 /*************************************************************************************************/
1816 /*!
1817  * \brief HCI LE set advertising set random device address command.
1818  *
1819  * \param advHandle Advertising handle.
1820  * \param pAddr Random device address.
1821  *
1822  * \return None.
1823  */
1824 /*************************************************************************************************/
1825 void HciLeSetAdvSetRandAddrCmd(uint8_t advHandle, const uint8_t *pAddr);
1826 
1827 /*************************************************************************************************/
1828 /*!
1829  * \brief HCI LE set extended advertising parameters command.
1830  *
1831  * \param advHandle Advertising handle.
1832  * \param pExtAdvParam Extended advertising parameters.
1833  *
1834  * \return None.
1835  */
1836 /*************************************************************************************************/
1837 void HciLeSetExtAdvParamCmd(uint8_t advHandle, hciExtAdvParam_t *pExtAdvParam);
1838 
1839 /*************************************************************************************************/
1840 /*!
1841  * \brief HCI LE set extended advertising data command.
1842  *
1843  * \param advHandle Advertising handle.
1844  * \param op Operation.
1845  * \param fragPref Fragment preference.
1846  * \param len Data buffer length.
1847  * \param pData Advertising data buffer.
1848  *
1849  * \return None.
1850  */
1851 /*************************************************************************************************/
1852 void HciLeSetExtAdvDataCmd(uint8_t advHandle, uint8_t op, uint8_t fragPref, uint8_t len,
1853  const uint8_t *pData);
1854 
1855 /*************************************************************************************************/
1856 /*!
1857  * \brief HCI LE set extended scan response data command.
1858  *
1859  * \param advHandle Advertising handle.
1860  * \param op Operation.
1861  * \param fragPref Fragment preference.
1862  * \param len Data buffer length.
1863  * \param pData Scan response data buffer.
1864  *
1865  * \return None.
1866  */
1867 /*************************************************************************************************/
1868 void HciLeSetExtScanRespDataCmd(uint8_t advHandle, uint8_t op, uint8_t fragPref, uint8_t len,
1869  const uint8_t *pData);
1870 
1871 /*************************************************************************************************/
1872 /*!
1873  * \brief HCI LE set extended advertising enable command.
1874  *
1875  * \param enable Set to TRUE to enable advertising, FALSE to disable advertising.
1876  * \param numSets Number of advertising sets.
1877  * \param pEnableParam Advertising enable parameter array.
1878  *
1879  * \return None.
1880  */
1881 /*************************************************************************************************/
1882 void HciLeSetExtAdvEnableCmd(uint8_t enable, uint8_t numSets, hciExtAdvEnableParam_t *pEnableParam);
1883 
1884 /*************************************************************************************************/
1885 /*!
1886  * \brief HCI LE read maximum advertising data length command.
1887  *
1888  * \return None.
1889  */
1890 /*************************************************************************************************/
1891 void HciLeReadMaxAdvDataLen(void);
1892 
1893 /*************************************************************************************************/
1894 /*!
1895  * \brief HCI LE read number of supported advertising sets command.
1896  *
1897  * \return None.
1898  */
1899 /*************************************************************************************************/
1900 void HciLeReadNumSupAdvSets(void);
1901 
1902 /*************************************************************************************************/
1903 /*!
1904  * \brief HCI LE remove advertising set command.
1905  *
1906  * \param advHandle Advertising handle.
1907  *
1908  * \return Status error code.
1909  */
1910 /*************************************************************************************************/
1911 void HciLeRemoveAdvSet(uint8_t advHandle);
1912 
1913 /*************************************************************************************************/
1914 /*!
1915  * \brief HCI LE clear advertising sets command.
1916  *
1917  * \return None.
1918  */
1919 /*************************************************************************************************/
1920 void HciLeClearAdvSets(void);
1921 
1922 /*************************************************************************************************/
1923 /*!
1924  * \brief HCI LE set periodic advertising parameters command.
1925  *
1926  * \param advHandle Advertising handle.
1927  * \param advIntervalMin Periodic advertising interval minimum.
1928  * \param advIntervalMax Periodic advertising interval maximum.
1929  * \param advProps Periodic advertising properties.
1930  *
1931  * \return None.
1932  */
1933 /*************************************************************************************************/
1934 void HciLeSetPerAdvParamCmd(uint8_t advHandle, uint16_t advIntervalMin, uint16_t advIntervalMax,
1935  uint16_t advProps);
1936 
1937 /*************************************************************************************************/
1938 /*!
1939  * \brief HCI LE set periodic advertising data command.
1940  *
1941  * \param advHandle Advertising handle.
1942  * \param op Operation.
1943  * \param len Data buffer length.
1944  * \param pData Advertising data buffer.
1945  *
1946  * \return None.
1947  */
1948 /*************************************************************************************************/
1949 void HciLeSetPerAdvDataCmd(uint8_t advHandle, uint8_t op, uint8_t len, const uint8_t *pData);
1950 
1951 /*************************************************************************************************/
1952 /*!
1953  * \brief HCI LE set periodic advertising enable command.
1954  *
1955  * \param enable Set to TRUE to enable advertising, FALSE to disable advertising.
1956  * \param advHandle Advertising handle.
1957  *
1958  * \return None.
1959  */
1960 /*************************************************************************************************/
1961 void HciLeSetPerAdvEnableCmd(uint8_t enable, uint8_t advHandle);
1962 /**@}*/
1963 
1964 /** \name HCI AE Scanner Interface
1965  * HCI Advertising Extension functions used in the Scanner role.
1966  */
1967 /**@{*/
1968 /*************************************************************************************************/
1969 /*!
1970  * \brief HCI LE set extended scanning parameters command.
1971  *
1972  * \param ownAddrType Address type used by this device.
1973  * \param scanFiltPolicy Scan filter policy.
1974  * \param scanPhys Scanning PHYs.
1975  * \param pScanParam Scanning parameter array.
1976  *
1977  * \return None.
1978  */
1979 /*************************************************************************************************/
1980 void HciLeSetExtScanParamCmd(uint8_t ownAddrType, uint8_t scanFiltPolicy, uint8_t scanPhys,
1981  hciExtScanParam_t *pScanParam);
1982 
1983 /*************************************************************************************************/
1984 /*!
1985  * \brief HCI LE extended scan enable command.
1986  *
1987  * \param enable Set to TRUE to enable scanning, FALSE to disable scanning.
1988  * \param filterDup Set to TRUE to filter duplicates.
1989  * \param duration Duration.
1990  * \param period Period.
1991  *
1992  * \return None.
1993  */
1994 /*************************************************************************************************/
1995 void HciLeExtScanEnableCmd(uint8_t enable, uint8_t filterDup, uint16_t duration, uint16_t period);
1996 
1997 /*************************************************************************************************/
1998 /*!
1999  * \brief HCI LE extended create connection command.
2000  *
2001  * \param pInitParam Initiating parameters.
2002  * \param pScanParam Initiating scan parameters.
2003  * \param pConnSpec Connection specification.
2004  *
2005  * \return None.
2006  */
2007 /*************************************************************************************************/
2008 void HciLeExtCreateConnCmd(hciExtInitParam_t *pInitParam, hciExtInitScanParam_t *pScanParam,
2009  hciConnSpec_t *pConnSpec);
2010 
2011 /*************************************************************************************************/
2012 /*!
2013  * \brief HCI LE periodic advertising create sync command.
2014  *
2015  * \param filterPolicy Filter policy.
2016  * \param advSid Advertising SID.
2017  * \param advAddrType Advertiser address type.
2018  * \param pAdvAddr Advertiser address.
2019  * \param skip Number of periodic advertising packets that can be skipped after
2020  * successful receive.
2021  * \param syncTimeout Synchronization timeout.
2022  * \param unused Reserved for future use (must be zero).
2023  *
2024  * \return None.
2025  */
2026 /*************************************************************************************************/
2027 void HciLePerAdvCreateSyncCmd(uint8_t filterPolicy, uint8_t advSid, uint8_t advAddrType,
2028  uint8_t *pAdvAddr, uint16_t skip, uint16_t syncTimeout, uint8_t unused);
2029 
2030 /*************************************************************************************************/
2031 /*!
2032  * \brief HCI LE periodic advertising create sync cancel command.
2033  *
2034  * \return None.
2035  */
2036 /*************************************************************************************************/
2038 
2039 /*************************************************************************************************/
2040 /*!
2041  * \brief HCI LE periodic advertising terminate sync command.
2042  *
2043  * \param syncHandle Sync handle.
2044  *
2045  * \return None.
2046  */
2047 /*************************************************************************************************/
2048 void HciLePerAdvTerminateSyncCmd(uint16_t syncHandle);
2049 
2050 /*************************************************************************************************/
2051 /*!
2052  * \brief HCI LE add device to periodic advertiser list command.
2053  *
2054  * \param advAddrType Advertiser address type.
2055  * \param pAdvAddr Advertiser address.
2056  * \param advSid Advertising SID.
2057  *
2058  * \return None.
2059  */
2060 /*************************************************************************************************/
2061 void HciLeAddDeviceToPerAdvListCmd(uint8_t advAddrType, uint8_t *pAdvAddr, uint8_t advSid);
2062 
2063 /*************************************************************************************************/
2064 /*!
2065  * \brief HCI LE remove device from periodic advertiser list command.
2066  *
2067  * \param advAddrType Advertiser address type.
2068  * \param pAdvAddr Advertiser address.
2069  * \param advSid Advertising SID.
2070  *
2071  * \return None.
2072  */
2073 /*************************************************************************************************/
2074 void HciLeRemoveDeviceFromPerAdvListCmd(uint8_t advAddrType, uint8_t *pAdvAddr, uint8_t advSid);
2075 
2076 /*************************************************************************************************/
2077 /*!
2078  * \brief HCI LE clear periodic advertiser list command.
2079  *
2080  * \return None.
2081  */
2082 /*************************************************************************************************/
2083 void HciLeClearPerAdvListCmd(void);
2084 
2085 /*************************************************************************************************/
2086 /*!
2087  * \brief HCI LE read periodic advertiser size command.
2088  *
2089  * \return None.
2090  */
2091 /*************************************************************************************************/
2092 void HciLeReadPerAdvListSizeCmd(void);
2093 /**@}*/
2094 
2095 /*! \} */ /* STACK_HCI_CMD_API */
2096 
2097 #ifdef __cplusplus
2098 };
2099 #endif
2100 
2101 #endif /* HCI_API_H */
hciLePerAdvSyncLostEvt_t lePerAdvSyncLost
LE periodic advertising synchronization lost.
Definition: hci_api.h:630
uint16_t connIntervalMax
Maximum connection interval.
Definition: hci_api.h:644
void HciLeReadSupStatesCmd(void)
HCI LE read supported states command.
void HciLePerAdvCreateSyncCmd(uint8_t filterPolicy, 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 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:159
#define HCI_ENCRYPT_DATA_LEN
Length of data used in encryption.
Definition: hci_defs.h:1061
void HciSetLeSupFeat(uint16_t feat, bool_t flag)
Set LE supported features configuration mask.
uint8_t priAdvPhy
Primary Advertising PHY.
Definition: hci_api.h:680
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:148
LE read local resolving address command complete event.
Definition: hci_api.h:488
#define HCI_FEAT_LEN
Length of features byte array.
Definition: hci_defs.h:1052
void HciLeReadPhyCmd(uint16_t handle)
HCI read PHY command.
uint8_t status
Status.
Definition: hci_api.h:218
void HciLeReadRemoteFeatCmd(uint16_t handle)
HCI LE read remote feature command.
uint8_t status
Status.
Definition: hci_api.h:520
uint8_t wsfEventMask_t
Event handler event mask data type.
Definition: wsf_os.h:77
uint8_t addrType
Peer address type.
Definition: hci_api.h:115
uint8_t secAdvPhy
Secondary Advertising PHY.
Definition: hci_api.h:682
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:409
uint8_t reason
Reason.
Definition: hci_api.h:133
bdAddr_t peerRpa
Peer RPA.
Definition: hci_api.h:124
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:348
void HciLePerAdvTerminateSyncCmd(uint16_t syncHandle)
HCI LE periodic advertising terminate sync command.
uint8_t scanType
Scan type.
Definition: hci_api.h:700
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:221
uint8_t peerAddrType
Address type used for peer device.
Definition: hci_api.h:656
uint8_t handle
Connection handle.
Definition: hci_api.h:279
void HciLeCreateConnCancelCmd(void)
HCI LE create connection cancel command.
void HciLeReadNumSupAdvSets(void)
HCI LE read number of supported advertising sets command.
hciLePhyUpdateEvt_t lePhyUpdate
LE PHY update.
Definition: hci_api.h:623
uint16_t connLatency
Connection latency.
Definition: hci_api.h:645
uint16_t handle
Connection handle.
Definition: hci_api.h:113
hciReadRemoteVerInfoCmplEvt_t readRemoteVerInfoCmpl
Read remote version information complete.
Definition: hci_api.h:590
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:385
hciAuthPayloadToExpiredEvt_t authPayloadToExpired
Authenticated payload to expired.
Definition: hci_api.h:620
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:355
uint8_t status
Status.
Definition: hci_api.h:323
uint16_t suggestedMaxTxOctets
Suggested maximum Tx octets.
Definition: hci_api.h:411
uint8_t status
Status.
Definition: hci_api.h:199
void HciLeSetScanRespDataCmd(uint8_t len, uint8_t *pData)
HCI LE set scan response data.
uint8_t advSid
Advertising SID.
Definition: hci_api.h:179
LE connection complete event.
Definition: hci_api.h:109
hciLeCreateConnCancelCmdCmplEvt_t leCreateConnCancelCmdCmpl
LE create connection cancel command complete.
Definition: hci_api.h:585
hciLeReadLocalResAddrCmdCmplEvt_t leReadLocalResAddrCmdCmpl
LE read local resolvable address command complete.
Definition: hci_api.h:604
Write authenticated payload to command complete event.
Definition: hci_api.h:524
uint8_t * pData
Data buffer.
Definition: hci_api.h:186
void HciLePerAdvCreateSyncCancelCmd(void)
HCI LE periodic advertising create sync cancel command.
LE PHY update complete event.
Definition: hci_api.h:556
uint8_t status
Status.
Definition: hci_api.h:315
void HciLeReadDefDataLen(void)
HCI LE Read Default Data Length.
uint16_t lmpSubversion
LMP Sub-version.
Definition: hci_api.h:574
uint16_t maxCeLen
Maximum CE length.
Definition: hci_api.h:648
hciLeReadMaxDataLenEvt_t leReadMaxDataLenCmdCmpl
LE read max data length command complete.
Definition: hci_api.h:614
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:505
uint16_t opcode
Opcode.
Definition: hci_api.h:356
uint8_t status
Status.
Definition: hci_api.h:434
uint8_t advHandle
Advertising handle.
Definition: hci_api.h:690
void HciDisconnectCmd(uint16_t handle, uint8_t reason)
HCI disconnect command.
uint8_t status
Status.
Definition: hci_api.h:467
uint16_t advEventProp
Advertising Event Properties.
Definition: hci_api.h:671
uint16_t handle
Connection handle.
Definition: hci_api.h:427
uint16_t timeout
Connection timeout.
Definition: hci_api.h:449
HCI constants and definitions from the Bluetooth specification.
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:370
uint8_t HciGetPerAdvListSize(void)
Return the periodic advertising list size.
uint16_t handle
Connection handle.
Definition: hci_api.h:332
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:277
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:111
uint8_t scanAddrType
Scanner address type.
Definition: hci_api.h:210
uint8_t bool_t
Boolean data type.
Definition: wsf_types.h:78
void HciLeGenerateDHKey(uint8_t *pPubKeyX, uint8_t *pPubKeyY)
HCI LE Generate DH Key.
hciLeSetDefPhyCmdCmplEvt_t leSetDefPhyCmdCmpl
LE set default PHY command complete.
Definition: hci_api.h:622
uint16_t maxTxOctets
Maximum Tx octets.
Definition: hci_api.h:457
void HciLeSetDataLen(uint16_t handle, uint16_t txOctets, uint16_t txTime)
HCI LE Set Data Length.
hciReadLocalVerInfo_t readLocalVerInfo
Read local version information.
Definition: hci_api.h:632
uint8_t status
Status.
Definition: hci_api.h:298
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:613
uint16_t supportedMaxTxOctets
Supported maximum Tx octets.
Definition: hci_api.h:435
#define HCI_CHAN_MAP_LEN
Length of channel map byte array.
Definition: hci_defs.h:1059
Hardware error event.
Definition: hci_api.h:368
void HciResetCmd(void)
HCI reset command.
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:173
uint16_t handle
Handle.
Definition: hci_api.h:560
LE add device to resolving list command complete event.
Definition: hci_api.h:503
int8_t rssi
RSSI.
Definition: hci_api.h:262
uint8_t hciVersion
HCI version.
Definition: hci_api.h:570
hciLeScanTimeoutEvt_t leScanTimeout
LE scan timeout.
Definition: hci_api.h:625
void HciLeReadLocalP256PubKey(void)
HCI LE Read Local P-256 Public Key.
int8_t advTxPwr
Advertising Tx Power.
Definition: hci_api.h:679
void HciLeReadChanMapCmd(uint16_t handle)
HCI LE read channel map command.
uint8_t advFiltPolicy
Advertising Filter Policy.
Definition: hci_api.h:678
uint8_t maxEaEvents
Maximum number of extended advertising events.
Definition: hci_api.h:692
uint32_t priAdvInterMax
Primary Advertising Interval Maximum.
Definition: hci_api.h:673
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:259
bdAddr_t localRpa
Local RPA.
Definition: hci_api.h:123
uint16_t len
Data buffer length.
Definition: hci_api.h:185
void HciReadLocalVerInfoCmd(void)
HCI read local version info command.
bdAddr_t addr
Address.
Definition: hci_api.h:176
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:615
uint16_t handle
Connection handle.
Definition: hci_api.h:543
Encryption key refresh complete event.
Definition: hci_api.h:320
hciLeAddDevToResListCmdCmplEvt_t leAddDevToResListCmdCmpl
LE add device to resolving list command complete.
Definition: hci_api.h:606
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:519
void HciLeExtScanEnableCmd(uint8_t enable, uint8_t filterDup, uint16_t duration, uint16_t period)
HCI LE extended scan enable command.
#define HCI_RAND_LEN
Length of random number.
Definition: hci_defs.h:1062
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:444
void HciLeClearAdvSets(void)
HCI LE clear advertising sets command.
uint8_t addrType
Address type.
Definition: hci_api.h:162
uint16_t mfrName
Manufacturer name.
Definition: hci_api.h:290
uint8_t status
Status.
Definition: hci_api.h:426
uint16_t scanInterval
Scan interval.
Definition: hci_api.h:698
uint8_t * pPeerAddr
Peer Address.
Definition: hci_api.h:677
uint8_t status
Status.
Definition: hci_api.h:402
uint8_t status
Status.
Definition: hci_api.h:278
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:551
hciLeDataLenChangeEvt_t leDataLenChange
LE data length change.
Definition: hci_api.h:616
hciLeChSelAlgoEvt_t leChSelAlgo
LE channel select algorithm.
Definition: hci_api.h:631
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:306
void HciLeSetAdvDataCmd(uint8_t len, uint8_t *pData)
HCI LE set advertising data command.
uint16_t HciGetLeSupFeat(void)
Return the LE supported features supported by the controller.
void HciLeSetHostChanClassCmd(uint8_t *pChanMap)
HCI set host channel class command.
LE remote connetion parameter request event.
Definition: hci_api.h:442
hciLeAdvSetTermEvt_t leAdvSetTerm
LE advertising set terminated.
Definition: hci_api.h:626
uint8_t secAdvMaxSkip
Secondary Advertising Maximum Skip.
Definition: hci_api.h:681
const uint8_t * pPeerAddr
Address of peer device.
Definition: hci_api.h:657
uint16_t handle
Connection handle.
Definition: hci_api.h:340
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:425
uint8_t ownAddrType
Address type used by this device.
Definition: hci_api.h:655
uint16_t scanInterval
Scan interval.
Definition: hci_api.h:664
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:580
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:482
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:322
uint16_t handle
Connection handle.
Definition: hci_api.h:535
hciReadChanMapCmdCmplEvt_t readChanMapCmdCmpl
Read channel map command complete.
Definition: hci_api.h:588
void HciEvtRegister(hciEvtCback_t evtCback)
Register a callback for HCI events.
uint8_t advHandle
Advertising handle.
Definition: hci_api.h:200
Read transmit power level command complete event.
Definition: hci_api.h:275
void HciLeWriteDefDataLen(uint16_t suggestedMaxTxOctets, uint16_t suggestedMaxTxTime)
HCI LE Write Default Data Length.
uint16_t eventType
Event type.
Definition: hci_api.h:174
Encryption change event.
Definition: hci_api.h:328
LE read suggested default data len command complete event.
Definition: hci_api.h:407
bool_t HciLlPrivacySupported(void)
Whether LL Privacy is supported.
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:130
uint8_t status
Status.
Definition: hci_api.h:569
LE LTK request negative reply command complete event.
Definition: hci_api.h:312
uint8_t secPhy
Secondary PHY.
Definition: hci_api.h:178
uint8_t status
Status.
Definition: hci_api.h:287
uint8_t status
Disconnect complete status.
Definition: hci_api.h:131
hciLeRemDevFromResListCmdCmplEvt_t leRemDevFromResListCmdCmpl
LE remove device from resolving list command complete.
Definition: hci_api.h:607
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:217
Extended advertising parameters.
Definition: hci_api.h:669
LE extended advertising report.
Definition: hci_api.h:171
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:490
void HciLeReadPerAdvListSizeCmd(void)
HCI LE read periodic advertiser size command.
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:314
uint16_t suggestedMaxTxTime
Suggested maximum Tx time.
Definition: hci_api.h:412
void HciSetEventMaskCmd(uint8_t *pEventMask)
HCI set event mask command.
uint16_t handle
Connection handle.
Definition: hci_api.h:456
uint8_t status
Status.
Definition: hci_api.h:475
hciLeConnUpdateCmplEvt_t leConnUpdateCmpl
LE connection update complete.
Definition: hci_api.h:584
bdAddr_t addr
Device address.
Definition: hci_api.h:163
void(* hciEvtCback_t)(hciEvt_t *pEvent)
HCI event callback type.
Definition: hci_api.h:720
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:647
LE set default PHY command complete event.
Definition: hci_api.h:549
uint8_t txPower
Tx power.
Definition: hci_api.h:233
uint16_t connLatency
Connection latency.
Definition: hci_api.h:118
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:260
void HciLeConnUpdateCmd(uint16_t handle, hciConnSpec_t *pConnSpec)
HCI connection update command.
uint16_t len
Data buffer length.
Definition: hci_api.h:237
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:699
LE encrypt command complete event.
Definition: hci_api.h:375
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:269
hciDisconnectCmplEvt_t disconnectCmpl
Disconnect complete.
Definition: hci_api.h:583
uint8_t status
Status.
Definition: hci_api.h:410
void HciSetEventMaskPage2Cmd(uint8_t *pEventMask)
HCI set event page 2 mask command.
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:433
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:609
void HciLeReadWhiteListSizeCmd(void)
HCI LE read white list size command.
hciLeLtkReqReplCmdCmplEvt_t leLtkReqReplCmdCmpl
LE LTK request reply command complete.
Definition: hci_api.h:592
uint16_t intervalMax
Interval maximum.
Definition: hci_api.h:447
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:416
uint16_t maxRxOctets
Maximum Rx octets.
Definition: hci_api.h:459
uint16_t handle
Connect handle.
Definition: hci_api.h:132
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:617
void HciLeReadTxPower(void)
HCI LE read transmit power command.
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:558
uint16_t intervalMin
Interval minimum.
Definition: hci_api.h:446
hciReadRssiCmdCmplEvt_t readRssiCmdCmpl
Read RSSI command complete.
Definition: hci_api.h:587
int8_t rssi
RSSI.
Definition: hci_api.h:160
uint16_t syncHandle
Sync handle.
Definition: hci_api.h:219
Initiating parameters.
Definition: hci_api.h:652
uint8_t enabled
Encryption enabled flag.
Definition: hci_api.h:333
uint8_t peerAddrType
Peer Address Type.
Definition: hci_api.h:676
Extended scanning parameters.
Definition: hci_api.h:696
LE periodic advertising report.
Definition: hci_api.h:229
uint8_t version
Version.
Definition: hci_api.h:289
void(* hciFlowCback_t)(uint16_t handle, bool_t flowDisabled)
HCI flow control callback type.
Definition: hci_api.h:758
uint8_t directAddrType
Direct advertising address type.
Definition: hci_api.h:166
void HciLeClearResolvingList(void)
HCI clear resolving list command.
hciLeSetAddrResEnableCmdCmplEvt_t leSetAddrResEnableCmdCmpl
LE set address resolution enable command complete.
Definition: hci_api.h:605
Read RSSI command complete event.
Definition: hci_api.h:257
hciLeReadDefDataLenEvt_t leReadDefDataLenCmdCmpl
LE read default data length command complete.
Definition: hci_api.h:611
void HciAclRegister(hciAclCback_t aclCback, hciFlowCback_t flowCback)
Register callbacks for the HCI data path.
uint8_t eventType
Advertising event type.
Definition: hci_api.h:161
hciLeReadRemoteFeatCmplEvt_t leReadRemoteFeatCmpl
LE read remote feature complete.
Definition: hci_api.h:591
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:610
void HciReadBufSizeCmd(void)
HCI read buffer size command.
uint8_t clockAccuracy
Clock accuracy.
Definition: hci_api.h:120
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:568
uint8_t scanReqNotifEna
Scan Request Notification Enable.
Definition: hci_api.h:684
Authenticated payload to expire event.
Definition: hci_api.h:532
uint8_t filterPolicy
Scan filter policy.
Definition: hci_api.h:654
hciVendorSpecEvt_t vendorSpec
Vendor specific.
Definition: hci_api.h:599
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:353
uint8_t status
Status.
Definition: hci_api.h:307
uint16_t syncHandle
Sync handle.
Definition: hci_api.h:232
void HciResetSequence(void)
Initiate an HCI reset sequence.
void(* hciAclCback_t)(uint8_t *pData)
HCI ACL callback type.
Definition: hci_api.h:747
uint8_t rssi
RSSI.
Definition: hci_api.h:234
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:349
Read remote version information complete event.
Definition: hci_api.h:284
hciEncChangeEvt_t encChange
Encryption change.
Definition: hci_api.h:595
hciLeLtkReqEvt_t leLtkReq
LE LTK request.
Definition: hci_api.h:596
uint16_t handle
Connection handle.
Definition: hci_api.h:288
Platform-independent data types.
uint8_t advSid
Advertising SID.
Definition: hci_api.h:220
uint16_t handle
Connection handle.
Definition: hci_api.h:270
bdAddr_t peerAddr
Peer address.
Definition: hci_api.h:116
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:268
void HciLeRemoveDeviceFromResolvingList(uint8_t peerAddrType, const uint8_t *pPeerIdentityAddr)
HCI remove device from resolving list command.
Connection specification type.
Definition: hci_api.h:641
LE connection update complete event.
Definition: hci_api.h:137
unsigned long uint32_t
Unsigned 32-bit value.
Definition: wsf_types.h:71
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:466
hciEncKeyRefreshCmpl_t encKeyRefreshCmpl
Encryption key refresh complete.
Definition: hci_api.h:594
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:377
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:688
hciLeReadPeerResAddrCmdCmplEvt_t leReadPeerResAddrCmdCmpl
LE read peer resolvable address command complete.
Definition: hci_api.h:603
void HciVendorSpecificCmd(uint16_t opcode, uint8_t len, uint8_t *pData)
HCI vencor specific command.
uint16_t supTimeout
Supervision timeout.
Definition: hci_api.h:119
Initiating scan parameters.
Definition: hci_api.h:662
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:526
int16_t perAdvInter
Periodic advertising interval.
Definition: hci_api.h:182
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:192
uint8_t rxPhy
Rx PHY.
Definition: hci_api.h:545
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:231
LE clear resolving list command complete event.
Definition: hci_api.h:517
void HciLeSetResolvablePrivateAddrTimeout(uint16_t rpaTimeout)
HCI set resolvable private address timeout command.
LE data length change event.
Definition: hci_api.h:453
uint8_t advSetId
Advertising set ID.
Definition: hci_api.h:683
uint16_t connInterval
Connection interval.
Definition: hci_api.h:117
uint8_t * pData
Data buffer.
Definition: hci_api.h:238
bool_t HciLeAdvExtSupported(void)
Whether LE Advertising Extensions is supported.
void(* hciSecCback_t)(hciEvt_t *pEvent)
HCI security callback type.
Definition: hci_api.h:732
uint8_t advHandle
Advertising handle.
Definition: hci_api.h:209
void HciLeSetRandAddrCmd(uint8_t *pAddr)
HCI LE set random address command.
LE LTK request reply command complete event.
Definition: hci_api.h:304
#define BDA_ADDR_LEN
BD address length.
Definition: bda.h:34
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:460
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:244
hciLeClearResListCmdCmplEvt_t leClearResListCmdCmpl
LE clear resolving list command complete.
Definition: hci_api.h:608
uint16_t connIntervalMin
Minimum connection interval.
Definition: hci_api.h:643
LE LTK request event.
Definition: hci_api.h:337
uint8_t txPhy
Tx PHY.
Definition: hci_api.h:561
uint8_t unused
Intended to be used in a future feature.
Definition: hci_api.h:235
uint16_t supTimeout
Supervision timeout.
Definition: hci_api.h:646
Bluetooth device address utilities.
uint16_t handle
Connection handle.
Definition: hci_api.h:316
bdAddr_t advAddr
Advertiser address.
Definition: hci_api.h:222
uint8_t priPhy
Primary PHY.
Definition: hci_api.h:177
hciVendorSpecCmdCmplEvt_t vendorSpecCmdCmpl
Vendor specific command complete.
Definition: hci_api.h:598
void HciLeReadMaxAdvDataLen(void)
HCI LE read maximum advertising data length command.
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.
uint8_t bdAddr_t[BDA_ADDR_LEN]
BD address data type.
Definition: bda.h:62
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:418
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:498
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:512
LE read PHY command complete event.
Definition: hci_api.h:539
uint16_t HciGetMaxRxAclLen(void)
Get the maximum reassembled RX ACL packet length.
hciLeExtAdvReportEvt_t leExtAdvReport
LE extended advertising report.
Definition: hci_api.h:624
uint8_t status
Status.
Definition: hci_api.h:552
bdAddr_t scanAddr
Scanner address.
Definition: hci_api.h:211
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:251
void HciLeReadMaxDataLen(void)
HCI LE Read Maximum Data Length.
uint16_t handle
Connection handle.
Definition: hci_api.h:308
uint8_t HciGetWhiteListSize(void)
Return the white list size.
uint16_t maxTxTime
Maximum Tx time.
Definition: hci_api.h:458
uint16_t syncHandle
Sync handle.
Definition: hci_api.h:245
uint8_t status
Status.
Definition: hci_api.h:140
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:674
Union of all event types.
Definition: hci_api.h:578
void HciLeReadRfPathComp(void)
HCI LE read RF path compensation command.
LE remote connection parameter request negative reply command complete event.
Definition: hci_api.h:399
LE set address resolving enable command complete event.
Definition: hci_api.h:496
uint8_t HciGetResolvingListSize(void)
Return the resolving list size.
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:393
LE read peer resolving address command complete event.
Definition: hci_api.h:480
void HciLeSetPhyCmd(uint16_t handle, uint8_t allPhys, uint8_t txPhys, uint8_t rxPhys, uint16_t phyOptions)
HCI set PHY command.
uint16_t manufacturerName
Manufacturer name.
Definition: hci_api.h:573
void HciReadRemoteVerInfoCmd(uint16_t handle)
HCI read remote version info command.
uint8_t ownAddrType
Own Address Type.
Definition: hci_api.h:675
Read local version information complete event.
Definition: hci_api.h:566
uint8_t HciGetNumBufs(void)
Return the number of ACL buffers supported by the controller.
hciHwErrorEvt_t hwError
Hardware error.
Definition: hci_api.h:600
uint8_t status
Status.
Definition: hci_api.h:394
void HciLeEncryptCmd(uint8_t *pKey, uint8_t *pData)
HCI LE encrypt command.
LE scan request received.
Definition: hci_api.h:206
LE remove device from resolving list command complete event.
Definition: hci_api.h:510
uint8_t initPhys
Initiating PHYs.
Definition: hci_api.h:658
LE Read channel map command complete event.
Definition: hci_api.h:266
uint8_t lmpVersion
LMP version.
Definition: hci_api.h:572
LE advertising report event.
Definition: hci_api.h:155
hciWriteAuthPayloadToCmdCmplEvt_t writeAuthPayloadToCmdCmpl
Write authenticated payload to command complete.
Definition: hci_api.h:619
hciLeEncryptCmdCmplEvt_t leEncryptCmdCmpl
LE encrypt command complete.
Definition: hci_api.h:601
uint16_t connInterval
Connection interval.
Definition: hci_api.h:142
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:261
void HciReadBdAddrCmd(void)
HCI read BD address command.
uint16_t handle
Connection handle.
Definition: hci_api.h:445
LE local p256 ecc key command complete event.
Definition: hci_api.h:464
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:363
uint8_t advPhy
Advertiser PHY.
Definition: hci_api.h:223
hciLeAdvReportEvt_t leAdvReport
LE advertising report.
Definition: hci_api.h:586
void HciLeStartEncryptionCmd(uint16_t handle, uint8_t *pRand, uint16_t diversifier, uint8_t *pKey)
HCI LE start encryption command.
unsigned short uint16_t
Unsigned 16-bit value.
Definition: wsf_types.h:67
void HciLeSetScanEnableCmd(uint8_t enable, uint8_t filterDup)
HCI LE set scan enable command.
LE remote connection parameter request reply command complete event.
Definition: hci_api.h:391
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:618
uint8_t status
Status.
Definition: hci_api.h:331
Vendor specific event.
Definition: hci_api.h:361
uint8_t code
Error code.
Definition: hci_api.h:371
uint32_t priAdvInterMin
Primary Advertising Interval Minimum.
Definition: hci_api.h:672
void HciLeWriteRfPathComp(int16_t txPathComp, int16_t rxPathComp)
HCI LE write RF path compensation command.
void HciLeSetAddrResolutionEnable(uint8_t enable)
HCI enable or disable address resolution command.
Disconnect complete event.
Definition: hci_api.h:128
void HciLeClearWhiteListCmd(void)
HCI LE clear white list command.
uint8_t chSelAlgo
Channel selection algorithm.
Definition: hci_api.h:253
uint8_t status
Status.
Definition: hci_api.h:386
uint8_t status
Data status.
Definition: hci_api.h:236
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:208
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:691
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:534
LE read remote features complete event.
Definition: hci_api.h:295
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:401
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:201
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:455
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:339
LE set data len command complete event.
Definition: hci_api.h:423
uint8_t rxPhy
Rx PHY.
Definition: hci_api.h:562
void HciCoreInit(void)
HCI core initialization.
uint16_t handle
Connection handle.
Definition: hci_api.h:324
uint16_t connLatency
Connection latency.
Definition: hci_api.h:143
#define HCI_P256_KEY_LEN
Length of P256 key.
Definition: hci_defs.h:1064
uint8_t status
Status.
Definition: hci_api.h:559
bdAddr_t directAddr
Directed address.
Definition: hci_api.h:184
hciLeConnCmplEvt_t leConnCmpl
LE connection complete.
Definition: hci_api.h:582
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:541
LE periodic advertising sync established.
Definition: hci_api.h:215
uint8_t status
Status.
Definition: hci_api.h:419
uint16_t supTimeout
Supervision timeout.
Definition: hci_api.h:144
uint16_t scanWindow
Scan window.
Definition: hci_api.h:665
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:436
uint16_t handle
Connection handle.
Definition: hci_api.h:252
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:150
LE scan timeout.
Definition: hci_api.h:190
uint8_t directAddrType
Directed address type.
Definition: hci_api.h:183
hciLePerAdvReportEvt_t lePerAdvReport
LE periodic advertising report.
Definition: hci_api.h:629
LE rand command complete event.
Definition: hci_api.h:383
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:198
uint16_t handle
Connection handle.
Definition: hci_api.h:141
void HciReadLocalSupFeatCmd(void)
HCI read local supported feature command.
int8_t txPower
Tx Power.
Definition: hci_api.h:180
Vendor specific command status event.
Definition: hci_api.h:346
uint16_t supportedMaxRxTime
Supported maximum Rx time.
Definition: hci_api.h:438
uint16_t subversion
Sub-version.
Definition: hci_api.h:291
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:474
void HciLeSetPerAdvEnableCmd(uint8_t enable, uint8_t advHandle)
HCI LE set periodic advertising enable command.
uint16_t handle
Connection handle.
Definition: hci_api.h:403
hciLeReadPhyCmdCmplEvt_t leReadPhyCmdCmpl
LE read PHY command complete.
Definition: hci_api.h:621
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.
Software foundation OS API.
uint8_t addrType
Address type.
Definition: hci_api.h:175
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:286
Common message structure passed to event handler.
Definition: wsf_os.h:97
void HciVsAeInit(uint8_t param)
Vendor-specific controller AE initialization function.
LE read maximum data len command complete event.
Definition: hci_api.h:431
uint8_t txPhy
Tx PHY.
Definition: hci_api.h:544
void HciLeAddDeviceToPerAdvListCmd(uint8_t advAddrType, uint8_t *pAdvAddr, uint8_t advSid)
HCI LE add device to periodic advertiser list command.
uint16_t handle
Connection handle.
Definition: hci_api.h:299
uint8_t status
Status.
Definition: hci_api.h:542
hciVendorSpecCmdStatusEvt_t vendorSpecCmdStatus
Vendor specific command status.
Definition: hci_api.h:597
#define HCI_DH_KEY_LEN
Length of DH Key.
Definition: hci_defs.h:1065
void HciLeReadBufSizeCmd(void)
HCI LE read buffer size command.
LE channel selection algorithm.
Definition: hci_api.h:249
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.
uint16_t supportedMaxRxOctets
Supported maximum Rx octets.
Definition: hci_api.h:437
uint8_t numComplEvts
Number of completed extended advertising events.
Definition: hci_api.h:202
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:139
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:297
wsfMsgHdr_t resetSeqCmpl
Reset sequence complete.
Definition: hci_api.h:581
void HciLeSetEventMaskCmd(uint8_t *pLeEventMask)
HCI LE set event mask command.
uint8_t * pData
advertising or scan response data.
Definition: hci_api.h:158
uint16_t handle
Connection handle.
Definition: hci_api.h:395
uint16_t latency
Connection latency.
Definition: hci_api.h:448
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:589
LE generate DH key command complete event.
Definition: hci_api.h:472
unsigned char uint8_t
Unsigned 8-bit value.
Definition: wsf_types.h:63
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:157
hciLeRandCmdCmplEvt_t leRandCmdCmpl
LE random command complete.
Definition: hci_api.h:602
uint8_t clockAccuracy
Advertiser clock accuracy.
Definition: hci_api.h:225
int8_t rssi
RSSI.
Definition: hci_api.h:181
signed short int16_t
Signed 16-bit value.
Definition: wsf_types.h:65
hciLeWriteDefDataLenEvt_t leWriteDefDataLenCmdCmpl
LE write default data length command complete.
Definition: hci_api.h:612
uint16_t handle
Connection handle.
Definition: hci_api.h:528
LE advertising set terminated.
Definition: hci_api.h:196
LE periodic advertising synch lost.
Definition: hci_api.h:242
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:593
wsfMsgHdr_t hdr
Event header.
Definition: hci_api.h:330
uint16_t hciRevision
HCI revision.
Definition: hci_api.h:571
bdAddr_t directAddr
Direct advertising address.
Definition: hci_api.h:167
uint8_t status
Status.
Definition: hci_api.h:112
hciLeScanReqRcvdEvt_t leScanReqRcvd
LE scan request received.
Definition: hci_api.h:627
hciLePerAdvSyncEstEvt_t lePerAdvSyncEst
LE periodic advertising synchronization established.
Definition: hci_api.h:628
uint8_t role
Local connection role.
Definition: hci_api.h:114
uint16_t perAdvInterval
Periodic advertising interval.
Definition: hci_api.h:224
void HciLeRemoveDevWhiteListCmd(uint8_t addrType, uint8_t *pAddr)
HCI LE remove device white list command.
signed char int8_t
Signed 8-bit value.
Definition: wsf_types.h:61
uint16_t HciGetBufSize(void)
Return the ACL buffer size supported by the controller.
uint8_t status
Status.
Definition: hci_api.h:378
int8_t pwrLvl
Tx power level.
Definition: hci_api.h:280
uint16_t encDiversifier
LTK encryption diversifier.
Definition: hci_api.h:342