BLE-Stack APIs  3.00.00
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
hci.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015-2016, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 /*!*****************************************************************************
33  * @defgroup HCI HCI
34  * @brief This module implements the Host Controller Interface
35  * @{
36  *
37  * @defgroup HCI_Function_Maps HCI Function Maps
38  * HCI Function Mapping
39  * @{
40  *
41  * This section lists the mapping between stack APIs and function names, as described
42  * in the BT core spec. The App column indicates if the command
43  * can be called by the application where Y means yes and N means no.
44  *
45  * <table>
46  * <caption id="API_Function_Map">API Function Map</caption>
47  * <tr>
48  * <th>Stack API</th>
49  * <th>BT Function</th>
50  * <th>App</th>
51  * </tr>
52  * <tr>
53  * <td>@ref HCI_DisconnectCmd</td>
54  * <td>Disconnect Command</td>
55  * <td>N</td>
56  * </tr>
57  * <tr>
58  * <td>@ref HCI_HostNumCompletedPktCmd</td>
59  * <td>Host Number Of Completed Packets Command</td>
60  * <td>N</td>
61  * </tr>
62  * <tr>
63  * <td>@ref HCI_LE_AddDeviceToResolvingListCmd</td>
64  * <td>LE Add Device to Resolving List Command</td>
65  * <td>N</td>
66  * </tr>
67  * <tr>
68  * <td>@ref HCI_LE_AddWhiteListCmd</td>
69  * <td>LE Add Device To White List Command</td>
70  * <td>Y</td>
71  * </tr>
72  * <tr>
73  * <td>@ref HCI_LE_ClearWhiteListCmd</td>
74  * <td>LE Clear White List Command</td>
75  * <td>Y</td>
76  * </tr>
77  * <tr>
78  * <td>@ref HCI_LE_ConnUpdateCmd</td>
79  * <td>LE Connection Update Command</td>
80  * <td>N</td>
81  * </tr>
82  * <tr>
83  * <td>@ref HCI_LE_CreateConnCancelCmd</td>
84  * <td>LE Create Connection Cancel Command</td>
85  * <td>N</td>
86  * </tr>
87  * <tr>
88  * <td>@ref HCI_LE_CreateConnCmd</td>
89  * <td>LE Create Connection Command</td>
90  * <td>N</td>
91  * </tr>
92  * <tr>
93  * <td>@ref HCI_LE_EncryptCmd</td>
94  * <td>LE Encrypt Command</td>
95  * <td>Y</td>
96  * </tr>
97  * <tr>
98  * <td>@ref HCI_LE_GenerateDHKeyCmd</td>
99  * <td>LE Generate DHKey Command</td>
100  * <td>N</td>
101  * </tr>
102  * <tr>
103  * <td>@ref HCI_LE_LtkReqNegReplyCmd</td>
104  * <td>LE Long Term Key Request Negative Reply Command</td>
105  * <td>N</td>
106  * </tr>
107  * <tr>
108  * <td>@ref HCI_LE_LtkReqReplyCmd</td>
109  * <td>LE Long Term Key Request Reply Command</td>
110  * <td>N</td>
111  * </tr>
112  * <tr>
113  * <td>@ref HCI_LE_RandCmd</td>
114  * <td>LE Rand Command</td>
115  * <td>N</td>
116  * </tr>
117  * <tr>
118  * <td>@ref HCI_LE_ReadAdvChanTxPowerCmd</td>
119  * <td>Read Transmit Power Level Command</td>
120  * <td>Y</td>
121  * </tr>
122  * <tr>
123  * <td>@ref HCI_LE_ReadBufSizeCmd</td>
124  * <td>LE Read Buffer Size Command</td>
125  * <td>N</td>
126  * </tr>
127  * <tr>
128  * <td>@ref HCI_LE_ReadChannelMapCmd</td>
129  * <td>LE Read Channel Map Command</td>
130  * <td>Y</td>
131  * </tr>
132  * <tr>
133  * <td>@ref HCI_LE_ReadLocalP256PublicKeyCmd</td>
134  * <td>LE Read Local P-256 Public Key Command</td>
135  * <td>N</td>
136  * </tr>
137  * <tr>
138  * <td>@ref HCI_LE_ReadLocalResolvableAddressCmd</td>
139  * <td>LE Read Local Resolvable Address Command</td>
140  * <td>N</td>
141  * </tr>
142  * <tr>
143  * <td>@ref HCI_LE_ReadLocalSupportedFeaturesCmd</td>
144  * <td>Read Local Supported Commands Command</td>
145  * <td>Y</td>
146  * </tr>
147  * <tr>
148  * <td>@ref HCI_LE_ReadMaxDataLenCmd</td>
149  * <td>Set Event Mask Command</td>
150  * <td>Y</td>
151  * </tr>
152  * <tr>
153  * <td>@ref HCI_LE_ReadPeerResolvableAddressCmd</td>
154  * <td>LE Read Peer Resolvable Address Command</td>
155  * <td>N</td>
156  * </tr>
157  * <tr>
158  * <td>@ref HCI_LE_ReadRemoteUsedFeaturesCmd</td>
159  * <td>LE Read Remote Used Features Command</td>
160  * <td>Y</td>
161  * </tr>
162  * <tr>
163  * <td>@ref HCI_LE_ReadResolvingListSizeCmd</td>
164  * <td>LE Read Resolving List Size Command</td>
165  * <td>N</td>
166  * </tr>
167  * <tr>
168  * <td>@ref HCI_LE_ReadSuggestedDefaultDataLenCmd</td>
169  * <td>LE Read Suggested Default Data Length Command</td>
170  * <td>Y</td>
171  * </tr>
172  * <tr>
173  * <td>@ref HCI_LE_ReadSupportedStatesCmd</td>
174  * <td>LE Read Supported States Command</td>
175  * <td>Y</td>
176  * </tr>
177  * <tr>
178  * <td>@ref HCI_LE_ReadWhiteListSizeCmd</td>
179  * <td>LE Read White List Size Command</td>
180  * <td>Y</td>
181  * </tr>
182  * <tr>
183  * <td>@ref HCI_LE_RemoteConnParamReqNegReplyCmd</td>
184  * <td>LE Remote Connection Parameter Request Negative Reply Command</td>
185  * <td>N</td>
186  * </tr>
187  * <tr>
188  * <td>@ref HCI_LE_RemoteConnParamReqReplyCmd</td>
189  * <td>LE Remote Connection Parameter Request Reply Command</td>
190  * <td>N</td>
191  * </tr>
192  * <tr>
193  * <td>@ref HCI_LE_RemoveDeviceFromResolvingListCmd</td>
194  * <td>LE Remove Device From Resolving List Command</td>
195  * <td>N</td>
196  * </tr>
197  * <tr>
198  * <td>@ref HCI_LE_RemoveWhiteListCmd</td>
199  * <td>LE Remove Device From White List Command</td>
200  * <td>Y</td>
201  * </tr>
202  * <tr>
203  * <td>@ref HCI_LE_SetAddressResolutionEnableCmd</td>
204  * <td>LE Set Address Resolution Enable Command</td>
205  * <td>N</td>
206  * </tr>
207  * <tr>
208  * <td>@ref HCI_LE_SetAdvDataCmd</td>
209  * <td>LE Set Advertising Data Command</td>
210  * <td>N</td>
211  * </tr>
212  * <tr>
213  * <td>@ref HCI_LE_SetAdvEnableCmd</td>
214  * <td>LE Set Advertise Enable Command</td>
215  * <td>N</td>
216  * </tr>
217  * <tr>
218  * <td>@ref HCI_LE_SetDataLenCmd</td>
219  * <td>LE Set Data Length Command</td>
220  * <td>Y</td>
221  * </tr>
222  * <tr>
223  * <td>@ref HCI_LE_SetEventMaskCmd</td>
224  * <td>LE Set Event Mask Command</td>
225  * <td>Y</td>
226  * </tr>
227  * <tr>
228  * <td>@ref HCI_LE_SetHostChanClassificationCmd</td>
229  * <td>LE Set Host Channel Classification Command</td>
230  * <td>Y</td>
231  * </tr>
232  * <tr>
233  * <td>@ref HCI_LE_SetRandomAddressCmd</td>
234  * <td>LE Set Random Address Command</td>
235  * <td>N</td>
236  * </tr>
237  * <tr>
238  * <td>@ref HCI_LE_SetResolvablePrivateAddressTimeoutCmd</td>
239  * <td>LE Set Resolvable Private Address Timeout Command</td>
240  * <td>N</td>
241  * </tr>
242  * <tr>
243  * <td>@ref HCI_LE_SetScanEnableCmd</td>
244  * <td>LE Set Scan Enable Command</td>
245  * <td>N</td>
246  * </tr>
247  * <tr>
248  * <td>@ref HCI_LE_SetScanParamCmd</td>
249  * <td>LE Set Scan Parameters Command</td>
250  * <td>N</td>
251  * </tr>
252  * <tr>
253  * <td>@ref HCI_LE_SetAdvDataCmd</td>
254  * <td>LE Set Advertising Data Command</td>
255  * <td>N</td>
256  * </tr>
257  * <tr>
258  * <td>@ref HCI_LE_SetAdvEnableCmd</td>
259  * <td>LE Set Advertise Enable Command</td>
260  * <td>N</td>
261  * </tr>
262  * <tr>
263  * <td>@ref HCI_LE_SetAdvParamCmd</td>
264  * <td>LE Set Advertising Parameters Command</td>
265  * <td>N</td>
266  * </tr>
267  * <tr>
268  * <td>@ref HCI_LE_SetScanRspDataCmd</td>
269  * <td>LE Set Scan Response Data Command</td>
270  * <td>N</td>
271  * </tr>
272  * <tr>
273  * <td>@ref HCI_LE_StartEncyptCmd</td>
274  * <td>LE Start Encryption Command</td>
275  * <td>N</td>
276  * </tr>
277  * <tr>
278  * <td>@ref HCI_LE_TestEndCmd</td>
279  * <td>LE Test End Command</td>
280  * <td>Y</td>
281  * </tr>
282  * <tr>
283  * <td>@ref HCI_LE_TransmitterTestCmd</td>
284  * <td>LE Transmitter Test Command</td>
285  * <td>Y</td>
286  * </tr>
287  * <tr>
288  * <td>@ref HCI_LE_WriteSuggestedDefaultDataLenCmd</td>
289  * <td>LE Write Suggested Default Data Length Command</td>
290  * <td>Y</td>
291  * </tr>
292  * <tr>
293  * <td>@ref HCI_ReadAuthPayloadTimeoutCmd</td>
294  * <td>Read Authenticated Payload Timeout Command</td>
295  * <td>N</td>
296  * </tr>
297  * <tr>
298  * <td>@ref HCI_ReadBDADDRCmd</td>
299  * <td>Read BD_ADDR Command</td>
300  * <td>Y</td>
301  * </tr>
302  * <tr>
303  * <td>@ref HCI_ReadLocalSupportedCommandsCmd</td>
304  * <td>Read Local Supported Commands Command</td>
305  * <td>Y</td>
306  * </tr>
307  * <tr>
308  * <td>@ref HCI_ReadLocalSupportedFeaturesCmd</td>
309  * <td>Read Local Supported Features Command</td>
310  * <td>Y</td>
311  * </tr>
312  * <tr>
313  * <td>@ref HCI_ReadLocalVersionInfoCmd</td>
314  * <td>Read Local Version Information Command</td>
315  * <td>Y</td>
316  * </tr>
317  * <tr>
318  * <td>@ref HCI_ReadRemoteVersionInfoCmd</td>
319  * <td>Read Remote Version Information Command</td>
320  * <td>Y</td>
321  * </tr>
322  * <tr>
323  * <td>@ref HCI_ReadRssiCmd</td>
324  * <td>Read RSSI Command</td>
325  * <td>Y</td>
326  * </tr>
327  * <tr>
328  * <td>@ref HCI_ReadTransmitPowerLevelCmd</td>
329  * <td>Read Transmit Power Level Command</td>
330  * <td>Y</td>
331  * </tr>
332  * <tr>
333  * <td>@ref HCI_ResetCmd</td>
334  * <td>Reset Command</td>
335  * <td>Y</td>
336  * </tr>
337  * <tr>
338  * <td>@ref HCI_SetEventMaskCmd</td>
339  * <td>Set Event Mask Command</td>
340  * <td>Y</td>
341  * </tr>
342  * <tr>
343  * <td>@ref HCI_SetEventMaskPage2Cmd</td>
344  * <td>Set Event Mask Page 2 Command</td>
345  * <td>Y</td>
346  * </tr>
347  * </table>
348  *
349  * This section lists the mapping between stack APIs and function names, as described
350  * in the Vendor Specific API guide included with the installer.
351  *
352  * <table>
353  * <caption id="Vendor_Specific_API_Function_Map">Vendor Specific API Function Map</caption>
354  * <tr>
355  * <th>Stack API</th>
356  * <th>BT Function</th>
357  * </tr>
358  * <tr>
359  * <td>@ref HCI_EXT_AdvEventNoticeCmd</td>
360  * <td>HCI Extension Advertiser Event Notice</td>
361  * </tr>
362  * <tr>
363  * <td>@ref HCI_EXT_BuildRevisionCmd</td>
364  * <td>HCI Extension Build Revision</td>
365  * </tr>
366  * <tr>
367  * <td>@ref HCI_EXT_ConnEventNoticeCmd</td>
368  * <td>HCI Extension Connection Event Notice</td>
369  * </tr>
370  * <tr>
371  * <td>@ref HCI_EXT_DeclareNvUsageCmd</td>
372  * <td>HCI Extension Declare NV Usage</td>
373  * </tr>
374  * <tr>
375  * <td>@ref HCI_EXT_DecryptCmd</td>
376  * <td>HCI Extension Decrypt</td>
377  * </tr>
378  * <tr>
379  * <td>@ref HCI_EXT_DisconnectImmedCmd</td>
380  * <td>HCI Extension Disconnect Immediate</td>
381  * </tr>
382  * <tr>
383  * <td>@ref HCI_EXT_EnablePTMCmd</td>
384  * <td>HCI Extension Enable PTM</td>
385  * </tr>
386  * <tr>
387  * <td>@ref HCI_EXT_EndModemTestCmd</td>
388  * <td>Set Event Mask Command</td>
389  * </tr>
390  * <tr>
391  * <td>@ref HCI_EXT_EndModemTestCmd</td>
392  * <td>HCI Extension End Modem Test</td>
393  * </tr>
394  * <tr>
395  * <td>@ref HCI_EXT_ModemHopTestTxCmd</td>
396  * <td>HCI Extension Modem Hop Test Transmit</td>
397  * </tr>
398  * <tr>
399  * <td>@ref HCI_EXT_ModemTestRxCmd</td>
400  * <td>HCI Extension Modem Test Receive</td>
401  * </tr>
402  * <tr>
403  * <td>@ref HCI_EXT_ModemTestTxCmd</td>
404  * <td>HCI Extension Modem Test Transmit</td>
405  * </tr>
406  * <tr>
407  * <td>@ref HCI_EXT_NumComplPktsLimitCmd</td>
408  * <td>HCI Extension Number Completed Packets Limit</td>
409  * </tr>
410  * <tr>
411  * <td>@ref HCI_EXT_OnePktPerEvtCmd</td>
412  * <td>HCI Extension One Packet Per Event</td>
413  * </tr>
414  * <tr>
415  * <td>@ref HCI_EXT_PacketErrorRateCmd</td>
416  * <td>HCI Extension Packet Error Rate</td>
417  * </tr>
418  * <tr>
419  * <td>@ref HCI_EXT_PERbyChanCmd</td>
420  * <td>HCI Extension Packet Error Rate By Channel</td>
421  * </tr>
422  * <tr>
423  * <td>@ref HCI_EXT_SaveFreqTuneCmd</td>
424  * <td>HCI Extension Save Frequency Tuning</td>
425  * </tr>
426  * <tr>
427  * <td>@ref HCI_EXT_ScanEventNoticeCmd </td>
428  * <td>HCI Extension Scan Event Notice</td>
429  * </tr>
430  * <tr>
431  * <td>@ref HCI_EXT_ScanReqRptCmd</td>
432  * <td>HCI Extension Scan Request Report</td>
433  * </tr>
434  * <tr>
435  * <td>@ref HCI_EXT_SetBDADDRCmd</td>
436  * <td>HCI Extension Set BDADDR</td>
437  * </tr>
438  * <tr>
439  * <td>@ref HCI_EXT_SetFastTxResponseTimeCmd</td>
440  * <td>HCI Extension Set Fast Transmit Response Time</td>
441  * </tr>
442  * <tr>
443  * <td>@ref HCI_EXT_SetFreqTuneCmd</td>
444  * <td>HCI Extension Set Frequency Tuning</td>
445  * </tr>
446  * <tr>
447  * <td>@ref HCI_EXT_SetLocalSupportedFeaturesCmd</td>
448  * <td>HCI Extension Set Local Supported Features</td>
449  * </tr>
450  * <tr>
451  * <td>@ref HCI_EXT_SetMaxDataLenCmd</td>
452  * <td>HCI Extension Set Max Data Length</td>
453  * </tr>
454  * <tr>
455  * <td>@ref HCI_EXT_SetMaxDtmTxPowerCmd</td>
456  * <td>HCI Extension Set Max DTM Transmitter Power</td>
457  * </tr>
458  * <tr>
459  * <td>@ref HCI_EXT_SetRxGainCmd</td>
460  * <td>HCI Extension Set Receiver Gain</td>
461  * </tr>
462  * <tr>
463  * <td>@ref HCI_EXT_SetSCACmd</td>
464  * <td>HCI Extension Set SCA</td>
465  * </tr>
466  * <tr>
467  * <td>@ref HCI_EXT_SetSlaveLatencyOverrideCmd</td>
468  * <td>HCI Extension Set Slave Latency Override</td>
469  * </tr>
470  * <tr>
471  * <td>@ref HCI_EXT_SetTxPowerCmd</td>
472  * <td>HCI Extension Set Transmitter Power</td>
473  * </tr>
474  * </table>
475  *
476  * @} End HCI_Function_Maps
477  *
478  * @file hci.h
479  * @brief HCI layer interface
480  */
481 
482 #ifndef HCI_H
483 #define HCI_H
484 
485 #ifdef __cplusplus
486 extern "C"
487 {
488 #endif
489 
490 /*
491  * INCLUDES
492  */
493 #include "bcomdef.h"
494 #include "osal.h"
495 #include "ll.h"
496 #include "hal_assert.h"
497 
498 /*
499  * MACROS
500  */
501 
502 /*
503  * CONSTANTS
504  */
505 
514 #define HCI_SUCCESS 0x00
515 #define HCI_ERROR_CODE_UNKNOWN_HCI_CMD 0x01
516 #define HCI_ERROR_CODE_UNKNOWN_CONN_ID 0x02
517 #define HCI_ERROR_CODE_HW_FAILURE 0x03
518 #define HCI_ERROR_CODE_PAGE_TIMEOUT 0x04
519 #define HCI_ERROR_CODE_AUTH_FAILURE 0x05
520 #define HCI_ERROR_CODE_PIN_KEY_MISSING 0x06
521 #define HCI_ERROR_CODE_MEM_CAP_EXCEEDED 0x07
522 #define HCI_ERROR_CODE_CONN_TIMEOUT 0x08
523 #define HCI_ERROR_CODE_CONN_LIMIT_EXCEEDED 0x09
524 #define HCI_ERROR_CODE_SYNCH_CONN_LIMIT_EXCEEDED 0x0A
525 #define HCI_ERROR_CODE_ACL_CONN_ALREADY_EXISTS 0x0B
526 #define HCI_ERROR_CODE_CMD_DISALLOWED 0x0C
527 #define HCI_ERROR_CODE_CONN_REJ_LIMITED_RESOURCES 0x0D
528 #define HCI_ERROR_CODE_CONN_REJECTED_SECURITY_REASONS 0x0E
529 #define HCI_ERROR_CODE_CONN_REJECTED_UNACCEPTABLE_BDADDR 0x0F
530 #define HCI_ERROR_CODE_CONN_ACCEPT_TIMEOUT_EXCEEDED 0x10
531 #define HCI_ERROR_CODE_UNSUPPORTED_FEATURE_PARAM_VALUE 0x11
532 #define HCI_ERROR_CODE_INVALID_HCI_CMD_PARAMS 0x12
533 #define HCI_ERROR_CODE_REMOTE_USER_TERM_CONN 0x13
534 #define HCI_ERROR_CODE_REMOTE_DEVICE_TERM_CONN_LOW_RESOURCES 0x14
535 #define HCI_ERROR_CODE_REMOTE_DEVICE_TERM_CONN_POWER_OFF 0x15
536 #define HCI_ERROR_CODE_CONN_TERM_BY_LOCAL_HOST 0x16
537 #define HCI_ERROR_CODE_REPEATED_ATTEMPTS 0x17
538 #define HCI_ERROR_CODE_PAIRING_NOT_ALLOWED 0x18
539 #define HCI_ERROR_CODE_UNKNOWN_LMP_PDU 0x19
540 #define HCI_ERROR_CODE_UNSUPPORTED_REMOTE_FEATURE 0x1A
541 #define HCI_ERROR_CODE_SCO_OFFSET_REJ 0x1B
542 #define HCI_ERROR_CODE_SCO_INTERVAL_REJ 0x1C
543 #define HCI_ERROR_CODE_SCO_AIR_MODE_REJ 0x1D
544 #define HCI_ERROR_CODE_INVALID_LMP_PARAMS 0x1E
545 #define HCI_ERROR_CODE_UNSPECIFIED_ERROR 0x1F
546 #define HCI_ERROR_CODE_UNSUPPORTED_LMP_PARAM_VAL 0x20
547 #define HCI_ERROR_CODE_ROLE_CHANGE_NOT_ALLOWED 0x21
548 #define HCI_ERROR_CODE_LMP_LL_RESP_TIMEOUT 0x22
549 #define HCI_ERROR_CODE_LMP_ERR_TRANSACTION_COLLISION 0x23
550 #define HCI_ERROR_CODE_LMP_PDU_NOT_ALLOWED 0x24
551 #define HCI_ERROR_CODE_ENCRYPT_MODE_NOT_ACCEPTABLE 0x25
552 #define HCI_ERROR_CODE_LINK_KEY_CAN_NOT_BE_CHANGED 0x26
553 #define HCI_ERROR_CODE_REQ_QOS_NOT_SUPPORTED 0x27
554 #define HCI_ERROR_CODE_INSTANT_PASSED 0x28
555 #define HCI_ERROR_CODE_PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED 0x29
556 #define HCI_ERROR_CODE_DIFFERENT_TRANSACTION_COLLISION 0x2A
557 #define HCI_ERROR_CODE_RESERVED1 0x2B
558 #define HCI_ERROR_CODE_QOS_UNACCEPTABLE_PARAM 0x2C
559 #define HCI_ERROR_CODE_QOS_REJ 0x2D
560 #define HCI_ERROR_CODE_CHAN_ASSESSMENT_NOT_SUPPORTED 0x2E
561 #define HCI_ERROR_CODE_INSUFFICIENT_SECURITY 0x2F
562 #define HCI_ERROR_CODE_PARAM_OUT_OF_MANDATORY_RANGE 0x30
563 #define HCI_ERROR_CODE_RESERVED2 0x31
564 #define HCI_ERROR_CODE_ROLE_SWITCH_PENDING 0x32
565 #define HCI_ERROR_CODE_RESERVED3 0x33
566 #define HCI_ERROR_CODE_RESERVED_SLOT_VIOLATION 0x34
567 #define HCI_ERROR_CODE_ROLE_SWITCH_FAILED 0x35
568 #define HCI_ERROR_CODE_EXTENDED_INQUIRY_RESP_TOO_LARGE 0x36
569 #define HCI_ERROR_CODE_SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST 0x37
570 #define HCI_ERROR_CODE_HOST_BUSY_PAIRING 0x38
571 #define HCI_ERROR_CODE_CONN_REJ_NO_SUITABLE_CHAN_FOUND 0x39
572 #define HCI_ERROR_CODE_CONTROLLER_BUSY 0x3A
573 #define HCI_ERROR_CODE_UNACCEPTABLE_CONN_PARAMETERS 0x3B
574 #define HCI_ERROR_CODE_DIRECTED_ADV_TIMEOUT 0x3C
575 #define HCI_ERROR_CODE_CONN_TERM_MIC_FAILURE 0x3D
576 #define HCI_ERROR_CODE_CONN_FAILED_TO_ESTABLISH 0x3E
577 #define HCI_ERROR_CODE_MAC_CONN_FAILED 0x3F
578 #define HCI_ERROR_CODE_COARSE_CLOCK_ADJUST_REJECTED 0x40
579 
585 #define HCI_MAX_NUM_CMD_BUFFERS LL_MAX_NUM_CMD_BUFFERS
586 #if defined(CC2540) || defined(CC2541) || defined(CC2541S)
587 #define HCI_MAX_NUM_DATA_BUFFERS LL_MAX_NUM_DATA_BUFFERS //<! Max Num Data Buffers
588 #endif // CC2540 | CC2541 | CC2541S
589 
590 // Send Data Packet Boundary Flags
591 #define FIRST_PKT_HOST_TO_CTRL LL_DATA_FIRST_PKT_HOST_TO_CTRL
592 #define CONTINUING_PKT LL_DATA_CONTINUATION_PKT
593 #define FIRST_PKT_CTRL_TO_HOST LL_DATA_FIRST_PKT_CTRL_TO_HOST
594 
595 
597 #define HCI_RSSI_NOT_AVAILABLE LL_RSSI_NOT_AVAILABLE
598 
602 #define HCI_DISCONNECT_AUTH_FAILURE HCI_ERROR_CODE_AUTH_FAILURE
603 #define HCI_DISCONNECT_REMOTE_USER_TERM HCI_ERROR_CODE_REMOTE_USER_TERM_CONN
604 #define HCI_DISCONNECT_REMOTE_DEV_LOW_RESOURCES HCI_ERROR_CODE_REMOTE_DEVICE_TERM_CONN_LOW_RESOURCES
605 #define HCI_DISCONNECT_REMOTE_DEV_POWER_OFF HCI_ERROR_CODE_REMOTE_DEVICE_TERM_CONN_POWER_OFF
606 #define HCI_DISCONNECT_UNSUPPORTED_REMOTE_FEATURE HCI_ERROR_CODE_UNSUPPORTED_REMOTE_FEATURE
607 #define HCI_DISCONNECT_KEY_PAIRING_NOT_SUPPORTED HCI_ERROR_CODE_PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED
608 #define HCI_DISCONNECT_UNACCEPTABLE_CONN_INTERVAL HCI_ERROR_CODE_UNACCEPTABLE_CONN_INTERVAL
609 
614 // Tx Power Types
615 #define HCI_READ_CURRENT_TX_POWER_LEVEL LL_READ_CURRENT_TX_POWER_LEVEL
616 #define HCI_READ_MAX_TX_POWER_LEVEL LL_READ_MAX_TX_POWER_LEVEL
617 
622 #define HCI_CTRL_TO_HOST_FLOW_CTRL_OFF 0
623 #define HCI_CTRL_TO_HOST_FLOW_CTRL_ACL_ON_SYNCH_OFF 1
624 #define HCI_CTRL_TO_HOST_FLOW_CTRL_ACL_OFF_SYNCH_ON 2
625 #define HCI_CTRL_TO_HOST_FLOW_CTRL_ACL_ON_SYNCH_ON 3
626 
631 #define HCI_PUBLIC_DEVICE_ADDRESS LL_DEV_ADDR_TYPE_PUBLIC
632 #define HCI_RANDOM_DEVICE_ADDRESS LL_DEV_ADDR_TYPE_RANDOM
633 
638 #define HCI_CONNECTABLE_UNDIRECTED_ADV LL_ADV_CONNECTABLE_UNDIRECTED_EVT
639 #define HCI_CONNECTABLE_DIRECTED_HDC_ADV LL_ADV_CONNECTABLE_DIRECTED_HDC_EVT
640 #define HCI_SCANNABLE_UNDIRECTED LL_ADV_SCANNABLE_UNDIRECTED_EVT
641 #define HCI_NONCONNECTABLE_UNDIRECTED_ADV LL_ADV_NONCONNECTABLE_UNDIRECTED_EVT
642 #define HCI_CONNECTABLE_DIRECTED_LDC_ADV LL_ADV_CONNECTABLE_DIRECTED_LDC_EVT
643 
648 #define HCI_ADV_CHAN_37 LL_ADV_CHAN_37
649 #define HCI_ADV_CHAN_38 LL_ADV_CHAN_38
650 #define HCI_ADV_CHAN_39 LL_ADV_CHAN_39
651 #define HCI_ADV_CHAN_ALL (LL_ADV_CHAN_37 | LL_ADV_CHAN_38 | LL_ADV_CHAN_39)
652 
657 #define HCI_ADV_WL_POLICY_ANY_REQ LL_ADV_WL_POLICY_ANY_REQ
658 #define HCI_ADV_WL_POLICY_WL_SCAN_REQ LL_ADV_WL_POLICY_WL_SCAN_REQ
659 #define HCI_ADV_WL_POLICY_WL_CONNECT_REQ LL_ADV_WL_POLICY_WL_CONNECT_REQ
660 #define HCI_ADV_WL_POLICY_WL_ALL_REQ LL_ADV_WL_POLICY_WL_ALL_REQ
661 
666 #define HCI_ENABLE_ADV LL_ADV_MODE_ON
667 #define HCI_DISABLE_ADV LL_ADV_MODE_OFF
668 
673 #define HCI_SCAN_PASSIVE LL_SCAN_PASSIVE
674 #define HCI_SCAN_ACTIVE LL_SCAN_ACTIVE
675 
680 // Scan White List Policy
681 #define HCI_SCAN_WL_POLICY_ANY_ADV_PKTS LL_SCAN_WL_POLICY_ANY_ADV_PKTS
682 #define HCI_SCAN_WL_POLICY_USE_WHITE_LIST LL_SCAN_WL_POLICY_USE_WHITE_LIST
683 
688 // Scan Filtering
689 #define HCI_FILTER_REPORTS_DISABLE LL_FILTER_REPORTS_DISABLE
690 #define HCI_FILTER_REPORTS_ENABLE LL_FILTER_REPORTS_ENABLE
691 
696 // Scan Commands
697 #define HCI_SCAN_STOP LL_SCAN_STOP
698 #define HCI_SCAN_START LL_SCAN_START
699 
704 #define HCI_INIT_WL_POLICY_USE_PEER_ADDR LL_INIT_WL_POLICY_USE_PEER_ADDR
705 #define HCI_INIT_WL_POLICY_USE_WHITE_LIST LL_INIT_WL_POLICY_USE_WHITE_LIST
706 
711 #define HCI_ENCRYPTION_OFF LL_ENCRYPTION_OFF
712 #define HCI_ENCRYPTION_ON LL_ENCRYPTION_ON
713 
718 #define HCI_DIRECT_TEST_PAYLOAD_PRBS9 LL_DIRECT_TEST_PAYLOAD_PRBS9
719 #define HCI_DIRECT_TEST_PAYLOAD_0x0F LL_DIRECT_TEST_PAYLOAD_0x0F
720 #define HCI_DIRECT_TEST_PAYLOAD_0x55 LL_DIRECT_TEST_PAYLOAD_0x55
721 #define HCI_DIRECT_TEST_PAYLOAD_PRBS15 LL_DIRECT_TEST_PAYLOAD_PRBS15
722 #define HCI_DIRECT_TEST_PAYLOAD_0xFF LL_DIRECT_TEST_PAYLOAD_0xFF
723 #define HCI_DIRECT_TEST_PAYLOAD_0x00 LL_DIRECT_TEST_PAYLOAD_0x00
724 #define HCI_DIRECT_TEST_PAYLOAD_0xF0 LL_DIRECT_TEST_PAYLOAD_0xF0
725 #define HCI_DIRECT_TEST_PAYLOAD_0xAA LL_DIRECT_TEST_PAYLOAD_0xAA
726 
731 #define HCI_DTM_STANDARD_MODULATION_INDEX LL_DTM_STANDARD_MODULATION_INDEX
732 #define HCI_DTM_STABLE_MODULATION_INDEX LL_DTM_STABLE_MODULATION_INDEX
733 
738 #define HCI_DISABLE_ADDR_RESOLUTION LL_DISABLE_ADDR_RESOLUTION
739 #define HCI_ENABLE_ADDR_RESOLUTION LL_ENABLE_ADDR_RESOLUTION
740 
745 #define HCI_PHY_USE_PHY_PARAM LL_PHY_USE_PHY_PARAM
746 #define HCI_PHY_USE_ANY_PHY LL_PHY_USE_ANY_PHY
747 //
748 #define HCI_PHY_1_MBPS LL_PHY_1_MBPS
749 #define HCI_PHY_2_MBPS LL_PHY_2_MBPS
750 
755 #define HCI_EXT_RX_GAIN_STD LL_EXT_RX_GAIN_STD
756 #define HCI_EXT_RX_GAIN_HIGH LL_EXT_RX_GAIN_HIGH
757 
762 #if defined( CC26XX ) || defined( CC13XX )
763 #define HCI_EXT_TX_POWER_MINUS_21_DBM LL_EXT_TX_POWER_MINUS_21_DBM
764 #define HCI_EXT_TX_POWER_MINUS_18_DBM LL_EXT_TX_POWER_MINUS_18_DBM
765 #define HCI_EXT_TX_POWER_MINUS_15_DBM LL_EXT_TX_POWER_MINUS_15_DBM
766 #define HCI_EXT_TX_POWER_MINUS_12_DBM LL_EXT_TX_POWER_MINUS_12_DBM
767 #define HCI_EXT_TX_POWER_MINUS_9_DBM LL_EXT_TX_POWER_MINUS_9_DBM
768 #define HCI_EXT_TX_POWER_MINUS_6_DBM LL_EXT_TX_POWER_MINUS_6_DBM
769 #define HCI_EXT_TX_POWER_MINUS_3_DBM LL_EXT_TX_POWER_MINUS_3_DBM
770 #define HCI_EXT_TX_POWER_0_DBM LL_EXT_TX_POWER_0_DBM
771 #define HCI_EXT_TX_POWER_1_DBM LL_EXT_TX_POWER_1_DBM
772 #define HCI_EXT_TX_POWER_2_DBM LL_EXT_TX_POWER_2_DBM
773 #define HCI_EXT_TX_POWER_3_DBM LL_EXT_TX_POWER_3_DBM
774 #define HCI_EXT_TX_POWER_4_DBM LL_EXT_TX_POWER_4_DBM
775 #define HCI_EXT_TX_POWER_5_DBM LL_EXT_TX_POWER_5_DBM
776 #else // CC254x
777 #define HCI_EXT_TX_POWER_MINUS_23_DBM LL_EXT_TX_POWER_MINUS_23_DBM
778 #define HCI_EXT_TX_POWER_MINUS_6_DBM LL_EXT_TX_POWER_MINUS_6_DBM
779 #define HCI_EXT_TX_POWER_0_DBM LL_EXT_TX_POWER_0_DBM
780 #define HCI_EXT_TX_POWER_4_DBM LL_EXT_TX_POWER_4_DBM
781 #endif // CC26XX/CC13XX
782 
787 #define HCI_EXT_ENABLE_ONE_PKT_PER_EVT LL_EXT_ENABLE_ONE_PKT_PER_EVT
788 #define HCI_EXT_DISABLE_ONE_PKT_PER_EVT LL_EXT_DISABLE_ONE_PKT_PER_EVT
789 
791 
793 
796 #define HCI_EXT_ENABLE_CLK_DIVIDE_ON_HALT LL_EXT_ENABLE_CLK_DIVIDE_ON_HALT
797 #define HCI_EXT_DISABLE_CLK_DIVIDE_ON_HALT LL_EXT_DISABLE_CLK_DIVIDE_ON_HALT
798 
800 
802 
805 #define HCI_EXT_NV_IN_USE LL_EXT_NV_IN_USE
806 #define HCI_EXT_NV_NOT_IN_USE LL_EXT_NV_NOT_IN_USE
807 
812 #define HCI_EXT_ENABLE_FAST_TX_RESP_TIME LL_EXT_ENABLE_FAST_TX_RESP_TIME
813 #define HCI_EXT_DISABLE_FAST_TX_RESP_TIME LL_EXT_DISABLE_FAST_TX_RESP_TIME
814 
819 #define HCI_EXT_ENABLE_SL_OVERRIDE LL_EXT_ENABLE_SL_OVERRIDE
820 #define HCI_EXT_DISABLE_SL_OVERRIDE LL_EXT_DISABLE_SL_OVERRIDE
821 
826 #define HCI_EXT_TX_MODULATED_CARRIER LL_EXT_TX_MODULATED_CARRIER
827 #define HCI_EXT_TX_UNMODULATED_CARRIER LL_EXT_TX_UNMODULATED_CARRIER
828 
833 #define HCI_PTM_SET_FREQ_TUNE_DOWN LL_EXT_SET_FREQ_TUNE_DOWN
834 #define HCI_PTM_SET_FREQ_TUNE_UP LL_EXT_SET_FREQ_TUNE_UP
835 
837 
839 
842 #define HCI_EXT_PM_IO_PORT_P0 LL_EXT_PM_IO_PORT_P0
843 #define HCI_EXT_PM_IO_PORT_P1 LL_EXT_PM_IO_PORT_P1
844 #define HCI_EXT_PM_IO_PORT_P2 LL_EXT_PM_IO_PORT_P2
845 #define HCI_EXT_PM_IO_PORT_NONE LL_EXT_PM_IO_PORT_NONE
846 
847 #define HCI_EXT_PM_IO_PORT_PIN0 LL_EXT_PM_IO_PORT_PIN0
848 #define HCI_EXT_PM_IO_PORT_PIN1 LL_EXT_PM_IO_PORT_PIN1
849 #define HCI_EXT_PM_IO_PORT_PIN2 LL_EXT_PM_IO_PORT_PIN2
850 #define HCI_EXT_PM_IO_PORT_PIN3 LL_EXT_PM_IO_PORT_PIN3
851 #define HCI_EXT_PM_IO_PORT_PIN4 LL_EXT_PM_IO_PORT_PIN4
852 #define HCI_EXT_PM_IO_PORT_PIN5 LL_EXT_PM_IO_PORT_PIN5
853 #define HCI_EXT_PM_IO_PORT_PIN6 LL_EXT_PM_IO_PORT_PIN6
854 #define HCI_EXT_PM_IO_PORT_PIN7 LL_EXT_PM_IO_PORT_PIN7
855 
857 
862 #define HCI_EXT_PER_RESET LL_EXT_PER_RESET
863 #define HCI_EXT_PER_READ LL_EXT_PER_READ
864 
866 
868 
871 #define HCI_EXT_HALT_DURING_RF_DISABLE LL_EXT_HALT_DURING_RF_DISABLE
872 #define HCI_EXT_HALT_DURING_RF_ENABLE LL_EXT_HALT_DURING_RF_ENABLE
873 
875 
877 
880 #define HCI_EXT_SET_USER_REVISION LL_EXT_SET_USER_REVISION
881 #define HCI_EXT_READ_BUILD_REVISION LL_EXT_READ_BUILD_REVISION
882 
887 #define HCI_EXT_RESET_SYSTEM_HARD LL_EXT_RESET_SYSTEM_HARD
888 #define HCI_EXT_RESET_SYSTEM_SOFT LL_EXT_RESET_SYSTEM_SOFT
889 
891 
893 
896 #define HCI_EXT_DISABLE_OVERLAPPED_PROCESSING LL_EXT_DISABLE_OVERLAPPED_PROCESSING
897 #define HCI_EXT_ENABLE_OVERLAPPED_PROCESSING LL_EXT_ENABLE_OVERLAPPED_PROCESSING
898 
900 
902 
905 #define HCI_EXT_DISABLE_NUM_COMPL_PKTS_ON_EVENT LL_EXT_DISABLE_NUM_COMPL_PKTS_ON_EVENT
906 #define HCI_EXT_ENABLE_NUM_COMPL_PKTS_ON_EVENT LL_EXT_ENABLE_NUM_COMPL_PKTS_ON_EVENT
907 
912 #define HCI_EXT_DISABLE_SCAN_REQUEST_REPORT LL_EXT_DISABLE_SCAN_REQUEST_REPORT
913 #define HCI_EXT_ENABLE_SCAN_REQUEST_REPORT LL_EXT_ENABLE_SCAN_REQUEST_REPORT
914 
921 // HCI Link Type for Buffer Overflow
922 #define HCI_LINK_TYPE_SCO_BUFFER_OVERFLOW 0
923 #define HCI_LINK_TYPE_ACL_BUFFER_OVERFLOW 1
924 
928 /*
929  * TYPEDEFS
930  */
931 
933 typedef uint8 hciStatus_t;
935 
940 typedef struct
942 {
943  osal_event_hdr_t hdr;
944  uint8 BLEEventCode;
945  uint8 status;
946  uint16 connectionHandle;
947  uint8 role;
948  uint8 peerAddrType;
949  uint8 peerAddr[B_ADDR_LEN];
950  uint16 connInterval;
951  uint16 connLatency;
952  uint16 connTimeout;
953  uint8 clockAccuracy;
955 
957 typedef struct
958 {
959  osal_event_hdr_t hdr;
960  uint8 BLEEventCode;
961  uint8 status;
962  uint16 connectionHandle;
963  uint8 role;
964  uint8 peerAddrType;
965  uint8 peerAddr[B_ADDR_LEN];
966  uint16 connInterval;
967  uint16 connLatency;
968  uint16 connTimeout;
969  uint8 clockAccuracy;
970  // Note: These fields normally follow peerAddr. Put here for Host optimization.
971  uint8 localRPA[B_ADDR_LEN];
972  uint8 peerRPA[B_ADDR_LEN];
974 
977 {
981 
983 typedef struct
984 {
985  uint8 eventType; // advertisement or scan response event type
986  uint8 addrType; // public or random address type
987  uint8 addr[B_ADDR_LEN]; // device address
988  uint8 dataLen; // length of report data
989  uint8 rspData[B_MAX_ADV_LEN]; // report data given by dataLen
990  int8 rssi; // report RSSI
992 
994 typedef struct
995 {
996  osal_event_hdr_t hdr;
997  uint8 BLEEventCode;
998  uint8 numDevices;
999  hciEvt_DevInfo_t* devInfo; // pointer to the array of devInfo
1001 
1003 typedef struct
1004 {
1005  osal_event_hdr_t hdr;
1006  uint8 BLEEventCode;
1007  uint8 eventType; // scan request event type
1008  uint8 peerAddrType; // public or random address type
1009  uint8 peerAddr[B_ADDR_LEN]; // peer device address
1010  uint8 bleChan; // BLE channel
1011  int8 rssi; // report RSSI
1013 
1015 typedef struct
1016 {
1017  osal_event_hdr_t hdr;
1018  uint8 BLEEventCode;
1019  uint8 status;
1020  uint16 connectionHandle;
1021  uint16 connInterval;
1022  uint16 connLatency;
1023  uint16 connTimeout;
1025 
1027 typedef struct
1028 {
1029  osal_event_hdr_t hdr;
1030  uint8 BLEEventCode;
1031  uint8 status;
1032  uint16 connectionHandle;
1033  uint8 features[8];
1035 
1037 typedef struct
1038 {
1039  osal_event_hdr_t hdr;
1040  uint8 BLEEventCode;
1041  uint16 connHandle;
1042  uint8 reason;
1043  uint8 encEnable;
1045 
1047 typedef struct
1048 {
1049  osal_event_hdr_t hdr;
1050  uint8 BLEEventCode;
1051  uint16 connHandle;
1052  uint8 random[B_RANDOM_NUM_SIZE];
1053  uint16 encryptedDiversifier;
1055 
1057 typedef struct
1058 {
1059  osal_event_hdr_t hdr;
1060  uint8 numHandles;
1061  uint16 *pConnectionHandle; // pointer to the connection handle array
1062  uint16 *pNumCompletedPackets; // pointer to the number of completed packets array
1064 
1066 typedef struct
1067 {
1068  osal_event_hdr_t hdr;
1069  uint8 numHciCmdPkt; // number of HCI Command Packet
1070  uint16 cmdOpcode;
1071  uint8 *pReturnParam; // pointer to the return parameter
1073 
1075 typedef struct
1076 {
1077  osal_event_hdr_t hdr;
1078  uint8 length; // length of parametric data, in bytes
1079  uint16 cmdOpcode;
1080  uint8 *pEventParam;
1082 
1084 typedef struct
1085 {
1086  osal_event_hdr_t hdr;
1087  uint8 cmdStatus;
1088  uint8 numHciCmdPkt;
1089  uint16 cmdOpcode;
1091 
1093 typedef struct
1094 {
1095  osal_event_hdr_t hdr;
1096  uint8 hardwareCode;
1098 
1100 typedef struct
1101 {
1102  osal_event_hdr_t hdr;
1103  uint8 status;
1104  uint16 connHandle; // connection handle
1105  uint8 reason;
1107 
1109 typedef struct
1110 {
1111  osal_event_hdr_t hdr;
1112  uint8 linkType; // synchronous or asynchronous buffer overflow
1114 
1116 typedef struct
1117 {
1118  osal_event_hdr_t hdr;
1119  uint16 connHandle;
1121 
1123 typedef struct
1124 {
1125  osal_event_hdr_t hdr;
1126  uint8 BLEEventCode;
1127  uint8 status;
1128  uint16 connHandle;
1129  uint16 Interval_Min;
1130  uint16 Interval_Max;
1131  uint16 Latency;
1132  uint16 Timeout;
1134 
1136 typedef struct
1137 {
1138  osal_event_hdr_t hdr;
1139  uint8 BLEEventCode;
1140  uint8 status;
1141  uint16 connHandle;
1142  uint8 txPhy;
1143  uint8 rxPhy;
1145 
1147 typedef struct
1148 {
1149  osal_event_hdr_t hdr;
1150  uint8 BLEEventCode;
1151  uint16 connHandle;
1152  uint16 maxTxOctets;
1153  uint16 maxTxTime;
1154  uint16 maxRxOctets;
1155  uint16 maxRxTime;
1157 
1159 typedef struct
1160 {
1161  osal_event_hdr_t hdr;
1162  uint8 BLEEventCode;
1163  uint8 status;
1164  uint8 p256Key[LL_SC_P256_KEY_LEN];
1166 
1168 typedef struct
1169 {
1170  osal_event_hdr_t hdr;
1171  uint8 BLEEventCode;
1172  uint8 status;
1173  uint8 dhKey[LL_SC_DHKEY_LEN];
1175 
1177 typedef struct
1178 {
1179  uint8 status;
1180  uint16 dataPktLen;
1181  uint8 numDataPkts;
1183 
1185 typedef struct
1186 {
1187  osal_event_hdr_t hdr;
1188  uint8 *pData;
1189 } hciPacket_t;
1190 
1192 typedef struct
1193 {
1194  osal_event_hdr_t hdr;
1195  uint8 pktType;
1196  uint16 connHandle;
1197  uint8 pbFlag;
1198  uint16 pktLen;
1199  uint8 *pData;
1200 } hciDataPacket_t;
1201 
1203 
1204 // OSAL HCI_DATA_EVENT message format. This message is used to forward incoming
1205 // data messages up to an application
1206 typedef struct
1207 {
1208  osal_event_hdr_t hdr; // OSAL event header
1209  uint16 connHandle; // connection handle
1210  uint8 pbFlag; // data packet boundary flag
1211  uint16 len; // length of data packet
1212  uint8 *pData; // data packet given by len
1213 } hciDataEvent_t;
1214 
1216 
1218 #if defined( CC26XX ) || defined( CC13XX )
1220 #else // CC254x
1221 typedef struct
1222 #endif // CC26XX/CC13XX
1224  uint8 connId; // device connection handle
1225  uint8 role; // device connection role
1226  uint8 addr[LL_DEVICE_ADDR_LEN]; // peer device address
1227  uint8 addrType; // peer device address type
1228 } hciConnInfo_t;
1229 
1231 #if defined( CC26XX ) || defined( CC13XX )
1233 #else // CC254x
1234 typedef struct
1235 #endif // CC26XX/CC13XX
1236 {
1237  uint16 numPkts; // total number of rx packets
1238  uint16 numCrcErr; // number rx packets with CRC error
1239  uint16 numEvents; // number of connection events
1240  uint16 numMMissedEvents; // number missed connection events
1241 } hciPER_t;
1242 
1245 /*
1246  * LOCAL VARIABLES
1247  */
1248 
1249 /*
1250  * GLOBAL VARIABLES
1251  */
1252 
1254 
1266 extern void *HCI_bm_alloc( uint16 size );
1267 
1269 
1270 
1286 extern uint8 HCI_ValidConnTimeParams( uint16 connIntervalMin,
1287  uint16 connIntervalMax,
1288  uint16 connLatency,
1289  uint16 connTimeout );
1290 
1297 extern void HCI_TestAppTaskRegister( uint8 taskID );
1298 
1305 extern void HCI_GAPTaskRegister( uint8 taskID );
1306 
1312 extern void HCI_L2CAPTaskRegister( uint8 taskID );
1313 
1319 extern void HCI_SMPTaskRegister( uint8 taskID );
1320 
1326 extern void HCI_ExtTaskRegister( uint8 taskID );
1327 
1354 extern hciStatus_t HCI_SendDataPkt( uint16 connHandle,
1355  uint8 pbFlag,
1356  uint16 pktLen,
1357  uint8 *pData );
1358 
1374 extern hciStatus_t HCI_DisconnectCmd( uint16 connHandle,
1375  uint8 reason );
1376 
1377 
1394 extern hciStatus_t HCI_ReadRemoteVersionInfoCmd( uint16 connHandle );
1395 
1396 
1411 extern hciStatus_t HCI_SetEventMaskCmd( uint8 *pMask );
1412 
1413 
1428 extern hciStatus_t HCI_SetEventMaskPage2Cmd( uint8 *pMask );
1429 
1430 
1439 extern hciStatus_t HCI_ResetCmd( void );
1440 
1452 extern hciStatus_t HCI_ReadTransmitPowerLevelCmd( uint16 connHandle,
1453  uint8 txPwrType );
1454 
1456 
1473 extern hciStatus_t HCI_SetControllerToHostFlowCtrlCmd( uint8 flowControlEnable );
1474 
1475 
1476 
1499 extern hciStatus_t HCI_HostBufferSizeCmd( uint16 hostAclPktLen,
1500  uint8 hostSyncPktLen,
1501  uint16 hostTotalNumAclPkts,
1502  uint16 hostTotalNumSyncPkts );
1503 
1505 
1537 extern hciStatus_t HCI_HostNumCompletedPktCmd( uint8 numHandles,
1538  uint16 *connHandles,
1539  uint16 *numCompletedPkts );
1540 
1541 
1554 extern hciStatus_t HCI_ReadAuthPayloadTimeoutCmd( uint16 connHandle,
1555  uint16 *aptoValue );
1556 
1557 
1569 extern hciStatus_t HCI_WriteAuthPayloadTimeoutCmd( uint16 connHandle,
1570  uint16 aptoValue );
1571 
1572 
1581 extern hciStatus_t HCI_ReadLocalVersionInfoCmd( void );
1582 
1583 
1592 extern hciStatus_t HCI_ReadLocalSupportedCommandsCmd( void );
1593 
1594 
1603 extern hciStatus_t HCI_ReadLocalSupportedFeaturesCmd( void );
1604 
1605 
1614 extern hciStatus_t HCI_ReadBDADDRCmd( void );
1615 
1616 
1634 extern hciStatus_t HCI_ReadRssiCmd( uint16 connHandle );
1635 
1650 extern hciStatus_t HCI_LE_SetEventMaskCmd( uint8 *pEventMask );
1651 
1652 
1661 extern hciStatus_t HCI_LE_ReadBufSizeCmd( void );
1662 
1663 
1672 extern hciStatus_t HCI_LE_ReadLocalSupportedFeaturesCmd( void );
1673 
1674 
1686 extern hciStatus_t HCI_LE_SetRandomAddressCmd( uint8 *pRandAddr );
1687 
1688 
1707 extern hciStatus_t HCI_LE_SetAdvParamCmd( uint16 advIntervalMin,
1708  uint16 advIntervalMax,
1709  uint8 advType,
1710  uint8 ownAddrType,
1711  uint8 directAddrType,
1712  uint8 *directAddr,
1713  uint8 advChannelMap,
1714  uint8 advFilterPolicy );
1715 
1716 
1728 extern hciStatus_t HCI_LE_SetAdvDataCmd( uint8 dataLen,
1729  uint8 *pData );
1730 
1731 
1743 extern hciStatus_t HCI_LE_SetScanRspDataCmd( uint8 dataLen,
1744  uint8 *pData );
1745 
1746 
1757 extern hciStatus_t HCI_LE_SetAdvEnableCmd( uint8 advEnable );
1758 
1759 
1768 extern hciStatus_t HCI_LE_ReadAdvChanTxPowerCmd( void );
1769 
1770 
1789 extern hciStatus_t HCI_LE_SetScanParamCmd( uint8 scanType,
1790  uint16 scanInterval,
1791  uint16 scanWindow,
1792  uint8 ownAddrType,
1793  uint8 filterPolicy );
1794 
1795 
1808 extern hciStatus_t HCI_LE_SetScanEnableCmd( uint8 scanEnable,
1809  uint8 filterDuplicates );
1810 
1811 
1838 extern hciStatus_t HCI_LE_CreateConnCmd( uint16 scanInterval,
1839  uint16 scanWindow,
1840  uint8 initFilterPolicy,
1841  uint8 addrTypePeer,
1842  uint8 *peerAddr,
1843  uint8 ownAddrType,
1844  uint16 connIntervalMin,
1845  uint16 connIntervalMax,
1846  uint16 connLatency,
1847  uint16 connTimeout,
1848  uint16 minLen,
1849  uint16 maxLen );
1850 
1851 
1860 extern hciStatus_t HCI_LE_CreateConnCancelCmd( void );
1861 
1862 
1871 extern hciStatus_t HCI_LE_ReadWhiteListSizeCmd( void );
1872 
1873 
1882 extern hciStatus_t HCI_LE_ClearWhiteListCmd( void );
1883 
1884 
1896 extern hciStatus_t HCI_LE_AddWhiteListCmd( uint8 addrType,
1897  uint8 *devAddr );
1898 
1899 
1912 extern hciStatus_t HCI_LE_RemoveWhiteListCmd( uint8 addrType,
1913  uint8 *devAddr );
1914 
1915 
1933 extern hciStatus_t HCI_LE_ConnUpdateCmd( uint16 connHandle,
1934  uint16 connIntervalMin,
1935  uint16 connIntervalMax,
1936  uint16 connLatency,
1937  uint16 connTimeout,
1938  uint16 minLen,
1939  uint16 maxLen );
1940 
1941 
1952 extern hciStatus_t HCI_LE_SetHostChanClassificationCmd( uint8 *chanMap );
1953 
1954 
1965 extern hciStatus_t HCI_LE_ReadChannelMapCmd( uint16 connHandle );
1966 
1967 
1979 extern hciStatus_t HCI_LE_ReadRemoteUsedFeaturesCmd( uint16 connHandle );
1980 
1981 
1996 extern hciStatus_t HCI_LE_EncryptCmd( uint8 *key,
1997  uint8 *plainText );
1998 
1999 
2008 extern hciStatus_t HCI_LE_RandCmd( void );
2009 
2010 
2026 extern hciStatus_t HCI_LE_StartEncyptCmd( uint16 connHandle,
2027  uint8 *random,
2028  uint8 *encDiv,
2029  uint8 *ltk );
2030 
2031 
2043 extern hciStatus_t HCI_LE_LtkReqReplyCmd( uint16 connHandle,
2044  uint8 *ltk );
2045 
2046 
2057 extern hciStatus_t HCI_LE_LtkReqNegReplyCmd( uint16 connHandle );
2058 
2059 
2068 extern hciStatus_t HCI_LE_ReadSupportedStatesCmd( void );
2069 
2070 
2084 extern hciStatus_t HCI_LE_ReceiverTestCmd( uint8 rxChan );
2085 
2086 
2103 extern hciStatus_t HCI_LE_TransmitterTestCmd( uint8 txChan,
2104  uint8 dataLen,
2105  uint8 pktPayload );
2106 
2107 
2119 extern hciStatus_t HCI_LE_TestEndCmd( void );
2120 
2121 // V4.1
2122 
2144 extern hciStatus_t HCI_LE_RemoteConnParamReqReplyCmd( uint16 connHandle,
2145  uint16 connIntervalMin,
2146  uint16 connIntervalMax,
2147  uint16 connLatency,
2148  uint16 connTimeout,
2149  uint16 minLen,
2150  uint16 maxLen );
2151 
2152 
2169 extern hciStatus_t HCI_LE_RemoteConnParamReqNegReplyCmd( uint16 connHandle,
2170  uint8 reason );
2171 
2172 
2173 // V4.2 - Extended Data Length
2174 
2190 extern hciStatus_t HCI_LE_SetDataLenCmd( uint16 connHandle,
2191  uint16 txOctets,
2192  uint16 txTime );
2193 
2194 
2204 extern hciStatus_t HCI_LE_ReadSuggestedDefaultDataLenCmd( void );
2205 
2206 
2222 extern hciStatus_t HCI_LE_WriteSuggestedDefaultDataLenCmd( uint16 txOctets,
2223  uint16 txTime );
2224 
2225 
2237 extern hciStatus_t HCI_LE_ReadMaxDataLenCmd( void );
2238 
2239 
2240 // V4.2 - Privacy 1.2
2241 
2259 extern hciStatus_t HCI_LE_AddDeviceToResolvingListCmd( uint8 peerIdAddrType,
2260  uint8 *peerIdAddr,
2261  uint8 *peerIRK,
2262  uint8 *localIRK );
2263 
2264 
2280 extern hciStatus_t HCI_LE_RemoveDeviceFromResolvingListCmd( uint8 peerIdAddrType,
2281  uint8 *peerIdAddr );
2282 
2283 
2296 extern hciStatus_t HCI_LE_ClearResolvingListCmd( void );
2297 
2298 
2311 extern hciStatus_t HCI_LE_ReadResolvingListSizeCmd( void );
2312 
2313 
2332 extern hciStatus_t HCI_LE_ReadPeerResolvableAddressCmd( uint8 peerIdAddrType,
2333  uint8 *peerIdAddr );
2334 
2335 
2354 extern hciStatus_t HCI_LE_ReadLocalResolvableAddressCmd( uint8 localIdAddrType,
2355  uint8 *localIdAddr );
2356 
2357 
2373 extern hciStatus_t HCI_LE_SetAddressResolutionEnableCmd( uint8 addrResolutionEnable );
2374 
2375 
2394 extern hciStatus_t HCI_LE_SetResolvablePrivateAddressTimeoutCmd( uint16 rpaTimeout );
2395 
2396 
2397 // V4.2 - Secure Connections
2398 
2414 extern hciStatus_t HCI_LE_ReadLocalP256PublicKeyCmd( void );
2415 
2416 
2436 extern hciStatus_t HCI_LE_GenerateDHKeyCmd( uint8 *publicKey );
2437 
2438 
2439 // V5.0 - 2Mbps PHY
2440 
2442 
2450 extern hciStatus_t HCI_LE_ReadPhyCmd( uint16 connHandle );
2451 
2452 
2466 extern hciStatus_t HCI_LE_SetDefaultPhyCmd( uint8 allPhys,
2467  uint8 txPhy,
2468  uint8 rxPhy );
2469 
2470 
2481 extern hciStatus_t HCI_LE_SetPhyCmd( uint16 connHandle,
2482  uint8 allPhys,
2483  uint8 txPhy,
2484  uint8 rxPhy );
2485 
2486 
2500 extern hciStatus_t HCI_LE_EnhancedRxTestCmd( uint8 rxChan,
2501  uint8 rxPhy,
2502  uint8 modIndex );
2503 
2504 
2519 extern hciStatus_t HCI_LE_EnhancedTxTestCmd( uint8 txChan,
2520  uint8 payloadLen,
2521  uint8 payloadType,
2522  uint8 txPhy );
2523 
2525 
2526 /*
2527 ** HCI Vendor Specific Commands: Link Layer Extensions
2528 */
2529 
2542 extern hciStatus_t HCI_EXT_SetRxGainCmd( uint8 rxGain );
2543 
2544 
2560 extern hciStatus_t HCI_EXT_SetTxPowerCmd( uint8 txPower );
2561 
2562 
2573 extern hciStatus_t HCI_EXT_OnePktPerEvtCmd( uint8 control );
2574 
2575 
2577 
2595 extern hciStatus_t HCI_EXT_ClkDivOnHaltCmd( uint8 control );
2596 
2598 
2619 extern hciStatus_t HCI_EXT_DeclareNvUsageCmd( uint8 mode );
2620 
2621 
2635 extern hciStatus_t HCI_EXT_DecryptCmd( uint8 *key,
2636  uint8 *encText );
2637 
2638 
2660 extern hciStatus_t HCI_EXT_SetLocalSupportedFeaturesCmd( uint8 *localFeatures );
2661 
2662 
2687 extern hciStatus_t HCI_EXT_SetFastTxResponseTimeCmd( uint8 control );
2688 
2689 
2708 extern hciStatus_t HCI_EXT_SetSlaveLatencyOverrideCmd( uint8 control );
2709 
2710 
2733 extern hciStatus_t HCI_EXT_ModemTestTxCmd( uint8 cwMode,
2734  uint8 txChan );
2735 
2736 
2758 extern hciStatus_t HCI_EXT_ModemHopTestTxCmd( void );
2759 
2760 
2785 extern hciStatus_t HCI_EXT_ModemTestRxCmd( uint8 rxChan );
2786 
2787 
2799 extern hciStatus_t HCI_EXT_EndModemTestCmd( void );
2800 
2801 
2827 extern hciStatus_t HCI_EXT_SetBDADDRCmd( uint8 *bdAddr );
2828 
2829 
2852 extern hciStatus_t HCI_EXT_SetSCACmd( uint16 scaInPPM );
2853 
2854 
2868 extern hciStatus_t HCI_EXT_EnablePTMCmd( void );
2869 
2870 
2889 extern hciStatus_t HCI_EXT_SetFreqTuneCmd( uint8 step );
2890 
2891 
2905 extern hciStatus_t HCI_EXT_SaveFreqTuneCmd( void );
2906 
2907 
2927 extern hciStatus_t HCI_EXT_SetMaxDtmTxPowerCmd( uint8 txPower );
2928 
2930 
2966 extern hciStatus_t HCI_EXT_MapPmIoPortCmd( uint8 ioPort, uint8 ioPin );
2967 
2969 
2985 extern hciStatus_t HCI_EXT_DisconnectImmedCmd( uint16 connHandle );
2986 
2987 
3007 extern hciStatus_t HCI_EXT_PacketErrorRateCmd( uint16 connHandle, uint8 command );
3008 
3009 
3048 extern hciStatus_t HCI_EXT_PERbyChanCmd( uint16 connHandle, perByChan_t *perByChan );
3049 
3050 
3052 
3061 extern hciStatus_t HCI_EXT_ExtendRfRangeCmd( void );
3062 
3076 extern hciStatus_t HCI_EXT_HaltDuringRfCmd( uint8 mode );
3077 
3079 
3137 extern hciStatus_t HCI_EXT_AdvEventNoticeCmd( uint8 taskID, uint16 taskEvent );
3138 
3139 
3201 extern hciStatus_t HCI_EXT_ScanEventNoticeCmd( uint8 taskID, uint16 taskEvent );
3202 
3203 
3263 extern hciStatus_t HCI_EXT_ConnEventNoticeCmd( uint16 connHandle, uint8 taskID, uint16 taskEvent );
3264 
3265 
3286 extern hciStatus_t HCI_EXT_BuildRevisionCmd( uint8 mode, uint16 userRevNum );
3287 
3289 
3315 extern hciStatus_t HCI_EXT_DelaySleepCmd( uint16 delay );
3316 
3318 
3336 extern hciStatus_t HCI_EXT_ResetSystemCmd( uint8 mode );
3337 
3338 // @cond NODOC
3339 
3347 extern hciStatus_t HCI_EXT_LLTestModeCmd( uint8 testCase );
3348 
3349 
3357 extern hciStatus_t HCI_EXT_OverlappedProcessingCmd( uint8 mode );
3358 
3360 
3381 extern hciStatus_t HCI_EXT_NumComplPktsLimitCmd( uint8 limit,
3382  uint8 flushOnEvt );
3383 
3384 
3420 extern hciStatus_t HCI_EXT_GetConnInfoCmd( uint8 *numAllocConns,
3421  uint8 *numActiveConns,
3422  hciConnInfo_t *activeConnInfo );
3423 
3441 extern hciStatus_t HCI_EXT_SetMaxDataLenCmd( uint16 txOctets,
3442  uint16 txTime,
3443  uint16 rxOctets,
3444  uint16 rxTime );
3445 
3496 extern hciStatus_t HCI_EXT_ScanReqRptCmd( uint8 mode );
3497 
3498 
3499 #ifdef __cplusplus
3500 }
3501 #endif
3502 
3503 #endif /* HCI_H */
3504 
hciStatus_t HCI_EXT_PacketErrorRateCmd(uint16 connHandle, uint8 command)
Packet Error Rate Command.
This API allows the software components in the Z-Stack to be written independently of the specifics o...
hciStatus_t HCI_EXT_SetMaxDataLenCmd(uint16 txOctets, uint16 txTime, uint16 rxOctets, uint16 rxTime)
Set the maximum Rx and Tx Octets (in bytes) and Time (in us).
void HCI_TestAppTaskRegister(uint8 taskID)
HCI vendor specific registration for HCI Test Application.
HCI Packet event.
Definition: hci.h:1185
#define B_RANDOM_NUM_SIZE
BLE Random Number Size.
Definition: bcomdef.h:149
hciStatus_t HCI_LE_ReadRemoteUsedFeaturesCmd(uint16 connHandle)
Read the remote device's used features.
hciStatus_t HCI_LE_SetAddressResolutionEnableCmd(uint8 addrResolutionEnable)
Disable / Enable Address Resolution.
Command Status Event.
Definition: hci.h:1084
hciStatus_t HCI_LE_TestEndCmd(void)
End the Direct Test Mode test.
hciStatus_t HCI_LE_SetResolvablePrivateAddressTimeoutCmd(uint16 rpaTimeout)
Set Resolvable Private Address Timeout.
hciStatus_t HCI_EXT_AdvEventNoticeCmd(uint8 taskID, uint16 taskEvent)
Advertising Event Notice Command.
hciStatus_t HCI_EXT_SetMaxDtmTxPowerCmd(uint8 txPower)
Set the maximum transmit output power for DTM.
hciStatus_t HCI_LE_LtkReqNegReplyCmd(uint16 connHandle)
Send a negative LTK reply to the Controller.
Hardware Error Event.
Definition: hci.h:1093
hciStatus_t HCI_EXT_ModemTestTxCmd(uint8 cwMode, uint8 txChan)
Start Modem TX Test.
hciStatus_t HCI_LE_TransmitterTestCmd(uint8 txChan, uint8 dataLen, uint8 pktPayload)
This LE API is used to start the transmit Direct Test Mode test.
hciStatus_t HCI_LE_RandCmd(void)
Generate a random number.
LE Advertising Report Event.
Definition: hci.h:983
#define B_MAX_ADV_LEN
BLE Maximum Advertising Packet Length.
Definition: bcomdef.h:146
hciStatus_t HCI_LE_ReadResolvingListSizeCmd(void)
Read Resolving List Size.
LE Data Length Change Event.
Definition: hci.h:1147
void HCI_SMPTaskRegister(uint8 taskID)
HCI vendor specific registration for Host SMP.
hciStatus_t HCI_SetEventMaskPage2Cmd(uint8 *pMask)
Set the HCI event mask page 2.
hciStatus_t HCI_LE_ReadLocalSupportedFeaturesCmd(void)
Read the LE locally supported features.
hciStatus_t HCI_LE_RemoteConnParamReqReplyCmd(uint16 connHandle, uint16 connIntervalMin, uint16 connIntervalMax, uint16 connLatency, uint16 connTimeout, uint16 minLen, uint16 maxLen)
Positively reply to the Conneciton Parameter Update Request.
hciStatus_t HCI_LE_ReadAdvChanTxPowerCmd(void)
Read transmit power when Advertising.
hciStatus_t HCI_EXT_EnablePTMCmd(void)
Enable Production Test Mode.
hciStatus_t HCI_LE_SetDataLenCmd(uint16 connHandle, uint16 txOctets, uint16 txTime)
Set Data Length.
hciStatus_t HCI_EXT_ScanReqRptCmd(uint8 mode)
Enable/disable Scan Request Reports.
LE Phy Update Complete Event.
Definition: hci.h:1136
hciStatus_t HCI_WriteAuthPayloadTimeoutCmd(uint16 connHandle, uint16 aptoValue)
Used to write the connection's Authenticated Payload Timeout value.
hciStatus_t HCI_LE_SetHostChanClassificationCmd(uint8 *chanMap)
Update the current data channel map.
union _hciEvt_BLEConnComplete_u_ hciEvt_BLEConnComplete_u
LE Connection Complete Event.
hciStatus_t HCI_LE_LtkReqReplyCmd(uint16 connHandle, uint8 *ltk)
Send a positive LTK reply to the controller.
void HCI_ExtTaskRegister(uint8 taskID)
HCI vendor specific registration for Host extended commands.
hciStatus_t HCI_EXT_NumComplPktsLimitCmd(uint8 limit, uint8 flushOnEvt)
Set the Number of Completed Packets Limit.
hciStatus_t HCI_ReadRssiCmd(uint16 connHandle)
Read RSSI of last packet.
PACKED_TYPEDEF_STRUCT
Connection Info.
Definition: hci.h:1223
hciStatus_t HCI_LE_CreateConnCancelCmd(void)
Cancel connection.
hciStatus_t HCI_LE_ReadSupportedStatesCmd(void)
TRead the Controller's supported states.
hciStatus_t HCI_LE_ReadLocalP256PublicKeyCmd(void)
Read local P-256 Public Key.
Vendor Specific Command Complete Event.
Definition: hci.h:1075
hciStatus_t HCI_EXT_DecryptCmd(uint8 *key, uint8 *encText)
Decrypt encrypted data using AES128.
hciStatus_t HCI_EXT_SetFreqTuneCmd(uint8 step)
Set Frequency Tuning.
Data structure for HCI Command Complete Event Return Parameter.
Definition: hci.h:1177
hciStatus_t HCI_LE_SetAdvParamCmd(uint16 advIntervalMin, uint16 advIntervalMax, uint8 advType, uint8 ownAddrType, uint8 directAddrType, uint8 *directAddr, uint8 advChannelMap, uint8 advFilterPolicy)
Set the Advertising parameters.
hciStatus_t HCI_SetEventMaskCmd(uint8 *pMask)
Set the HCI event mask.
hciStatus_t HCI_LE_AddWhiteListCmd(uint8 addrType, uint8 *devAddr)
Add a white list entry.
Disconnection Complete Event.
Definition: hci.h:1100
hciStatus_t HCI_EXT_SaveFreqTuneCmd(void)
Save the frequency tuning value to non-volatile memory.
hciStatus_t HCI_LE_ReadSuggestedDefaultDataLenCmd(void)
Read Suggested Default Data Length.
hciStatus_t HCI_EXT_ResetSystemCmd(uint8 mode)
Issue a soft or hard system reset.
Authenticated Payload Timeout Expired Event.
Definition: hci.h:1116
hciStatus_t HCI_LE_CreateConnCmd(uint16 scanInterval, uint16 scanWindow, uint8 initFilterPolicy, uint8 addrTypePeer, uint8 *peerAddr, uint8 ownAddrType, uint16 connIntervalMin, uint16 connIntervalMax, uint16 connLatency, uint16 connTimeout, uint16 minLen, uint16 maxLen)
Create a connection.
hciStatus_t HCI_LE_ReadWhiteListSizeCmd(void)
Read the white list.
hciStatus_t HCI_LE_SetEventMaskCmd(uint8 *pEventMask)
Set the HCI LE event mask.
hciStatus_t HCI_EXT_SetRxGainCmd(uint8 rxGain)
Set the receiver gain.
hciStatus_t HCI_ReadRemoteVersionInfoCmd(uint16 connHandle)
Request version information from the remote device in a connection.
hciStatus_t HCI_EXT_EndModemTestCmd(void)
Shutdown a modem test.
hciStatus_t HCI_LE_EncryptCmd(uint8 *key, uint8 *plainText)
Perform an encryption using AES128.
hciStatus_t HCI_ReadLocalVersionInfoCmd(void)
Read the local version information.
hciStatus_t HCI_LE_ReadBufSizeCmd(void)
Determine the maximum ACL data packet size allowed by the Controller.
hciStatus_t HCI_LE_ReadLocalResolvableAddressCmd(uint8 localIdAddrType, uint8 *localIdAddr)
Read Local Resolvable Private Address.
hciStatus_t HCI_EXT_ModemHopTestTxCmd(void)
Start Modem Hop Tx Test.
Command Complete Event.
Definition: hci.h:1066
HCI Data Packet.
Definition: hci.h:1192
LE Generate DHKey Complete Event.
Definition: hci.h:1168
LE Remote Connection Parameter Request Event.
Definition: hci.h:1123
uint8 HCI_ValidConnTimeParams(uint16 connIntervalMin, uint16 connIntervalMax, uint16 connLatency, uint16 connTimeout)
Checks that the connection time parameter ranges are valid.
hciStatus_t HCI_EXT_PERbyChanCmd(uint16 connHandle, perByChan_t *perByChan)
Packet Error Rate by Channel Command.
hciStatus_t HCI_ReadLocalSupportedCommandsCmd(void)
Read the locally supported commands.
hciStatus_t HCI_EXT_ModemTestRxCmd(uint8 rxChan)
Start Modem Hop RX Test.
hciStatus_t HCI_LE_SetAdvEnableCmd(uint8 advEnable)
Turn Advertising on or off.
hciStatus_t HCI_LE_ClearResolvingListCmd(void)
Remove all devices from the whitelist.
hciStatus_t HCI_EXT_SetSlaveLatencyOverrideCmd(uint8 control)
Enable or disable suspending slave latency.
hciStatus_t HCI_EXT_OnePktPerEvtCmd(uint8 control)
Set whether a connection will be limited to one packet per event.
Type definitions and macros for BLE stack.
VS LE Scan Request Report Event.
Definition: hci.h:1003
hciStatus_t HCI_EXT_SetFastTxResponseTimeCmd(uint8 control)
Set Fast TX Response Time.
LE Encryption Change Event.
Definition: hci.h:1037
hciStatus_t HCI_EXT_BuildRevisionCmd(uint8 mode, uint16 userRevNum)
Set a user revision number or read the build revision number.
hciStatus_t HCI_LE_SetScanRspDataCmd(uint8 dataLen, uint8 *pData)
Set the Advertising Scan Response data.
hciStatus_t HCI_ReadTransmitPowerLevelCmd(uint16 connHandle, uint8 txPwrType)
Read the transmit power level.
LE Enhanced Connection Complete Event.
Definition: hci.h:957
Number of Completed Packets Event.
Definition: hci.h:1057
hciStatus_t HCI_LE_ReadPeerResolvableAddressCmd(uint8 peerIdAddrType, uint8 *peerIdAddr)
Read the Peer Resolvable Address.
OSAL Event Header.
Definition: osal.h:110
hciStatus_t HCI_EXT_SetLocalSupportedFeaturesCmd(uint8 *localFeatures)
Write this device's supported features.
hciStatus_t HCI_LE_ReceiverTestCmd(uint8 rxChan)
Start the receiver Direct Test Mode test.
hciStatus_t HCI_LE_RemoveDeviceFromResolvingListCmd(uint8 peerIdAddrType, uint8 *peerIdAddr)
Remove a device from the whitelist.
hciStatus_t HCI_LE_RemoveWhiteListCmd(uint8 addrType, uint8 *devAddr)
Remove a white list entry.
hciStatus_t HCI_EXT_SetBDADDRCmd(uint8 *bdAddr)
Set this device's BLE address (BDADDR).
hciStatus_t HCI_LE_StartEncyptCmd(uint16 connHandle, uint8 *random, uint8 *encDiv, uint8 *ltk)
Start encryption in a connection.
hciStatus_t HCI_EXT_ConnEventNoticeCmd(uint16 connHandle, uint8 taskID, uint16 taskEvent)
Connection Event Notice Command.
hciStatus_t HCI_EXT_ScanEventNoticeCmd(uint8 taskID, uint16 taskEvent)
Scan Event Notice Command.
#define B_ADDR_LEN
Default Public and Random Address Length.
Definition: bcomdef.h:131
Data Buffer Overflow Event.
Definition: hci.h:1109
LE Connection Complete Event.
Definition: hci.h:941
hciStatus_t HCI_LE_AddDeviceToResolvingListCmd(uint8 peerIdAddrType, uint8 *peerIdAddr, uint8 *peerIRK, uint8 *localIRK)
Add a device to the resolving list.
LE Read Remote Used Features Complete Event.
Definition: hci.h:1027
hciStatus_t HCI_DisconnectCmd(uint16 connHandle, uint8 reason)
Terminate a connection.
hciStatus_t HCI_LE_SetAdvDataCmd(uint8 dataLen, uint8 *pData)
Set the Advertising data.
hciStatus_t HCI_LE_SetRandomAddressCmd(uint8 *pRandAddr)
Set this device's Random address.
hciStatus_t HCI_LE_SetScanParamCmd(uint8 scanType, uint16 scanInterval, uint16 scanWindow, uint8 ownAddrType, uint8 filterPolicy)
Set the Scan parameters.
void HCI_L2CAPTaskRegister(uint8 taskID)
HCI vendor specific registration for Host L2CAP.
hciStatus_t HCI_ReadLocalSupportedFeaturesCmd(void)
Read the locally supported features.
hciStatus_t HCI_LE_ReadChannelMapCmd(uint16 connHandle)
Read a connection's data channel map.
hciStatus_t HCI_LE_ClearWhiteListCmd(void)
Clear the white list.
hciStatus_t HCI_EXT_DeclareNvUsageCmd(uint8 mode)
Declare NV Usage.
hciStatus_t HCI_LE_ReadMaxDataLenCmd(void)
Read max data length.
hciStatus_t HCI_EXT_SetSCACmd(uint16 scaInPPM)
Set this device's Sleep Clock Accuracy.
hciStatus_t HCI_ReadBDADDRCmd(void)
Read this device's BLE address (BDADDR).
hciStatus_t HCI_HostNumCompletedPktCmd(uint8 numHandles, uint16 *connHandles, uint16 *numCompletedPkts)
Set the number of HCI daata packets completed per connection handle.
hciStatus_t HCI_LE_GenerateDHKeyCmd(uint8 *publicKey)
Generate Diffie-Hellman Key.
hciStatus_t HCI_ReadAuthPayloadTimeoutCmd(uint16 connHandle, uint16 *aptoValue)
Read the connection's Authenticated Payload Timeout value.
LE Connection Complete Event.
Definition: hci.h:976
LE Connection Update Complete Event.
Definition: hci.h:1015
hciStatus_t HCI_EXT_SetTxPowerCmd(uint8 txPower)
Set the transmit power.
hciStatus_t HCI_LE_WriteSuggestedDefaultDataLenCmd(uint16 txOctets, uint16 txTime)
Write Suggested Default Data Length.
LE Read P256 Public Key Complete Event.
Definition: hci.h:1159
hciStatus_t HCI_LE_SetScanEnableCmd(uint8 scanEnable, uint8 filterDuplicates)
Turn Scanning on or off.
hciStatus_t HCI_SendDataPkt(uint16 connHandle, uint8 pbFlag, uint16 pktLen, uint8 *pData)
Send an ACL data packet over a connection.
LE Advertising Packet Report Event.
Definition: hci.h:994
hciStatus_t HCI_EXT_DisconnectImmedCmd(uint16 connHandle)
Disconnect the connection immediately.
hciStatus_t HCI_LE_RemoteConnParamReqNegReplyCmd(uint16 connHandle, uint8 reason)
Negatively reply to the Conneciton Parameter Update Request.
hciStatus_t HCI_LE_ConnUpdateCmd(uint16 connHandle, uint16 connIntervalMin, uint16 connIntervalMax, uint16 connLatency, uint16 connTimeout, uint16 minLen, uint16 maxLen)
Update the connection parameters.
hciStatus_t HCI_ResetCmd(void)
Reset the Link Layer.
void HCI_GAPTaskRegister(uint8 taskID)
HCI vendor specific registration for Host GAP.
LE Long Term Key Requested Event.
Definition: hci.h:1047
hciStatus_t HCI_EXT_GetConnInfoCmd(uint8 *numAllocConns, uint8 *numActiveConns, hciConnInfo_t *activeConnInfo)
Get Connection Info.
Copyright 2016, Texas Instruments Incorporated