[NEUS7920-218] [9610][7885][7872][7570] wlbt: Drv Changes for Wpa3
[GitHub/LineageOS/android_kernel_motorola_exynos9610.git] / drivers / net / wireless / scsc / fapi.h
1 /****************************************************************************
2 *
3 * Copyright (c) 2014 - 2018 Samsung Electronics Co., Ltd. All rights reserved
4 *
5 ****************************************************************************/
6
7 /* Note: this is an auto-generated file. */
8
9 #ifndef _FAPI_H__
10 #define _FAPI_H__
11
12 #include <linux/kernel.h>
13 #include <linux/if_ether.h>
14 #include "utils.h"
15
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19
20 #ifndef CONFIG_SCSC_SMAPPER
21 struct slsi_skb_cb {
22 u32 sig_length;
23 u32 data_length;
24 u32 frame_format;
25 u32 colour;
26 };
27
28 static inline struct slsi_skb_cb *slsi_skb_cb_get(struct sk_buff *skb)
29 {
30 return (struct slsi_skb_cb *)skb->cb;
31 }
32
33 static inline struct slsi_skb_cb *slsi_skb_cb_init(struct sk_buff *skb)
34 {
35 BUILD_BUG_ON(sizeof(struct slsi_skb_cb) > sizeof(skb->cb));
36
37 memset(skb->cb, 0, sizeof(struct slsi_skb_cb));
38 return slsi_skb_cb_get(skb);
39 }
40 #endif
41
42 #define FAPI_SIG_TYPE_MASK 0x0F00
43 #define FAPI_SIG_TYPE_REQ 0x0000
44 #define FAPI_SIG_TYPE_CFM 0x0100
45 #define FAPI_SIG_TYPE_RES 0x0200
46 #define FAPI_SIG_TYPE_IND 0x0300
47
48 #define FAPI_SAP_TYPE_MASK 0xF000
49 #define FAPI_SAP_TYPE_MA 0x1000
50 #define FAPI_SAP_TYPE_MLME 0x2000
51 #define FAPI_SAP_TYPE_DEBUG 0x8000
52 #define FAPI_SAP_TYPE_TEST 0x9000
53
54 #define FAPI_DEBUG_SAP_ENG_VERSION 0x0000
55 #define FAPI_CONTROL_SAP_ENG_VERSION 0x0000
56 #define FAPI_DATA_SAP_ENG_VERSION 0x0000
57 #define FAPI_TEST_SAP_ENG_VERSION 0x0006
58 #define FAPI_DEBUG_SAP_VERSION 0x0d03
59 #define FAPI_CONTROL_SAP_VERSION 0x0e00
60 #define FAPI_TEST_SAP_VERSION 0x0e00
61 #define FAPI_DATA_SAP_VERSION 0x0e00
62
63 #define FAPI_ACLPOLICY_BLACKLIST 0x0000
64 #define FAPI_ACLPOLICY_WHITELIST 0x0001
65
66 #define FAPI_AUTHENTICATIONTYPE_OPEN_SYSTEM 0x0000
67 #define FAPI_AUTHENTICATIONTYPE_SHARED_KEY 0x0001
68 #define FAPI_AUTHENTICATIONTYPE_LEAP 0x0080
69
70 #define FAPI_BANDWIDTH_20_MHZ 0x0
71 #define FAPI_BANDWIDTH_40_MHZ 0x1
72 #define FAPI_BANDWIDTH_80_MHZ 0x2
73 #define FAPI_BANDWIDTH_160_MHZ 0x3
74
75 #define FAPI_BLOCKACKPOLICY_DELAYED_BLOCKACK 0x0
76 #define FAPI_BLOCKACKPOLICY_IMMEDIATE_BLOCKACK 0x1
77
78 #define FAPI_BULKDATADESCRIPTOR_INLINE 0x0000
79 #define FAPI_BULKDATADESCRIPTOR_SMAPPER 0x0001
80
81 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_20MHZ 0x00
82 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_40MHZ 0x01
83 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_80MHZ 0x02
84
85 #define FAPI_CONNECTIONTYPE_WLAN_INFRASTRUCTURE 0x0000
86 #define FAPI_CONNECTIONTYPE_P2P_OPERATION 0x0001
87 #define FAPI_CONNECTIONTYPE_NAN_FURTHER_SERVICE_SLOT 0x0004
88 #define FAPI_CONNECTIONTYPE_WLAN_RANGING 0x0005
89
90 #define FAPI_CWSTARTFLAGS_NONE 0x0000
91 #define FAPI_CWSTARTFLAGS_SCAN_CHANNEL 0x0001
92
93 #define FAPI_CWTYPE_SINE 0x0000
94 #define FAPI_CWTYPE_RAMP 0x0001
95 #define FAPI_CWTYPE_TWO_TONE 0x0002
96 #define FAPI_CWTYPE_DC 0x0003
97 #define FAPI_CWTYPE_PRN 0x0004
98
99 #define FAPI_DATARATE_11B20_1MBPS 0x0001
100 #define FAPI_DATARATE_11B20_2MBPS 0x0002
101 #define FAPI_DATARATE_11B20_5M5BPS 0x0005
102 #define FAPI_DATARATE_11B20_11MBPS 0x000b
103 #define FAPI_DATARATE_11A20_6MBPS 0x2006
104 #define FAPI_DATARATE_11A20_9MBPS 0x2009
105 #define FAPI_DATARATE_11A20_12MBPS 0x200c
106 #define FAPI_DATARATE_11A20_18MBPS 0x2012
107 #define FAPI_DATARATE_11A20_24MBPS 0x2018
108 #define FAPI_DATARATE_11A20_36MBPS 0x2024
109 #define FAPI_DATARATE_11A20_48MBPS 0x2030
110 #define FAPI_DATARATE_11A20_54MBPS 0x2036
111 #define FAPI_DATARATE_11N20_6M5BPS 0x4000
112 #define FAPI_DATARATE_11N20_13MBPS 0x4001
113 #define FAPI_DATARATE_11N20_19M5BPS 0x4002
114 #define FAPI_DATARATE_11N20_26MBPS 0x4003
115 #define FAPI_DATARATE_11N20_39MBPS 0x4004
116 #define FAPI_DATARATE_11N20_52MBPS 0x4005
117 #define FAPI_DATARATE_11N20_58M5BPS 0x4006
118 #define FAPI_DATARATE_11N20_65MBPS 0x4007
119 #define FAPI_DATARATE_11N20_7M2BPS_SGI 0x4040
120 #define FAPI_DATARATE_11N20_14M4BPS_SGI 0x4041
121 #define FAPI_DATARATE_11N20_21M7BPS_SGI 0x4042
122 #define FAPI_DATARATE_11N20_28M9BPS_SGI 0x4043
123 #define FAPI_DATARATE_11N20_43M3BPS_SGI 0x4044
124 #define FAPI_DATARATE_11N20_57M8BPS_SGI 0x4045
125 #define FAPI_DATARATE_11N20_65MBPS_SGI 0x4046
126 #define FAPI_DATARATE_11N20_72M2BPS_SGI 0x4047
127 #define FAPI_DATARATE_11N20_13MBPS_NSS2 0x4088
128 #define FAPI_DATARATE_11N20_26MBPS_NSS2 0x4089
129 #define FAPI_DATARATE_11N20_39MBPS_NSS2 0x408a
130 #define FAPI_DATARATE_11N20_52MBPS_NSS2 0x408b
131 #define FAPI_DATARATE_11N20_78MBPS_NSS2 0x408c
132 #define FAPI_DATARATE_11N20_104MBPS_NSS2 0x408d
133 #define FAPI_DATARATE_11N20_117MBPS_NSS2 0x408e
134 #define FAPI_DATARATE_11N20_130MBPS_NSS2 0x408f
135 #define FAPI_DATARATE_11N20_14M4BPS_SGI_NSS2 0x40c8
136 #define FAPI_DATARATE_11N20_28M9BPS_SGI_NSS2 0x40c9
137 #define FAPI_DATARATE_11N20_43M3BPS_SGI_NSS2 0x40ca
138 #define FAPI_DATARATE_11N20_57M8BPS_SGI_NSS2 0x40cb
139 #define FAPI_DATARATE_11N20_86M7BPS_SGI_NSS2 0x40cc
140 #define FAPI_DATARATE_11N20_115M6BPS_SGI_NSS2 0x40cd
141 #define FAPI_DATARATE_11N20_130MBPS_SGI_NSS2 0x40ce
142 #define FAPI_DATARATE_11N20_144M4BPS_SGI_NSS2 0x40cf
143 #define FAPI_DATARATE_11N40_13M5BPS 0x4400
144 #define FAPI_DATARATE_11N40_27MBPS 0x4401
145 #define FAPI_DATARATE_11N40_40M5BPS 0x4402
146 #define FAPI_DATARATE_11N40_54MBPS 0x4403
147 #define FAPI_DATARATE_11N40_81MBPS 0x4404
148 #define FAPI_DATARATE_11N40_108MBPS 0x4405
149 #define FAPI_DATARATE_11N40_121M5BPS 0x4406
150 #define FAPI_DATARATE_11N40_135MBPS 0x4407
151 #define FAPI_DATARATE_11N40_6MBPS 0x4420
152 #define FAPI_DATARATE_11N40_15MBPS_SGI 0x4440
153 #define FAPI_DATARATE_11N40_30MBPS_SGI 0x4441
154 #define FAPI_DATARATE_11N40_45MBPS_SGI 0x4442
155 #define FAPI_DATARATE_11N40_60MBPS_SGI 0x4443
156 #define FAPI_DATARATE_11N40_90MBPS_SGI 0x4444
157 #define FAPI_DATARATE_11N40_120MBPS_SGI 0x4445
158 #define FAPI_DATARATE_11N40_135MBPS_SGI 0x4446
159 #define FAPI_DATARATE_11N40_150MBPS_SGI 0x4447
160 #define FAPI_DATARATE_11N40_6M7BPS_SGI 0x4460
161 #define FAPI_DATARATE_11N40_27MBPS_NSS2 0x4488
162 #define FAPI_DATARATE_11N40_54MBPS_NSS2 0x4489
163 #define FAPI_DATARATE_11N40_81MBPS_NSS2 0x448a
164 #define FAPI_DATARATE_11N40_108MBPS_NSS2 0x448b
165 #define FAPI_DATARATE_11N40_162MBPS_NSS2 0x448c
166 #define FAPI_DATARATE_11N40_216MBPS_NSS2 0x448d
167 #define FAPI_DATARATE_11N40_243MBPS_NSS2 0x448e
168 #define FAPI_DATARATE_11N40_270MBPS_NSS2 0x448f
169 #define FAPI_DATARATE_11N40_30MBPS_SGI_NSS2 0x44c8
170 #define FAPI_DATARATE_11N40_60MBPS_SGI_NSS2 0x44c9
171 #define FAPI_DATARATE_11N40_90MBPS_SGI_NSS2 0x44ca
172 #define FAPI_DATARATE_11N40_120MBPS_SGI_NSS2 0x44cb
173 #define FAPI_DATARATE_11N40_180MBPS_SGI_NSS2 0x44cc
174 #define FAPI_DATARATE_11N40_240MBPS_SGI_NSS2 0x44cd
175 #define FAPI_DATARATE_11N40_270MBPS_SGI_NSS2 0x44ce
176 #define FAPI_DATARATE_11N40_300MBPS_SGI_NSS2 0x44cf
177 #define FAPI_DATARATE_11AC20_6M5BPS 0x6000
178 #define FAPI_DATARATE_11AC20_13MBPS 0x6001
179 #define FAPI_DATARATE_11AC20_19M5BPS 0x6002
180 #define FAPI_DATARATE_11AC20_26MBPS 0x6003
181 #define FAPI_DATARATE_11AC20_39MBPS 0x6004
182 #define FAPI_DATARATE_11AC20_52MBPS 0x6005
183 #define FAPI_DATARATE_11AC20_58M5BPS 0x6006
184 #define FAPI_DATARATE_11AC20_65MBPS 0x6007
185 #define FAPI_DATARATE_11AC20_78MBPS 0x6008
186 #define FAPI_DATARATE_11AC20_7M2BPS_SGI 0x6040
187 #define FAPI_DATARATE_11AC20_14M4BPS_SGI 0x6041
188 #define FAPI_DATARATE_11AC20_21M7BPS_SGI 0x6042
189 #define FAPI_DATARATE_11AC20_28M9BPS_SGI 0x6043
190 #define FAPI_DATARATE_11AC20_43M3BPS_SGI 0x6044
191 #define FAPI_DATARATE_11AC20_57M8BPS_SGI 0x6045
192 #define FAPI_DATARATE_11AC20_65MBPS_SGI 0x6046
193 #define FAPI_DATARATE_11AC20_72M2BPS_SGI 0x6047
194 #define FAPI_DATARATE_11AC20_86M7BPS_SGI 0x6048
195 #define FAPI_DATARATE_11AC20_13MBPS_NSS2 0x6080
196 #define FAPI_DATARATE_11AC20_26MBPS_NSS2 0x6081
197 #define FAPI_DATARATE_11AC20_39MBPS_NSS2 0x6082
198 #define FAPI_DATARATE_11AC20_52MBPS_NSS2 0x6083
199 #define FAPI_DATARATE_11AC20_78MBPS_NSS2 0x6084
200 #define FAPI_DATARATE_11AC20_104MBPS_NSS2 0x6085
201 #define FAPI_DATARATE_11AC20_117MBPS_NSS2 0x6086
202 #define FAPI_DATARATE_11AC20_130MBPS_NSS2 0x6087
203 #define FAPI_DATARATE_11AC20_156MBPS_NSS2 0x6088
204 #define FAPI_DATARATE_11AC20_14M4BPS_SGI_NSS2 0x60c0
205 #define FAPI_DATARATE_11AC20_28M9BPS_SGI_NSS2 0x60c1
206 #define FAPI_DATARATE_11AC20_43M3BPS_SGI_NSS2 0x60c2
207 #define FAPI_DATARATE_11AC20_57M8BPS_SGI_NSS2 0x60c3
208 #define FAPI_DATARATE_11AC20_86M7BPS_SGI_NSS2 0x60c4
209 #define FAPI_DATARATE_11AC20_115M6BPS_SGI_NSS2 0x60c5
210 #define FAPI_DATARATE_11AC20_130MBPS_SGI_NSS2 0x60c6
211 #define FAPI_DATARATE_11AC20_144M4BPS_SGI_NSS2 0x60c7
212 #define FAPI_DATARATE_11AC20_173M3BPS_SGI_NSS2 0x60c8
213 #define FAPI_DATARATE_11AC40_13M5BPS 0x6400
214 #define FAPI_DATARATE_11AC40_27MBPS 0x6401
215 #define FAPI_DATARATE_11AC40_40M5BPS 0x6402
216 #define FAPI_DATARATE_11AC40_54MBPS 0x6403
217 #define FAPI_DATARATE_11AC40_81MBPS 0x6404
218 #define FAPI_DATARATE_11AC40_108MBPS 0x6405
219 #define FAPI_DATARATE_11AC40_121M5BPS 0x6406
220 #define FAPI_DATARATE_11AC40_135MBPS 0x6407
221 #define FAPI_DATARATE_11AC40_162MBPS 0x6408
222 #define FAPI_DATARATE_11AC40_180MBPS 0x6409
223 #define FAPI_DATARATE_11AC40_15MBPS_SGI 0x6440
224 #define FAPI_DATARATE_11AC40_30MBPS_SGI 0x6441
225 #define FAPI_DATARATE_11AC40_45MBPS_SGI 0x6442
226 #define FAPI_DATARATE_11AC40_60MBPS_SGI 0x6443
227 #define FAPI_DATARATE_11AC40_90MBPS_SGI 0x6444
228 #define FAPI_DATARATE_11AC40_120MBPS_SGI 0x6445
229 #define FAPI_DATARATE_11AC40_135MBPS_SGI 0x6446
230 #define FAPI_DATARATE_11AC40_150MBPS_SGI 0x6447
231 #define FAPI_DATARATE_11AC40_180MBPS_SGI 0x6448
232 #define FAPI_DATARATE_11AC40_200MBPS_SGI 0x6449
233 #define FAPI_DATARATE_11AC40_27MBPS_NSS2 0x6480
234 #define FAPI_DATARATE_11AC40_54MBPS_NSS2 0x6481
235 #define FAPI_DATARATE_11AC40_81MBPS_NSS2 0x6482
236 #define FAPI_DATARATE_11AC40_108MBPS_NSS2 0x6483
237 #define FAPI_DATARATE_11AC40_162MBPS_NSS2 0x6484
238 #define FAPI_DATARATE_11AC40_216MBPS_NSS2 0x6485
239 #define FAPI_DATARATE_11AC40_243MBPS_NSS2 0x6486
240 #define FAPI_DATARATE_11AC40_270MBPS_NSS2 0x6487
241 #define FAPI_DATARATE_11AC40_324MBPS_NSS2 0x6488
242 #define FAPI_DATARATE_11AC40_360MBPS_NSS2 0x6489
243 #define FAPI_DATARATE_11AC40_30MBPS_SGI_NSS2 0x64c0
244 #define FAPI_DATARATE_11AC40_60MBPS_SGI_NSS2 0x64c1
245 #define FAPI_DATARATE_11AC40_90MBPS_SGI_NSS2 0x64c2
246 #define FAPI_DATARATE_11AC40_120MBPS_SGI_NSS2 0x64c3
247 #define FAPI_DATARATE_11AC40_180MBPS_SGI_NSS2 0x64c4
248 #define FAPI_DATARATE_11AC40_240MBPS_SGI_NSS2 0x64c5
249 #define FAPI_DATARATE_11AC40_270MBPS_SGI_NSS2 0x64c6
250 #define FAPI_DATARATE_11AC40_300MBPS_SGI_NSS2 0x64c7
251 #define FAPI_DATARATE_11AC40_360MBPS_SGI_NSS2 0x64c8
252 #define FAPI_DATARATE_11AC40_400MBPS_SGI_NSS2 0x64c9
253 #define FAPI_DATARATE_11AC80_29M3BPS 0x6800
254 #define FAPI_DATARATE_11AC80_58M5BPS 0x6801
255 #define FAPI_DATARATE_11AC80_87M8BPS 0x6802
256 #define FAPI_DATARATE_11AC80_117MBPS 0x6803
257 #define FAPI_DATARATE_11AC80_175M5BPS 0x6804
258 #define FAPI_DATARATE_11AC80_234MBPS 0x6805
259 #define FAPI_DATARATE_11AC80_263M3BPS 0x6806
260 #define FAPI_DATARATE_11AC80_292M5BPS 0x6807
261 #define FAPI_DATARATE_11AC80_351MBPS 0x6808
262 #define FAPI_DATARATE_11AC80_390MBPS 0x6809
263 #define FAPI_DATARATE_11AC80_32M5BPS_SGI 0x6840
264 #define FAPI_DATARATE_11AC80_65MBPS_SGI 0x6841
265 #define FAPI_DATARATE_11AC80_97M5BPS_SGI 0x6842
266 #define FAPI_DATARATE_11AC80_130MBPS_SGI 0x6843
267 #define FAPI_DATARATE_11AC80_195MBPS_SGI 0x6844
268 #define FAPI_DATARATE_11AC80_260MBPS_SGI 0x6845
269 #define FAPI_DATARATE_11AC80_292M5BPS_SGI 0x6846
270 #define FAPI_DATARATE_11AC80_325MBPS_SGI 0x6847
271 #define FAPI_DATARATE_11AC80_390MBPS_SGI 0x6848
272 #define FAPI_DATARATE_11AC80_433M3BPS_SGI 0x6849
273 #define FAPI_DATARATE_11AC80_58M5BPS_NSS2 0x6880
274 #define FAPI_DATARATE_11AC80_117MBPS_NSS2 0x6881
275 #define FAPI_DATARATE_11AC80_175M5BPS_NSS2 0x6882
276 #define FAPI_DATARATE_11AC80_234MBPS_NSS2 0x6883
277 #define FAPI_DATARATE_11AC80_351MBPS_NSS2 0x6884
278 #define FAPI_DATARATE_11AC80_468MBPS_NSS2 0x6885
279 #define FAPI_DATARATE_11AC80_526M5BPS_NSS2 0x6886
280 #define FAPI_DATARATE_11AC80_585MBPS_NSS2 0x6887
281 #define FAPI_DATARATE_11AC80_702MBPS_NSS2 0x6888
282 #define FAPI_DATARATE_11AC80_780MBPS_NSS2 0x6889
283 #define FAPI_DATARATE_11AC80_65MBPS_SGI_NSS2 0x68c0
284 #define FAPI_DATARATE_11AC80_130MBPS_SGI_NSS2 0x68c1
285 #define FAPI_DATARATE_11AC80_195MBPS_SGI_NSS2 0x68c2
286 #define FAPI_DATARATE_11AC80_260MBPS_SGI_NSS2 0x68c3
287 #define FAPI_DATARATE_11AC80_390MBPS_SGI_NSS2 0x68c4
288 #define FAPI_DATARATE_11AC80_520MBPS_SGI_NSS2 0x68c5
289 #define FAPI_DATARATE_11AC80_585MBPS_SGI_NSS2 0x68c6
290 #define FAPI_DATARATE_11AC80_650MBPS_SGI_NSS2 0x68c7
291 #define FAPI_DATARATE_11AC80_780MBPS_SGI_NSS2 0x68c8
292 #define FAPI_DATARATE_11AC80_866M7BPS_SGI_NSS2 0x68c9
293 #define FAPI_DATARATE_CTR_TOTAL 0xe000
294 #define FAPI_DATARATE_CTR_NO_ERROR 0xe001
295 #define FAPI_DATARATE_CTR_CRC_ERROR 0xe002
296 #define FAPI_DATARATE_CTR_BAD_SIGNAL 0xe003
297 #define FAPI_DATARATE_CTR_STBC 0xe004
298 #define FAPI_DATARATE_CTR_DUPLICATE 0xe005
299 #define FAPI_DATARATE_CTR_ERROR 0xe006
300 #define FAPI_DATARATE_CTR_LDPC 0xe007
301
302 #define FAPI_DATAUNITDESCRIPTOR_IEEE802_11_FRAME 0x0000
303 #define FAPI_DATAUNITDESCRIPTOR_IEEE802_3_FRAME 0x0001
304 #define FAPI_DATAUNITDESCRIPTOR_AMSDU_SUBFRAME 0x0002
305 #define FAPI_DATAUNITDESCRIPTOR_AMSDU 0x0003
306 #define FAPI_DATAUNITDESCRIPTOR_TCP_ACK 0x0004
307
308 #define FAPI_DEVICEROLE_INFRASTRUCTURE_STATION 0x0001
309 #define FAPI_DEVICEROLE_P2P_GO 0x0002
310 #define FAPI_DEVICEROLE_P2P_DEVICE 0x0003
311 #define FAPI_DEVICEROLE_P2P_CLIENT 0x0004
312
313 #define FAPI_DEVICESTATE_IDLE 0
314 #define FAPI_DEVICESTATE_RX_RUNNING 1
315 #define FAPI_DEVICESTATE_TX_RUNNING 2
316 #define FAPI_DEVICESTATE_CW_RUNNING 3
317 #define FAPI_DEVICESTATE_BIST_RUNNING 4
318
319 #define FAPI_DIRECTION_TRANSMIT 0x0000
320 #define FAPI_DIRECTION_RECEIVE 0x0001
321 #define FAPI_DIRECTION_ANY 0x0003
322
323 #define FAPI_ENDPOINT_HOSTIO 0x0001
324 #define FAPI_ENDPOINT_DPLP 0x0002
325
326 #define FAPI_EPNOPOLICY_HIDDEN 0x0001
327 #define FAPI_EPNOPOLICY_A_BAND 0x0002
328 #define FAPI_EPNOPOLICY_G_BAND 0x0004
329 #define FAPI_EPNOPOLICY_STRICT_MATCH 0x0008
330 #define FAPI_EPNOPOLICY_SAME_NETWORK 0x0010
331 #define FAPI_EPNOPOLICY_AUTH_OPEN 0x0100
332 #define FAPI_EPNOPOLICY_AUTH_PSK 0x0200
333 #define FAPI_EPNOPOLICY_AUTH_EAPOL 0x0400
334
335 #define FAPI_EVENT_WIFI_EVENT_ASSOCIATION_REQUESTED 0x0000
336 #define FAPI_EVENT_WIFI_EVENT_AUTH_COMPLETE 0x0001
337 #define FAPI_EVENT_WIFI_EVENT_ASSOC_COMPLETE 0x0002
338 #define FAPI_EVENT_WIFI_EVENT_FW_AUTH_STARTED 0x0003
339 #define FAPI_EVENT_WIFI_EVENT_FW_ASSOC_STARTED 0x0004
340 #define FAPI_EVENT_WIFI_EVENT_FW_RE_ASSOC_STARTED 0x0005
341 #define FAPI_EVENT_WIFI_EVENT_DRIVER_SCAN_REQUESTED 0x0006
342 #define FAPI_EVENT_WIFI_EVENT_DRIVER_SCAN_RESULT_FOUND 0x0007
343 #define FAPI_EVENT_WIFI_EVENT_DRIVER_SCAN_COMPLETE 0x0008
344 #define FAPI_EVENT_WIFI_EVENT_G_SCAN_STARTED 0x0009
345 #define FAPI_EVENT_WIFI_EVENT_G_SCAN_COMPLETE 0x000a
346 #define FAPI_EVENT_WIFI_EVENT_DISASSOCIATION_REQUESTED 0x000b
347 #define FAPI_EVENT_WIFI_EVENT_RE_ASSOCIATION_REQUESTED 0x000c
348 #define FAPI_EVENT_WIFI_EVENT_ROAM_REQUESTED 0x000d
349 #define FAPI_EVENT_WIFI_EVENT_BEACON_RECEIVED 0x000e
350 #define FAPI_EVENT_WIFI_EVENT_ROAM_SCAN_STARTED 0x000f
351 #define FAPI_EVENT_WIFI_EVENT_ROAM_SCAN_COMPLETE 0x0010
352 #define FAPI_EVENT_WIFI_EVENT_ROAM_SEARCH_STARTED 0x0011
353 #define FAPI_EVENT_WIFI_EVENT_ROAM_SEARCH_STOPPED 0x0012
354 #define FAPI_EVENT_WIFI_EVENT_CHANNEL_SWITCH_ANOUNCEMENT 0x0014
355 #define FAPI_EVENT_WIFI_EVENT_FW_EAPOL_FRAME_TRANSMIT_START 0x0015
356 #define FAPI_EVENT_WIFI_EVENT_FW_EAPOL_FRAME_TRANSMIT_STOP 0x0016
357 #define FAPI_EVENT_WIFI_EVENT_DRIVER_EAPOL_FRAME_TRANSMIT_REQUESTED 0x0017
358 #define FAPI_EVENT_WIFI_EVENT_FW_EAPOL_FRAME_RECEIVED 0x0018
359 #define FAPI_EVENT_WIFI_EVENT_DRIVER_EAPOL_FRAME_RECEIVED 0x001a
360 #define FAPI_EVENT_WIFI_EVENT_BLOCK_ACK_NEGOTIATION_COMPLETE 0x001b
361 #define FAPI_EVENT_WIFI_EVENT_BT_COEX_BT_SCO_START 0x001c
362 #define FAPI_EVENT_WIFI_EVENT_BT_COEX_BT_SCO_STOP 0x001d
363 #define FAPI_EVENT_WIFI_EVENT_BT_COEX_BT_SCAN_START 0x001e
364 #define FAPI_EVENT_WIFI_EVENT_BT_COEX_BT_SCAN_STOP 0x001f
365 #define FAPI_EVENT_WIFI_EVENT_BT_COEX_BT_HID_START 0x0020
366 #define FAPI_EVENT_WIFI_EVENT_BT_COEX_BT_HID_STOP 0x0021
367 #define FAPI_EVENT_WIFI_EVENT_ROAM_AUTH_STARTED 0x0022
368 #define FAPI_EVENT_WIFI_EVENT_ROAM_AUTH_COMPLETE 0x0023
369 #define FAPI_EVENT_WIFI_EVENT_ROAM_ASSOC_STARTED 0x0024
370 #define FAPI_EVENT_WIFI_EVENT_ROAM_ASSOC_COMPLETE 0x0025
371 #define FAPI_EVENT_WIFI_EVENT_G_SCAN_STOP 0x0026
372 #define FAPI_EVENT_WIFI_EVENT_G_SCAN_CYCLE_STARTED 0x0027
373 #define FAPI_EVENT_WIFI_EVENT_G_SCAN_CYCLE_COMPLETED 0x0028
374 #define FAPI_EVENT_WIFI_EVENT_G_SCAN_BUCKET_STARTED 0x0029
375 #define FAPI_EVENT_WIFI_EVENT_G_SCAN_BUCKET_COMPLETED 0x002a
376 #define FAPI_EVENT_WIFI_EVENT_G_SCAN_RESULTS_AVAILABLE 0x002b
377 #define FAPI_EVENT_WIFI_EVENT_G_SCAN_CAPABILITIES 0x002c
378 #define FAPI_EVENT_WIFI_EVENT_ROAM_CANDIDATE_FOUND 0x002d
379 #define FAPI_EVENT_WIFI_EVENT_ROAM_SCAN_CONFIG 0x002e
380 #define FAPI_EVENT_WIFI_EVENT_AUTH_TIMEOUT 0x002f
381 #define FAPI_EVENT_WIFI_EVENT_ASSOC_TIMEOUT 0x0030
382 #define FAPI_EVENT_WIFI_EVENT_MEM_ALLOC_FAILURE 0x0031
383 #define FAPI_EVENT_WIFI_EVENT_DRIVER_PNO_ADD 0x0032
384 #define FAPI_EVENT_WIFI_EVENT_DRIVER_PNO_REMOVE 0x0033
385 #define FAPI_EVENT_WIFI_EVENT_DRIVER_PNO_NETWORK_FOUND 0x0034
386 #define FAPI_EVENT_WIFI_EVENT_DRIVER_PNO_SCAN_REQUESTED 0x0035
387 #define FAPI_EVENT_WIFI_EVENT_DRIVER_PNO_SCAN_RESULT_FOUND 0x0036
388 #define FAPI_EVENT_WIFI_EVENT_DRIVER_PNO_SCAN_COMPLETE 0x0037
389 #define FAPI_EVENT_WIFI_EVENT_BLACKOUT_START 0x0064
390 #define FAPI_EVENT_WIFI_EVENT_BLACKOUT_STOP 0x0065
391 #define FAPI_EVENT_WIFI_EVENT_NAN_PUBLISH_TERMINATED 0x0100
392 #define FAPI_EVENT_WIFI_EVENT_NAN_SUBSCRIBE_TERMINATED 0x0101
393 #define FAPI_EVENT_WIFI_EVENT_NAN_MATCH_EXPIRED 0x0102
394 #define FAPI_EVENT_WIFI_EVENT_NAN_ADDRESS_CHANGED 0x0103
395 #define FAPI_EVENT_WIFI_EVENT_NAN_CLUSTER_STARTED 0x0104
396 #define FAPI_EVENT_WIFI_EVENT_NAN_CLUSTER_JOINED 0x0105
397 #define FAPI_EVENT_WIFI_EVENT_NAN_TRANSMIT_FOLLOWUP 0x0106
398
399 #define FAPI_HIDDENSSID_NOT_HIDDEN 0x0000
400 #define FAPI_HIDDENSSID_HIDDEN_ZERO_LENGTH 0x0001
401 #define FAPI_HIDDENSSID_HIDDEN_ZERO_DATA 0x0002
402
403 #define FAPI_HOSTSTATE_LCD_ACTIVE 0x0001
404 #define FAPI_HOSTSTATE_CELLULAR_ACTIVE 0x0002
405 #define FAPI_HOSTSTATE_SAR_ACTIVE 0x0004
406 #define FAPI_HOSTSTATE_GRIP_ACTIVE 0x0008
407
408 #define FAPI_HT_NON_HT_RATE 0x1
409 #define FAPI_HT_HT_RATE 0x2
410 #define FAPI_HT_VHT_RATE 0x3
411
412 #define FAPI_KEYTYPE_GROUP 0x0000
413 #define FAPI_KEYTYPE_PAIRWISE 0x0001
414 #define FAPI_KEYTYPE_WEP 0x0002
415 #define FAPI_KEYTYPE_IGTK 0x0003
416 #define FAPI_KEYTYPE_FIRST_ILLEGAL 0x0004
417
418 #define FAPI_MESSAGETYPE_EAP_MESSAGE 0x0001
419 #define FAPI_MESSAGETYPE_EAPOL_KEY_M123 0x0002
420 #define FAPI_MESSAGETYPE_EAPOL_KEY_M4 0x0003
421 #define FAPI_MESSAGETYPE_ARP 0x0004
422 #define FAPI_MESSAGETYPE_DHCP 0x0005
423 #define FAPI_MESSAGETYPE_NEIGHBOR_DISCOVERY 0x0006
424 #define FAPI_MESSAGETYPE_WAI_MESSAGE 0x0007
425 #define FAPI_MESSAGETYPE_PERIODIC_OFFLOAD 0x0008
426 #define FAPI_MESSAGETYPE_IEEE80211_ACTION 0x0010
427 /* TBD: Auto generate to add this */
428 #define FAPI_MESSAGETYPE_IEEE80211_MGMT_NOT_ACTION 0x0011
429
430 #define FAPI_MODE_SOURCE 0x0001
431 #define FAPI_MODE_SINK 0x0002
432 #define FAPI_MODE_LOOPBACK 0x0003
433
434 #define FAPI_NANAVAILABILITYDURATION_16MS 0x00
435 #define FAPI_NANAVAILABILITYDURATION_32MS 0x01
436 #define FAPI_NANAVAILABILITYDURATION_64MS 0x02
437
438 #define FAPI_NANOPERATIONCONTROL_CLUSTER_SDF 0x0001
439 #define FAPI_NANOPERATIONCONTROL_MAC_ADDRESS_EVENT 0x0002
440 #define FAPI_NANOPERATIONCONTROL_START_CLUSTER_EVENT 0x0004
441 #define FAPI_NANOPERATIONCONTROL_JOINED_CLUSTER_EVENT 0x0008
442
443 #define FAPI_NANSDFCONTROL_PUBLISH_END_EVENT 0x0001
444 #define FAPI_NANSDFCONTROL_SUBSCRIBE_END_EVENT 0x0002
445 #define FAPI_NANSDFCONTROL_MATCH_EXPIRED_EVENT 0x0004
446 #define FAPI_NANSDFCONTROL_RECEIVED_FOLLOWUP_EVENT 0x0008
447 #define FAPI_NANSDFCONTROL_DISABLE_RESPONSES_AFTER_FOLLOWUP 0x0010
448
449 #define FAPI_PACKETFILTERMODE_OPT_OUT 0x01
450 #define FAPI_PACKETFILTERMODE_OPT_IN 0x02
451 #define FAPI_PACKETFILTERMODE_OPT_OUT_SLEEP 0x04
452 #define FAPI_PACKETFILTERMODE_OPT_IN_SLEEP 0x08
453
454 #define FAPI_PMALLOCAREA_PMALLOC_STATS 0x0000
455 #define FAPI_PMALLOCAREA_PMALLOC_FSM_STATS 0x0001
456 #define FAPI_PMALLOCAREA_HOSTIO_SIG_SIZES 0x0002
457
458 #define FAPI_POWERMANAGEMENTMODE_ACTIVE_MODE 0x0000
459 #define FAPI_POWERMANAGEMENTMODE_POWER_SAVE 0x0001
460
461 #define FAPI_PRIMARYCHANNELPOSITION_P0 0x00
462 #define FAPI_PRIMARYCHANNELPOSITION_P1 0x01
463 #define FAPI_PRIMARYCHANNELPOSITION_P2 0x02
464 #define FAPI_PRIMARYCHANNELPOSITION_P3 0x03
465 #define FAPI_PRIMARYCHANNELPOSITION_P4 0x04
466 #define FAPI_PRIMARYCHANNELPOSITION_P5 0x05
467 #define FAPI_PRIMARYCHANNELPOSITION_P6 0x06
468 #define FAPI_PRIMARYCHANNELPOSITION_P7 0x07
469 #define FAPI_PRIMARYCHANNELPOSITION_NOT_APPLICABLE 0x08
470
471 #define FAPI_PRIORITY_QOS_UP0 0x0000
472 #define FAPI_PRIORITY_QOS_UP1 0x0001
473 #define FAPI_PRIORITY_QOS_UP2 0x0002
474 #define FAPI_PRIORITY_QOS_UP3 0x0003
475 #define FAPI_PRIORITY_QOS_UP4 0x0004
476 #define FAPI_PRIORITY_QOS_UP5 0x0005
477 #define FAPI_PRIORITY_QOS_UP6 0x0006
478 #define FAPI_PRIORITY_QOS_UP7 0x0007
479 #define FAPI_PRIORITY_CONTENTION 0x8000
480
481 #define FAPI_PROCEDURETYPE_UNKNOWN 0x0000
482 #define FAPI_PROCEDURETYPE_CONNECTION_STARTED 0x0001
483 #define FAPI_PROCEDURETYPE_DEVICE_DISCOVERED 0x0002
484 #define FAPI_PROCEDURETYPE_ROAMING_STARTED 0x0003
485
486 #define FAPI_PROCESSOR_DEFAULT 0x0
487 #define FAPI_PROCESSOR_CHIPCPU 0x1
488 #define FAPI_PROCESSOR_HOSTCPU 0x3
489
490 #define FAPI_PROTOCOL_UDP 0x0001
491 #define FAPI_PROTOCOL_TCP 0x0002
492
493 #define FAPI_PURPOSE_BEACON 0x0001
494 #define FAPI_PURPOSE_PROBE_RESPONSE 0x0002
495 #define FAPI_PURPOSE_ASSOCIATION_RESPONSE 0x0004
496 #define FAPI_PURPOSE_LOCAL 0x0008
497 #define FAPI_PURPOSE_ASSOCIATION_REQUEST 0x0010
498 #define FAPI_PURPOSE_PROBE_REQUEST 0x0020
499
500 #define FAPI_RADIOBITMAP_RADIO_0 0x0001
501 #define FAPI_RADIOBITMAP_RADIO_1 0x0002
502
503 #define FAPI_REASONCODE_RESERVED 0x0000
504 #define FAPI_REASONCODE_UNSPECIFIED_REASON 0x0001
505 #define FAPI_REASONCODE_DEAUTHENTICATED_INVALID_AUTHENTICATION 0x0002
506 #define FAPI_REASONCODE_DEAUTHENTICATED_LEAVING_ESS 0x0003
507 #define FAPI_REASONCODE_DEAUTHENTICATED_INACTIVITY 0x0004
508 #define FAPI_REASONCODE_DEAUTHENTICATED_NO_MORE_STATIONS 0x0005
509 #define FAPI_REASONCODE_DEAUTHENTICATED_INVALID_CLASS_2_FRAME 0x0006
510 #define FAPI_REASONCODE_DEAUTHENTICATED_INVALID_CLASS_3_FRAME 0x0007
511 #define FAPI_REASONCODE_DEAUTHENTICATED_UNACCEPTABLE_POWER_CAPABILITY 0x000a
512 #define FAPI_REASONCODE_DEAUTHENTICATED_4_WAY_HANDSHAKE_TIMEOUT 0x000f
513 #define FAPI_REASONCODE_DEAUTHENTICATED_GROUP_HANDSHAKE_TIMEOUT 0x0010
514 #define FAPI_REASONCODE_DEAUTHENTICATED_HANDSHAKE_ELEMENT_MISMATCH 0x0011
515 #define FAPI_REASONCODE_DEAUTHENTICATED_REASON_INVALID_RSNE 0x0014
516 #define FAPI_REASONCODE_DEAUTHENTICATED_802_1_X_AUTH_FAILED 0x0017
517 #define FAPI_REASONCODE_TDLS_PEER_UNREACHABLE 0x0019
518 #define FAPI_REASONCODE_TDLS_TEARDOWN_UNSPECIFIED_REASON 0x001a
519 #define FAPI_REASONCODE_QOS_UNSPECIFIED_REASON 0x0020
520 #define FAPI_REASONCODE_QOS_EXCESSIVE_NOT_ACK 0x0022
521 #define FAPI_REASONCODE_QOS_TXOP_LIMIT_EXCEEDED 0x0023
522 #define FAPI_REASONCODE_QSTA_LEAVING 0x0024
523 #define FAPI_REASONCODE_END 0x0025
524 #define FAPI_REASONCODE_UNKNOWN 0x0026
525 #define FAPI_REASONCODE_TIMEOUT 0x0027
526 #define FAPI_REASONCODE_KEEP_ALIVE_FAILURE 0x0028
527 #define FAPI_REASONCODE_START 0x0029
528 #define FAPI_REASONCODE_SYNCHRONISATION_LOSS 0x8003
529 #define FAPI_REASONCODE_SECURITY_REQUIRED 0x8004
530 #define FAPI_REASONCODE_ROAMING_FAILURE_LINK_LOSS_NO_CANDIDATE 0x8005
531 #define FAPI_REASONCODE_HOTSPOT_MAX_CLIENT_REACHED 0x8006
532 #define FAPI_REASONCODE_NAN_SERVICE_TERMINATED_TIMEOUT 0x9001
533 #define FAPI_REASONCODE_NAN_SERVICE_TERMINATED_USER_REQUEST 0x9002
534 #define FAPI_REASONCODE_NAN_SERVICE_TERMINATED_COUNT_REACHED 0x9003
535 #define FAPI_REASONCODE_NAN_SERVICE_TERMINATED_DISCOVERY_SHUTDOWN 0x9004
536 #define FAPI_REASONCODE_NAN_SERVICE_TERMINATED_POST_DISCOVERY_EXPIRED 0x9005
537 #define FAPI_REASONCODE_NAN_TRANSMIT_FOLLOWUP_SUCCESS 0x9006
538 #define FAPI_REASONCODE_NAN_TRANSMIT_FOLLOWUP_FAILURE 0x9007
539
540 #define FAPI_REPORTMODE_BUFFER_FULL 0x0001
541 #define FAPI_REPORTMODE_END_OF_SCAN_CYCLE 0x0002
542 #define FAPI_REPORTMODE_REAL_TIME 0x0004
543 #define FAPI_REPORTMODE_NO_BATCH 0x0008
544
545 #define FAPI_REQUESTTYPE_SMAPPER_RX_CONFIG 0x0000
546
547 #define FAPI_RESULTCODE_SUCCESS 0x0000
548 #define FAPI_RESULTCODE_UNSPECIFIED_FAILURE 0x0001
549 #define FAPI_RESULTCODE_INVALID_PARAMETERS 0x0026
550 #define FAPI_RESULTCODE_REJECTED_INVALID_IE 0x0028
551 #define FAPI_RESULTCODE_NOT_ALLOWED 0x0030
552 #define FAPI_RESULTCODE_NOT_PRESENT 0x0031
553 #define FAPI_RESULTCODE_TRANSMISSION_FAILURE 0x004f
554 #define FAPI_RESULTCODE_TIMEOUT 0x8000
555 #define FAPI_RESULTCODE_TOO_MANY_SIMULTANEOUS_REQUESTS 0x8001
556 #define FAPI_RESULTCODE_BSS_ALREADY_STARTED_OR_JOINED 0x8002
557 #define FAPI_RESULTCODE_NOT_SUPPORTED 0x8003
558 #define FAPI_RESULTCODE_INVALID_STATE 0x8004
559 #define FAPI_RESULTCODE_INSUFFICIENT_RESOURCE 0x8006
560 #define FAPI_RESULTCODE_MISSING_INFORMATION_ELEMENT 0x8007
561 #define FAPI_RESULTCODE_INVALID_VIRTUAL_INTERFACE_INDEX 0x800a
562 #define FAPI_RESULTCODE_HOST_REQUEST_SUCCESS 0x800b
563 #define FAPI_RESULTCODE_HOST_REQUEST_FAILED 0x800c
564 #define FAPI_RESULTCODE_COMEBACK_TIME_RUNNING 0x800d
565 #define FAPI_RESULTCODE_INVALID_FREQUENCY 0x800e
566 #define FAPI_RESULTCODE_PROBE_TIMEOUT 0x800f
567 #define FAPI_RESULTCODE_AUTH_TIMEOUT 0x8010
568 #define FAPI_RESULTCODE_ASSOC_TIMEOUT 0x8011
569 #define FAPI_RESULTCODE_ASSOC_ABORT 0x8012
570 /*Will remove it once we get latest fapi.xml */
571 #define FAPI_RESULTCODE_AUTH_NO_ACK 0x8013
572 #define FAPI_RESULTCODE_ASSOC_NO_ACK 0x8014
573 /*--------------------------------------------------*/
574 #define FAPI_RESULTCODE_INVALID_TLV_VALUE 0x9000
575 #define FAPI_RESULTCODE_NAN_PROTOCOL_FAILURE 0x9001
576 #define FAPI_RESULTCODE_NAN_INVALID_PUBLISH_SUBSCRIBE_ID 0x9002
577 #define FAPI_RESULTCODE_NAN_INVALID_REQUESTOR_INSTANCE_ID 0x9003
578
579 #define FAPI_RTTBANDWIDTH_20MHZ 0x0004
580 #define FAPI_RTTBANDWIDTH_40MHZ 0x0008
581 #define FAPI_RTTBANDWIDTH_80MHZ 0x0010
582 #define FAPI_RTTBANDWIDTH_160MHZ 0x0020
583
584 #define FAPI_RTTPEERTYPE_UNKNOWN 0x0000
585 #define FAPI_RTTPEERTYPE_AP 0x0001
586 #define FAPI_RTTPEERTYPE_STA 0x0002
587 #define FAPI_RTTPEERTYPE_P2P_GO 0x0003
588 #define FAPI_RTTPEERTYPE_P2P_CLIENT 0x0004
589 #define FAPI_RTTPEERTYPE_NAN_DEVICE 0x0005
590
591 #define FAPI_RTTPREAMBLE_LEGACY 0x0001
592 #define FAPI_RTTPREAMBLE_HT 0x0002
593 #define FAPI_RTTPREAMBLE_VHT 0x0004
594
595 #define FAPI_RTTSTATUS_SUCCESS 0x0000
596 #define FAPI_RTTSTATUS_UNSPECIFIED_FAILURE 0x0001
597 #define FAPI_RTTSTATUS_FAIL_NO_RESPONSE 0x0002
598 #define FAPI_RTTSTATUS_FAIL_REJECTED 0x0003
599 #define FAPI_RTTSTATUS_FAIL_NOT_SCHEDULED 0x0004
600 #define FAPI_RTTSTATUS_FAIL_TIMEOUT 0x0005
601 #define FAPI_RTTSTATUS_FAIL_INCORRECT_CHANNEL 0x0006
602 #define FAPI_RTTSTATUS_FAIL_FTM_NOT_SUPPORTED 0x0007
603 #define FAPI_RTTSTATUS_MEASUREMENT_ABORTED 0x0008
604 #define FAPI_RTTSTATUS_FAIL_INVALID_TIME_STAMP 0x0009
605 #define FAPI_RTTSTATUS_FAIL_NO_FTM_RECEIVED 0x000a
606 #define FAPI_RTTSTATUS_FAIL_BURST_NOT_SCHEDULED 0x000b
607 #define FAPI_RTTSTATUS_FAIL_BUSY_TRY_LATER 0x000c
608 #define FAPI_RTTSTATUS_FAIL_INVALID_REQUEST 0x000d
609 #define FAPI_RTTSTATUS_FAIL_FTM_PARAMETER_OVERRIDE 0x000f
610
611 #define FAPI_RTTTYPE_ONE_SIDED 0x0001
612 #define FAPI_RTTTYPE_TWO_SIDED 0x0002
613
614 #define FAPI_RXSTARTFLAGS_NONE 0x0000
615 #define FAPI_RXSTARTFLAGS_SCAN_CHANNEL 0x0001
616 #define FAPI_RXSTARTFLAGS_FILTERING 0x0002
617 #define FAPI_RXSTARTFLAGS_ACK 0x0008
618 #define FAPI_RXSTARTFLAGS_LP_MODE 0x0010
619
620 #define FAPI_SCANPOLICY_PASSIVE 0x01
621 #define FAPI_SCANPOLICY_TEST_MODE 0x02
622 #define FAPI_SCANPOLICY_ANY_RA 0x04
623 #define FAPI_SCANPOLICY_2_4GHZ 0x08
624 #define FAPI_SCANPOLICY_5GHZ 0x10
625 #define FAPI_SCANPOLICY_NON_DFS 0x20
626 #define FAPI_SCANPOLICY_DFS 0x40
627 #define FAPI_SCANPOLICY_ON_CHANNEL 0x80
628
629 #define FAPI_SCANTYPE_INITIAL_SCAN 0x0001
630 #define FAPI_SCANTYPE_FULL_SCAN 0x0002
631 #define FAPI_SCANTYPE_SCHEDULED_SCAN 0x0003
632 #define FAPI_SCANTYPE_P2P_SCAN_FULL 0x0004
633 #define FAPI_SCANTYPE_P2P_SCAN_SOCIAL 0x0005
634 #define FAPI_SCANTYPE_OBSS_SCAN 0x0006
635 #define FAPI_SCANTYPE_AP_AUTO_CHANNEL_SELECTION 0x0007
636 #define FAPI_SCANTYPE_GSCAN 0x0009
637 #define FAPI_SCANTYPE_MEASUREMENT_SCAN 0x000a
638 #define FAPI_SCANTYPE_SOFT_NEIGHBOUR_ROAMING_SCAN 0x000b
639 #define FAPI_SCANTYPE_SOFT_CACHED_ROAMING_SCAN 0x000c
640 #define FAPI_SCANTYPE_SOFT_ALL_ROAMING_SCAN 0x000d
641 #define FAPI_SCANTYPE_HARD_NEIGHBOUR_ROAMING_SCAN 0x000e
642 #define FAPI_SCANTYPE_HARD_CACHED_ROAMING_SCAN 0x000f
643 #define FAPI_SCANTYPE_HARD_ALL_ROAMING_SCAN 0x0010
644 #define FAPI_SCANTYPE_OBSS_SCAN_INTERNAL 0x0011
645 #define FAPI_SCANTYPE_NAN_SCAN 0x0012
646 #define FAPI_SCANTYPE_FIRST_ILLEGAL 0x0013
647
648 #define FAPI_STATSSTOPBITMAP_STATS_RADIO 0x0001
649 #define FAPI_STATSSTOPBITMAP_STATS_RADIO_CCA 0x0002
650 #define FAPI_STATSSTOPBITMAP_STATS_RADIO_CHANNELS 0x0004
651 #define FAPI_STATSSTOPBITMAP_STATS_RADIO_SCAN 0x0008
652 #define FAPI_STATSSTOPBITMAP_STATS_IFACE 0x0010
653 #define FAPI_STATSSTOPBITMAP_STATS_IFACE_TXRATE 0x0020
654 #define FAPI_STATSSTOPBITMAP_STATS_IFACE_AC 0x0040
655 #define FAPI_STATSSTOPBITMAP_STATS_IFACE_CONTENSION 0x0080
656
657 #define FAPI_TDLSACTION_DISCOVERY 0x0000
658 #define FAPI_TDLSACTION_SETUP 0x0001
659 #define FAPI_TDLSACTION_TEARDOWN 0x0002
660 #define FAPI_TDLSACTION_CHANNEL_SWITCH 0x0003
661
662 #define FAPI_TDLSEVENT_CONNECTED 0x0001
663 #define FAPI_TDLSEVENT_DISCONNECTED 0x0002
664 #define FAPI_TDLSEVENT_DISCOVERED 0x0003
665
666 #define FAPI_TRANSMISSIONSTATUS_SUCCESSFUL 0x0000
667 #define FAPI_TRANSMISSIONSTATUS_RETRY_LIMIT 0x0001
668 #define FAPI_TRANSMISSIONSTATUS_TX_LIFETIME 0x0002
669 #define FAPI_TRANSMISSIONSTATUS_NO_BSS 0x0003
670 #define FAPI_TRANSMISSIONSTATUS_EXCESSIVE_DATA_LENGTH 0x0004
671 #define FAPI_TRANSMISSIONSTATUS_UNAVAILABLE_KEY_MAPPING 0x0005
672 #define FAPI_TRANSMISSIONSTATUS_UNSPECIFIED_FAILURE 0x0006
673
674 #define FAPI_TXDATATYPE_DATA_WORD 0x0000
675 #define FAPI_TXDATATYPE_DATA_RANDOM 0x0001
676
677 #define FAPI_TXREADFLAGS_NONE 0x0000
678 #define FAPI_TXREADFLAGS_FRAME_COUNTING 0x0001
679 #define FAPI_TXREADFLAGS_THERMAL_CUTOUT 0x0002
680
681 #define FAPI_TXSETPARAMSFLAGS_NONE 0x0000
682 #define FAPI_TXSETPARAMSFLAGS_ACK 0x0001
683 #define FAPI_TXSETPARAMSFLAGS_DUPLICATE_80 0x0002
684 #define FAPI_TXSETPARAMSFLAGS_DUPLICATE_40 0x0004
685 #define FAPI_TXSETPARAMSFLAGS_DEAFEN_RX 0x0008
686 #define FAPI_TXSETPARAMSFLAGS_CS 0x0010
687 #define FAPI_TXSETPARAMSFLAGS_SCAN_CHANNEL 0x0020
688 #define FAPI_TXSETPARAMSFLAGS_SHORT_PREAMBLE 0x0040
689 #define FAPI_TXSETPARAMSFLAGS_DISABLE_SCRAMBLER 0x0080
690 #define FAPI_TXSETPARAMSFLAGS_LDPC 0x0100
691 #define FAPI_TXSETPARAMSFLAGS_STBC 0x0200
692 #define FAPI_TXSETPARAMSFLAGS_DISABLE_SPREADER 0x0400
693 #define FAPI_TXSETPARAMSFLAGS_GREENFIELD_PREAMBLE 0x0800
694 #define FAPI_TXSETPARAMSFLAGS_IBSS_FRAMES 0x2000
695
696 #define FAPI_TYPEOFAIRPOWER_EIRP 0x00
697 #define FAPI_TYPEOFAIRPOWER_TPO 0x01
698 #define FAPI_TYPEOFAIRPOWER_RAW 0x02
699
700 #define FAPI_USAGE_NO_USE 0x0
701 #define FAPI_USAGE_USE 0x1
702
703 #define FAPI_VIFRANGE_VIF_INDEX_MIN 0x0001
704 #define FAPI_VIFRANGE_VIF_INDEX_MAX 0x0008
705
706 #define FAPI_VIFTYPE_UNSYNCHRONISED 0x0000
707 #define FAPI_VIFTYPE_SCAN 0x0001
708 #define FAPI_VIFTYPE_STATION 0x0002
709 #define FAPI_VIFTYPE_AP 0x0003
710 #define FAPI_VIFTYPE_WLANLITE 0x0004
711 #define FAPI_VIFTYPE_NAN 0x0005
712 #define FAPI_VIFTYPE_DISCOVERY 0x0006
713 #define FAPI_VIFTYPE_OFFCHANNEL 0x0007
714 #define FAPI_VIFTYPE_RANGE 0x0008
715 #define FAPI_VIFTYPE_MONITOR 0x0010
716
717 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_20MHZ_PRIMARYCHANNELPOSITION_P0 0x0000
718 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_20MHZ_PRIMARYCHANNELPOSITION_P1 0x0001
719 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_20MHZ_PRIMARYCHANNELPOSITION_P2 0x0002
720 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_20MHZ_PRIMARYCHANNELPOSITION_P3 0x0003
721 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_20MHZ_PRIMARYCHANNELPOSITION_P4 0x0004
722 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_20MHZ_PRIMARYCHANNELPOSITION_P5 0x0005
723 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_20MHZ_PRIMARYCHANNELPOSITION_P6 0x0006
724 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_20MHZ_PRIMARYCHANNELPOSITION_P7 0x0007
725 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_20MHZ_PRIMARYCHANNELPOSITION_NOT_APPLICABLE 0x0008
726 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_40MHZ_PRIMARYCHANNELPOSITION_P0 0x0100
727 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_40MHZ_PRIMARYCHANNELPOSITION_P1 0x0101
728 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_40MHZ_PRIMARYCHANNELPOSITION_P2 0x0102
729 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_40MHZ_PRIMARYCHANNELPOSITION_P3 0x0103
730 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_40MHZ_PRIMARYCHANNELPOSITION_P4 0x0104
731 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_40MHZ_PRIMARYCHANNELPOSITION_P5 0x0105
732 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_40MHZ_PRIMARYCHANNELPOSITION_P6 0x0106
733 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_40MHZ_PRIMARYCHANNELPOSITION_P7 0x0107
734 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_40MHZ_PRIMARYCHANNELPOSITION_NOT_APPLICABLE 0x0108
735 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_80MHZ_PRIMARYCHANNELPOSITION_P0 0x0200
736 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_80MHZ_PRIMARYCHANNELPOSITION_P1 0x0201
737 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_80MHZ_PRIMARYCHANNELPOSITION_P2 0x0202
738 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_80MHZ_PRIMARYCHANNELPOSITION_P3 0x0203
739 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_80MHZ_PRIMARYCHANNELPOSITION_P4 0x0204
740 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_80MHZ_PRIMARYCHANNELPOSITION_P5 0x0205
741 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_80MHZ_PRIMARYCHANNELPOSITION_P6 0x0206
742 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_80MHZ_PRIMARYCHANNELPOSITION_P7 0x0207
743 #define FAPI_CHANNELBANDWIDTH_BANDWIDTH_80MHZ_PRIMARYCHANNELPOSITION_NOT_APPLICABLE 0x0208
744
745 #define MA_UNITDATA_REQ 0x1000
746 #define MA_CONTROL_REQ 0x1001
747 #define MA_SPARE_SIGNAL_1_REQ 0x1002
748 #define MA_SPARE_SIGNAL_2_REQ 0x1003
749 #define MA_SPARE_SIGNAL_3_REQ 0x1004
750 #define MA_UNITDATA_CFM 0x1100
751 #define MA_CONTROL_CFM 0x1101
752 #define MA_SPARE_SIGNAL_1_CFM 0x1102
753 #define MA_SPARE_SIGNAL_2_CFM 0x1103
754 #define MA_SPARE_SIGNAL_3_CFM 0x1104
755 #define MA_SPARE_SIGNAL_1_RES 0x1200
756 #define MA_SPARE_SIGNAL_2_RES 0x1201
757 #define MA_SPARE_SIGNAL_3_RES 0x1202
758 #define MA_UNITDATA_IND 0x1300
759 #define MA_BLOCKACK_IND 0x1301
760 #define MA_SPARE_SIGNAL_1_IND 0x1302
761 #define MA_SPARE_SIGNAL_2_IND 0x1303
762 #define MA_SPARE_SIGNAL_3_IND 0x1304
763 #define MLME_GET_REQ 0x2001
764 #define MLME_SET_REQ 0x2002
765 #define MLME_POWERMGT_REQ 0x2003
766 #define MLME_ADD_INFO_ELEMENTS_REQ 0x2004
767 #define MLME_ADD_SCAN_REQ 0x2005
768 #define MLME_DEL_SCAN_REQ 0x2006
769 #define MLME_ADD_VIF_REQ 0x2007
770 #define MLME_DEL_VIF_REQ 0x2008
771 #define MLME_START_REQ 0x2009
772 #define MLME_SET_CHANNEL_REQ 0x200a
773 #define MLME_CONNECT_REQ 0x200b
774 #define MLME_REASSOCIATE_REQ 0x200c
775 #define MLME_ROAM_REQ 0x200d
776 #define MLME_DISCONNECT_REQ 0x200e
777 #define MLME_REGISTER_ACTION_FRAME_REQ 0x200f
778 #define MLME_SEND_FRAME_REQ 0x2010
779 #define MLME_RESET_DWELL_TIME_REQ 0x2011
780 #define MLME_SET_TRAFFIC_PARAMETERS_REQ 0x2012
781 #define MLME_DEL_TRAFFIC_PARAMETERS_REQ 0x2013
782 #define MLME_SET_PACKET_FILTER_REQ 0x2014
783 #define MLME_SET_IP_ADDRESS_REQ 0x2015
784 #define MLME_SET_ACL_REQ 0x2016
785 #define MLME_SETKEYS_REQ 0x2018
786 #define MLME_GET_KEY_SEQUENCE_REQ 0x201a
787 #define MLME_SET_PMK_REQ 0x201c
788 #define MLME_SET_CACHED_CHANNELS_REQ 0x201f
789 #define MLME_SET_WHITELIST_SSID_REQ 0x2020
790 #define MLME_TDLS_ACTION_REQ 0x2021
791 #define MLME_CHANNEL_SWITCH_REQ 0x2022
792 #define MLME_MONITOR_RSSI_REQ 0x2023
793 #define MLME_START_LINK_STATISTICS_REQ 0x2024
794 #define MLME_STOP_LINK_STATISTICS_REQ 0x2025
795 #define MLME_SET_BSSID_HOTLIST_REQ 0x2026
796 #define MLME_SET_PNO_LIST_REQ 0x2027
797 #define MLME_HOST_STATE_REQ 0x2028
798 #define MLME_ADD_RANGE_REQ 0x2029
799 #define MLME_DEL_RANGE_REQ 0x202a
800 #define MLME_SET_NOA_REQ 0x202b
801 #define MLME_SET_CTWINDOW_REQ 0x202c
802 #define MLME_NAN_START_REQ 0x202d
803 #define MLME_NAN_CONFIG_REQ 0x202e
804 #define MLME_NAN_PUBLISH_REQ 0x202f
805 #define MLME_NAN_SUBSCRIBE_REQ 0x2030
806 #define MLME_NAN_FOLLOWUP_REQ 0x2031
807 #define MLME_SPARE_SIGNAL_1_REQ 0x2032
808 #define MLME_SPARE_SIGNAL_2_REQ 0x2033
809 #define MLME_SPARE_SIGNAL_3_REQ 0x2034
810 #define MLME_GET_CFM 0x2101
811 #define MLME_SET_CFM 0x2102
812 #define MLME_POWERMGT_CFM 0x2103
813 #define MLME_ADD_INFO_ELEMENTS_CFM 0x2104
814 #define MLME_ADD_SCAN_CFM 0x2105
815 #define MLME_DEL_SCAN_CFM 0x2106
816 #define MLME_ADD_VIF_CFM 0x2107
817 #define MLME_DEL_VIF_CFM 0x2108
818 #define MLME_START_CFM 0x2109
819 #define MLME_SET_CHANNEL_CFM 0x210a
820 #define MLME_CONNECT_CFM 0x210b
821 #define MLME_REASSOCIATE_CFM 0x210c
822 #define MLME_ROAM_CFM 0x210d
823 #define MLME_DISCONNECT_CFM 0x210e
824 #define MLME_REGISTER_ACTION_FRAME_CFM 0x210f
825 #define MLME_SEND_FRAME_CFM 0x2110
826 #define MLME_RESET_DWELL_TIME_CFM 0x2111
827 #define MLME_SET_TRAFFIC_PARAMETERS_CFM 0x2112
828 #define MLME_DEL_TRAFFIC_PARAMETERS_CFM 0x2113
829 #define MLME_SET_PACKET_FILTER_CFM 0x2114
830 #define MLME_SET_IP_ADDRESS_CFM 0x2115
831 #define MLME_SET_ACL_CFM 0x2116
832 #define MLME_SETKEYS_CFM 0x2118
833 #define MLME_GET_KEY_SEQUENCE_CFM 0x211a
834 #define MLME_SET_PMK_CFM 0x211c
835 #define MLME_SET_CACHED_CHANNELS_CFM 0x211f
836 #define MLME_SET_WHITELIST_SSID_CFM 0x2120
837 #define MLME_TDLS_ACTION_CFM 0x2121
838 #define MLME_CHANNEL_SWITCH_CFM 0x2122
839 #define MLME_MONITOR_RSSI_CFM 0x2123
840 #define MLME_START_LINK_STATISTICS_CFM 0x2124
841 #define MLME_STOP_LINK_STATISTICS_CFM 0x2125
842 #define MLME_SET_BSSID_HOTLIST_CFM 0x2126
843 #define MLME_SET_PNO_LIST_CFM 0x2127
844 #define MLME_HOST_STATE_CFM 0x2128
845 #define MLME_ADD_RANGE_CFM 0x2129
846 #define MLME_DEL_RANGE_CFM 0x212a
847 #define MLME_SET_NOA_CFM 0x212b
848 #define MLME_SET_CTWINDOW_CFM 0x212c
849 #define MLME_NAN_START_CFM 0x212d
850 #define MLME_NAN_CONFIG_CFM 0x212e
851 #define MLME_NAN_PUBLISH_CFM 0x212f
852 #define MLME_NAN_SUBSCRIBE_CFM 0x2130
853 #define MLME_NAN_FOLLOWUP_CFM 0x2131
854 #define MLME_SPARE_SIGNAL_1_CFM 0x2132
855 #define MLME_SPARE_SIGNAL_2_CFM 0x2133
856 #define MLME_SPARE_SIGNAL_3_CFM 0x2134
857 #define MLME_CONNECT_RES 0x2200
858 #define MLME_CONNECTED_RES 0x2201
859 #define MLME_REASSOCIATE_RES 0x2202
860 #define MLME_ROAMED_RES 0x2203
861 #define MLME_TDLS_PEER_RES 0x2204
862 #define MLME_SPARE_SIGNAL_1_RES 0x2205
863 #define MLME_SPARE_SIGNAL_2_RES 0x2206
864 #define MLME_SPARE_SIGNAL_3_RES 0x2207
865 #define MLME_SCAN_IND 0x2300
866 #define MLME_SCAN_DONE_IND 0x2301
867 #define MLME_LISTEN_END_IND 0x2302
868 #define MLME_CONNECT_IND 0x2303
869 #define MLME_CONNECTED_IND 0x2304
870 #define MLME_REASSOCIATE_IND 0x2305
871 #define MLME_ROAM_IND 0x2306
872 #define MLME_ROAMED_IND 0x2307
873 #define MLME_DISCONNECT_IND 0x2308
874 #define MLME_DISCONNECTED_IND 0x2309
875 #define MLME_PROCEDURE_STARTED_IND 0x230a
876 #define MLME_MIC_FAILURE_IND 0x230b
877 #define MLME_FRAME_TRANSMISSION_IND 0x230c
878 #define MLME_RECEIVED_FRAME_IND 0x230d
879 #define MLME_TDLS_PEER_IND 0x230f
880 #define MLME_AP_LOSS_IND 0x2310
881 #define MLME_SIGNIFICANT_CHANGE_IND 0x2311
882 #define MLME_RSSI_REPORT_IND 0x2312
883 #define MLME_AC_PRIORITY_UPDATE_IND 0x2313
884 #define MLME_RANGE_IND 0x2314
885 #define MLME_RANGE_DONE_IND 0x2315
886 #define MLME_EVENT_LOG_IND 0x2316
887 #define MLME_NAN_EVENT_IND 0x2317
888 #define MLME_NAN_SERVICE_IND 0x2318
889 #define MLME_NAN_FOLLOWUP_IND 0x2319
890 #define MLME_CHANNEL_SWITCHED_IND 0x231a
891 #define MLME_SPARE_SIGNAL_1_IND 0x231b
892 #define MLME_SPARE_SIGNAL_2_IND 0x231c
893 #define MLME_SPARE_SIGNAL_3_IND 0x231d
894 #define DEBUG_SPARE_SIGNAL_1_REQ 0x8000
895 #define DEBUG_SPARE_SIGNAL_2_REQ 0x8001
896 #define DEBUG_SPARE_SIGNAL_3_REQ 0x8002
897 #define DEBUG_SPARE_SIGNAL_1_CFM 0x8100
898 #define DEBUG_SPARE_SIGNAL_2_CFM 0x8101
899 #define DEBUG_SPARE_SIGNAL_3_CFM 0x8102
900 #define DEBUG_SPARE_SIGNAL_1_RES 0x8200
901 #define DEBUG_SPARE_SIGNAL_2_RES 0x8201
902 #define DEBUG_SPARE_SIGNAL_3_RES 0x8202
903 #define DEBUG_WORD12IND 0x8301
904 #define DEBUG_FAULT_IND 0x8302
905 #define DEBUG_SPARE_SIGNAL_1_IND 0x8303
906 #define DEBUG_SPARE_SIGNAL_2_IND 0x8304
907 #define DEBUG_SPARE_SIGNAL_3_IND 0x8305
908 #define TEST_BLOCK_REQUESTS_REQ 0x9000
909 #define TEST_PANIC_REQ 0x9001
910 #define TEST_SUSPEND_REQ 0x9002
911 #define TEST_RESUME_REQ 0x9003
912 #define RADIO_LOGGING_REQ 0x9004
913 #define WLANLITE_CW_START_REQ 0x9005
914 #define WLANLITE_CW_STOP_REQ 0x9006
915 #define WLANLITE_TX_SET_PARAMS_REQ 0x9007
916 #define WLANLITE_TX_START_REQ 0x9008
917 #define WLANLITE_TX_READ_REQ 0x9009
918 #define WLANLITE_TX_STOP_REQ 0x900a
919 #define WLANLITE_RX_START_REQ 0x900b
920 #define WLANLITE_RX_READ_REQ 0x900c
921 #define WLANLITE_RX_STOP_REQ 0x900d
922 #define WLANLITE_STATUS_REQ 0x900e
923 #define TEST_PMALLOC_REQ 0x900f
924 #define TEST_CONFIGURE_MONITOR_MODE_REQ 0x9010
925 #define TEST_CHECK_FW_ALIVE_REQ 0x9012
926 #define DEBUG_GENERIC_REQ 0x9013
927 #define DEBUG_PKT_SINK_START_REQ 0x9014
928 #define DEBUG_PKT_SINK_STOP_REQ 0x9015
929 #define DEBUG_PKT_SINK_REPORT_REQ 0x9016
930 #define DEBUG_PKT_GEN_START_REQ 0x9017
931 #define DEBUG_PKT_GEN_STOP_REQ 0x9018
932 #define DEBUG_PKT_GEN_REPORT_REQ 0x9019
933 #define WLANLITE_RADIO_SELECT_REQ 0x901a
934 #define TEST_HIP_TESTER_START_REQ 0x901b
935 #define TEST_HIP_TESTER_STOP_REQ 0x901c
936 #define TEST_HIP_TESTER_SET_PARAMS_REQ 0x901d
937 #define TEST_HIP_TESTER_REPORT_REQ 0x901e
938 #define TEST_BIST_GET_TX_GAIN_REQ 0x901f
939 #define TEST_SPARE_SIGNAL_1_REQ 0x9020
940 #define TEST_SPARE_SIGNAL_2_REQ 0x9021
941 #define TEST_SPARE_SIGNAL_3_REQ 0x9022
942 #define RADIO_LOGGING_CFM 0x9100
943 #define WLANLITE_CW_START_CFM 0x9101
944 #define WLANLITE_TX_SET_PARAMS_CFM 0x9102
945 #define WLANLITE_CW_STOP_CFM 0x9103
946 #define WLANLITE_TX_START_CFM 0x9104
947 #define WLANLITE_TX_READ_CFM 0x9105
948 #define WLANLITE_TX_STOP_CFM 0x9106
949 #define WLANLITE_RX_START_CFM 0x9107
950 #define WLANLITE_RX_READ_CFM 0x9108
951 #define WLANLITE_RX_STOP_CFM 0x9109
952 #define WLANLITE_STATUS_CFM 0x910a
953 #define TEST_PMALLOC_CFM 0x910b
954 #define TEST_CONFIGURE_MONITOR_MODE_CFM 0x910c
955 #define TEST_CHECK_FW_ALIVE_CFM 0x910e
956 #define TEST_SUSPEND_CFM 0x910f
957 #define TEST_RESUME_CFM 0x9110
958 #define DEBUG_GENERIC_CFM 0x9111
959 #define WLANLITE_RADIO_SELECT_CFM 0x9112
960 #define TEST_HIP_TESTER_START_CFM 0x9113
961 #define TEST_HIP_TESTER_STOP_CFM 0x9114
962 #define TEST_HIP_TESTER_SET_PARAMS_CFM 0x9115
963 #define TEST_BIST_GET_TX_GAIN_CFM 0x9116
964 #define TEST_SPARE_SIGNAL_1_CFM 0x9117
965 #define TEST_SPARE_SIGNAL_2_CFM 0x9118
966 #define TEST_SPARE_SIGNAL_3_CFM 0x9119
967 #define TEST_SPARE_SIGNAL_1_RES 0x9200
968 #define TEST_SPARE_SIGNAL_2_RES 0x9201
969 #define TEST_SPARE_SIGNAL_3_RES 0x9202
970 #define RADIO_LOGGING_IND 0x9300
971 #define DEBUG_GENERIC_IND 0x9301
972 #define DEBUG_PKT_SINK_REPORT_IND 0x9302
973 #define DEBUG_PKT_GEN_REPORT_IND 0x9303
974 #define TEST_HIP_TESTER_REPORT_IND 0x9304
975 #define TEST_SPARE_SIGNAL_1_IND 0x9305
976 #define TEST_SPARE_SIGNAL_2_IND 0x9306
977 #define TEST_SPARE_SIGNAL_3_IND 0x9307
978
979 struct fapi_signal_header {
980 __le16 id;
981 __le16 receiver_pid;
982 __le16 sender_pid;
983 __le32 fw_reference;
984 } __packed;
985
986 struct fapi_vif_signal_header {
987 __le16 id;
988 __le16 receiver_pid;
989 __le16 sender_pid;
990 __le32 fw_reference;
991 __le16 vif;
992 } __packed;
993
994 struct fapi_signal {
995 __le16 id;
996 __le16 receiver_pid;
997 __le16 sender_pid;
998 __le32 fw_reference;
999
1000 union {
1001 struct {
1002 __le16 vif;
1003 __le16 host_tag;
1004 __le16 priority;
1005 __le16 peer_index;
1006 __le16 data_unit_descriptor;
1007 __le16 bulk_data_descriptor;
1008 __le32 spare_1;
1009 __le32 spare_2;
1010 __le32 spare_3;
1011 u8 dr[0];
1012 } __packed ma_unitdata_req;
1013 struct {
1014 __le16 vif;
1015 __le16 control_request_type;
1016 __le32 spare_1;
1017 __le32 spare_2;
1018 __le32 spare_3;
1019 u8 dr[0];
1020 } __packed ma_control_req;
1021 struct {
1022 __le16 vif;
1023 __le32 spare_1;
1024 __le32 spare_2;
1025 __le32 spare_3;
1026 u8 dr[0];
1027 } __packed ma_spare_signal_1_req;
1028 struct {
1029 __le16 vif;
1030 __le32 spare_1;
1031 __le32 spare_2;
1032 __le32 spare_3;
1033 u8 dr[0];
1034 } __packed ma_spare_signal_2_req;
1035 struct {
1036 __le16 vif;
1037 __le32 spare_1;
1038 __le32 spare_2;
1039 __le32 spare_3;
1040 u8 dr[0];
1041 } __packed ma_spare_signal_3_req;
1042 struct {
1043 __le16 vif;
1044 __le16 transmission_status;
1045 __le16 host_tag;
1046 __le16 sequence_number;
1047 __le16 peer_index;
1048 __le32 spare_1;
1049 __le32 spare_2;
1050 __le32 spare_3;
1051 u8 dr[0];
1052 } __packed ma_unitdata_cfm;
1053 struct {
1054 __le16 vif;
1055 __le16 result_code;
1056 __le32 spare_1;
1057 __le32 spare_2;
1058 __le32 spare_3;
1059 u8 dr[0];
1060 } __packed ma_control_cfm;
1061 struct {
1062 __le16 vif;
1063 __le16 result_code;
1064 __le32 spare_1;
1065 __le32 spare_2;
1066 __le32 spare_3;
1067 u8 dr[0];
1068 } __packed ma_spare_signal_1_cfm;
1069 struct {
1070 __le16 vif;
1071 __le16 result_code;
1072 __le32 spare_1;
1073 __le32 spare_2;
1074 __le32 spare_3;
1075 u8 dr[0];
1076 } __packed ma_spare_signal_2_cfm;
1077 struct {
1078 __le16 vif;
1079 __le16 result_code;
1080 __le32 spare_1;
1081 __le32 spare_2;
1082 __le32 spare_3;
1083 u8 dr[0];
1084 } __packed ma_spare_signal_3_cfm;
1085 struct {
1086 __le16 vif;
1087 __le32 spare_1;
1088 __le32 spare_2;
1089 __le32 spare_3;
1090 u8 dr[0];
1091 } __packed ma_spare_signal_1_res;
1092 struct {
1093 __le16 vif;
1094 __le32 spare_1;
1095 __le32 spare_2;
1096 __le32 spare_3;
1097 u8 dr[0];
1098 } __packed ma_spare_signal_2_res;
1099 struct {
1100 __le16 vif;
1101 __le32 spare_1;
1102 __le32 spare_2;
1103 __le32 spare_3;
1104 u8 dr[0];
1105 } __packed ma_spare_signal_3_res;
1106 struct {
1107 __le16 vif;
1108 __le16 data_unit_descriptor;
1109 __le16 sequence_number;
1110 __le16 priority;
1111 __le16 peer_index;
1112 __le16 proprieraty_information_length;
1113 __le16 bulk_data_descriptor;
1114 __le32 spare_1;
1115 __le32 spare_2;
1116 __le32 spare_3;
1117 u8 dr[0];
1118 } __packed ma_unitdata_ind;
1119 struct {
1120 __le16 vif;
1121 u8 peer_qsta_address[ETH_ALEN];
1122 __le16 sequence_number;
1123 __le16 reason_code;
1124 __le16 blockack_parameter_set;
1125 __le16 direction;
1126 __le32 spare_1;
1127 __le32 spare_2;
1128 __le32 spare_3;
1129 u8 dr[0];
1130 } __packed ma_blockack_ind;
1131 struct {
1132 __le16 vif;
1133 __le32 spare_1;
1134 __le32 spare_2;
1135 __le32 spare_3;
1136 u8 dr[0];
1137 } __packed ma_spare_signal_1_ind;
1138 struct {
1139 __le16 vif;
1140 __le32 spare_1;
1141 __le32 spare_2;
1142 __le32 spare_3;
1143 u8 dr[0];
1144 } __packed ma_spare_signal_2_ind;
1145 struct {
1146 __le16 vif;
1147 __le32 spare_1;
1148 __le32 spare_2;
1149 __le32 spare_3;
1150 u8 dr[0];
1151 } __packed ma_spare_signal_3_ind;
1152 struct {
1153 __le16 vif;
1154 __le32 spare_1;
1155 __le32 spare_2;
1156 __le32 spare_3;
1157 u8 dr[0];
1158 } __packed mlme_get_req;
1159 struct {
1160 __le16 vif;
1161 __le32 spare_1;
1162 __le32 spare_2;
1163 __le32 spare_3;
1164 u8 dr[0];
1165 } __packed mlme_set_req;
1166 struct {
1167 __le16 vif;
1168 __le16 power_management_mode;
1169 __le32 spare_1;
1170 __le32 spare_2;
1171 __le32 spare_3;
1172 u8 dr[0];
1173 } __packed mlme_powermgt_req;
1174 struct {
1175 __le16 vif;
1176 __le16 purpose;
1177 __le32 spare_1;
1178 __le32 spare_2;
1179 __le32 spare_3;
1180 u8 dr[0];
1181 } __packed mlme_add_info_elements_req;
1182 struct {
1183 __le16 vif;
1184 __le16 scan_id;
1185 __le16 scan_type;
1186 u8 device_address[ETH_ALEN];
1187 __le16 report_mode_bitmap;
1188 __le32 spare_1;
1189 __le32 spare_2;
1190 __le32 spare_3;
1191 u8 dr[0];
1192 } __packed mlme_add_scan_req;
1193 struct {
1194 __le16 vif;
1195 __le16 scan_id;
1196 __le32 spare_1;
1197 __le32 spare_2;
1198 __le32 spare_3;
1199 u8 dr[0];
1200 } __packed mlme_del_scan_req;
1201 struct {
1202 __le16 vif;
1203 u8 interface_address[ETH_ALEN];
1204 __le16 virtual_interface_type;
1205 u8 device_address[ETH_ALEN];
1206 __le32 spare_1;
1207 __le32 spare_2;
1208 __le32 spare_3;
1209 u8 dr[0];
1210 } __packed mlme_add_vif_req;
1211 struct {
1212 __le16 vif;
1213 __le32 spare_1;
1214 __le32 spare_2;
1215 __le32 spare_3;
1216 u8 dr[0];
1217 } __packed mlme_del_vif_req;
1218 struct {
1219 __le16 vif;
1220 u8 bssid[ETH_ALEN];
1221 __le16 beacon_period;
1222 __le16 dtim_period;
1223 __le16 capability_information;
1224 __le16 authentication_type;
1225 __le16 hidden_ssid;
1226 __le16 channel_frequency;
1227 __le16 channel_information;
1228 __le32 spare_1;
1229 __le32 spare_2;
1230 __le32 spare_3;
1231 u8 dr[0];
1232 } __packed mlme_start_req;
1233 struct {
1234 __le16 vif;
1235 __le16 availability_duration;
1236 __le16 availability_interval;
1237 __le16 count;
1238 __le16 channel_frequency;
1239 __le32 spare_1;
1240 __le32 spare_2;
1241 __le32 spare_3;
1242 u8 dr[0];
1243 } __packed mlme_set_channel_req;
1244 struct {
1245 __le16 vif;
1246 u8 bssid[ETH_ALEN];
1247 __le16 authentication_type;
1248 __le16 channel_frequency;
1249 __le32 spare_1;
1250 __le32 spare_2;
1251 __le32 spare_3;
1252 u8 dr[0];
1253 } __packed mlme_connect_req;
1254 struct {
1255 __le16 vif;
1256 __le32 spare_1;
1257 __le32 spare_2;
1258 __le32 spare_3;
1259 u8 dr[0];
1260 } __packed mlme_reassociate_req;
1261 struct {
1262 __le16 vif;
1263 u8 bssid[ETH_ALEN];
1264 __le16 channel_frequency;
1265 __le32 spare_1;
1266 __le32 spare_2;
1267 __le32 spare_3;
1268 u8 dr[0];
1269 } __packed mlme_roam_req;
1270 struct {
1271 __le16 vif;
1272 u8 peer_sta_address[ETH_ALEN];
1273 __le16 reason_code;
1274 __le32 spare_1;
1275 __le32 spare_2;
1276 __le32 spare_3;
1277 u8 dr[0];
1278 } __packed mlme_disconnect_req;
1279 struct {
1280 __le16 vif;
1281 __le32 action_frame_category_bitmap_active;
1282 __le32 action_frame_category_bitmap_suspended;
1283 __le32 spare_1;
1284 __le32 spare_2;
1285 __le32 spare_3;
1286 u8 dr[0];
1287 } __packed mlme_register_action_frame_req;
1288 struct {
1289 __le16 vif;
1290 __le16 host_tag;
1291 __le16 data_unit_descriptor;
1292 __le16 message_type;
1293 __le16 channel_frequency;
1294 __le32 dwell_time;
1295 __le32 period;
1296 __le32 spare_1;
1297 __le32 spare_2;
1298 __le32 spare_3;
1299 u8 dr[0];
1300 } __packed mlme_send_frame_req;
1301 struct {
1302 __le16 vif;
1303 __le32 spare_1;
1304 __le32 spare_2;
1305 __le32 spare_3;
1306 u8 dr[0];
1307 } __packed mlme_reset_dwell_time_req;
1308 struct {
1309 __le16 vif;
1310 __le16 user_priority;
1311 __le16 medium_time;
1312 __le16 minimum_data_rate;
1313 u8 peer_address[ETH_ALEN];
1314 __le32 spare_1;
1315 __le32 spare_2;
1316 __le32 spare_3;
1317 u8 dr[0];
1318 } __packed mlme_set_traffic_parameters_req;
1319 struct {
1320 __le16 vif;
1321 __le16 user_priority;
1322 __le32 spare_1;
1323 __le32 spare_2;
1324 __le32 spare_3;
1325 u8 dr[0];
1326 } __packed mlme_del_traffic_parameters_req;
1327 struct {
1328 __le16 vif;
1329 __le32 spare_1;
1330 __le32 spare_2;
1331 __le32 spare_3;
1332 u8 dr[0];
1333 } __packed mlme_set_packet_filter_req;
1334 struct {
1335 __le16 vif;
1336 __le16 ip_version;
1337 u8 multicast_address[ETH_ALEN];
1338 __le32 spare_1;
1339 __le32 spare_2;
1340 __le32 spare_3;
1341 u8 dr[0];
1342 } __packed mlme_set_ip_address_req;
1343 struct {
1344 __le16 vif;
1345 __le16 entries;
1346 __le16 acl_policy;
1347 __le32 spare_1;
1348 __le32 spare_2;
1349 __le32 spare_3;
1350 u8 dr[0];
1351 } __packed mlme_set_acl_req;
1352 struct {
1353 __le16 vif;
1354 __le16 length;
1355 __le16 key_id;
1356 __le16 key_type;
1357 u8 address[ETH_ALEN];
1358 __le16 sequence_number[8];
1359 __le32 cipher_suite_selector;
1360 __le32 spare_1;
1361 __le32 spare_2;
1362 __le32 spare_3;
1363 u8 dr[0];
1364 } __packed mlme_setkeys_req;
1365 struct {
1366 __le16 vif;
1367 __le16 key_id;
1368 __le16 key_type;
1369 __le32 spare_1;
1370 __le32 spare_2;
1371 __le32 spare_3;
1372 u8 dr[0];
1373 } __packed mlme_get_key_sequence_req;
1374 struct {
1375 __le16 vif;
1376 __le32 spare_1;
1377 __le32 spare_2;
1378 __le32 spare_3;
1379 u8 dr[0];
1380 } __packed mlme_set_pmk_req;
1381 struct {
1382 __le16 vif;
1383 __le32 spare_1;
1384 __le32 spare_2;
1385 __le32 spare_3;
1386 u8 dr[0];
1387 } __packed mlme_set_cached_channels_req;
1388 struct {
1389 __le16 vif;
1390 __le32 spare_1;
1391 __le32 spare_2;
1392 __le32 spare_3;
1393 u8 dr[0];
1394 } __packed mlme_set_whitelist_ssid_req;
1395 struct {
1396 __le16 vif;
1397 u8 peer_sta_address[ETH_ALEN];
1398 __le16 tdls_action;
1399 __le16 channel_frequency;
1400 __le16 channel_information;
1401 __le32 spare_1;
1402 __le32 spare_2;
1403 __le32 spare_3;
1404 u8 dr[0];
1405 } __packed mlme_tdls_action_req;
1406 struct {
1407 __le16 vif;
1408 __le16 channel_frequency;
1409 __le16 channel_information;
1410 __le32 spare_1;
1411 __le32 spare_2;
1412 __le32 spare_3;
1413 u8 dr[0];
1414 } __packed mlme_channel_switch_req;
1415 struct {
1416 __le16 vif;
1417 __le16 low_rssi_threshold;
1418 __le16 high_rssi_threshold;
1419 __le16 rssi_monitoring_enabled;
1420 __le32 spare_1;
1421 __le32 spare_2;
1422 __le32 spare_3;
1423 u8 dr[0];
1424 } __packed mlme_monitor_rssi_req;
1425 struct {
1426 __le16 vif;
1427 __le16 mpdu_size_threshold;
1428 __le16 aggressive_statistics_gathering_enabled;
1429 __le32 spare_1;
1430 __le32 spare_2;
1431 __le32 spare_3;
1432 u8 dr[0];
1433 } __packed mlme_start_link_statistics_req;
1434 struct {
1435 __le16 vif;
1436 __le16 statistics_stop_bitmap;
1437 __le32 spare_1;
1438 __le32 spare_2;
1439 __le32 spare_3;
1440 u8 dr[0];
1441 } __packed mlme_stop_link_statistics_req;
1442 struct {
1443 __le16 vif;
1444 __le32 spare_1;
1445 __le32 spare_2;
1446 __le32 spare_3;
1447 u8 dr[0];
1448 } __packed mlme_set_bssid_hotlist_req;
1449 struct {
1450 __le16 vif;
1451 __le32 spare_1;
1452 __le32 spare_2;
1453 __le32 spare_3;
1454 u8 dr[0];
1455 } __packed mlme_set_pno_list_req;
1456 struct {
1457 __le16 vif;
1458 __le16 host_state;
1459 __le32 spare_1;
1460 __le32 spare_2;
1461 __le32 spare_3;
1462 u8 dr[0];
1463 } __packed mlme_host_state_req;
1464 struct {
1465 __le16 vif;
1466 __le16 rtt_id;
1467 __le32 spare_1;
1468 __le32 spare_2;
1469 __le32 spare_3;
1470 u8 dr[0];
1471 } __packed mlme_add_range_req;
1472 struct {
1473 __le16 vif;
1474 __le16 rtt_id;
1475 __le16 entries;
1476 __le32 spare_1;
1477 __le32 spare_2;
1478 __le32 spare_3;
1479 u8 dr[0];
1480 } __packed mlme_del_range_req;
1481 struct {
1482 __le16 vif;
1483 __le16 request_id;
1484 __le16 noa_count;
1485 __le32 interval;
1486 __le32 duration;
1487 __le32 spare_1;
1488 __le32 spare_2;
1489 __le32 spare_3;
1490 u8 dr[0];
1491 } __packed mlme_set_noa_req;
1492 struct {
1493 __le16 vif;
1494 __le16 ctwindow;
1495 __le32 spare_1;
1496 __le32 spare_2;
1497 __le32 spare_3;
1498 u8 dr[0];
1499 } __packed mlme_set_ctwindow_req;
1500 struct {
1501 __le16 vif;
1502 __le16 cluster_low;
1503 __le16 cluster_high;
1504 __le16 nan_operation_control_flags;
1505 __le32 spare_1;
1506 __le32 spare_2;
1507 __le32 spare_3;
1508 u8 dr[0];
1509 } __packed mlme_nan_start_req;
1510 struct {
1511 __le16 vif;
1512 __le16 nan_operation_control_flags;
1513 __le32 spare_1;
1514 __le32 spare_2;
1515 __le32 spare_3;
1516 u8 dr[0];
1517 } __packed mlme_nan_config_req;
1518 struct {
1519 __le16 vif;
1520 __le16 publish_id;
1521 __le16 nan_sdf_flags;
1522 __le32 spare_1;
1523 __le32 spare_2;
1524 __le32 spare_3;
1525 u8 dr[0];
1526 } __packed mlme_nan_publish_req;
1527 struct {
1528 __le16 vif;
1529 __le16 subscribe_id;
1530 __le16 nan_sdf_flags;
1531 __le32 spare_1;
1532 __le32 spare_2;
1533 __le32 spare_3;
1534 u8 dr[0];
1535 } __packed mlme_nan_subscribe_req;
1536 struct {
1537 __le16 vif;
1538 __le16 publish_subscribe_id;
1539 __le16 requestor_instance_id;
1540 __le16 nan_sdf_flags;
1541 __le32 spare_1;
1542 __le32 spare_2;
1543 __le32 spare_3;
1544 u8 dr[0];
1545 } __packed mlme_nan_followup_req;
1546 struct {
1547 __le16 vif;
1548 __le32 spare_1;
1549 __le32 spare_2;
1550 __le32 spare_3;
1551 u8 dr[0];
1552 } __packed mlme_spare_signal_1_req;
1553 struct {
1554 __le16 vif;
1555 __le32 spare_1;
1556 __le32 spare_2;
1557 __le32 spare_3;
1558 u8 dr[0];
1559 } __packed mlme_spare_signal_2_req;
1560 struct {
1561 __le16 vif;
1562 __le32 spare_1;
1563 __le32 spare_2;
1564 __le32 spare_3;
1565 u8 dr[0];
1566 } __packed mlme_spare_signal_3_req;
1567 struct {
1568 __le16 vif;
1569 __le32 spare_1;
1570 __le32 spare_2;
1571 __le32 spare_3;
1572 u8 dr[0];
1573 } __packed mlme_get_cfm;
1574 struct {
1575 __le16 vif;
1576 __le32 spare_1;
1577 __le32 spare_2;
1578 __le32 spare_3;
1579 u8 dr[0];
1580 } __packed mlme_set_cfm;
1581 struct {
1582 __le16 vif;
1583 __le16 result_code;
1584 __le32 spare_1;
1585 __le32 spare_2;
1586 __le32 spare_3;
1587 u8 dr[0];
1588 } __packed mlme_powermgt_cfm;
1589 struct {
1590 __le16 vif;
1591 __le16 result_code;
1592 __le32 spare_1;
1593 __le32 spare_2;
1594 __le32 spare_3;
1595 u8 dr[0];
1596 } __packed mlme_add_info_elements_cfm;
1597 struct {
1598 __le16 vif;
1599 __le16 result_code;
1600 __le16 scan_id;
1601 __le32 spare_1;
1602 __le32 spare_2;
1603 __le32 spare_3;
1604 u8 dr[0];
1605 } __packed mlme_add_scan_cfm;
1606 struct {
1607 __le16 vif;
1608 __le16 result_code;
1609 __le16 scan_id;
1610 __le32 spare_1;
1611 __le32 spare_2;
1612 __le32 spare_3;
1613 u8 dr[0];
1614 } __packed mlme_del_scan_cfm;
1615 struct {
1616 __le16 vif;
1617 __le16 result_code;
1618 __le32 spare_1;
1619 __le32 spare_2;
1620 __le32 spare_3;
1621 u8 dr[0];
1622 } __packed mlme_add_vif_cfm;
1623 struct {
1624 __le16 vif;
1625 __le16 result_code;
1626 __le32 spare_1;
1627 __le32 spare_2;
1628 __le32 spare_3;
1629 u8 dr[0];
1630 } __packed mlme_del_vif_cfm;
1631 struct {
1632 __le16 vif;
1633 __le16 result_code;
1634 __le32 spare_1;
1635 __le32 spare_2;
1636 __le32 spare_3;
1637 u8 dr[0];
1638 } __packed mlme_start_cfm;
1639 struct {
1640 __le16 vif;
1641 __le16 result_code;
1642 __le32 spare_1;
1643 __le32 spare_2;
1644 __le32 spare_3;
1645 u8 dr[0];
1646 } __packed mlme_set_channel_cfm;
1647 struct {
1648 __le16 vif;
1649 __le16 result_code;
1650 __le32 spare_1;
1651 __le32 spare_2;
1652 __le32 spare_3;
1653 u8 dr[0];
1654 } __packed mlme_connect_cfm;
1655 struct {
1656 __le16 vif;
1657 __le16 result_code;
1658 __le32 spare_1;
1659 __le32 spare_2;
1660 __le32 spare_3;
1661 u8 dr[0];
1662 } __packed mlme_reassociate_cfm;
1663 struct {
1664 __le16 vif;
1665 __le16 result_code;
1666 __le32 spare_1;
1667 __le32 spare_2;
1668 __le32 spare_3;
1669 u8 dr[0];
1670 } __packed mlme_roam_cfm;
1671 struct {
1672 __le16 vif;
1673 u8 peer_sta_address[ETH_ALEN];
1674 __le16 result_code;
1675 __le32 spare_1;
1676 __le32 spare_2;
1677 __le32 spare_3;
1678 u8 dr[0];
1679 } __packed mlme_disconnect_cfm;
1680 struct {
1681 __le16 vif;
1682 __le16 result_code;
1683 __le32 spare_1;
1684 __le32 spare_2;
1685 __le32 spare_3;
1686 u8 dr[0];
1687 } __packed mlme_register_action_frame_cfm;
1688 struct {
1689 __le16 vif;
1690 __le16 host_tag;
1691 __le16 result_code;
1692 __le32 spare_1;
1693 __le32 spare_2;
1694 __le32 spare_3;
1695 u8 dr[0];
1696 } __packed mlme_send_frame_cfm;
1697 struct {
1698 __le16 vif;
1699 __le16 result_code;
1700 __le32 spare_1;
1701 __le32 spare_2;
1702 __le32 spare_3;
1703 u8 dr[0];
1704 } __packed mlme_reset_dwell_time_cfm;
1705 struct {
1706 __le16 vif;
1707 __le16 result_code;
1708 __le32 spare_1;
1709 __le32 spare_2;
1710 __le32 spare_3;
1711 u8 dr[0];
1712 } __packed mlme_set_traffic_parameters_cfm;
1713 struct {
1714 __le16 vif;
1715 __le16 result_code;
1716 __le32 spare_1;
1717 __le32 spare_2;
1718 __le32 spare_3;
1719 u8 dr[0];
1720 } __packed mlme_del_traffic_parameters_cfm;
1721 struct {
1722 __le16 vif;
1723 __le32 spare_1;
1724 __le32 spare_2;
1725 __le32 spare_3;
1726 u8 dr[0];
1727 } __packed mlme_set_packet_filter_cfm;
1728 struct {
1729 __le16 vif;
1730 __le16 result_code;
1731 __le32 spare_1;
1732 __le32 spare_2;
1733 __le32 spare_3;
1734 u8 dr[0];
1735 } __packed mlme_set_ip_address_cfm;
1736 struct {
1737 __le16 vif;
1738 __le16 result_code;
1739 __le32 spare_1;
1740 __le32 spare_2;
1741 __le32 spare_3;
1742 u8 dr[0];
1743 } __packed mlme_set_acl_cfm;
1744 struct {
1745 __le16 vif;
1746 __le16 result_code;
1747 __le32 spare_1;
1748 __le32 spare_2;
1749 __le32 spare_3;
1750 u8 dr[0];
1751 } __packed mlme_setkeys_cfm;
1752 struct {
1753 __le16 vif;
1754 __le16 sequence_number[8];
1755 __le16 result_code;
1756 __le32 spare_1;
1757 __le32 spare_2;
1758 __le32 spare_3;
1759 u8 dr[0];
1760 } __packed mlme_get_key_sequence_cfm;
1761 struct {
1762 __le16 vif;
1763 __le16 result_code;
1764 __le32 spare_1;
1765 __le32 spare_2;
1766 __le32 spare_3;
1767 u8 dr[0];
1768 } __packed mlme_set_pmk_cfm;
1769 struct {
1770 __le16 vif;
1771 __le16 result_code;
1772 __le32 spare_1;
1773 __le32 spare_2;
1774 __le32 spare_3;
1775 u8 dr[0];
1776 } __packed mlme_set_cached_channels_cfm;
1777 struct {
1778 __le16 vif;
1779 __le16 result_code;
1780 __le32 spare_1;
1781 __le32 spare_2;
1782 __le32 spare_3;
1783 u8 dr[0];
1784 } __packed mlme_set_whitelist_ssid_cfm;
1785 struct {
1786 __le16 vif;
1787 __le16 result_code;
1788 __le32 spare_1;
1789 __le32 spare_2;
1790 __le32 spare_3;
1791 u8 dr[0];
1792 } __packed mlme_tdls_action_cfm;
1793 struct {
1794 __le16 vif;
1795 __le16 result_code;
1796 __le32 spare_1;
1797 __le32 spare_2;
1798 __le32 spare_3;
1799 u8 dr[0];
1800 } __packed mlme_channel_switch_cfm;
1801 struct {
1802 __le16 vif;
1803 __le16 result_code;
1804 __le32 spare_1;
1805 __le32 spare_2;
1806 __le32 spare_3;
1807 u8 dr[0];
1808 } __packed mlme_monitor_rssi_cfm;
1809 struct {
1810 __le16 vif;
1811 __le16 result_code;
1812 __le32 spare_1;
1813 __le32 spare_2;
1814 __le32 spare_3;
1815 u8 dr[0];
1816 } __packed mlme_start_link_statistics_cfm;
1817 struct {
1818 __le16 vif;
1819 __le16 result_code;
1820 __le32 spare_1;
1821 __le32 spare_2;
1822 __le32 spare_3;
1823 u8 dr[0];
1824 } __packed mlme_stop_link_statistics_cfm;
1825 struct {
1826 __le16 vif;
1827 __le16 result_code;
1828 __le32 spare_1;
1829 __le32 spare_2;
1830 __le32 spare_3;
1831 u8 dr[0];
1832 } __packed mlme_set_bssid_hotlist_cfm;
1833 struct {
1834 __le16 vif;
1835 __le16 result_code;
1836 __le32 spare_1;
1837 __le32 spare_2;
1838 __le32 spare_3;
1839 u8 dr[0];
1840 } __packed mlme_set_pno_list_cfm;
1841 struct {
1842 __le16 vif;
1843 __le16 result_code;
1844 __le32 spare_1;
1845 __le32 spare_2;
1846 __le32 spare_3;
1847 u8 dr[0];
1848 } __packed mlme_host_state_cfm;
1849 struct {
1850 __le16 vif;
1851 __le16 result_code;
1852 __le16 rtt_id;
1853 __le32 spare_1;
1854 __le32 spare_2;
1855 __le32 spare_3;
1856 u8 dr[0];
1857 } __packed mlme_add_range_cfm;
1858 struct {
1859 __le16 vif;
1860 __le16 result_code;
1861 __le16 rtt_id;
1862 __le32 spare_1;
1863 __le32 spare_2;
1864 __le32 spare_3;
1865 u8 dr[0];
1866 } __packed mlme_del_range_cfm;
1867 struct {
1868 __le16 vif;
1869 __le16 result_code;
1870 __le32 spare_1;
1871 __le32 spare_2;
1872 __le32 spare_3;
1873 u8 dr[0];
1874 } __packed mlme_set_noa_cfm;
1875 struct {
1876 __le16 vif;
1877 __le16 result_code;
1878 __le32 spare_1;
1879 __le32 spare_2;
1880 __le32 spare_3;
1881 u8 dr[0];
1882 } __packed mlme_set_ctwindow_cfm;
1883 struct {
1884 __le16 vif;
1885 __le16 result_code;
1886 __le32 spare_1;
1887 __le32 spare_2;
1888 __le32 spare_3;
1889 u8 dr[0];
1890 } __packed mlme_nan_start_cfm;
1891 struct {
1892 __le16 vif;
1893 __le16 result_code;
1894 __le32 spare_1;
1895 __le32 spare_2;
1896 __le32 spare_3;
1897 u8 dr[0];
1898 } __packed mlme_nan_config_cfm;
1899 struct {
1900 __le16 vif;
1901 __le16 result_code;
1902 __le32 spare_1;
1903 __le32 spare_2;
1904 __le32 spare_3;
1905 u8 dr[0];
1906 } __packed mlme_nan_publish_cfm;
1907 struct {
1908 __le16 vif;
1909 __le16 result_code;
1910 __le32 spare_1;
1911 __le32 spare_2;
1912 __le32 spare_3;
1913 u8 dr[0];
1914 } __packed mlme_nan_subscribe_cfm;
1915 struct {
1916 __le16 vif;
1917 __le16 result_code;
1918 __le32 spare_1;
1919 __le32 spare_2;
1920 __le32 spare_3;
1921 u8 dr[0];
1922 } __packed mlme_nan_followup_cfm;
1923 struct {
1924 __le16 vif;
1925 __le16 result_code;
1926 __le32 spare_1;
1927 __le32 spare_2;
1928 __le32 spare_3;
1929 u8 dr[0];
1930 } __packed mlme_spare_signal_1_cfm;
1931 struct {
1932 __le16 vif;
1933 __le16 result_code;
1934 __le32 spare_1;
1935 __le32 spare_2;
1936 __le32 spare_3;
1937 u8 dr[0];
1938 } __packed mlme_spare_signal_2_cfm;
1939 struct {
1940 __le16 vif;
1941 __le16 result_code;
1942 __le32 spare_1;
1943 __le32 spare_2;
1944 __le32 spare_3;
1945 u8 dr[0];
1946 } __packed mlme_spare_signal_3_cfm;
1947 struct {
1948 __le16 vif;
1949 __le32 spare_1;
1950 __le32 spare_2;
1951 __le32 spare_3;
1952 u8 dr[0];
1953 } __packed mlme_connect_res;
1954 struct {
1955 __le16 vif;
1956 __le16 peer_index;
1957 __le32 spare_1;
1958 __le32 spare_2;
1959 __le32 spare_3;
1960 u8 dr[0];
1961 } __packed mlme_connected_res;
1962 struct {
1963 __le16 vif;
1964 __le32 spare_1;
1965 __le32 spare_2;
1966 __le32 spare_3;
1967 u8 dr[0];
1968 } __packed mlme_reassociate_res;
1969 struct {
1970 __le16 vif;
1971 __le32 spare_1;
1972 __le32 spare_2;
1973 __le32 spare_3;
1974 u8 dr[0];
1975 } __packed mlme_roamed_res;
1976 struct {
1977 __le16 vif;
1978 __le16 peer_index;
1979 __le16 tdls_event;
1980 __le32 spare_1;
1981 __le32 spare_2;
1982 __le32 spare_3;
1983 u8 dr[0];
1984 } __packed mlme_tdls_peer_res;
1985 struct {
1986 __le16 vif;
1987 __le32 spare_1;
1988 __le32 spare_2;
1989 __le32 spare_3;
1990 u8 dr[0];
1991 } __packed mlme_spare_signal_1_res;
1992 struct {
1993 __le16 vif;
1994 __le32 spare_1;
1995 __le32 spare_2;
1996 __le32 spare_3;
1997 u8 dr[0];
1998 } __packed mlme_spare_signal_2_res;
1999 struct {
2000 __le16 vif;
2001 __le32 spare_1;
2002 __le32 spare_2;
2003 __le32 spare_3;
2004 u8 dr[0];
2005 } __packed mlme_spare_signal_3_res;
2006 struct {
2007 __le16 vif;
2008 __le16 channel_frequency;
2009 __le16 rssi;
2010 __le16 scan_id;
2011 __le16 hotlisted_ap;
2012 __le16 preferrednetwork_ap;
2013 __le16 anqp_elements_length;
2014 __le16 network_block_id;
2015 __le32 spare_1;
2016 __le32 spare_2;
2017 __le32 spare_3;
2018 u8 dr[0];
2019 } __packed mlme_scan_ind;
2020 struct {
2021 __le16 vif;
2022 __le16 scan_id;
2023 __le32 spare_1;
2024 __le32 spare_2;
2025 __le32 spare_3;
2026 u8 dr[0];
2027 } __packed mlme_scan_done_ind;
2028 struct {
2029 __le16 vif;
2030 __le32 spare_1;
2031 __le32 spare_2;
2032 __le32 spare_3;
2033 u8 dr[0];
2034 } __packed mlme_listen_end_ind;
2035 struct {
2036 __le16 vif;
2037 __le16 result_code;
2038 __le32 spare_1;
2039 __le32 spare_2;
2040 __le32 spare_3;
2041 u8 dr[0];
2042 } __packed mlme_connect_ind;
2043 struct {
2044 __le16 vif;
2045 __le16 peer_index;
2046 __le32 spare_1;
2047 __le32 spare_2;
2048 __le32 spare_3;
2049 u8 dr[0];
2050 } __packed mlme_connected_ind;
2051 struct {
2052 __le16 vif;
2053 __le16 result_code;
2054 __le32 spare_1;
2055 __le32 spare_2;
2056 __le32 spare_3;
2057 u8 dr[0];
2058 } __packed mlme_reassociate_ind;
2059 struct {
2060 __le16 vif;
2061 __le16 result_code;
2062 __le32 spare_1;
2063 __le32 spare_2;
2064 __le32 spare_3;
2065 u8 dr[0];
2066 } __packed mlme_roam_ind;
2067 struct {
2068 __le16 vif;
2069 __le16 temporal_keys_required;
2070 __le32 spare_1;
2071 __le32 spare_2;
2072 __le32 spare_3;
2073 u8 dr[0];
2074 } __packed mlme_roamed_ind;
2075 struct {
2076 __le16 vif;
2077 u8 peer_sta_address[ETH_ALEN];
2078 __le32 spare_1;
2079 __le32 spare_2;
2080 __le32 spare_3;
2081 u8 dr[0];
2082 } __packed mlme_disconnect_ind;
2083 struct {
2084 __le16 vif;
2085 u8 peer_sta_address[ETH_ALEN];
2086 __le16 reason_code;
2087 __le32 spare_1;
2088 __le32 spare_2;
2089 __le32 spare_3;
2090 u8 dr[0];
2091 } __packed mlme_disconnected_ind;
2092 struct {
2093 __le16 vif;
2094 __le16 procedure_type;
2095 __le16 peer_index;
2096 __le32 spare_1;
2097 __le32 spare_2;
2098 __le32 spare_3;
2099 u8 dr[0];
2100 } __packed mlme_procedure_started_ind;
2101 struct {
2102 __le16 vif;
2103 u8 peer_sta_address[ETH_ALEN];
2104 __le16 key_type;
2105 __le16 key_id;
2106 __le16 key_sequence_number[8];
2107 __le32 spare_1;
2108 __le32 spare_2;
2109 __le32 spare_3;
2110 u8 dr[0];
2111 } __packed mlme_mic_failure_ind;
2112 struct {
2113 __le16 vif;
2114 __le16 host_tag;
2115 __le16 transmission_status;
2116 __le32 spare_1;
2117 __le32 spare_2;
2118 __le32 spare_3;
2119 u8 dr[0];
2120 } __packed mlme_frame_transmission_ind;
2121 struct {
2122 __le16 vif;
2123 __le16 data_unit_descriptor;
2124 __le16 channel_frequency;
2125 __le32 spare_1;
2126 __le32 spare_2;
2127 __le32 spare_3;
2128 u8 dr[0];
2129 } __packed mlme_received_frame_ind;
2130 struct {
2131 __le16 vif;
2132 u8 peer_sta_address[ETH_ALEN];
2133 __le16 peer_index;
2134 __le16 tdls_event;
2135 __le16 reason_code;
2136 __le32 spare_1;
2137 __le32 spare_2;
2138 __le32 spare_3;
2139 u8 dr[0];
2140 } __packed mlme_tdls_peer_ind;
2141 struct {
2142 __le16 vif;
2143 __le16 entries;
2144 __le32 spare_1;
2145 __le32 spare_2;
2146 __le32 spare_3;
2147 u8 dr[0];
2148 } __packed mlme_ap_loss_ind;
2149 struct {
2150 __le16 vif;
2151 __le16 number_of_results;
2152 __le16 number_of_rssi_entries;
2153 __le32 spare_1;
2154 __le32 spare_2;
2155 __le32 spare_3;
2156 u8 dr[0];
2157 } __packed mlme_significant_change_ind;
2158 struct {
2159 __le16 vif;
2160 u8 bssid[ETH_ALEN];
2161 __le16 rssi;
2162 __le32 spare_1;
2163 __le32 spare_2;
2164 __le32 spare_3;
2165 u8 dr[0];
2166 } __packed mlme_rssi_report_ind;
2167 struct {
2168 __le16 vif;
2169 __le16 ac_priority;
2170 __le32 spare_1;
2171 __le32 spare_2;
2172 __le32 spare_3;
2173 u8 dr[0];
2174 } __packed mlme_ac_priority_update_ind;
2175 struct {
2176 __le16 vif;
2177 __le16 rtt_id;
2178 __le16 entries;
2179 __le32 spare_1;
2180 __le32 spare_2;
2181 __le32 spare_3;
2182 u8 dr[0];
2183 } __packed mlme_range_ind;
2184 struct {
2185 __le16 vif;
2186 __le16 rtt_id;
2187 __le32 spare_1;
2188 __le32 spare_2;
2189 __le32 spare_3;
2190 u8 dr[0];
2191 } __packed mlme_range_done_ind;
2192 struct {
2193 __le16 vif;
2194 __le16 event;
2195 u8 timestamp[8];
2196 __le32 spare_1;
2197 __le32 spare_2;
2198 __le32 spare_3;
2199 u8 dr[0];
2200 } __packed mlme_event_log_ind;
2201 struct {
2202 __le16 vif;
2203 __le16 event;
2204 __le16 identifier;
2205 u8 address_or_identifier[ETH_ALEN];
2206 __le16 reason_code;
2207 __le32 spare_1;
2208 __le32 spare_2;
2209 __le32 spare_3;
2210 u8 dr[0];
2211 } __packed mlme_nan_event_ind;
2212 struct {
2213 __le16 vif;
2214 __le16 publish_subscribe_id;
2215 __le16 requestor_instance_id;
2216 __le32 spare_1;
2217 __le32 spare_2;
2218 __le32 spare_3;
2219 u8 dr[0];
2220 } __packed mlme_nan_service_ind;
2221 struct {
2222 __le16 vif;
2223 __le16 publish_subscribe_id;
2224 __le16 requestor_instance_id;
2225 __le32 spare_1;
2226 __le32 spare_2;
2227 __le32 spare_3;
2228 u8 dr[0];
2229 } __packed mlme_nan_followup_ind;
2230 struct {
2231 __le16 vif;
2232 __le16 channel_frequency;
2233 __le16 channel_information;
2234 __le32 spare_1;
2235 __le32 spare_2;
2236 __le32 spare_3;
2237 u8 dr[0];
2238 } __packed mlme_channel_switched_ind;
2239 struct {
2240 __le16 vif;
2241 __le32 spare_1;
2242 __le32 spare_2;
2243 __le32 spare_3;
2244 u8 dr[0];
2245 } __packed mlme_spare_signal_1_ind;
2246 struct {
2247 __le16 vif;
2248 __le32 spare_1;
2249 __le32 spare_2;
2250 __le32 spare_3;
2251 u8 dr[0];
2252 } __packed mlme_spare_signal_2_ind;
2253 struct {
2254 __le16 vif;
2255 __le32 spare_1;
2256 __le32 spare_2;
2257 __le32 spare_3;
2258 u8 dr[0];
2259 } __packed mlme_spare_signal_3_ind;
2260 struct {
2261 __le16 vif;
2262 __le32 spare_1;
2263 __le32 spare_2;
2264 __le32 spare_3;
2265 u8 dr[0];
2266 } __packed debug_spare_signal_1_req;
2267 struct {
2268 __le16 vif;
2269 __le32 spare_1;
2270 __le32 spare_2;
2271 __le32 spare_3;
2272 u8 dr[0];
2273 } __packed debug_spare_signal_2_req;
2274 struct {
2275 __le16 vif;
2276 __le32 spare_1;
2277 __le32 spare_2;
2278 __le32 spare_3;
2279 u8 dr[0];
2280 } __packed debug_spare_signal_3_req;
2281 struct {
2282 __le16 vif;
2283 __le16 result_code;
2284 __le32 spare_1;
2285 __le32 spare_2;
2286 __le32 spare_3;
2287 u8 dr[0];
2288 } __packed debug_spare_signal_1_cfm;
2289 struct {
2290 __le16 vif;
2291 __le16 result_code;
2292 __le32 spare_1;
2293 __le32 spare_2;
2294 __le32 spare_3;
2295 u8 dr[0];
2296 } __packed debug_spare_signal_2_cfm;
2297 struct {
2298 __le16 vif;
2299 __le16 result_code;
2300 __le32 spare_1;
2301 __le32 spare_2;
2302 __le32 spare_3;
2303 u8 dr[0];
2304 } __packed debug_spare_signal_3_cfm;
2305 struct {
2306 __le16 vif;
2307 __le32 spare_1;
2308 __le32 spare_2;
2309 __le32 spare_3;
2310 u8 dr[0];
2311 } __packed debug_spare_signal_1_res;
2312 struct {
2313 __le16 vif;
2314 __le32 spare_1;
2315 __le32 spare_2;
2316 __le32 spare_3;
2317 u8 dr[0];
2318 } __packed debug_spare_signal_2_res;
2319 struct {
2320 __le16 vif;
2321 __le32 spare_1;
2322 __le32 spare_2;
2323 __le32 spare_3;
2324 u8 dr[0];
2325 } __packed debug_spare_signal_3_res;
2326 struct {
2327 __le16 vif;
2328 __le16 module_id;
2329 __le16 module_sub_id;
2330 __le32 timestamp;
2331 __le16 debug_words[12];
2332 __le16 sequence_number;
2333 __le32 spare_1;
2334 __le32 spare_2;
2335 __le32 spare_3;
2336 u8 dr[0];
2337 } __packed debug_word12_ind;
2338 struct {
2339 __le16 vif;
2340 __le16 faultid;
2341 __le16 count;
2342 __le32 timestamp;
2343 __le32 arg;
2344 __le16 cpu;
2345 __le16 sequence_number;
2346 __le32 spare_1;
2347 __le32 spare_2;
2348 __le32 spare_3;
2349 u8 dr[0];
2350 } __packed debug_fault_ind;
2351 struct {
2352 __le16 vif;
2353 __le32 spare_1;
2354 __le32 spare_2;
2355 __le32 spare_3;
2356 u8 dr[0];
2357 } __packed debug_spare_signal_1_ind;
2358 struct {
2359 __le16 vif;
2360 __le32 spare_1;
2361 __le32 spare_2;
2362 __le32 spare_3;
2363 u8 dr[0];
2364 } __packed debug_spare_signal_2_ind;
2365 struct {
2366 __le16 vif;
2367 __le32 spare_1;
2368 __le32 spare_2;
2369 __le32 spare_3;
2370 u8 dr[0];
2371 } __packed debug_spare_signal_3_ind;
2372 struct {
2373 __le16 vif;
2374 __le32 spare_1;
2375 __le32 spare_2;
2376 __le32 spare_3;
2377 u8 dr[0];
2378 } __packed test_block_requests_req;
2379 struct {
2380 __le16 vif;
2381 __le32 spare_1;
2382 __le32 spare_2;
2383 __le32 spare_3;
2384 u8 dr[0];
2385 } __packed test_panic_req;
2386 struct {
2387 __le16 vif;
2388 __le32 spare_1;
2389 __le32 spare_2;
2390 __le32 spare_3;
2391 u8 dr[0];
2392 } __packed test_suspend_req;
2393 struct {
2394 __le16 vif;
2395 __le32 spare_1;
2396 __le32 spare_2;
2397 __le32 spare_3;
2398 u8 dr[0];
2399 } __packed test_resume_req;
2400 struct {
2401 __le32 logging_source;
2402 __le32 logging_frequency;
2403 __le32 capture_stream;
2404 __le32 trigger_mode;
2405 __le32 delay;
2406 __le32 buffer_size;
2407 __le32 spare_1;
2408 __le32 spare_2;
2409 __le32 spare_3;
2410 u8 dr[0];
2411 } __packed radio_logging_req;
2412 struct {
2413 __le16 freq;
2414 __le16 power;
2415 __le16 flags;
2416 __le16 type;
2417 __le16 amplitude;
2418 __le32 freq1;
2419 __le32 freq2;
2420 __le16 phase;
2421 __le32 spare_1;
2422 __le32 spare_2;
2423 __le32 spare_3;
2424 u8 dr[0];
2425 } __packed wlanlite_cw_start_req;
2426 struct {
2427 __le32 spare_1;
2428 __le32 spare_2;
2429 __le32 spare_3;
2430 u8 dr[0];
2431 } __packed wlanlite_cw_stop_req;
2432 struct {
2433 __le16 freq;
2434 __le16 rate;
2435 __le16 channel_information;
2436 __le16 power;
2437 __le16 length;
2438 __le32 interval;
2439 __le16 flags;
2440 __le16 channel_description_index;
2441 __le16 distance_to_band_edge_half_mhz;
2442 __le16 band_oob_rule_selector;
2443 __le16 pa_voltage;
2444 __le32 spare_1;
2445 __le32 spare_2;
2446 __le32 spare_3;
2447 u8 dr[0];
2448 } __packed wlanlite_tx_set_params_req;
2449 struct {
2450 __le32 num_frames_to_send;
2451 __le16 data_type;
2452 __le16 data_param;
2453 u8 dest_addr[ETH_ALEN];
2454 u8 src_addr[ETH_ALEN];
2455 u8 bssid[ETH_ALEN];
2456 __le16 num_mpdus_per_ampdu;
2457 __le32 spare_1;
2458 __le32 spare_2;
2459 __le32 spare_3;
2460 u8 dr[0];
2461 } __packed wlanlite_tx_start_req;
2462 struct {
2463 __le32 spare_1;
2464 __le32 spare_2;
2465 __le32 spare_3;
2466 u8 dr[0];
2467 } __packed wlanlite_tx_read_req;
2468 struct {
2469 __le32 spare_1;
2470 __le32 spare_2;
2471 __le32 spare_3;
2472 u8 dr[0];
2473 } __packed wlanlite_tx_stop_req;
2474 struct {
2475 __le16 freq;
2476 __le16 channel_information;
2477 __le16 flags;
2478 u8 mac_addr[ETH_ALEN];
2479 __le32 reserved1;
2480 __le32 reserved2;
2481 __le16 num_mpdus_per_ampdu;
2482 __le32 spare_1;
2483 __le32 spare_2;
2484 __le32 spare_3;
2485 u8 dr[0];
2486 } __packed wlanlite_rx_start_req;
2487 struct {
2488 __le32 spare_1;
2489 __le32 spare_2;
2490 __le32 spare_3;
2491 u8 dr[0];
2492 } __packed wlanlite_rx_read_req;
2493 struct {
2494 __le32 spare_1;
2495 __le32 spare_2;
2496 __le32 spare_3;
2497 u8 dr[0];
2498 } __packed wlanlite_rx_stop_req;
2499 struct {
2500 __le32 spare_1;
2501 __le32 spare_2;
2502 __le32 spare_3;
2503 u8 dr[0];
2504 } __packed wlanlite_status_req;
2505 struct {
2506 __le16 alloc_area;
2507 __le32 spare_1;
2508 __le32 spare_2;
2509 __le32 spare_3;
2510 u8 dr[0];
2511 } __packed test_pmalloc_req;
2512 struct {
2513 __le16 vif;
2514 __le32 spare_1;
2515 __le32 spare_2;
2516 __le32 spare_3;
2517 u8 dr[0];
2518 } __packed test_configure_monitor_mode_req;
2519 struct {
2520 __le32 spare_1;
2521 __le32 spare_2;
2522 __le32 spare_3;
2523 u8 dr[0];
2524 } __packed test_check_fw_alive_req;
2525 struct {
2526 __le16 vif;
2527 __le16 debug_words[8];
2528 __le32 spare_1;
2529 __le32 spare_2;
2530 __le32 spare_3;
2531 u8 dr[0];
2532 } __packed debug_generic_req;
2533 struct {
2534 __le16 vif;
2535 __le16 end_point;
2536 __le16 direction;
2537 __le32 interval;
2538 __le16 packets_per_interval;
2539 __le32 spare_1;
2540 __le32 spare_2;
2541 __le32 spare_3;
2542 u8 dr[0];
2543 } __packed debug_pkt_sink_start_req;
2544 struct {
2545 __le16 vif;
2546 __le16 end_point;
2547 __le16 direction;
2548 __le32 spare_1;
2549 __le32 spare_2;
2550 __le32 spare_3;
2551 u8 dr[0];
2552 } __packed debug_pkt_sink_stop_req;
2553 struct {
2554 __le16 vif;
2555 __le16 end_point;
2556 __le16 direction;
2557 __le32 report_interval;
2558 __le32 spare_1;
2559 __le32 spare_2;
2560 __le32 spare_3;
2561 u8 dr[0];
2562 } __packed debug_pkt_sink_report_req;
2563 struct {
2564 __le16 vif;
2565 __le16 end_point;
2566 __le16 direction;
2567 __le32 interval;
2568 __le16 size;
2569 __le16 packets_per_interval;
2570 __le32 ipv4destination_address;
2571 __le16 packets_per_interrupt;
2572 __le16 use_streaming;
2573 __le32 spare_1;
2574 __le32 spare_2;
2575 __le32 spare_3;
2576 u8 dr[0];
2577 } __packed debug_pkt_gen_start_req;
2578 struct {
2579 __le16 vif;
2580 __le16 end_point;
2581 __le16 direction;
2582 __le32 spare_1;
2583 __le32 spare_2;
2584 __le32 spare_3;
2585 u8 dr[0];
2586 } __packed debug_pkt_gen_stop_req;
2587 struct {
2588 __le16 vif;
2589 __le16 end_point;
2590 __le16 direction;
2591 __le32 report_interval;
2592 __le32 spare_1;
2593 __le32 spare_2;
2594 __le32 spare_3;
2595 u8 dr[0];
2596 } __packed debug_pkt_gen_report_req;
2597 struct {
2598 __le16 radio_bitmap;
2599 __le32 spare_1;
2600 __le32 spare_2;
2601 __le32 spare_3;
2602 u8 dr[0];
2603 } __packed wlanlite_radio_select_req;
2604 struct {
2605 __le16 vif;
2606 __le16 mode;
2607 __le16 end_point;
2608 __le16 protocol;
2609 __le32 interval;
2610 __le16 packets_per_interval;
2611 __le16 packets_size;
2612 __le32 spare_1;
2613 __le32 spare_2;
2614 __le32 spare_3;
2615 u8 dr[0];
2616 } __packed test_hip_tester_start_req;
2617 struct {
2618 __le16 vif;
2619 __le16 stream_id;
2620 __le32 spare_1;
2621 __le32 spare_2;
2622 __le32 spare_3;
2623 u8 dr[0];
2624 } __packed test_hip_tester_stop_req;
2625 struct {
2626 __le16 vif;
2627 __le16 stream_id;
2628 __le32 spare_1;
2629 __le32 spare_2;
2630 __le32 spare_3;
2631 u8 dr[0];
2632 } __packed test_hip_tester_set_params_req;
2633 struct {
2634 __le16 vif;
2635 __le16 stream_id;
2636 __le32 report_interval;
2637 __le32 spare_1;
2638 __le32 spare_2;
2639 __le32 spare_3;
2640 u8 dr[0];
2641 } __packed test_hip_tester_report_req;
2642 struct {
2643 __le16 freq;
2644 __le16 tx_gain;
2645 __le16 rx_gain;
2646 __le32 spare_1;
2647 __le32 spare_2;
2648 __le32 spare_3;
2649 u8 dr[0];
2650 } __packed test_bist_get_tx_gain_req;
2651 struct {
2652 __le16 vif;
2653 __le32 spare_1;
2654 __le32 spare_2;
2655 __le32 spare_3;
2656 u8 dr[0];
2657 } __packed test_spare_signal_1_req;
2658 struct {
2659 __le16 vif;
2660 __le32 spare_1;
2661 __le32 spare_2;
2662 __le32 spare_3;
2663 u8 dr[0];
2664 } __packed test_spare_signal_2_req;
2665 struct {
2666 __le16 vif;
2667 __le32 spare_1;
2668 __le32 spare_2;
2669 __le32 spare_3;
2670 u8 dr[0];
2671 } __packed test_spare_signal_3_req;
2672 struct {
2673 __le16 result_code;
2674 __le32 spare_1;
2675 __le32 spare_2;
2676 __le32 spare_3;
2677 u8 dr[0];
2678 } __packed radio_logging_cfm;
2679 struct {
2680 __le16 result_code;
2681 __le32 spare_1;
2682 __le32 spare_2;
2683 __le32 spare_3;
2684 u8 dr[0];
2685 } __packed wlanlite_cw_start_cfm;
2686 struct {
2687 __le16 result_code;
2688 __le32 spare_1;
2689 __le32 spare_2;
2690 __le32 spare_3;
2691 u8 dr[0];
2692 } __packed wlanlite_tx_set_params_cfm;
2693 struct {
2694 __le16 result_code;
2695 __le32 spare_1;
2696 __le32 spare_2;
2697 __le32 spare_3;
2698 u8 dr[0];
2699 } __packed wlanlite_cw_stop_cfm;
2700 struct {
2701 __le16 result_code;
2702 __le32 spare_1;
2703 __le32 spare_2;
2704 __le32 spare_3;
2705 u8 dr[0];
2706 } __packed wlanlite_tx_start_cfm;
2707 struct {
2708 __le16 result_code;
2709 __le16 flags;
2710 __le32 ctr_frames_left_to_send;
2711 __le32 transmission_back_off;
2712 __le16 wanted_power_target;
2713 __le16 final_power_target;
2714 __le16 oob_constraint;
2715 __le16 last_trim_pa_temperature;
2716 __le16 current_pa_temperature;
2717 __le16 last_trim_ambient_temperature;
2718 __le16 current_ambient_temperature;
2719 __le16 temp_power_adjust;
2720 __le32 ctr_frames_success;
2721 __le32 spare_1;
2722 __le32 spare_2;
2723 __le32 spare_3;
2724 u8 dr[0];
2725 } __packed wlanlite_tx_read_cfm;
2726 struct {
2727 __le16 result_code;
2728 __le32 spare_1;
2729 __le32 spare_2;
2730 __le32 spare_3;
2731 u8 dr[0];
2732 } __packed wlanlite_tx_stop_cfm;
2733 struct {
2734 __le16 result_code;
2735 __le32 spare_1;
2736 __le32 spare_2;
2737 __le32 spare_3;
2738 u8 dr[0];
2739 } __packed wlanlite_rx_start_cfm;
2740 struct {
2741 __le16 result_code;
2742 __le32 freq_offset_cur;
2743 __le32 freq_offset_avg;
2744 __le32 rssi_cur;
2745 __le32 rssi_avg;
2746 __le32 snr_cur;
2747 __le32 snr_avg;
2748 __le32 interval;
2749 __le32 spare_1;
2750 __le32 spare_2;
2751 __le32 spare_3;
2752 u8 dr[0];
2753 } __packed wlanlite_rx_read_cfm;
2754 struct {
2755 __le16 result_code;
2756 __le32 spare_1;
2757 __le32 spare_2;
2758 __le32 spare_3;
2759 u8 dr[0];
2760 } __packed wlanlite_rx_stop_cfm;
2761 struct {
2762 __le16 result_code;
2763 __le16 device_state;
2764 __le32 spare_1;
2765 __le32 spare_2;
2766 __le32 spare_3;
2767 u8 dr[0];
2768 } __packed wlanlite_status_cfm;
2769 struct {
2770 __le32 spare_1;
2771 __le32 spare_2;
2772 __le32 spare_3;
2773 u8 dr[0];
2774 } __packed test_pmalloc_cfm;
2775 struct {
2776 __le16 vif;
2777 __le16 result_code;
2778 __le32 spare_1;
2779 __le32 spare_2;
2780 __le32 spare_3;
2781 u8 dr[0];
2782 } __packed test_configure_monitor_mode_cfm;
2783 struct {
2784 __le32 spare_1;
2785 __le32 spare_2;
2786 __le32 spare_3;
2787 u8 dr[0];
2788 } __packed test_check_fw_alive_cfm;
2789 struct {
2790 __le32 spare_1;
2791 __le32 spare_2;
2792 __le32 spare_3;
2793 u8 dr[0];
2794 } __packed test_suspend_cfm;
2795 struct {
2796 __le32 spare_1;
2797 __le32 spare_2;
2798 __le32 spare_3;
2799 u8 dr[0];
2800 } __packed test_resume_cfm;
2801 struct {
2802 __le16 vif;
2803 __le16 debug_words[8];
2804 __le32 spare_1;
2805 __le32 spare_2;
2806 __le32 spare_3;
2807 u8 dr[0];
2808 } __packed debug_generic_cfm;
2809 struct {
2810 __le16 result_code;
2811 __le32 spare_1;
2812 __le32 spare_2;
2813 __le32 spare_3;
2814 u8 dr[0];
2815 } __packed wlanlite_radio_select_cfm;
2816 struct {
2817 __le16 vif;
2818 __le16 result_code;
2819 __le16 stream_id;
2820 __le32 spare_1;
2821 __le32 spare_2;
2822 __le32 spare_3;
2823 u8 dr[0];
2824 } __packed test_hip_tester_start_cfm;
2825 struct {
2826 __le16 vif;
2827 __le16 result_code;
2828 __le16 stream_id;
2829 __le32 duration;
2830 __le32 count;
2831 __le32 failed_count;
2832 __le32 octets;
2833 __le32 mbps;
2834 __le16 idle_ratio;
2835 __le16 int_latency;
2836 __le32 tester_reserved1;
2837 __le32 tester_reserved2;
2838 __le32 spare_1;
2839 __le32 spare_2;
2840 __le32 spare_3;
2841 u8 dr[0];
2842 } __packed test_hip_tester_stop_cfm;
2843 struct {
2844 __le16 vif;
2845 __le16 result_code;
2846 __le16 stream_id;
2847 __le32 spare_1;
2848 __le32 spare_2;
2849 __le32 spare_3;
2850 u8 dr[0];
2851 } __packed test_hip_tester_set_params_cfm;
2852 struct {
2853 __le16 result_code;
2854 __le32 gain;
2855 __le32 spare_1;
2856 __le32 spare_2;
2857 __le32 spare_3;
2858 u8 dr[0];
2859 } __packed test_bist_get_tx_gain_cfm;
2860 struct {
2861 __le16 vif;
2862 __le16 result_code;
2863 __le32 spare_1;
2864 __le32 spare_2;
2865 __le32 spare_3;
2866 u8 dr[0];
2867 } __packed test_spare_signal_1_cfm;
2868 struct {
2869 __le16 vif;
2870 __le16 result_code;
2871 __le32 spare_1;
2872 __le32 spare_2;
2873 __le32 spare_3;
2874 u8 dr[0];
2875 } __packed test_spare_signal_2_cfm;
2876 struct {
2877 __le16 vif;
2878 __le16 result_code;
2879 __le32 spare_1;
2880 __le32 spare_2;
2881 __le32 spare_3;
2882 u8 dr[0];
2883 } __packed test_spare_signal_3_cfm;
2884 struct {
2885 __le16 vif;
2886 __le32 spare_1;
2887 __le32 spare_2;
2888 __le32 spare_3;
2889 u8 dr[0];
2890 } __packed test_spare_signal_1_res;
2891 struct {
2892 __le16 vif;
2893 __le32 spare_1;
2894 __le32 spare_2;
2895 __le32 spare_3;
2896 u8 dr[0];
2897 } __packed test_spare_signal_2_res;
2898 struct {
2899 __le16 vif;
2900 __le32 spare_1;
2901 __le32 spare_2;
2902 __le32 spare_3;
2903 u8 dr[0];
2904 } __packed test_spare_signal_3_res;
2905 struct {
2906 __le32 sequence_number;
2907 __le32 more_data;
2908 __le32 spare_1;
2909 __le32 spare_2;
2910 __le32 spare_3;
2911 u8 dr[0];
2912 } __packed radio_logging_ind;
2913 struct {
2914 __le16 vif;
2915 __le16 debug_words[8];
2916 __le32 spare_1;
2917 __le32 spare_2;
2918 __le32 spare_3;
2919 u8 dr[0];
2920 } __packed debug_generic_ind;
2921 struct {
2922 __le16 vif;
2923 __le16 end_point;
2924 __le16 direction;
2925 __le32 duration;
2926 __le32 received_packets;
2927 __le32 received_octets;
2928 __le32 kbps;
2929 __le16 idle_ratio;
2930 __le16 int_latency;
2931 __le16 free_kbytes;
2932 __le32 spare_1;
2933 __le32 spare_2;
2934 __le32 spare_3;
2935 u8 dr[0];
2936 } __packed debug_pkt_sink_report_ind;
2937 struct {
2938 __le16 vif;
2939 __le16 end_point;
2940 __le16 direction;
2941 __le32 duration;
2942 __le32 received_packets;
2943 __le32 failed_count;
2944 __le32 received_octets;
2945 __le32 kbps;
2946 __le16 idle_ratio;
2947 __le16 int_latency;
2948 __le16 free_kbytes;
2949 __le32 spare_1;
2950 __le32 spare_2;
2951 __le32 spare_3;
2952 u8 dr[0];
2953 } __packed debug_pkt_gen_report_ind;
2954 struct {
2955 __le16 vif;
2956 __le16 stream_id;
2957 __le32 duration;
2958 __le32 count;
2959 __le32 failed_count;
2960 __le32 octets;
2961 __le32 mbps;
2962 __le16 idle_ratio;
2963 __le16 int_latency;
2964 __le32 tester_reserved1;
2965 __le32 tester_reserved2;
2966 __le32 spare_1;
2967 __le32 spare_2;
2968 __le32 spare_3;
2969 u8 dr[0];
2970 } __packed test_hip_tester_report_ind;
2971 struct {
2972 __le16 vif;
2973 __le32 spare_1;
2974 __le32 spare_2;
2975 __le32 spare_3;
2976 u8 dr[0];
2977 } __packed test_spare_signal_1_ind;
2978 struct {
2979 __le16 vif;
2980 __le32 spare_1;
2981 __le32 spare_2;
2982 __le32 spare_3;
2983 u8 dr[0];
2984 } __packed test_spare_signal_2_ind;
2985 struct {
2986 __le16 vif;
2987 __le32 spare_1;
2988 __le32 spare_2;
2989 __le32 spare_3;
2990 u8 dr[0];
2991 } __packed test_spare_signal_3_ind;
2992 } u;
2993 } __packed;
2994
2995 static inline struct sk_buff *fapi_alloc_f(size_t sig_size, size_t data_size, u16 id, u16 vif, const char *file, int line)
2996 {
2997 struct sk_buff *skb = slsi_alloc_skb_headroom_f(sig_size + data_size, GFP_ATOMIC, file, line);
2998 struct fapi_vif_signal_header *header;
2999
3000 WARN_ON(sig_size < sizeof(struct fapi_signal_header));
3001 if (WARN_ON(!skb))
3002 return NULL;
3003
3004 slsi_skb_cb_init(skb)->sig_length = sig_size;
3005 slsi_skb_cb_get(skb)->data_length = sig_size;
3006
3007 header = (struct fapi_vif_signal_header *)skb_put(skb, sig_size);
3008 header->id = cpu_to_le16(id);
3009 header->receiver_pid = 0;
3010 header->sender_pid = 0;
3011 header->fw_reference = 0;
3012 header->vif = vif;
3013 return skb;
3014 }
3015
3016 #define fapi_sig_size(mp_name) ((u16)offsetof(struct fapi_signal, u.mp_name.dr))
3017 #define fapi_alloc(mp_name, mp_id, mp_vif, mp_datalen) fapi_alloc_f(fapi_sig_size(mp_name), mp_datalen, mp_id, mp_vif, __FILE__, __LINE__)
3018 #define fapi_get_buff(mp_skb, mp_name) (((struct fapi_signal *)(mp_skb)->data)->mp_name)
3019 #define fapi_get_u16(mp_skb, mp_name) le16_to_cpu(((struct fapi_signal *)(mp_skb)->data)->mp_name)
3020 #define fapi_get_u32(mp_skb, mp_name) le32_to_cpu(((struct fapi_signal *)(mp_skb)->data)->mp_name)
3021 #define fapi_get_u64(mp_skb, mp_name) le64_to_cpu(((struct fapi_signal *)(mp_skb)->data)->mp_name)
3022 #define fapi_set_u16(mp_skb, mp_name, mp_value) (((struct fapi_signal *)(mp_skb)->data)->mp_name = cpu_to_le16(mp_value))
3023 #define fapi_set_u32(mp_skb, mp_name, mp_value) (((struct fapi_signal *)(mp_skb)->data)->mp_name = cpu_to_le32(mp_value))
3024 #define fapi_get_s16(mp_skb, mp_name) ((s16)le16_to_cpu(((struct fapi_signal *)(mp_skb)->data)->mp_name))
3025 #define fapi_get_s32(mp_skb, mp_name) ((s32)le32_to_cpu(((struct fapi_signal *)(mp_skb)->data)->mp_name))
3026 #define fapi_set_s16(mp_skb, mp_name, mp_value) (((struct fapi_signal *)(mp_skb)->data)->mp_name = cpu_to_le16((u16)mp_value))
3027 #define fapi_set_s32(mp_skb, mp_name, mp_value) (((struct fapi_signal *)(mp_skb)->data)->mp_name = cpu_to_le32((u32)mp_value))
3028 #define fapi_set_memcpy(mp_skb, mp_name, mp_value) memcpy(((struct fapi_signal *)(mp_skb)->data)->mp_name, mp_value, sizeof(((struct fapi_signal *)(mp_skb)->data)->mp_name))
3029 #define fapi_set_memset(mp_skb, mp_name, mp_value) memset(((struct fapi_signal *)(mp_skb)->data)->mp_name, mp_value, sizeof(((struct fapi_signal *)(mp_skb)->data)->mp_name))
3030
3031 /* Helper to get and set high/low 16 bits from u32 signals */
3032 #define fapi_get_high16_u32(mp_skb, mp_name) ((fapi_get_u32((mp_skb), mp_name) & 0xffff0000) >> 16)
3033 #define fapi_set_high16_u32(mp_skb, mp_name, mp_value) fapi_set_u32((mp_skb), mp_name, (fapi_get_u32((mp_skb), mp_name) & 0xffff) | ((mp_value) << 16))
3034 #define fapi_get_low16_u32(mp_skb, mp_name) (fapi_get_u32((mp_skb), mp_name) & 0xffff)
3035 #define fapi_set_low16_u32(mp_skb, mp_name, mp_value) fapi_set_u32((mp_skb), mp_name, (fapi_get_u32((mp_skb), mp_name) & 0xffff0000) | (mp_value))
3036
3037 /* Helper to get signal and data */
3038 #define fapi_get_sigid(mp_skb) le16_to_cpu(((struct fapi_signal *)(mp_skb)->data)->id)
3039 #define fapi_get_siglen(mp_skb) (slsi_skb_cb_get(mp_skb)->sig_length)
3040 #define fapi_get_datalen(mp_skb) (slsi_skb_cb_get(mp_skb)->data_length - slsi_skb_cb_get(mp_skb)->sig_length)
3041 #define fapi_get_data(mp_skb) (mp_skb->data + fapi_get_siglen(mp_skb))
3042 #define fapi_get_vif(mp_skb) le16_to_cpu(((struct fapi_vif_signal_header *)(mp_skb)->data)->vif)
3043
3044 /* Helper to get the struct ieee80211_mgmt from the data */
3045 #define fapi_get_mgmt(mp_skb) ((struct ieee80211_mgmt *)fapi_get_data(mp_skb))
3046 #define fapi_get_mgmtlen(mp_skb) fapi_get_datalen(mp_skb)
3047
3048 static inline u8 *fapi_append_data(struct sk_buff *skb, const u8 *data, size_t data_len)
3049 {
3050 u8 *p;
3051
3052 if (WARN_ON(skb_tailroom(skb) < data_len))
3053 return NULL;
3054
3055 p = skb_put(skb, data_len);
3056 slsi_skb_cb_get(skb)->data_length += data_len;
3057 if (data)
3058 memcpy(p, data, data_len);
3059 return p;
3060 }
3061
3062 static inline bool fapi_is_mlme(struct sk_buff *skb)
3063 {
3064 return (fapi_get_sigid(skb) & FAPI_SAP_TYPE_MASK) == FAPI_SAP_TYPE_MLME;
3065 }
3066
3067 static inline bool fapi_is_ma(struct sk_buff *skb)
3068 {
3069 return (fapi_get_sigid(skb) & FAPI_SAP_TYPE_MASK) == FAPI_SAP_TYPE_MA;
3070 }
3071
3072 static inline bool fapi_is_debug(struct sk_buff *skb)
3073 {
3074 return (fapi_get_sigid(skb) & FAPI_SAP_TYPE_MASK) == FAPI_SAP_TYPE_DEBUG;
3075 }
3076
3077 static inline bool fapi_is_test(struct sk_buff *skb)
3078 {
3079 return (fapi_get_sigid(skb) & FAPI_SAP_TYPE_MASK) == FAPI_SAP_TYPE_TEST;
3080 }
3081
3082 static inline bool fapi_is_req(struct sk_buff *skb)
3083 {
3084 return (fapi_get_sigid(skb) & FAPI_SIG_TYPE_MASK) == FAPI_SIG_TYPE_REQ;
3085 }
3086
3087 static inline bool fapi_is_cfm(struct sk_buff *skb)
3088 {
3089 return (fapi_get_sigid(skb) & FAPI_SIG_TYPE_MASK) == FAPI_SIG_TYPE_CFM;
3090 }
3091
3092 static inline bool fapi_is_res(struct sk_buff *skb)
3093 {
3094 return (fapi_get_sigid(skb) & FAPI_SIG_TYPE_MASK) == FAPI_SIG_TYPE_RES;
3095 }
3096
3097 static inline bool fapi_is_ind(struct sk_buff *skb)
3098 {
3099 return (fapi_get_sigid(skb) & FAPI_SIG_TYPE_MASK) == FAPI_SIG_TYPE_IND;
3100 }
3101
3102 static inline u16 fapi_get_expected_size_table(struct sk_buff *skb, const u16 fapi_size_table[], size_t table_size, u16 start_id)
3103 {
3104 u16 id = fapi_get_sigid(skb);
3105
3106 if (id < start_id)
3107 return 0;
3108
3109 if (id - start_id >= (u16)table_size)
3110 return 0;
3111
3112 return fapi_size_table[id - start_id];
3113 }
3114
3115 static inline u16 fapi_get_expected_size(struct sk_buff *skb)
3116 {
3117 static const u16 fapi_ma_req_size_table[] = {
3118 fapi_sig_size(ma_unitdata_req),
3119 fapi_sig_size(ma_control_req),
3120 fapi_sig_size(ma_spare_signal_1_req),
3121 fapi_sig_size(ma_spare_signal_2_req),
3122 fapi_sig_size(ma_spare_signal_3_req),
3123 };
3124
3125 static const u16 fapi_mlme_req_size_table[] = {
3126 fapi_sig_size(mlme_get_req),
3127 fapi_sig_size(mlme_set_req),
3128 fapi_sig_size(mlme_powermgt_req),
3129 fapi_sig_size(mlme_add_info_elements_req),
3130 fapi_sig_size(mlme_add_scan_req),
3131 fapi_sig_size(mlme_del_scan_req),
3132 fapi_sig_size(mlme_add_vif_req),
3133 fapi_sig_size(mlme_del_vif_req),
3134 fapi_sig_size(mlme_start_req),
3135 fapi_sig_size(mlme_set_channel_req),
3136 fapi_sig_size(mlme_connect_req),
3137 fapi_sig_size(mlme_reassociate_req),
3138 fapi_sig_size(mlme_roam_req),
3139 fapi_sig_size(mlme_disconnect_req),
3140 fapi_sig_size(mlme_register_action_frame_req),
3141 fapi_sig_size(mlme_send_frame_req),
3142 fapi_sig_size(mlme_reset_dwell_time_req),
3143 fapi_sig_size(mlme_set_traffic_parameters_req),
3144 fapi_sig_size(mlme_del_traffic_parameters_req),
3145 fapi_sig_size(mlme_set_packet_filter_req),
3146 fapi_sig_size(mlme_set_ip_address_req),
3147 fapi_sig_size(mlme_set_acl_req),
3148 0,
3149 fapi_sig_size(mlme_setkeys_req),
3150 0,
3151 fapi_sig_size(mlme_get_key_sequence_req),
3152 0,
3153 fapi_sig_size(mlme_set_pmk_req),
3154 0,
3155 0,
3156 fapi_sig_size(mlme_set_cached_channels_req),
3157 fapi_sig_size(mlme_set_whitelist_ssid_req),
3158 fapi_sig_size(mlme_tdls_action_req),
3159 fapi_sig_size(mlme_channel_switch_req),
3160 fapi_sig_size(mlme_monitor_rssi_req),
3161 fapi_sig_size(mlme_start_link_statistics_req),
3162 fapi_sig_size(mlme_stop_link_statistics_req),
3163 fapi_sig_size(mlme_set_bssid_hotlist_req),
3164 fapi_sig_size(mlme_set_pno_list_req),
3165 fapi_sig_size(mlme_host_state_req),
3166 fapi_sig_size(mlme_add_range_req),
3167 fapi_sig_size(mlme_del_range_req),
3168 fapi_sig_size(mlme_set_noa_req),
3169 fapi_sig_size(mlme_set_ctwindow_req),
3170 fapi_sig_size(mlme_nan_start_req),
3171 fapi_sig_size(mlme_nan_config_req),
3172 fapi_sig_size(mlme_nan_publish_req),
3173 fapi_sig_size(mlme_nan_subscribe_req),
3174 fapi_sig_size(mlme_nan_followup_req),
3175 fapi_sig_size(mlme_spare_signal_1_req),
3176 fapi_sig_size(mlme_spare_signal_2_req),
3177 fapi_sig_size(mlme_spare_signal_3_req),
3178 };
3179
3180 static const u16 fapi_debug_req_size_table[] = {
3181 fapi_sig_size(debug_spare_signal_1_req),
3182 fapi_sig_size(debug_spare_signal_2_req),
3183 fapi_sig_size(debug_spare_signal_3_req),
3184 };
3185
3186 static const u16 fapi_test_req_size_table[] = {
3187 fapi_sig_size(test_block_requests_req),
3188 fapi_sig_size(test_panic_req),
3189 fapi_sig_size(test_suspend_req),
3190 fapi_sig_size(test_resume_req),
3191 fapi_sig_size(radio_logging_req),
3192 fapi_sig_size(wlanlite_cw_start_req),
3193 fapi_sig_size(wlanlite_cw_stop_req),
3194 fapi_sig_size(wlanlite_tx_set_params_req),
3195 fapi_sig_size(wlanlite_tx_start_req),
3196 fapi_sig_size(wlanlite_tx_read_req),
3197 fapi_sig_size(wlanlite_tx_stop_req),
3198 fapi_sig_size(wlanlite_rx_start_req),
3199 fapi_sig_size(wlanlite_rx_read_req),
3200 fapi_sig_size(wlanlite_rx_stop_req),
3201 fapi_sig_size(wlanlite_status_req),
3202 fapi_sig_size(test_pmalloc_req),
3203 fapi_sig_size(test_configure_monitor_mode_req),
3204 0,
3205 fapi_sig_size(test_check_fw_alive_req),
3206 fapi_sig_size(debug_generic_req),
3207 fapi_sig_size(debug_pkt_sink_start_req),
3208 fapi_sig_size(debug_pkt_sink_stop_req),
3209 fapi_sig_size(debug_pkt_sink_report_req),
3210 fapi_sig_size(debug_pkt_gen_start_req),
3211 fapi_sig_size(debug_pkt_gen_stop_req),
3212 fapi_sig_size(debug_pkt_gen_report_req),
3213 fapi_sig_size(wlanlite_radio_select_req),
3214 fapi_sig_size(test_hip_tester_start_req),
3215 fapi_sig_size(test_hip_tester_stop_req),
3216 fapi_sig_size(test_hip_tester_set_params_req),
3217 fapi_sig_size(test_hip_tester_report_req),
3218 fapi_sig_size(test_bist_get_tx_gain_req),
3219 fapi_sig_size(test_spare_signal_1_req),
3220 fapi_sig_size(test_spare_signal_2_req),
3221 fapi_sig_size(test_spare_signal_3_req),
3222 };
3223
3224 static const u16 fapi_ma_cfm_size_table[] = {
3225 fapi_sig_size(ma_unitdata_cfm),
3226 fapi_sig_size(ma_control_cfm),
3227 fapi_sig_size(ma_spare_signal_1_cfm),
3228 fapi_sig_size(ma_spare_signal_2_cfm),
3229 fapi_sig_size(ma_spare_signal_3_cfm),
3230 };
3231
3232 static const u16 fapi_mlme_cfm_size_table[] = {
3233 fapi_sig_size(mlme_get_cfm),
3234 fapi_sig_size(mlme_set_cfm),
3235 fapi_sig_size(mlme_powermgt_cfm),
3236 fapi_sig_size(mlme_add_info_elements_cfm),
3237 fapi_sig_size(mlme_add_scan_cfm),
3238 fapi_sig_size(mlme_del_scan_cfm),
3239 fapi_sig_size(mlme_add_vif_cfm),
3240 fapi_sig_size(mlme_del_vif_cfm),
3241 fapi_sig_size(mlme_start_cfm),
3242 fapi_sig_size(mlme_set_channel_cfm),
3243 fapi_sig_size(mlme_connect_cfm),
3244 fapi_sig_size(mlme_reassociate_cfm),
3245 fapi_sig_size(mlme_roam_cfm),
3246 fapi_sig_size(mlme_disconnect_cfm),
3247 fapi_sig_size(mlme_register_action_frame_cfm),
3248 fapi_sig_size(mlme_send_frame_cfm),
3249 fapi_sig_size(mlme_reset_dwell_time_cfm),
3250 fapi_sig_size(mlme_set_traffic_parameters_cfm),
3251 fapi_sig_size(mlme_del_traffic_parameters_cfm),
3252 fapi_sig_size(mlme_set_packet_filter_cfm),
3253 fapi_sig_size(mlme_set_ip_address_cfm),
3254 fapi_sig_size(mlme_set_acl_cfm),
3255 0,
3256 fapi_sig_size(mlme_setkeys_cfm),
3257 0,
3258 fapi_sig_size(mlme_get_key_sequence_cfm),
3259 0,
3260 fapi_sig_size(mlme_set_pmk_cfm),
3261 0,
3262 0,
3263 fapi_sig_size(mlme_set_cached_channels_cfm),
3264 fapi_sig_size(mlme_set_whitelist_ssid_cfm),
3265 fapi_sig_size(mlme_tdls_action_cfm),
3266 fapi_sig_size(mlme_channel_switch_cfm),
3267 fapi_sig_size(mlme_monitor_rssi_cfm),
3268 fapi_sig_size(mlme_start_link_statistics_cfm),
3269 fapi_sig_size(mlme_stop_link_statistics_cfm),
3270 fapi_sig_size(mlme_set_bssid_hotlist_cfm),
3271 fapi_sig_size(mlme_set_pno_list_cfm),
3272 fapi_sig_size(mlme_host_state_cfm),
3273 fapi_sig_size(mlme_add_range_cfm),
3274 fapi_sig_size(mlme_del_range_cfm),
3275 fapi_sig_size(mlme_set_noa_cfm),
3276 fapi_sig_size(mlme_set_ctwindow_cfm),
3277 fapi_sig_size(mlme_nan_start_cfm),
3278 fapi_sig_size(mlme_nan_config_cfm),
3279 fapi_sig_size(mlme_nan_publish_cfm),
3280 fapi_sig_size(mlme_nan_subscribe_cfm),
3281 fapi_sig_size(mlme_nan_followup_cfm),
3282 fapi_sig_size(mlme_spare_signal_1_cfm),
3283 fapi_sig_size(mlme_spare_signal_2_cfm),
3284 fapi_sig_size(mlme_spare_signal_3_cfm),
3285 };
3286
3287 static const u16 fapi_debug_cfm_size_table[] = {
3288 fapi_sig_size(debug_spare_signal_1_cfm),
3289 fapi_sig_size(debug_spare_signal_2_cfm),
3290 fapi_sig_size(debug_spare_signal_3_cfm),
3291 };
3292
3293 static const u16 fapi_test_cfm_size_table[] = {
3294 fapi_sig_size(radio_logging_cfm),
3295 fapi_sig_size(wlanlite_cw_start_cfm),
3296 fapi_sig_size(wlanlite_tx_set_params_cfm),
3297 fapi_sig_size(wlanlite_cw_stop_cfm),
3298 fapi_sig_size(wlanlite_tx_start_cfm),
3299 fapi_sig_size(wlanlite_tx_read_cfm),
3300 fapi_sig_size(wlanlite_tx_stop_cfm),
3301 fapi_sig_size(wlanlite_rx_start_cfm),
3302 fapi_sig_size(wlanlite_rx_read_cfm),
3303 fapi_sig_size(wlanlite_rx_stop_cfm),
3304 fapi_sig_size(wlanlite_status_cfm),
3305 fapi_sig_size(test_pmalloc_cfm),
3306 fapi_sig_size(test_configure_monitor_mode_cfm),
3307 0,
3308 fapi_sig_size(test_check_fw_alive_cfm),
3309 fapi_sig_size(test_suspend_cfm),
3310 fapi_sig_size(test_resume_cfm),
3311 fapi_sig_size(debug_generic_cfm),
3312 fapi_sig_size(wlanlite_radio_select_cfm),
3313 fapi_sig_size(test_hip_tester_start_cfm),
3314 fapi_sig_size(test_hip_tester_stop_cfm),
3315 fapi_sig_size(test_hip_tester_set_params_cfm),
3316 fapi_sig_size(test_bist_get_tx_gain_cfm),
3317 fapi_sig_size(test_spare_signal_1_cfm),
3318 fapi_sig_size(test_spare_signal_2_cfm),
3319 fapi_sig_size(test_spare_signal_3_cfm),
3320 };
3321
3322 static const u16 fapi_ma_ind_size_table[] = {
3323 fapi_sig_size(ma_unitdata_ind),
3324 fapi_sig_size(ma_blockack_ind),
3325 fapi_sig_size(ma_spare_signal_1_ind),
3326 fapi_sig_size(ma_spare_signal_2_ind),
3327 fapi_sig_size(ma_spare_signal_3_ind),
3328 };
3329
3330 static const u16 fapi_mlme_ind_size_table[] = {
3331 fapi_sig_size(mlme_scan_ind),
3332 fapi_sig_size(mlme_scan_done_ind),
3333 fapi_sig_size(mlme_listen_end_ind),
3334 fapi_sig_size(mlme_connect_ind),
3335 fapi_sig_size(mlme_connected_ind),
3336 fapi_sig_size(mlme_reassociate_ind),
3337 fapi_sig_size(mlme_roam_ind),
3338 fapi_sig_size(mlme_roamed_ind),
3339 fapi_sig_size(mlme_disconnect_ind),
3340 fapi_sig_size(mlme_disconnected_ind),
3341 fapi_sig_size(mlme_procedure_started_ind),
3342 fapi_sig_size(mlme_mic_failure_ind),
3343 fapi_sig_size(mlme_frame_transmission_ind),
3344 fapi_sig_size(mlme_received_frame_ind),
3345 0,
3346 fapi_sig_size(mlme_tdls_peer_ind),
3347 fapi_sig_size(mlme_ap_loss_ind),
3348 fapi_sig_size(mlme_significant_change_ind),
3349 fapi_sig_size(mlme_rssi_report_ind),
3350 fapi_sig_size(mlme_ac_priority_update_ind),
3351 fapi_sig_size(mlme_range_ind),
3352 fapi_sig_size(mlme_range_done_ind),
3353 fapi_sig_size(mlme_event_log_ind),
3354 fapi_sig_size(mlme_nan_event_ind),
3355 fapi_sig_size(mlme_nan_service_ind),
3356 fapi_sig_size(mlme_nan_followup_ind),
3357 fapi_sig_size(mlme_channel_switched_ind),
3358 fapi_sig_size(mlme_spare_signal_1_ind),
3359 fapi_sig_size(mlme_spare_signal_2_ind),
3360 fapi_sig_size(mlme_spare_signal_3_ind),
3361 };
3362
3363 static const u16 fapi_debug_ind_size_table[] = {
3364 fapi_sig_size(debug_word12_ind),
3365 fapi_sig_size(debug_fault_ind),
3366 fapi_sig_size(debug_spare_signal_1_ind),
3367 fapi_sig_size(debug_spare_signal_2_ind),
3368 fapi_sig_size(debug_spare_signal_3_ind),
3369 };
3370
3371 static const u16 fapi_test_ind_size_table[] = {
3372 fapi_sig_size(radio_logging_ind),
3373 fapi_sig_size(debug_generic_ind),
3374 fapi_sig_size(debug_pkt_sink_report_ind),
3375 fapi_sig_size(debug_pkt_gen_report_ind),
3376 fapi_sig_size(test_hip_tester_report_ind),
3377 fapi_sig_size(test_spare_signal_1_ind),
3378 fapi_sig_size(test_spare_signal_2_ind),
3379 fapi_sig_size(test_spare_signal_3_ind),
3380 };
3381
3382 static const u16 fapi_mlme_res_size_table[] = {
3383 fapi_sig_size(mlme_connect_res),
3384 fapi_sig_size(mlme_connected_res),
3385 fapi_sig_size(mlme_reassociate_res),
3386 fapi_sig_size(mlme_roamed_res),
3387 fapi_sig_size(mlme_tdls_peer_res),
3388 fapi_sig_size(mlme_spare_signal_1_res),
3389 fapi_sig_size(mlme_spare_signal_2_res),
3390 fapi_sig_size(mlme_spare_signal_3_res),
3391 };
3392
3393 static const u16 fapi_ma_res_size_table[] = {
3394 fapi_sig_size(ma_spare_signal_1_res),
3395 fapi_sig_size(ma_spare_signal_2_res),
3396 fapi_sig_size(ma_spare_signal_3_res),
3397 };
3398
3399 static const u16 fapi_debug_res_size_table[] = {
3400 fapi_sig_size(debug_spare_signal_1_res),
3401 fapi_sig_size(debug_spare_signal_2_res),
3402 fapi_sig_size(debug_spare_signal_3_res),
3403 };
3404
3405 static const u16 fapi_test_res_size_table[] = {
3406 fapi_sig_size(test_spare_signal_1_res),
3407 fapi_sig_size(test_spare_signal_2_res),
3408 fapi_sig_size(test_spare_signal_3_res),
3409 };
3410
3411 if (fapi_is_mlme(skb) && fapi_is_req(skb))
3412 return fapi_get_expected_size_table(skb, fapi_mlme_req_size_table, ARRAY_SIZE(fapi_mlme_req_size_table), MLME_GET_REQ);
3413 else if (fapi_is_mlme(skb) && fapi_is_cfm(skb))
3414 return fapi_get_expected_size_table(skb, fapi_mlme_cfm_size_table, ARRAY_SIZE(fapi_mlme_cfm_size_table), MLME_GET_CFM);
3415 else if (fapi_is_mlme(skb) && fapi_is_res(skb))
3416 return fapi_get_expected_size_table(skb, fapi_mlme_res_size_table, ARRAY_SIZE(fapi_mlme_res_size_table), MLME_CONNECT_RES);
3417 else if (fapi_is_mlme(skb) && fapi_is_ind(skb))
3418 return fapi_get_expected_size_table(skb, fapi_mlme_ind_size_table, ARRAY_SIZE(fapi_mlme_ind_size_table), MLME_SCAN_IND);
3419 else if (fapi_is_ma(skb) && fapi_is_req(skb))
3420 return fapi_get_expected_size_table(skb, fapi_ma_req_size_table, ARRAY_SIZE(fapi_ma_req_size_table), MA_UNITDATA_REQ);
3421 else if (fapi_is_ma(skb) && fapi_is_cfm(skb))
3422 return fapi_get_expected_size_table(skb, fapi_ma_cfm_size_table, ARRAY_SIZE(fapi_ma_cfm_size_table), MA_UNITDATA_CFM);
3423 else if (fapi_is_ma(skb) && fapi_is_ind(skb))
3424 return fapi_get_expected_size_table(skb, fapi_ma_ind_size_table, ARRAY_SIZE(fapi_ma_ind_size_table), MA_UNITDATA_IND);
3425 else if (fapi_is_debug(skb) && fapi_is_req(skb))
3426 return fapi_get_expected_size_table(skb, fapi_debug_req_size_table, ARRAY_SIZE(fapi_debug_req_size_table), DEBUG_GENERIC_REQ);
3427 else if (fapi_is_debug(skb) && fapi_is_cfm(skb))
3428 return fapi_get_expected_size_table(skb, fapi_debug_cfm_size_table, ARRAY_SIZE(fapi_debug_cfm_size_table), DEBUG_GENERIC_CFM);
3429 else if (fapi_is_debug(skb) && fapi_is_ind(skb))
3430 return fapi_get_expected_size_table(skb, fapi_debug_ind_size_table, ARRAY_SIZE(fapi_debug_ind_size_table), DEBUG_WORD12IND);
3431 else if (fapi_is_test(skb) && fapi_is_req(skb))
3432 return fapi_get_expected_size_table(skb, fapi_test_req_size_table, ARRAY_SIZE(fapi_test_req_size_table), TEST_BLOCK_REQUESTS_REQ);
3433 else if (fapi_is_test(skb) && fapi_is_cfm(skb))
3434 return fapi_get_expected_size_table(skb, fapi_test_cfm_size_table, ARRAY_SIZE(fapi_test_cfm_size_table), RADIO_LOGGING_CFM);
3435 else if (fapi_is_test(skb) && fapi_is_ind(skb))
3436 return fapi_get_expected_size_table(skb, fapi_test_ind_size_table, ARRAY_SIZE(fapi_test_ind_size_table), RADIO_LOGGING_IND);
3437 else if (fapi_is_mlme(skb) && fapi_is_res(skb))
3438 return fapi_get_expected_size_table(skb, fapi_ma_res_size_table, ARRAY_SIZE(fapi_ma_res_size_table), MA_SPARE_SIGNAL_1_RES);
3439 else if (fapi_is_mlme(skb) && fapi_is_res(skb))
3440 return fapi_get_expected_size_table(skb, fapi_debug_res_size_table, ARRAY_SIZE(fapi_debug_res_size_table), DEBUG_SPARE_SIGNAL_1_RES);
3441 else if (fapi_is_mlme(skb) && fapi_is_res(skb))
3442 return fapi_get_expected_size_table(skb, fapi_test_res_size_table, ARRAY_SIZE(fapi_test_res_size_table), TEST_SPARE_SIGNAL_1_RES);
3443
3444 return 0;
3445 }
3446
3447 #ifdef __cplusplus
3448 }
3449 #endif
3450 #endif /* _FAPI_H__ */