1 #ifndef _FBT_HCI_CMD_STRUCTS_H 2 #define _FBT_HCI_CMD_STRUCTS_H 3 4 // Pack structures to single unsigned char boundries 5 #pragma pack(push, 1) 6 7 // Command Header 8 typedef struct 9 { 10 unsigned short OpCode; 11 unsigned char ParameterLength; 12 13 } FBT_HCI_CMD_HEADER, *PFBT_HCI_CMD_HEADER; 14 15 // Link control commands 16 typedef struct 17 { 18 FBT_HCI_CMD_HEADER CommandHeader; 19 unsigned char LAP[FBT_HCI_LAP_SIZE]; 20 unsigned char InquiryLength; 21 unsigned char NumResponses; 22 23 } FBT_HCI_INQUIRY, *PFBT_HCI_INQUIRY; 24 25 typedef struct 26 { 27 FBT_HCI_CMD_HEADER CommandHeader; 28 29 } FBT_HCI_INQUIRY_CANCEL, *PFBT_HCI_INQUIRY_CANCEL; 30 31 typedef struct 32 { 33 FBT_HCI_CMD_HEADER CommandHeader; 34 unsigned short MaxPeriodLength; 35 unsigned short MinPeriodLength; 36 unsigned char LAP[FBT_HCI_LAP_SIZE]; 37 unsigned char InquiryLength; 38 unsigned char NumResponses; 39 40 } FBT_HCI_PERIODIC_INQUIRY_MODE, *PFBT_HCI_PERIODIC_INQUIRY_MODE; 41 42 typedef struct 43 { 44 FBT_HCI_CMD_HEADER CommandHeader; 45 46 } FBT_HCI_EXIT_PERIODIC_INQUIRY_MODE, *PFBT_HCI_EXIT_PERIODIC_INQUIRY_MODE; 47 48 typedef struct 49 { 50 FBT_HCI_CMD_HEADER CommandHeader; 51 unsigned char BD_ADDR[FBT_HCI_BDADDR_SIZE]; 52 unsigned short PacketType; 53 unsigned char PageScanRepetitionMode; 54 unsigned char PageScanMode; 55 unsigned short ClockOffset; 56 unsigned char AllowRoleSwitch; 57 58 } FBT_HCI_CREATE_CONNECTION, *PFBT_HCI_CREATE_CONNECTION; 59 60 typedef struct 61 { 62 FBT_HCI_CMD_HEADER CommandHeader; 63 unsigned short ConnectionHandle; 64 unsigned char Reason; 65 66 } FBT_HCI_DISCONNECT, *PFBT_HCI_DISCONNECT; 67 68 typedef struct 69 { 70 FBT_HCI_CMD_HEADER CommandHeader; 71 unsigned short ConnectionHandle; 72 unsigned short PacketType; 73 74 } FBT_HCI_ADD_SCO_CONNECTION, *PFBT_HCI_ADD_SCO_CONNECTION; 75 76 typedef struct 77 { 78 FBT_HCI_CMD_HEADER CommandHeader; 79 unsigned char BD_ADDR[FBT_HCI_BDADDR_SIZE]; 80 unsigned char Role; 81 82 } FBT_HCI_ACCEPT_CONNECTION_REQUEST, *PFBT_HCI_ACCEPT_CONNECTION_REQUEST; 83 84 typedef struct 85 { 86 FBT_HCI_CMD_HEADER CommandHeader; 87 unsigned char BD_ADDR[FBT_HCI_BDADDR_SIZE]; 88 unsigned char Reason; 89 90 } FBT_HCI_REJECT_CONNECTION_REQUEST, *PFBT_HCI_REJECT_CONNECTION_REQUEST; 91 92 typedef struct 93 { 94 FBT_HCI_CMD_HEADER CommandHeader; 95 unsigned char BD_ADDR[FBT_HCI_BDADDR_SIZE]; 96 unsigned char LinkKey[FBT_HCI_LINK_KEY_SIZE]; 97 98 } FBT_HCI_LINK_KEY_REQUEST_REPLY, *PFBT_HCI_LINK_KEY_REQUEST_REPLY; 99 100 typedef struct 101 { 102 FBT_HCI_CMD_HEADER CommandHeader; 103 unsigned char BD_ADDR[FBT_HCI_BDADDR_SIZE]; 104 105 } FBT_HCI_LINK_KEY_REQUEST_NEGATIVE_REPLY, *PFBT_HCI_LINK_KEY_REQUEST_NEGATIVE_REPLY; 106 107 typedef struct 108 { 109 FBT_HCI_CMD_HEADER CommandHeader; 110 unsigned char BD_ADDR[FBT_HCI_BDADDR_SIZE]; 111 unsigned char PINCodeLength; 112 unsigned char PINCode[FBT_HCI_PIN_CODE_SIZE]; 113 114 } FBT_HCI_PIN_CODE_REQUEST_REPLY, *PFBT_HCI_PIN_CODE_REQUEST_REPLY; 115 116 typedef struct 117 { 118 FBT_HCI_CMD_HEADER CommandHeader; 119 unsigned char BD_ADDR[FBT_HCI_BDADDR_SIZE]; 120 121 } FBT_HCI_PIN_CODE_REQUEST_NEGATIVE_REPLY, *PFBT_HCI_PIN_CODE_REQUEST_NEGATIVE_REPLY; 122 123 typedef struct 124 { 125 FBT_HCI_CMD_HEADER CommandHeader; 126 unsigned short ConnectionHandle; 127 unsigned short PacketType; 128 129 } FBT_HCI_CHANGE_CONNECTION_PACKET_TYPE, *PFBT_HCI_CHANGE_CONNECTION_PACKET_TYPE; 130 131 typedef struct 132 { 133 FBT_HCI_CMD_HEADER CommandHeader; 134 unsigned short ConnectionHandle; 135 136 } FBT_HCI_AUTHENTICATION_REQUESTED, *PFBT_HCI_AUTHENTICATION_REQUESTED; 137 138 typedef struct 139 { 140 FBT_HCI_CMD_HEADER CommandHeader; 141 unsigned short ConnectionHandle; 142 unsigned char EncryptionEnable; 143 144 } FBT_HCI_SET_CONNECTION_ENCRYPTION, *PFBT_HCI_SET_CONNECTION_ENCRYPTION; 145 146 typedef struct 147 { 148 FBT_HCI_CMD_HEADER CommandHeader; 149 unsigned short ConnectionHandle; 150 151 } FBT_HCI_CHANGE_CONNECTION_LINK_KEY, *PFBT_HCI_CHANGE_CONNECTION_LINK_KEY; 152 153 typedef struct 154 { 155 FBT_HCI_CMD_HEADER CommandHeader; 156 unsigned char KeyFlag; 157 158 } FBT_HCI_MASTER_LINK_KEY, *PFBT_HCI_MASTER_LINK_KEY; 159 160 typedef struct 161 { 162 FBT_HCI_CMD_HEADER CommandHeader; 163 unsigned char BD_ADDR[FBT_HCI_BDADDR_SIZE]; 164 unsigned char PageScanRepetitionMode; 165 unsigned char PageScanMode; 166 unsigned short ClockOffset; 167 168 } FBT_HCI_REMOTE_NAME_REQUEST, *PFBT_HCI_REMOTE_NAME_REQUEST; 169 170 typedef struct 171 { 172 FBT_HCI_CMD_HEADER CommandHeader; 173 unsigned short ConnectionHandle; 174 175 } FBT_HCI_READ_REMOTE_SUPPORTED_FEATURES, *PFBT_HCI_READ_REMOTE_SUPPORTED_FEATURES; 176 177 typedef struct 178 { 179 FBT_HCI_CMD_HEADER CommandHeader; 180 unsigned short ConnectionHandle; 181 182 } FBT_HCI_READ_REMOTE_VERSION_INFORMATION, *PFBT_HCI_READ_REMOTE_VERSION_INFORMATION; 183 184 typedef struct 185 { 186 FBT_HCI_CMD_HEADER CommandHeader; 187 unsigned short ConnectionHandle; 188 189 } FBT_HCI_READ_CLOCK_OFFSET, *PFBT_HCI_READ_CLOCK_OFFSET; 190 191 192 // Link policy commands 193 typedef struct 194 { 195 FBT_HCI_CMD_HEADER CommandHeader; 196 unsigned short ConnectionHandle; 197 unsigned short HoldModeMaxInterval; 198 unsigned short HoldModeMinInterval; 199 200 } FBT_HCI_HOLD_MODE, *PFBT_HCI_HOLD_MODE; 201 202 typedef struct 203 { 204 FBT_HCI_CMD_HEADER CommandHeader; 205 unsigned short ConnectionHandle; 206 unsigned short SniffMaxInterval; 207 unsigned short SniffMinInterval; 208 unsigned short SniffAttempt; 209 unsigned short SniffTimeout; 210 211 } FBT_HCI_SNIFF_MODE, *PFBT_HCI_SNIFF_MODE; 212 213 typedef struct 214 { 215 FBT_HCI_CMD_HEADER CommandHeader; 216 unsigned short ConnectionHandle; 217 218 } FBT_HCI_EXIT_SNIFF_MODE, *PFBT_HCI_EXIT_SNIFF_MODE; 219 220 typedef struct 221 { 222 FBT_HCI_CMD_HEADER CommandHeader; 223 unsigned short ConnectionHandle; 224 unsigned short BeaconMaxInterval; 225 unsigned short BeaconMinInterval; 226 227 } FBT_HCI_PARK_MODE, *PFBT_HCI_PARK_MODE; 228 229 typedef struct 230 { 231 FBT_HCI_CMD_HEADER CommandHeader; 232 unsigned short ConnectionHandle; 233 234 } FBT_HCI_EXIT_PARK_MODE, *PFBT_HCI_EXIT_PARK_MODE; 235 236 typedef struct 237 { 238 FBT_HCI_CMD_HEADER CommandHeader; 239 unsigned short ConnectionHandle; 240 unsigned char Flags; 241 unsigned char ServiceType; 242 unsigned long TokenRate; 243 unsigned long PeakBandwidth; 244 unsigned long Latency; 245 unsigned long DelayVariation; 246 247 } FBT_HCI_QOS_SETUP, *PFBT_HCI_QOS_SETUP; 248 249 typedef struct 250 { 251 FBT_HCI_CMD_HEADER CommandHeader; 252 unsigned short ConnectionHandle; 253 254 } FBT_HCI_ROLE_DISCOVERY, *PFBT_HCI_ROLE_DISCOVERY; 255 256 typedef struct 257 { 258 FBT_HCI_CMD_HEADER CommandHeader; 259 unsigned char BD_ADDR[FBT_HCI_BDADDR_SIZE]; 260 unsigned char Role; 261 262 } FBT_HCI_SWITCH_ROLE, *PFBT_HCI_SWITCH_ROLE; 263 264 typedef struct 265 { 266 FBT_HCI_CMD_HEADER CommandHeader; 267 unsigned short ConnectionHandle; 268 269 } FBT_HCI_READ_LINK_POLICY_SETTINGS, *PFBT_HCI_READ_LINK_POLICY_SETTINGS; 270 271 typedef struct 272 { 273 FBT_HCI_CMD_HEADER CommandHeader; 274 unsigned short ConnectionHandle; 275 unsigned short LinkPolicySettings; 276 277 } FBT_HCI_WRITE_LINK_POLICY_SETTINGS, *PFBT_HCI_WRITE_LINK_POLICY_SETTINGS; 278 279 280 // Host Controller and Baseband commands 281 typedef struct 282 { 283 FBT_HCI_CMD_HEADER CommandHeader; 284 unsigned char EventMask[8]; 285 286 } FBT_HCI_SET_EVENT_MASK, *PFBT_HCI_SET_EVENT_MASK; 287 288 typedef struct 289 { 290 FBT_HCI_CMD_HEADER CommandHeader; 291 292 } FBT_HCI_RESET, *PFBT_HCI_RESET; 293 294 typedef struct 295 { 296 FBT_HCI_CMD_HEADER CommandHeader; 297 unsigned char FilterType; 298 unsigned char FilterConditionType; 299 unsigned char Condition[7]; 300 301 } FBT_HCI_SET_EVENT_FILTER, *PFBT_HCI_SET_EVENT_FILTER; 302 303 typedef struct 304 { 305 FBT_HCI_CMD_HEADER CommandHeader; 306 unsigned short ConnectionHandle; 307 308 } FBT_HCI_FLUSH, *PFBT_HCI_FLUSH; 309 310 typedef struct 311 { 312 FBT_HCI_CMD_HEADER CommandHeader; 313 314 } FBT_HCI_READ_PIN_TYPE, *PFBT_HCI_READ_PIN_TYPE; 315 316 typedef struct 317 { 318 FBT_HCI_CMD_HEADER CommandHeader; 319 unsigned char PinType; 320 321 } FBT_HCI_WRITE_PIN_TYPE, *PFBT_HCI_WRITE_PIN_TYPE; 322 323 typedef struct 324 { 325 FBT_HCI_CMD_HEADER CommandHeader; 326 327 } FBT_HCI_CREATE_NEW_UNIT_KEY, *PFBT_HCI_CREATE_NEW_UNIT_KEY; 328 329 typedef struct 330 { 331 FBT_HCI_CMD_HEADER CommandHeader; 332 unsigned char BD_ADDR[FBT_HCI_BDADDR_SIZE]; 333 unsigned char ReadAllFlag; 334 335 } FBT_HCI_READ_STORED_LINK_KEY, *PFBT_HCI_READ_STORED_LINK_KEY; 336 337 typedef struct 338 { 339 FBT_HCI_CMD_HEADER CommandHeader; 340 unsigned char NumKeysToWrite; 341 unsigned char BD_ADDR[FBT_HCI_VARIABLE_SIZE][FBT_HCI_BDADDR_SIZE]; 342 unsigned char LinkKey[FBT_HCI_VARIABLE_SIZE][FBT_HCI_LINK_KEY_SIZE]; 343 344 } FBT_HCI_WRITE_STORED_LINK_KEY, *PFBT_HCI_WRITE_STORED_LINK_KEY; 345 346 typedef struct 347 { 348 FBT_HCI_CMD_HEADER CommandHeader; 349 unsigned char BD_ADDR[FBT_HCI_BDADDR_SIZE]; 350 unsigned char DeleteAllFlag; 351 352 } FBT_HCI_DELETE_STORED_LINK_KEY, *PFBT_HCI_DELETE_STORED_LINK_KEY; 353 354 typedef struct 355 { 356 FBT_HCI_CMD_HEADER CommandHeader; 357 unsigned char Name[FBT_HCI_NAME_SIZE]; 358 359 } FBT_HCI_CHANGE_LOCAL_NAME, *PFBT_HCI_CHANGE_LOCAL_NAME; 360 361 typedef struct 362 { 363 FBT_HCI_CMD_HEADER CommandHeader; 364 365 } FBT_HCI_READ_LOCAL_NAME, *PFBT_HCI_READ_LOCAL_NAME; 366 367 typedef struct 368 { 369 FBT_HCI_CMD_HEADER CommandHeader; 370 371 } FBT_HCI_READ_CONNECTION_ACCEPT_TIMEOUT, *PFBT_HCI_READ_CONNECTION_ACCEPT_TIMEOUT; 372 373 typedef struct 374 { 375 FBT_HCI_CMD_HEADER CommandHeader; 376 unsigned short ConnAcceptTimeout; 377 378 } FBT_HCI_WRITE_CONNECTION_ACCEPT_TIMEOUT, *PFBT_HCI_WRITE_CONNECTION_ACCEPT_TIMEOUT; 379 380 typedef struct 381 { 382 FBT_HCI_CMD_HEADER CommandHeader; 383 384 } FBT_HCI_READ_PAGE_TIMEOUT, *PFBT_HCI_READ_PAGE_TIMEOUT; 385 386 typedef struct 387 { 388 FBT_HCI_CMD_HEADER CommandHeader; 389 unsigned short PageTimeout; 390 391 } FBT_HCI_WRITE_PAGE_TIMEOUT, *PFBT_HCI_WRITE_PAGE_TIMEOUT; 392 393 typedef struct 394 { 395 FBT_HCI_CMD_HEADER CommandHeader; 396 397 } FBT_HCI_READ_SCAN_ENABLE, *PFBT_HCI_READ_SCAN_ENABLE; 398 399 typedef struct 400 { 401 FBT_HCI_CMD_HEADER CommandHeader; 402 unsigned char ScanEnable; 403 404 } FBT_HCI_WRITE_SCAN_ENABLE, *PFBT_HCI_WRITE_SCAN_ENABLE; 405 406 typedef struct 407 { 408 FBT_HCI_CMD_HEADER CommandHeader; 409 410 } FBT_HCI_READ_PAGE_SCAN_ACTIVITY, *PFBT_HCI_READ_PAGE_SCAN_ACTIVITY; 411 412 typedef struct 413 { 414 FBT_HCI_CMD_HEADER CommandHeader; 415 unsigned short PageScanInterval; 416 unsigned short PageScanWindow; 417 418 } FBT_HCI_WRITE_PAGE_SCAN_ACTIVITY, *PFBT_HCI_WRITE_PAGE_SCAN_ACTIVITY; 419 420 typedef struct 421 { 422 FBT_HCI_CMD_HEADER CommandHeader; 423 424 } FBT_HCI_READ_INQUIRY_SCAN_ACTIVITY, *PFBT_HCI_READ_INQUIRY_SCAN_ACTIVITY; 425 426 typedef struct 427 { 428 FBT_HCI_CMD_HEADER CommandHeader; 429 unsigned short InquiryScanInterval; 430 unsigned short InquiryScanWindow; 431 432 } FBT_HCI_WRITE_INQUIRY_SCAN_ACTIVITY, *PFBT_HCI_WRITE_INQUIRY_SCAN_ACTIVITY; 433 434 typedef struct 435 { 436 FBT_HCI_CMD_HEADER CommandHeader; 437 438 } FBT_HCI_READ_AUTHENTICATION_ENABLE, *PFBT_HCI_READ_AUTHENTICATION_ENABLE; 439 440 typedef struct 441 { 442 FBT_HCI_CMD_HEADER CommandHeader; 443 unsigned char AuthenticationEnable; 444 445 } FBT_HCI_WRITE_AUTHENTICATION_ENABLE, *PFBT_HCI_WRITE_AUTHENTICATION_ENABLE; 446 447 typedef struct 448 { 449 FBT_HCI_CMD_HEADER CommandHeader; 450 451 } FBT_HCI_READ_ENCRYPTION_MODE, *PFBT_HCI_READ_ENCRYPTION_MODE; 452 453 typedef struct 454 { 455 FBT_HCI_CMD_HEADER CommandHeader; 456 unsigned char EncryptionMode; 457 458 } FBT_HCI_WRITE_ENCRYPTION_MODE, *PFBT_HCI_WRITE_ENCRYPTION_MODE; 459 460 typedef struct 461 { 462 FBT_HCI_CMD_HEADER CommandHeader; 463 464 } FBT_HCI_READ_CLASS_OF_DEVICE, *PFBT_HCI_READ_CLASS_OF_DEVICE; 465 466 typedef struct 467 { 468 FBT_HCI_CMD_HEADER CommandHeader; 469 unsigned char ClassOfDevice[FBT_HCI_DEVICE_CLASS_SIZE]; 470 471 } FBT_HCI_WRITE_CLASS_OF_DEVICE, *PFBT_HCI_WRITE_CLASS_OF_DEVICE; 472 473 typedef struct 474 { 475 FBT_HCI_CMD_HEADER CommandHeader; 476 477 } FBT_HCI_READ_VOICE_SETTING, *PFBT_HCI_READ_VOICE_SETTING; 478 479 typedef struct 480 { 481 FBT_HCI_CMD_HEADER CommandHeader; 482 unsigned short VoiceSetting; 483 484 } FBT_HCI_WRITE_VOICE_SETTING, *PFBT_HCI_WRITE_VOICE_SETTING; 485 486 typedef struct 487 { 488 FBT_HCI_CMD_HEADER CommandHeader; 489 unsigned short ConnectionHandle; 490 491 } FBT_HCI_READ_AUTOMATIC_FLUSH_TIMEOUT, *PFBT_HCI_READ_AUTOMATIC_FLUSH_TIMEOUT; 492 493 typedef struct 494 { 495 FBT_HCI_CMD_HEADER CommandHeader; 496 unsigned short ConnectionHandle; 497 unsigned short FlushTimeout; 498 499 } FBT_HCI_WRITE_AUTOMATIC_FLUSH_TIMEOUT, *PFBT_HCI_WRITE_AUTOMATIC_FLUSH_TIMEOUT; 500 501 typedef struct 502 { 503 FBT_HCI_CMD_HEADER CommandHeader; 504 505 } FBT_HCI_READ_NUM_BROADCAST_RETRANSMISSIONS, *PFBT_HCI_READ_NUM_BROADCAST_RETRANSMISSIONS; 506 507 typedef struct 508 { 509 FBT_HCI_CMD_HEADER CommandHeader; 510 unsigned char NumBroadcastRetran; 511 512 } FBT_HCI_WRITE_NUM_BROADCAST_RETRANSMISSIONS, *PFBT_HCI_WRITE_NUM_BROADCAST_RETRANSMISSIONS; 513 514 typedef struct 515 { 516 FBT_HCI_CMD_HEADER CommandHeader; 517 518 } FBT_HCI_READ_HOLD_MODE_ACTIVITY, *PFBT_HCI_READ_HOLD_MODE_ACTIVITY; 519 520 typedef struct 521 { 522 FBT_HCI_CMD_HEADER CommandHeader; 523 unsigned char HoldModeActivity; 524 525 } FBT_HCI_WRITE_HOLD_MODE_ACTIVITY, *PFBT_HCI_WRITE_HOLD_MODE_ACTIVITY; 526 527 typedef struct 528 { 529 FBT_HCI_CMD_HEADER CommandHeader; 530 unsigned short ConnectionHandle; 531 unsigned char Type; 532 533 } FBT_HCI_READ_TRANSMIT_POWER_LEVEL, *PFBT_HCI_READ_TRANSMIT_POWER_LEVEL; 534 535 typedef struct 536 { 537 FBT_HCI_CMD_HEADER CommandHeader; 538 539 } FBT_HCI_READ_SCO_FLOW_CONTROL_ENABLE, *PFBT_HCI_READ_SCO_FLOW_CONTROL_ENABLE; 540 541 typedef struct 542 { 543 FBT_HCI_CMD_HEADER CommandHeader; 544 unsigned char ScoFlowControlEnable; 545 546 } FBT_HCI_WRITE_SCO_FLOW_CONTROL_ENABLE, *PFBT_HCI_WRITE_SCO_FLOW_CONTROL_ENABLE; 547 548 typedef struct 549 { 550 FBT_HCI_CMD_HEADER CommandHeader; 551 unsigned char FlowControlEnable; 552 553 } FBT_HCI_SET_HOST_CONTROLLER_TO_HOST_FLOW_CONTROL, *PFBT_HCI_SET_HOST_CONTROLLER_TO_HOST_FLOW_CONTROL; 554 555 typedef struct 556 { 557 FBT_HCI_CMD_HEADER CommandHeader; 558 unsigned short AclDataPacketLength; 559 unsigned char ScoDataPacketLength; 560 unsigned short TotalNumAclDataPackets; 561 unsigned short TotalNumScoDataPackets; 562 563 } FBT_HCI_HOST_BUFFER_SIZE, *PFBT_HCI_HOST_BUFFER_SIZE; 564 565 typedef struct 566 { 567 FBT_HCI_CMD_HEADER CommandHeader; 568 unsigned char NumberOfHandles; 569 unsigned short ConnectionHandle[FBT_HCI_VARIABLE_SIZE]; 570 unsigned short HostNumOfCompletedPackets[FBT_HCI_VARIABLE_SIZE]; 571 572 } FBT_HCI_HOST_NUMBER_OF_COMPLETED_PACKETS, *PFBT_HCI_HOST_NUMBER_OF_COMPLETED_PACKETS; 573 574 typedef struct 575 { 576 FBT_HCI_CMD_HEADER CommandHeader; 577 unsigned short ConnectionHandle; 578 579 } FBT_HCI_READ_LINK_SUPERVISION_TIMEOUT, *PFBT_HCI_READ_LINK_SUPERVISION_TIMEOUT; 580 581 typedef struct 582 { 583 FBT_HCI_CMD_HEADER CommandHeader; 584 unsigned short ConnectionHandle; 585 unsigned short LinkSupervisionTimeout; 586 587 } FBT_HCI_WRITE_LINK_SUPERVISION_TIMEOUT, *PFBT_HCI_WRITE_LINK_SUPERVISION_TIMEOUT; 588 589 typedef struct 590 { 591 FBT_HCI_CMD_HEADER CommandHeader; 592 593 } FBT_HCI_READ_NUMBER_OF_SUPPORTED_IAC, *PFBT_HCI_READ_NUMBER_OF_SUPPORTED_IAC; 594 595 typedef struct 596 { 597 FBT_HCI_CMD_HEADER CommandHeader; 598 599 } FBT_HCI_READ_CURRENT_IAC_LAP, *PFBT_HCI_READ_CURRENT_IAC_LAP; 600 601 typedef struct 602 { 603 FBT_HCI_CMD_HEADER CommandHeader; 604 unsigned char NumCurrentIac; 605 unsigned char IacLap[FBT_HCI_VARIABLE_SIZE][FBT_HCI_LAP_SIZE]; 606 607 } FBT_HCI_WRITE_CURRENT_IAC_LAP, *PFBT_HCI_WRITE_CURRENT_IAC_LAP; 608 609 typedef struct 610 { 611 FBT_HCI_CMD_HEADER CommandHeader; 612 613 } FBT_HCI_READ_PAGE_SCAN_PERIOD_MODE, *PFBT_HCI_READ_PAGE_SCAN_PERIOD_MODE; 614 615 typedef struct 616 { 617 FBT_HCI_CMD_HEADER CommandHeader; 618 unsigned char PageScanPeriodMode; 619 620 } FBT_HCI_WRITE_PAGE_SCAN_PERIOD_MODE, *PFBT_HCI_WRITE_PAGE_SCAN_PERIOD_MODE; 621 622 typedef struct 623 { 624 FBT_HCI_CMD_HEADER CommandHeader; 625 626 } FBT_HCI_READ_PAGE_SCAN_MODE, *PFBT_HCI_READ_PAGE_SCAN_MODE; 627 628 typedef struct 629 { 630 FBT_HCI_CMD_HEADER CommandHeader; 631 unsigned char PageScanMode; 632 633 } FBT_HCI_WRITE_PAGE_SCAN_MODE, *PFBT_HCI_WRITE_PAGE_SCAN_MODE; 634 635 636 // Informational parameters 637 typedef struct 638 { 639 FBT_HCI_CMD_HEADER CommandHeader; 640 641 } FBT_HCI_READ_LOCAL_VERSION_INFORMATION, *PFBT_HCI_READ_LOCAL_VERSION_INFORMATION; 642 643 typedef struct 644 { 645 FBT_HCI_CMD_HEADER CommandHeader; 646 647 } FBT_HCI_READ_LOCAL_SUPPORTED_FEATURES, *PFBT_HCI_READ_LOCAL_SUPPORTED_FEATURES; 648 649 typedef struct 650 { 651 FBT_HCI_CMD_HEADER CommandHeader; 652 653 } FBT_HCI_READ_BUFFER_SIZE, *PFBT_HCI_READ_BUFFER_SIZE; 654 655 typedef struct 656 { 657 FBT_HCI_CMD_HEADER CommandHeader; 658 659 } FBT_HCI_READ_COUNTRY_CODE, *PFBT_HCI_READ_COUNTRY_CODE; 660 661 typedef struct 662 { 663 FBT_HCI_CMD_HEADER CommandHeader; 664 665 } FBT_HCI_READ_BD_ADDR, *PFBT_HCI_READ_BD_ADDR; 666 667 668 // Status parameter commands 669 670 typedef struct 671 { 672 FBT_HCI_CMD_HEADER CommandHeader; 673 unsigned short ConnectionHandle; 674 675 } FBT_HCI_READ_FAILED_CONTACT_COUNTER, *PFBT_HCI_READ_FAILED_CONTACT_COUNTER; 676 677 typedef struct 678 { 679 FBT_HCI_CMD_HEADER CommandHeader; 680 unsigned short ConnectionHandle; 681 682 } FBT_HCI_RESET_FAILED_CONTACT_COUNTER, *PFBT_HCI_RESET_FAILED_CONTACT_COUNTER; 683 684 typedef struct 685 { 686 FBT_HCI_CMD_HEADER CommandHeader; 687 unsigned short ConnectionHandle; 688 689 } FBT_HCI_GET_LINK_QUALITY, *PFBT_HCI_GET_LINK_QUALITY; 690 691 typedef struct 692 { 693 FBT_HCI_CMD_HEADER CommandHeader; 694 unsigned short ConnectionHandle; 695 696 } FBT_HCI_READ_RSSI, *PFBT_HCI_READ_RSSI; 697 698 699 // Testing commands 700 typedef struct 701 { 702 FBT_HCI_CMD_HEADER CommandHeader; 703 704 } FBT_HCI_READ_LOOPBACK_MODE, *PFBT_HCI_READ_LOOPBACK_MODE; 705 706 typedef struct 707 { 708 FBT_HCI_CMD_HEADER CommandHeader; 709 unsigned char LoopbackMode; 710 711 } FBT_HCI_WRITE_LOOPBACK_MODE, *PFBT_HCI_WRITE_LOOPBACK_MODE; 712 713 typedef struct 714 { 715 FBT_HCI_CMD_HEADER CommandHeader; 716 717 } FBT_HCI_ENABLE_DEVICE_UNDER_TEST_MODE, *PFBT_HCI_ENABLE_DEVICE_UNDER_TEST_MODE; 718 719 #pragma pack(pop) 720 721 #endif // _FBT_HCI_CMD_STRUCTS_H 722