support different wifi bt chip auto compatible
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / combo_mt66xx / mt6620 / wlan / include / wlan_oid.h
1 /*
2 ** $Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_3/include/wlan_oid.h#2 $
3 */
4
5 /*! \file   "wlan_oid.h"
6     \brief This file contains the declairation file of the WLAN OID processing routines
7            of Windows driver for MediaTek Inc. 802.11 Wireless LAN Adapters.
8 */
9
10
11
12 /*
13 ** $Log: wlan_oid.h $
14  *
15  * 03 02 2012 terry.wu
16  * NULL
17  * Sync CFG80211 modification from branch 2,2.
18  *
19  * 01 05 2012 wh.su
20  * [WCXRP00001153] [MT6620 Wi-Fi][Driver] Adding the get_ch_list and set_tx_power proto type function
21  * Adding the related ioctl / wlan oid function to set the Tx power cfg.
22  *
23  * 07 18 2011 chinghwa.yu
24  * [WCXRP00000063] Update BCM CoEx design and settings[WCXRP00000612] [MT6620 Wi-Fi] [FW] CSD update SWRDD algorithm
25  * Add CMD/Event for RDD and BWCS.
26  *
27  * 03 22 2011 george.huang
28  * [WCXRP00000504] [MT6620 Wi-Fi][FW] Support Sigma CAPI for power saving related command
29  * link with supplicant commands
30  *
31  * 03 17 2011 chinglan.wang
32  * [WCXRP00000570] [MT6620 Wi-Fi][Driver] Add Wi-Fi Protected Setup v2.0 feature
33  * .
34  *
35  * 03 02 2011 george.huang
36  * [WCXRP00000504] [MT6620 Wi-Fi][FW] Support Sigma CAPI for power saving related command
37  * Support UAPSD/OppPS/NoA parameter setting
38  *
39  * 01 20 2011 eddie.chen
40  * [WCXRP00000374] [MT6620 Wi-Fi][DRV] SW debug control
41  * Add Oid for sw control debug command
42  *
43  * 12 07 2010 cm.chang
44  * [WCXRP00000238] MT6620 Wi-Fi][Driver][FW] Support regulation domain setting from NVRAM and supplicant
45  * 1. Country code is from NVRAM or supplicant
46  * 2. Change band definition in CMD/EVENT.
47  *
48  * 10 18 2010 cp.wu
49  * [WCXRP00000056] [MT6620 Wi-Fi][Driver] NVRAM implementation with Version Check[WCXRP00000086] [MT6620 Wi-Fi][Driver] The mac address is all zero at android
50  * complete implementation of Android NVRAM access
51  *
52  * 10 08 2010 cp.wu
53  * [WCXRP00000084] [MT6620 Wi-Fi][Driver][FW] Add fixed rate support for distance test
54  * adding fixed rate support for distance test. (from registry setting)
55  *
56  * 09 23 2010 cp.wu
57  * [WCXRP00000056] [MT6620 Wi-Fi][Driver] NVRAM implementation with Version Check
58  * add skeleton for NVRAM integration
59  *
60  * 09 08 2010 cp.wu
61  * NULL
62  * use static memory pool for storing IEs of scanning result.
63  *
64  * 09 03 2010 kevin.huang
65  * NULL
66  * Refine #include sequence and solve recursive/nested #include issue
67  *
68  * 08 29 2010 yuche.tsai
69  * NULL
70  * Finish SLT TX/RX & Rate Changing Support.
71  *
72  * 08 04 2010 cp.wu
73  * NULL
74  * revert changelist #15371, efuse read/write access will be done by RF test approach
75  *
76  * 08 04 2010 cp.wu
77  * NULL
78  * add OID definitions for EFUSE read/write access.
79  *
80  * 08 04 2010 yarco.yang
81  * NULL
82  * Add TX_AMPDU and ADDBA_REJECT command
83  *
84  * 08 02 2010 george.huang
85  * NULL
86  * add WMM-PS test related OID/ CMD handlers
87  *
88  * 07 08 2010 cp.wu
89  *
90  * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
91  *
92  * 06 22 2010 cp.wu
93  * [WPD00003833][MT6620 and MT5931] Driver migration
94  * 1) add command warpper for STA-REC/BSS-INFO sync.
95  * 2) enhance command packet sending procedure for non-oid part
96  * 3) add command packet definitions for STA-REC/BSS-INFO sync.
97  *
98  * 06 18 2010 wh.su
99  * [WPD00003840][MT6620 5931] Security migration
100  * migration from MT6620 firmware.
101  *
102  * 06 07 2010 cp.wu
103  * [WPD00003833][MT6620 and MT5931] Driver migration
104  * merge wlan_def.h.
105  *
106  * 06 07 2010 cp.wu
107  * [WPD00003833][MT6620 and MT5931] Driver migration
108  * merge wifi_var.h, precomp.h, cnm_timer.h (data type only)
109  *
110  * 06 06 2010 kevin.huang
111  * [WPD00003832][MT6620 5931] Create driver base
112  * [MT6620 5931] Create driver base
113  *
114  * 06 03 2010 cp.wu
115  * [WPD00001943]Create WiFi test driver framework on WinXP
116  * move timer callback to glue layer.
117  *
118  * 05 20 2010 cp.wu
119  * [WPD00001943]Create WiFi test driver framework on WinXP
120  * 1) integrate OID_GEN_NETWORK_LAYER_ADDRESSES with CMD_ID_SET_IP_ADDRESS
121  * 2) buffer statistics data for 2 seconds
122  * 3) use default value for adhoc parameters instead of 0
123  *
124  * 05 18 2010 cp.wu
125  * [WPD00001943]Create WiFi test driver framework on WinXP
126  * implement Wakeup-on-LAN except firmware integration part
127  *
128  * 05 17 2010 cp.wu
129  * [WPD00001943]Create WiFi test driver framework on WinXP
130  * MT6620 is not supporting NDIS_PACKET_TYPE_PROMISCUOUS.
131  *
132
133  *
134  * 05 17 2010 cp.wu
135  * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
136  * 1) add timeout handler mechanism for pending command packets
137  * 2) add p2p add/removal key
138  *
139  * 05 13 2010 cp.wu
140  * [WPD00001943]Create WiFi test driver framework on WinXP
141  * add NULL OID implementation for WOL-related OIDs.
142  *
143  * 04 22 2010 cp.wu
144  * [WPD00003830]add OID_802_11_PRIVACY_FILTER support
145  * enable RX filter OID
146  *
147  * 04 14 2010 cp.wu
148  * [WPD00001943]Create WiFi test driver framework on WinXP
149  * information buffer for query oid/ioctl is now buffered in prCmdInfo
150  *  *  *  *  * instead of glue-layer variable to improve multiple oid/ioctl capability
151  *
152  * 03 31 2010 wh.su
153  * [WPD00003816][MT6620 Wi-Fi] Adding the security support
154  * modify the wapi related code for new driver's design.
155  *
156  * 03 26 2010 cp.wu
157  * [WPD00001943]Create WiFi test driver framework on WinXP
158  * indicate media stream mode after set is done
159  *
160  * 03 24 2010 jeffrey.chang
161  * [WPD00003826]Initial import for Linux port
162  * initial import for Linux port
163  *
164  * 03 03 2010 cp.wu
165  * [WPD00001943]Create WiFi test driver framework on WinXP
166  * implement custom OID: EEPROM read/write access
167  *
168  * 02 09 2010 cp.wu
169  * [WPD00001943]Create WiFi test driver framework on WinXP
170  * 1. Permanent and current MAC address are now retrieved by CMD/EVENT packets instead of hard-coded address
171  *  *  *  *  *  * 2. follow MSDN defined behavior when associates to another AP
172  *  *  *  *  *  * 3. for firmware download, packet size could be up to 2048 bytes
173  *
174  * 01 27 2010 cp.wu
175  * [WPD00001943]Create WiFi test driver framework on WinXP
176  * 1) implement timeout mechanism when OID is pending for longer than 1 second
177  *  *  * 2) allow OID_802_11_CONFIGURATION to be executed when RF test mode is turned on
178  *
179  * 01 27 2010 wh.su
180  * [WPD00003816][MT6620 Wi-Fi] Adding the security support
181  * .
182  *
183  * 01 22 2010 cp.wu
184  * [WPD00001943]Create WiFi test driver framework on WinXP
185  * implement following 802.11 OIDs:
186  *  *  *  * OID_802_11_RSSI,
187  *  *  *  * OID_802_11_RSSI_TRIGGER,
188  *  *  *  * OID_802_11_STATISTICS,
189  *  *  *  * OID_802_11_DISASSOCIATE,
190  *  *  *  * OID_802_11_POWER_MODE
191  *
192  * 01 21 2010 cp.wu
193  * [WPD00001943]Create WiFi test driver framework on WinXP
194  * implement OID_802_11_MEDIA_STREAM_MODE
195  *
196  * 01 21 2010 cp.wu
197  * [WPD00001943]Create WiFi test driver framework on WinXP
198  * implement OID_802_11_SUPPORTED_RATES / OID_802_11_DESIRED_RATES
199 **  \main\maintrunk.MT6620WiFiDriver_Prj\6 2009-12-08 11:38:11 GMT mtk02752
200 **  add declares for RF test related APIs
201 **  \main\maintrunk.MT6620WiFiDriver_Prj\5 2009-11-24 22:41:53 GMT mtk02752
202 **  remove u4SysTime, MSDN 10-second will be implemented in FW side
203 **  \main\maintrunk.MT6620WiFiDriver_Prj\4 2009-11-23 20:30:13 GMT mtk02752
204 **  add u4SysTime field in PARAM_BSSID_EX_T
205 **  \main\maintrunk.MT6620WiFiDriver_Prj\3 2009-11-12 19:48:35 GMT mtk02752
206 **  allow upper layer to set a packet filter with PROMISCUOUS mode
207 **  \main\maintrunk.MT6620WiFiDriver_Prj\2 2009-03-10 20:12:12 GMT mtk01426
208 **  Init for develop
209 **
210 */
211
212 #ifndef _WLAN_OID_H
213 #define _WLAN_OID_H
214
215 /*******************************************************************************
216 *                         C O M P I L E R   F L A G S
217 ********************************************************************************
218 */
219
220 /*******************************************************************************
221 *                    E X T E R N A L   R E F E R E N C E S
222 ********************************************************************************
223 */
224
225 /*******************************************************************************
226 *                              C O N S T A N T S
227 ********************************************************************************
228 */
229
230 #define PARAM_MAX_LEN_SSID                      32
231
232 #define PARAM_MAC_ADDR_LEN                      6
233
234 #define ETHERNET_HEADER_SZ                      14
235 #define ETHERNET_MIN_PKT_SZ                     60
236 #define ETHERNET_MAX_PKT_SZ                     1514
237
238 #define PARAM_MAX_LEN_RATES                     8
239 #define PARAM_MAX_LEN_RATES_EX                  16
240
241 #define PARAM_AUTH_REQUEST_REAUTH               0x01
242 #define PARAM_AUTH_REQUEST_KEYUPDATE            0x02
243 #define PARAM_AUTH_REQUEST_PAIRWISE_ERROR       0x06
244 #define PARAM_AUTH_REQUEST_GROUP_ERROR          0x0E
245
246 #define PARAM_EEPROM_READ_METHOD_READ           1
247 #define PARAM_EEPROM_READ_METHOD_GETSIZE        0
248
249 #define PARAM_WHQL_RSSI_MAX_DBM                 (-10)
250 #define PARAM_WHQL_RSSI_MIN_DBM                 (-200)
251
252 #define PARAM_DEVICE_WAKE_UP_ENABLE                     0x00000001
253 #define PARAM_DEVICE_WAKE_ON_PATTERN_MATCH_ENABLE       0x00000002
254 #define PARAM_DEVICE_WAKE_ON_MAGIC_PACKET_ENABLE        0x00000004
255
256 #define PARAM_WAKE_UP_MAGIC_PACKET              0x00000001
257 #define PARAM_WAKE_UP_PATTERN_MATCH             0x00000002
258 #define PARAM_WAKE_UP_LINK_CHANGE               0x00000004
259
260
261 /* Packet filter bit definitioin (UINT_32 bit-wise definition) */
262 #define PARAM_PACKET_FILTER_DIRECTED            0x00000001
263 #define PARAM_PACKET_FILTER_MULTICAST           0x00000002
264 #define PARAM_PACKET_FILTER_ALL_MULTICAST       0x00000004
265 #define PARAM_PACKET_FILTER_BROADCAST           0x00000008
266 #define PARAM_PACKET_FILTER_PROMISCUOUS         0x00000020
267 #define PARAM_PACKET_FILTER_ALL_LOCAL           0x00000080
268 #if CFG_ENABLE_WIFI_DIRECT_CFG_80211
269 #define PARAM_PACKET_FILTER_P2P_MASK             0xC0000000
270 #define PARAM_PACKET_FILTER_PROBE_REQ           0x80000000
271 #define PARAM_PACKET_FILTER_ACTION_FRAME      0x40000000
272 #endif
273
274 #if CFG_SLT_SUPPORT
275 #define PARAM_PACKET_FILTER_SUPPORTED   (PARAM_PACKET_FILTER_DIRECTED | \
276                                          PARAM_PACKET_FILTER_MULTICAST | \
277                                          PARAM_PACKET_FILTER_BROADCAST | \
278                                          PARAM_PACKET_FILTER_ALL_MULTICAST)
279 #else
280 #define PARAM_PACKET_FILTER_SUPPORTED   (PARAM_PACKET_FILTER_DIRECTED | \
281                                          PARAM_PACKET_FILTER_MULTICAST | \
282                                          PARAM_PACKET_FILTER_BROADCAST)
283 #endif
284
285 #define PARAM_MEM_DUMP_MAX_SIZE         2048
286
287 #define BT_PROFILE_PARAM_LEN        8
288 /*******************************************************************************
289 *                             D A T A   T Y P E S
290 ********************************************************************************
291 */
292 /*----------------------------------------------------------------------------*/
293 /* Parameters of User Configuration which match to NDIS5.1                    */
294 /*----------------------------------------------------------------------------*/
295 /* NDIS_802_11_AUTHENTICATION_MODE */
296 typedef enum _ENUM_PARAM_AUTH_MODE_T
297 {
298     AUTH_MODE_OPEN,                     /*!< Open system */
299     AUTH_MODE_SHARED,                   /*!< Shared key */
300     AUTH_MODE_AUTO_SWITCH,              /*!< Either open system or shared key */
301     AUTH_MODE_WPA,
302     AUTH_MODE_WPA_PSK,
303     AUTH_MODE_WPA_NONE,                 /*!< For Ad hoc */
304     AUTH_MODE_WPA2,
305     AUTH_MODE_WPA2_PSK,
306     AUTH_MODE_NUM                       /*!< Upper bound, not real case */
307 } ENUM_PARAM_AUTH_MODE_T, *P_ENUM_PARAM_AUTH_MODE_T;
308
309 /* NDIS_802_11_ENCRYPTION_STATUS *//* Encryption types */
310 typedef enum _ENUM_WEP_STATUS_T
311 {
312     ENUM_WEP_ENABLED,
313     ENUM_ENCRYPTION1_ENABLED = ENUM_WEP_ENABLED,
314     ENUM_WEP_DISABLED,
315     ENUM_ENCRYPTION_DISABLED = ENUM_WEP_DISABLED,
316     ENUM_WEP_KEY_ABSENT,
317     ENUM_ENCRYPTION1_KEY_ABSENT = ENUM_WEP_KEY_ABSENT,
318     ENUM_WEP_NOT_SUPPORTED,
319     ENUM_ENCRYPTION_NOT_SUPPORTED = ENUM_WEP_NOT_SUPPORTED,
320     ENUM_ENCRYPTION2_ENABLED,
321     ENUM_ENCRYPTION2_KEY_ABSENT,
322     ENUM_ENCRYPTION3_ENABLED,
323     ENUM_ENCRYPTION3_KEY_ABSENT
324 } ENUM_PARAM_ENCRYPTION_STATUS_T, *P_ENUM_PARAM_ENCRYPTION_STATUS_T;
325
326
327
328 typedef UINT_8          PARAM_MAC_ADDRESS[PARAM_MAC_ADDR_LEN];
329
330 typedef UINT_32         PARAM_KEY_INDEX;
331 typedef UINT_64         PARAM_KEY_RSC;
332 typedef INT_32          PARAM_RSSI;
333
334 typedef UINT_32         PARAM_FRAGMENTATION_THRESHOLD;
335 typedef UINT_32         PARAM_RTS_THRESHOLD;
336
337 typedef UINT_8          PARAM_RATES[PARAM_MAX_LEN_RATES];
338 typedef UINT_8          PARAM_RATES_EX[PARAM_MAX_LEN_RATES_EX];
339
340 typedef enum _ENUM_PARAM_PHY_TYPE_T {
341     PHY_TYPE_802_11ABG = 0,             /*!< Can associated with 802.11abg AP, Scan dual band. */
342     PHY_TYPE_802_11BG,                  /*!< Can associated with 802_11bg AP, Scan single band and not report 802_11a BSSs. */
343     PHY_TYPE_802_11G,                   /*!< Can associated with 802_11g only AP, Scan single band and not report 802_11ab BSSs. */
344     PHY_TYPE_802_11A,                   /*!< Can associated with 802_11a only AP, Scan single band and not report 802_11bg BSSs. */
345     PHY_TYPE_802_11B,                   /*!< Can associated with 802_11b only AP, Scan single band and not report 802_11ag BSSs. */
346     PHY_TYPE_NUM // 5
347 } ENUM_PARAM_PHY_TYPE_T, *P_ENUM_PARAM_PHY_TYPE_T;
348
349 typedef enum _ENUM_PARAM_OP_MODE_T {
350     NET_TYPE_IBSS = 0,                  /*!< Try to merge/establish an AdHoc, do periodic SCAN for merging. */
351     NET_TYPE_INFRA,                     /*!< Try to join an Infrastructure, do periodic SCAN for joining. */
352     NET_TYPE_AUTO_SWITCH,               /*!< Try to join an Infrastructure, if fail then try to merge or
353                                          establish an AdHoc, do periodic SCAN for joining or merging. */
354     NET_TYPE_DEDICATED_IBSS,            /*!< Try to merge an AdHoc first, if fail then establish AdHoc permanently, no more SCAN. */
355     NET_TYPE_NUM // 4
356 } ENUM_PARAM_OP_MODE_T, *P_ENUM_PARAM_OP_MODE_T;
357
358 typedef struct _PARAM_SSID_T {
359     UINT_32  u4SsidLen;      /*!< SSID length in bytes. Zero length is broadcast(any) SSID */
360     UINT_8   aucSsid[PARAM_MAX_LEN_SSID];
361 } PARAM_SSID_T, *P_PARAM_SSID_T;
362
363 /* This is enum defined for user to select an AdHoc Mode */
364 typedef enum _ENUM_PARAM_AD_HOC_MODE_T {
365     AD_HOC_MODE_11B = 0,                /*!< Create 11b IBSS if we support 802.11abg/802.11bg. */
366     AD_HOC_MODE_MIXED_11BG,             /*!< Create 11bg mixed IBSS if we support 802.11abg/802.11bg/802.11g. */
367     AD_HOC_MODE_11G,                    /*!< Create 11g only IBSS if we support 802.11abg/802.11bg/802.11g. */
368     AD_HOC_MODE_11A,                    /*!< Create 11a only IBSS if we support 802.11abg. */
369     AD_HOC_MODE_NUM // 4
370 } ENUM_PARAM_AD_HOC_MODE_T, *P_ENUM_PARAM_AD_HOC_MODE_T;
371
372
373 typedef enum _ENUM_PARAM_MEDIA_STATE_T {
374     PARAM_MEDIA_STATE_CONNECTED,
375     PARAM_MEDIA_STATE_DISCONNECTED,
376     PARAM_MEDIA_STATE_TO_BE_INDICATED // for following MSDN re-association behavior
377 } ENUM_PARAM_MEDIA_STATE_T, *P_ENUM_PARAM_MEDIA_STATE_T;
378
379
380 typedef enum _ENUM_PARAM_NETWORK_TYPE_T {
381     PARAM_NETWORK_TYPE_FH,
382     PARAM_NETWORK_TYPE_DS,
383     PARAM_NETWORK_TYPE_OFDM5,
384     PARAM_NETWORK_TYPE_OFDM24,
385     PARAM_NETWORK_TYPE_AUTOMODE,
386     PARAM_NETWORK_TYPE_NUM                    /*!< Upper bound, not real case */
387 } ENUM_PARAM_NETWORK_TYPE_T, *P_ENUM_PARAM_NETWORK_TYPE_T;
388
389
390 typedef struct _PARAM_NETWORK_TYPE_LIST {
391     UINT_32                     NumberOfItems;      /*!< At least 1 */
392     ENUM_PARAM_NETWORK_TYPE_T   eNetworkType [1];
393 } PARAM_NETWORK_TYPE_LIST, *PPARAM_NETWORK_TYPE_LIST;
394
395 typedef enum _ENUM_PARAM_PRIVACY_FILTER_T
396 {
397     PRIVACY_FILTER_ACCEPT_ALL,
398     PRIVACY_FILTER_8021xWEP,
399     PRIVACY_FILTER_NUM
400 } ENUM_PARAM_PRIVACY_FILTER_T, *P_ENUM_PARAM_PRIVACY_FILTER_T;
401
402 typedef enum _ENUM_RELOAD_DEFAULTS
403 {
404     ENUM_RELOAD_WEP_KEYS
405 } PARAM_RELOAD_DEFAULTS, *P_PARAM_RELOAD_DEFAULTS;
406
407 typedef struct _PARAM_PM_PACKET_PATTERN
408 {
409     UINT_32 Priority;                   // Importance of the given pattern.
410     UINT_32 Reserved;                   // Context information for transports.
411     UINT_32 MaskSize;                   // Size in bytes of the pattern mask.
412     UINT_32 PatternOffset;              // Offset from beginning of this
413                                         // structure to the pattern bytes.
414     UINT_32 PatternSize;                // Size in bytes of the pattern.
415     UINT_32 PatternFlags;               // Flags (TBD).
416 } PARAM_PM_PACKET_PATTERN, *P_PARAM_PM_PACKET_PATTERN;
417
418 /*--------------------------------------------------------------*/
419 /*! \brief Struct definition to indicate specific event.                */
420 /*--------------------------------------------------------------*/
421 typedef enum _ENUM_STATUS_TYPE_T
422 {
423     ENUM_STATUS_TYPE_AUTHENTICATION,
424     ENUM_STATUS_TYPE_MEDIA_STREAM_MODE,
425     ENUM_STATUS_TYPE_CANDIDATE_LIST,
426     ENUM_STATUS_TYPE_NUM              /*!< Upper bound, not real case */
427 } ENUM_STATUS_TYPE_T, *P_ENUM_STATUS_TYPE_T;
428
429
430 typedef struct _PARAM_802_11_CONFIG_FH_T {
431     UINT_32                  u4Length;         /*!< Length of structure */
432     UINT_32                  u4HopPattern;     /*!< Defined as 802.11 */
433     UINT_32                  u4HopSet;         /*!< to one if non-802.11 */
434     UINT_32                  u4DwellTime;      /*!< In unit of Kusec */
435 } PARAM_802_11_CONFIG_FH_T, *P_PARAM_802_11_CONFIG_FH_T;
436
437 typedef struct _PARAM_802_11_CONFIG_T {
438     UINT_32                  u4Length;         /*!< Length of structure */
439     UINT_32                  u4BeaconPeriod;   /*!< In unit of Kusec */
440     UINT_32                  u4ATIMWindow;     /*!< In unit of Kusec */
441     UINT_32                  u4DSConfig;       /*!< Channel frequency in unit of kHz */
442     PARAM_802_11_CONFIG_FH_T rFHConfig;
443 } PARAM_802_11_CONFIG_T, *P_PARAM_802_11_CONFIG_T;
444
445 typedef struct _PARAM_STATUS_INDICATION_T
446 {
447     ENUM_STATUS_TYPE_T   eStatusType;
448 } PARAM_STATUS_INDICATION_T, *P_PARAM_STATUS_INDICATION_T;
449
450 typedef struct _PARAM_AUTH_REQUEST_T
451 {
452     UINT_32             u4Length;             /*!< Length of this struct */
453     PARAM_MAC_ADDRESS   arBssid;
454     UINT_32             u4Flags;              /*!< Definitions are as follows */
455 } PARAM_AUTH_REQUEST_T, *P_PARAM_AUTH_REQUEST_T;
456
457 typedef struct _PARAM_AUTH_EVENT_T
458 {
459     PARAM_STATUS_INDICATION_T   rStatus;
460     PARAM_AUTH_REQUEST_T        arRequest[1];
461 } PARAM_AUTH_EVENT_T, *P_PARAM_AUTH_EVENT_T;
462
463 /*! \brief Capabilities, privacy, rssi and IEs of each BSSID */
464 typedef struct _PARAM_BSSID_EX_T {
465     UINT_32                         u4Length;             /*!< Length of structure */
466     PARAM_MAC_ADDRESS               arMacAddress;         /*!< BSSID */
467     UINT_8                          Reserved[2];
468     PARAM_SSID_T                    rSsid;               /*!< SSID */
469     UINT_32                         u4Privacy;            /*!< Need WEP encryption */
470     PARAM_RSSI                      rRssi;               /*!< in dBm */
471     ENUM_PARAM_NETWORK_TYPE_T       eNetworkTypeInUse;
472     PARAM_802_11_CONFIG_T           rConfiguration;
473     ENUM_PARAM_OP_MODE_T            eOpMode;
474     PARAM_RATES_EX                  rSupportedRates;
475     UINT_32                         u4IELength;
476     UINT_8                          aucIEs[1];
477 } PARAM_BSSID_EX_T, *P_PARAM_BSSID_EX_T;
478
479 typedef struct _PARAM_BSSID_LIST_EX {
480     UINT_32                         u4NumberOfItems;      /*!< at least 1 */
481     PARAM_BSSID_EX_T                arBssid[1];
482 } PARAM_BSSID_LIST_EX_T, *P_PARAM_BSSID_LIST_EX_T;
483
484
485 typedef struct _PARAM_WEP_T
486 {
487     UINT_32             u4Length;             /*!< Length of structure */
488     UINT_32             u4KeyIndex;           /*!< 0: pairwise key, others group keys */
489     UINT_32             u4KeyLength;          /*!< Key length in bytes */
490     UINT_8              aucKeyMaterial[32];    /*!< Key content by above setting */
491 } PARAM_WEP_T, *P_PARAM_WEP_T;
492
493 /*! \brief Key mapping of BSSID */
494 typedef struct _PARAM_KEY_T
495 {
496     UINT_32             u4Length;             /*!< Length of structure */
497     UINT_32             u4KeyIndex;           /*!< KeyID */
498     UINT_32             u4KeyLength;          /*!< Key length in bytes */
499     PARAM_MAC_ADDRESS   arBSSID;              /*!< MAC address */
500     PARAM_KEY_RSC       rKeyRSC;
501     UINT_8              aucKeyMaterial[32];    /*!< Key content by above setting */
502 } PARAM_KEY_T, *P_PARAM_KEY_T;
503
504 typedef struct _PARAM_REMOVE_KEY_T
505 {
506     UINT_32             u4Length;             /*!< Length of structure */
507     UINT_32             u4KeyIndex;           /*!< KeyID */
508     PARAM_MAC_ADDRESS   arBSSID;               /*!< MAC address */
509 } PARAM_REMOVE_KEY_T, *P_PARAM_REMOVE_KEY_T;
510
511 #if CFG_SUPPORT_WAPI
512 typedef enum _ENUM_KEY_TYPE {
513     ENUM_WPI_PAIRWISE_KEY = 0,
514     ENUM_WPI_GROUP_KEY
515 } ENUM_KEY_TYPE;
516
517 typedef enum _ENUM_WPI_PROTECT_TYPE
518 {
519     ENUM_WPI_NONE,
520     ENUM_WPI_RX,
521     ENUM_WPI_TX,
522     ENUM_WPI_RX_TX
523 } ENUM_WPI_PROTECT_TYPE;
524
525 typedef struct _PARAM_WPI_KEY_T {
526     ENUM_KEY_TYPE           eKeyType;
527     ENUM_WPI_PROTECT_TYPE   eDirection;
528     UINT_8                  ucKeyID;
529     UINT_8                  aucRsv[3];
530     UINT_8                  aucAddrIndex[12];
531     UINT_32                 u4LenWPIEK;
532     UINT_8                  aucWPIEK[256];
533     UINT_32                 u4LenWPICK;
534     UINT_8                  aucWPICK[256];
535     UINT_8                  aucPN[16];
536 } PARAM_WPI_KEY_T, *P_PARAM_WPI_KEY_T;
537 #endif
538
539
540 typedef enum _PARAM_POWER_MODE
541 {
542     Param_PowerModeCAM,
543     Param_PowerModeMAX_PSP,
544     Param_PowerModeFast_PSP,
545     Param_PowerModeMax                      /* Upper bound, not real case */
546 } PARAM_POWER_MODE, *PPARAM_POWER_MODE;
547
548 typedef enum _PARAM_DEVICE_POWER_STATE
549 {
550     ParamDeviceStateUnspecified = 0,
551     ParamDeviceStateD0,
552     ParamDeviceStateD1,
553     ParamDeviceStateD2,
554     ParamDeviceStateD3,
555     ParamDeviceStateMaximum
556 } PARAM_DEVICE_POWER_STATE, *PPARAM_DEVICE_POWER_STATE;
557
558 #if CFG_SUPPORT_802_11D
559
560 /*! \brief The enumeration definitions for OID_IPN_MULTI_DOMAIN_CAPABILITY */
561 typedef enum _PARAM_MULTI_DOMAIN_CAPABILITY {
562     ParamMultiDomainCapDisabled,
563     ParamMultiDomainCapEnabled
564 } PARAM_MULTI_DOMAIN_CAPABILITY, *P_PARAM_MULTI_DOMAIN_CAPABILITY;
565 #endif
566
567 typedef struct _COUNTRY_STRING_ENTRY {
568     UINT_8  aucCountryCode[2];
569     UINT_8  aucEnvironmentCode[2];
570 } COUNTRY_STRING_ENTRY, *P_COUNTRY_STRING_ENTRY;
571
572 /* Power management related definition and enumerations */
573 #define UAPSD_NONE                              0
574 #define UAPSD_AC0                               (BIT(0) | BIT(4))
575 #define UAPSD_AC1                               (BIT(1) | BIT(5))
576 #define UAPSD_AC2                               (BIT(2) | BIT(6))
577 #define UAPSD_AC3                               (BIT(3) | BIT(7))
578 #define UAPSD_ALL                               (UAPSD_AC0 | UAPSD_AC1 | UAPSD_AC2 | UAPSD_AC3)
579
580 typedef enum _ENUM_POWER_SAVE_PROFILE_T
581 {
582     ENUM_PSP_CONTINUOUS_ACTIVE = 0,
583     ENUM_PSP_CONTINUOUS_POWER_SAVE,
584     ENUM_PSP_FAST_SWITCH,
585     ENUM_PSP_NUM
586 } ENUM_POWER_SAVE_PROFILE_T, *PENUM_POWER_SAVE_PROFILE_T;
587
588
589 /*--------------------------------------------------------------*/
590 /*! \brief Set/Query testing type.                              */
591 /*--------------------------------------------------------------*/
592 typedef struct _PARAM_802_11_TEST_T
593 {
594     UINT_32             u4Length;
595     UINT_32             u4Type;
596     union
597     {
598         PARAM_AUTH_EVENT_T  AuthenticationEvent;
599         PARAM_RSSI          RssiTrigger;
600     } u;
601 } PARAM_802_11_TEST_T, *P_PARAM_802_11_TEST_T;
602
603
604
605 /*--------------------------------------------------------------*/
606 /*! \brief Set/Query authentication and encryption capability.  */
607 /*--------------------------------------------------------------*/
608 typedef struct _PARAM_AUTH_ENCRYPTION_T
609 {
610     ENUM_PARAM_AUTH_MODE_T              eAuthModeSupported;
611     ENUM_PARAM_ENCRYPTION_STATUS_T      eEncryptStatusSupported;
612 } PARAM_AUTH_ENCRYPTION_T, *P_PARAM_AUTH_ENCRYPTION_T;
613
614 typedef struct _PARAM_CAPABILITY_T
615 {
616      UINT_32                  u4Length;
617      UINT_32                  u4Version;
618      UINT_32                  u4NoOfPMKIDs;
619      UINT_32                  u4NoOfAuthEncryptPairsSupported;
620      PARAM_AUTH_ENCRYPTION_T  arAuthenticationEncryptionSupported[1];
621 } PARAM_CAPABILITY_T, *P_PARAM_CAPABILITY_T;
622
623 typedef UINT_8   PARAM_PMKID_VALUE[16];
624
625 typedef struct _PARAM_BSSID_INFO_T
626 {
627     PARAM_MAC_ADDRESS   arBSSID;
628     PARAM_PMKID_VALUE   arPMKID;
629 } PARAM_BSSID_INFO_T, *P_PARAM_BSSID_INFO_T;
630
631 typedef struct _PARAM_PMKID_T
632 {
633     UINT_32             u4Length;
634     UINT_32             u4BSSIDInfoCount;
635     PARAM_BSSID_INFO_T  arBSSIDInfo[1];
636 } PARAM_PMKID_T, *P_PARAM_PMKID_T;
637
638 /*! \brief PMKID candidate lists. */
639 typedef struct _PARAM_PMKID_CANDIDATE_T {
640     PARAM_MAC_ADDRESS   arBSSID;
641     UINT_32             u4Flags;
642 } PARAM_PMKID_CANDIDATE_T, *P_PARAM_PMKID_CANDIDATE_T;
643
644 //#ifdef LINUX
645 typedef struct _PARAM_PMKID_CANDIDATE_LIST_T
646 {
647     UINT_32                   u4Version;            /*!< Version */
648     UINT_32                   u4NumCandidates;      /*!< How many candidates follow */
649     PARAM_PMKID_CANDIDATE_T   arCandidateList[1];
650 } PARAM_PMKID_CANDIDATE_LIST_T, *P_PARAM_PMKID_CANDIDATE_LIST_T;
651 //#endif
652
653 typedef struct _PARAM_CUSTOM_MCR_RW_STRUC_T {
654     UINT_32             u4McrOffset;
655     UINT_32             u4McrData;
656 } PARAM_CUSTOM_MCR_RW_STRUC_T, *P_PARAM_CUSTOM_MCR_RW_STRUC_T;
657
658 typedef struct _PARAM_CUSTOM_MEM_DUMP_STRUC_T {
659     UINT_32     u4Address;
660     UINT_32     u4Length;
661     UINT_32     u4RemainLength;
662     UINT_8      ucFragNum;
663 } PARAM_CUSTOM_MEM_DUMP_STRUC_T, *P_PARAM_CUSTOM_MEM_DUMP_STRUC_T;
664
665
666 typedef struct _PARAM_CUSTOM_SW_CTRL_STRUC_T {
667     UINT_32             u4Id;
668     UINT_32             u4Data;
669 } PARAM_CUSTOM_SW_CTRL_STRUC_T, *P_PARAM_CUSTOM_SW_CTRL_STRUC_T;
670
671
672 typedef struct _PARAM_CUSTOM_EEPROM_RW_STRUC_T {
673     UINT_8              ucEepromMethod; /* For read only read: 1, query size: 0*/
674     UINT_8              ucEepromIndex;
675     UINT_8              reserved;
676     UINT_16            u2EepromData;
677 } PARAM_CUSTOM_EEPROM_RW_STRUC_T, *P_PARAM_CUSTOM_EEPROM_RW_STRUC_T,
678     PARAM_CUSTOM_NVRAM_RW_STRUCT_T, *P_PARAM_CUSTOM_NVRAM_RW_STRUCT_T;
679
680 typedef struct _PARAM_CUSTOM_WMM_PS_TEST_STRUC_T {
681     UINT_8  bmfgApsdEnAc;           /* b0~3: trigger-en AC0~3. b4~7: delivery-en AC0~3 */
682     UINT_8  ucIsEnterPsAtOnce;      /* enter PS immediately without 5 second guard after connected */
683     UINT_8  ucIsDisableUcTrigger;   /* not to trigger UC on beacon TIM is matched (under U-APSD) */
684     UINT_8  reserved;
685 } PARAM_CUSTOM_WMM_PS_TEST_STRUC_T, *P_PARAM_CUSTOM_WMM_PS_TEST_STRUC_T;
686
687 typedef struct _PARAM_CUSTOM_NOA_PARAM_STRUC_T {
688     UINT_32  u4NoaDurationMs;
689     UINT_32  u4NoaIntervalMs;
690     UINT_32  u4NoaCount;
691 } PARAM_CUSTOM_NOA_PARAM_STRUC_T, *P_PARAM_CUSTOM_NOA_PARAM_STRUC_T;
692
693 typedef struct _PARAM_CUSTOM_OPPPS_PARAM_STRUC_T {
694     UINT_32  u4CTwindowMs;
695 } PARAM_CUSTOM_OPPPS_PARAM_STRUC_T, *P_PARAM_CUSTOM_OPPPS_PARAM_STRUC_T;
696
697 typedef struct _PARAM_CUSTOM_UAPSD_PARAM_STRUC_T {
698     UINT_8  fgEnAPSD;
699     UINT_8  fgEnAPSD_AcBe;
700     UINT_8  fgEnAPSD_AcBk;
701     UINT_8  fgEnAPSD_AcVo;
702     UINT_8  fgEnAPSD_AcVi;
703     UINT_8  ucMaxSpLen;
704     UINT_8  aucResv[2];
705 } PARAM_CUSTOM_UAPSD_PARAM_STRUC_T, *P_PARAM_CUSTOM_UAPSD_PARAM_STRUC_T;
706
707 typedef struct _PARAM_CUSTOM_P2P_SET_STRUC_T {
708     UINT_32             u4Enable;
709     UINT_32             u4Mode;
710 } PARAM_CUSTOM_P2P_SET_STRUC_T, *P_PARAM_CUSTOM_P2P_SET_STRUC_T;
711
712 typedef enum _ENUM_CFG_SRC_TYPE_T {
713     CFG_SRC_TYPE_EEPROM,
714     CFG_SRC_TYPE_NVRAM,
715     CFG_SRC_TYPE_UNKNOWN,
716     CFG_SRC_TYPE_NUM
717 } ENUM_CFG_SRC_TYPE_T, *P_ENUM_CFG_SRC_TYPE_T;
718
719 typedef enum _ENUM_EEPROM_TYPE_T {
720     EEPROM_TYPE_NO,
721     EEPROM_TYPE_PRESENT,
722     EEPROM_TYPE_NUM
723 } ENUM_EEPROM_TYPE_T, *P_ENUM_EEPROM_TYPE_T;
724
725 typedef struct _PARAM_QOS_TSINFO {
726     UINT_8           ucTrafficType;         /* Traffic Type: 1 for isochronous 0 for asynchronous */
727     UINT_8           ucTid;                 /* TSID: must be between 8 ~ 15 */
728     UINT_8           ucDirection;           /* direction */
729     UINT_8           ucAccessPolicy;        /* access policy */
730     UINT_8           ucAggregation;         /* aggregation */
731     UINT_8           ucApsd;                /* APSD */
732     UINT_8           ucuserPriority;        /* user priority */
733     UINT_8           ucTsInfoAckPolicy;     /* TSINFO ACK policy */
734     UINT_8           ucSchedule;            /* Schedule */
735 } PARAM_QOS_TSINFO, *P_PARAM_QOS_TSINFO;
736
737 typedef struct _PARAM_QOS_TSPEC {
738     PARAM_QOS_TSINFO rTsInfo;               /* TS info field */
739     UINT_16          u2NominalMSDUSize;     /* nominal MSDU size */
740     UINT_16          u2MaxMSDUsize;         /* maximum MSDU size */
741     UINT_32          u4MinSvcIntv;          /* minimum service interval */
742     UINT_32          u4MaxSvcIntv;          /* maximum service interval */
743     UINT_32          u4InactIntv;           /* inactivity interval */
744     UINT_32          u4SpsIntv;             /* suspension interval */
745     UINT_32          u4SvcStartTime;        /* service start time */
746     UINT_32          u4MinDataRate;         /* minimum Data rate */
747     UINT_32          u4MeanDataRate;        /* mean data rate */
748     UINT_32          u4PeakDataRate;        /* peak data rate */
749     UINT_32          u4MaxBurstSize;        /* maximum burst size */
750     UINT_32          u4DelayBound;          /* delay bound */
751     UINT_32          u4MinPHYRate;          /* minimum PHY rate */
752     UINT_16          u2Sba;                 /* surplus bandwidth allowance */
753     UINT_16          u2MediumTime;          /* medium time */
754 } PARAM_QOS_TSPEC, *P_PARAM_QOS_TSPEC;
755
756 typedef struct _PARAM_QOS_ADDTS_REQ_INFO {
757     PARAM_QOS_TSPEC             rTspec;
758 } PARAM_QOS_ADDTS_REQ_INFO, *P_PARAM_QOS_ADDTS_REQ_INFO;
759
760 typedef struct _PARAM_VOIP_CONFIG {
761     UINT_32         u4VoipTrafficInterval;  /* 0: disable VOIP configuration */
762 } PARAM_VOIP_CONFIG, *P_PARAM_VOIP_CONFIG;
763
764 /*802.11 Statistics Struct*/
765 typedef struct _PARAM_802_11_STATISTICS_STRUCT_T {
766     UINT_32         u4Length;             // Length of structure
767     LARGE_INTEGER   rTransmittedFragmentCount;
768     LARGE_INTEGER   rMulticastTransmittedFrameCount;
769     LARGE_INTEGER   rFailedCount;
770     LARGE_INTEGER   rRetryCount;
771     LARGE_INTEGER   rMultipleRetryCount;
772     LARGE_INTEGER   rRTSSuccessCount;
773     LARGE_INTEGER   rRTSFailureCount;
774     LARGE_INTEGER   rACKFailureCount;
775     LARGE_INTEGER   rFrameDuplicateCount;
776     LARGE_INTEGER   rReceivedFragmentCount;
777     LARGE_INTEGER   rMulticastReceivedFrameCount;
778     LARGE_INTEGER   rFCSErrorCount;
779     LARGE_INTEGER   rTKIPLocalMICFailures;
780     LARGE_INTEGER   rTKIPICVErrors;
781     LARGE_INTEGER   rTKIPCounterMeasuresInvoked;
782     LARGE_INTEGER   rTKIPReplays;
783     LARGE_INTEGER   rCCMPFormatErrors;
784     LARGE_INTEGER   rCCMPReplays;
785     LARGE_INTEGER   rCCMPDecryptErrors;
786     LARGE_INTEGER   rFourWayHandshakeFailures;
787     LARGE_INTEGER   rWEPUndecryptableCount;
788     LARGE_INTEGER   rWEPICVErrorCount;
789     LARGE_INTEGER   rDecryptSuccessCount;
790     LARGE_INTEGER   rDecryptFailureCount;
791 } PARAM_802_11_STATISTICS_STRUCT_T, *P_PARAM_802_11_STATISTICS_STRUCT_T;
792
793 /* Linux Network Device Statistics Struct */
794 typedef struct _PARAM_LINUX_NETDEV_STATISTICS_T {
795     UINT_32         u4RxPackets;
796     UINT_32         u4TxPackets;
797     UINT_32         u4RxBytes;
798     UINT_32         u4TxBytes;
799     UINT_32         u4RxErrors;
800     UINT_32         u4TxErrors;
801     UINT_32         u4Multicast;
802 } PARAM_LINUX_NETDEV_STATISTICS_T, *P_PARAM_LINUX_NETDEV_STATISTICS_T;
803
804
805 typedef struct _PARAM_MTK_WIFI_TEST_STRUC_T {
806     UINT_32                 u4FuncIndex;
807     UINT_32                 u4FuncData;
808 } PARAM_MTK_WIFI_TEST_STRUC_T, *P_PARAM_MTK_WIFI_TEST_STRUC_T;
809
810
811 /* 802.11 Media stream constraints */
812 typedef enum _ENUM_MEDIA_STREAM_MODE {
813     ENUM_MEDIA_STREAM_OFF,
814     ENUM_MEDIA_STREAM_ON
815 } ENUM_MEDIA_STREAM_MODE, *P_ENUM_MEDIA_STREAM_MODE;
816
817 /* for NDIS 5.1 Media Streaming Change */
818 typedef struct _PARAM_MEDIA_STREAMING_INDICATION {
819     PARAM_STATUS_INDICATION_T   rStatus;
820     ENUM_MEDIA_STREAM_MODE      eMediaStreamMode;
821 } PARAM_MEDIA_STREAMING_INDICATION, *P_PARAM_MEDIA_STREAMING_INDICATION;
822
823
824 #define PARAM_PROTOCOL_ID_DEFAULT       0x00
825 #define PARAM_PROTOCOL_ID_TCP_IP        0x02
826 #define PARAM_PROTOCOL_ID_IPX           0x06
827 #define PARAM_PROTOCOL_ID_NBF           0x07
828 #define PARAM_PROTOCOL_ID_MAX           0x0F
829 #define PARAM_PROTOCOL_ID_MASK          0x0F
830
831 /* for NDIS OID_GEN_NETWORK_LAYER_ADDRESSES */
832 typedef struct _PARAM_NETWORK_ADDRESS_IP
833 {
834     UINT_16     sin_port;
835     UINT_32     in_addr;
836     UINT_8      sin_zero[8];
837 } PARAM_NETWORK_ADDRESS_IP, *P_PARAM_NETWORK_ADDRESS_IP;
838
839 typedef struct _PARAM_NETWORK_ADDRESS {
840     UINT_16     u2AddressLength;    // length in bytes of Address[] in this
841     UINT_16     u2AddressType;      // type of this address (PARAM_PROTOCOL_ID_XXX above)
842     UINT_8      aucAddress[1];      // actually AddressLength bytes long
843 } PARAM_NETWORK_ADDRESS, *P_PARAM_NETWORK_ADDRESS;
844
845 // The following is used with OID_GEN_NETWORK_LAYER_ADDRESSES to set network layer addresses on an interface
846
847 typedef struct _PARAM_NETWORK_ADDRESS_LIST
848 {
849     UINT_32                 u4AddressCount;     // number of addresses following
850     UINT_16                 u2AddressType;      // type of this address (NDIS_PROTOCOL_ID_XXX above)
851     PARAM_NETWORK_ADDRESS   arAddress[1];       // actually AddressCount elements long
852 } PARAM_NETWORK_ADDRESS_LIST, *P_PARAM_NETWORK_ADDRESS_LIST;
853
854 #if CFG_SLT_SUPPORT
855
856 #define FIXED_BW_LG20       0x0000
857 #define FIXED_BW_UL20       0x2000
858 #define FIXED_BW_DL40       0x3000
859
860 #define FIXED_EXT_CHNL_U20  0x4000   // For AGG register.
861 #define FIXED_EXT_CHNL_L20  0xC000   // For AGG regsiter.
862
863 typedef enum _ENUM_MTK_LP_TEST_MODE_T {
864     ENUM_MTK_LP_TEST_NORMAL,
865     ENUM_MTK_LP_TEST_GOLDEN_SAMPLE,
866     ENUM_MTK_LP_TEST_DUT,
867     ENUM_MTK_LP_TEST_MODE_NUM
868 } ENUM_MTK_LP_TEST_MODE_T, *P_ENUM_MTK_LP_TEST_MODE_T;
869
870 typedef enum _ENUM_MTK_SLT_FUNC_IDX_T {
871     ENUM_MTK_SLT_FUNC_DO_NOTHING,
872     ENUM_MTK_SLT_FUNC_INITIAL,
873     ENUM_MTK_SLT_FUNC_RATE_SET,
874     ENUM_MTK_SLT_FUNC_LP_SET,
875     ENUM_MTK_SLT_FUNC_NUM
876 } ENUM_MTK_SLT_FUNC_IDX_T, *P_ENUM_MTK_SLT_FUNC_IDX_T;
877
878 typedef struct _PARAM_MTK_SLT_LP_TEST_STRUC_T {
879     ENUM_MTK_LP_TEST_MODE_T rLpTestMode;
880     UINT_32 u4BcnRcvNum;
881 } PARAM_MTK_SLT_LP_TEST_STRUC_T, *P_PARAM_MTK_SLT_LP_TEST_STRUC_T;
882
883 typedef struct _PARAM_MTK_SLT_TR_TEST_STRUC_T {
884     ENUM_PARAM_NETWORK_TYPE_T rNetworkType;         // Network Type OFDM5G or OFDM2.4G
885     UINT_32 u4FixedRate;                                                 // Fixed Rate including BW
886 } PARAM_MTK_SLT_TR_TEST_STRUC_T, *P_PARAM_MTK_SLT_TR_TEST_STRUC_T;
887
888 typedef struct _PARAM_MTK_SLT_INITIAL_STRUC_T {
889     UINT_8 aucTargetMacAddr[PARAM_MAC_ADDR_LEN];
890     UINT_16 u2SiteID;
891 } PARAM_MTK_SLT_INITIAL_STRUC_T, *P_PARAM_MTK_SLT_INITIAL_STRUC_T;
892
893 typedef struct _PARAM_MTK_SLT_TEST_STRUC_T {
894     ENUM_MTK_SLT_FUNC_IDX_T rSltFuncIdx;
895     UINT_32 u4Length;                       /* Length of structure,
896                                                      including myself */
897     UINT_32  u4FuncInfoLen;  /* Include following content
898                                                     field and myself */
899     union {
900         PARAM_MTK_SLT_INITIAL_STRUC_T rMtkInitTest;
901         PARAM_MTK_SLT_LP_TEST_STRUC_T rMtkLpTest;
902         PARAM_MTK_SLT_TR_TEST_STRUC_T rMtkTRTest;
903     } unFuncInfoContent;
904
905 } PARAM_MTK_SLT_TEST_STRUC_T, *P_PARAM_MTK_SLT_TEST_STRUC_T;
906
907 #endif
908
909 /*--------------------------------------------------------------*/
910 /*! \brief For Fixed Rate Configuration (Registry)              */
911 /*--------------------------------------------------------------*/
912 typedef enum _ENUM_REGISTRY_FIXED_RATE_T {
913     FIXED_RATE_NONE,
914     FIXED_RATE_1M,
915     FIXED_RATE_2M,
916     FIXED_RATE_5_5M,
917     FIXED_RATE_11M,
918     FIXED_RATE_6M,
919     FIXED_RATE_9M,
920     FIXED_RATE_12M,
921     FIXED_RATE_18M,
922     FIXED_RATE_24M,
923     FIXED_RATE_36M,
924     FIXED_RATE_48M,
925     FIXED_RATE_54M,
926     FIXED_RATE_MCS0_20M_800NS,
927     FIXED_RATE_MCS1_20M_800NS,
928     FIXED_RATE_MCS2_20M_800NS,
929     FIXED_RATE_MCS3_20M_800NS,
930     FIXED_RATE_MCS4_20M_800NS,
931     FIXED_RATE_MCS5_20M_800NS,
932     FIXED_RATE_MCS6_20M_800NS,
933     FIXED_RATE_MCS7_20M_800NS,
934     FIXED_RATE_MCS0_20M_400NS,
935     FIXED_RATE_MCS1_20M_400NS,
936     FIXED_RATE_MCS2_20M_400NS,
937     FIXED_RATE_MCS3_20M_400NS,
938     FIXED_RATE_MCS4_20M_400NS,
939     FIXED_RATE_MCS5_20M_400NS,
940     FIXED_RATE_MCS6_20M_400NS,
941     FIXED_RATE_MCS7_20M_400NS,
942     FIXED_RATE_MCS0_40M_800NS,
943     FIXED_RATE_MCS1_40M_800NS,
944     FIXED_RATE_MCS2_40M_800NS,
945     FIXED_RATE_MCS3_40M_800NS,
946     FIXED_RATE_MCS4_40M_800NS,
947     FIXED_RATE_MCS5_40M_800NS,
948     FIXED_RATE_MCS6_40M_800NS,
949     FIXED_RATE_MCS7_40M_800NS,
950     FIXED_RATE_MCS32_800NS,
951     FIXED_RATE_MCS0_40M_400NS,
952     FIXED_RATE_MCS1_40M_400NS,
953     FIXED_RATE_MCS2_40M_400NS,
954     FIXED_RATE_MCS3_40M_400NS,
955     FIXED_RATE_MCS4_40M_400NS,
956     FIXED_RATE_MCS5_40M_400NS,
957     FIXED_RATE_MCS6_40M_400NS,
958     FIXED_RATE_MCS7_40M_400NS,
959     FIXED_RATE_MCS32_400NS,
960     FIXED_RATE_NUM
961 } ENUM_REGISTRY_FIXED_RATE_T, *P_ENUM_REGISTRY_FIXED_RATE_T;
962
963 typedef enum _ENUM_BT_CMD_T {
964     BT_CMD_PROFILE = 0,
965     BT_CMD_UPDATE,
966     BT_CMD_NUM
967 } ENUM_BT_CMD_T;
968
969 typedef enum _ENUM_BT_PROFILE_T {
970     BT_PROFILE_CUSTOM = 0,
971     BT_PROFILE_SCO,
972     BT_PROFILE_ACL,
973     BT_PROFILE_MIXED,
974     BT_PROFILE_NO_CONNECTION,
975     BT_PROFILE_NUM
976 } ENUM_BT_PROFILE_T;
977
978 typedef struct _PTA_PROFILE_T {
979     ENUM_BT_PROFILE_T eBtProfile;
980     union {
981         UINT_8 aucBTPParams[BT_PROFILE_PARAM_LEN];
982                                 /*  0: sco reserved slot time,
983                                     1: sco idle slot time,
984                                     2: acl throughput,
985                                     3: bt tx power,
986                                     4: bt rssi
987                                     5: VoIP interval
988                                     6: BIT(0) Use this field, BIT(1) 0 apply single/ 1 dual PTA setting.
989                                 */
990         UINT_32 au4Btcr[4];
991     } u;
992 } PTA_PROFILE_T, *P_PTA_PROFILE_T;
993
994 typedef struct _PTA_IPC_T {
995     UINT_8      ucCmd;
996     UINT_8      ucLen;
997     union {
998         PTA_PROFILE_T rProfile;
999         UINT_8      aucBTPParams[BT_PROFILE_PARAM_LEN];
1000     } u;
1001 } PARAM_PTA_IPC_T, *P_PARAM_PTA_IPC_T, PTA_IPC_T, *P_PTA_IPC_T;
1002
1003 /*--------------------------------------------------------------*/
1004 /*! \brief CFG80211 Scan Request Container                      */
1005 /*--------------------------------------------------------------*/
1006
1007 typedef struct _PARAM_SCAN_REQUEST_EXT_T {
1008     PARAM_SSID_T    rSsid;
1009     UINT_32         u4IELength;
1010     PUINT_8         pucIE;
1011 } PARAM_SCAN_REQUEST_EXT_T, *P_PARAM_SCAN_REQUEST_EXT_T;
1012
1013
1014 /*******************************************************************************
1015 *                            P U B L I C   D A T A
1016 ********************************************************************************
1017 */
1018
1019 /*******************************************************************************
1020 *                           P R I V A T E   D A T A
1021 ********************************************************************************
1022 */
1023
1024 /*******************************************************************************
1025 *                                 M A C R O S
1026 ********************************************************************************
1027 */
1028
1029 /*******************************************************************************
1030 *                   F U N C T I O N   D E C L A R A T I O N S
1031 ********************************************************************************
1032 */
1033 /*--------------------------------------------------------------*/
1034 /* Routines to set parameters or query information.             */
1035 /*--------------------------------------------------------------*/
1036 /***** Routines in wlan_oid.c *****/
1037 WLAN_STATUS
1038 wlanoidQueryNetworkTypesSupported(
1039     IN  P_ADAPTER_T       prAdapter,
1040     OUT PVOID             pvQueryBuffer,
1041     IN  UINT_32           u4QueryBufferLen,
1042     OUT PUINT_32          pu4QueryInfoLen
1043     );
1044
1045 WLAN_STATUS
1046 wlanoidQueryNetworkTypeInUse(
1047     IN  P_ADAPTER_T       prAdapter,
1048     OUT PVOID             pvQueryBuffer,
1049     IN  UINT_32           u4QueryBufferLen,
1050     OUT PUINT_32          pu4QueryInfoLen
1051     );
1052
1053 WLAN_STATUS
1054 wlanoidSetNetworkTypeInUse (
1055     IN  P_ADAPTER_T       prAdapter,
1056     IN  PVOID             pvSetBuffer,
1057     IN  UINT_32           u4SetBufferLen,
1058     OUT PUINT_32          pu4SetInfoLen
1059     );
1060
1061 WLAN_STATUS
1062 wlanoidQueryBssid(
1063     IN  P_ADAPTER_T       prAdapter,
1064     OUT PVOID             pvQueryBuffer,
1065     IN  UINT_32           u4QueryBufferLen,
1066     OUT PUINT_32          pu4QueryInfoLen
1067     );
1068
1069 WLAN_STATUS
1070 wlanoidSetBssidListScan(
1071     IN  P_ADAPTER_T       prAdapter,
1072     IN  PVOID             pvSetBuffer,
1073     IN  UINT_32           u4SetBufferLen,
1074     OUT PUINT_32          pu4SetInfoLen
1075     );
1076
1077 WLAN_STATUS
1078 wlanoidSetBssidListScanExt (
1079     IN  P_ADAPTER_T       prAdapter,
1080     IN  PVOID             pvSetBuffer,
1081     IN  UINT_32           u4SetBufferLen,
1082     OUT PUINT_32          pu4SetInfoLen
1083     );
1084
1085 WLAN_STATUS
1086 wlanoidQueryBssidList(
1087     IN  P_ADAPTER_T       prAdapter,
1088     OUT PVOID             pvQueryBuffer,
1089     IN  UINT_32           u4QueryBufferLen,
1090     OUT PUINT_32          pu4QueryInfoLen
1091     );
1092
1093 WLAN_STATUS
1094 wlanoidSetBssid(
1095     IN  P_ADAPTER_T       prAdapter,
1096     IN  PVOID             pvSetBuffer,
1097     IN  UINT_32           u4SetBufferLen,
1098     OUT PUINT_32          pu4SetInfoLen
1099     );
1100
1101 WLAN_STATUS
1102 wlanoidSetSsid(
1103     IN  P_ADAPTER_T       prAdapter,
1104     IN  PVOID             pvSetBuffer,
1105     IN  UINT_32           u4SetBufferLen,
1106     OUT PUINT_32          pu4SetInfoLen
1107     );
1108
1109 WLAN_STATUS
1110 wlanoidQuerySsid(
1111     IN  P_ADAPTER_T       prAdapter,
1112     OUT PVOID             pvQueryBuffer,
1113     IN  UINT_32           u4QueryBufferLen,
1114     OUT PUINT_32          pu4QueryInfoLen
1115     );
1116
1117 WLAN_STATUS
1118 wlanoidQueryInfrastructureMode(
1119     IN  P_ADAPTER_T       prAdapter,
1120     OUT PVOID             pvQueryBuffer,
1121     IN  UINT_32           u4QueryBufferLen,
1122     OUT PUINT_32          pu4QueryInfoLen
1123     );
1124
1125 WLAN_STATUS
1126 wlanoidSetInfrastructureMode(
1127     IN  P_ADAPTER_T       prAdapter,
1128     IN  PVOID             pvSetBuffer,
1129     IN  UINT_32           u4SetBufferLen,
1130     OUT PUINT_32          pu4SetInfoLen
1131     );
1132
1133 WLAN_STATUS
1134 wlanoidQueryAuthMode(
1135     IN  P_ADAPTER_T       prAdapter,
1136     OUT PVOID             pvQueryBuffer,
1137     IN  UINT_32           u4QueryBufferLen,
1138     OUT PUINT_32          pu4QueryInfoLen
1139     );
1140
1141 WLAN_STATUS
1142 wlanoidSetAuthMode(
1143     IN  P_ADAPTER_T       prAdapter,
1144     IN  PVOID             pvSetBuffer,
1145     IN  UINT_32           u4SetBufferLen,
1146     OUT PUINT_32          pu4SetInfoLen
1147     );
1148
1149 #if 0
1150 WLAN_STATUS
1151 wlanoidQueryPrivacyFilter (
1152     IN  P_ADAPTER_T       prAdapter,
1153     OUT PVOID             pvQueryBuffer,
1154     IN  UINT_32           u4QueryBufferLen,
1155     OUT PUINT_32          pu4QueryInfoLen
1156     );
1157
1158
1159 WLAN_STATUS
1160 wlanoidSetPrivacyFilter (
1161     IN  P_ADAPTER_T       prAdapter,
1162     IN  PVOID             pvSetBuffer,
1163     IN  UINT_32           u4SetBufferLen,
1164     OUT PUINT_32          pu4SetInfoLen
1165     );
1166 #endif
1167
1168 WLAN_STATUS
1169 wlanoidSetEncryptionStatus(
1170     IN  P_ADAPTER_T       prAdapter,
1171     IN  PVOID             pvSetBuffer,
1172     IN  UINT_32           u4SetBufferLen,
1173     OUT PUINT_32          pu4SetInfoLen
1174     );
1175
1176 WLAN_STATUS
1177 wlanoidQueryEncryptionStatus(
1178     IN  P_ADAPTER_T       prAdapter,
1179     IN  PVOID             pvQueryBuffer,
1180     IN  UINT_32           u4QueryBufferLen,
1181     OUT PUINT_32          pu4QueryInfoLen
1182     );
1183
1184 WLAN_STATUS
1185 wlanoidSetAddWep(
1186     IN  P_ADAPTER_T       prAdapter,
1187     IN  PVOID    pvSetBuffer,
1188     IN  UINT_32  u4SetBufferLen,
1189     OUT PUINT_32 pu4SetInfoLen
1190     );
1191
1192 WLAN_STATUS
1193 wlanoidSetRemoveWep(
1194     IN  P_ADAPTER_T       prAdapter,
1195     IN  PVOID             pvSetBuffer,
1196     IN  UINT_32           u4SetBufferLen,
1197     OUT PUINT_32          pu4SetInfoLen
1198     );
1199
1200 WLAN_STATUS
1201 wlanoidSetAddKey(
1202     IN  P_ADAPTER_T       prAdapter,
1203     IN  PVOID             pvSetBuffer,
1204     IN  UINT_32           u4SetBufferLen,
1205     OUT PUINT_32          pu4SetInfoLen
1206     );
1207
1208 WLAN_STATUS
1209 wlanoidSetRemoveKey(
1210     IN  P_ADAPTER_T       prAdapter,
1211     IN  PVOID    pvSetBuffer,
1212     IN  UINT_32  u4SetBufferLen,
1213     OUT PUINT_32 pu4SetInfoLen
1214     );
1215
1216 WLAN_STATUS
1217 wlanoidSetReloadDefaults(
1218     IN  P_ADAPTER_T       prAdapter,
1219     IN  PVOID             pvSetBuffer,
1220     IN  UINT_32           u4SetBufferLen,
1221     OUT PUINT_32          pu4SetInfoLen
1222     );
1223
1224 WLAN_STATUS
1225 wlanoidSetTest(
1226     IN  P_ADAPTER_T       prAdapter,
1227     IN  PVOID             pvSetBuffer,
1228     IN  UINT_32           u4SetBufferLen,
1229     OUT PUINT_32          pu4SetInfoLen
1230     );
1231
1232 WLAN_STATUS
1233 wlanoidQueryCapability(
1234     IN  P_ADAPTER_T       prAdapter,
1235     OUT PVOID             pvQueryBuffer,
1236     IN  UINT_32           u4QueryBufferLen,
1237     OUT PUINT_32          pu4QueryInfoLen
1238     );
1239
1240 WLAN_STATUS
1241 wlanoidQueryFrequency (
1242     IN  P_ADAPTER_T prAdapter,
1243     OUT PVOID       pvQueryBuffer,
1244     IN  UINT_32     u4QueryBufferLen,
1245     OUT PUINT_32    pu4QueryInfoLen
1246     );
1247
1248 WLAN_STATUS
1249 wlanoidSetFrequency (
1250     IN  P_ADAPTER_T       prAdapter,
1251     IN  PVOID             pvSetBuffer,
1252     IN  UINT_32           u4SetBufferLen,
1253     OUT PUINT_32          pu4SetInfoLen
1254     );
1255
1256
1257 WLAN_STATUS
1258 wlanoidQueryAtimWindow (
1259     IN  P_ADAPTER_T prAdapter,
1260     OUT PVOID       pvQueryBuffer,
1261     IN  UINT_32     u4QueryBufferLen,
1262     OUT PUINT_32    pu4QueryInfoLen
1263     );
1264
1265 WLAN_STATUS
1266 wlanoidSetAtimWindow (
1267     IN  P_ADAPTER_T       prAdapter,
1268     IN  PVOID             pvSetBuffer,
1269     IN  UINT_32           u4SetBufferLen,
1270     OUT PUINT_32          pu4SetInfoLen
1271     );
1272
1273
1274 WLAN_STATUS
1275 wlanoidSetChannel (
1276     IN  P_ADAPTER_T       prAdapter,
1277     IN  PVOID             pvSetBuffer,
1278     IN  UINT_32           u4SetBufferLen,
1279     OUT PUINT_32          pu4SetInfoLen
1280     );
1281
1282 WLAN_STATUS
1283 wlanoidQueryRssi(
1284     IN  P_ADAPTER_T       prAdapter,
1285     OUT PVOID             pvQueryBuffer,
1286     IN  UINT_32           u4QueryBufferLen,
1287     OUT PUINT_32          pu4QueryInfoLen
1288     );
1289
1290 WLAN_STATUS
1291 wlanoidQueryRssiTrigger(
1292     IN  P_ADAPTER_T       prAdapter,
1293     OUT PVOID             pvQueryBuffer,
1294     IN  UINT_32           u4QueryBufferLen,
1295     OUT PUINT_32          pu4QueryInfoLen
1296     );
1297
1298 WLAN_STATUS
1299 wlanoidSetRssiTrigger(
1300     IN  P_ADAPTER_T       prAdapter,
1301     IN  PVOID             pvSetBuffer,
1302     IN  UINT_32           u4SetBufferLen,
1303     OUT PUINT_32          pu4SetInfoLen
1304     );
1305
1306 WLAN_STATUS
1307 wlanoidQueryRtsThreshold (
1308     IN  P_ADAPTER_T prAdapter,
1309     OUT PVOID       pvQueryBuffer,
1310     IN  UINT_32     u4QueryBufferLen,
1311     OUT PUINT_32    pu4QueryInfoLen
1312     );
1313
1314 WLAN_STATUS
1315 wlanoidSetRtsThreshold (
1316     IN  P_ADAPTER_T prAdapter,
1317     IN  PVOID       pvSetBuffer,
1318     IN  UINT_32     u4SetBufferLen,
1319     OUT PUINT_32    pu4SetInfoLen
1320     );
1321
1322 WLAN_STATUS
1323 wlanoidQuery802dot11PowerSaveProfile (
1324     IN  P_ADAPTER_T prAdapter,
1325     IN  PVOID       pvQueryBuffer,
1326     IN  UINT_32     u4QueryBufferLen,
1327     OUT PUINT_32    pu4QueryInfoLen
1328     );
1329
1330 WLAN_STATUS
1331 wlanoidSet802dot11PowerSaveProfile (
1332     IN  P_ADAPTER_T prAdapter,
1333     IN  PVOID       prSetBuffer,
1334     IN  UINT_32     u4SetBufferLen,
1335     OUT PUINT_32    pu4SetInfoLen
1336     );
1337
1338 WLAN_STATUS
1339 wlanoidQueryPmkid(
1340     IN  P_ADAPTER_T       prAdapter,
1341     OUT PVOID             pvQueryBuffer,
1342     IN  UINT_32           u4QueryBufferLen,
1343     OUT PUINT_32          pu4QueryInfoLen
1344     );
1345
1346 WLAN_STATUS
1347 wlanoidSetPmkid(
1348     IN  P_ADAPTER_T       prAdapter,
1349     IN  PVOID             pvSetBuffer,
1350     IN  UINT_32           u4SetBufferLen,
1351     OUT PUINT_32          pu4SetInfoLen
1352     );
1353
1354 WLAN_STATUS
1355 wlanoidQuerySupportedRates(
1356     IN  P_ADAPTER_T       prAdapter,
1357     OUT PVOID             pvQueryBuffer,
1358     IN  UINT_32           u4QueryBufferLen,
1359     OUT PUINT_32          pu4QueryInfoLen
1360     );
1361
1362 WLAN_STATUS
1363 wlanoidQueryDesiredRates (
1364     IN  P_ADAPTER_T prAdapter,
1365     OUT PVOID       pvQueryBuffer,
1366     IN  UINT_32     u4QueryBufferLen,
1367     OUT PUINT_32    pu4QueryInfoLen
1368     );
1369
1370 WLAN_STATUS
1371 wlanoidSetDesiredRates (
1372     IN  P_ADAPTER_T       prAdapter,
1373     IN  PVOID             pvSetBuffer,
1374     IN  UINT_32           u4SetBufferLen,
1375     OUT PUINT_32          pu4SetInfoLen
1376     );
1377
1378 WLAN_STATUS
1379 wlanoidQueryPermanentAddr (
1380     IN P_ADAPTER_T  prAdapter,
1381     IN  PVOID    pvQueryBuf,
1382     IN  UINT_32  u4QueryBufLen,
1383     OUT PUINT_32 pu4QueryInfoLen
1384     );
1385
1386 WLAN_STATUS
1387 wlanoidQueryCurrentAddr (
1388     IN P_ADAPTER_T  prAdapter,
1389     IN  PVOID    pvQueryBuf,
1390     IN  UINT_32  u4QueryBufLen,
1391     OUT PUINT_32 pu4QueryInfoLen
1392     );
1393
1394 WLAN_STATUS
1395 wlanoidQueryPermanentAddr (
1396     IN P_ADAPTER_T  prAdapter,
1397     IN  PVOID    pvQueryBuf,
1398     IN  UINT_32  u4QueryBufLen,
1399     OUT PUINT_32 pu4QueryInfoLen
1400     );
1401
1402 WLAN_STATUS
1403 wlanoidQueryLinkSpeed(
1404     IN P_ADAPTER_T  prAdapter,
1405     IN  PVOID    pvQueryBuffer,
1406     IN  UINT_32  u4QueryBufferLen,
1407     OUT PUINT_32 pu4QueryInfoLen
1408     );
1409
1410 WLAN_STATUS
1411 wlanoidQueryMcrRead (
1412     IN P_ADAPTER_T  prAdapter,
1413     IN  PVOID    pvQueryBuffer,
1414     IN  UINT_32  u4QueryBufferLen,
1415     OUT PUINT_32 pu4QueryInfoLen
1416     );
1417
1418 WLAN_STATUS
1419 wlanoidQueryMemDump (
1420     IN P_ADAPTER_T  prAdapter,
1421     IN  PVOID    pvQueryBuffer,
1422     IN  UINT_32  u4QueryBufferLen,
1423     OUT PUINT_32 pu4QueryInfoLen
1424     );
1425
1426 WLAN_STATUS
1427 wlanoidSetMcrWrite (
1428     IN P_ADAPTER_T  prAdapter,
1429     IN  PVOID    pvSetBuffer,
1430     IN  UINT_32  u4SetBufferLen,
1431     OUT PUINT_32 pu4SetInfoLen
1432     );
1433
1434
1435 WLAN_STATUS
1436 wlanoidQuerySwCtrlRead (
1437     IN P_ADAPTER_T  prAdapter,
1438     IN  PVOID    pvQueryBuffer,
1439     IN  UINT_32  u4QueryBufferLen,
1440     OUT PUINT_32 pu4QueryInfoLen
1441     );
1442
1443 WLAN_STATUS
1444 wlanoidSetSwCtrlWrite (
1445     IN P_ADAPTER_T  prAdapter,
1446     IN  PVOID    pvSetBuffer,
1447     IN  UINT_32  u4SetBufferLen,
1448     OUT PUINT_32 pu4SetInfoLen
1449     );
1450
1451
1452 WLAN_STATUS
1453 wlanoidQueryEepromRead (
1454     IN  P_ADAPTER_T  prAdapter,
1455     IN  PVOID        pvQueryBuffer,
1456     IN  UINT_32      u4QueryBufferLen,
1457     OUT PUINT_32     pu4QueryInfoLen
1458     );
1459
1460 WLAN_STATUS
1461 wlanoidSetEepromWrite (
1462     IN P_ADAPTER_T  prAdapter,
1463     IN  PVOID       pvSetBuffer,
1464     IN  UINT_32     u4SetBufferLen,
1465     OUT PUINT_32    pu4SetInfoLen
1466     );
1467
1468 WLAN_STATUS
1469 wlanoidQueryRfTestRxStatus (
1470     IN  P_ADAPTER_T  prAdapter,
1471     IN  PVOID        pvQueryBuffer,
1472     IN  UINT_32      u4QueryBufferLen,
1473     OUT PUINT_32     pu4QueryInfoLen
1474     );
1475
1476 WLAN_STATUS
1477 wlanoidQueryRfTestTxStatus (
1478     IN  P_ADAPTER_T  prAdapter,
1479     IN  PVOID        pvQueryBuffer,
1480     IN  UINT_32      u4QueryBufferLen,
1481     OUT PUINT_32     pu4QueryInfoLen
1482     );
1483
1484 WLAN_STATUS
1485 wlanoidQueryOidInterfaceVersion (
1486     IN P_ADAPTER_T  prAdapter,
1487     IN  PVOID    pvQueryBuffer,
1488     IN  UINT_32  u4QueryBufferLen,
1489     OUT PUINT_32 pu4QueryInfoLen
1490     );
1491
1492 WLAN_STATUS
1493 wlanoidQueryVendorId(
1494     IN  P_ADAPTER_T       prAdapter,
1495     OUT PVOID             pvQueryBuffer,
1496     IN  UINT_32           u4QueryBufferLen,
1497     OUT PUINT_32          pu4QueryInfoLen
1498     );
1499
1500 WLAN_STATUS
1501 wlanoidQueryMulticastList(
1502     IN  P_ADAPTER_T prAdapter,
1503     OUT PVOID       pvQueryBuffer,
1504     IN  UINT_32     u4QueryBufferLen,
1505     OUT PUINT_32    pu4QueryInfoLen
1506     );
1507
1508 WLAN_STATUS
1509 wlanoidSetMulticastList(
1510     IN  P_ADAPTER_T prAdapter,
1511     IN  PVOID       pvSetBuffer,
1512     IN  UINT_32     u4SetBufferLen,
1513     OUT PUINT_32    pu4SetInfoLen
1514     );
1515
1516 WLAN_STATUS
1517 wlanoidQueryRcvError (
1518     IN  P_ADAPTER_T     prAdapter,
1519     IN  PVOID           pvQueryBuffer,
1520     IN  UINT_32         u4QueryBufferLen,
1521     OUT PUINT_32        pu4QueryInfoLen
1522     );
1523
1524 WLAN_STATUS
1525 wlanoidQueryRcvNoBuffer (
1526     IN  P_ADAPTER_T       prAdapter,
1527     IN  PVOID             pvQueryBuffer,
1528     IN  UINT_32           u4QueryBufferLen,
1529     OUT PUINT_32          pu4QueryInfoLen
1530     );
1531
1532 WLAN_STATUS
1533 wlanoidQueryRcvCrcError (
1534     IN  P_ADAPTER_T       prAdapter,
1535     IN  PVOID             pvQueryBuffer,
1536     IN  UINT_32           u4QueryBufferLen,
1537     OUT PUINT_32          pu4QueryInfoLen
1538     );
1539
1540 WLAN_STATUS
1541 wlanoidQueryStatistics (
1542     IN  P_ADAPTER_T     prAdapter,
1543     IN  PVOID           pvQueryBuffer,
1544     IN  UINT_32         u4QueryBufferLen,
1545     OUT PUINT_32        pu4QueryInfoLen
1546     );
1547
1548 #ifdef LINUX
1549
1550 WLAN_STATUS
1551 wlanoidQueryStatisticsForLinux (
1552     IN  P_ADAPTER_T     prAdapter,
1553     IN  PVOID           pvQueryBuffer,
1554     IN  UINT_32         u4QueryBufferLen,
1555     OUT PUINT_32        pu4QueryInfoLen
1556     );
1557
1558 #endif
1559
1560 WLAN_STATUS
1561 wlanoidQueryMediaStreamMode(
1562     IN  P_ADAPTER_T     prAdapter,
1563     IN  PVOID           pvQueryBuffer,
1564     IN  UINT_32         u4QueryBufferLen,
1565     OUT PUINT_32        pu4QueryInfoLen
1566     );
1567
1568 WLAN_STATUS
1569 wlanoidSetMediaStreamMode(
1570     IN  P_ADAPTER_T prAdapter,
1571     IN  PVOID       pvSetBuffer,
1572     IN  UINT_32     u4SetBufferLen,
1573     OUT PUINT_32    pu4SetInfoLen
1574     );
1575
1576 WLAN_STATUS
1577 wlanoidQueryRcvOk(
1578     IN P_ADAPTER_T  prAdapter,
1579     IN  PVOID           pvQueryBuffer,
1580     IN  UINT_32         u4QueryBufferLen,
1581     OUT PUINT_32        pu4QueryInfoLen
1582     );
1583
1584 WLAN_STATUS
1585 wlanoidQueryXmitOk(
1586     IN P_ADAPTER_T  prAdapter,
1587     IN  PVOID       pvQueryBuffer,
1588     IN  UINT_32     u4QueryBufferLen,
1589     OUT PUINT_32    pu4QueryInfoLen
1590     );
1591
1592 WLAN_STATUS
1593 wlanoidQueryXmitError (
1594     IN  P_ADAPTER_T       prAdapter,
1595     IN  PVOID           pvQueryBuffer,
1596     IN  UINT_32         u4QueryBufferLen,
1597     OUT PUINT_32          pu4QueryInfoLen
1598     );
1599
1600 WLAN_STATUS
1601 wlanoidQueryXmitOneCollision (
1602     IN  P_ADAPTER_T       prAdapter,
1603     IN  PVOID           pvQueryBuffer,
1604     IN  UINT_32         u4QueryBufferLen,
1605     OUT PUINT_32          pu4QueryInfoLen
1606     );
1607
1608 WLAN_STATUS
1609 wlanoidQueryXmitMoreCollisions (
1610     IN  P_ADAPTER_T       prAdapter,
1611     IN  PVOID           pvQueryBuffer,
1612     IN  UINT_32         u4QueryBufferLen,
1613     OUT PUINT_32          pu4QueryInfoLen
1614     );
1615
1616 WLAN_STATUS
1617 wlanoidQueryXmitMaxCollisions (
1618     IN  P_ADAPTER_T       prAdapter,
1619     IN   PVOID           pvQueryBuffer,
1620     IN   UINT_32         u4QueryBufferLen,
1621     OUT PUINT_32          pu4QueryInfoLen
1622     );
1623
1624
1625 WLAN_STATUS
1626 wlanoidSetCurrentPacketFilter(
1627     IN P_ADAPTER_T  prAdapter,
1628     IN  PVOID    pvSetBuffer,
1629     IN  UINT_32  u4SetBufferLen,
1630     OUT PUINT_32 pu4SetInfoLen
1631     );
1632
1633 WLAN_STATUS
1634 wlanoidQueryCurrentPacketFilter (
1635     IN P_ADAPTER_T prAdapter,
1636     IN  PVOID      pvQueryBuffer,
1637     IN  UINT_32    u4QueryBufferLen,
1638     OUT PUINT_32   pu4QueryInfoLen
1639     );
1640
1641
1642 WLAN_STATUS
1643 wlanoidSetAcpiDevicePowerState (
1644     IN P_ADAPTER_T prAdapter,
1645     IN  PVOID    pvSetBuffer,
1646     IN  UINT_32  u4SetBufferLen,
1647     OUT PUINT_32 pu4SetInfoLen
1648     );
1649
1650 WLAN_STATUS
1651 wlanoidQueryAcpiDevicePowerState (
1652     IN P_ADAPTER_T prAdapter,
1653     IN  PVOID       pvQueryBuffer,
1654     IN  UINT_32     u4QueryBufferLen,
1655     OUT PUINT_32    pu4QueryInfoLen
1656     );
1657
1658
1659 WLAN_STATUS
1660 wlanoidSetDisassociate (
1661     IN P_ADAPTER_T        prAdapter,
1662     IN  PVOID             pvSetBuffer,
1663     IN  UINT_32           u4SetBufferLen,
1664     OUT PUINT_32          pu4SetInfoLen
1665     );
1666
1667 WLAN_STATUS
1668 wlanoidQueryFragThreshold (
1669     IN  P_ADAPTER_T prAdapter,
1670     OUT PVOID       pvQueryBuffer,
1671     IN  UINT_32     u4QueryBufferLen,
1672     OUT PUINT_32    pu4QueryInfoLen
1673     );
1674
1675 WLAN_STATUS
1676 wlanoidSetFragThreshold (
1677     IN  P_ADAPTER_T prAdapter,
1678     IN  PVOID       pvSetBuffer,
1679     IN  UINT_32     u4SetBufferLen,
1680     OUT PUINT_32    pu4SetInfoLen
1681     );
1682
1683
1684 WLAN_STATUS
1685 wlanoidQueryAdHocMode (
1686     IN  P_ADAPTER_T prAdapter,
1687     OUT PVOID       pvQueryBuffer,
1688     IN  UINT_32     u4QueryBufferLen,
1689     OUT PUINT_32    pu4QueryInfoLen
1690     );
1691
1692 WLAN_STATUS
1693 wlanoidSetAdHocMode (
1694     IN  P_ADAPTER_T prAdapter,
1695     IN  PVOID       pvSetBuffer,
1696     IN  UINT_32     u4SetBufferLen,
1697     OUT PUINT_32    pu4SetInfoLen
1698     );
1699
1700 WLAN_STATUS
1701 wlanoidQueryBeaconInterval (
1702     IN  P_ADAPTER_T prAdapter,
1703     OUT PVOID       pvQueryBuffer,
1704     IN  UINT_32     u4QueryBufferLen,
1705     OUT PUINT_32    pu4QueryInfoLen
1706     );
1707
1708 WLAN_STATUS
1709 wlanoidSetBeaconInterval (
1710     IN  P_ADAPTER_T prAdapter,
1711     IN  PVOID       pvSetBuffer,
1712     IN  UINT_32     u4SetBufferLen,
1713     OUT PUINT_32    pu4SetInfoLen
1714     );
1715
1716 WLAN_STATUS
1717 wlanoidSetCurrentAddr (
1718     IN  P_ADAPTER_T prAdapter,
1719     IN  PVOID       pvSetBuffer,
1720     IN  UINT_32     u4SetBufferLen,
1721     OUT PUINT_32    pu4SetInfoLen
1722     );
1723
1724 #if CFG_TCP_IP_CHKSUM_OFFLOAD
1725 WLAN_STATUS
1726 wlanoidSetCSUMOffload (
1727     IN  P_ADAPTER_T prAdapter,
1728     IN  PVOID       pvSetBuffer,
1729     IN  UINT_32     u4SetBufferLen,
1730     OUT PUINT_32    pu4SetInfoLen
1731 );
1732 #endif /* CFG_TCP_IP_CHKSUM_OFFLOAD */
1733
1734 WLAN_STATUS
1735 wlanoidSetNetworkAddress (
1736     IN  P_ADAPTER_T prAdapter,
1737     IN  PVOID       pvSetBuffer,
1738     IN  UINT_32     u4SetBufferLen,
1739     OUT PUINT_32    pu4SetInfoLen
1740     );
1741
1742 WLAN_STATUS
1743 wlanoidQueryMaxFrameSize (
1744     IN  P_ADAPTER_T       prAdapter,
1745     OUT PVOID             pvQueryBuffer,
1746     IN  UINT_32           u4QueryBufferLen,
1747     OUT PUINT_32          pu4QueryInfoLen
1748     );
1749
1750 WLAN_STATUS
1751 wlanoidQueryMaxTotalSize (
1752     IN  P_ADAPTER_T       prAdapter,
1753     OUT PVOID             pvQueryBuffer,
1754     IN  UINT_32           u4QueryBufferLen,
1755     OUT PUINT_32          pu4QueryInfoLen
1756     );
1757
1758 WLAN_STATUS
1759 wlanoidSetCurrentLookahead (
1760     IN  P_ADAPTER_T       prAdapter,
1761     IN  PVOID             pvSetBuffer,
1762     IN  UINT_32           u4SetBufferLen,
1763     OUT PUINT_32          pu4SetInfoLen
1764     );
1765
1766 /* RF Test related APIs */
1767 WLAN_STATUS
1768 wlanoidRftestSetTestMode (
1769     IN  P_ADAPTER_T       prAdapter,
1770     IN  PVOID             pvSetBuffer,
1771     IN  UINT_32           u4SetBufferLen,
1772     OUT PUINT_32          pu4SetInfoLen
1773     );
1774
1775 WLAN_STATUS
1776 wlanoidRftestSetAbortTestMode (
1777     IN  P_ADAPTER_T       prAdapter,
1778     IN  PVOID             pvSetBuffer,
1779     IN  UINT_32           u4SetBufferLen,
1780     OUT PUINT_32          pu4SetInfoLen
1781     );
1782
1783 WLAN_STATUS
1784 wlanoidRftestQueryAutoTest (
1785     IN  P_ADAPTER_T prAdapter,
1786     OUT PVOID       pvQueryBuffer,
1787     IN  UINT_32     u4QueryBufferLen,
1788     OUT PUINT_32    pu4QueryInfoLen
1789     );
1790
1791 WLAN_STATUS
1792 wlanoidRftestSetAutoTest (
1793     IN  P_ADAPTER_T prAdapter,
1794     OUT PVOID       pvSetBuffer,
1795     IN  UINT_32     u4SetBufferLen,
1796     OUT PUINT_32    pu4SetInfoLen
1797     );
1798
1799 #if CFG_SUPPORT_WAPI
1800 WLAN_STATUS
1801 wlanoidSetWapiMode (
1802     IN  P_ADAPTER_T       prAdapter,
1803     IN  PVOID             pvSetBuffer,
1804     IN  UINT_32           u4SetBufferLen,
1805     OUT PUINT_32          pu4SetInfoLen
1806     );
1807
1808 WLAN_STATUS
1809 wlanoidSetWapiAssocInfo (
1810     IN  P_ADAPTER_T       prAdapter,
1811     IN  PVOID             pvSetBuffer,
1812     IN  UINT_32           u4SetBufferLen,
1813     OUT PUINT_32          pu4SetInfoLen
1814     );
1815
1816 WLAN_STATUS
1817 wlanoidSetWapiKey(
1818     IN  P_ADAPTER_T   prAdapter,
1819     IN  PVOID         pvSetBuffer,
1820     IN  UINT_32       u4SetBufferLen,
1821     OUT PUINT_32      pu4SetInfoLen
1822     );
1823 #endif
1824
1825 #if CFG_SUPPORT_WPS2
1826 WLAN_STATUS
1827 wlanoidSetWSCAssocInfo (
1828     IN  P_ADAPTER_T       prAdapter,
1829     IN  PVOID             pvSetBuffer,
1830     IN  UINT_32           u4SetBufferLen,
1831     OUT PUINT_32          pu4SetInfoLen
1832     );
1833 #endif
1834
1835 #if CFG_ENABLE_WAKEUP_ON_LAN
1836 WLAN_STATUS
1837 wlanoidSetAddWakeupPattern (
1838     IN  P_ADAPTER_T   prAdapter,
1839     IN  PVOID         pvSetBuffer,
1840     IN  UINT_32       u4SetBufferLen,
1841     OUT PUINT_32      pu4SetInfoLen
1842     );
1843
1844 WLAN_STATUS
1845 wlanoidSetRemoveWakeupPattern (
1846     IN  P_ADAPTER_T   prAdapter,
1847     IN  PVOID         pvSetBuffer,
1848     IN  UINT_32       u4SetBufferLen,
1849     OUT PUINT_32      pu4SetInfoLen
1850     );
1851
1852 WLAN_STATUS
1853 wlanoidQueryEnableWakeup (
1854     IN  P_ADAPTER_T   prAdapter,
1855     OUT PVOID         pvQueryBuffer,
1856     IN  UINT_32       u4QueryBufferLen,
1857     OUT PUINT_32      u4QueryInfoLen
1858     );
1859
1860 WLAN_STATUS
1861 wlanoidSetEnableWakeup (
1862     IN  P_ADAPTER_T   prAdapter,
1863     IN  PVOID         pvSetBuffer,
1864     IN  UINT_32       u4SetBufferLen,
1865     OUT PUINT_32      pu4SetInfoLen
1866     );
1867 #endif
1868
1869 WLAN_STATUS
1870 wlanoidSetWiFiWmmPsTest (
1871     IN P_ADAPTER_T  prAdapter,
1872     IN  PVOID       pvSetBuffer,
1873     IN  UINT_32     u4SetBufferLen,
1874     OUT PUINT_32    pu4SetInfoLen
1875     );
1876
1877 WLAN_STATUS
1878 wlanoidSetTxAmpdu (
1879     IN P_ADAPTER_T  prAdapter,
1880     IN  PVOID       pvSetBuffer,
1881     IN  UINT_32     u4SetBufferLen,
1882     OUT PUINT_32    pu4SetInfoLen
1883     );
1884
1885 WLAN_STATUS
1886 wlanoidSetAddbaReject(
1887     IN P_ADAPTER_T  prAdapter,
1888     IN  PVOID       pvSetBuffer,
1889     IN  UINT_32     u4SetBufferLen,
1890     OUT PUINT_32    pu4SetInfoLen
1891     );
1892
1893 WLAN_STATUS
1894 wlanoidQueryNvramRead (
1895     IN  P_ADAPTER_T  prAdapter,
1896     OUT PVOID        pvQueryBuffer,
1897     IN  UINT_32      u4QueryBufferLen,
1898     OUT PUINT_32     pu4QueryInfoLen
1899     );
1900
1901 WLAN_STATUS
1902 wlanoidSetNvramWrite (
1903     IN P_ADAPTER_T  prAdapter,
1904     IN  PVOID       pvSetBuffer,
1905     IN  UINT_32     u4SetBufferLen,
1906     OUT PUINT_32    pu4SetInfoLen
1907     );
1908
1909 WLAN_STATUS
1910 wlanoidQueryCfgSrcType(
1911     IN  P_ADAPTER_T prAdapter,
1912     OUT PVOID       pvQueryBuffer,
1913     IN  UINT_32     u4QueryBufferLen,
1914     OUT PUINT_32    pu4QueryInfoLen
1915     );
1916
1917 WLAN_STATUS
1918 wlanoidQueryEepromType(
1919     IN  P_ADAPTER_T       prAdapter,
1920     OUT PVOID             pvQueryBuffer,
1921     IN  UINT_32           u4QueryBufferLen,
1922     OUT PUINT_32          pu4QueryInfoLen
1923     );
1924
1925 WLAN_STATUS
1926 wlanoidSetCountryCode (
1927     IN P_ADAPTER_T  prAdapter,
1928     IN  PVOID       pvSetBuffer,
1929     IN  UINT_32     u4SetBufferLen,
1930     OUT PUINT_32    pu4SetInfoLen
1931     );
1932
1933 WLAN_STATUS
1934 wlanSendMemDumpCmd (
1935     IN P_ADAPTER_T  prAdapter,
1936     IN PVOID        pvQueryBuffer,
1937     IN UINT_32      u4QueryBufferLen
1938     );
1939
1940 #if CFG_SLT_SUPPORT
1941
1942 WLAN_STATUS
1943 wlanoidQuerySLTStatus(
1944     IN  P_ADAPTER_T   prAdapter,
1945     OUT PVOID         pvQueryBuffer,
1946     IN  UINT_32       u4QueryBufferLen,
1947     OUT PUINT_32      pu4QueryInfoLen
1948     );
1949
1950 WLAN_STATUS
1951 wlanoidUpdateSLTMode(
1952     IN P_ADAPTER_T  prAdapter,
1953     IN  PVOID       pvSetBuffer,
1954     IN  UINT_32     u4SetBufferLen,
1955     OUT PUINT_32    pu4SetInfoLen
1956     );
1957
1958 #endif
1959
1960 #if 0
1961 WLAN_STATUS
1962 wlanoidSetNoaParam (
1963     IN  P_ADAPTER_T       prAdapter,
1964     IN  PVOID             pvSetBuffer,
1965     IN  UINT_32           u4SetBufferLen,
1966     OUT PUINT_32          pu4SetInfoLen
1967     );
1968
1969 WLAN_STATUS
1970 wlanoidSetOppPsParam (
1971     IN  P_ADAPTER_T       prAdapter,
1972     IN  PVOID             pvSetBuffer,
1973     IN  UINT_32           u4SetBufferLen,
1974     OUT PUINT_32          pu4SetInfoLen
1975     );
1976
1977 WLAN_STATUS
1978 wlanoidSetUApsdParam (
1979     IN  P_ADAPTER_T       prAdapter,
1980     IN  PVOID             pvSetBuffer,
1981     IN  UINT_32           u4SetBufferLen,
1982     OUT PUINT_32          pu4SetInfoLen
1983     );
1984 #endif
1985
1986 /*----------------------------------------------------------------------------*/
1987 WLAN_STATUS
1988 wlanoidSetBT (
1989     IN  P_ADAPTER_T prAdapter,
1990     IN  PVOID       pvSetBuffer,
1991     IN  UINT_32     u4SetBufferLen,
1992     OUT PUINT_32    pu4SetInfoLen
1993     );
1994
1995 WLAN_STATUS
1996 wlanoidQueryBT (
1997     IN  P_ADAPTER_T prAdapter,
1998     OUT PVOID       pvQueryBuffer,
1999     IN  UINT_32     u4QueryBufferLen,
2000     OUT PUINT_32    pu4QueryInfoLen
2001     );
2002
2003 WLAN_STATUS
2004 wlanoidSetTxPower (
2005     IN  P_ADAPTER_T prAdapter,
2006     IN  PVOID       pvSetBuffer,
2007     IN  UINT_32     u4SetBufferLen,
2008     OUT PUINT_32    pu4SetInfoLen
2009     );
2010
2011 /*
2012 WLAN_STATUS
2013 wlanoidQueryBtSingleAntenna (
2014     IN  P_ADAPTER_T prAdapter,
2015     OUT PVOID       pvQueryBuffer,
2016     IN  UINT_32     u4QueryBufferLen,
2017     OUT PUINT_32    pu4QueryInfoLen
2018     );
2019
2020 WLAN_STATUS
2021 wlanoidSetBtSingleAntenna (
2022     IN  P_ADAPTER_T prAdapter,
2023     IN  PVOID       pvSetBuffer,
2024     IN  UINT_32     u4SetBufferLen,
2025     OUT PUINT_32    pu4SetInfoLen
2026     );
2027
2028 WLAN_STATUS
2029 wlanoidSetPta (
2030     IN  P_ADAPTER_T prAdapter,
2031     IN  PVOID       pvSetBuffer,
2032     IN  UINT_32     u4SetBufferLen,
2033     OUT PUINT_32    pu4SetInfoLen
2034     );
2035
2036 WLAN_STATUS
2037 wlanoidQueryPta (
2038     IN  P_ADAPTER_T prAdapter,
2039     OUT PVOID       pvQueryBuffer,
2040     IN  UINT_32     u4QueryBufferLen,
2041     OUT PUINT_32    pu4QueryInfoLen
2042     );
2043 */
2044
2045 #if CFG_ENABLE_WIFI_DIRECT
2046 WLAN_STATUS
2047 wlanoidSetP2pMode (
2048     IN  P_ADAPTER_T prAdapter,
2049     IN  PVOID       pvSetBuffer,
2050     IN  UINT_32     u4SetBufferLen,
2051     OUT PUINT_32    pu4SetInfoLen
2052     );
2053 #endif
2054
2055 /*******************************************************************************
2056 *                              F U N C T I O N S
2057 ********************************************************************************
2058 */
2059
2060 #endif /* _WLAN_OID_H */
2061