1 /*
2  * Copyright 2020 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #pragma once
18 
19 #include <cstdint>
20 
21 /*
22  *  Definitions for HCI Event Parameter Minimum Length
23  */
24 static const uint8_t hci_event_parameters_minimum_length[] = {
25     0,    //  0x00 - N/A
26     1,    //  0x01 - HCI_Inquiry_Complete Event
27     15,   //  0x02 - HCI_Inquiry_Result Event (Num_Responses = 1)
28     11,   //  0x03 - HCI_Connection_Complete Event
29     10,   //  0x04 - HCI_Connection_Request Event
30     4,    //  0x05 - HCI_Disconnection_Complete Event
31     3,    //  0x06 - HCI_Authentication_Complete Event
32     255,  //  0x07 - HCI_Remote_Name_Request_Complete Event
33     4,    //  0x08 - HCI_Encryption_Change Event
34     3,    //  0x09 - HCI_Change_Connection_Link_Key_Complete Event
35     4,    //  0x0A - HCI_Central_Link_Key_Complete Event
36     11,   //  0x0B - HCI_Read_Remote_Supported_Features_Complete Event
37     8,    //  0x0C - HCI_Read_Remote_Version_Information_Complete Event
38     21,   //  0x0D - HCI_QoS_Setup_Complete Event
39     3,    //  0x0E - HCI_Command_Complete Event (Depends on command)
40     4,    //  0x0F - HCI_Command_Status Event
41     1,    //  0x10 - HCI_Hardware_Error Event
42     2,    //  0x11 - HCI_Flush_Occurred Event
43     8,    //  0x12 - HCI_Role_Change Event
44     5,    //  0x13 - HCI_Number_Of_Completed_Packets Event (Num_Handles = 1)
45     6,    //  0x14 - HCI_Mode_Change Event
46     23,   //  0x15 - HCI_Return_Link_Keys Event (Num_Keys = 1)
47     6,    //  0x16 - HCI_PIN_Code_Request Event
48     6,    //  0x17 - HCI_Link_Key_Request Event
49     23,   //  0x18 - HCI_Link_Key_Notification Event
50     3,    //  0x19 - HCI_Loopback_Command Event (Depends on command)
51     1,    //  0x1A - HCI_Data_Buffer_Overflow Event
52     3,    //  0x1B - HCI_Max_Slots_Change Event
53     5,    //  0x1C - HCI_Read_Clock_Offset_Complete Event
54     5,    //  0x1D - HCI_Connection_Packet_Type_Changed Event
55     2,    //  0x1E - HCI_QoS_Violation Event
56     7,    //  0x1F - HCI_Page_Scan_Mode_Change Event (Deprecated)
57     7,    //  0x20 - HCI_Page_Scan_Repetition_Mode_Change Event
58     22,   //  0x21 - HCI_Flow_Specification_Complet Event
59     15,   //  0x22 - HCI_Inquiry_Result_with_RSSI Event (Num_Responses = 1)
60     13,   //  0x23 - HCI_Read_Remote_Extended_Features_Complete Event
61     0,    //  0x24 - N/A
62     0,    //  0x25 - N/A
63     0,    //  0x26 - N/A
64     0,    //  0x27 - N/A
65     0,    //  0x28 - N/A
66     0,    //  0x29 - N/A
67     0,    //  0x2A - N/A
68     0,    //  0x2B - N/A
69     17,   //  0x2C - HCI_Synchronous_Connection_Complete Event
70     9,    //  0x2D - HCI_Synchronous_Connection_Changed Event
71     11,   //  0x2E - HCI_Sniff_Subrating Event
72     255,  //  0x2F - HCI_Extended_Inquiry_Result Event
73     3,    //  0x30 - HCI_Encryption_Key_Refresh_Complete Event
74     6,    //  0x31 - HCI_IO_Capability_Request Event
75     9,    //  0x32 - HCI_IO_Capability_Response Event
76     10,   //  0x33 - HCI_User_Confirmation_Request Event
77     6,    //  0x34 - HCI_User_Passkey_Request Event
78     6,    //  0x35 - HCI_Remote_OOB_Data_Request Event
79     7,    //  0x36 - HCI_Simple_Pairing_Complete Event
80     0,    //  0x37 - N/A
81     4,    //  0x38 - HCI_Link_Supervision_Timeout_Changed Event
82     2,    //  0x39 - HCI_Enhanced_Flush_Complete Event
83     0,    //  0x3A - N/A
84     10,   //  0x3B - HCI_User_Passkey_Notification Event
85     7,    //  0x3C - HCI_Keypress_Notification Event
86     14,   //  0x3D - HCI_Remote_Host_Supported_Features_Notification Event
87     1,    //  0x3E - LE Meta event
88     0,    //  0x3F - N/A
89     2,    //  0x40 - HCI_Physical_Link_Complete Event
90     1,    //  0x41 - HCI_Channel_Selected Event
91     3,    //  0x42 - HCI_Disconnection_Physical_Link_Complete Event
92     2,    //  0x43 - HCI_Physical_Link_Loss_Early_Warning Event
93     1,    //  0x44 - HCI_Physical_Link_Recovery Event
94     5,    //  0x45 - HCI_Logical_Link_Complete Event
95     4,    //  0x46 - HCI_Disconnection_Logical_Link_Complete Event
96     3,    //  0x47 - HCI_Flow_Spec_Modify_Complete Event
97     9,    //  0x48 - HCI_Number_Of_Completed_Data_Blocks Event (Num_Handles = 1)
98     2,    //  0x49 - HCI_AMP_Start_Test Event
99     2,    //  0x4A - HCI_AMP_Test_End Event
100     18,   //  0x4B - HCI_AMP_Receiver_Report Event
101     3,    //  0x4C - HCI_Short_Range_Mode_Change_Complete Event
102     2,    //  0x4D - HCI_AMP_Status_Change Event
103     9,    //  0x4E - HCI_Triggered_Clock_Capture Event
104     1,    //  0x4F - HCI_Synchronization_Train_Complete Event
105     29,   //  0x50 - HCI_Synchronization_Train_Received Event
106     18,   //  0x51 - HCI_Connectionless_Peripheral_Broadcast_Receive Event
107           //  (Data_Length = 0)
108     7,    //  0x52 - HCI_Connectionless_Peripheral_Broadcast_Timeout Event
109     7,    //  0x53 - HCI_Truncated_Page_Complete Event
110     0,    //  0x54 - HCI_Peripheral_Page_Response_Timeout Event
111     10,   //  0x55 - HCI_Connectionless_Peripheral_Broadcast_Channel_Map_Change
112           //  Event
113     4,    //  0x56 - HCI_Inquiry_Response_Notification Event
114     2,    //  0x57 - HCI_Authenticated_Payload_Timeout_Expired Event
115     8,    //  0x58 - HCI_SAM_Status_Change Event
116     0,    //  0x59 - N/A
117     0,    //  0x5A - N/A
118     0,    //  0x5B - N/A
119     0,    //  0x5C - N/A
120     0,    //  0x5D - N/A
121     0,    //  0x5E - N/A
122     0,    //  0x5F - N/A
123     0,    //  0x60 - N/A
124     0,    //  0x61 - N/A
125     0,    //  0x62 - N/A
126     0,    //  0x63 - N/A
127     0,    //  0x64 - N/A
128     0,    //  0x65 - N/A
129     0,    //  0x66 - N/A
130     0,    //  0x67 - N/A
131     0,    //  0x68 - N/A
132     0,    //  0x69 - N/A
133     0,    //  0x6A - N/A
134     0,    //  0x6B - N/A
135     0,    //  0x6C - N/A
136     0,    //  0x6D - N/A
137     0,    //  0x6E - N/A
138     0,    //  0x6F - N/A
139     0,    //  0x70 - N/A
140     0,    //  0x71 - N/A
141     0,    //  0x72 - N/A
142     0,    //  0x73 - N/A
143     0,    //  0x74 - N/A
144     0,    //  0x75 - N/A
145     0,    //  0x76 - N/A
146     0,    //  0x77 - N/A
147     0,    //  0x78 - N/A
148     0,    //  0x79 - N/A
149     0,    //  0x7A - N/A
150     0,    //  0x7B - N/A
151     0,    //  0x7C - N/A
152     0,    //  0x7D - N/A
153     0,    //  0x7E - N/A
154     0,    //  0x7F - N/A
155     0,    //  0x80 - N/A
156     0,    //  0x81 - N/A
157     0,    //  0x82 - N/A
158     0,    //  0x83 - N/A
159     0,    //  0x84 - N/A
160     0,    //  0x85 - N/A
161     0,    //  0x86 - N/A
162     0,    //  0x87 - N/A
163     0,    //  0x88 - N/A
164     0,    //  0x89 - N/A
165     0,    //  0x8A - N/A
166     0,    //  0x8B - N/A
167     0,    //  0x8C - N/A
168     0,    //  0x8D - N/A
169     0,    //  0x8E - N/A
170     0,    //  0x8F - N/A
171     0,    //  0x90 - N/A
172     0,    //  0x91 - N/A
173     0,    //  0x92 - N/A
174     0,    //  0x93 - N/A
175     0,    //  0x94 - N/A
176     0,    //  0x95 - N/A
177     0,    //  0x96 - N/A
178     0,    //  0x97 - N/A
179     0,    //  0x98 - N/A
180     0,    //  0x99 - N/A
181     0,    //  0x9A - N/A
182     0,    //  0x9B - N/A
183     0,    //  0x9C - N/A
184     0,    //  0x9D - N/A
185     0,    //  0x9E - N/A
186     0,    //  0x9F - N/A
187     0,    //  0xA0 - N/A
188     0,    //  0xA1 - N/A
189     0,    //  0xA2 - N/A
190     0,    //  0xA3 - N/A
191     0,    //  0xA4 - N/A
192     0,    //  0xA5 - N/A
193     0,    //  0xA6 - N/A
194     0,    //  0xA7 - N/A
195     0,    //  0xA8 - N/A
196     0,    //  0xA9 - N/A
197     0,    //  0xAA - N/A
198     0,    //  0xAB - N/A
199     0,    //  0xAC - N/A
200     0,    //  0xAD - N/A
201     0,    //  0xAE - N/A
202     0,    //  0xAF - N/A
203     0,    //  0xB0 - N/A
204     0,    //  0xB1 - N/A
205     0,    //  0xB2 - N/A
206     0,    //  0xB3 - N/A
207     0,    //  0xB4 - N/A
208     0,    //  0xB5 - N/A
209     0,    //  0xB6 - N/A
210     0,    //  0xB7 - N/A
211     0,    //  0xB8 - N/A
212     0,    //  0xB9 - N/A
213     0,    //  0xBA - N/A
214     0,    //  0xBB - N/A
215     0,    //  0xBC - N/A
216     0,    //  0xBD - N/A
217     0,    //  0xBE - N/A
218     0,    //  0xBF - N/A
219     0,    //  0xC0 - N/A
220     0,    //  0xC1 - N/A
221     0,    //  0xC2 - N/A
222     0,    //  0xC3 - N/A
223     0,    //  0xC4 - N/A
224     0,    //  0xC5 - N/A
225     0,    //  0xC6 - N/A
226     0,    //  0xC7 - N/A
227     0,    //  0xC8 - N/A
228     0,    //  0xC9 - N/A
229     0,    //  0xCA - N/A
230     0,    //  0xCB - N/A
231     0,    //  0xCC - N/A
232     0,    //  0xCD - N/A
233     0,    //  0xCE - N/A
234     0,    //  0xCF - N/A
235     0,    //  0xD0 - N/A
236     0,    //  0xD1 - N/A
237     0,    //  0xD2 - N/A
238     0,    //  0xD3 - N/A
239     0,    //  0xD4 - N/A
240     0,    //  0xD5 - N/A
241     0,    //  0xD6 - N/A
242     0,    //  0xD7 - N/A
243     0,    //  0xD8 - N/A
244     0,    //  0xD9 - N/A
245     0,    //  0xDA - N/A
246     0,    //  0xDB - N/A
247     0,    //  0xDC - N/A
248     0,    //  0xDD - N/A
249     0,    //  0xDE - N/A
250     0,    //  0xDF - N/A
251     0,    //  0xE0 - N/A
252     0,    //  0xE1 - N/A
253     0,    //  0xE2 - N/A
254     0,    //  0xE3 - N/A
255     0,    //  0xE4 - N/A
256     0,    //  0xE5 - N/A
257     0,    //  0xE6 - N/A
258     0,    //  0xE7 - N/A
259     0,    //  0xE8 - N/A
260     0,    //  0xE9 - N/A
261     0,    //  0xEA - N/A
262     0,    //  0xEB - N/A
263     0,    //  0xEC - N/A
264     0,    //  0xED - N/A
265     0,    //  0xEE - N/A
266     0,    //  0xEF - N/A
267     0,    //  0xF0 - N/A
268     0,    //  0xF1 - N/A
269     0,    //  0xF2 - N/A
270     0,    //  0xF3 - N/A
271     0,    //  0xF4 - N/A
272     0,    //  0xF5 - N/A
273     0,    //  0xF6 - N/A
274     0,    //  0xF7 - N/A
275     0,    //  0xF8 - N/A
276     0,    //  0xF9 - N/A
277     0,    //  0xFA - N/A
278     0,    //  0xFB - N/A
279     0,    //  0xFC - N/A
280     0,    //  0xFD - N/A
281     0,    //  0xFE - N/A
282     0,    //  0xFF - HCI_Vendor_Specific Event
283 };
284