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_LE_CMD_H 17 #define HCI_DEF_LE_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.8 LE CONTROLLER COMMANDS 31 #define HCI_COMMAND_OGF_LE_CONTROLLER 0x08 32 33 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 34 // 7.8.1 LE Set Event Mask Command 35 #define HCI_LE_SET_EVENT_MASK MAKE_OPCODE(0x0001, HCI_COMMAND_OGF_LE_CONTROLLER) 36 37 #define LE_EVENT_MASK_LE_CONNECTION_COMPLETE_EVENT 0x0000000000000001 38 #define LE_EVENT_MASK_LE_ADVERTISING_REPORT_EVENT 0x0000000000000002 39 #define LE_EVENT_MASK_LE_CONNECTION_UPDATE_COMPLETE_EVENT 0x0000000000000004 40 #define LE_EVENT_MASK_LE_READ_REMOTE_FEATURES_COMPLETE_EVENT 0x0000000000000008 41 #define LE_EVENT_MASK_LE_LONG_TERM_KEY_REQUEST_EVENT 0x0000000000000010 42 #define LE_EVENT_MASK_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_EVENT 0x0000000000000020 43 #define LE_EVENT_MASK_LE_DATA_LENGTH_CHANGE_EVENT 0x0000000000000040 44 #define LE_EVENT_MASK_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE_EVENT 0x0000000000000080 45 #define LE_EVENT_MASK_LE_GENERATE_DHKEY_COMPLETE_EVENT 0x0000000000000100 46 #define LE_EVENT_MASK_LE_ENHANCED_CONNECTION_COMPLETE_EVENT 0x0000000000000200 47 #define LE_EVENT_MASK_LE_DIRECTED_ADVERTISING_REPORT_EVENT 0x0000000000000400 48 #define LE_EVENT_MASK_LE_PHY_UPDATE_COMPLETE_EVENT 0x0000000000000800 49 #define LE_EVENT_MASK_LE_EXTENDED_ADVERTISING_REPORT_EVENT 0x0000000000001000 50 #define LE_EVENT_MASK_LE_PERIODIC_ADVERTISING_SYNC_ESTABLISHED_EVENT 0x0000000000002000 51 #define LE_EVENT_MASK_LE_PERIODIC_ADVERTISING_REPORT_EVENT 0x0000000000004000 52 #define LE_EVENT_MASK_LE_PERIODIC_ADVERTISING_SYNC_LOST_EVENT 0x0000000000008000 53 #define LE_EVENT_MASK_LE_EXTENDED_SCAN_TIMEOUT_EVENT 0x0000000000010000 54 #define LE_EVENT_MASK_LE_EXTENDED_ADVERTISING_SET_TERMINATED_EVENT 0x0000000000020000 55 #define LE_EVENT_MASK_LE_SCAN_REQUEST_RECEIVED_EVENT 0x0000000000040000 56 #define LE_EVENT_MASK_LE_CHANNEL_SELECTION_ALGORITHM_EVENT 0x0000000000080000 57 58 #define LE_EVENT_MASK_DEFAULT 0x000000000000001F 59 60 #define LE_EVENT_MASK_CORE_4_0 LE_EVENT_MASK_DEFAULT 61 62 #define LE_EVENT_MASK_CORE_4_1 (LE_EVENT_MASK_CORE_4_0 | LE_EVENT_MASK_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_EVENT) 63 64 #define LE_EVENT_MASK_CORE_4_2 \ 65 (LE_EVENT_MASK_CORE_4_1 | LE_EVENT_MASK_LE_DATA_LENGTH_CHANGE_EVENT | \ 66 LE_EVENT_MASK_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE_EVENT | LE_EVENT_MASK_LE_GENERATE_DHKEY_COMPLETE_EVENT | \ 67 LE_EVENT_MASK_LE_ENHANCED_CONNECTION_COMPLETE_EVENT | LE_EVENT_MASK_LE_DIRECTED_ADVERTISING_REPORT_EVENT) 68 69 #define LE_EVENT_MASK_CORE_5_0 \ 70 (LE_EVENT_MASK_CORE_4_2 | LE_EVENT_MASK_LE_PHY_UPDATE_COMPLETE_EVENT | \ 71 LE_EVENT_MASK_LE_EXTENDED_ADVERTISING_REPORT_EVENT | \ 72 LE_EVENT_MASK_LE_PERIODIC_ADVERTISING_SYNC_ESTABLISHED_EVENT | \ 73 LE_EVENT_MASK_LE_PERIODIC_ADVERTISING_REPORT_EVENT | LE_EVENT_MASK_LE_PERIODIC_ADVERTISING_SYNC_LOST_EVENT | \ 74 LE_EVENT_MASK_LE_EXTENDED_SCAN_TIMEOUT_EVENT | LE_EVENT_MASK_LE_EXTENDED_ADVERTISING_SET_TERMINATED_EVENT | \ 75 LE_EVENT_MASK_LE_SCAN_REQUEST_RECEIVED_EVENT | LE_EVENT_MASK_LE_CHANNEL_SELECTION_ALGORITHM_EVENT) 76 77 typedef struct { 78 uint64_t leEventMask; 79 } HciLeSetEventMaskParam; 80 81 typedef HciStatusParam HciLeSetEventMaskReturnParam; 82 83 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 84 // 7.8.2 LE Read Buffer Size Command 85 #define HCI_LE_READ_BUFFER_SIZE MAKE_OPCODE(0x0002, HCI_COMMAND_OGF_LE_CONTROLLER) 86 87 typedef struct { 88 uint8_t status; 89 uint16_t hcLeAclDataPacketLength; 90 uint8_t hcTotalNumLeDataPackets; 91 } HciLeReadBufferSizeReturnParam; 92 93 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 94 // 7.8.3 LE Read Local Supported Features Command 95 #define HCI_LE_READ_LOCAL_SUPPORTED_FEATURES MAKE_OPCODE(0x0003, HCI_COMMAND_OGF_LE_CONTROLLER) 96 97 typedef struct { 98 uint8_t status; 99 HciLeFeatures leFeatures; 100 } HciLeReadLocalSupportedFeaturesReturnParam; 101 102 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 103 // 7.8.4 LE Set Random Address Command 104 #define HCI_LE_SET_RANDOM_ADDRESS MAKE_OPCODE(0x0005, HCI_COMMAND_OGF_LE_CONTROLLER) 105 106 typedef struct { 107 uint8_t randomAddess[6]; 108 } HciLeSetRandomAddressParam; 109 110 typedef HciStatusParam HciLeSetRandomAddressReturnParam; 111 112 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 113 // 7.8.5 LE Set Advertising Parameters Command 114 #define HCI_LE_SET_ADVERTISING_PARAMETERS MAKE_OPCODE(0x0006, HCI_COMMAND_OGF_LE_CONTROLLER) 115 116 typedef struct { 117 uint16_t advertisingIntervalMin; 118 uint16_t advertisingIntervalMax; 119 uint8_t advertisingType; 120 uint8_t ownAddressType; 121 uint8_t peerAddressType; 122 HciBdAddr peerAddress; 123 uint8_t advertisingChannelMap; 124 uint8_t advertisingFilterPolicy; 125 } HciLeSetAdvertisingParametersParam; 126 127 typedef HciStatusParam HciLeSetAdvertisingParametersReturnParam; 128 129 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 130 // 7.8.6 LE Read Advertising Channel Tx Power Command 131 #define HCI_LE_READ_ADVERTISING_CHANNEL_TX_POWER MAKE_OPCODE(0x0007, HCI_COMMAND_OGF_LE_CONTROLLER) 132 133 typedef struct { 134 uint8_t status; 135 uint8_t transmitPowerLevel; 136 } HciLeReadAdvertisingChannelTxPowerReturnParam; 137 138 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 139 // 7.8.7 LE Set Advertising Data Command 140 #define HCI_LE_SET_ADVERTISING_DATA MAKE_OPCODE(0x0008, HCI_COMMAND_OGF_LE_CONTROLLER) 141 142 typedef struct { 143 uint8_t advertisingDataLen; 144 uint8_t advertisingData[31]; 145 } HciLeSetAdvertisingDataParam; 146 147 typedef HciStatusParam HciLeSetAdvertisingDataReturnParam; 148 149 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 150 // 7.8.8 LE Set Scan Response Data Command 151 #define HCI_LE_SET_SCAN_RESPONSE_DATA MAKE_OPCODE(0x0009, HCI_COMMAND_OGF_LE_CONTROLLER) 152 153 typedef struct { 154 uint8_t scanResponseDataLength; 155 uint8_t scanResponseData[31]; 156 } HciLeSetScanResponseDataParam; 157 158 typedef HciStatusParam HciLeSetScanResponseDataReturnParam; 159 160 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 161 // 7.8.9 LE Set Advertising Enable Command 162 #define HCI_LE_SET_ADVERTISING_ENABLE MAKE_OPCODE(0x000A, HCI_COMMAND_OGF_LE_CONTROLLER) 163 164 typedef struct { 165 uint8_t advertisingEnable; 166 } HciLeSetAdvertisingEnableParam; 167 168 typedef HciStatusParam HciLeSetAdvertisingEnableReturnParam; 169 170 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 171 // 7.8.10 LE Set Scan Parameters Command 172 #define HCI_LE_SET_SCAN_PARAMETERS MAKE_OPCODE(0x000B, HCI_COMMAND_OGF_LE_CONTROLLER) 173 174 typedef struct { 175 uint8_t leScanType; 176 uint16_t leScanInterval; 177 uint16_t leScanWindow; 178 uint8_t ownAddressType; 179 uint8_t scanningFilterPolicy; 180 } HciLeSetScanParametersParam; 181 182 typedef HciStatusParam HciLeSetScanParametersReturnParam; 183 184 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 185 // 7.8.11 LE Set Scan Enable Command 186 #define HCI_LE_SET_SCAN_ENABLE MAKE_OPCODE(0x000C, HCI_COMMAND_OGF_LE_CONTROLLER) 187 188 typedef struct { 189 uint8_t leScanEnable; 190 uint8_t filterDuplicates; 191 } HciLeSetScanEnableParam; 192 193 typedef HciStatusParam HciLeSetScanEnableReturnParam; 194 195 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 196 // 7.8.12 LE Create Connection Command 197 #define HCI_LE_CREATE_CONNECTION MAKE_OPCODE(0x000D, HCI_COMMAND_OGF_LE_CONTROLLER) 198 199 #define INITIATOR_FILTER_NO_WHITE_LIST 0x00 200 #define INITIATOR_FILTER_USE_WHITE_LIST 0x01 201 202 #define PEER_ADDR_TYPE_PUBLIC 0x00 203 #define PEER_ADDR_TYPE_RANDOM 0x01 204 #define PEER_ADDR_TYPE_PUBLIC_IDENTITY 0x02 205 #define PEER_ADDR_TYPE_RANDOM_IDENTITY 0x03 206 207 #define LOCAL_ADDR_TYPE_PUBLIC 0x00 208 #define LOCAL_ADDR_TYPE_RANDOM 0x01 209 #define LOCAL_ADDR_TYPE_RPA_OR_PUBLIC 0x02 210 #define LOCAL_ADDR_TYPE_RPA_OR_RANDOM 0x03 211 212 typedef struct { 213 uint16_t leScanInterval; 214 uint16_t leScanWindow; 215 uint8_t initiatorFilterPolicy; 216 uint8_t peerAddressType; 217 HciBdAddr peerAddress; 218 uint8_t ownAddressType; 219 uint16_t connIntervalMin; 220 uint16_t connIntervalMax; 221 uint16_t connLatency; 222 uint16_t supervisionTimeout; 223 uint16_t minimumCELength; 224 uint16_t maximumCELength; 225 } HciLeCreateConnectionParam; 226 227 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 228 // 7.8.13 LE Create Connection Cancel Command 229 #define HCI_LE_CREATE_CONNECTION_CANCEL MAKE_OPCODE(0x000E, HCI_COMMAND_OGF_LE_CONTROLLER) 230 231 typedef HciStatusParam HciLeCreateConnectionCancelReturnParam; 232 233 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 234 // 7.8.14 LE Read WL Size Command 235 #define HCI_LE_READ_WHITE_LIST_SIZE MAKE_OPCODE(0x000F, HCI_COMMAND_OGF_LE_CONTROLLER) 236 237 typedef struct { 238 uint8_t status; 239 uint8_t whiteListSize; 240 } HciLeReadWhiteListSizeReturnParam; 241 242 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 243 // 7.8.15 LE Clear WL Command 244 #define HCI_LE_CLEAR_WHITE_LIST MAKE_OPCODE(0x0010, HCI_COMMAND_OGF_LE_CONTROLLER) 245 246 typedef HciStatusParam HciLeClearWhiteListReturnParam; 247 248 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 249 // 7.8.16 LE Add Device To WL Command 250 #define HCI_LE_ADD_DEVICE_TO_WHITE_LIST MAKE_OPCODE(0x0011, HCI_COMMAND_OGF_LE_CONTROLLER) 251 252 typedef struct { 253 uint8_t addressType; 254 HciBdAddr address; 255 } HciLeAddDeviceToWhiteListParam; 256 257 typedef HciStatusParam HciLeAddDeviceToWhiteListReturnParam; 258 259 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 260 // 7.8.17 LE Remove Device From WL Command 261 #define HCI_LE_REMOVE_DEVICE_FROM_WHITE_LIST MAKE_OPCODE(0x0012, HCI_COMMAND_OGF_LE_CONTROLLER) 262 263 typedef struct { 264 uint8_t addressType; 265 HciBdAddr address; 266 } HciLeRemoveDeviceFromWhiteListParam; 267 268 typedef HciStatusParam HciLeRemoveDeviceFromWhiteListReturnParam; 269 270 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 271 // 7.8.18 LE Connection Update Command 272 #define HCI_LE_CONNECTION_UPDATE MAKE_OPCODE(0x0013, HCI_COMMAND_OGF_LE_CONTROLLER) 273 274 typedef struct { 275 uint16_t connectionHandle; 276 uint16_t connIntervalMin; 277 uint16_t connIntervalMax; 278 uint16_t connLatency; 279 uint16_t supervisionTimeout; 280 uint16_t minimumCELength; 281 uint16_t maximumCELength; 282 } HciLeConnectionUpdateParam; 283 284 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 285 // 7.8.19 LE Set Host Channel Classification Command 286 #define HCI_LE_SET_HOST_CHANNEL_CLASSIFICATION MAKE_OPCODE(0x0014, HCI_COMMAND_OGF_LE_CONTROLLER) 287 288 typedef struct { 289 uint8_t channelMap[5]; 290 } HciLeSetHostChannelClassificationParam; 291 292 typedef HciStatusParam HciLeSetHostChannelClassificationReturnParam; 293 294 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 295 // 7.8.20 LE Read Channel Map Command 296 #define HCI_LE_READ_CHANNEL_MAP MAKE_OPCODE(0x0015, HCI_COMMAND_OGF_LE_CONTROLLER) 297 298 typedef struct { 299 uint16_t connectionHandle; 300 } HciLeReadChannelMapParam; 301 302 typedef struct { 303 uint8_t status; 304 uint16_t connectionHandle; 305 uint8_t channelMap[5]; 306 } HciLeReadChannelMapReturnParam; 307 308 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 309 // 7.8.21 LE Read Remote Features Command 310 #define HCI_LE_READ_REMOTE_FEATURES MAKE_OPCODE(0x0016, HCI_COMMAND_OGF_LE_CONTROLLER) 311 312 typedef struct { 313 uint16_t connectionHandle; 314 } HciLeReadRemoteFeaturesParam; 315 316 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 317 // 7.8.22 LE Encrypt Command 318 #define HCI_LE_ENCRYPT MAKE_OPCODE(0x0017, HCI_COMMAND_OGF_LE_CONTROLLER) 319 320 typedef struct { 321 uint8_t key[16]; 322 uint8_t plaintextData[16]; 323 } HciLeEncryptParam; 324 325 typedef struct { 326 uint8_t status; 327 uint8_t encryptedData[16]; 328 } HciLeEncryptReturnParam; 329 330 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 331 // 7.8.23 LE Rand Command 332 #define HCI_LE_RAND MAKE_OPCODE(0x0018, HCI_COMMAND_OGF_LE_CONTROLLER) 333 334 typedef struct { 335 uint8_t status; 336 uint8_t randomNumber[8]; 337 } HciLeRandReturnParam; 338 339 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 340 // 7.8.24 LE Start Encryption Command 341 #define HCI_LE_START_ENCRYPTION MAKE_OPCODE(0x0019, HCI_COMMAND_OGF_LE_CONTROLLER) 342 343 typedef struct { 344 uint16_t connectionHandle; 345 uint8_t randomNumber[8]; 346 uint16_t encryptDiversifier; 347 uint8_t longTermKey[16]; 348 } HciLeStartEncryptionParam; 349 350 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 351 // 7.8.25 LE Long Term Key Request Reply Command 352 #define HCI_LE_LONG_TERM_KEY_REQUEST_REPLY MAKE_OPCODE(0x001A, HCI_COMMAND_OGF_LE_CONTROLLER) 353 354 typedef struct { 355 uint16_t connectionHandle; 356 uint8_t longTermKey[16]; 357 } HciLeLongTermKeyRequestReplyParam; 358 359 typedef struct { 360 uint8_t status; 361 uint16_t connectionHandle; 362 } HciLeLongTermKeyRequestReplyReturnParam; 363 364 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 365 // 7.8.26 LE Long Term Key Request Negative Reply Command 366 #define HCI_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY MAKE_OPCODE(0x001B, HCI_COMMAND_OGF_LE_CONTROLLER) 367 368 typedef struct { 369 uint16_t connectionHandle; 370 } HciLeLongTermKeyRequestNegativeReplyParam; 371 372 typedef struct { 373 uint8_t status; 374 uint16_t connectionHandle; 375 } HciLeLongTermKeyRequestNegativeReplyReturnParam; 376 377 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 378 // 7.8.27 LE Read Supported States Command 379 #define HCI_LE_READ_SUPPORTED_STATES MAKE_OPCODE(0x001C, HCI_COMMAND_OGF_LE_CONTROLLER) 380 381 typedef struct { 382 uint8_t status; 383 uint64_t leStates; 384 } HciLeReadSupportedStatesReturnParam; 385 386 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 387 // 7.8.28 LE Receiver Test Command 388 #define HCI_LE_RECEIVER_TEST MAKE_OPCODE(0x001D, HCI_COMMAND_OGF_LE_CONTROLLER) 389 390 typedef struct { 391 uint8_t rxChannel; 392 } HciLeReceiverTestParam; 393 394 typedef HciStatusParam HciLeReceiverTestReturnParam; 395 396 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 397 // 7.8.29 LE Transmitter Test Command 398 #define HCI_LE_TRANSMITTER_TEST MAKE_OPCODE(0x001E, HCI_COMMAND_OGF_LE_CONTROLLER) 399 400 typedef struct { 401 uint8_t txChannel; 402 uint8_t lengthOfTestData; 403 uint8_t packetPayload; 404 } HciLeTransmitterTestParam; 405 406 typedef HciStatusParam HciLeTransmitterTestReturnParam; 407 408 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 409 // 7.8.30 LE Test End Command 410 #define HCI_LE_TEST_END MAKE_OPCODE(0x001F, HCI_COMMAND_OGF_LE_CONTROLLER) 411 412 typedef struct { 413 uint8_t status; 414 uint16_t numberOfPackets; 415 } HciLeTestEndReturnParam; 416 417 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 418 // 7.8.31 LE Remote Connection Parameter Request Reply Command 419 #define HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_REPLY MAKE_OPCODE(0x0020, HCI_COMMAND_OGF_LE_CONTROLLER) 420 421 typedef struct { 422 uint16_t connectionHandle; 423 uint16_t intervalMin; 424 uint16_t intervalMax; 425 uint16_t latency; 426 uint16_t timeout; 427 uint16_t minimumCELength; 428 uint16_t maximumCELength; 429 } HciLeRemoteConnectionParameterRequestReplyParam; 430 431 typedef struct { 432 uint8_t status; 433 uint16_t connectionHandle; 434 } HciLeRemoteConnectionParameterRequestReplyReturnParam; 435 436 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 437 // 7.8.32 LE Remote Connection Parameter Request Negative Reply Command 438 #define HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_NEGATIVE_REPLY MAKE_OPCODE(0x0021, HCI_COMMAND_OGF_LE_CONTROLLER) 439 440 typedef struct { 441 uint16_t connectionHandle; 442 uint8_t reason; 443 } HciLeRemoteConnectionParameterRequestNegativeReplyParam; 444 445 typedef struct { 446 uint8_t status; 447 uint16_t connectionHandle; 448 } HciLeRemoteConnectionParameterRequestNegativeReplyReturnParam; 449 450 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 451 // 7.8.33 LE Set Data Length Command 452 #define HCI_LE_SET_DATA_LENGTH MAKE_OPCODE(0x0022, HCI_COMMAND_OGF_LE_CONTROLLER) 453 454 typedef struct { 455 uint16_t connectionHandle; 456 uint16_t txOctets; 457 uint16_t txTime; 458 } HciLeSetDataLengthParam; 459 460 typedef struct { 461 uint8_t status; 462 uint16_t connectionHandle; 463 } HciLeSetDataLengthReturnParam; 464 465 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 466 // 7.8.34 LE Read Suggested Default Data Length Command 467 #define HCI_LE_READ_SUGGESTED_DEFAULT_DATA_LENGTH MAKE_OPCODE(0x0023, HCI_COMMAND_OGF_LE_CONTROLLER) 468 469 typedef struct { 470 uint8_t status; 471 uint16_t suggestedMaxTxOctets; 472 uint16_t suggestedMaxTxTime; 473 } HciLeReadSuggestedDefaultDataLengthReturnParam; 474 475 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 476 // 7.8.35 LE Write Suggested Default Data Length Command 477 #define HCI_LE_WRITE_SUGGESTED_DEFAULT_DATA_LENGTH MAKE_OPCODE(0x0024, HCI_COMMAND_OGF_LE_CONTROLLER) 478 479 typedef struct { 480 uint16_t suggestedMaxTxOctets; 481 uint16_t suggestedMaxTxTime; 482 } HciLeWriteSuggestedDefaultDataLengthParam; 483 484 typedef HciStatusParam HciLeWriteSuggestedDefaultDataLengthReturnParam; 485 486 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 487 // 7.8.36 LE Read Local P-256 Public Key Command 488 #define HCI_LE_READ_LOCAL_P256_PUBLIC_KEY MAKE_OPCODE(0x0025, HCI_COMMAND_OGF_LE_CONTROLLER) 489 490 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 491 // 7.8.37 LE Generate DHKey Command 492 #define HCI_LE_GENERATE_DHKEY MAKE_OPCODE(0x0026, HCI_COMMAND_OGF_LE_CONTROLLER) 493 494 typedef struct { 495 uint8_t remoteP256PublicKey[64]; 496 } HciLeGenerateDHKeyParam; 497 498 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 499 // 7.8.38 LE Add Device To Resolving List Command 500 #define HCI_LE_ADD_DEVICE_TO_RESOLVING_LIST MAKE_OPCODE(0x0027, HCI_COMMAND_OGF_LE_CONTROLLER) 501 502 #define HCI_PEER_IDENTITY_ADDRESS_TYPE_PUBLIC 0x00 503 #define HCI_PEER_IDENTITY_ADDRESS_TYPE_RANDOM 0x01 504 505 typedef struct { 506 uint8_t peerIdentityAddrType; 507 HciBdAddr peerIdentityAddress; 508 uint8_t peerIrk[16]; 509 uint8_t localIrk[16]; 510 } HciLeAddDeviceToResolvingListParam; 511 512 typedef HciStatusParam HciLeAddDeviceToResolvingListReturnParam; 513 514 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 515 // 7.8.39 LE Remove Device From Resolving List Command 516 #define HCI_LE_REMOVE_DEVICE_FROM_RESOLVING_LIST MAKE_OPCODE(0x0028, HCI_COMMAND_OGF_LE_CONTROLLER) 517 518 typedef struct { 519 uint8_t peerIdentityAddrType; 520 HciBdAddr peerIdentityAddress; 521 } HciLeRemoveDeviceFromResolvingListParam; 522 523 typedef HciStatusParam HciLeRemoveDeviceFromResolvingListReturnParam; 524 525 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 526 // 7.8.40 LE Clear Resolving List Command 527 #define HCI_LE_CLEAR_RESOLVING_LIST MAKE_OPCODE(0x0029, HCI_COMMAND_OGF_LE_CONTROLLER) 528 529 typedef HciStatusParam HciLeClearResolvingListReturnParam; 530 531 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 532 // 7.8.41 LE Read Resolving List Size Command 533 #define HCI_LE_READ_RESOLVING_LIST_SIZE MAKE_OPCODE(0x002A, HCI_COMMAND_OGF_LE_CONTROLLER) 534 535 typedef struct { 536 uint8_t status; 537 uint8_t resolvingListSize; 538 } HciLeReadResolvingListSizeReturnParam; 539 540 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 541 // 7.8.42 LE Read Peer Resolvable Address Command 542 #define HCI_LE_READ_PEER_RESOLVABLE_ADDRESS MAKE_OPCODE(0x002B, HCI_COMMAND_OGF_LE_CONTROLLER) 543 544 typedef struct { 545 uint8_t peerIdentityAddressType; 546 HciBdAddr peerIdentityAddress; 547 } HciLeReadPeerResolvableAddressParam; 548 549 typedef struct { 550 uint8_t status; 551 HciBdAddr peerResolvableAddress; 552 } HciLeReadPeerResolvableAddressReturnParam; 553 554 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 555 // 7.8.43 LE Read Local Resolvable Address Command 556 #define HCI_LE_READ_LOCAL_RESOLVABLE_ADDRESS MAKE_OPCODE(0x002C, HCI_COMMAND_OGF_LE_CONTROLLER) 557 558 typedef struct { 559 uint8_t peerIdentityAddressType; 560 HciBdAddr peerIdentityAddress; 561 } HciLeReadLocalResolvableAddressParam; 562 563 typedef struct { 564 uint8_t status; 565 HciBdAddr localResolvableAddress; 566 } HciLeReadLocalResolvableAddressReturnParam; 567 568 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 569 // 7.8.44 LE Set Address Resolution Enable Command 570 #define HCI_LE_SET_ADDRESS_RESOLUTION_ENABLE MAKE_OPCODE(0x002D, HCI_COMMAND_OGF_LE_CONTROLLER) 571 572 #define ADDRESS_RESOLUTION_IN_CONTROLLER_DISABLED 0x00 573 #define ADDRESS_RESOLUTION_IN_CONTROLLER_ENABLEED 0x01 574 575 typedef struct { 576 uint8_t addressResolutionEnable; 577 } HciLeSetAddressResolutionEnableParam; 578 579 typedef HciStatusParam HciLeSetAddressResolutionEnableReturnParam; 580 581 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 582 // 7.8.45 LE Set Resolvable Private Address Timeout Command 583 #define HCI_LE_SET_RESOLVABLE_PRIVATE_ADDRESS_TIMEOUT MAKE_OPCODE(0x002E, HCI_COMMAND_OGF_LE_CONTROLLER) 584 585 typedef struct { 586 uint16_t rpaTimeout; 587 } HciLeSetResolvablePrivateAddressTimeoutParam; 588 589 typedef HciStatusParam HciLeSetResolvablePrivateAddressTimeoutReturnParam; 590 591 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 592 // 7.8.46 LE Read Maximum Data Length Command 593 #define HCI_LE_READ_MAXIMUM_DATA_LENGTH MAKE_OPCODE(0x002F, HCI_COMMAND_OGF_LE_CONTROLLER) 594 595 typedef struct { 596 uint8_t status; 597 uint16_t supportedMaxTxOctets; 598 uint16_t supportedMaxTxTime; 599 uint16_t supportedMaxRxOctets; 600 uint16_t supportedMaxRxTime; 601 } HciLeReadMaximumDataLengthReturnParam; 602 603 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 604 // 7.8.47 LE Read PHY Command 605 #define HCI_LE_READ_PHY MAKE_OPCODE(0x0030, HCI_COMMAND_OGF_LE_CONTROLLER) 606 607 typedef struct { 608 uint16_t connectionHandle; 609 } HciLeReadPhyParam; 610 611 typedef struct { 612 uint8_t status; 613 uint16_t connectionHandle; 614 uint8_t txPhy; 615 uint8_t rxPhy; 616 } HciLeReadPhyReturnParam; 617 618 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 619 // 7.8.48 LE Set Default PHY Command 620 #define HCI_LE_SET_DEFAULT_PHY MAKE_OPCODE(0x0031, HCI_COMMAND_OGF_LE_CONTROLLER) 621 622 typedef struct { 623 uint8_t allPhys; 624 uint8_t txPhys; 625 uint8_t rxPhys; 626 } HciLeSetDefaultPhyParam; 627 628 typedef HciStatusParam HciLeSetDefaultPhyReturnParam; 629 630 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 631 // 7.8.49 LE Set PHY Command 632 #define HCI_LE_SET_PHY MAKE_OPCODE(0x0032, HCI_COMMAND_OGF_LE_CONTROLLER) 633 634 typedef struct { 635 uint16_t connectionHandle; 636 uint8_t allPhys; 637 uint8_t txPhys; 638 uint8_t rxPhys; 639 uint16_t phyOptions; 640 } HciLeSetPhyParam; 641 642 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 643 // 7.8.50 LE Enhanced Receiver Test Command 644 #define HCI_LE_ENHANCED_RECEIVER_TEST MAKE_OPCODE(0x0033, HCI_COMMAND_OGF_LE_CONTROLLER) 645 646 typedef struct { 647 uint8_t rxChannel; 648 uint8_t phy; 649 uint8_t modulationIndex; 650 } HciLeEnhancedReceiverTestParam; 651 652 typedef HciStatusParam HciLeEnhancedReceiverTestReturnParam; 653 654 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 655 // 7.8.51 LE Enhanced Transmitter Test Command 656 #define HCI_LE_ENHANCED_TRANSMITTER_TEST MAKE_OPCODE(0x0034, HCI_COMMAND_OGF_LE_CONTROLLER) 657 658 typedef struct { 659 uint8_t txChannel; 660 uint8_t lengthOfTestData; 661 uint8_t packetPayload; 662 uint8_t phy; 663 } HciLeEnhancedTransmitterTestParam; 664 665 typedef HciStatusParam HciLeEnhancedTransmitterTestReturnParam; 666 667 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 668 // 7.8.52 LE Set Advertising Set Random Address Command 669 #define HCI_LE_SET_ADVERTISING_SET_RANDOM_ADDRESS MAKE_OPCODE(0x0035, HCI_COMMAND_OGF_LE_CONTROLLER) 670 671 typedef struct { 672 uint8_t advertisingHandle; 673 uint8_t randomAddress[6]; 674 } HciLeSetAdvertisingSetRandomAddressParam; 675 676 typedef HciStatusParam HciLeSetAdvertisingSetRandomAddressReturnParam; 677 678 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 679 // 7.8.53 LE Set Extended Advertising Parameters Command 680 #define HCI_LE_SET_EXTENDED_ADVERTISING_PARAMETERS MAKE_OPCODE(0x0036, HCI_COMMAND_OGF_LE_CONTROLLER) 681 682 typedef struct { 683 uint8_t advertisingHandle; 684 uint16_t advertisingEventProperties; 685 uint8_t priAdvertisingIntervalMin[3]; 686 uint8_t priAdvertisingIntervalMax[3]; 687 uint8_t priAdvertisingChannelMap; 688 uint8_t ownAddressType; 689 uint8_t peerAddressType; 690 uint8_t peerAddress[6]; 691 uint8_t advertisingFilterPolicy; 692 uint8_t advertisingTxPower; 693 uint8_t priAdvertisingPHY; 694 uint8_t secondaryAdvertisingMaxSkip; 695 uint8_t secondaryAdvertisingPHY; 696 uint8_t advertisingSID; 697 uint8_t scanRequestNotificationEnable; 698 } HciLeSetExtendedAdvertisingParametersParam; 699 700 typedef struct { 701 uint8_t status; 702 uint8_t selectedTxPower; 703 } HciLeSetExtendedAdvertisingParametersReturnParam; 704 705 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 706 // 7.8.54 LE Set Extended Advertising Data Command 707 #define HCI_LE_SET_EXTENDED_ADVERTISING_DATA MAKE_OPCODE(0x0037, HCI_COMMAND_OGF_LE_CONTROLLER) 708 709 typedef struct { 710 uint8_t advertisingHandle; 711 uint8_t operation; 712 uint8_t fragmentPreference; 713 uint8_t advertisingDataLength; 714 const uint8_t *advertisingData; 715 } HciLeSetExtendedAdvertisingDataParam; 716 717 typedef HciStatusParam HciLeSetExtendedAdvertisingDataReturnParam; 718 719 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 720 // 7.8.55 LE Set Extended Scan Response Data Command 721 #define HCI_LE_SET_EXTENDED_SCAN_RESPONSE_DATA MAKE_OPCODE(0x0038, HCI_COMMAND_OGF_LE_CONTROLLER) 722 723 typedef struct { 724 uint8_t advertisingHandle; 725 uint8_t operation; 726 uint8_t fragmentPreference; 727 uint8_t scanResponseDataLength; 728 const uint8_t *scanResponseData; 729 } HciLeSetExtendedScanResponseDataParam; 730 731 typedef HciStatusParam HciLeSetExtendedScanResponseDataReturnParam; 732 733 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 734 // 7.8.56 LE Set Extended Advertising Enable Command 735 #define HCI_LE_SET_EXTENDED_ADVERTISING_ENABLE MAKE_OPCODE(0x0039, HCI_COMMAND_OGF_LE_CONTROLLER) 736 737 typedef struct { 738 uint8_t adverHandle; 739 uint16_t duration; 740 uint8_t maxExtendAdvertisingEvents; 741 } HciLeExtendedAdvertisingParamSet; 742 743 typedef struct { 744 uint8_t enable; 745 uint8_t numberofSets; 746 HciLeExtendedAdvertisingParamSet *sets; 747 } HciLeSetExtendedAdvertisingEnableParam; 748 749 typedef HciStatusParam HciLeSetExtendedAdvertisingEnableReturnParam; 750 751 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 752 // 7.8.57 LE Read Maximum Advertising Data Length Command 753 #define HCI_LE_READ_MAXIMUM_ADVERTISING_DATA_LENGTH MAKE_OPCODE(0x003A, HCI_COMMAND_OGF_LE_CONTROLLER) 754 755 typedef struct { 756 uint8_t status; 757 uint16_t maximumAdvertisingDataLength; 758 } HciLeReadMaximumAdvertisingDataLengthReturnParam; 759 760 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 761 // 7.8.58 LE Read Number of Supported Advertising Sets Command 762 #define HCI_LE_READ_NUMBER_OF_SUPPORTED_ADVERTISING_SETS MAKE_OPCODE(0x003B, HCI_COMMAND_OGF_LE_CONTROLLER) 763 764 typedef struct { 765 uint8_t status; 766 uint8_t numSupportedAdvertisingSets; 767 } HciLeReadNumberofSupportedAdvertisingSetsReturnParam; 768 769 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 770 // 7.8.59 LE Remove Advertising Set Command 771 #define HCI_LE_REMOVE_ADVERTISING_SET MAKE_OPCODE(0x003C, HCI_COMMAND_OGF_LE_CONTROLLER) 772 773 typedef struct { 774 uint8_t advertisingHandle; 775 } HciLeRemoveAdvertisingSetParam; 776 777 typedef HciStatusParam HciLeRemoveAdvertisingSetReturnParam; 778 779 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 780 // 7.8.60 LE Clear Advertising Sets Command 781 #define HCI_LE_CLEAR_ADVERTISING_SETS MAKE_OPCODE(0x003D, HCI_COMMAND_OGF_LE_CONTROLLER) 782 783 typedef HciStatusParam HciLeClearAdvertisingSetsReturnParam; 784 785 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 786 // 7.8.61 LE Set Periodic Advertising Parameters Command 787 #define HCI_LE_SET_PERIODIC_ADVERTISING_PARAMETERS MAKE_OPCODE(0x003E, HCI_COMMAND_OGF_LE_CONTROLLER) 788 789 typedef struct { 790 uint8_t advertisingHandle; 791 uint16_t periodicAdvertisingIntervalMin; 792 uint16_t periodicAdvertisingIntervalMax; 793 uint16_t periodicAdvertisingProperties; 794 } HciLeSetPeriodicAdvertisingParametersParam; 795 796 typedef HciStatusParam HciLeSetPeriodicAdvertisingParametersReturnParameters; 797 798 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 799 // 7.8.62 LE Set Periodic Advertising Data Command 800 #define HCI_LE_SET_PERIODIC_ADVERTISING_DATA MAKE_OPCODE(0x003F, HCI_COMMAND_OGF_LE_CONTROLLER) 801 802 typedef struct { 803 uint8_t advertisingHandle; 804 uint8_t operation; 805 uint8_t advertisingDataLength; 806 uint8_t advertisingData; 807 } HciLeSetPeriodicAdvertisingDataParam; 808 809 typedef HciStatusParam HciLeSetPeriodicAdvertisingDataReturnParameters; 810 811 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 812 // 7.8.63 LE Set Periodic Advertising Enable Command 813 #define HCI_LE_SET_PERIODIC_ADVERTISING_ENABLE MAKE_OPCODE(0x0040, HCI_COMMAND_OGF_LE_CONTROLLER) 814 815 typedef struct { 816 uint8_t enable; 817 uint8_t advertisingHandle; 818 } HciLeSetPeriodicAdvertisingEnableParam; 819 820 typedef HciStatusParam HciLeSetPeriodicAdvertisingEnableReturnParameters; 821 822 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 823 // 7.8.64 LE Set Extended Scan Parameters Command 824 #define HCI_LE_SET_EXTENDED_SCAN_PARAMETERS MAKE_OPCODE(0x0041, HCI_COMMAND_OGF_LE_CONTROLLER) 825 826 typedef struct { 827 uint8_t scanType; 828 uint16_t scanInterval; 829 uint16_t scanWindow; 830 } HciLeExtendedScanParametersSet; 831 832 typedef struct { 833 uint8_t ownAddressType; 834 uint8_t ScanningFilterPolicy; 835 uint8_t ScanningPHYs; 836 HciLeExtendedScanParametersSet *sets; 837 } HciLeSetExtendedScanParametersParam; 838 839 typedef HciStatusParam HciLeSetExtendedScanParametersReturnParam; 840 841 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 842 // 7.8.65 LE Set Extended Scan Enable Command 843 #define HCI_LE_SET_EXTENDED_SCAN_ENABLE MAKE_OPCODE(0x0042, HCI_COMMAND_OGF_LE_CONTROLLER) 844 845 typedef struct { 846 uint8_t enable; 847 uint8_t filterDuplicates; 848 uint16_t duration; 849 uint16_t period; 850 } HciLeSetExtendedScanEnableParam; 851 852 typedef HciStatusParam HciLeSetExtendedScanEnableReturnParam; 853 854 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 855 // 7.8.66 LE Extended Create Connection Command 856 #define HCI_LE_EXTENDED_CREATE_CONNECTION MAKE_OPCODE(0x0043, HCI_COMMAND_OGF_LE_CONTROLLER) 857 858 typedef struct { 859 uint16_t scanInterval; 860 uint16_t scanWindow; 861 uint16_t connIntervalMin; 862 uint16_t connIntervalMax; 863 uint16_t connLatency; 864 uint16_t supervisionTimeout; 865 uint16_t minimumCELength; 866 uint16_t maximumCELength; 867 } HciLeConnectionParamSet; 868 869 #define LE_1M_PHY 0x01 870 #define LE_2M_PHY 0x02 871 #define LE_CODED_PHY 0x04 872 873 typedef struct { 874 uint8_t initiatingFilterPolicy; 875 uint8_t ownAddressType; 876 uint8_t peerAddressType; 877 HciBdAddr peerAddress; 878 uint8_t initiatingPhys; 879 HciLeConnectionParamSet *sets; 880 } HciLeExtendedCreateConnectionParam; 881 882 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 883 // 7.8.68 LE Periodic Advertising Create Sync Cancel Command 884 #define HCI_LE_PERIODIC_ADVERTISING_CREATE_SYNC_CANCEL MAKE_OPCODE(0x0045, HCI_COMMAND_OGF_LE_CONTROLLER) 885 886 typedef HciStatusParam HciLePeriodicAdvertisingCreateSyncCancelReturnParam; 887 888 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 889 // 7.8.69 LE Periodic Advertising Terminate Sync Command 890 #define HCI_LE_PERIODIC_ADVERTISING_TERMINATE_SYNC MAKE_OPCODE(0x0046, HCI_COMMAND_OGF_LE_CONTROLLER) 891 892 typedef struct { 893 uint16_t syncHandle; 894 } HciLePeriodicAdvertisingTerminateSyncParam; 895 896 typedef HciStatusParam HciLePeriodicAdvertisingTerminateSyncReturnParam; 897 898 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 899 // 7.8.70 LE Add Device To Periodic Advertiser List Command 900 #define HCI_LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST MAKE_OPCODE(0x0047, HCI_COMMAND_OGF_LE_CONTROLLER) 901 902 typedef struct { 903 uint8_t advertiserAddressType; 904 uint8_t advertiserAddress[6]; 905 uint8_t advertisingSid; 906 } HciLeAddDeviceToPeriodicAdvertiserListParam; 907 908 typedef HciStatusParam HciLeAddDeviceToPeriodicAdvertiserListReturnParam; 909 910 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 911 // 7.8.71 LE Remove Device From Periodic Advertiser List Command 912 #define HCI_LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST MAKE_OPCODE(0x0048, HCI_COMMAND_OGF_LE_CONTROLLER) 913 914 typedef struct { 915 uint8_t advertiserAddressType; 916 uint8_t advertiserAddress[6]; 917 uint8_t advertisingSid; 918 } HciLeRemoveDeviceFromPeriodicAdvertiserListParam; 919 920 typedef HciStatusParam HciLeRemoveDeviceFromPeriodicAdvertiserListReturnParam; 921 922 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 923 // 7.8.72 LE Clear Periodic Advertiser List Command 924 #define HCI_LE_CLEAR_PERIODIC_ADVERTISER_LIST MAKE_OPCODE(0x0049, HCI_COMMAND_OGF_LE_CONTROLLER) 925 926 typedef HciStatusParam HciLeClearPeriodicAdvertiserListReturnParam; 927 928 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 929 // 7.8.73 LE Read Periodic Advertiser List Size Command 930 #define HCI_LE_READ_PERIODIC_ADVERTISER_LIST_SIZE MAKE_OPCODE(0x004A, HCI_COMMAND_OGF_LE_CONTROLLER) 931 932 typedef struct { 933 uint8_t status; 934 uint8_t periodicAdvertiserListSize; 935 } HciLeReadPeriodicAdvertiserListSizeReturnParam; 936 937 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 938 // 7.8.74 LE Read Transmit Power Command 939 #define HCI_LE_READ_TRANSMIT_POWER MAKE_OPCODE(0x004B, HCI_COMMAND_OGF_LE_CONTROLLER) 940 941 typedef struct { 942 uint8_t status; 943 uint8_t minTxPower; 944 uint8_t maxTxPower; 945 } HciLeReadTransmitPowerReturnParam; 946 947 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 948 // 7.8.75 LE Read RF Path Compensation Command 949 #define HCI_LE_READ_RF_PATH_COMPENSATION MAKE_OPCODE(0x004C, HCI_COMMAND_OGF_LE_CONTROLLER) 950 951 typedef struct { 952 uint8_t status; 953 uint16_t rfTxPathCompensationValue; 954 uint16_t rfRxPathCompensationValue; 955 } HciLeReadRfPathCompensationReturnParam; 956 957 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 958 // 7.8.76 LE Write RF Path Compensation Command 959 #define HCI_LE_WRITE_RF_PATH_COMPENSATION MAKE_OPCODE(0x004D, HCI_COMMAND_OGF_LE_CONTROLLER) 960 961 typedef struct { 962 uint16_t rfTxPathCompensationValue; 963 uint16_t rfRxPathCompensationValue; 964 } HciLeWriteRfPathCompensationParam; 965 966 typedef HciStatusParam HciLeWriteRfPathCompensationReturnParam; 967 968 // BLUETOOTH SPECIFICATION Version 5.0 | Vol 2, Part E 969 // 7.8.77 LE Set Privacy Mode Command 970 #define HCI_LE_SET_PRIVACY_MODE MAKE_OPCODE(0x004E, HCI_COMMAND_OGF_LE_CONTROLLER) 971 972 #define HCI_NETWORK_PRIVACY_MODE 0x00 973 #define HCI_DEVICE_PRIVACY_MODE 0x01 974 975 typedef struct { 976 uint8_t peerIdentityAddressType; 977 HciBdAddr peerIdentityAddress; 978 uint8_t privacyMode; 979 } HciLeSetPrivacyModeParam; 980 981 typedef HciStatusParam HciLeSetPrivacyModeReturnParam; 982 983 #pragma pack(0) 984 985 #ifdef __cplusplus 986 } 987 #endif 988 989 #endif