1  /*
2   * Copyright (C) 2021 Huawei Device Co., Ltd.
3   * Licensed under the Apache License, Version 2.0 (the "License");
4   * you may not use this file except in compliance with the License.
5   * You may obtain a copy of the License at
6   *
7   *     http://www.apache.org/licenses/LICENSE-2.0
8   *
9   * Unless required by applicable law or agreed to in writing, software
10   * distributed under the License is distributed on an "AS IS" BASIS,
11   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12   * See the License for the specific language governing permissions and
13   * limitations under the License.
14   */
15  
16  #ifndef HCI_H
17  #define HCI_H
18  
19  #include <stdbool.h>
20  #include <stdint.h>
21  
22  #include "hci_def.h"
23  
24  #ifdef __cplusplus
25  extern "C" {
26  #endif
27  
28  int HCI_Initialize();
29  void HCI_Close();
30  
31  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
32  // 7.1.1 Inquiry Command
33  int HCI_Inquiry(const HciInquiryeParam *param);
34  
35  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
36  // 7.1.2 Inquiry Cancel Command
37  int HCI_InquiryCancel(void);
38  
39  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
40  // 7.1.5 Create Connection Command
41  int HCI_CreateConnection(const HciCreateConnectionParam *param);
42  
43  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
44  // 7.1.6 Disconnect Command
45  int HCI_Disconnect(const HciDisconnectParam *param);
46  
47  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
48  // 7.1.7 Create Connection Cancel Command
49  int HCI_CreateConnectionCancel(const HciCreateConnectionCancelParam *param);
50  
51  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
52  // 7.1.8 Accept Connection Request Command
53  int HCI_AcceptConnectionRequest(const HciAcceptConnectionReqestParam *param);
54  
55  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
56  // 7.1.9 Reject Connection Request Command
57  int HCI_RejectConnectionRequest(const HciRejectConnectionRequestParam *param);
58  
59  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
60  // 7.1.10 Link Key Request Reply Command
61  int HCI_LinkKeyRequestReply(const HciLinkKeyRequestReplyParam *param);
62  
63  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
64  // 7.1.11 Link Key Request Negative Reply Command
65  int HCI_LinkKeyRequestNegativeReply(const HciLinkKeyRequestNegativeReplyParam *param);
66  
67  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
68  // 7.1.12 PIN Code Request Reply Command
69  int HCI_PINCodeRequestReply(const HciPinCodeRequestReplyParam *param);
70  
71  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
72  // 7.1.13 PIN Code Request Negative Reply Command
73  int HCI_PINCodeRequestNegativeReply(const HciPinCodeRequestNegativeReplyParam *param);
74  
75  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
76  // 7.1.14 Change Connection Packet Type Command
77  int HCI_ChangeConnectionPacketType(const HciChangeConnectionPacketTypeParam *param);
78  
79  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
80  // 7.1.15 Authentication Requested Command
81  int HCI_AuthenticationRequested(const HciAuthenticationRequestedParam *param);
82  
83  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
84  // 7.1.16 Set Connection Encryption Command
85  int HCI_SetConnectionEncryption(const HciSetConnectionEncryptionParam *param);
86  
87  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
88  // 7.1.19 Remote Name Request Command
89  int HCI_RemoteNameRequest(const HciRemoteNameRequestParam *param);
90  
91  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
92  // 7.1.20 Remote Name Request Cancel Command
93  int HCI_RemoteNameRequestCancel(const HciRemoteNameRequestCancelParam *param);
94  
95  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
96  // 7.1.21 Read Remote Supported Features
97  int HCI_ReadRemoteSupportedFeatures(const HciReadRemoteSupportedFeaturesParam *param);
98  
99  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
100  // 7.1.22 Read Remote Extended Features Command
101  int HCI_ReadRemoteExtendedFeatures(const HciReadRemoteExtendedFeaturesParam *param);
102  
103  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
104  // 7.1.23 Read Remote Version Information Command
105  int HCI_ReadRemoteVersionInformation(const HciReadRemoteVersionInformationParam *param);
106  
107  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
108  // 7.1.26 Setup Synchronous Connection Command
109  int HCI_SetupSynchronousConnection(const HciSetupSynchronousConnectionParam *param);
110  
111  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
112  // 7.1.27 Accept Synchronous Connection Request Command
113  int HCI_AcceptSynchronousConnectionRequest(const HciAcceptSynchronousConnectionRequestParam *param);
114  
115  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
116  // 7.1.28 Reject Synchronous Connection Request Command
117  int HCI_RejectSynchronousConnectionRequest(const HciRejectSynchronousConnectionRequestParam *param);
118  
119  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
120  // 7.1.29 IO Capability Request Reply Command
121  int HCI_IOCapabilityRequestReply(const HciIOCapabilityRequestReplyParam *param);
122  
123  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
124  // 7.1.30 User Confirmation Request Reply Command
125  int HCI_UserConfirmationRequestReply(const HciUserConfirmationRequestReplyParam *param);
126  
127  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
128  // 7.1.31 User Confirmation Request Negative Reply Command
129  int HCI_UserConfirmationRequestNegativeReply(const HciUserConfirmationRequestNegativeReplyParam *param);
130  
131  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
132  // 7.1.32 User Passkey Request Reply Command
133  int HCI_UserPasskeyRequestReply(const HciUserPasskeyRequestReplyParam *param);
134  
135  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
136  // 7.1.33 User Passkey Request Negative Reply Command
137  int HCI_UserPasskeyRequestNegativeReply(const HciUserPasskeyRequestNegativeReplyParam *param);
138  
139  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
140  // 7.1.34 Remote OOB Data Request Reply Command
141  int HCI_RemoteOOBDataRequestReply(const HciRemoteOobDataRequestReplyParam *param);
142  
143  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
144  // 7.1.35 Remote OOB Data Request Negative Reply Command
145  int HCI_RemoteOOBDataRequestNegativeReply(const HciRemoteOobDataRequestNegativeReplyParam *param);
146  
147  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
148  // 7.1.36 IO Capability Request Negative Reply Command
149  int HCI_IOCapabilityRequestNegativeReply(const HciIoCapabilityRequestNegativeReplyParam *param);
150  
151  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
152  // 7.1.45 Enhanced Setup Synchronous Connection Command
153  int HCI_EnhancedSetupSynchronousConnection(const HciEnhancedSetupSynchronousConnectionParam *param);
154  
155  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
156  // 7.1.46 Enhanced Accept Synchronous Connection Request Command
157  int HCI_EnhancedAcceptSynchronousConnectionRequest(const HciEnhancedAcceptSynchronousConnectionRequestParam *param);
158  
159  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
160  // 7.1.53 Remote OOB Extended Data Request Reply Command
161  int HCI_RemoteOOBExtendedDataRequestReply(const HciRemoteOobExtendedDataRequestReplyParam *param);
162  
163  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
164  // 7.2.2 Sniff Mode Command
165  int HCI_SniffMode(const HciSniffModeParam *param);
166  
167  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
168  // 7.2.3 Exit Sniff Mode Command
169  int HCI_ExitSniffMode(const HciExitSniffModeParam *param);
170  
171  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
172  // 7.2.8 Switch Role Command
173  int HCI_SwitchRole(const HciSwitchRoleParam *param);
174  
175  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
176  // 7.2.10 Write Link Policy Settings Command
177  int HCI_WriteLinkPolicySettings(const HciWriteLinkPolicySettingsParam *param);
178  
179  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
180  // 7.2.12 Write Default Link Policy Settings Command
181  int HCI_WriteDefaultLinkPolicySettings(const HciWriteDefaultLinkPolicySettingsParam *param);
182  
183  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
184  // 7.2.14 Sniff Subrating Command
185  int HCI_SniffSubrating(const HciSniffSubratingParam *param);
186  
187  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
188  // 7.3.1 Set Event Mask Command
189  int HCI_SetEventMask(const HciSetEventMaskParam *param);
190  
191  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
192  // 7.3.2 Reset Command
193  int HCI_Reset(void);
194  
195  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
196  // 7.3.4 Flush Command
197  int HCI_Flush(const HciFlushParam *param);
198  
199  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
200  // 7.3.11 Write Local Name Command
201  int HCI_WriteLocalName(const HciWriteLocalNameParam *param);
202  
203  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
204  // 7.3.18 Write Scan Enable Command
205  int HCI_WriteScanEnable(const HciWriteScanEnableParam *param);
206  
207  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
208  // 7.3.20 Write Page Scan Activity Command
209  int HCI_WritePageScanActivity(const HciWritePageScanActivityParam *param);
210  
211  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
212  // 7.3.22 Write Inquiry Scan Activity Command
213  int HCI_WriteInquiryScanActivity(const HciWriteInquiryScanActivityParam *param);
214  
215  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
216  // 7.3.26 Write Class of Device Command
217  int HCI_WriteClassofDevice(const HciWriteClassofDeviceParam *param);
218  
219  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
220  // 7.3.28 Write Voice Setting Command
221  int HCI_WriteVoiceSetting(const HciWriteVoiceSettingParam *param);
222  
223  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
224  // 7.3.39 Host Buffer Size Command
225  int HCI_HostBufferSize(const HciHostBufferSizeCmdParam *param);
226  
227  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
228  // 7.3.45 Write Current IAC LAP Command
229  int HCI_WriteCurrentIacLap(const HciWriteCurrentIacLapParam *param);
230  
231  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
232  // 7.3.48 Write Inquiry Scan Type Command
233  int HCI_WriteInquiryScanType(const HciWriteInquiryScanTypeParam *param);
234  
235  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
236  // 7.3.50 Write Inquiry Mode Command
237  int HCI_WriteInquiryMode(const HciWriteInquiryModeParam *param);
238  
239  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
240  // 7.3.52 Write Page Scan Type Command
241  int HCI_WritePageScanType(const HciWritePageScanTypeParam *param);
242  
243  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
244  // 7.3.56 Write Extended Inquiry Response Command
245  int HCI_WriteExtendedInquiryResponse(const HciWriteExtendedInquiryResponseParam *param);
246  
247  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
248  // 7.3.59 Write Simple Pairing Mode Command
249  int HCI_WriteSimplePairingMode(const HciWriteSimplePairingModeParam *param);
250  
251  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
252  // 7.3.60 Read Local OOB Data Command
253  int HCI_ReadLocalOOBData(void);
254  
255  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
256  // 7.3.79 Write LE Host Support Command
257  int HCI_WriteLeHostSupport(const HciWriteLeHostSupportParam *param);
258  
259  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
260  // 7.3.92 Write Secure Connections Host Support Command
261  int HCI_WriteSecureConnectionsHostSupport(const HciWriteSecureConnectionsHostSupportParam *param);
262  
263  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
264  // 7.3.94 Write Authenticated Payload Timeout Command
265  int HCI_WriteAuthenticatedPayloadTimeout(const HciWriteAuthenticatedPayloadTimeoutParam *param);
266  
267  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
268  // 7.3.95 Read Local OOB Extended Data Command
269  int HCI_ReadLocalOOBExtendedData(void);
270  
271  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
272  // 7.4.1 Read Local Version Information Command
273  int HCI_ReadLocalVersionInformation(void);
274  
275  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
276  // 7.4.2 Read Local Supported Commands Command
277  int HCI_ReadLocalSupportedCommands(void);
278  
279  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
280  // 7.4.3 Read Local Supported Features Command
281  int HCI_ReadLocalSupportedFeatures(void);
282  
283  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
284  // 7.4.4 Read Local Extended Features Command
285  int HCI_ReadLocalExtendedFeatures(const HciReadLocalExtendedFeaturesParam *param);
286  
287  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
288  // 7.4.5 Read Buffer Size Command
289  int HCI_ReadBufferSize(void);
290  
291  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
292  // 7.4.6 Read BD_ADDR Command
293  int HCI_ReadBdAddr(void);
294  
295  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
296  // 7.4.8 Read Local Supported Codecs Command
297  int HCI_ReadLocalSupportedCodecs(void);
298  
299  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
300  // 7.5.4 Read RSSI Command
301  int HCI_ReadRssi(const HciReadRssiParam *param);
302  
303  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
304  // 7.8.1 LE Set Event Mask Command
305  int HCI_LeSetEventMask(const HciLeSetEventMaskParam *param);
306  
307  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
308  // 7.8.2 LE Read Buffer Size Command
309  int HCI_LeReadBufferSize(void);
310  
311  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
312  // 7.8.3 LE Read Local Supported Features Command
313  int HCI_LeReadLocalSupportedFeatures(void);
314  
315  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
316  // 7.8.4 LE Set Random Address Command
317  int HCI_LeSetRandomAddress(const HciLeSetRandomAddressParam *param);
318  
319  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
320  // 7.8.5 LE Set Advertising Parameters Command
321  
322  int HCI_LeSetAdvertisingParameters(const HciLeSetAdvertisingParametersParam *param);
323  
324  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
325  // 7.8.6 LE Read Advertising Channel Tx Power Command
326  int HCI_LeReadAdvertisingChannelTxPower(void);
327  
328  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
329  // 7.8.7 LE Set Advertising Data Command
330  int HCI_LeSetAdvertisingData(const HciLeSetAdvertisingDataParam *param);
331  
332  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
333  // 7.8.8 LE Set Scan Response Data Command
334  int HCI_LeSetScanResponseData(const HciLeSetScanResponseDataParam *param);
335  
336  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
337  // 7.8.9 LE Set Advertising Enable Command
338  int HCI_LeSetAdvertisingEnable(const HciLeSetAdvertisingEnableParam *param);
339  
340  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
341  // 7.8.10 LE Set Scan Parameters Command
342  int HCI_LeSetScanParameters(const HciLeSetScanParametersParam *param);
343  
344  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
345  // 7.8.11 LE Set Scan Enable Command
346  int HCI_LeSetScanEnable(const HciLeSetScanEnableParam *param);
347  
348  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
349  // 7.8.12 LE Create Connection Command
350  int HCI_LeCreateConnection(const HciLeCreateConnectionParam *param);
351  
352  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
353  // 7.8.13 LE Create Connection Cancel Command
354  int HCI_LeCreateConnectionCancel(void);
355  
356  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
357  // 7.8.14 LE Read WL Size Command
358  int HCI_LeReadWhiteListSize(void);
359  
360  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
361  // 7.8.15 LE Clear WL Command
362  int HCI_LeClearWhiteList(void);
363  
364  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
365  // 7.8.16 LE Add Device To WL Command
366  int HCI_LeAddDeviceToWhiteList(const HciLeAddDeviceToWhiteListParam *param);
367  
368  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
369  // 7.8.17 LE Remove Device From WL Command
370  int HCI_LeRemoveDeviceFromWhiteList(const HciLeRemoveDeviceFromWhiteListParam *param);
371  
372  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
373  // 7.8.18 LE Connection Update Command
374  int HCI_LeConnectionUpdate(const HciLeConnectionUpdateParam *param);
375  
376  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
377  // 7.8.19 LE Set Host Channel Classification Command
378  int HCI_LeSetHostChannelClassification(const HciLeSetHostChannelClassificationParam *param);
379  
380  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
381  // 7.8.20 LE Read Channel Map Command
382  int HCI_LeReadChannelMap(const HciLeReadChannelMapParam *param);
383  
384  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
385  // 7.8.21 LE Read Remote Features Command
386  int HCI_LeReadRemoteFeatures(const HciLeReadRemoteFeaturesParam *param);
387  
388  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
389  // 7.8.22 LE Encrypt Command
390  int HCI_LeEncrypt(const HciLeEncryptParam *param);
391  
392  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
393  // 7.8.23 LE Rand Command
394  int HCI_LeRand(void);
395  
396  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
397  // 7.8.24 LE Start Encryption Command
398  int HCI_LeStartEncryption(const HciLeStartEncryptionParam *param);
399  
400  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
401  // 7.8.25 LE Long Term Key Request Reply Command
402  int HCI_LeLongTermKeyRequestReply(const HciLeLongTermKeyRequestReplyParam *param);
403  
404  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
405  // 7.8.26 LE Long Term Key Request Negative Reply Command
406  int HCI_LeLongTermKeyRequestNegativeReply(const HciLeLongTermKeyRequestNegativeReplyParam *param);
407  
408  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
409  // 7.8.31 LE Remote Connection Parameter Request Reply Command
410  int HCI_LeRemoteConnectionParameterRequestReply(const HciLeRemoteConnectionParameterRequestReplyParam *param);
411  
412  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
413  // 7.8.32 LE Remote Connection Parameter Request Negative Reply Command
414  int HCI_LeRemoteConnectionParameterRequestNegativeReply(
415      const HciLeRemoteConnectionParameterRequestNegativeReplyParam *param);
416  
417  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
418  // 7.8.36 LE Read Local P-256 Public Key Command
419  int HCI_LeReadLocalP256PublicKey(void);
420  
421  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
422  // 7.8.37 LE Generate DHKey Command
423  int HCI_LeGenerateDHKey(const HciLeGenerateDHKeyParam *param);
424  
425  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
426  // 7.8.38 LE Add Device To Resolving List Command
427  int HCI_LeAddDeviceToResolvingList(const HciLeAddDeviceToResolvingListParam *param);
428  
429  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
430  // 7.8.39 LE Remove Device From Resolving List Command
431  int HCI_LeRemoveDeviceFromResolvingList(const HciLeRemoveDeviceFromResolvingListParam *param);
432  
433  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
434  // 7.8.40 LE Clear Resolving List Command
435  int HCI_LeClearResolvingList(void);
436  
437  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
438  // 7.8.41 LE Read Resolving List Size Command
439  int HCI_LeReadResolvingListSize(void);
440  
441  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
442  // 7.8.44 LE Set Address Resolution Enable Command
443  int HCI_LeSetAddressResolutionEnable(const HciLeSetAddressResolutionEnableParam *param);
444  
445  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
446  // 7.8.52 LE Set Advertising Set Random Address Command
447  int HCI_LeSetAdvertisingSetRandomAddress(const HciLeSetAdvertisingSetRandomAddressParam *param);
448  
449  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
450  // 7.8.53 LE Set Extended Advertising Parameters Command
451  int HCI_LeSetExtendedAdvertisingParameters(const HciLeSetExtendedAdvertisingParametersParam *param);
452  
453  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
454  // 7.8.54 LE Set Extended Advertising Data Command
455  int HCI_LeSetExtendedAdvertisingData(const HciLeSetExtendedAdvertisingDataParam *param);
456  
457  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
458  // 7.8.55 LE Set Extended Scan Response Data Command
459  int HCI_LeSetExtendedScanResponseData(const HciLeSetExtendedScanResponseDataParam *param);
460  
461  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
462  // 7.8.56 LE Set Extended Advertising Enable Command
463  int HCI_LeSetExtendedAdvertisingEnable(const HciLeSetExtendedAdvertisingEnableParam *param);
464  
465  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
466  // 7.8.57 LE Read Maximum Advertising Data Length Command
467  int HCI_LeReadMaximumAdvertisingDataLength(void);
468  
469  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
470  // 7.8.58 LE Read Number of Supported Advertising Sets Command
471  int HCI_LeReadNumberofSupportedAdvertisingSets(void);
472  
473  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
474  // 7.8.59 LE Remove Advertising Set Command
475  int HCI_LeRemoveAdvertisingSet(const HciLeRemoveAdvertisingSetParam *param);
476  
477  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
478  // 7.8.60 LE Clear Advertising Sets Command
479  int HCI_LeClearAdvertisingSets(void);
480  
481  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
482  // 7.8.64 LE Set Extended Scan Parameters Command
483  int HCI_LeSetExtendedScanParameters(const HciLeSetExtendedScanParametersParam *param);
484  
485  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
486  // 7.8.65 LE Set Extended Scan Enable Command
487  int HCI_LeSetExtendedScanEnable(const HciLeSetExtendedScanEnableParam *param);
488  
489  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
490  // 7.8.66 LE Extended Create Connection Command
491  int HCI_LeExtenedCreateConnection(const HciLeExtendedCreateConnectionParam *param);
492  
493  // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
494  // 7.8.77 LE Set Privacy Mode Command
495  int HCI_LeSetPrivacyMode(const HciLeSetPrivacyModeParam *param);
496  
497  typedef struct {
498      // Cmds
499  
500      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
501      // 7.1.2 Inquiry Cancel Command
502      void (*inquiryCancelComplete)(const HciInquiryCancelReturnParam *returnParam);
503      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
504      // 7.1.3 Periodic Inquiry Mode Command
505      void (*periodicInquiryModeComplete)(const HciPeriodicInquiryModeReturnParam *returnParam);
506      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
507      // 7.1.4 Exit Periodic Inquiry Mode Command
508      void (*exitPeriodicInquiryModeComplete)(const HciExitPeriodicInquiryModeReturnParam *returnParam);
509      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
510      // 7.1.7 Create Connection Cancel Command
511      void (*createConnectionCancelComplete)(const HciCreateConnectionCancelReturnParam *returnParam);
512      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
513      // 7.1.10 Link Key Request Reply Command
514      void (*linkKeyRequestReplyComplete)(const HciLinkKeyRequestReplyReturnParam *returnParam);
515      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
516      // 7.1.11 Link Key Request Negative Reply Command
517      void (*linkKeyRequestNegativeReplyComplete)(const HciLinkKeyRequestNegativeReplyReturnParam *returnParam);
518      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
519      // 7.1.12 PIN Code Request Reply Command
520      void (*pinCodeRequestReplyComplete)(const HciPinCodeRequestReplyReturnParam *returnParam);
521      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
522      // 7.1.13 PIN Code Request Negative Reply Command
523      void (*pinCodeRequestNegativeReplyComplete)(const HciPinCodeRequestNegativeReplyReturnParam *returnParam);
524      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
525      // 7.1.20 Remote Name Request Cancel Command
526      void (*remoteNameRequestCancelComplete)(const HciRemoteNameRequestCancelReturnParam *returnParam);
527      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
528      // 7.1.25 Read LMP Handle Command
529      void (*readLmpHandleComplete)(const HciReadLmpHandleReturnParam *returnParam);
530      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
531      // 7.1.29 IO Capability Request Reply Command
532      void (*ioCapabilityRequestReplyComplete)(const HciIOCapabilityRequestReplyReturnParam *returnParam);
533      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
534      // 7.1.30 User Confirmation Request Reply Command
535      void (*userConfirmationRequestReplyComplete)(const HciUserConfirmationRequestReplyReturnParam *returnParam);
536      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
537      // 7.1.31 User Confirmation Request Negative Reply Command
538      void (*userConfirmationRequestNegativeReplyComplete)(
539          const HciUserConfirmationRequestNegativeReplyReturnParam *returnParam);
540      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
541      // 7.1.32 User Passkey Request Reply Command
542      void (*userPasskeyRequestReplyComplete)(const HciUserPasskeyRequestReplyReturnParam *returnParam);
543      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
544      // 7.1.33 User Passkey Request Negative Reply Command
545      void (*userPasskeyRequestNegativeReplyComplete)(const HciUserPasskeyRequestNegativeReplyReturnParam *returnParam);
546      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
547      // 7.1.34 Remote OOB Data Request Reply Command
548      void (*remoteOOBDataRequestReplyComplete)(const HciRemoteOobDataRequestReplyReturnParam *returnParam);
549      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
550      // 7.1.35 Remote OOB Data Request Negative Reply Command
551      void (*remoteOOBDataRequestNegativeReplyComplete)(
552          const HciRemoteOobDataRequestNegativeReplyReturnParam *returnParam);
553      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
554      // 7.1.36 IO Capability Request Negative Reply Command
555      void (*iOCapabilityRequestNegativeReplyComplete)(const HciIoCapabilityRequestNegativeReplyReturnParam *returnParam);
556      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
557      // 7.1.43 Logical Link Cancel Command
558      void (*logicalLinkCancelComplete)(const HciLogicalLinkCancelReturnParam *returnParam);
559      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
560      // 7.1.48 Truncated Page Cancel Command
561      void (*truncatedPageCancelComplete)(const HciTruncatedPageCancelReturnParam *returnParam);
562      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
563      // 7.1.49 Set Connectionless Slave Broadcast Command
564      void (*setConnectionlessSlaveBroadcastComplete)(const HciSetConnectionlessSlaveBroadcastReturnParam *returnParam);
565      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
566      // 7.1.50 Set Connectionless Slave Broadcast Receive Command
567      void (*setConnectionlessSlaveBroadcastReceiveComplete)(
568          const HciSetConnectionlessSlaveBroadcastReceiveReturnParam *returnParam);
569      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
570      // 7.1.53 Remote OOB Extended Data Request Reply Command
571      void (*remoteOOBExtendedDataRequestReplyComplete)(
572          const HciRemoteOobExtendedDataRequestReplyReturnParam *returnParam);
573      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
574      // 7.2.7 Role Discovery Command
575      void (*roleDiscoveryComplete)(const HciRoleDiscoveryReturnParam *returnParam);
576      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
577      // 7.2.9 Read Link Policy Settings Command
578      void (*readLinkPolicySettingsComplete)(const HciReadLinkPolicySettingsReturnParam *returnParam);
579      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
580      // 7.2.10 Write Link Policy Settings Command
581      void (*writeLinkPolicySettingsComplete)(const HciWriteLinkPolicySettingsReturnParam *returnParam);
582      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
583      // 7.2.11 Read Default Link Policy Settings Command
584      void (*readDefaultLinkPolicySettingsComplete)(const HciReadDefaultLinkPolicySettingsReturnParam *returnParam);
585      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
586      // 7.2.12 Write Default Link Policy Settings Command
587      void (*writeDefaultLinkPolicySettingsComplete)(const HciWriteDefaultLinkPolicySettingsReturnParam *returnParam);
588      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
589      // 7.2.14 Sniff Subrating Command
590      void (*sniffSubratingComplete)(const HciSniffSubratingReturnParam *returnParam);
591      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
592      // 7.3.1 Set Event Mask Command
593      void (*setEventMaskComplete)(const HciSetEventMaskReturnParam *returnParam);
594      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
595      // 7.3.2 Reset Command
596      void (*resetComplete)(const HciResetReturnParam *returnParam);
597      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
598      // 7.3.3 Set Event Filter Command
599      void (*setEventFilterComplete)(const HciSetEventFilterReturnParam *returnParam);
600      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
601      // 7.3.4 Flush Command
602      void (*flushComplete)(const HciFlushReturnParam *returnParam);
603      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
604      // 7.3.5 Read PIN Type Command
605      void (*readPinTypeComplete)(const HciReadPinTypeReturnParam *returnParam);
606      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
607      // 7.3.6 Write PIN Type Command
608      void (*writePinTypeComplete)(const HciWritePinTypeReturnParam *returnParam);
609      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
610      // 7.3.7 Create New Unit Key Command
611      void (*createNewUnitKeyComplete)(const HciCreateNewUnitKeyReturnParam *returnParam);
612      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
613      // 7.3.8 Read Stored Link Key Command
614      void (*readStoredLinkKeyComplete)(const HciReadStoredLinkKeyReturnParam *returnParam);
615      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
616      // 7.3.9 Write Stored Link Key Command
617      void (*writeStoredLinkKeyComplete)(const HciWriteStoredLinkKeyReturnParam *returnParam);
618      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
619      // 7.3.10 Delete Stored Link Key Command
620      void (*deleteStoredLinkKeyComplete)(const HciDeleteStoredLinkKeyReturnParam *returnParam);
621      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
622      // 7.3.11 Write Local Name Command
623      void (*writeLocalNameComplete)(const HciWriteLocalNameReturnParam *returnParam);
624      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
625      // 7.3.12 Read Local Name Command
626      void (*readLocalNameComplete)(const HciReadLocalNameReturnParam *returnParam);
627      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
628      // 7.3.13 Read Connection Accept Timeout Command
629      void (*readConnectionAcceptTimeoutComplete)(const HciReadConnectionAcceptTimeoutReturnParam *returnParam);
630      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
631      // 7.3.14 Write Connection Accept Timeout Command
632      void (*writeConnectionAcceptTimeoutComplete)(const HciWriteConnectionAcceptTimeoutReturnParam *returnParam);
633      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
634      // 7.3.15 Read Page Timeout Command
635      void (*readPageTimeoutComplete)(const HciReadPageTimeoutReturnParam *returnParam);
636      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
637      // 7.3.16 Write Page Timeout Command
638      void (*writePageTimeoutComplete)(const HciWritePageTimeoutReturnParam *returnParam);
639      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
640      // 7.3.17 Read Scan Enable Command
641      void (*readScanEnableComplete)(const HciReadScanEnableReturnParam *returnParam);
642      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
643      // 7.3.18 Write Scan Enable Command
644      void (*writeScanEnableComplete)(const HciWriteScanEnableReturnParam *returnParam);
645      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
646      // 7.3.19 Read Page Scan Activity Command
647      void (*readPageScanActivityComplete)(const HciReadPageScanActivityReturnParam *returnParam);
648      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
649      // 7.3.20 Write Page Scan Activity Command
650      void (*writePageScanActivityComplete)(const HciWritePageScanActivityReturnParam *returnParam);
651      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
652      // 7.3.21 Read Inquiry Scan Activity Command
653      void (*readInquiryScanActivityComplete)(const HciReadInquiryScanActivityReturnParam *returnParam);
654      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
655      // 7.3.22 Write Inquiry Scan Activity Command
656      void (*writeInquiryScanActivityComplete)(const HciWriteInquiryScanActivityReturnParam *returnParam);
657      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
658      // 7.3.23 Read Authentication Enable Command
659      void (*readAuthenticationEnableComplete)(const HciReadAuthenticationEnableReturnParam *returnParam);
660      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
661      // 7.3.24 Write Authentication Enable Command
662      void (*writeAuthenticationEnableComplete)(const HciWriteAuthenticationEnableReturnParam *returnParam);
663      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
664      // 7.3.25 Read Class of Device Command
665      void (*readClassofDeviceComplete)(const HciReadClassofDeviceReturnParam *returnParam);
666      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
667      // 7.3.26 Write Class of Device Command
668      void (*writeClassofDeviceComplete)(const HciWriteClassofDeviceReturnParam *returnParam);
669      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
670      // 7.3.27 Read Voice Setting Command
671      void (*readVoiceSettingComplete)(const HciReadVoiceSettingReturnParam *returnParam);
672      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
673      // 7.3.28 Write Voice Setting Command
674      void (*writeVoiceSettingComplete)(const HciWriteVoiceSettingParamReturnParam *returnParam);
675      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
676      // 7.3.29 Read Automatic Flush Timeout Command
677      void (*readAutomaticFlushTimeoutComplete)(const HciReadAutomaticFlushTimeoutReturnParam *returnParam);
678      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
679      // 7.3.30 Write Automatic Flush Timeout Command
680      void (*writeAutomaticFlushTimeoutComplete)(const HciWriteAutomaticFlushTimeoutReturnParam *returnParam);
681      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
682      // 7.3.31 Read Num Broadcast Retransmissions Command
683      void (*readNumBroadcastRetransmissionsComplete)(const HciReadNumBroadcastRetransmissionsReturnParam *returnParam);
684      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
685      // 7.3.32 Write Num Broadcast Retransmissions Command
686      void (*writeNumBroadcastRetransmissionsComplete)(const HciWriteNumBroadcastRetransmissionsReturnParam *returnParam);
687      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
688      // 7.3.33 Read Hold Mode Activity Command
689      void (*readHoldModeActivityComplete)(const HciReadHoldModeActivityReturnParam *returnParam);
690      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
691      // 7.3.34 Write Hold Mode Activity Command
692      void (*writeHoldModeActivityComplete)(const HciWriteHoldModeActivityReturnParam *returnParam);
693      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
694      // 7.3.35 Read Transmit Power Level Command
695      void (*readTransmitPowerLevelComplete)(const HciReadTransmitPowerLevelReturnParam *returnParam);
696      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
697      // 7.3.36 Read Synchronous Flow Control Enable Command
698      void (*readSynchronousFlowControlEnableComplete)(const HciReadSynchronousFlowControlEnableReturnParam *returnParam);
699      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
700      // 7.3.37 Write Synchronous Flow Control Enable Command
701      void (*writeSynchronousFlowControlEnableComplete)(
702          const HciWriteSynchronousFlowControlEnableReturnParam *returnParam);
703      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
704      // 7.3.38 Set Controller To Host Flow Control Command
705      void (*setControllerToHostFlowControlComplete)(const HciSetControllerToHostFlowControlReturnParam *returnParam);
706      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
707      // 7.3.39 Host Buffer Size Command
708      void (*hostBufferSizeComplete)(const HciHostBufferSizeReturnParam *returnParam);
709      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
710      // 7.3.41 Read Link Supervision Timeout Command
711      void (*readLinkSupervisionTimeoutComplete)(const HciReadLinkSupervisionTimeoutReturnParam *returnParam);
712      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
713      // 7.3.42 Write Link Supervision Timeout Command
714      void (*writeLinkSupervisionTimeoutComplete)(const HciWriteLinkSupervisionTimeoutReturnParam *returnParam);
715      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
716      // 7.3.43 Read Number Of Supported IAC Command
717      void (*readNumberOfSupportedIacComplete)(const HciReadNumberOfSupportedIacReturnParam *returnParam);
718      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
719      // 7.3.44 Read Current IAC LAP Command
720      void (*readCurrentIacLapComplete)(const HciReadCurrentIacLapReturnParam *returnParam);
721      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
722      // 7.3.45 Write Current IAC LAP Command
723      void (*writeCurrentIacLapComplete)(const HciWriteCurrentIacLapReturnParam *returnParam);
724      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
725      // 7.3.46 Set AFH Host Channel Classification Command
726      void (*setAfhHostChannelClassificationComplete)(const HciSetAfhHostChannelClassificationReturnParam *returnParam);
727      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
728      // 7.3.47 Read Inquiry Scan Type Command
729      void (*readInquiryScanTypeComplete)(const HciReadInquiryScanTypeReturnParam *returnParam);
730      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
731      // 7.3.48 Write Inquiry Scan Type Command
732      void (*writeInquiryScanTypeComplete)(const HciWriteInquiryScanTypeReturnParam *returnParam);
733      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
734      // 7.3.49 Read Inquiry Mode Command
735      void (*readInquiryModeComplete)(const HciReadInquiryModeReturnParam *returnParam);
736      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
737      // 7.3.50 Write Inquiry Mode Command
738      void (*writeInquiryModeComplete)(const HciWriteInquiryModeReturnParam *returnParam);
739      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
740      // 7.3.51 Read Page Scan Type Command
741      void (*readPageScanTypeComplete)(const HciReadPageScanTypeReturnParam *returnParam);
742      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
743      // 7.3.52 Write Page Scan Type Command
744      void (*writePageScanTypeComplete)(const HciWritePageScanTypeReturnParam *returnParam);
745      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
746      // 7.3.53 Read AFH Channel Assessment Mode Command
747      void (*readAfhChannelAssessmentModeComplete)(const HciReadAfhChannelAssessmentModeReturnParam *returnParam);
748      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
749      // 7.3.54 Write AFH Channel Assessment Mode Command
750      void (*writeAfhChannelAssessmentModeComplete)(const HciWriteAfhChannelAssessmentModeReturnParam *returnParam);
751      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
752      // 7.3.55 Read Extended Inquiry Response Command
753      void (*readExtendedInquiryResponseComplete)(const HciReadExtendedInquiryResponseReturnParam *returnParam);
754      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
755      // 7.3.56 Write Extended Inquiry Response Command
756      void (*writeExtendedInquiryResponseComplete)(const HciWriteExtendedInquiryResponseReturnParam *returnParam);
757      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
758      // 7.3.58 Read Simple Pairing Mode Command
759      void (*readSimplePairingModeComplete)(const HciReadSimplePairingModeReturnParam *returnParam);
760      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
761      // 7.3.59 Write Simple Pairing Mode Command
762      void (*writeSimplePairingModeComplete)(const HciWriteSimplePairingModeReturnParam *returnParam);
763      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
764      // 7.3.60 Read Local OOB Data Command
765      void (*readLocalOOBDataComplete)(const HciReadLocalOOBDataReturnParam *returnParam);
766      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
767      // 7.3.61 Read Inquiry Response Transmit Power Level Command
768      void (*readInquiryResponseTransmitPowerLevelComplete)(
769          const HciReadInquiryResponseTransmitPowerLevelReturnParam *returnParam);
770      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
771      // 7.3.62 Write Inquiry Transmit Power Level Command
772      void (*writeInquiryTransmitPowerLevelComplete)(const HciWriteInquiryTransmitPowerLevelReturnParam *returnParam);
773      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
774      // 7.3.63 Send Keypress Notification Command
775      void (*sendKeypressNotificationComplete)(const HciSendKeypressNotificationReturnParam *returnParam);
776      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
777      // 7.3.64 Read Default Erroneous Data Reporting Command
778      void (*readDefaultErroneousDataReportingComplete)(
779          const HciReadDefaultErroneousDataReportingReturnParam *returnParam);
780      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
781      // 7.3.65 Write Default Erroneous Data Reporting Command
782      void (*writeDefaultErroneousDataReportingComplete)(
783          const HciWriteDefaultErroneousDataReportingReturnParam *returnParam);
784      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
785      // 7.3.67 Read Logical Link Accept Timeout Command
786      void (*readLogicalLinkAcceptTimeoutComplete)(const HciReadLogicalLinkAcceptTimeoutReturnParam *returnParam);
787      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
788      // 7.3.68 Write Logical Link Accept Timeout Command
789      void (*writeLogicalLinkAcceptTimeoutComplete)(const HciWriteLogicalLinkAcceptTimeoutReturnParam *returnParam);
790      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
791      // 7.3.69 Set Event Mask Page 2 Command
792      void (*setEventMaskPage2Complete)(const HciSetEventMaskPage2ReturnParam *returnParam);
793      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
794      // 7.3.70 Read Location Data Command
795      void (*readLocationDataComplete)(const HciReadLocationDataReturnParam *returnParam);
796      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
797      // 7.3.71 Write Location Data Command
798      void (*writeLocationDataComplete)(const HciWriteLocationDataReturnParam *returnParam);
799      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
800      // 7.3.72 Read Flow Control Mode Command
801      void (*readFlowControlModeComplete)(const HciReadFlowControlModeReturnParam *returnParam);
802      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
803      // 7.3.73 Write Flow Control Mode Command
804      void (*writeFlowControlModeComplete)(const HciWriteFlowControlModeReturnParam *returnParam);
805      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
806      // 7.3.74 Read Enhanced Transmit Power Level Command
807      void (*readEnhancedTransmitPowerLevelComplete)(const HciReadEnhancedTransmitPowerLevelReturnParam *returnParam);
808      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
809      // 7.3.75 Read Best Effort Flush Timeout Command
810      void (*readBestEffortFlushTimeoutComplete)(const HciReadBestEffortFlushTimeoutReturnParam *returnParam);
811      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
812      // 7.3.76 Write Best Effort Flush Timeout Command
813      void (*writeBestEffortFlushTimeoutComplete)(const HciWriteBestEffortFlushTimeoutReturnParam *returnParam);
814      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
815      // 7.3.78 Read LE Host Support Command
816      void (*readLeHostSupportComplete)(const HciReadLeHostSupportReturnParam *returnParam);
817      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
818      // 7.3.79 Write LE Host Support Command
819      void (*writeLeHostSupportComplete)(const HciWriteLeHostSupportReturnParam *returnParam);
820      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
821      // 7.3.80 Set MWS Channel Parameters Command
822      void (*setMwsChannelParametersComplete)(const HciSetMwsChannelParametersReturnParam *returnParam);
823      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
824      // 7.3.81 Set External Frame Configuration Command
825      void (*setExternalFrameConfigurationComplete)(const HciSetExternalFrameConfigurationReturnParam *returnParam);
826      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
827      // 7.3.82 Set MWS Signaling Command
828      void (*setMwsSignalingComplete)(const HciSetMwsSignalingReturnParam *returnParam);
829      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
830      // 7.3.83 Set MWS Transport Layer Command
831      void (*setMwsTransportLayerComplete)(const HciSetMwsTransportLayerReturnParam *returnParam);
832      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
833      // 7.3.84 Set MWS Scan Frequency Table Command
834      void (*setMwsScanFrequencyTableComplete)(const HciSetMwsScanFrequencyTableReturnParam *returnParam);
835      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
836      // 7.3.85 Set MWS_PATTERN Configuration Command
837      void (*setMwsPatternConfigurationComplete)(const HciSetMwsPatternConfigurationReturnParam *returnParam);
838      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
839      // 7.3.86 Set Reserved LT_ADDR Command
840      void (*setReservedLtAddrComplete)(const HciSetReservedLtAddrReturnParam *returnParam);
841      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
842      // 7.3.87 Delete Reserved LT_ADDR Command
843      void (*deleteReservedLtAddrComplete)(const HciDeleteReservedLtAddrReturnParam *returnParam);
844      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
845      // 7.3.88 Set Connectionless Slave Broadcast Data Command
846      void (*setConnectionlessSlaveBroadcastDataComplete)(
847          const HciSetConnectionlessSlaveBroadcastDataReturnParam *returnParam);
848      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
849      // 7.3.89 Read Synchronization Train Parameters Command
850      void (*readSynchronizationTrainParametersComplete)(
851          const HciReadSynchronizationTrainParametersReturnParam *returnParam);
852      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
853      // 7.3.90 Write Synchronization Train Parameters Command
854      void (*writeSynchronizationTrainParametersComplete)(
855          const HciWriteSynchronizationTrainParametersReturnParam *returnParam);
856      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
857      // 7.3.91 Read Secure Connections Host Support Command
858      void (*readSecureConnectionsHostSupportComplete)(const HciReadSecureConnectionsHostSupportReturnParam *returnParam);
859      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
860      // 7.3.92 Write Secure Connections Host Support Command
861      void (*writeSecureConnectionsHostSupportComplete)(
862          const HciWriteSecureConnectionsHostSupportReturnParam *returnParam);
863      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
864      // 7.3.93 Read Authenticated Payload Timeout Command
865      void (*readAuthenticatedPayloadTimeoutComplete)(const HciReadAuthenticatedPayloadTimeoutReturnParam *returnParam);
866      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
867      // 7.3.94 Write Authenticated Payload Timeout Command
868      void (*writeAuthenticatedPayloadTimeoutComplete)(const HciWriteAuthenticatedPayloadTimeoutReturnParam *returnParam);
869      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
870      // 7.3.95 Read Local OOB Extended Data Command
871      void (*readLocalOOBExtendedDataComplete)(const HciReadLocalOobExtendedDataReturnParam *returnParam);
872      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
873      // 7.3.96 Read Extended Page Timeout Command
874      void (*readExtendedPageTimeoutComplete)(const HciReadExtendedPageTimeoutReturnParam *returnParam);
875      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
876      // 7.3.97 Write Extended Page Timeout Command
877      void (*writeExtendedPageTimeoutComplete)(const HciWriteExtendedPageTimeoutReturnParam *returnParam);
878      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
879      // 7.3.98 Read Extended Inquiry Length Command
880      void (*readExtendedInquiryLengthComplete)(const HciReadExtendedInquiryLengthReturnParam *returnParam);
881      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
882      // 7.3.99 Write Extended Inquiry Length Command
883      void (*writeExtendedInquiryLengthComplete)(const HciWriteExtendedInquiryLengthReturnParam *returnParam);
884      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
885      // 7.4.1 Read Local Version Information Command
886      void (*readLocalVersionInformationComplete)(const HciReadLocalVersionInformationReturnParam *returnParam);
887      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
888      // 7.4.2 Read Local Supported Commands Command
889      void (*readLocalSupportedCommandsComplete)(const HciReadLocalSupportedCommandsReturnParam *returnParam);
890      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
891      // 7.4.3 Read Local Supported Features Command
892      void (*readLocalSupportedFeaturesComplete)(const HciReadLocalSupportedFeaturesReturnParam *returnParam);
893      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
894      // 7.4.4 Read Local Extended Features Command
895      void (*readLocalExtendedFeaturesComplete)(const HciReadLocalExtendedFeaturesReturnParam *returnParam);
896      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
897      // 7.4.5 Read Buffer Size Command
898      void (*readBufferSizeComplete)(const HciReadBufferSizeReturnParam *returnParam);
899      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
900      // 7.4.6 Read BD_ADDR Command
901      void (*readBdAddrComplete)(const HciReadBdAddrReturnParam *returnParam);
902      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
903      // 7.4.7 Read Data Block Size Command
904      void (*readDataBlockSizeComplete)(const HciReadDataBlockSizeReturnParam *returnParam);
905      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
906      // 7.4.8 Read Local Supported Codecs Command
907      void (*readLocalSupportedCodecsComplete)(const HciReadLocalSupportedCodecsReturnParam *returnParam);
908      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
909      // 7.5.1 Read Failed Contact Counter Command
910      void (*readFailedContactCounterComplete)(const HciReadFailedContactCounterReturnParam *returnParam);
911      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
912      // 7.5.2 Reset Failed Contact Counter Command
913      void (*resetFailedContactCounterComplete)(const HciResetFailedContactCounterReturnParam *returnParam);
914      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
915      // 7.5.3 Read Link Quality Command
916      void (*readLinkQualityComplete)(const HciReadLinkQualityReturnParam *returnParam);
917      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
918      // 7.5.4 Read RSSI Command
919      void (*readRssiComplete)(const HciReadRssiReturnParam *returnParam);
920      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
921      // 7.5.5 Read AFH Channel Map Command
922      void (*readAfhChannelMapComplete)(const HciReadAfhChannelMapReturnParam *returnParam);
923      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
924      // 7.5.6 Read Clock Command
925      void (*readClockComplete)(const HciReadClockReturnParam *returnParam);
926      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
927      // 7.5.7 Read Encryption Key Size Command
928      void (*readEncryptionKeySizeComplete)(const HciReadEncryptionKeySizeReturnParam *returnParam);
929      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
930      // 7.5.8 Read Local AMP Info Command
931      void (*readLocalAmpInfoComplete)(const HciReadLocalAMPInfoReturnParam *returnParam);
932      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
933      // 7.5.9 Read Local AMP ASSOC Command
934      void (*readLocalAmpAssocComplete)(const HciReadLocalAmpAssocReturnParam *returnParam);
935      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
936      // 7.5.10 Write Remote AMP ASSOC Command
937      void (*writeRemoteAmpAssocComplete)(const HciWriteRemoteAmpAssocReturnParam *returnParam);
938      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
939      // 7.5.11 Get MWS Transport Layer Configuration Command
940      void (*getMwsTransportLayerConfigurationComplete)(
941          const HciGetMwsTransportLayerConfigurationReturnParam *returnParam);
942      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
943      // 7.5.12 Set Triggered Clock Capture Command
944      void (*setTriggeredClockCaptureComplete)(const HciSetTriggeredClockCaptureReturnParam *returnParam);
945  
946      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
947      // 7.7.1 Inquiry Complete Event
948      void (*inquiryComplete)(const HciInquiryCompleteEventParam *eventParam);
949      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
950      // 7.7.2 Inquiry Result Event
951      void (*inquiryResult)(const HciInquiryResultEventParam *eventParam);
952      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
953      // 7.7.3 Connection Complete Event
954      void (*connectionComplete)(const HciConnectionCompleteEventParam *eventParam);
955      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
956      // 7.7.4 Connection Request Event
957      void (*connectionRequest)(const HciConnectionRequestEventParam *eventParam);
958      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
959      // 7.7.5 Disconnection Complete Event
960      void (*disconnectComplete)(const HciDisconnectCompleteEventParam *eventParam);
961      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
962      // 7.7.6 Authentication Complete Event
963      void (*authenticationComplete)(const HciAuthenticationCompleteEventParam *eventParam);
964      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
965      // 7.7.7 Remote Name Request Complete Event
966      void (*remoteNameRequestComplete)(const HciRemoteNameRequestCompleteEventParam *eventParam);
967      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
968      // 7.7.8 Encryption Change Event
969      void (*encryptionChange)(const HciEncryptionChangeEventParam *eventParam);
970      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
971      // 7.7.9 Change Connection Link Key Complete Event
972      void (*changeConnectionLinkKeyComplete)(const HciChangeConnectionLinkKeyCompleteEventParam *eventParam);
973      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
974      // 7.7.10 Master Link Key Complete Event
975      void (*masterLinkKeyComplete)(const HciMasterLinkKeyCompleteEventParam *eventParam);
976      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
977      // 7.7.11 Read Remote Supported Features Complete Event
978      void (*readRemoteSupportedFeaturesComplete)(const HciReadRemoteSupportedFeaturesCompleteEventParam *eventParam);
979      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
980      // 7.7.12 Read Remote Version Information Complete Event
981      void (*readRemoteVersionInformationComplete)(const HciReadRemoteVersionInformationCompleteEventParam *eventParam);
982      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
983      // 7.7.13 QoS Setup Complete Event
984      void (*qosSetupComplete)(const HciQosSetupCompleteEventParam *eventParam);
985      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
986      // 7.7.15 Command Status Event
987      void (*commandStatus)(uint8_t status, uint16_t commandOpcode);
988      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
989      // 7.7.16 Hardware Error Event
990      void (*hardwareError)(const HciHardwareErrorEventParam *eventParam);
991      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
992      // 7.7.17 Flush Occurred Event
993      void (*flushOccurred)(const HciFlushOccurredEventParam *eventParam);
994      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
995      // 7.7.18 Role Change Event
996      void (*roleChange)(const HciRoleChangeEventParam *eventParam);
997      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
998      // 7.7.20 Mode Change Event
999      void (*modeChange)(const HciModeChangeEventParam *param);
1000      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1001      // 7.7.21 Return Link Keys Event
1002      void (*returnLinkKeys)(const HciReturnLinkKeysEventParam *param);
1003      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1004      // 7.7.22 PIN Code Request Event
1005      void (*pinCodeRequest)(const HciPinCodeRequestEventParam *eventParam);
1006      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1007      // 7.7.23 Link Key Request Event
1008      void (*linkKeyRequest)(const HciLinkKeyRequestEventParam *eventParam);
1009      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1010      // 7.7.24 Link Key Notification Event
1011      void (*linkKeyNotification)(const HciLinkKeyNotificationEventParam *eventParam);
1012      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1013      // 7.7.26 Data Buffer Overflow Event
1014      void (*dataBufferOverflow)(const HciDataBufferOverflowEventParam *eventParam);
1015      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1016      // 7.7.27 Max Slots Change Event
1017      void (*maxSlotsChange)(const HciMaxSlotsChangeEventParam *eventParam);
1018      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1019      // 7.7.28 Read Clock Offset Complete Event
1020      void (*readClockOffsetComplete)(const HciReadClockOffsetCompleteEventParam *eventParam);
1021      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1022      // 7.7.29 Connection Packet Type Changed Event
1023      void (*connectionPacketTypeChanged)(const HciConnectionPacketTypeChangedEventParam *eventParam);
1024      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1025      // 7.7.30 QoS Violation Event
1026      void (*qoSViolation)(const HciQosViolationEventParam *eventParam);
1027      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1028      // 7.7.31 Page Scan Repetition Mode Change Event
1029      void (*pageScanRepetitionModeChange)(const HciPageScanRepetitionModeChangeEventParam *eventParam);
1030      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1031      // 7.7.32 Flow Specification Complete Event
1032      void (*flowSpecificationComplete)(const HciFlowSpecificationCompleteEventParam *eventParam);
1033      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1034      // 7.7.33 Inquiry Result with RSSI Event
1035      void (*inquiryResultWithRSSI)(const HciInquiryResultWithRssiEventParam *eventParam);
1036      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1037      // 7.7.34 Read Remote Extended Features Complete Event
1038      void (*readRemoteExtendedFeaturesComplete)(const HciReadRemoteExtendedFeaturesCompleteEventParam *eventParam);
1039      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1040      // 7.7.35 Synchronous Connection Complete Event
1041      void (*synchronousConnectionComplete)(const HciSynchronousConnectionCompleteEventParam *eventParam);
1042      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1043      // 7.7.36 Synchronous Connection Changed Event
1044      void (*synchronousConnectionChanged)(const HciSynchronousConnectionChangedEventParam *eventParam);
1045      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1046      // 7.7.37 Sniff Subrating Event
1047      void (*sniffSubrating)(const HciSniffSubratingEventParam *eventParam);
1048      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1049      // 7.7.38 Extended Inquiry Result Event
1050      void (*extendedInquiryResult)(const HciExtendedInquiryResultEventParam *eventParam);
1051      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1052      // 7.7.39 Encryption Key Refresh Complete Event
1053      void (*encryptionKeyRefreshComplete)(const HciEncryptionKeyRefreshCompleteEventParam *eventParam);
1054      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1055      // 7.7.40 IO Capability Request Event
1056      void (*ioCapabilityRequest)(const HciIoCapabilityRequestEventParam *eventParam);
1057      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1058      // 7.7.41 IO Capability Response Event
1059      void (*ioCapabilityResponse)(const HciIoCapabilityResponseEventParam *eventParam);
1060      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1061      // 7.7.42 User Confirmation Request Event
1062      void (*userConfirmationRequest)(const HciUserConfirmationRequestEventParam *eventParam);
1063      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1064      // 7.7.43 User Passkey Request Event
1065      void (*userPasskeyRequest)(const HciUserPasskeyRequestEventParam *eventParam);
1066      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1067      // 7.7.44 Remote OOB Data Request Event
1068      void (*remoteOOBDataRequest)(const HciRemoteOobDataRequestEventParam *eventParam);
1069      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1070      // 7.7.45 Simple Pairing Complete Event
1071      void (*simplePairingComplete)(const HciSimplePairingCompleteEventParam *eventParam);
1072      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1073      // 7.7.46 Link Supervision Timeout Changed Event
1074      void (*linkSupervisionTimeoutChanged)(const HciLinkSupervisionTimeoutChangedEventParam *eventParam);
1075      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1076      // 7.7.47 Enhanced Flush Complete Event
1077      void (*enhancedFlushComplete)(const HciEnhancedFlushCompleteEventParam *eventParam);
1078      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1079      // 7.7.48 User Passkey Notification Event
1080      void (*userPasskeyNotification)(const HciUserPasskeyNotificationEventParam *eventParam);
1081      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1082      // 7.7.49 Keypress Notification Event
1083      void (*keypressNotification)(const HciKeypressNotificationEventParam *eventParam);
1084      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1085      // 7.7.50 Remote Host Supported Features Notification Event
1086      void (*remoteHostSupportedFeaturesNotification)(
1087          const HciRemoteHostSupportedFeaturesNotificationEventParam *eventParam);
1088      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1089      // 7.7.51 Physical Link Complete Event
1090      void (*physicalLinkComplete)(const HciPhysicalLinkCompleteEventParam *eventParam);
1091      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1092      // 7.7.52 Channel Selected Event
1093      void (*channelSelected)(const HciChannelSelectedEventParam *eventParam);
1094      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1095      // 7.7.53 Disconnection Physical Link Complete Event
1096      void (*disconnectionPhysicalLinkComplete)(const HciDisconnectionPhysicalLinkCompleteEventParam *eventParam);
1097      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1098      // 7.7.54 Physical Link Loss Early Warning Event
1099      void (*physicalLinkLossEarlyWarning)(const HciPhysicalLinkLossEarlyWarningEventParam *eventParam);
1100      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1101      // 7.7.55 Physical Link Recovery Event
1102      void (*physicalLinkRecovery)(const HciPhysicalLinkRecoveryEventParam *eventParam);
1103      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1104      // 7.7.56 Logical Link Complete Event
1105      void (*logicalLinkComplete)(const HciLogicalLinkCompleteEventParam *eventParam);
1106      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1107      // 7.7.57 Disconnection Logical Link Complete Event
1108      void (*disconnectionLogicalLinkComplete)(const HciDisconnectionLogicalLinkCompleteEventParam *eventParam);
1109      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1110      // 7.7.58 Flow Spec Modify Complete Event
1111      void (*flowSpecModifyComplete)(const HciFlowSpecModifyCompleteEventParam *eventParam);
1112      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1113      // 7.7.59 Number Of Completed Data Blocks Event
1114      void (*numberOfCompletedDataBlocks)(const HciNumberOfCompletedDataBlocksEventParam *eventParam);
1115      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1116      // 7.7.60 Short Range Mode Change Complete Event
1117      void (*shortRangeModeChangeComplete)(const HciShortRangeModeChangeCompleteEventParam *eventParam);
1118      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1119      // 7.7.61 AMP Status Change Event
1120      void (*ampStatusChange)(const HciAmpStatusChangeEventParam *eventParam);
1121      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1122      // 7.7.62 AMP Start Test Event
1123      void (*ampStartTest)(const HciAmpStartTestEventParam *eventParam);
1124      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1125      // 7.7.63 AMP Test End Event
1126      void (*ampTestEnd)(const HciAmpTestEndEventParam *eventParam);
1127      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1128      // 7.7.64 AMP Receiver Report Event
1129      void (*ampReceiverReport)(const HciAmpReceiverReportEventParam *eventParam);
1130      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1131      // 7.7.66 Triggered Clock Capture Event
1132      void (*triggeredClockCapture)(const HciTriggeredClockCaptureEventParam *eventParam);
1133      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1134      // 7.7.67 Synchronization Train Complete Event
1135      void (*synchronizationTrainComplete)(const HciSynchronizationTrainCompleteEventParam *eventParam);
1136      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1137      // 7.7.68 Synchronization Train Received Event
1138      void (*synchronizationTrainReceived)(const HciSynchronizationTrainReceivedEventParam *eventParam);
1139      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1140      // 7.7.69 Connectionless Slave Broadcast Receive Event
1141      void (*connectionlessSlaveBroadcastReceive)(const HciConnectionlessSlaveBroadcastReceiveEventParam *eventParam);
1142      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1143      // 7.7.70 Connectionless Slave Broadcast Timeout Event
1144      void (*connectionlessSlaveBroadcastTimeout)(const HciConnectionlessSlaveBroadcastTimeoutEventParam *eventParam);
1145      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1146      // 7.7.71 Truncated Page Complete Event
1147      void (*truncatedPageComplete)(const HciTruncatedPageCompleteEventParam *eventParam);
1148      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1149      // 7.7.73 Connectionless Slave Broadcast Channel Map Change Event
1150      void (*connectionlessSlaveBroadcastChannelMapChange)(
1151          const HciConnectionlessSlaveBroadcastChannelMapChangeEventParam *eventParam);
1152      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1153      // 7.7.74 Inquiry Response Notification Event
1154      void (*inquiryResponseNotification)(const HciInquiryResponseNotificationEventParam *eventParam);
1155      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1156      // 7.7.75 Authenticated Payload Timeout Expired Event
1157      void (*authenticatedPayloadTimeoutExpired)(const HciAuthenticatedPayloadTimeoutExpiredEventParam *eventParam);
1158      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1159      // 7.7.76 SAM Status Change Event
1160      void (*samStatusChange)(const HciSamStatusChangeEventParam *eventParam);
1161  
1162      // LE Cmds
1163  
1164      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1165      // 7.8.1 LE Set Event Mask Command
1166      void (*leSetEventMaskComplete)(const HciLeSetEventMaskReturnParam *returParam);
1167      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1168      // 7.8.2 LE Read Buffer Size Command
1169      void (*leReadBufferSizeComplete)(const HciLeReadBufferSizeReturnParam *returnParam);
1170      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1171      // 7.8.3 LE Read Local Supported Features Command
1172      void (*leReadLocalSupportedFeaturesComplete)(const HciLeReadLocalSupportedFeaturesReturnParam *returnParam);
1173      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1174      // 7.8.4 LE Set Random Address Command
1175      void (*leSetRandomAddressComplete)(const HciLeSetRandomAddressReturnParam *returnParam);
1176      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1177      // 7.8.5 LE Set Advertising Parameters Command
1178      void (*leSetAdvertisingParametersComplete)(const HciLeSetAdvertisingParametersReturnParam *returnParam);
1179      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1180      // 7.8.6 LE Read Advertising Channel Tx Power Command
1181      void (*leReadAdvertisingChannelTxPowerComplete)(const HciLeReadAdvertisingChannelTxPowerReturnParam *returnParam);
1182      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1183      // 7.8.7 LE Set Advertising Data Command
1184      void (*leSetAdvertisingDataComplete)(const HciLeSetAdvertisingDataReturnParam *returnParam);
1185      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1186      // 7.8.8 LE Set Scan Response Data Command
1187      void (*leSetScanResponseDataComplete)(const HciLeSetScanResponseDataReturnParam *returnParam);
1188      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1189      // 7.8.9 LE Set Advertising Enable Command
1190      void (*leSetAdvertisingEnableComplete)(const HciLeSetAdvertisingEnableReturnParam *returnParam);
1191      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1192      // 7.8.10 LE Set Scan Parameters Command
1193      void (*leSetScanParametersComplete)(const HciLeSetScanParametersReturnParam *returnParam);
1194      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1195      // 7.8.11 LE Set Scan Enable Command
1196      void (*leSetScanEnableComplete)(const HciLeSetScanEnableReturnParam *returnParam);
1197      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1198      // 7.8.13 LE Create Connection Cancel Command
1199      void (*leCreateConnectionCancelComplete)(const HciLeCreateConnectionCancelReturnParam *returnParam);
1200      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1201      // 7.8.14 LE Read WL Size Command
1202      void (*leReadWhiteListSizeComplete)(const HciLeReadWhiteListSizeReturnParam *returnParam);
1203      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1204      // 7.8.15 LE Clear WL Command
1205      void (*leClearWhiteListComplete)(const HciLeClearWhiteListReturnParam *returnParam);
1206      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1207      // 7.8.16 LE Add Device To WL Command
1208      void (*leAddDeviceToWhiteListComplete)(const HciLeAddDeviceToWhiteListReturnParam *returnParam);
1209      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1210      // 7.8.17 LE Remove Device From WL Command
1211      void (*leRemoveDeviceFromWhiteListComplete)(const HciLeRemoveDeviceFromWhiteListReturnParam *returnParam);
1212      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1213      // 7.8.19 LE Set Host Channel Classification Command
1214      void (*leSetHostChannelClassificationComplete)(const HciLeSetHostChannelClassificationReturnParam *returnParam);
1215      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1216      // 7.8.20 LE Read Channel Map Command
1217      void (*leReadChannelMapComplete)(const HciLeReadChannelMapReturnParam *returnParam);
1218      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1219      // 7.8.22 LE Encrypt Command
1220      void (*leEncryptComplete)(const HciLeEncryptReturnParam *returnParam);
1221      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1222      // 7.8.23 LE Rand Command
1223      void (*leRandComplete)(const HciLeRandReturnParam *returnParam);
1224      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1225      // 7.8.25 LE Long Term Key Request Reply Command
1226      void (*leLongTermKeyRequestReplyComplete)(const HciLeLongTermKeyRequestReplyReturnParam *returnParam);
1227      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1228      // 7.8.26 LE Long Term Key Request Negative Reply Command
1229      void (*leLongTermKeyRequestNegativeReplyComplete)(
1230          const HciLeLongTermKeyRequestNegativeReplyReturnParam *returnParam);
1231      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1232      // 7.8.27 LE Read Supported States Command
1233      void (*leReadSupportedStatesComplete)(const HciLeReadSupportedStatesReturnParam *returnParam);
1234      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1235      // 7.8.28 LE Receiver Test Command
1236      void (*leReceiverTestComplete)(const HciLeReceiverTestReturnParam *returnParam);
1237      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1238      // 7.8.29 LE Transmitter Test Command
1239      void (*leTransmitterTestComplete)(const HciLeTransmitterTestReturnParam *returnParam);
1240      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1241      // 7.8.30 LE Test End Command
1242      void (*leTestEndComplete)(const HciLeTestEndReturnParam *returnParam);
1243      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1244      // 7.8.31 LE Remote Connection Parameter Request Reply Command
1245      void (*leRemoteConnectionParameterRequestReplyComplete)(
1246          const HciLeRemoteConnectionParameterRequestReplyReturnParam *returnParam);
1247      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1248      // 7.8.32 LE Remote Connection Parameter Request Negative Reply Command
1249      void (*leRemoteConnectionParameterRequestNegativeReplyComplete)(
1250          const HciLeRemoteConnectionParameterRequestNegativeReplyReturnParam *returnParam);
1251      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1252      // 7.8.33 LE Set Data Length Command
1253      void (*leSetDataLengthComplete)(const HciLeSetDataLengthReturnParam *returnParam);
1254      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1255      // 7.8.34 LE Read Suggested Default Data Length Command
1256      void (*leReadSuggestedDefaultDataLengthComplete)(const HciLeReadSuggestedDefaultDataLengthReturnParam *returnParam);
1257      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1258      // 7.8.35 LE Write Suggested Default Data Length Command
1259      void (*leWriteSuggestedDefaultDataLengthComplete)(
1260          const HciLeWriteSuggestedDefaultDataLengthReturnParam *returnParam);
1261      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1262      // 7.8.38 LE Add Device To Resolving List Command
1263      void (*leAddDeviceToResolvingListComplete)(const HciLeAddDeviceToResolvingListReturnParam *returnParam);
1264      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1265      // 7.8.39 LE Remove Device From Resolving List Command
1266      void (*leRemoveDeviceFromResolvingListComplete)(const HciLeRemoveDeviceFromResolvingListReturnParam *returnParam);
1267      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1268      // 7.8.40 LE Clear Resolving List Command
1269      void (*leClearResolvingListComplete)(const HciLeClearResolvingListReturnParam *returnParam);
1270      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1271      // 7.8.41 LE Read Resolving List Size Command
1272      void (*leReadResolvingListSizeComplete)(const HciLeReadResolvingListSizeReturnParam *returnParam);
1273      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1274      // 7.8.42 LE Read Peer Resolvable Address Command
1275      void (*leReadPeerResolvableAddressComplete)(const HciLeReadPeerResolvableAddressReturnParam *returnParam);
1276      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1277      // 7.8.43 LE Read Local Resolvable Address Command
1278      void (*leReadLocalResolvableAddressComplete)(const HciLeReadLocalResolvableAddressReturnParam *returnParam);
1279      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1280      // 7.8.44 LE Set Address Resolution Enable Command
1281      void (*leSetAddressResolutionEnableComplete)(const HciLeSetAddressResolutionEnableReturnParam *returnParam);
1282      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1283      // 7.8.45 LE Set Resolvable Private Address Timeout Command
1284      void (*leSetResolvablePrivateAddressTimeoutComplete)(
1285          const HciLeSetResolvablePrivateAddressTimeoutReturnParam *returnParam);
1286      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1287      // 7.8.46 LE Read Maximum Data Length Command
1288      void (*leReadMaximumDataLengthComplete)(const HciLeReadMaximumDataLengthReturnParam *returnParam);
1289      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1290      // 7.8.47 LE Read PHY Command
1291      void (*leReadPhyComplete)(const HciLeReadPhyReturnParam *returnParam);
1292      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1293      // 7.8.48 LE Set Default PHY Command
1294      void (*leSetDefaultPhyComplete)(const HciLeSetDefaultPhyReturnParam *returnParam);
1295      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1296      // 7.8.49 LE Set PHY Command
1297      void (*leSetPhyComplete)();
1298      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1299      // 7.8.50 LE Enhanced Receiver Test Command
1300      void (*leEnhancedReceiverTestComplete)(const HciLeEnhancedReceiverTestReturnParam *returnParam);
1301      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1302      // 7.8.51 LE Enhanced Transmitter Test Command
1303      void (*leEnhancedTransmitterTestComplete)(const HciLeEnhancedTransmitterTestReturnParam *returnParam);
1304      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1305      // 7.8.52 LE Set Advertising Set Random Address Command
1306      void (*leSetAdvertisingSetRandomAddressComplete)(const HciLeSetAdvertisingSetRandomAddressReturnParam *returnParam);
1307      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1308      // 7.8.53 LE Set Extended Advertising Parameters Command
1309      void (*leSetExtendedAdvertisingParametersComplete)(
1310          const HciLeSetExtendedAdvertisingParametersReturnParam *returnParam);
1311      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1312      // 7.8.54 LE Set Extended Advertising Data Command
1313      void (*leSetExtendedAdvertisingDataComplete)(const HciLeSetExtendedAdvertisingDataReturnParam *returnParam);
1314      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1315      // 7.8.55 LE Set Extended Scan Response Data Command
1316      void (*leSetExtendedScanResponseDataComplete)(const HciLeSetExtendedScanResponseDataReturnParam *returnParam);
1317      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1318      // 7.8.56 LE Set Extended Advertising Enable Command
1319      void (*leSetExtendedAdvertisingEnableComplete)(const HciLeSetExtendedAdvertisingEnableReturnParam *returnParam);
1320      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1321      // 7.8.57 LE Read Maximum Advertising Data Length Command
1322      void (*leReadMaximumAdvertisingDataLengthComplete)(
1323          const HciLeReadMaximumAdvertisingDataLengthReturnParam *returnParam);
1324      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1325      // 7.8.58 LE Read Number of Supported Advertising Sets Command
1326      void (*leReadNumberofSupportedAdvertisingSetsComplete)(
1327          const HciLeReadNumberofSupportedAdvertisingSetsReturnParam *returnParam);
1328      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1329      // 7.8.59 LE Remove Advertising Set Command
1330      void (*leRemoveAdvertisingSetComplete)(const HciLeRemoveAdvertisingSetReturnParam *returnParam);
1331      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1332      // 7.8.60 LE Clear Advertising Sets Command
1333      void (*leClearAdvertisingSetsComplete)(const HciLeClearAdvertisingSetsReturnParam *returnParam);
1334      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1335      // 7.8.61 LE Set Periodic Advertising Parameters Command
1336      void (*leSetPeriodicAdvertisingParametersComplete)(
1337          const HciLeSetPeriodicAdvertisingParametersReturnParameters *returnParam);
1338      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1339      // 7.8.62 LE Set Periodic Advertising Data Command
1340      void (*leSetPeriodicAdvertisingDataComplete)(const HciLeSetPeriodicAdvertisingDataReturnParameters *returnParam);
1341      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1342      // 7.8.63 LE Set Periodic Advertising Enable Command
1343      void (*leSetPeriodicAdvertisingEnableComplete)(
1344          const HciLeSetPeriodicAdvertisingEnableReturnParameters *returnParam);
1345      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1346      // 7.8.64 LE Set Extended Scan Parameters Command
1347      void (*leSetExtendedScanParametersComplete)(const HciLeSetExtendedScanParametersReturnParam *returnParam);
1348      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1349      // 7.8.65 LE Set Extended Scan Enable Command
1350      void (*leSetExtendedScanEnableComplete)(const HciLeSetExtendedScanEnableReturnParam *returnParam);
1351      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1352      // 7.8.68 LE Periodic Advertising Create Sync Cancel Command
1353      void (*lePeriodicAdvertisingCreateSyncCancelComplete)(
1354          const HciLePeriodicAdvertisingCreateSyncCancelReturnParam *returnParam);
1355      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1356      // 7.8.69 LE Periodic Advertising Terminate Sync Command
1357      void (*lePeriodicAdvertisingTerminateSyncComplete)(
1358          const HciLePeriodicAdvertisingTerminateSyncReturnParam *returnParam);
1359      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1360      // 7.8.70 LE Add Device To Periodic Advertiser List Command
1361      void (*leAddDeviceToPeriodicAdvertiserListComplete)(
1362          const HciLeAddDeviceToPeriodicAdvertiserListReturnParam *returnParam);
1363      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1364      // 7.8.71 LE Remove Device From Periodic Advertiser List Command
1365      void (*leRemoveDeviceFromPeriodicAdvertiserListComplete)(
1366          const HciLeRemoveDeviceFromPeriodicAdvertiserListReturnParam *returnParam);
1367      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1368      // 7.8.72 LE Clear Periodic Advertiser List Command
1369      void (*leClearPeriodicAdvertiserListComplete)(const HciLeClearPeriodicAdvertiserListReturnParam *returnParam);
1370      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1371      // 7.8.73 LE Read Periodic Advertiser List Size Command
1372      void (*leReadPeriodicAdvertiserListSizeComplete)(const HciLeReadPeriodicAdvertiserListSizeReturnParam *returnParam);
1373      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1374      // 7.8.74 LE Read Transmit Power Command
1375      void (*leReadTransmitPowerComplete)(const HciLeReadTransmitPowerReturnParam *returnParam);
1376      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1377      // 7.8.75 LE Read RF Path Compensation Command
1378      void (*leReadRfPathCompensationComplete)(const HciLeReadRfPathCompensationReturnParam *returnParam);
1379      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1380      // 7.8.76 LE Write RF Path Compensation Command
1381      void (*leWriteRfPathCompensationComplete)(const HciLeWriteRfPathCompensationReturnParam *returnParam);
1382      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1383      // 7.8.77 LE Set Privacy Mode Command
1384      void (*leSetPrivacyModeComplete)(const HciLeSetPrivacyModeReturnParam *returnParam);
1385  
1386      // LE Events
1387  
1388      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1389      // 7.7.65.1 LE Connection Complete Event
1390      void (*leConnectionComplete)(const HciLeConnectionCompleteEventParam *eventParam);
1391      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1392      // 7.7.65.2 LE Advertising Report Event
1393      void (*leAdvertisingReport)(const HciLeAdvertisingReportEventParam *eventParam);
1394      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1395      // 7.7.65.3 LE Connection Update Complete Event
1396      void (*leConnectionUpdateComplete)(const HciLeConnectionUpdateCompleteEventParam *eventParam);
1397      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1398      // 7.7.65.4 LE Read Remote Features Complete Event
1399      void (*leReadRemoteFeaturesComplete)(const HciLeReadRemoteFeaturesCompleteEventParam *eventParam);
1400      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1401      // 7.7.65.5 LE Long Term Key Request Event
1402      void (*leLongTermKeyRequest)(const HciLeLongTermKeyRequestEventParam *eventParam);
1403      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1404      // 7.7.65.6 LE Remote Connection Parameter Request Event
1405      void (*leRemoteConnectionParameterRequest)(const HciLeRemoteConnectionParameterRequestEventParam *eventParam);
1406      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1407      // 7.7.65.7 LE Data Length Change Event
1408      void (*leDataLengthChange)(const HciLeDataLengthChangeEventParam *eventParam);
1409      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1410      // 7.7.65.8 LE Read Local P-256 Public Key Complete Event
1411      void (*leReadLocalP256PublicKeyComplete)(const HciLeReadLocalP256PublicKeyCompleteEventParam *eventParam);
1412      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1413      // 7.7.65.9 LE Generate DHKey Complete Event
1414      void (*leGenerateDHKeyComplete)(const HciLeGenerateDHKeyCompleteEventParam *eventParam);
1415      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1416      // 7.7.65.10 LE Enhanced Connection Complete Event
1417      void (*leEnhancedConnectionComplete)(const HciLeEnhancedConnectionCompleteEventParam *eventParam);
1418      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1419      // 7.7.65.11 LE Directed Advertising Report Event
1420      void (*leDirectedAdvertisingReport)(const HciLeDirectedAdvertisingReportEventParam *eventParam);
1421      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1422      // 7.7.65.12 LE PHY Update Complete Event
1423      void (*lePhyUpdateComplete)(const HciLePhyUpdateCompleteEventParam *eventParam);
1424      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1425      // 7.7.65.13 LE Extended Advertising Report Event
1426      void (*leExtendedAdvertisingReport)(const HciLeExtendedAdvertisingReportEventParam *eventParam);
1427      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1428      // 7.7.65.14 LE Periodic Advertising Sync Established Event
1429      void (*lePeriodicAdvertisingSyncEstablished)(const HciLePeriodicAdvertisingSyncEstablishedEventParam *eventParam);
1430      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1431      // 7.7.65.15 LE Periodic Advertising Report Event
1432      void (*lePeriodicAdvertisingReport)(const HciLePeriodicAdvertisingReportEventParam *eventParam);
1433      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1434      // 7.7.65.16 LE Periodic Advertising Sync Lost Event
1435      void (*lePeriodicAdvertisingSyncLost)(const HciLePeriodicAdvertisingSyncLostEventParam *eventParam);
1436      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1437      // 7.7.65.17 LE Scan Timeout Event
1438      void (*leScanTimeoutComplete)();
1439      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1440      // 7.7.65.18 LE Advertising Set Terminated Event
1441      void (*leAdvertisingSetTerminated)(const HciLeAdvertisingSetTerminatedEventParam *eventParam);
1442      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1443      // 7.7.65.19 LE Scan Request Received Event
1444      void (*leScanRequestReceived)(const HciLeScanRequestReceivedEventParam *eventParam);
1445      // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E
1446      // 7.7.65.20 LE Channel Selection Algorithm Event
1447      void (*leChannelSelectionAlgorithm)(const HciLeChannelSelectionAlgorithmEventParam *eventParam);
1448  } HciEventCallbacks;
1449  
1450  int HCI_RegisterEventCallbacks(const HciEventCallbacks *callbacks);
1451  int HCI_DeregisterEventCallbacks(const HciEventCallbacks *callbacks);
1452  
1453  typedef struct {
1454      void (*onAclData)(uint16_t handle, uint8_t pbFlag, uint8_t bcFlag, Packet *packet);
1455  } HciAclCallbacks;
1456  
1457  int HCI_RegisterAclCallbacks(const HciAclCallbacks *callbacks);
1458  int HCI_DeregisterAclCallbacks(const HciAclCallbacks *callbacks);
1459  
1460  typedef struct {
1461      void (*onCmdTimeout)();
1462  } HciFailureCallbacks;
1463  
1464  int HCI_RegisterFailureCallback(const HciFailureCallbacks *callbacks);
1465  int HCI_DeregisterFailureCallback(const HciFailureCallbacks *callbacks);
1466  
1467  #define NON_FLUSHABLE_PACKET 0
1468  #define FLUSHABLE_PACKET 1
1469  int HCI_SendAclData(uint16_t handle, uint8_t flushable, Packet *packet);
1470  
1471  #define TRANSMISSON_TYPE_H2C_CMD 1
1472  #define TRANSMISSON_TYPE_C2H_EVENT 2
1473  #define TRANSMISSON_TYPE_H2C_DATA 3
1474  #define TRANSMISSON_TYPE_C2H_DATA 4
1475  
1476  int HCI_SetTransmissionCaptureCallback(void (*onTransmission)(uint8_t type, const uint8_t *data, uint16_t length));
1477  
1478  int HCI_EnableTransmissionCapture();
1479  int HCI_DisableTransmissionCapture();
1480  
1481  void HCI_SetBufferSize(uint16_t packetLength, uint16_t totalPackets);
1482  void HCI_SetLeBufferSize(uint16_t packetLength, uint8_t totalPackets);
1483  
1484  #ifdef __cplusplus
1485  }
1486  #endif
1487  
1488  #endif