xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/rockchip_wlan/mvl88w8977/mlinux/moal_priv.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 
2 /** @file moal_priv.h
3  *
4  * @brief This file contains definition for extended private IOCTL call.
5  *
6  * Copyright (C) 2008-2017, Marvell International Ltd.
7  *
8  * This software file (the "File") is distributed by Marvell International
9  * Ltd. under the terms of the GNU General Public License Version 2, June 1991
10  * (the "License").  You may use, redistribute and/or modify this File in
11  * accordance with the terms and conditions of the License, a copy of which
12  * is available by writing to the Free Software Foundation, Inc.,
13  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or on the
14  * worldwide web at http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
15  *
16  * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
17  * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
18  * ARE EXPRESSLY DISCLAIMED.  The License provides additional details about
19  * this warranty disclaimer.
20  *
21  */
22 
23 /********************************************************
24 Change log:
25     10/31/2008: initial version
26 ********************************************************/
27 
28 #ifndef _WOAL_PRIV_H_
29 #define _WOAL_PRIV_H_
30 
31 /** 2K bytes */
32 #define WOAL_2K_BYTES       2000
33 
34 /** PRIVATE CMD ID */
35 #define WOAL_IOCTL                  (SIOCIWFIRSTPRIV)	/* 0x8BE0 defined in wireless.h */
36 
37 /** Private command ID to set one int/get word char */
38 #define WOAL_SETONEINT_GETWORDCHAR  (WOAL_IOCTL + 1)
39 /** Private command ID to get version */
40 #define WOAL_VERSION                1
41 /** Private command ID to get extended version */
42 #define WOAL_VEREXT                 2
43 
44 /** Private command ID to set/get none */
45 #define WOAL_SETNONE_GETNONE        (WOAL_IOCTL + 2)
46 /** Private command ID for warm reset */
47 #define WOAL_WARMRESET              1
48 
49 /**
50  * Linux Kernels later 3.9 use CONFIG_PM_RUNTIME instead of
51  * CONFIG_USB_SUSPEND
52  */
53 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
54 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
55 #ifdef CONFIG_PM
56 #ifndef CONFIG_USB_SUSPEND
57 #define CONFIG_USB_SUSPEND
58 #endif
59 #endif
60 #else /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
61 #ifdef CONFIG_PM_RUNTIME
62 #ifndef CONFIG_USB_SUSPEND
63 #define CONFIG_USB_SUSPEND
64 #endif
65 #endif
66 #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
67 #endif
68 
69 /** Private command ID to clear 11d chan table */
70 #define WOAL_11D_CLR_CHAN_TABLE     4
71 
72 /** Private command ID to set/get sixteen int */
73 #define WOAL_SET_GET_SIXTEEN_INT    (WOAL_IOCTL + 3)
74 /** Private command ID to set/get TX power configurations */
75 #define WOAL_TX_POWERCFG            1
76 #ifdef DEBUG_LEVEL1
77 /** Private command ID to set/get driver debug */
78 #define WOAL_DRV_DBG                2
79 #endif
80 /** Private command ID to set/get beacon interval */
81 #define WOAL_BEACON_INTERVAL        3
82 /** Private command ID to set/get ATIM window */
83 #define WOAL_ATIM_WINDOW            4
84 /** Private command ID to get RSSI */
85 #define WOAL_SIGNAL                 5
86 /** Private command ID to set/get Deep Sleep mode */
87 #define WOAL_DEEP_SLEEP             7
88 /** Private command ID for 11n ht configration */
89 #define WOAL_11N_TX_CFG             8
90 /** Private command ID for 11n usr ht configration */
91 #define WOAL_11N_HTCAP_CFG          9
92 /** Private command ID for TX Aggregation */
93 #define WOAL_PRIO_TBL               10
94 /** Private command ID for Updating ADDBA variables */
95 #define WOAL_ADDBA_UPDT             11
96 /** Private command ID to set/get Host Sleep configuration */
97 #define WOAL_HS_CFG                 12
98 /** Private command ID to set Host Sleep parameters */
99 #define WOAL_HS_SETPARA             13
100 /** Private command ID to read/write registers */
101 #define WOAL_REG_READ_WRITE         14
102 /** Private command ID to set/get band/adhocband */
103 #define WOAL_BAND_CFG               15
104 /** Private command ID for TX Aggregation */
105 #define WOAL_11N_AMSDU_AGGR_CTRL    17
106 /** Private command ID to set/get Inactivity timeout */
107 #define WOAL_INACTIVITY_TIMEOUT_EXT 18
108 /** Private command ID to turn on/off sdio clock */
109 #define WOAL_SDIO_CLOCK             19
110 /** Private command ID to read/write Command 52 */
111 #define WOAL_CMD_52RDWR             20
112 /** Private command ID to set/get scan configuration parameter */
113 #define WOAL_SCAN_CFG               21
114 /** Private command ID to set/get PS configuration parameter */
115 #define WOAL_PS_CFG                 22
116 /** Private command ID to read/write memory */
117 #define WOAL_MEM_READ_WRITE         23
118 #if defined(SDIO_MULTI_PORT_TX_AGGR) || defined(SDIO_MULTI_PORT_RX_AGGR)
119 /** Private command ID to control SDIO MP-A */
120 #define WOAL_SDIO_MPA_CTRL          25
121 #endif
122 /** Private command ID for Updating ADDBA variables */
123 #define WOAL_ADDBA_REJECT           27
124 /** Private command ID to set/get sleep parameters */
125 #define WOAL_SLEEP_PARAMS           28
126 /** Private command ID to set/get network monitor */
127 #define WOAL_NET_MONITOR            30
128 /** Private command ID to set/get TX BF capabilities */
129 #define WOAL_TX_BF_CAP              31
130 #if defined(DFS_TESTING_SUPPORT)
131 /** Private command ID to set/get dfs testing settings */
132 #define WOAL_DFS_TESTING            33
133 #endif
134 /** Private command ID to set/get CFP table codes */
135 #define WOAL_CFP_CODE               34
136 /** Private command ID to set/get tx/rx antenna */
137 #define WOAL_SET_GET_TX_RX_ANT      35
138 /** Private command ID to set/get management frame passthru mask */
139 #define WOAL_MGMT_FRAME_CTRL        36
140 
141 /** Private command ID to configure gpio independent reset */
142 #define WOAL_IND_RST_CFG            37
143 
144 /** Private command ID to set one int/get one int */
145 #define WOAL_SETONEINT_GETONEINT    (WOAL_IOCTL + 5)
146 /** Private command ID to set/get Tx rate */
147 #define WOAL_SET_GET_TXRATE         1
148 /** Private command ID to set/get region code */
149 #define WOAL_SET_GET_REGIONCODE     2
150 /** Private command ID to turn on/off radio */
151 #define WOAL_SET_RADIO              3
152 /** Private command ID to enable WMM */
153 #define WOAL_WMM_ENABLE             4
154 /** Private command ID to enable 802.11D */
155 #define WOAL_11D_ENABLE             5
156 /** Private command ID to set/get QoS configuration */
157 #define WOAL_SET_GET_QOS_CFG        7
158 #if defined(REASSOCIATION)
159 /** Private command ID to set/get reassociation setting */
160 #define WOAL_SET_GET_REASSOC        9
161 #endif /* REASSOCIATION */
162 /** Private command ID for Updating Transmit buffer configration */
163 #define WOAL_TXBUF_CFG              10
164 /** Private command ID to set/get WWS mode */
165 #define	WOAL_SET_GET_WWS_CFG        12
166 /** Private command ID to set/get sleep period */
167 #define WOAL_SLEEP_PD               13
168 /** Private command ID to set/get firmware wakeup method */
169 #define WOAL_FW_WAKEUP_METHOD       15
170 /** Private command ID to set/get auth type */
171 #define WOAL_AUTH_TYPE              18
172 /** Private command ID to set/get port control */
173 #define WOAL_PORT_CTRL              19
174 /** Private command ID for coalesced status */
175 #define WOAL_COALESCING_STATUS      20
176 #if defined(WIFI_DIRECT_SUPPORT)
177 #if defined(STA_SUPPORT) && defined(UAP_SUPPORT)
178 /** Private command ID for set/get BSS role */
179 #define WOAL_SET_GET_BSS_ROLE       21
180 #endif
181 #endif
182 /** Private command ID for set/get 11h local power constraint */
183 #define WOAL_SET_GET_11H_LOCAL_PWR_CONSTRAINT 22
184 /** Private command ID to set/get MAC control */
185 #define WOAL_MAC_CONTROL            24
186 /** Private command ID to get thermal value */
187 #define WOAL_THERMAL                25
188 
189 /** Private command ID to get log */
190 #define WOALGETLOG                  (WOAL_IOCTL + 7)
191 
192 /** Private command ID to set a wext address variable */
193 #define WOAL_SETADDR_GETNONE        (WOAL_IOCTL + 8)
194 /** Private command ID to send deauthentication */
195 #define WOAL_DEAUTH                 1
196 
197 /** Private command to get/set 256 chars */
198 #define WOAL_SET_GET_256_CHAR       (WOAL_IOCTL + 9)
199 /** Private command to read/write passphrase */
200 #define WOAL_PASSPHRASE             1
201 /** Private command to get/set Ad-Hoc AES */
202 #define WOAL_ADHOC_AES              2
203 #define WOAL_ASSOCIATE              3
204 /** Private command ID to get WMM queue status */
205 #define WOAL_WMM_QUEUE_STATUS       4
206 /** Private command ID to get Traffic stream status */
207 #define WOAL_WMM_TS_STATUS          5
208 #define WOAL_IP_ADDRESS             7
209 /** Private command ID to set/get TX bemaforming */
210 #define WOAL_TX_BF_CFG              8
211 
212 /** Get log buffer size */
213 #define GETLOG_BUFSIZE              512
214 
215 /** Private command ID to set none/get twelve chars*/
216 #define WOAL_SETNONE_GETTWELVE_CHAR (WOAL_IOCTL + 11)
217 /** Private command ID for WPS session */
218 #define WOAL_WPS_SESSION            1
219 
220 /** Private command ID to set none/get four int */
221 #define WOAL_SETNONE_GET_FOUR_INT   (WOAL_IOCTL + 13)
222 /** Private command ID to get data rates */
223 #define WOAL_DATA_RATE              1
224 /** Private command ID to get E-Supplicant mode */
225 #define WOAL_ESUPP_MODE             2
226 
227 /** Private command to get/set 64 ints */
228 #define WOAL_SET_GET_64_INT         (WOAL_IOCTL + 15)
229 /** Private command ID to set/get ECL system clock */
230 #define WOAL_ECL_SYS_CLOCK          1
231 
232 /** Private command ID for hostcmd */
233 #define WOAL_HOST_CMD               (WOAL_IOCTL + 17)
234 
235 /** Private command ID for arpfilter */
236 #define WOAL_ARP_FILTER             (WOAL_IOCTL + 19)
237 
238 /** Private command ID to set ints and get chars */
239 #define WOAL_SET_INTS_GET_CHARS     (WOAL_IOCTL + 21)
240 /** Private command ID to read EEPROM data */
241 #define WOAL_READ_EEPROM            1
242 
243 /** Private command ID to set/get 2K bytes */
244 #define WOAL_SET_GET_2K_BYTES       (WOAL_IOCTL + 23)
245 
246 /** Private command ID to read/write Command 53 */
247 #define WOAL_CMD_53RDWR             2
248 
249 /** Private command ID for setuserscan */
250 #define WOAL_SET_USER_SCAN          3
251 /** Private command ID for getscantable */
252 #define WOAL_GET_SCAN_TABLE         4
253 /** Private command ID for setuserscanext: async without wait */
254 #define WOAL_SET_USER_SCAN_EXT      5
255 
256 /** Private command ID to request ADDTS */
257 #define WOAL_WMM_ADDTS              7
258 /** Private command ID to request DELTS */
259 #define WOAL_WMM_DELTS              8
260 /** Private command ID to queue configuration */
261 #define WOAL_WMM_QUEUE_CONFIG       9
262 /** Private command ID to queue stats */
263 #define WOAL_WMM_QUEUE_STATS        10
264 /** Private command ID to Bypass auth packet */
265 #define WOAL_BYPASSED_PACKET		11
266 
267 #ifdef UAP_WEXT
268 /** The following command IDs are for Froyo app */
269 /** Private command ID to start driver */
270 #define WOAL_FROYO_START            (WOAL_IOCTL + 28)
271 /** Private command ID to reload FW */
272 #define WOAL_FROYO_WL_FW_RELOAD     (WOAL_IOCTL + 29)
273 /** Private command ID to stop driver */
274 #define WOAL_FROYO_STOP             (WOAL_IOCTL + 30)
275 #endif
276 
277 /**
278  * iwpriv ioctl handlers
279  */
280 static const struct iw_priv_args woal_private_args[] = {
281 	{
282 	 WOAL_SETONEINT_GETWORDCHAR,
283 	 IW_PRIV_TYPE_INT | 1,
284 	 IW_PRIV_TYPE_CHAR | 128,
285 	 ""},
286 	{
287 	 WOAL_VERSION,
288 	 IW_PRIV_TYPE_INT | 1,
289 	 IW_PRIV_TYPE_CHAR | 128,
290 	 "version"},
291 	{
292 	 WOAL_VEREXT,
293 	 IW_PRIV_TYPE_INT | 1,
294 	 IW_PRIV_TYPE_CHAR | 128,
295 	 "verext"},
296 	{
297 	 WOAL_SETNONE_GETNONE,
298 	 IW_PRIV_TYPE_NONE,
299 	 IW_PRIV_TYPE_NONE,
300 	 ""},
301 	{
302 	 WOAL_WARMRESET,
303 	 IW_PRIV_TYPE_NONE,
304 	 IW_PRIV_TYPE_NONE,
305 	 "warmreset"},
306 	{
307 	 WOAL_SETONEINT_GETONEINT,
308 	 IW_PRIV_TYPE_INT | 1,
309 	 IW_PRIV_TYPE_INT | 1,
310 	 ""},
311 	{
312 	 WOAL_SET_GET_TXRATE,
313 	 IW_PRIV_TYPE_INT | 1,
314 	 IW_PRIV_TYPE_INT | 1,
315 	 "txratecfg"},
316 	{
317 	 WOAL_SET_GET_REGIONCODE,
318 	 IW_PRIV_TYPE_INT | 1,
319 	 IW_PRIV_TYPE_INT | 1,
320 	 "regioncode"},
321 	{
322 	 WOAL_SET_RADIO,
323 	 IW_PRIV_TYPE_INT | 1,
324 	 IW_PRIV_TYPE_INT | 1,
325 	 "radioctrl"},
326 	{
327 	 WOAL_WMM_ENABLE,
328 	 IW_PRIV_TYPE_INT | 1,
329 	 IW_PRIV_TYPE_INT | 1,
330 	 "wmmcfg"},
331 	{
332 	 WOAL_11D_ENABLE,
333 	 IW_PRIV_TYPE_INT | 1,
334 	 IW_PRIV_TYPE_INT | 1,
335 	 "11dcfg"},
336 	{
337 	 WOAL_11D_CLR_CHAN_TABLE,
338 	 IW_PRIV_TYPE_NONE,
339 	 IW_PRIV_TYPE_NONE,
340 	 "11dclrtbl"},
341 	{
342 	 WOAL_SET_GET_QOS_CFG,
343 	 IW_PRIV_TYPE_INT | 1,
344 	 IW_PRIV_TYPE_INT | 1,
345 	 "qoscfg"},
346 	{
347 	 WOAL_SET_GET_WWS_CFG,
348 	 IW_PRIV_TYPE_INT | 1,
349 	 IW_PRIV_TYPE_INT | 1,
350 	 "wwscfg"},
351 #if defined(REASSOCIATION)
352 	{
353 	 WOAL_SET_GET_REASSOC,
354 	 IW_PRIV_TYPE_INT | 1,
355 	 IW_PRIV_TYPE_INT | 1,
356 	 "reassoctrl"},
357 #endif
358 	{
359 	 WOAL_TXBUF_CFG,
360 	 IW_PRIV_TYPE_INT | 1,
361 	 IW_PRIV_TYPE_INT | 1,
362 	 "txbufcfg"},
363 	{
364 	 WOAL_SLEEP_PD,
365 	 IW_PRIV_TYPE_INT | 1,
366 	 IW_PRIV_TYPE_INT | 1,
367 	 "sleeppd"},
368 	{
369 	 WOAL_FW_WAKEUP_METHOD,
370 	 IW_PRIV_TYPE_INT | 1,
371 	 IW_PRIV_TYPE_INT | 1,
372 	 "fwwakeupmethod"},
373 	{
374 	 WOAL_AUTH_TYPE,
375 	 IW_PRIV_TYPE_INT | 1,
376 	 IW_PRIV_TYPE_INT | 1,
377 	 "authtype"},
378 	{
379 	 WOAL_PORT_CTRL,
380 	 IW_PRIV_TYPE_INT | 1,
381 	 IW_PRIV_TYPE_INT | 1,
382 	 "port_ctrl"},
383 	{
384 	 WOAL_COALESCING_STATUS,
385 	 IW_PRIV_TYPE_INT | 1,
386 	 IW_PRIV_TYPE_INT | 1,
387 	 "coalesce_status"},
388 #if defined(WIFI_DIRECT_SUPPORT)
389 #if defined(STA_SUPPORT) && defined(UAP_SUPPORT)
390 	{
391 	 WOAL_SET_GET_BSS_ROLE,
392 	 IW_PRIV_TYPE_INT | 1,
393 	 IW_PRIV_TYPE_INT | 1,
394 	 "bssrole"},
395 #endif
396 #endif
397 	{
398 	 WOAL_SET_GET_11H_LOCAL_PWR_CONSTRAINT,
399 	 IW_PRIV_TYPE_INT | 1,
400 	 IW_PRIV_TYPE_INT | 1,
401 	 "powercons"},
402 	{
403 	 WOAL_MAC_CONTROL,
404 	 IW_PRIV_TYPE_INT | 1,
405 	 IW_PRIV_TYPE_INT | 1,
406 	 "macctrl"},
407 	{
408 	 WOAL_THERMAL,
409 	 IW_PRIV_TYPE_INT | 1,
410 	 IW_PRIV_TYPE_INT | 1,
411 	 "thermal"},
412 	{
413 	 WOAL_SET_GET_SIXTEEN_INT,
414 	 IW_PRIV_TYPE_INT | 16,
415 	 IW_PRIV_TYPE_INT | 16,
416 	 ""},
417 	{
418 	 WOAL_TX_POWERCFG,
419 	 IW_PRIV_TYPE_INT | 16,
420 	 IW_PRIV_TYPE_INT | 16,
421 	 "txpowercfg"},
422 #ifdef DEBUG_LEVEL1
423 	{
424 	 WOAL_DRV_DBG,
425 	 IW_PRIV_TYPE_INT | 16,
426 	 IW_PRIV_TYPE_INT | 16,
427 	 "drvdbg"},
428 #endif
429 	{
430 	 WOAL_BEACON_INTERVAL,
431 	 IW_PRIV_TYPE_INT | 16,
432 	 IW_PRIV_TYPE_INT | 16,
433 	 "bcninterval"},
434 	{
435 	 WOAL_ATIM_WINDOW,
436 	 IW_PRIV_TYPE_INT | 16,
437 	 IW_PRIV_TYPE_INT | 16,
438 	 "atimwindow"},
439 	{
440 	 WOAL_SIGNAL,
441 	 IW_PRIV_TYPE_INT | 16,
442 	 IW_PRIV_TYPE_INT | 16,
443 	 "getsignal"},
444 	{
445 	 WOAL_DEEP_SLEEP,
446 	 IW_PRIV_TYPE_INT | 16,
447 	 IW_PRIV_TYPE_INT | 16,
448 	 "deepsleep",
449 	 },
450 	{
451 	 WOAL_11N_TX_CFG,
452 	 IW_PRIV_TYPE_INT | 16,
453 	 IW_PRIV_TYPE_INT | 16,
454 	 "httxcfg"},
455 	{
456 	 WOAL_11N_HTCAP_CFG,
457 	 IW_PRIV_TYPE_INT | 16,
458 	 IW_PRIV_TYPE_INT | 16,
459 	 "htcapinfo"},
460 	{
461 	 WOAL_PRIO_TBL,
462 	 IW_PRIV_TYPE_INT | 16,
463 	 IW_PRIV_TYPE_INT | 16,
464 	 "aggrpriotbl"},
465 	{
466 	 WOAL_11N_AMSDU_AGGR_CTRL,
467 	 IW_PRIV_TYPE_INT | 16,
468 	 IW_PRIV_TYPE_INT | 16,
469 	 "amsduaggrctrl"},
470 	{
471 	 WOAL_ADDBA_UPDT,
472 	 IW_PRIV_TYPE_INT | 16,
473 	 IW_PRIV_TYPE_INT | 16,
474 	 "addbapara"},
475 	{
476 	 WOAL_ADDBA_REJECT,
477 	 IW_PRIV_TYPE_INT | 16,
478 	 IW_PRIV_TYPE_INT | 16,
479 	 "addbareject"},
480 	{
481 	 WOAL_TX_BF_CAP,
482 	 IW_PRIV_TYPE_INT | 16,
483 	 IW_PRIV_TYPE_INT | 16,
484 	 "httxbfcap"},
485 	{
486 	 WOAL_HS_CFG,
487 	 IW_PRIV_TYPE_INT | 16,
488 	 IW_PRIV_TYPE_INT | 16,
489 	 "hscfg"},
490 	{
491 	 WOAL_HS_SETPARA,
492 	 IW_PRIV_TYPE_INT | 16,
493 	 IW_PRIV_TYPE_INT | 16,
494 	 "hssetpara"},
495 	{
496 	 WOAL_REG_READ_WRITE,
497 	 IW_PRIV_TYPE_INT | 16,
498 	 IW_PRIV_TYPE_INT | 16,
499 	 "regrdwr"},
500 	{
501 	 WOAL_BAND_CFG,
502 	 IW_PRIV_TYPE_INT | 16,
503 	 IW_PRIV_TYPE_INT | 16,
504 	 "bandcfg"},
505 	{
506 	 WOAL_INACTIVITY_TIMEOUT_EXT,
507 	 IW_PRIV_TYPE_INT | 16,
508 	 IW_PRIV_TYPE_INT | 16,
509 	 "inactivityto"},
510 	{
511 	 WOAL_SDIO_CLOCK,
512 	 IW_PRIV_TYPE_INT | 16,
513 	 IW_PRIV_TYPE_INT | 16,
514 	 "sdioclock"},
515 	{
516 	 WOAL_CMD_52RDWR,
517 	 IW_PRIV_TYPE_INT | 16,
518 	 IW_PRIV_TYPE_INT | 16,
519 	 "sdcmd52rw"},
520 	{
521 	 WOAL_SCAN_CFG,
522 	 IW_PRIV_TYPE_INT | 16,
523 	 IW_PRIV_TYPE_INT | 16,
524 	 "scancfg"},
525 	{
526 	 WOAL_PS_CFG,
527 	 IW_PRIV_TYPE_INT | 16,
528 	 IW_PRIV_TYPE_INT | 16,
529 	 "pscfg"},
530 	{
531 	 WOAL_MEM_READ_WRITE,
532 	 IW_PRIV_TYPE_INT | 16,
533 	 IW_PRIV_TYPE_INT | 16,
534 	 "memrdwr"},
535 #if defined(SDIO_MULTI_PORT_TX_AGGR) || defined(SDIO_MULTI_PORT_RX_AGGR)
536 	{
537 	 WOAL_SDIO_MPA_CTRL,
538 	 IW_PRIV_TYPE_INT | 16,
539 	 IW_PRIV_TYPE_INT | 16,
540 	 "mpactrl"},
541 #endif
542 	{
543 	 WOAL_SLEEP_PARAMS,
544 	 IW_PRIV_TYPE_INT | 16,
545 	 IW_PRIV_TYPE_INT | 16,
546 	 "sleepparams"},
547 	{
548 	 WOAL_NET_MONITOR,
549 	 IW_PRIV_TYPE_INT | 16,
550 	 IW_PRIV_TYPE_INT | 16,
551 	 "netmon"},
552 #if defined(DFS_TESTING_SUPPORT)
553 	{
554 	 WOAL_DFS_TESTING,
555 	 IW_PRIV_TYPE_INT | 16,
556 	 IW_PRIV_TYPE_INT | 16,
557 	 "dfstesting"},
558 #endif
559 	{
560 	 WOAL_MGMT_FRAME_CTRL,
561 	 IW_PRIV_TYPE_INT | 16,
562 	 IW_PRIV_TYPE_INT | 16,
563 	 "mgmtframectrl"},
564 	{
565 	 WOAL_CFP_CODE,
566 	 IW_PRIV_TYPE_INT | 16,
567 	 IW_PRIV_TYPE_INT | 16,
568 	 "cfpcode"},
569 	{
570 	 WOAL_SET_GET_TX_RX_ANT,
571 	 IW_PRIV_TYPE_INT | 16,
572 	 IW_PRIV_TYPE_INT | 16,
573 	 "antcfg"},
574 	{
575 	 WOAL_IND_RST_CFG,
576 	 IW_PRIV_TYPE_INT | 16,
577 	 IW_PRIV_TYPE_INT | 16,
578 	 "indrstcfg"},
579 	{
580 	 WOALGETLOG,
581 	 IW_PRIV_TYPE_NONE,
582 	 IW_PRIV_TYPE_CHAR | GETLOG_BUFSIZE,
583 	 "getlog"},
584 	{
585 	 WOAL_SETADDR_GETNONE,
586 	 IW_PRIV_TYPE_ADDR | 1,
587 	 IW_PRIV_TYPE_NONE,
588 	 ""},
589 	{
590 	 WOAL_DEAUTH,
591 	 IW_PRIV_TYPE_ADDR | 1,
592 	 IW_PRIV_TYPE_NONE,
593 	 "deauth"},
594 	{
595 	 WOAL_SET_GET_256_CHAR,
596 	 IW_PRIV_TYPE_CHAR | 256,
597 	 IW_PRIV_TYPE_CHAR | 256,
598 	 ""},
599 	{
600 	 WOAL_PASSPHRASE,
601 	 IW_PRIV_TYPE_CHAR | 256,
602 	 IW_PRIV_TYPE_CHAR | 256,
603 	 "passphrase"},
604 	{
605 	 WOAL_ADHOC_AES,
606 	 IW_PRIV_TYPE_CHAR | 256,
607 	 IW_PRIV_TYPE_CHAR | 256,
608 	 "adhocaes"},
609 	{
610 	 WOAL_ASSOCIATE,
611 	 IW_PRIV_TYPE_CHAR | 256,
612 	 IW_PRIV_TYPE_CHAR | 256,
613 	 "associate"},
614 	{
615 	 WOAL_WMM_QUEUE_STATUS,
616 	 IW_PRIV_TYPE_CHAR | 256,
617 	 IW_PRIV_TYPE_CHAR | 256,
618 	 "qstatus"},
619 	{
620 	 WOAL_WMM_TS_STATUS,
621 	 IW_PRIV_TYPE_CHAR | 256,
622 	 IW_PRIV_TYPE_CHAR | 256,
623 	 "ts_status"},
624 	{
625 	 WOAL_IP_ADDRESS,
626 	 IW_PRIV_TYPE_CHAR | 256,
627 	 IW_PRIV_TYPE_CHAR | 256,
628 	 "ipaddr"},
629 	{
630 	 WOAL_TX_BF_CFG,
631 	 IW_PRIV_TYPE_CHAR | 256,
632 	 IW_PRIV_TYPE_CHAR | 256,
633 	 "httxbfcfg"},
634 	{
635 	 WOAL_SETNONE_GETTWELVE_CHAR,
636 	 IW_PRIV_TYPE_NONE,
637 	 IW_PRIV_TYPE_CHAR | 12,
638 	 ""},
639 	{
640 	 WOAL_WPS_SESSION,
641 	 IW_PRIV_TYPE_NONE,
642 	 IW_PRIV_TYPE_CHAR | 12,
643 	 "wpssession"},
644 	{
645 	 WOAL_SETNONE_GET_FOUR_INT,
646 	 IW_PRIV_TYPE_NONE,
647 	 IW_PRIV_TYPE_INT | 4,
648 	 ""},
649 	{
650 	 WOAL_DATA_RATE,
651 	 IW_PRIV_TYPE_NONE,
652 	 IW_PRIV_TYPE_INT | 4,
653 	 "getdatarate"},
654 	{
655 	 WOAL_ESUPP_MODE,
656 	 IW_PRIV_TYPE_NONE,
657 	 IW_PRIV_TYPE_INT | 4,
658 	 "esuppmode"},
659 	{
660 	 WOAL_SET_GET_64_INT,
661 	 IW_PRIV_TYPE_INT | 64,
662 	 IW_PRIV_TYPE_INT | 64,
663 	 ""},
664 	{
665 	 WOAL_ECL_SYS_CLOCK,
666 	 IW_PRIV_TYPE_INT | 64,
667 	 IW_PRIV_TYPE_INT | 64,
668 	 "sysclock"},
669 	{
670 	 WOAL_HOST_CMD,
671 	 IW_PRIV_TYPE_BYTE | 2047,
672 	 IW_PRIV_TYPE_BYTE | 2047,
673 	 "hostcmd"},
674 	{
675 	 WOAL_ARP_FILTER,
676 	 IW_PRIV_TYPE_BYTE | 2047,
677 	 IW_PRIV_TYPE_BYTE | 2047,
678 	 "arpfilter"},
679 	{
680 	 WOAL_SET_INTS_GET_CHARS,
681 	 IW_PRIV_TYPE_INT | 16,
682 	 IW_PRIV_TYPE_BYTE | 256,
683 	 ""},
684 	{
685 	 WOAL_READ_EEPROM,
686 	 IW_PRIV_TYPE_INT | 16,
687 	 IW_PRIV_TYPE_BYTE | 256,
688 	 "rdeeprom"},
689 	{
690 	 WOAL_SET_GET_2K_BYTES,
691 	 IW_PRIV_TYPE_BYTE | WOAL_2K_BYTES,
692 	 IW_PRIV_TYPE_BYTE | WOAL_2K_BYTES,
693 	 ""},
694 	{
695 	 WOAL_CMD_53RDWR,
696 	 IW_PRIV_TYPE_BYTE | WOAL_2K_BYTES,
697 	 IW_PRIV_TYPE_BYTE | WOAL_2K_BYTES,
698 	 "sdcmd53rw"},
699 	{
700 	 WOAL_SET_USER_SCAN,
701 	 IW_PRIV_TYPE_BYTE | WOAL_2K_BYTES,
702 	 IW_PRIV_TYPE_BYTE | WOAL_2K_BYTES,
703 	 "setuserscan"},
704 	{
705 	 WOAL_GET_SCAN_TABLE,
706 	 IW_PRIV_TYPE_BYTE | WOAL_2K_BYTES,
707 	 IW_PRIV_TYPE_BYTE | WOAL_2K_BYTES,
708 	 "getscantable"},
709 	{
710 	 WOAL_SET_USER_SCAN_EXT,
711 	 IW_PRIV_TYPE_BYTE | WOAL_2K_BYTES,
712 	 IW_PRIV_TYPE_BYTE | WOAL_2K_BYTES,
713 	 "setuserscanext"},
714 	{
715 	 WOAL_WMM_ADDTS,
716 	 IW_PRIV_TYPE_BYTE | WOAL_2K_BYTES,
717 	 IW_PRIV_TYPE_BYTE | WOAL_2K_BYTES,
718 	 "addts"},
719 	{
720 	 WOAL_WMM_DELTS,
721 	 IW_PRIV_TYPE_BYTE | WOAL_2K_BYTES,
722 	 IW_PRIV_TYPE_BYTE | WOAL_2K_BYTES,
723 	 "delts"},
724 	{
725 	 WOAL_WMM_QUEUE_CONFIG,
726 	 IW_PRIV_TYPE_BYTE | WOAL_2K_BYTES,
727 	 IW_PRIV_TYPE_BYTE | WOAL_2K_BYTES,
728 	 "qconfig"},
729 	{
730 	 WOAL_WMM_QUEUE_STATS,
731 	 IW_PRIV_TYPE_BYTE | WOAL_2K_BYTES,
732 	 IW_PRIV_TYPE_BYTE | WOAL_2K_BYTES,
733 	 "qstats"},
734 	{
735 	 WOAL_BYPASSED_PACKET,
736 	 IW_PRIV_TYPE_BYTE | WOAL_2K_BYTES,
737 	 IW_PRIV_TYPE_BYTE | WOAL_2K_BYTES,
738 	 "pb_bypass"},
739 #ifdef UAP_WEXT
740 	{
741 	 WOAL_FROYO_START,
742 	 IW_PRIV_TYPE_NONE,
743 	 IW_PRIV_TYPE_NONE,
744 	 "START"},
745 	{
746 	 WOAL_FROYO_STOP,
747 	 IW_PRIV_TYPE_NONE,
748 	 IW_PRIV_TYPE_NONE,
749 	 "STOP"},
750 	{
751 	 WOAL_FROYO_WL_FW_RELOAD,
752 	 IW_PRIV_TYPE_CHAR | 256,
753 	 IW_PRIV_TYPE_CHAR | 256,
754 	 "WL_FW_RELOAD"},
755 #endif
756 };
757 
758 /** moal_802_11_rates  */
759 typedef struct _moal_802_11_rates {
760 	/** Num of rates */
761 	t_u8 num_of_rates;
762 	/** Rates */
763 	t_u8 rates[MLAN_SUPPORTED_RATES];
764 } moal_802_11_rates;
765 
766 #if defined(STA_WEXT) || defined(UAP_WEXT)
767 int woal_wext_do_ioctl(struct net_device *dev, struct ifreq *req, int cmd);
768 #endif
769 
770 #endif /* _WOAL_PRIV_H_ */
771