• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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