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