1 #ifndef _FBT_HCI_EVENT_STRUCTS_H
2 #define _FBT_HCI_EVENT_STRUCTS_H
4 // Pack structures to single unsigned char boundries
9 unsigned char EventCode
;
10 unsigned char ParameterLength
;
12 } FBT_HCI_EVENT_HEADER
, *PFBT_HCI_EVENT_HEADER
;
16 FBT_HCI_EVENT_HEADER EventHeader
;
18 unsigned char NumResponses
;
20 } FBT_HCI_INQUIRY_COMPLETE
, *PFBT_HCI_INQUIRY_COMPLETE
;
24 FBT_HCI_EVENT_HEADER EventHeader
;
25 unsigned char NumResponses
;
26 unsigned char BD_ADDR
[FBT_HCI_VARIABLE_SIZE
][FBT_HCI_BDADDR_SIZE
];
27 unsigned char PageScanRepetitionMode
[FBT_HCI_VARIABLE_SIZE
];
28 unsigned char PageScanPeriodMode
[FBT_HCI_VARIABLE_SIZE
];
29 unsigned char PageScanMode
[FBT_HCI_VARIABLE_SIZE
];
30 unsigned char ClassOfDevice
[FBT_HCI_VARIABLE_SIZE
][FBT_HCI_DEVICE_CLASS_SIZE
];
31 unsigned short ClockOffset
[FBT_HCI_VARIABLE_SIZE
];
33 } FBT_HCI_INQUIRY_RESULT
, *PFBT_HCI_INQUIRY_RESULT
;
37 FBT_HCI_EVENT_HEADER EventHeader
;
39 unsigned short ConnectionHandle
;
40 unsigned char BD_ADDR
[FBT_HCI_BDADDR_SIZE
];
41 unsigned char LinkType
;
42 unsigned char EncryptionMode
;
44 } FBT_HCI_CONNECTION_COMPLETE
, *PFBT_HCI_CONNECTION_COMPLETE
;
48 FBT_HCI_EVENT_HEADER EventHeader
;
49 unsigned char BD_ADDR
[FBT_HCI_BDADDR_SIZE
];
50 unsigned long ClassOfDevice
[FBT_HCI_DEVICE_CLASS_SIZE
];
51 unsigned char LinkType
;
53 } FBT_HCI_CONNECTION_REQUEST
, *PFBT_HCI_CONNECTION_REQUEST
;
57 FBT_HCI_EVENT_HEADER EventHeader
;
59 unsigned short ConnectionHandle
;
62 } FBT_HCI_DISCONNECTION_COMPLETE
, *PFBT_HCI_DISCONNECTION_COMPLETE
;
66 FBT_HCI_EVENT_HEADER EventHeader
;
68 unsigned short ConnectionHandle
;
70 } FBT_HCI_AUTHENTICATION_COMPLETE
, *PFBT_HCI_AUTHENTICATION_COMPLETE
;
74 FBT_HCI_EVENT_HEADER EventHeader
;
76 unsigned char BD_ADDR
[FBT_HCI_BDADDR_SIZE
];
77 unsigned char RemoteName
[FBT_HCI_NAME_SIZE
];
79 } FBT_HCI_REMOTE_NAME_REQUEST_COMPLETE
, *PFBT_HCI_REMOTE_NAME_REQUEST_COMPLETE
;
83 FBT_HCI_EVENT_HEADER EventHeader
;
85 unsigned short ConnectionHandle
;
86 unsigned char EncryptionEnable
;
88 } FBT_HCI_ENCRYPTION_CHANGE
, *PFBT_HCI_ENCRYPTION_CHANGE
;
92 FBT_HCI_EVENT_HEADER EventHeader
;
94 unsigned short ConnectionHandle
;
96 } FBT_HCI_CHANGE_CONNECTION_LINK_KEY_COMPLETE
, *PFBT_HCI_CHANGE_CONNECTION_LINK_KEY_COMPLETE
;
100 FBT_HCI_EVENT_HEADER EventHeader
;
101 unsigned char Status
;
102 unsigned short ConnectionHandle
;
103 unsigned char KeyFlag
;
105 } FBT_HCI_MASTER_LINK_KEY_COMPLETE
, *PFBT_HCI_MASTER_LINK_KEY_COMPLETE
;
109 FBT_HCI_EVENT_HEADER EventHeader
;
110 unsigned char Status
;
111 unsigned short ConnectionHandle
;
112 unsigned char LmpFeatures
[8];
114 } FBT_HCI_READ_REMOTE_SUPPORTED_FEATURES_COMPLETE
, *PFBT_HCI_READ_REMOTE_SUPPORTED_FEATURES_COMPLETE
;
118 FBT_HCI_EVENT_HEADER EventHeader
;
119 unsigned char Status
;
120 unsigned short ConnectionHandle
;
121 unsigned char LmpVersion
;
122 unsigned short ManufacturerName
;
123 unsigned short LmpSubversion
;
125 } FBT_HCI_READ_REMOTE_VERSION_INFORMATION_COMPLETE
, *PFBT_HCI_READ_REMOTE_VERSION_INFORMATION_COMPLETE
;
129 FBT_HCI_EVENT_HEADER EventHeader
;
130 unsigned char Status
;
131 unsigned short ConnectionHandle
;
133 unsigned char ServiceType
;
134 unsigned long TokenRate
;
135 unsigned long PeakBandwidth
;
136 unsigned long Latency
;
137 unsigned long DelayVariation
;
139 } FBT_HCI_QOS_SETUP_COMPLETE
, *PFBT_HCI_QOS_SETUP_COMPLETE
;
143 FBT_HCI_EVENT_HEADER EventHeader
;
144 unsigned char NumHCICommandPackets
;
145 unsigned short OpCode
;
146 unsigned char Parameters
[FBT_HCI_VARIABLE_SIZE
];
148 } FBT_HCI_COMMAND_COMPLETE
, *PFBT_HCI_COMMAND_COMPLETE
;
152 FBT_HCI_EVENT_HEADER EventHeader
;
153 unsigned char Status
;
154 unsigned char NumHCICommandPackets
;
155 unsigned short OpCode
;
157 } FBT_HCI_COMMAND_STATUS
, *PFBT_HCI_COMMAND_STATUS
;
161 FBT_HCI_EVENT_HEADER EventHeader
;
162 unsigned char HardwareCode
;
164 } FBT_HCI_HARDWARE_ERROR
, *PFBT_HCI_HARDWARE_ERROR
;
168 FBT_HCI_EVENT_HEADER EventHeader
;
169 unsigned short ConnectionHandle
;
171 } FBT_HCI_FLUSH_OCCURRED
, *PFBT_HCI_FLUSH_OCCURRED
;
175 FBT_HCI_EVENT_HEADER EventHeader
;
176 unsigned char Status
;
177 unsigned char BD_ADDR
[FBT_HCI_BDADDR_SIZE
];
178 unsigned char NewRole
;
180 } FBT_HCI_ROLE_CHANGE
, *PFBT_HCI_ROLE_CHANGE
;
184 FBT_HCI_EVENT_HEADER EventHeader
;
185 unsigned char NumberOfHandles
;
186 unsigned short ConnectionHandle
[FBT_HCI_VARIABLE_SIZE
];
187 unsigned short NumberOfCompletedPackets
[FBT_HCI_VARIABLE_SIZE
];
189 } FBT_HCI_NUMBER_OF_COMPLETED_PACKETS
, *PFBT_HCI_NUMBER_OF_COMPLETED_PACKETS
;
193 FBT_HCI_EVENT_HEADER EventHeader
;
194 unsigned char Status
;
195 unsigned short ConnectionHandle
;
196 unsigned char CurrentMode
;
197 unsigned short Interval
;
199 } FBT_HCI_MODE_CHANGE
, *PFBT_HCI_MODE_CHANGE
;
203 FBT_HCI_EVENT_HEADER EventHeader
;
204 unsigned char NumKeys
;
205 unsigned char BD_ADDR
[FBT_HCI_VARIABLE_SIZE
][FBT_HCI_BDADDR_SIZE
];
206 unsigned char LinkKey
[FBT_HCI_VARIABLE_SIZE
][FBT_HCI_LINK_KEY_SIZE
];
208 } FBT_HCI_RETURN_LINK_KEYS
, *PFBT_HCI_RETURN_LINK_KEYS
;
212 FBT_HCI_EVENT_HEADER EventHeader
;
213 unsigned char BD_ADDR
[FBT_HCI_BDADDR_SIZE
];
215 } FBT_HCI_PIN_CODE_REQUEST
, *PFBT_HCI_PIN_CODE_REQUEST
;
219 FBT_HCI_EVENT_HEADER EventHeader
;
220 unsigned char BD_ADDR
[FBT_HCI_BDADDR_SIZE
];
222 } FBT_HCI_LINK_KEY_REQUEST
, *PFBT_HCI_LINK_KEY_REQUEST
;
226 FBT_HCI_EVENT_HEADER EventHeader
;
227 unsigned char BD_ADDR
[FBT_HCI_BDADDR_SIZE
];
228 unsigned char LinkKey
[FBT_HCI_LINK_KEY_SIZE
];
230 } FBT_HCI_LINK_KEY_NOTIFICATION
, *PFBT_HCI_LINK_KEY_NOTIFICATION
;
234 FBT_HCI_EVENT_HEADER EventHeader
;
235 unsigned char HCICommandPacket
[FBT_HCI_CMD_MAX_SIZE
];
237 } FBT_HCI_LOOPBACK_COMMAND
, *PFBT_HCI_LOOPBACK_COMMAND
;
241 FBT_HCI_EVENT_HEADER EventHeader
;
242 unsigned char LinkType
;
244 } FBT_HCI_DATA_BUFFER_OVERFLOW
, *PFBT_HCI_DATA_BUFFER_OVERFLOW
;
248 FBT_HCI_EVENT_HEADER EventHeader
;
249 unsigned short ConnectionHandle
;
250 unsigned char LmpMaxSlots
;
252 } FBT_HCI_MAX_SLOTS_CHANGE
, *PFBT_HCI_MAX_SLOTS_CHANGE
;
256 FBT_HCI_EVENT_HEADER EventHeader
;
257 unsigned char Status
;
258 unsigned short ConnectionHandle
;
259 unsigned short ClockOffset
;
261 } FBT_HCI_READ_CLOCK_OFFSET_COMPLETE
, *PFBT_HCI_READ_CLOCK_OFFSET_COMPLETE
;
265 FBT_HCI_EVENT_HEADER EventHeader
;
266 unsigned char Status
;
267 unsigned short ConnectionHandle
;
268 unsigned short PacketType
;
270 } FBT_HCI_CONNECTION_PACKET_TYPE_CHANGED
, *PFBT_HCI_CONNECTION_PACKET_TYPE_CHANGED
;
274 FBT_HCI_EVENT_HEADER EventHeader
;
275 unsigned short ConnectionHandle
;
277 } FBT_HCI_QOS_VIOLATION
, *PFBT_HCI_QOS_VIOLATION
;
281 FBT_HCI_EVENT_HEADER EventHeader
;
282 unsigned char BD_ADDR
[FBT_HCI_BDADDR_SIZE
];
283 unsigned char PageScanMode
;
285 } FBT_HCI_PAGE_SCAN_MODE_CHANGE
, *PFBT_HCI_PAGE_SCAN_MODE_CHANGE
;
289 FBT_HCI_EVENT_HEADER EventHeader
;
290 unsigned char BD_ADDR
[FBT_HCI_BDADDR_SIZE
];
291 unsigned char PageScanRepetitionMode
;
293 } FBT_HCI_PAGE_SCAN_REPETITION_MODE_CHANGE
, *PFBT_HCI_PAGE_SCAN_REPETITION_MODE_CHANGE
;
297 unsigned char Status
;
298 unsigned char HCIVersion
;
299 unsigned short HCIRevision
;
300 unsigned char LMPVersion
;
301 unsigned short Manufacturer
;
302 unsigned short LMPSubVersion
;
304 } FBT_HCI_READ_LOCAL_VERSION_INFORMATION_COMPLETE
;
306 // Data Packet Structure
309 unsigned short ConnectionHandle
: 12;
310 unsigned short PacketBoundary
: 2;
311 unsigned short Broadcast
: 2;
312 unsigned short DataLength
;
313 unsigned char Data
[1];
315 } FBT_HCI_DATA_PACKET
, *PFBT_HCI_DATA_PACKET
;
319 #endif // _FBT_HCI_EVENT_STRUCTS_H