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_DEF_CONTROLLER_BASEBAND_CMD_H 17 #define HCI_DEF_CONTROLLER_BASEBAND_CMD_H 18 19 #include <stdint.h> 20 21 #include "hci_def_cmd_common.h" 22 23 #ifdef __cplusplus 24 extern "C" { 25 #endif 26 27 #pragma pack(1) 28 29 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 30 // 7.3 CONTROLLER & BASEBAND COMMANDS 31 #define HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND 0x03 32 33 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 34 // 7.3.1 Set Event Mask Command 35 #define HCI_SET_EVENT_MASK MAKE_OPCODE(0x0001, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 36 37 #define HCI_EVENT_MASK_DEFAULT 0x00001FFFFFFFFFFF 38 #define HCI_EVENT_MASK_SNIFF_SUBRATING_EVENT 0x0000200000000000 39 #define HCI_EVENT_MASK_EXTENDED_INQUIRY_RESULT_EVENT 0x0000400000000000 40 #define HCI_EVENT_MASK_ENCRYPTION_KEY_REFRESH_COMPLETE_EVENT 0x0000800000000000 41 #define HCI_EVENT_MASK_IO_CAPABILITY_REQUEST_EVENT 0x0001000000000000 42 #define HCI_EVENT_MASK_IO_CAPABILITY_RESPONSE_EVENT 0x0002000000000000 43 #define HCI_EVENT_MASK_USER_CONFIRMATION_REQUEST_EVENT 0x0004000000000000 44 #define HCI_EVENT_MASK_USER_PASSKEY_REQUEST_EVENT 0x0008000000000000 45 #define HCI_EVENT_MASK_REMOTE_OOB_DATA_REQUEST_EVENT 0x0010000000000000 46 #define HCI_EVENT_MASK_SIMPLE_PAIRING_COMPLETE_EVENT 0x0020000000000000 47 #define HCI_EVENT_MASK_LINK_SUPERVISION_TIMEOUT_CHANGED_EVENT 0x0080000000000000 48 #define HCI_EVENT_MASK_ENHANCED_FLUSH_COMPLETE_EVENT 0x0100000000000000 49 #define HCI_EVENT_MASK_USER_PASSKEY_NOTIFICATION_EVENT 0x0400000000000000 50 #define HCI_EVENT_MASK_KEYPRESS_NOTIFICATION_EVENT 0x0800000000000000 51 #define HCI_EVENT_MASK_REMOTE_HOST_SUPPORTED_FEATURES_NOTIFICATION 0x1000000000000000 52 #define HCI_EVENT_MASK_LE_META_EVENT 0x2000000000000000 53 54 #define HCI_EVENT_MASK_CORE_5_0 \ 55 (HCI_EVENT_MASK_DEFAULT | HCI_EVENT_MASK_SNIFF_SUBRATING_EVENT | HCI_EVENT_MASK_EXTENDED_INQUIRY_RESULT_EVENT | \ 56 HCI_EVENT_MASK_ENCRYPTION_KEY_REFRESH_COMPLETE_EVENT | HCI_EVENT_MASK_IO_CAPABILITY_REQUEST_EVENT | \ 57 HCI_EVENT_MASK_IO_CAPABILITY_RESPONSE_EVENT | HCI_EVENT_MASK_USER_CONFIRMATION_REQUEST_EVENT | \ 58 HCI_EVENT_MASK_USER_PASSKEY_REQUEST_EVENT | HCI_EVENT_MASK_REMOTE_OOB_DATA_REQUEST_EVENT | \ 59 HCI_EVENT_MASK_SIMPLE_PAIRING_COMPLETE_EVENT | HCI_EVENT_MASK_LINK_SUPERVISION_TIMEOUT_CHANGED_EVENT | \ 60 HCI_EVENT_MASK_ENHANCED_FLUSH_COMPLETE_EVENT | HCI_EVENT_MASK_USER_PASSKEY_NOTIFICATION_EVENT | \ 61 HCI_EVENT_MASK_KEYPRESS_NOTIFICATION_EVENT | HCI_EVENT_MASK_REMOTE_HOST_SUPPORTED_FEATURES_NOTIFICATION | \ 62 HCI_EVENT_MASK_LE_META_EVENT) 63 64 typedef struct { 65 uint64_t eventMask; 66 } HciSetEventMaskParam; 67 68 typedef HciStatusParam HciSetEventMaskReturnParam; 69 70 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 71 // 7.3.2 Reset Command 72 #define HCI_RESET MAKE_OPCODE(0x0003, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 73 74 typedef HciStatusParam HciResetReturnParam; 75 76 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 77 // 7.3.3 Set Event Filter Command 78 #define HCI_SET_EVENT_FILTER MAKE_OPCODE(0x0005, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 79 80 typedef struct { 81 uint8_t filterType; 82 uint8_t filterConditionType; 83 uint8_t condition; 84 } HciSetEventFilterParam; 85 86 typedef HciStatusParam HciSetEventFilterReturnParam; 87 88 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 89 // 7.3.4 Flush Command 90 #define HCI_FLUSH MAKE_OPCODE(0x0008, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 91 92 typedef struct { 93 uint16_t connectionHandle; 94 } HciFlushParam; 95 96 typedef struct { 97 uint8_t status; 98 uint16_t connectionHandle; 99 } HciFlushReturnParam; 100 101 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 102 // 7.3.5 Read PIN Type Command 103 #define HCI_READ_PIN_TYPE MAKE_OPCODE(0x0009, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 104 105 typedef struct { 106 uint8_t status; 107 uint8_t pinType; 108 } HciReadPinTypeReturnParam; 109 110 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 111 // 7.3.6 Write PIN Type Command 112 #define HCI_WRITE_PIN_TYPE MAKE_OPCODE(0x000A, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 113 114 typedef struct { 115 uint8_t pinType; 116 } HciWritePinTypeParam; 117 118 typedef HciStatusParam HciWritePinTypeReturnParam; 119 120 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 121 // 7.3.7 Create New Unit Key Command 122 #define HCI_CREATE_NEW_UNIT_KEY MAKE_OPCODE(0x000B, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 123 124 typedef HciStatusParam HciCreateNewUnitKeyReturnParam; 125 126 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 127 // 7.3.8 Read Stored Link Key Command 128 #define HCI_READ_STORED_LINK_KEY MAKE_OPCODE(0x000D, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 129 130 typedef struct { 131 HciBdAddr bdAddr; 132 uint8_t readAllFlag; 133 } HciReadStoredLinkKeyParam; 134 135 typedef struct { 136 uint8_t status; 137 uint16_t maxNumKeys; 138 uint16_t numKeysRead; 139 } HciReadStoredLinkKeyReturnParam; 140 141 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 142 // 7.3.9 Write Stored Link Key Command 143 #define HCI_WRITE_STORED_LINK_KEY MAKE_OPCODE(0x0011, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 144 145 #define BD_ADDR_SIZE 1 146 147 #define LINK_KEY_SIZE 16 148 149 typedef struct { 150 uint8_t numKeysToWrite; 151 HciBdAddr *bdAddr; 152 uint8_t *linkKey; 153 } HciWriteStoredLinkKeyParam; 154 155 typedef struct { 156 uint8_t status; 157 uint8_t numKeysWritten; 158 } HciWriteStoredLinkKeyReturnParam; 159 160 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 161 // 7.3.10 Delete Stored Link Key Command 162 #define HCI_DELETE_STORED_LINK_KEY MAKE_OPCODE(0x0012, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 163 164 typedef struct { 165 HciBdAddr bdAddr; 166 uint8_t deleteAllFlag; 167 } HciDeleteStoredLinkKeyParam; 168 169 typedef struct { 170 uint8_t status; 171 uint16_t numKeysDeleted; 172 } HciDeleteStoredLinkKeyReturnParam; 173 174 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 175 // 7.3.11 Write Local Name Command 176 #define HCI_WRITE_LOCAL_NAME MAKE_OPCODE(0x0013, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 177 178 typedef struct { 179 uint8_t localName[248]; 180 } HciWriteLocalNameParam; 181 182 typedef HciStatusParam HciWriteLocalNameReturnParam; 183 184 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 185 // 7.3.12 Read Local Name Command 186 #define HCI_READ_LOCAL_NAME MAKE_OPCODE(0x0014, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 187 188 typedef struct { 189 uint8_t status; 190 uint8_t localName[248]; 191 } HciReadLocalNameReturnParam; 192 193 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 194 // 7.3.13 Read Connection Accept Timeout Command 195 #define HCI_READ_CONNECTION_ACCEPT_TIMEOUT MAKE_OPCODE(0x0015, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 196 197 typedef struct { 198 uint8_t status; 199 uint16_t connAcceptTimeout; 200 } HciReadConnectionAcceptTimeoutReturnParam; 201 202 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 203 // 7.3.14 Write Connection Accept Timeout Command 204 #define HCI_WRITE_CONNECTION_ACCEPT_TIMEOUT MAKE_OPCODE(0x0016, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 205 206 typedef struct { 207 uint8_t connAcceptTimeout; 208 } HciWriteConnectionAcceptTimeoutParam; 209 210 typedef HciStatusParam HciWriteConnectionAcceptTimeoutReturnParam; 211 212 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 213 // 7.3.15 Read Page Timeout Command 214 #define HCI_READ_PAGE_TIMEOUT MAKE_OPCODE(0x0017, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 215 216 typedef struct { 217 uint8_t status; 218 uint16_t pageTimeout; 219 } HciReadPageTimeoutReturnParam; 220 221 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 222 // 7.3.16 Write Page Timeout Command 223 #define HCI_WRITE_PAGE_TIMEOUT MAKE_OPCODE(0x0018, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 224 225 typedef struct { 226 uint8_t pageTimeout; 227 } HciWritePageTimeoutParam; 228 229 typedef HciStatusParam HciWritePageTimeoutReturnParam; 230 231 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 232 // 7.3.17 Read Scan Enable Command 233 #define HCI_READ_SCAN_ENABLE MAKE_OPCODE(0x0019, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 234 235 typedef struct { 236 uint8_t status; 237 uint8_t scanEnable; 238 } HciReadScanEnableReturnParam; 239 240 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 241 // 7.3.18 Write Scan Enable Command 242 #define HCI_WRITE_SCAN_ENABLE MAKE_OPCODE(0x001A, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 243 244 typedef struct { 245 uint8_t scanEnable; 246 } HciWriteScanEnableParam; 247 248 typedef HciStatusParam HciWriteScanEnableReturnParam; 249 250 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 251 // 7.3.19 Read Page Scan Activity Command 252 #define HCI_READ_PAGE_SCAN_ACTIVITY MAKE_OPCODE(0x001B, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 253 254 typedef struct { 255 uint8_t status; 256 uint16_t pageScanInterval; 257 uint16_t pageScanWindow; 258 } HciReadPageScanActivityReturnParam; 259 260 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 261 // 7.3.20 Write Page Scan Activity Command 262 #define HCI_WRITE_PAGE_SCAN_ACTIVITY MAKE_OPCODE(0x001C, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 263 264 typedef struct { 265 uint16_t pageScanInterval; 266 uint16_t pageScanWindow; 267 } HciWritePageScanActivityParam; 268 269 typedef HciStatusParam HciWritePageScanActivityReturnParam; 270 271 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 272 // 7.3.21 Read Inquiry Scan Activity Command 273 #define HCI_READ_INQUIRY_SCAN_ACTIVITY MAKE_OPCODE(0x001D, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 274 275 typedef struct { 276 uint8_t status; 277 uint16_t inquiryScanInterval; 278 uint16_t inquiryScanWindow; 279 } HciReadInquiryScanActivityReturnParam; 280 281 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 282 // 7.3.22 Write Inquiry Scan Activity Command 283 #define HCI_WRITE_INQUIRY_SCAN_ACTIVITY MAKE_OPCODE(0x001E, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 284 285 typedef struct { 286 uint16_t inquiryScanInterval; 287 uint16_t inquiryScanWindow; 288 } HciWriteInquiryScanActivityParam; 289 290 typedef HciStatusParam HciWriteInquiryScanActivityReturnParam; 291 292 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 293 // 7.3.23 Read Authentication Enable Command 294 #define HCI_READ_AUTHENTICATION_ENABLE MAKE_OPCODE(0x001F, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 295 296 typedef struct { 297 uint8_t status; 298 uint8_t authenticationEnable; 299 } HciReadAuthenticationEnableReturnParam; 300 301 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 302 // 7.3.24 Write Authentication Enable Command 303 #define HCI_WRITE_AUTHENTICATION_ENABLE MAKE_OPCODE(0x0020, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 304 305 typedef struct { 306 uint8_t authenticationEnable; 307 } HciWriteAuthenticationEnableParam; 308 309 typedef HciStatusParam HciWriteAuthenticationEnableReturnParam; 310 311 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 312 // 7.3.25 Read Class of Device Command 313 #define HCI_READ_CLASS_OF_DEVICE MAKE_OPCODE(0x0023, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 314 315 typedef struct { 316 uint8_t status; 317 uint8_t classofDevice[3]; 318 } HciReadClassofDeviceReturnParam; 319 320 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 321 // 7.3.26 Write Class of Device Command 322 #define HCI_WRITE_CLASS_OF_DEVICE MAKE_OPCODE(0x0024, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 323 324 typedef struct { 325 uint8_t classofDevice[3]; 326 } HciWriteClassofDeviceParam; 327 328 typedef HciStatusParam HciWriteClassofDeviceReturnParam; 329 330 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 331 // 7.3.27 Read Voice Setting Command 332 #define HCI_READ_VOICE_SETTING MAKE_OPCODE(0x0025, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 333 334 typedef struct { 335 uint8_t status; 336 uint16_t voiceSetting; 337 } HciReadVoiceSettingReturnParam; 338 339 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 340 // 7.3.28 Write Voice Setting Command 341 #define HCI_WRITE_VOICE_SETTING MAKE_OPCODE(0x0026, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 342 343 typedef struct { 344 uint16_t voiceSetting; 345 } HciWriteVoiceSettingParam; 346 347 typedef HciStatusParam HciWriteVoiceSettingParamReturnParam; 348 349 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 350 // 6.12 VOICE SETTING 351 #define HCI_VOICE_SETTING_AIR_CODING_FORMAT_CVSD 0x0000 352 #define HCI_VOICE_SETTING_AIR_CODING_FORMAT_ULAW 0x0001 353 #define HCI_VOICE_SETTING_AIR_CODING_FORMAT_ALAW 0x0002 354 #define HCI_VOICE_SETTING_AIR_CODING_FORMAT_TRANSPARENT_DATA 0x0003 355 #define HCI_VOICE_SETTING_INPUT_SAMPLE_SIZE_8_BIT 0x0000 356 #define HCI_VOICE_SETTING_INPUT_SAMPLE_SIZE_16_BIT 0x0020 357 #define HCI_VOICE_SETTING_INPUT_DATA_FORMAT_1S_COMPLEMENT 0x0000 358 #define HCI_VOICE_SETTING_INPUT_DATA_FORMAT_2S_COMPLEMENT 0x0040 359 #define HCI_VOICE_SETTING_INPUT_DATA_FORMAT_SIGN_MAGNITUDE 0x0080 360 #define HCI_VOICE_SETTING_INPUT_DATA_FORMAT_UNSIGNED 0x00C0 361 #define HCI_VOICE_SETTING_INPUT_CODING_LINEAR 0x0000 362 #define HCI_VOICE_SETTING_INPUT_CODING_ULAW 0x0100 363 #define HCI_VOICE_SETTING_INPUT_CODING_ALAW 0x0200 364 365 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 366 // 7.3.29 Read Automatic Flush Timeout Command 367 #define HCI_READ_AUTOMATIC_FLUSH_TIMEOUT MAKE_OPCODE(0x0027, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 368 369 typedef struct { 370 uint16_t connectionHandle; 371 } HciReadAutomaticFlushTimeoutParam; 372 373 typedef struct { 374 uint8_t status; 375 uint16_t connectionHandle; 376 uint16_t flushTimeout; 377 } HciReadAutomaticFlushTimeoutReturnParam; 378 379 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 380 // 7.3.30 Write Automatic Flush Timeout Command 381 #define HCI_WRITE_AUTOMATIC_FLUSH_TIMEOUT MAKE_OPCODE(0x0028, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 382 383 typedef struct { 384 uint16_t connectionHandle; 385 uint16_t flushTimeout; 386 } HciWriteAutomaticFlushTimeoutParam; 387 388 typedef struct { 389 uint8_t status; 390 uint16_t connectionHandle; 391 } HciWriteAutomaticFlushTimeoutReturnParam; 392 393 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 394 // 7.3.31 Read Num Broadcast Retransmissions Command 395 #define HCI_READ_NUM_BROADCAST_RETRANSMISSIONS MAKE_OPCODE(0x0029, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 396 397 typedef struct { 398 uint8_t status; 399 uint8_t numBroadcastRetransmissions; 400 } HciReadNumBroadcastRetransmissionsReturnParam; 401 402 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 403 // 7.3.32 Write Num Broadcast Retransmissions Command 404 #define HCI_WRITE_NUM_BROADCAST_RETRANSMISSIONS MAKE_OPCODE(0x002A, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 405 406 typedef struct { 407 uint8_t numBroadcastRetransmissions; 408 } HciWriteNumBroadcastRetransmissionsParam; 409 410 typedef HciStatusParam HciWriteNumBroadcastRetransmissionsReturnParam; 411 412 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 413 // 7.3.33 Read Hold Mode Activity Command 414 #define HCI_READ_HOLD_MODE_ACTIVITY MAKE_OPCODE(0x002B, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 415 416 typedef struct { 417 uint8_t status; 418 uint8_t holdModeActivity; 419 } HciReadHoldModeActivityReturnParam; 420 421 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 422 // 7.3.34 Write Hold Mode Activity Command 423 #define HCI_WRITE_HOLD_MODE_ACTIVITY MAKE_OPCODE(0x002C, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 424 425 typedef struct { 426 uint8_t holdModeActivity; 427 } HciWriteHoldModeActivityParam; 428 429 typedef HciStatusParam HciWriteHoldModeActivityReturnParam; 430 431 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 432 // 7.3.35 Read Transmit Power Level Command 433 #define HCI_READ_TRANSMIT_POWER_LEVEL MAKE_OPCODE(0x002D, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 434 435 typedef struct { 436 uint16_t connectionHandle; 437 uint8_t type; 438 } HciReadTransmitPowerLevelParam; 439 440 typedef struct { 441 uint8_t status; 442 uint16_t connectionHandle; 443 uint8_t transmitPowerLevel; 444 } HciReadTransmitPowerLevelReturnParam; 445 446 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 447 // 7.3.36 Read Synchronous Flow Control Enable Command 448 #define HCI_READ_SYNCHRONOUS_FLOW_CONTROL_ENABLE MAKE_OPCODE(0x002E, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 449 450 typedef struct { 451 uint8_t status; 452 uint8_t synchronousFlowControlEnable; 453 } HciReadSynchronousFlowControlEnableReturnParam; 454 455 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 456 // 7.3.37 Write Synchronous Flow Control Enable Command 457 #define HCI_WRITE_SYNCHRONOUS_FLOW_CONTROL_ENABLE MAKE_OPCODE(0x002F, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 458 459 typedef struct { 460 uint8_t synchronousFlowControlEnable; 461 } HciWriteSynchronousFlowControlEnableParam; 462 463 typedef HciStatusParam HciWriteSynchronousFlowControlEnableReturnParam; 464 465 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 466 // 7.3.38 Set Controller To Host Flow Control Command 467 #define HCI_SET_CONTROLLER_TO_HOST_FLOW_CONTROL MAKE_OPCODE(0x0031, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 468 469 typedef struct { 470 uint8_t flowControlEnable; 471 } HciSetControllerToHostFlowControlParam; 472 473 typedef HciStatusParam HciSetControllerToHostFlowControlReturnParam; 474 475 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 476 // 7.3.39 Host Buffer Size Command 477 #define HCI_HOST_BURRER_SIZE MAKE_OPCODE(0x0033, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 478 479 typedef struct { 480 uint16_t hostAclDataPacketLength; 481 uint8_t hostSynchronousDataPacketLength; 482 uint16_t hostTotalNumAclDataPackets; 483 uint16_t hostTotalNumSynchronousDataPackets; 484 } HciHostBufferSizeCmdParam; 485 486 typedef HciStatusParam HciHostBufferSizeReturnParam; 487 488 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 489 // 7.3.40 Host Number Of Completed Packets Command 490 #define HCI_HOST_NUMBER_OF_COMPLETED_PACKETS MAKE_OPCODE(0x0035, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 491 492 typedef struct { 493 uint8_t numberOfHandles; 494 uint8_t *connectionHandle; 495 uint8_t *hostNumOfCompletedPackets; 496 } HciHostNumberOfCompletedPacketsParam; 497 498 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 499 // 7.3.41 Read Link Supervision Timeout Command 500 #define HCI_READ_LINK_SUPERVISION_TIMEOUT MAKE_OPCODE(0x0036, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 501 502 typedef struct { 503 uint16_t handle; 504 } HciReadLinkSupervisionTimeoutParam; 505 506 typedef struct { 507 uint8_t status; 508 uint16_t handle; 509 uint16_t linkSupervisionTimeout; 510 } HciReadLinkSupervisionTimeoutReturnParam; 511 512 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 513 // 7.3.42 Write Link Supervision Timeout Command 514 #define HCI_WRITE_LINK_SUPERVISION_TIMEOUT MAKE_OPCODE(0x0037, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 515 516 typedef struct { 517 uint16_t handle; 518 uint16_t linkSupervisionTimeout; 519 } HciWriteLinkSupervisionTimeoutParam; 520 521 typedef struct { 522 uint8_t status; 523 uint16_t handle; 524 } HciWriteLinkSupervisionTimeoutReturnParam; 525 526 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 527 // 7.3.43 Read Number Of Supported IAC Command 528 #define HCI_READ_NUMBER_OF_SUPPORTED_IAC MAKE_OPCODE(0x0038, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 529 530 typedef struct { 531 uint8_t status; 532 uint8_t numSupportIac; 533 } HciReadNumberOfSupportedIacReturnParam; 534 535 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 536 // 7.3.44 Read Current IAC LAP Command 537 #define HCI_READ_CURRENT_IAC_LAP MAKE_OPCODE(0x0039, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 538 539 typedef struct { 540 uint8_t status; 541 uint8_t numCurrentIAC; 542 uint32_t *iacLAP; 543 } HciReadCurrentIacLapReturnParam; 544 545 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 546 // 7.3.45 Write Current IAC LAP Command 547 #define HCI_WRITE_CURRENT_IAC_LAP MAKE_OPCODE(0x003A, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 548 549 #define IACLAP_SIZE 3 550 551 typedef struct { 552 uint8_t numCurrentIAC; 553 uint32_t *iacLAP; 554 } HciWriteCurrentIacLapParam; 555 556 typedef HciStatusParam HciWriteCurrentIacLapReturnParam; 557 558 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 559 // 7.3.46 Set AFH Host Channel Classification Command 560 #define HCI_SET_AFH_HOST_CHANNEL_CLASSIFICATION MAKE_OPCODE(0x003F, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 561 562 typedef struct { 563 uint8_t afhHostChannelClassification[10]; 564 } HciSetAfhHostChannelClassificationParam; 565 566 typedef HciStatusParam HciSetAfhHostChannelClassificationReturnParam; 567 568 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 569 // 7.3.47 Read Inquiry Scan Type Command 570 #define HCI_READ_INQUIRY_SCAN_TYPE MAKE_OPCODE(0x0042, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 571 572 typedef struct { 573 uint8_t status; 574 uint8_t inquiryScanType; 575 } HciReadInquiryScanTypeReturnParam; 576 577 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 578 // 7.3.48 Write Inquiry Scan Type Command 579 #define HCI_WRITE_INQUIRY_SCAN_TYPE MAKE_OPCODE(0x0043, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 580 581 typedef struct { 582 uint8_t scanType; 583 } HciWriteInquiryScanTypeParam; 584 585 typedef HciStatusParam HciWriteInquiryScanTypeReturnParam; 586 587 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 588 // 7.3.49 Read Inquiry Mode Command 589 #define HCI_READ_INQUIRY_MODE MAKE_OPCODE(0x0044, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 590 591 typedef struct { 592 uint8_t status; 593 uint8_t inquiryMode; 594 } HciReadInquiryModeReturnParam; 595 596 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 597 // 7.3.50 Write Inquiry Mode Command 598 #define HCI_WRITE_INQUIRY_MODE MAKE_OPCODE(0x0045, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 599 600 #define HCI_INQUIRY_MODE_STANDARD 0x00 601 #define HCI_INQUIRY_MODE_RSSI 0x01 602 #define HCI_INQUIRY_MODE_EIR 0x02 603 604 typedef struct { 605 uint8_t inquiryMode; 606 } HciWriteInquiryModeParam; 607 608 typedef HciStatusParam HciWriteInquiryModeReturnParam; 609 610 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 611 // 7.3.51 Read Page Scan Type Command 612 #define HCI_READ_PAGE_SCAN_TYPE MAKE_OPCODE(0x0046, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 613 614 typedef struct { 615 uint8_t status; 616 uint8_t pageScanType; 617 } HciReadPageScanTypeReturnParam; 618 619 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 620 // 7.3.52 Write Page Scan Type Command 621 #define HCI_WRITE_PAGE_SCAN_TYPE MAKE_OPCODE(0x0047, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 622 623 typedef struct { 624 uint8_t pageScanType; 625 } HciWritePageScanTypeParam; 626 627 typedef HciStatusParam HciWritePageScanTypeReturnParam; 628 629 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 630 // 7.3.53 Read AFH Channel Assessment Mode Command 631 #define HCI_READ_AFH_CHANNEL_ASSESSMENT_MODE MAKE_OPCODE(0x0048, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 632 633 typedef struct { 634 uint8_t status; 635 uint8_t afhChannelAssessmentMode; 636 } HciReadAfhChannelAssessmentModeReturnParam; 637 638 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 639 // 7.3.54 Write AFH Channel Assessment Mode Command 640 #define HCI_WRITE_AFH_CHANNEL_ASSESSMENT_MODE MAKE_OPCODE(0x0049, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 641 642 typedef struct { 643 uint8_t afhChannelAssessmentMode; 644 } HciWriteAfhChannelAssessmentModeParam; 645 646 typedef HciStatusParam HciWriteAfhChannelAssessmentModeReturnParam; 647 648 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 649 // 7.3.55 Read Extended Inquiry Response Command 650 #define HCI_READ_EXTENDED_INQUIRY_RESPONSE MAKE_OPCODE(0x0051, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 651 652 typedef struct { 653 uint8_t status; 654 uint8_t fecRequired; 655 uint16_t extendedInquiryResponse[120]; 656 } HciReadExtendedInquiryResponseReturnParam; 657 658 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 659 // 7.3.56 Write Extended Inquiry Response Command 660 #define HCI_WRITE_EXTENDED_INQUIRY_RESPONSE MAKE_OPCODE(0x0052, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 661 662 typedef struct { 663 uint8_t fecRequired; 664 uint8_t extendInquiryRes[240]; 665 } HciWriteExtendedInquiryResponseParam; 666 667 typedef HciStatusParam HciWriteExtendedInquiryResponseReturnParam; 668 669 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 670 // 7.3.57 Refresh Encryption Key Command 671 #define HCI_REFRESH_ENCRYPTION_KEY MAKE_OPCODE(0x0053, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 672 673 typedef struct { 674 uint16_t connectionHandle; 675 } HciRefreshEncryptionKeyParam; 676 677 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 678 // 7.3.58 Read Simple Pairing Mode Command 679 #define HCI_READ_SIMPLE_PAIRING_MODE MAKE_OPCODE(0x0055, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 680 681 typedef struct { 682 uint8_t status; 683 uint8_t simplePairingMode; 684 } HciReadSimplePairingModeReturnParam; 685 686 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 687 // 7.3.59 Write Simple Pairing Mode Command 688 #define HCI_WRITE_SIMPLE_PAIRING_MODE MAKE_OPCODE(0x0056, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 689 690 #define SIMPLE_PAIRING_DISABLED 0x00 691 #define SIMPLE_PAIRING_ENABLED 0x01 692 693 typedef struct { 694 uint8_t simplePairingMode; 695 } HciWriteSimplePairingModeParam; 696 697 typedef HciStatusParam HciWriteSimplePairingModeReturnParam; 698 699 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 700 // 7.3.60 Read Local OOB Data Command 701 #define HCI_READ_LOCAL_OOB_DATA MAKE_OPCODE(0x0057, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 702 703 typedef struct { 704 uint8_t status; 705 uint8_t C[16]; 706 uint8_t R[16]; 707 } HciReadLocalOOBDataReturnParam; 708 709 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 710 // 7.3.61 Read Inquiry Response Transmit Power Level Command 711 #define HCI_READ_INQUIRY_RESPONSE_TRANSMIT_POWER_LEVEL MAKE_OPCODE(0x0058, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 712 713 typedef struct { 714 uint8_t status; 715 uint8_t txPower; 716 } HciReadInquiryResponseTransmitPowerLevelReturnParam; 717 718 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 719 // 7.3.62 Write Inquiry Transmit Power Level Command 720 #define HCI_WRITE_INQUIRY_TRANSMIT_POWER_LEVEL MAKE_OPCODE(0x0059, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 721 722 typedef struct { 723 uint8_t txPower; 724 } HciWriteInquiryTransmitPowerLevelParam; 725 726 typedef HciStatusParam HciWriteInquiryTransmitPowerLevelReturnParam; 727 728 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 729 // 7.3.63 Send Keypress Notification Command 730 #define HCI_SEND_KEY_PRESS_NOTIFICATION MAKE_OPCODE(0x0060, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 731 732 typedef struct { 733 HciBdAddr bdAddr; 734 uint8_t notificationType; 735 } HciSendKeypressNotificationParam; 736 737 typedef struct { 738 uint8_t status; 739 HciBdAddr bdAddr; 740 } HciSendKeypressNotificationReturnParam; 741 742 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 743 // 7.3.64 Read Default Erroneous Data Reporting Command 744 #define HCI_READ_DEFAULT_ERRONEOUS_DATA_REPORTING MAKE_OPCODE(0x005A, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 745 746 typedef struct { 747 uint8_t status; 748 uint8_t erroneousDataReporting; 749 } HciReadDefaultErroneousDataReportingReturnParam; 750 751 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 752 // 7.3.65 Write Default Erroneous Data Reporting Command 753 #define HCI_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING MAKE_OPCODE(0x005B, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 754 755 typedef struct { 756 uint8_t erroneousDataReporting; 757 } HciWriteDefaultErroneousDataReportingParam; 758 759 typedef HciStatusParam HciWriteDefaultErroneousDataReportingReturnParam; 760 761 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 762 // 7.3.66 Enhanced Flush Command 763 #define HCI_ENHANCED_FLUSH MAKE_OPCODE(0x005F, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 764 765 typedef struct { 766 uint16_t handle; 767 uint8_t packetType; 768 } HciEnhancedFlushParam; 769 770 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 771 // 7.3.67 Read Logical Link Accept Timeout Command 772 #define HCI_READ_LOGICAL_LINK_ACCEPT_TIMEOUT MAKE_OPCODE(0x0061, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 773 774 typedef struct { 775 uint8_t status; 776 uint16_t logicalLinkAcceptTimeout; 777 } HciReadLogicalLinkAcceptTimeoutReturnParam; 778 779 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 780 // 7.3.68 Write Logical Link Accept Timeout Command 781 #define HCI_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT MAKE_OPCODE(0x0062, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 782 783 typedef struct { 784 uint16_t logicalLinkAcceptTimeout; 785 } HciWriteLogicalLinkAcceptTimeoutParam; 786 787 typedef HciStatusParam HciWriteLogicalLinkAcceptTimeoutReturnParam; 788 789 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 790 // 7.3.69 Set Event Mask Page 2 Command 791 #define HCI_SET_EVENT_MASK_PAGE_2 MAKE_OPCODE(0x0063, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 792 793 typedef struct { 794 uint64_t eventMaskPage2; 795 } HciSetEventMaskPage2Param; 796 797 typedef HciStatusParam HciSetEventMaskPage2ReturnParam; 798 799 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 800 // 7.3.70 Read Location Data Command 801 #define HCI_READ_LOCATION_DATA MAKE_OPCODE(0x0064, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 802 803 typedef struct { 804 uint8_t status; 805 uint8_t locationDomainAware; 806 uint16_t locationDomain; 807 uint8_t locationOptions; 808 uint8_t locationDomainOptions; 809 } HciReadLocationDataReturnParam; 810 811 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 812 // 7.3.71 Write Location Data Command 813 #define HCI_WRITE_LOCATION_DATA MAKE_OPCODE(0x0065, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 814 815 typedef struct { 816 uint8_t locationDomainAware; 817 uint16_t locationDomain; 818 uint8_t locationOptions; 819 uint8_t locationDomainOptions; 820 } HciWriteLocationDataParam; 821 822 typedef HciStatusParam HciWriteLocationDataReturnParam; 823 824 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 825 // 7.3.72 Read Flow Control Mode Command 826 #define HCI_READ_FLOW_CONTROL_MODE MAKE_OPCODE(0x0066, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 827 828 typedef struct { 829 uint8_t status; 830 uint8_t flowControlMode; 831 } HciReadFlowControlModeReturnParam; 832 833 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 834 // 7.3.73 Write Flow Control Mode Command 835 #define HCI_WRITE_FLOW_CONTROL_MODE MAKE_OPCODE(0x0067, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 836 837 typedef struct { 838 uint8_t flowControlMode; 839 } HciWriteFlowControlModeParam; 840 841 typedef HciStatusParam HciWriteFlowControlModeReturnParam; 842 843 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 844 // 7.3.74 Read Enhanced Transmit Power Level Command 845 #define HCI_READ_ENHANCED_TRANSMIT_POWER_LEVEL MAKE_OPCODE(0x0068, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 846 847 typedef struct { 848 uint16_t connectionHandle; 849 uint8_t type; 850 } HciReadEnhancedTransmitPowerLevelParam; 851 852 typedef struct { 853 uint8_t status; 854 uint16_t connectionHandle; 855 uint8_t transmitPowerLevelGFSK; 856 uint8_t transmitPowerLevelDQPSK; 857 uint8_t transmitPowerLevel8DPSK; 858 } HciReadEnhancedTransmitPowerLevelReturnParam; 859 860 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 861 // 7.3.75 Read Best Effort Flush Timeout Command 862 #define HCI_READ_BEST_EFFORT_FLUSH_TIMEOUT MAKE_OPCODE(0x0069, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 863 864 typedef struct { 865 uint16_t logicalLinkHandle; 866 } HciReadBestEffortFlushTimeoutParam; 867 868 typedef struct { 869 uint8_t status; 870 uint32_t bestEffortFlushTimeout; 871 } HciReadBestEffortFlushTimeoutReturnParam; 872 873 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 874 // 7.3.76 Write Best Effort Flush Timeout Command 875 #define HCI_WRITE_BEST_EFFORT_FLUSH_TIMEOUT MAKE_OPCODE(0x006A, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 876 877 typedef struct { 878 uint16_t logicalLinkHandle; 879 uint32_t bestEffortFlushTimeout; 880 } HciWriteBestEffortFlushTimeoutParam; 881 882 typedef HciStatusParam HciWriteBestEffortFlushTimeoutReturnParam; 883 884 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 885 // 7.3.77 Short Range Mode Command 886 #define HCI_SHORT_RANGE_MODE MAKE_OPCODE(0x006B, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 887 888 typedef struct { 889 uint8_t physicalLinkHandle; 890 uint8_t shortRangeMode; 891 } HciShortRangeModeParam; 892 893 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 894 // 7.3.78 Read LE Host Support Command 895 #define HCI_READ_LE_HOST_SUPPORT MAKE_OPCODE(0x006C, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 896 897 typedef struct { 898 uint8_t status; 899 uint8_t leSupportedHost; 900 uint8_t simultaneousLEHost; 901 } HciReadLeHostSupportReturnParam; 902 903 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 904 // 7.3.79 Write LE Host Support Command 905 #define HCI_WRITE_LE_HOST_SUPPORT MAKE_OPCODE(0x006D, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 906 907 #define HCI_LE_SUPPORTED_HOST_DISABLED 0x00 908 #define HCI_LE_SUPPORTED_HOST_ENABLED 0x01 909 910 #define HCI_SIMULTANEOUS_LE_HOST_DISABLED 0x00 911 912 typedef struct { 913 uint8_t leSupportedHost; 914 uint8_t simultaneousLeHost; 915 } HciWriteLeHostSupportParam; 916 917 typedef HciStatusParam HciWriteLeHostSupportReturnParam; 918 919 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 920 // 7.3.80 Set MWS Channel Parameters Command 921 #define HCI_SET_MWS_CHANNEL_PARAMETERS MAKE_OPCODE(0x006E, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 922 923 typedef struct { 924 uint8_t mwsChannelEnable; 925 uint16_t mwsRXCenterFrequency; 926 uint16_t mwsTXCenterFrequency; 927 uint16_t mwsRXChannelBandwidth; 928 uint16_t mwsTXChannelBandwidth; 929 uint8_t mwsChannelType; 930 } HciSetMwsChannelParametersParam; 931 932 typedef HciStatusParam HciSetMwsChannelParametersReturnParam; 933 934 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 935 // 7.3.81 Set External Frame Configuration Command 936 #define HCI_SET_EXTERNAL_FRAME_CONFIGURATION MAKE_OPCODE(0x006F, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 937 938 typedef struct { 939 uint16_t extFrameDuration; 940 uint16_t extFrameSyncAssertOffset; 941 uint16_t extFrameSyncAssertJitter; 942 uint8_t extNumPeriods; 943 uint16_t *periodDuration; 944 uint8_t *periodType; 945 } HciSetExternalFrameConfigurationParam; 946 947 typedef HciStatusParam HciSetExternalFrameConfigurationReturnParam; 948 949 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 950 // 7.3.82 Set MWS Signaling Command 951 #define HCI_SET_MWS_SIGNALING MAKE_OPCODE(0x0070, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 952 953 typedef struct { 954 uint16_t mwsRXAssertOffset; 955 uint16_t mwsRXAssertJitter; 956 uint16_t mwsRXDeassertOffset; 957 uint16_t mwsRXDeassertJitter; 958 uint16_t mwsTXAssertOffset; 959 uint16_t mwsTXAssertJitter; 960 uint16_t mwsTXDeassertOffset; 961 uint16_t mwsTXDeassertJitter; 962 uint16_t mwsPatternAssertOffset; 963 uint16_t mwsPatternAssertJitter; 964 uint16_t mwsInactivityDurationAssertOffset; 965 uint16_t mwsInactivityDurationAssertJitter; 966 uint16_t mwsScanFrequencyAssertOffset; 967 uint16_t mwsScanFrequencyAssertJitter; 968 uint16_t mwsPriorityAssertOffsetRequest; 969 } HciSetMwsSignalingParam; 970 971 typedef struct { 972 uint8_t status; 973 uint16_t bluetoothRxPriorityAssertOffset; 974 uint16_t bluetoothRxPriorityAssertJitter; 975 uint16_t bluetoothRxPriorityDeassertOffset; 976 uint16_t bluetoothRxPriorityDeassertJitter; 977 uint16_t rxPriorityAssertOffset; 978 uint16_t rxPriorityAssertJitter; 979 uint16_t rxPriorityDeassert_Offset; 980 uint16_t rxPriorityDeassertJitter; 981 uint16_t bluetoothTxOnAssertOffset; 982 uint16_t bluetoothTxOnAssertJitter; 983 uint16_t bluetoothTxOnDeassertOffset; 984 uint16_t bluetoothTxOnDeassertJitter; 985 uint16_t txOnAssertOffset; 986 uint16_t txOnAssertJitter; 987 uint16_t txOnDeassertOffset; 988 uint16_t txOnDeassertJitter; 989 } HciSetMwsSignalingReturnParam; 990 991 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 992 // 7.3.83 Set MWS Transport Layer Command 993 #define HCI_SET_MWS_TRANSPORT_LAYER MAKE_OPCODE(0x0071, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 994 995 typedef struct { 996 uint8_t transportLayer; 997 uint32_t toMwsBaudRate; 998 uint32_t fromMwsBaudRate; 999 } HciSetMwsTransportLayerParam; 1000 1001 typedef HciStatusParam HciSetMwsTransportLayerReturnParam; 1002 1003 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 1004 // 7.3.84 Set MWS Scan Frequency Table Command 1005 #define HCI_SET_MWS_SCAN_FREQUENCY_TABLE MAKE_OPCODE(0x0072, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 1006 1007 typedef struct { 1008 uint8_t numScanFrequencies; 1009 uint16_t *scanFrequencyLow; 1010 uint16_t *scanFrequencyHigh; 1011 } HciSetMwsScanFrequencyTableParam; 1012 1013 typedef HciStatusParam HciSetMwsScanFrequencyTableReturnParam; 1014 1015 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 1016 // 7.3.85 Set MWS_PATTERN Configuration Command 1017 #define HCI_SET_MWS_PATTERN_CONFIGURATION MAKE_OPCODE(0x0073, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 1018 1019 typedef struct { 1020 uint8_t mwsPatternIndex; 1021 uint8_t mwsPatternNumIntervals; 1022 uint16_t *mwsPatternIntervalDuration; 1023 uint8_t *mwsPatternIntervalType; 1024 } HciSetMwsPatternConfigurationParam; 1025 1026 typedef HciStatusParam HciSetMwsPatternConfigurationReturnParam; 1027 1028 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 1029 // 7.3.86 Set Reserved LT_ADDR Command 1030 #define HCI_SET_RESERVED_LT_ADDR MAKE_OPCODE(0x0074, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 1031 1032 typedef struct { 1033 uint8_t ltAddr; 1034 } HciSetReservedLtAddrParam; 1035 1036 typedef struct { 1037 uint8_t status; 1038 uint8_t ltAddr; 1039 } HciSetReservedLtAddrReturnParam; 1040 1041 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 1042 // 7.3.87 Delete Reserved LT_ADDR Command 1043 #define HCI_DELETE_RESERVED_LT_ADDR MAKE_OPCODE(0x0075, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 1044 1045 typedef struct { 1046 uint8_t ltAddr; 1047 } HciDeleteReservedLtAddrParam; 1048 1049 typedef struct { 1050 uint8_t status; 1051 uint8_t ltAddr; 1052 } HciDeleteReservedLtAddrReturnParam; 1053 1054 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 1055 // 7.3.88 Set Connectionless Slave Broadcast Data Command 1056 #define HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST_DATA MAKE_OPCODE(0x0076, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 1057 1058 typedef struct { 1059 uint8_t ltAddr; 1060 uint8_t fragment; 1061 uint8_t dataLength; 1062 uint8_t *data; 1063 } HciSetConnectionlessSlaveBroadcastDataParam; 1064 1065 typedef struct { 1066 uint8_t status; 1067 uint8_t ltAddr; 1068 } HciSetConnectionlessSlaveBroadcastDataReturnParam; 1069 1070 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 1071 // 7.3.89 Read Synchronization Train Parameters Command 1072 #define HCI_READ_SYNCHRONIZATION_TRAIN_PARAMETERS MAKE_OPCODE(0x0077, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 1073 1074 typedef struct { 1075 uint8_t status; 1076 uint16_t syncTrainInterval; 1077 uint32_t synchronizationtrainTO; 1078 uint8_t serviceData; 1079 } HciReadSynchronizationTrainParametersReturnParam; 1080 1081 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 1082 // 7.3.90 Write Synchronization Train Parameters Command 1083 #define HCI_WRITE_SYNCHRONIZATION_TRAIN_PARAMETERS MAKE_OPCODE(0x0078, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 1084 1085 typedef struct { 1086 uint16_t intervalMin; 1087 uint16_t intervalMax; 1088 uint32_t synchronizationtrainTO; 1089 uint8_t serviceData; 1090 } HciWriteSynchronizationTrainParametersParam; 1091 1092 typedef struct { 1093 uint8_t status; 1094 uint8_t syncTrainInterval; 1095 } HciWriteSynchronizationTrainParametersReturnParam; 1096 1097 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 1098 // 7.3.91 Read Secure Connections Host Support Command 1099 #define HCI_READ_SECURE_CONNECTIONS_HOST_SUPPORT MAKE_OPCODE(0x0079, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 1100 1101 typedef struct { 1102 uint8_t status; 1103 uint8_t secureConnectionsHostSupport; 1104 } HciReadSecureConnectionsHostSupportReturnParam; 1105 1106 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 1107 // 7.3.92 Write Secure Connections Host Support Command 1108 #define HCI_WRITE_SECURE_CONNECTIONS_HOST_SUPPORT MAKE_OPCODE(0x007A, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 1109 1110 #define HCI_SECURE_CONNECTIONS_HOST_SUPPORT_DISABLED 0x00 1111 #define HCI_SECURE_CONNECTIONS_HOST_SUPPORT_ENABLED 0x01 1112 1113 typedef struct { 1114 uint8_t secureConnectionsHostSupport; 1115 } HciWriteSecureConnectionsHostSupportParam; 1116 1117 typedef HciStatusParam HciWriteSecureConnectionsHostSupportReturnParam; 1118 1119 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 1120 // 7.3.93 Read Authenticated Payload Timeout Command 1121 #define HCI_READ_AUTHENTICATED_PAYLOAD_TIMEOUT MAKE_OPCODE(0x007B, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 1122 1123 typedef struct { 1124 uint16_t connectionHandle; 1125 } HciReadAuthenticatedPayloadTimeoutParam; 1126 1127 typedef struct { 1128 uint8_t status; 1129 uint32_t connectionHandle; 1130 uint16_t authenticatedPayloadTimeout; 1131 } HciReadAuthenticatedPayloadTimeoutReturnParam; 1132 1133 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 1134 // 7.3.94 Write Authenticated Payload Timeout Command 1135 #define HCI_WRITE_AUTHENTICATED_PAYLOAD_TIMEOUT MAKE_OPCODE(0x007C, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 1136 1137 typedef struct { 1138 uint16_t connectionHandle; 1139 uint16_t authenticatedPayloadTimeout; 1140 } HciWriteAuthenticatedPayloadTimeoutParam; 1141 1142 typedef struct { 1143 uint8_t status; 1144 uint16_t connectionHandle; 1145 } HciWriteAuthenticatedPayloadTimeoutReturnParam; 1146 1147 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 1148 // 7.3.95 Read Local OOB Extended Data Command 1149 #define HCI_READ_LOCAL_OOB_EXTENDED_DATA MAKE_OPCODE(0x007D, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 1150 1151 typedef struct { 1152 uint8_t status; 1153 uint8_t c192[16]; 1154 uint8_t r192[16]; 1155 uint8_t c256[16]; 1156 uint8_t r256[16]; 1157 } HciReadLocalOobExtendedDataReturnParam; 1158 1159 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 1160 // 7.3.96 Read Extended Page Timeout Command 1161 #define HCI_READ_EXTENDED_PAGE_TIMEOUT MAKE_OPCODE(0x007E, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 1162 1163 typedef struct { 1164 uint8_t status; 1165 uint16_t extendedPageTimeout; 1166 } HciReadExtendedPageTimeoutReturnParam; 1167 1168 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 1169 // 7.3.97 Write Extended Page Timeout Command 1170 #define HCI_WRITE_EXTENDED_PAGE_TIMEOUT MAKE_OPCODE(0x007F, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 1171 1172 typedef struct { 1173 uint16_t extendedPageTimeout; 1174 } HciWriteExtendedPageTimeoutParam; 1175 1176 typedef HciStatusParam HciWriteExtendedPageTimeoutReturnParam; 1177 1178 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 1179 // 7.3.98 Read Extended Inquiry Length Command 1180 #define HCI_READ_EXTENDED_INQUIRY_LENGTH MAKE_OPCODE(0x0080, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 1181 1182 typedef struct { 1183 uint8_t status; 1184 uint16_t extendedInquiryLength; 1185 } HciReadExtendedInquiryLengthReturnParam; 1186 1187 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 1188 // 7.3.99 Write Extended Inquiry Length Command 1189 #define HCI_WRITE_EXTENDED_INQUIRY_LENGTH MAKE_OPCODE(0x0081, HCI_COMMAND_OGF_CONTTOLLER_AND_BASEBAND) 1190 1191 typedef struct { 1192 uint16_t extendedInquiryLength; 1193 } HciWriteExtendedInquiryLengthParam; 1194 1195 typedef HciStatusParam HciWriteExtendedInquiryLengthReturnParam; 1196 1197 #pragma pack(0) 1198 1199 #ifdef __cplusplus 1200 } 1201 #endif 1202 1203 #endif