support different wifi bt chip auto compatible
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / mt5931 / 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     PARAM_RSSI                      AvgRssiX8;
472     PARAM_RSSI                      AvgRssi;
473     ENUM_PARAM_NETWORK_TYPE_T       eNetworkTypeInUse;
474     PARAM_802_11_CONFIG_T           rConfiguration;
475     ENUM_PARAM_OP_MODE_T            eOpMode;
476     PARAM_RATES_EX                  rSupportedRates;
477     UINT_32                         u4IELength;
478     UINT_8                          aucIEs[1];
479 } PARAM_BSSID_EX_T, *P_PARAM_BSSID_EX_T;
480
481 /*! hold a table of mac  and  AvgRssiX8*/
482 typedef struct _TABLE_RSSI_ {
483     PARAM_MAC_ADDRESS               arMacAddress;         /*!< BSSID */
484         PARAM_RSSI                      AvgRssiX8;
485         PARAM_RSSI                      AvgRssi;
486 } TABLE_RSSI;
487
488 #define MAX_SCAN_RSSI_NUM 128
489 extern TABLE_RSSI mTABLE_RSSI[MAX_SCAN_RSSI_NUM];
490
491 typedef struct _PARAM_BSSID_LIST_EX {
492     UINT_32                         u4NumberOfItems;      /*!< at least 1 */
493     PARAM_BSSID_EX_T                arBssid[1];
494 } PARAM_BSSID_LIST_EX_T, *P_PARAM_BSSID_LIST_EX_T;
495
496
497 typedef struct _PARAM_WEP_T
498 {
499     UINT_32             u4Length;             /*!< Length of structure */
500     UINT_32             u4KeyIndex;           /*!< 0: pairwise key, others group keys */
501     UINT_32             u4KeyLength;          /*!< Key length in bytes */
502     UINT_8              aucKeyMaterial[32];    /*!< Key content by above setting */
503 } PARAM_WEP_T, *P_PARAM_WEP_T;
504
505 /*! \brief Key mapping of BSSID */
506 typedef struct _PARAM_KEY_T
507 {
508     UINT_32             u4Length;             /*!< Length of structure */
509     UINT_32             u4KeyIndex;           /*!< KeyID */
510     UINT_32             u4KeyLength;          /*!< Key length in bytes */
511     PARAM_MAC_ADDRESS   arBSSID;              /*!< MAC address */
512     PARAM_KEY_RSC       rKeyRSC;
513     UINT_8              aucKeyMaterial[32];    /*!< Key content by above setting */
514 } PARAM_KEY_T, *P_PARAM_KEY_T;
515
516 typedef struct _PARAM_REMOVE_KEY_T
517 {
518     UINT_32             u4Length;             /*!< Length of structure */
519     UINT_32             u4KeyIndex;           /*!< KeyID */
520     PARAM_MAC_ADDRESS   arBSSID;               /*!< MAC address */
521 } PARAM_REMOVE_KEY_T, *P_PARAM_REMOVE_KEY_T;
522
523 #if CFG_SUPPORT_WAPI
524 typedef enum _ENUM_KEY_TYPE {
525     ENUM_WPI_PAIRWISE_KEY = 0,
526     ENUM_WPI_GROUP_KEY
527 } ENUM_KEY_TYPE;
528
529 typedef enum _ENUM_WPI_PROTECT_TYPE
530 {
531     ENUM_WPI_NONE,
532     ENUM_WPI_RX,
533     ENUM_WPI_TX,
534     ENUM_WPI_RX_TX
535 } ENUM_WPI_PROTECT_TYPE;
536
537 typedef struct _PARAM_WPI_KEY_T {
538     ENUM_KEY_TYPE           eKeyType;
539     ENUM_WPI_PROTECT_TYPE   eDirection;
540     UINT_8                  ucKeyID;
541     UINT_8                  aucRsv[3];
542     UINT_8                  aucAddrIndex[12];
543     UINT_32                 u4LenWPIEK;
544     UINT_8                  aucWPIEK[256];
545     UINT_32                 u4LenWPICK;
546     UINT_8                  aucWPICK[256];
547     UINT_8                  aucPN[16];
548 } PARAM_WPI_KEY_T, *P_PARAM_WPI_KEY_T;
549 #endif
550
551
552 typedef enum _PARAM_POWER_MODE
553 {
554     Param_PowerModeCAM,
555     Param_PowerModeMAX_PSP,
556     Param_PowerModeFast_PSP,
557     Param_PowerModeMax                      /* Upper bound, not real case */
558 } PARAM_POWER_MODE, *PPARAM_POWER_MODE;
559
560 typedef enum _PARAM_DEVICE_POWER_STATE
561 {
562     ParamDeviceStateUnspecified = 0,
563     ParamDeviceStateD0,
564     ParamDeviceStateD1,
565     ParamDeviceStateD2,
566     ParamDeviceStateD3,
567     ParamDeviceStateMaximum
568 } PARAM_DEVICE_POWER_STATE, *PPARAM_DEVICE_POWER_STATE;
569
570 #if CFG_SUPPORT_802_11D
571
572 /*! \brief The enumeration definitions for OID_IPN_MULTI_DOMAIN_CAPABILITY */
573 typedef enum _PARAM_MULTI_DOMAIN_CAPABILITY {
574     ParamMultiDomainCapDisabled,
575     ParamMultiDomainCapEnabled
576 } PARAM_MULTI_DOMAIN_CAPABILITY, *P_PARAM_MULTI_DOMAIN_CAPABILITY;
577 #endif
578
579 typedef struct _COUNTRY_STRING_ENTRY {
580     UINT_8  aucCountryCode[2];
581     UINT_8  aucEnvironmentCode[2];
582 } COUNTRY_STRING_ENTRY, *P_COUNTRY_STRING_ENTRY;
583
584 /* Power management related definition and enumerations */
585 #define UAPSD_NONE                              0
586 #define UAPSD_AC0                               (BIT(0) | BIT(4))
587 #define UAPSD_AC1                               (BIT(1) | BIT(5))
588 #define UAPSD_AC2                               (BIT(2) | BIT(6))
589 #define UAPSD_AC3                               (BIT(3) | BIT(7))
590 #define UAPSD_ALL                               (UAPSD_AC0 | UAPSD_AC1 | UAPSD_AC2 | UAPSD_AC3)
591
592 typedef enum _ENUM_POWER_SAVE_PROFILE_T
593 {
594     ENUM_PSP_CONTINUOUS_ACTIVE = 0,
595     ENUM_PSP_CONTINUOUS_POWER_SAVE,
596     ENUM_PSP_FAST_SWITCH,
597     ENUM_PSP_NUM
598 } ENUM_POWER_SAVE_PROFILE_T, *PENUM_POWER_SAVE_PROFILE_T;
599
600
601 /*--------------------------------------------------------------*/
602 /*! \brief Set/Query testing type.                              */
603 /*--------------------------------------------------------------*/
604 typedef struct _PARAM_802_11_TEST_T
605 {
606     UINT_32             u4Length;
607     UINT_32             u4Type;
608     union
609     {
610         PARAM_AUTH_EVENT_T  AuthenticationEvent;
611         PARAM_RSSI          RssiTrigger;
612     } u;
613 } PARAM_802_11_TEST_T, *P_PARAM_802_11_TEST_T;
614
615
616
617 /*--------------------------------------------------------------*/
618 /*! \brief Set/Query authentication and encryption capability.  */
619 /*--------------------------------------------------------------*/
620 typedef struct _PARAM_AUTH_ENCRYPTION_T
621 {
622     ENUM_PARAM_AUTH_MODE_T              eAuthModeSupported;
623     ENUM_PARAM_ENCRYPTION_STATUS_T      eEncryptStatusSupported;
624 } PARAM_AUTH_ENCRYPTION_T, *P_PARAM_AUTH_ENCRYPTION_T;
625
626 typedef struct _PARAM_CAPABILITY_T
627 {
628      UINT_32                  u4Length;
629      UINT_32                  u4Version;
630      UINT_32                  u4NoOfPMKIDs;
631      UINT_32                  u4NoOfAuthEncryptPairsSupported;
632      PARAM_AUTH_ENCRYPTION_T  arAuthenticationEncryptionSupported[1];
633 } PARAM_CAPABILITY_T, *P_PARAM_CAPABILITY_T;
634
635 typedef UINT_8   PARAM_PMKID_VALUE[16];
636
637 typedef struct _PARAM_BSSID_INFO_T
638 {
639     PARAM_MAC_ADDRESS   arBSSID;
640     PARAM_PMKID_VALUE   arPMKID;
641 } PARAM_BSSID_INFO_T, *P_PARAM_BSSID_INFO_T;
642
643 typedef struct _PARAM_PMKID_T
644 {
645     UINT_32             u4Length;
646     UINT_32             u4BSSIDInfoCount;
647     PARAM_BSSID_INFO_T  arBSSIDInfo[1];
648 } PARAM_PMKID_T, *P_PARAM_PMKID_T;
649
650 /*! \brief PMKID candidate lists. */
651 typedef struct _PARAM_PMKID_CANDIDATE_T {
652     PARAM_MAC_ADDRESS   arBSSID;
653     UINT_32             u4Flags;
654 } PARAM_PMKID_CANDIDATE_T, *P_PARAM_PMKID_CANDIDATE_T;
655
656 //#ifdef LINUX
657 typedef struct _PARAM_PMKID_CANDIDATE_LIST_T
658 {
659     UINT_32                   u4Version;            /*!< Version */
660     UINT_32                   u4NumCandidates;      /*!< How many candidates follow */
661     PARAM_PMKID_CANDIDATE_T   arCandidateList[1];
662 } PARAM_PMKID_CANDIDATE_LIST_T, *P_PARAM_PMKID_CANDIDATE_LIST_T;
663 //#endif
664
665 typedef struct _PARAM_CUSTOM_MCR_RW_STRUC_T {
666     UINT_32             u4McrOffset;
667     UINT_32             u4McrData;
668 } PARAM_CUSTOM_MCR_RW_STRUC_T, *P_PARAM_CUSTOM_MCR_RW_STRUC_T;
669
670 typedef struct _PARAM_CUSTOM_MEM_DUMP_STRUC_T {
671     UINT_32     u4Address;
672     UINT_32     u4Length;
673     UINT_32     u4RemainLength;
674     UINT_8      ucFragNum;
675 } PARAM_CUSTOM_MEM_DUMP_STRUC_T, *P_PARAM_CUSTOM_MEM_DUMP_STRUC_T;
676
677
678 typedef struct _PARAM_CUSTOM_SW_CTRL_STRUC_T {
679     UINT_32             u4Id;
680     UINT_32             u4Data;
681 } PARAM_CUSTOM_SW_CTRL_STRUC_T, *P_PARAM_CUSTOM_SW_CTRL_STRUC_T;
682
683
684 typedef struct _PARAM_CUSTOM_EEPROM_RW_STRUC_T {
685     UINT_8              ucEepromMethod; /* For read only read: 1, query size: 0*/
686     UINT_8              ucEepromIndex;
687     UINT_8              reserved;
688     UINT_16            u2EepromData;
689 } PARAM_CUSTOM_EEPROM_RW_STRUC_T, *P_PARAM_CUSTOM_EEPROM_RW_STRUC_T,
690     PARAM_CUSTOM_NVRAM_RW_STRUCT_T, *P_PARAM_CUSTOM_NVRAM_RW_STRUCT_T;
691
692 typedef struct _PARAM_CUSTOM_WMM_PS_TEST_STRUC_T {
693     UINT_8  bmfgApsdEnAc;           /* b0~3: trigger-en AC0~3. b4~7: delivery-en AC0~3 */
694     UINT_8  ucIsEnterPsAtOnce;      /* enter PS immediately without 5 second guard after connected */
695     UINT_8  ucIsDisableUcTrigger;   /* not to trigger UC on beacon TIM is matched (under U-APSD) */
696     UINT_8  reserved;
697 } PARAM_CUSTOM_WMM_PS_TEST_STRUC_T, *P_PARAM_CUSTOM_WMM_PS_TEST_STRUC_T;
698
699 typedef struct _PARAM_CUSTOM_NOA_PARAM_STRUC_T {
700     UINT_32  u4NoaDurationMs;
701     UINT_32  u4NoaIntervalMs;
702     UINT_32  u4NoaCount;
703 } PARAM_CUSTOM_NOA_PARAM_STRUC_T, *P_PARAM_CUSTOM_NOA_PARAM_STRUC_T;
704
705 typedef struct _PARAM_CUSTOM_OPPPS_PARAM_STRUC_T {
706     UINT_32  u4CTwindowMs;
707 } PARAM_CUSTOM_OPPPS_PARAM_STRUC_T, *P_PARAM_CUSTOM_OPPPS_PARAM_STRUC_T;
708
709 typedef struct _PARAM_CUSTOM_UAPSD_PARAM_STRUC_T {
710     UINT_8  fgEnAPSD;
711     UINT_8  fgEnAPSD_AcBe;
712     UINT_8  fgEnAPSD_AcBk;
713     UINT_8  fgEnAPSD_AcVo;
714     UINT_8  fgEnAPSD_AcVi;
715     UINT_8  ucMaxSpLen;
716     UINT_8  aucResv[2];
717 } PARAM_CUSTOM_UAPSD_PARAM_STRUC_T, *P_PARAM_CUSTOM_UAPSD_PARAM_STRUC_T;
718
719 typedef struct _PARAM_CUSTOM_P2P_SET_STRUC_T {
720     UINT_32             u4Enable;
721     UINT_32             u4Mode;
722 } PARAM_CUSTOM_P2P_SET_STRUC_T, *P_PARAM_CUSTOM_P2P_SET_STRUC_T;
723
724 typedef enum _ENUM_CFG_SRC_TYPE_T {
725     CFG_SRC_TYPE_EEPROM,
726     CFG_SRC_TYPE_NVRAM,
727     CFG_SRC_TYPE_UNKNOWN,
728     CFG_SRC_TYPE_NUM
729 } ENUM_CFG_SRC_TYPE_T, *P_ENUM_CFG_SRC_TYPE_T;
730
731 typedef enum _ENUM_EEPROM_TYPE_T {
732     EEPROM_TYPE_NO,
733     EEPROM_TYPE_PRESENT,
734     EEPROM_TYPE_NUM
735 } ENUM_EEPROM_TYPE_T, *P_ENUM_EEPROM_TYPE_T;
736
737 typedef struct _PARAM_QOS_TSINFO {
738     UINT_8           ucTrafficType;         /* Traffic Type: 1 for isochronous 0 for asynchronous */
739     UINT_8           ucTid;                 /* TSID: must be between 8 ~ 15 */
740     UINT_8           ucDirection;           /* direction */
741     UINT_8           ucAccessPolicy;        /* access policy */
742     UINT_8           ucAggregation;         /* aggregation */
743     UINT_8           ucApsd;                /* APSD */
744     UINT_8           ucuserPriority;        /* user priority */
745     UINT_8           ucTsInfoAckPolicy;     /* TSINFO ACK policy */
746     UINT_8           ucSchedule;            /* Schedule */
747 } PARAM_QOS_TSINFO, *P_PARAM_QOS_TSINFO;
748
749 typedef struct _PARAM_QOS_TSPEC {
750     PARAM_QOS_TSINFO rTsInfo;               /* TS info field */
751     UINT_16          u2NominalMSDUSize;     /* nominal MSDU size */
752     UINT_16          u2MaxMSDUsize;         /* maximum MSDU size */
753     UINT_32          u4MinSvcIntv;          /* minimum service interval */
754     UINT_32          u4MaxSvcIntv;          /* maximum service interval */
755     UINT_32          u4InactIntv;           /* inactivity interval */
756     UINT_32          u4SpsIntv;             /* suspension interval */
757     UINT_32          u4SvcStartTime;        /* service start time */
758     UINT_32          u4MinDataRate;         /* minimum Data rate */
759     UINT_32          u4MeanDataRate;        /* mean data rate */
760     UINT_32          u4PeakDataRate;        /* peak data rate */
761     UINT_32          u4MaxBurstSize;        /* maximum burst size */
762     UINT_32          u4DelayBound;          /* delay bound */
763     UINT_32          u4MinPHYRate;          /* minimum PHY rate */
764     UINT_16          u2Sba;                 /* surplus bandwidth allowance */
765     UINT_16          u2MediumTime;          /* medium time */
766 } PARAM_QOS_TSPEC, *P_PARAM_QOS_TSPEC;
767
768 typedef struct _PARAM_QOS_ADDTS_REQ_INFO {
769     PARAM_QOS_TSPEC             rTspec;
770 } PARAM_QOS_ADDTS_REQ_INFO, *P_PARAM_QOS_ADDTS_REQ_INFO;
771
772 typedef struct _PARAM_VOIP_CONFIG {
773     UINT_32         u4VoipTrafficInterval;  /* 0: disable VOIP configuration */
774 } PARAM_VOIP_CONFIG, *P_PARAM_VOIP_CONFIG;
775
776 /*802.11 Statistics Struct*/
777 typedef struct _PARAM_802_11_STATISTICS_STRUCT_T {
778     UINT_32         u4Length;             // Length of structure
779     LARGE_INTEGER   rTransmittedFragmentCount;
780     LARGE_INTEGER   rMulticastTransmittedFrameCount;
781     LARGE_INTEGER   rFailedCount;
782     LARGE_INTEGER   rRetryCount;
783     LARGE_INTEGER   rMultipleRetryCount;
784     LARGE_INTEGER   rRTSSuccessCount;
785     LARGE_INTEGER   rRTSFailureCount;
786     LARGE_INTEGER   rACKFailureCount;
787     LARGE_INTEGER   rFrameDuplicateCount;
788     LARGE_INTEGER   rReceivedFragmentCount;
789     LARGE_INTEGER   rMulticastReceivedFrameCount;
790     LARGE_INTEGER   rFCSErrorCount;
791     LARGE_INTEGER   rTKIPLocalMICFailures;
792     LARGE_INTEGER   rTKIPICVErrors;
793     LARGE_INTEGER   rTKIPCounterMeasuresInvoked;
794     LARGE_INTEGER   rTKIPReplays;
795     LARGE_INTEGER   rCCMPFormatErrors;
796     LARGE_INTEGER   rCCMPReplays;
797     LARGE_INTEGER   rCCMPDecryptErrors;
798     LARGE_INTEGER   rFourWayHandshakeFailures;
799     LARGE_INTEGER   rWEPUndecryptableCount;
800     LARGE_INTEGER   rWEPICVErrorCount;
801     LARGE_INTEGER   rDecryptSuccessCount;
802     LARGE_INTEGER   rDecryptFailureCount;
803 } PARAM_802_11_STATISTICS_STRUCT_T, *P_PARAM_802_11_STATISTICS_STRUCT_T;
804
805 /* Linux Network Device Statistics Struct */
806 typedef struct _PARAM_LINUX_NETDEV_STATISTICS_T {
807     UINT_32         u4RxPackets;
808     UINT_32         u4TxPackets;
809     UINT_32         u4RxBytes;
810     UINT_32         u4TxBytes;
811     UINT_32         u4RxErrors;
812     UINT_32         u4TxErrors;
813     UINT_32         u4Multicast;
814 } PARAM_LINUX_NETDEV_STATISTICS_T, *P_PARAM_LINUX_NETDEV_STATISTICS_T;
815
816
817 typedef struct _PARAM_MTK_WIFI_TEST_STRUC_T {
818     UINT_32                 u4FuncIndex;
819     UINT_32                 u4FuncData;
820 } PARAM_MTK_WIFI_TEST_STRUC_T, *P_PARAM_MTK_WIFI_TEST_STRUC_T;
821
822
823 /* 802.11 Media stream constraints */
824 typedef enum _ENUM_MEDIA_STREAM_MODE {
825     ENUM_MEDIA_STREAM_OFF,
826     ENUM_MEDIA_STREAM_ON
827 } ENUM_MEDIA_STREAM_MODE, *P_ENUM_MEDIA_STREAM_MODE;
828
829 /* for NDIS 5.1 Media Streaming Change */
830 typedef struct _PARAM_MEDIA_STREAMING_INDICATION {
831     PARAM_STATUS_INDICATION_T   rStatus;
832     ENUM_MEDIA_STREAM_MODE      eMediaStreamMode;
833 } PARAM_MEDIA_STREAMING_INDICATION, *P_PARAM_MEDIA_STREAMING_INDICATION;
834
835
836 #define PARAM_PROTOCOL_ID_DEFAULT       0x00
837 #define PARAM_PROTOCOL_ID_TCP_IP        0x02
838 #define PARAM_PROTOCOL_ID_IPX           0x06
839 #define PARAM_PROTOCOL_ID_NBF           0x07
840 #define PARAM_PROTOCOL_ID_MAX           0x0F
841 #define PARAM_PROTOCOL_ID_MASK          0x0F
842
843 /* for NDIS OID_GEN_NETWORK_LAYER_ADDRESSES */
844 typedef struct _PARAM_NETWORK_ADDRESS_IP
845 {
846     UINT_16     sin_port;
847     UINT_32     in_addr;
848     UINT_8      sin_zero[8];
849 } PARAM_NETWORK_ADDRESS_IP, *P_PARAM_NETWORK_ADDRESS_IP;
850
851 typedef struct _PARAM_NETWORK_ADDRESS {
852     UINT_16     u2AddressLength;    // length in bytes of Address[] in this
853     UINT_16     u2AddressType;      // type of this address (PARAM_PROTOCOL_ID_XXX above)
854     UINT_8      aucAddress[1];      // actually AddressLength bytes long
855 } PARAM_NETWORK_ADDRESS, *P_PARAM_NETWORK_ADDRESS;
856
857 // The following is used with OID_GEN_NETWORK_LAYER_ADDRESSES to set network layer addresses on an interface
858
859 typedef struct _PARAM_NETWORK_ADDRESS_LIST
860 {
861     UINT_32                 u4AddressCount;     // number of addresses following
862     UINT_16                 u2AddressType;      // type of this address (NDIS_PROTOCOL_ID_XXX above)
863     PARAM_NETWORK_ADDRESS   arAddress[1];       // actually AddressCount elements long
864 } PARAM_NETWORK_ADDRESS_LIST, *P_PARAM_NETWORK_ADDRESS_LIST;
865
866 #if CFG_SLT_SUPPORT
867
868 #define FIXED_BW_LG20       0x0000
869 #define FIXED_BW_UL20       0x2000
870 #define FIXED_BW_DL40       0x3000
871
872 #define FIXED_EXT_CHNL_U20  0x4000   // For AGG register.
873 #define FIXED_EXT_CHNL_L20  0xC000   // For AGG regsiter.
874
875 typedef enum _ENUM_MTK_LP_TEST_MODE_T {
876     ENUM_MTK_LP_TEST_NORMAL,
877     ENUM_MTK_LP_TEST_GOLDEN_SAMPLE,
878     ENUM_MTK_LP_TEST_DUT,
879     ENUM_MTK_LP_TEST_MODE_NUM
880 } ENUM_MTK_LP_TEST_MODE_T, *P_ENUM_MTK_LP_TEST_MODE_T;
881
882 typedef enum _ENUM_MTK_SLT_FUNC_IDX_T {
883     ENUM_MTK_SLT_FUNC_DO_NOTHING,
884     ENUM_MTK_SLT_FUNC_INITIAL,
885     ENUM_MTK_SLT_FUNC_RATE_SET,
886     ENUM_MTK_SLT_FUNC_LP_SET,
887     ENUM_MTK_SLT_FUNC_NUM
888 } ENUM_MTK_SLT_FUNC_IDX_T, *P_ENUM_MTK_SLT_FUNC_IDX_T;
889
890 typedef struct _PARAM_MTK_SLT_LP_TEST_STRUC_T {
891     ENUM_MTK_LP_TEST_MODE_T rLpTestMode;
892     UINT_32 u4BcnRcvNum;
893 } PARAM_MTK_SLT_LP_TEST_STRUC_T, *P_PARAM_MTK_SLT_LP_TEST_STRUC_T;
894
895 typedef struct _PARAM_MTK_SLT_TR_TEST_STRUC_T {
896     ENUM_PARAM_NETWORK_TYPE_T rNetworkType;         // Network Type OFDM5G or OFDM2.4G
897     UINT_32 u4FixedRate;                                                 // Fixed Rate including BW
898 } PARAM_MTK_SLT_TR_TEST_STRUC_T, *P_PARAM_MTK_SLT_TR_TEST_STRUC_T;
899
900 typedef struct _PARAM_MTK_SLT_INITIAL_STRUC_T {
901     UINT_8 aucTargetMacAddr[PARAM_MAC_ADDR_LEN];
902     UINT_16 u2SiteID;
903 } PARAM_MTK_SLT_INITIAL_STRUC_T, *P_PARAM_MTK_SLT_INITIAL_STRUC_T;
904
905 typedef struct _PARAM_MTK_SLT_TEST_STRUC_T {
906     ENUM_MTK_SLT_FUNC_IDX_T rSltFuncIdx;
907     UINT_32 u4Length;                       /* Length of structure,
908                                                      including myself */
909     UINT_32  u4FuncInfoLen;  /* Include following content
910                                                     field and myself */
911     union {
912         PARAM_MTK_SLT_INITIAL_STRUC_T rMtkInitTest;
913         PARAM_MTK_SLT_LP_TEST_STRUC_T rMtkLpTest;
914         PARAM_MTK_SLT_TR_TEST_STRUC_T rMtkTRTest;
915     } unFuncInfoContent;
916
917 } PARAM_MTK_SLT_TEST_STRUC_T, *P_PARAM_MTK_SLT_TEST_STRUC_T;
918
919 #endif
920
921 /*--------------------------------------------------------------*/
922 /*! \brief For Fixed Rate Configuration (Registry)              */
923 /*--------------------------------------------------------------*/
924 typedef enum _ENUM_REGISTRY_FIXED_RATE_T {
925     FIXED_RATE_NONE,
926     FIXED_RATE_1M,
927     FIXED_RATE_2M,
928     FIXED_RATE_5_5M,
929     FIXED_RATE_11M,
930     FIXED_RATE_6M,
931     FIXED_RATE_9M,
932     FIXED_RATE_12M,
933     FIXED_RATE_18M,
934     FIXED_RATE_24M,
935     FIXED_RATE_36M,
936     FIXED_RATE_48M,
937     FIXED_RATE_54M,
938     FIXED_RATE_MCS0_20M_800NS,
939     FIXED_RATE_MCS1_20M_800NS,
940     FIXED_RATE_MCS2_20M_800NS,
941     FIXED_RATE_MCS3_20M_800NS,
942     FIXED_RATE_MCS4_20M_800NS,
943     FIXED_RATE_MCS5_20M_800NS,
944     FIXED_RATE_MCS6_20M_800NS,
945     FIXED_RATE_MCS7_20M_800NS,
946     FIXED_RATE_MCS0_20M_400NS,
947     FIXED_RATE_MCS1_20M_400NS,
948     FIXED_RATE_MCS2_20M_400NS,
949     FIXED_RATE_MCS3_20M_400NS,
950     FIXED_RATE_MCS4_20M_400NS,
951     FIXED_RATE_MCS5_20M_400NS,
952     FIXED_RATE_MCS6_20M_400NS,
953     FIXED_RATE_MCS7_20M_400NS,
954     FIXED_RATE_MCS0_40M_800NS,
955     FIXED_RATE_MCS1_40M_800NS,
956     FIXED_RATE_MCS2_40M_800NS,
957     FIXED_RATE_MCS3_40M_800NS,
958     FIXED_RATE_MCS4_40M_800NS,
959     FIXED_RATE_MCS5_40M_800NS,
960     FIXED_RATE_MCS6_40M_800NS,
961     FIXED_RATE_MCS7_40M_800NS,
962     FIXED_RATE_MCS32_800NS,
963     FIXED_RATE_MCS0_40M_400NS,
964     FIXED_RATE_MCS1_40M_400NS,
965     FIXED_RATE_MCS2_40M_400NS,
966     FIXED_RATE_MCS3_40M_400NS,
967     FIXED_RATE_MCS4_40M_400NS,
968     FIXED_RATE_MCS5_40M_400NS,
969     FIXED_RATE_MCS6_40M_400NS,
970     FIXED_RATE_MCS7_40M_400NS,
971     FIXED_RATE_MCS32_400NS,
972     FIXED_RATE_NUM
973 } ENUM_REGISTRY_FIXED_RATE_T, *P_ENUM_REGISTRY_FIXED_RATE_T;
974
975 typedef enum _ENUM_BT_CMD_T {
976     BT_CMD_PROFILE = 0,
977     BT_CMD_UPDATE,
978     BT_CMD_NUM
979 } ENUM_BT_CMD_T;
980
981 typedef enum _ENUM_BT_PROFILE_T {
982     BT_PROFILE_CUSTOM = 0,
983     BT_PROFILE_SCO,
984     BT_PROFILE_ACL,
985     BT_PROFILE_MIXED,
986     BT_PROFILE_NO_CONNECTION,
987     BT_PROFILE_NUM
988 } ENUM_BT_PROFILE_T;
989
990 typedef struct _PTA_PROFILE_T {
991     ENUM_BT_PROFILE_T eBtProfile;
992     union {
993         UINT_8 aucBTPParams[BT_PROFILE_PARAM_LEN];
994                                 /*  0: sco reserved slot time,
995                                     1: sco idle slot time,
996                                     2: acl throughput,
997                                     3: bt tx power,
998                                     4: bt rssi
999                                     5: VoIP interval
1000                                     6: BIT(0) Use this field, BIT(1) 0 apply single/ 1 dual PTA setting.
1001                                 */
1002         UINT_32 au4Btcr[4];
1003     } u;
1004 } PTA_PROFILE_T, *P_PTA_PROFILE_T;
1005
1006 typedef struct _PTA_IPC_T {
1007     UINT_8      ucCmd;
1008     UINT_8      ucLen;
1009     union {
1010         PTA_PROFILE_T rProfile;
1011         UINT_8      aucBTPParams[BT_PROFILE_PARAM_LEN];
1012     } u;
1013 } PARAM_PTA_IPC_T, *P_PARAM_PTA_IPC_T, PTA_IPC_T, *P_PTA_IPC_T;
1014
1015 /*--------------------------------------------------------------*/
1016 /*! \brief CFG80211 Scan Request Container                      */
1017 /*--------------------------------------------------------------*/
1018
1019 typedef struct _PARAM_SCAN_REQUEST_EXT_T {
1020     PARAM_SSID_T    rSsid;
1021     UINT_32         u4IELength;
1022     PUINT_8         pucIE;
1023 } PARAM_SCAN_REQUEST_EXT_T, *P_PARAM_SCAN_REQUEST_EXT_T;
1024
1025
1026 /*******************************************************************************
1027 *                            P U B L I C   D A T A
1028 ********************************************************************************
1029 */
1030
1031 /*******************************************************************************
1032 *                           P R I V A T E   D A T A
1033 ********************************************************************************
1034 */
1035
1036 /*******************************************************************************
1037 *                                 M A C R O S
1038 ********************************************************************************
1039 */
1040
1041 /*******************************************************************************
1042 *                   F U N C T I O N   D E C L A R A T I O N S
1043 ********************************************************************************
1044 */
1045 /*--------------------------------------------------------------*/
1046 /* Routines to set parameters or query information.             */
1047 /*--------------------------------------------------------------*/
1048 /***** Routines in wlan_oid.c *****/
1049 WLAN_STATUS
1050 wlanoidQueryNetworkTypesSupported(
1051     IN  P_ADAPTER_T       prAdapter,
1052     OUT PVOID             pvQueryBuffer,
1053     IN  UINT_32           u4QueryBufferLen,
1054     OUT PUINT_32          pu4QueryInfoLen
1055     );
1056
1057 WLAN_STATUS
1058 wlanoidQueryNetworkTypeInUse(
1059     IN  P_ADAPTER_T       prAdapter,
1060     OUT PVOID             pvQueryBuffer,
1061     IN  UINT_32           u4QueryBufferLen,
1062     OUT PUINT_32          pu4QueryInfoLen
1063     );
1064
1065 WLAN_STATUS
1066 wlanoidSetNetworkTypeInUse (
1067     IN  P_ADAPTER_T       prAdapter,
1068     IN  PVOID             pvSetBuffer,
1069     IN  UINT_32           u4SetBufferLen,
1070     OUT PUINT_32          pu4SetInfoLen
1071     );
1072
1073 WLAN_STATUS
1074 wlanoidQueryBssid(
1075     IN  P_ADAPTER_T       prAdapter,
1076     OUT PVOID             pvQueryBuffer,
1077     IN  UINT_32           u4QueryBufferLen,
1078     OUT PUINT_32          pu4QueryInfoLen
1079     );
1080
1081 WLAN_STATUS
1082 wlanoidSetBssidListScan(
1083     IN  P_ADAPTER_T       prAdapter,
1084     IN  PVOID             pvSetBuffer,
1085     IN  UINT_32           u4SetBufferLen,
1086     OUT PUINT_32          pu4SetInfoLen
1087     );
1088
1089 WLAN_STATUS
1090 wlanoidSetBssidListScanExt (
1091     IN  P_ADAPTER_T       prAdapter,
1092     IN  PVOID             pvSetBuffer,
1093     IN  UINT_32           u4SetBufferLen,
1094     OUT PUINT_32          pu4SetInfoLen
1095     );
1096
1097 WLAN_STATUS
1098 wlanoidQueryBssidList(
1099     IN  P_ADAPTER_T       prAdapter,
1100     OUT PVOID             pvQueryBuffer,
1101     IN  UINT_32           u4QueryBufferLen,
1102     OUT PUINT_32          pu4QueryInfoLen
1103     );
1104
1105 WLAN_STATUS
1106 wlanoidSetBssid(
1107     IN  P_ADAPTER_T       prAdapter,
1108     IN  PVOID             pvSetBuffer,
1109     IN  UINT_32           u4SetBufferLen,
1110     OUT PUINT_32          pu4SetInfoLen
1111     );
1112
1113 WLAN_STATUS
1114 wlanoidSetSsid(
1115     IN  P_ADAPTER_T       prAdapter,
1116     IN  PVOID             pvSetBuffer,
1117     IN  UINT_32           u4SetBufferLen,
1118     OUT PUINT_32          pu4SetInfoLen
1119     );
1120
1121 WLAN_STATUS
1122 wlanoidQuerySsid(
1123     IN  P_ADAPTER_T       prAdapter,
1124     OUT PVOID             pvQueryBuffer,
1125     IN  UINT_32           u4QueryBufferLen,
1126     OUT PUINT_32          pu4QueryInfoLen
1127     );
1128
1129 WLAN_STATUS
1130 wlanoidQueryInfrastructureMode(
1131     IN  P_ADAPTER_T       prAdapter,
1132     OUT PVOID             pvQueryBuffer,
1133     IN  UINT_32           u4QueryBufferLen,
1134     OUT PUINT_32          pu4QueryInfoLen
1135     );
1136
1137 WLAN_STATUS
1138 wlanoidSetInfrastructureMode(
1139     IN  P_ADAPTER_T       prAdapter,
1140     IN  PVOID             pvSetBuffer,
1141     IN  UINT_32           u4SetBufferLen,
1142     OUT PUINT_32          pu4SetInfoLen
1143     );
1144
1145 WLAN_STATUS
1146 wlanoidQueryAuthMode(
1147     IN  P_ADAPTER_T       prAdapter,
1148     OUT PVOID             pvQueryBuffer,
1149     IN  UINT_32           u4QueryBufferLen,
1150     OUT PUINT_32          pu4QueryInfoLen
1151     );
1152
1153 WLAN_STATUS
1154 wlanoidSetAuthMode(
1155     IN  P_ADAPTER_T       prAdapter,
1156     IN  PVOID             pvSetBuffer,
1157     IN  UINT_32           u4SetBufferLen,
1158     OUT PUINT_32          pu4SetInfoLen
1159     );
1160
1161 #if 0
1162 WLAN_STATUS
1163 wlanoidQueryPrivacyFilter (
1164     IN  P_ADAPTER_T       prAdapter,
1165     OUT PVOID             pvQueryBuffer,
1166     IN  UINT_32           u4QueryBufferLen,
1167     OUT PUINT_32          pu4QueryInfoLen
1168     );
1169
1170
1171 WLAN_STATUS
1172 wlanoidSetPrivacyFilter (
1173     IN  P_ADAPTER_T       prAdapter,
1174     IN  PVOID             pvSetBuffer,
1175     IN  UINT_32           u4SetBufferLen,
1176     OUT PUINT_32          pu4SetInfoLen
1177     );
1178 #endif
1179
1180 WLAN_STATUS
1181 wlanoidSetEncryptionStatus(
1182     IN  P_ADAPTER_T       prAdapter,
1183     IN  PVOID             pvSetBuffer,
1184     IN  UINT_32           u4SetBufferLen,
1185     OUT PUINT_32          pu4SetInfoLen
1186     );
1187
1188 WLAN_STATUS
1189 wlanoidQueryEncryptionStatus(
1190     IN  P_ADAPTER_T       prAdapter,
1191     IN  PVOID             pvQueryBuffer,
1192     IN  UINT_32           u4QueryBufferLen,
1193     OUT PUINT_32          pu4QueryInfoLen
1194     );
1195
1196 WLAN_STATUS
1197 wlanoidSetAddWep(
1198     IN  P_ADAPTER_T       prAdapter,
1199     IN  PVOID    pvSetBuffer,
1200     IN  UINT_32  u4SetBufferLen,
1201     OUT PUINT_32 pu4SetInfoLen
1202     );
1203
1204 WLAN_STATUS
1205 wlanoidSetRemoveWep(
1206     IN  P_ADAPTER_T       prAdapter,
1207     IN  PVOID             pvSetBuffer,
1208     IN  UINT_32           u4SetBufferLen,
1209     OUT PUINT_32          pu4SetInfoLen
1210     );
1211
1212 WLAN_STATUS
1213 wlanoidSetAddKey(
1214     IN  P_ADAPTER_T       prAdapter,
1215     IN  PVOID             pvSetBuffer,
1216     IN  UINT_32           u4SetBufferLen,
1217     OUT PUINT_32          pu4SetInfoLen
1218     );
1219
1220 WLAN_STATUS
1221 wlanoidSetRemoveKey(
1222     IN  P_ADAPTER_T       prAdapter,
1223     IN  PVOID    pvSetBuffer,
1224     IN  UINT_32  u4SetBufferLen,
1225     OUT PUINT_32 pu4SetInfoLen
1226     );
1227
1228 WLAN_STATUS
1229 wlanoidSetReloadDefaults(
1230     IN  P_ADAPTER_T       prAdapter,
1231     IN  PVOID             pvSetBuffer,
1232     IN  UINT_32           u4SetBufferLen,
1233     OUT PUINT_32          pu4SetInfoLen
1234     );
1235
1236 WLAN_STATUS
1237 wlanoidSetTest(
1238     IN  P_ADAPTER_T       prAdapter,
1239     IN  PVOID             pvSetBuffer,
1240     IN  UINT_32           u4SetBufferLen,
1241     OUT PUINT_32          pu4SetInfoLen
1242     );
1243
1244 WLAN_STATUS
1245 wlanoidQueryCapability(
1246     IN  P_ADAPTER_T       prAdapter,
1247     OUT PVOID             pvQueryBuffer,
1248     IN  UINT_32           u4QueryBufferLen,
1249     OUT PUINT_32          pu4QueryInfoLen
1250     );
1251
1252 WLAN_STATUS
1253 wlanoidQueryFrequency (
1254     IN  P_ADAPTER_T prAdapter,
1255     OUT PVOID       pvQueryBuffer,
1256     IN  UINT_32     u4QueryBufferLen,
1257     OUT PUINT_32    pu4QueryInfoLen
1258     );
1259
1260 WLAN_STATUS
1261 wlanoidSetFrequency (
1262     IN  P_ADAPTER_T       prAdapter,
1263     IN  PVOID             pvSetBuffer,
1264     IN  UINT_32           u4SetBufferLen,
1265     OUT PUINT_32          pu4SetInfoLen
1266     );
1267
1268
1269 WLAN_STATUS
1270 wlanoidQueryAtimWindow (
1271     IN  P_ADAPTER_T prAdapter,
1272     OUT PVOID       pvQueryBuffer,
1273     IN  UINT_32     u4QueryBufferLen,
1274     OUT PUINT_32    pu4QueryInfoLen
1275     );
1276
1277 WLAN_STATUS
1278 wlanoidSetAtimWindow (
1279     IN  P_ADAPTER_T       prAdapter,
1280     IN  PVOID             pvSetBuffer,
1281     IN  UINT_32           u4SetBufferLen,
1282     OUT PUINT_32          pu4SetInfoLen
1283     );
1284
1285
1286 WLAN_STATUS
1287 wlanoidSetChannel (
1288     IN  P_ADAPTER_T       prAdapter,
1289     IN  PVOID             pvSetBuffer,
1290     IN  UINT_32           u4SetBufferLen,
1291     OUT PUINT_32          pu4SetInfoLen
1292     );
1293
1294 WLAN_STATUS
1295 wlanoidQueryRssi(
1296     IN  P_ADAPTER_T       prAdapter,
1297     OUT PVOID             pvQueryBuffer,
1298     IN  UINT_32           u4QueryBufferLen,
1299     OUT PUINT_32          pu4QueryInfoLen
1300     );
1301
1302 WLAN_STATUS
1303 wlanoidQueryRssiTrigger(
1304     IN  P_ADAPTER_T       prAdapter,
1305     OUT PVOID             pvQueryBuffer,
1306     IN  UINT_32           u4QueryBufferLen,
1307     OUT PUINT_32          pu4QueryInfoLen
1308     );
1309
1310 WLAN_STATUS
1311 wlanoidSetRssiTrigger(
1312     IN  P_ADAPTER_T       prAdapter,
1313     IN  PVOID             pvSetBuffer,
1314     IN  UINT_32           u4SetBufferLen,
1315     OUT PUINT_32          pu4SetInfoLen
1316     );
1317
1318 WLAN_STATUS
1319 wlanoidQueryRtsThreshold (
1320     IN  P_ADAPTER_T prAdapter,
1321     OUT PVOID       pvQueryBuffer,
1322     IN  UINT_32     u4QueryBufferLen,
1323     OUT PUINT_32    pu4QueryInfoLen
1324     );
1325
1326 WLAN_STATUS
1327 wlanoidSetRtsThreshold (
1328     IN  P_ADAPTER_T prAdapter,
1329     IN  PVOID       pvSetBuffer,
1330     IN  UINT_32     u4SetBufferLen,
1331     OUT PUINT_32    pu4SetInfoLen
1332     );
1333
1334 WLAN_STATUS
1335 wlanoidQuery802dot11PowerSaveProfile (
1336     IN  P_ADAPTER_T prAdapter,
1337     IN  PVOID       pvQueryBuffer,
1338     IN  UINT_32     u4QueryBufferLen,
1339     OUT PUINT_32    pu4QueryInfoLen
1340     );
1341
1342 WLAN_STATUS
1343 wlanoidSet802dot11PowerSaveProfile (
1344     IN  P_ADAPTER_T prAdapter,
1345     IN  PVOID       prSetBuffer,
1346     IN  UINT_32     u4SetBufferLen,
1347     OUT PUINT_32    pu4SetInfoLen
1348     );
1349
1350 WLAN_STATUS
1351 wlanoidQueryPmkid(
1352     IN  P_ADAPTER_T       prAdapter,
1353     OUT PVOID             pvQueryBuffer,
1354     IN  UINT_32           u4QueryBufferLen,
1355     OUT PUINT_32          pu4QueryInfoLen
1356     );
1357
1358 WLAN_STATUS
1359 wlanoidSetPmkid(
1360     IN  P_ADAPTER_T       prAdapter,
1361     IN  PVOID             pvSetBuffer,
1362     IN  UINT_32           u4SetBufferLen,
1363     OUT PUINT_32          pu4SetInfoLen
1364     );
1365
1366 WLAN_STATUS
1367 wlanoidQuerySupportedRates(
1368     IN  P_ADAPTER_T       prAdapter,
1369     OUT PVOID             pvQueryBuffer,
1370     IN  UINT_32           u4QueryBufferLen,
1371     OUT PUINT_32          pu4QueryInfoLen
1372     );
1373
1374 WLAN_STATUS
1375 wlanoidQueryDesiredRates (
1376     IN  P_ADAPTER_T prAdapter,
1377     OUT PVOID       pvQueryBuffer,
1378     IN  UINT_32     u4QueryBufferLen,
1379     OUT PUINT_32    pu4QueryInfoLen
1380     );
1381
1382 WLAN_STATUS
1383 wlanoidSetDesiredRates (
1384     IN  P_ADAPTER_T       prAdapter,
1385     IN  PVOID             pvSetBuffer,
1386     IN  UINT_32           u4SetBufferLen,
1387     OUT PUINT_32          pu4SetInfoLen
1388     );
1389
1390 WLAN_STATUS
1391 wlanoidQueryPermanentAddr (
1392     IN P_ADAPTER_T  prAdapter,
1393     IN  PVOID    pvQueryBuf,
1394     IN  UINT_32  u4QueryBufLen,
1395     OUT PUINT_32 pu4QueryInfoLen
1396     );
1397
1398 WLAN_STATUS
1399 wlanoidQueryCurrentAddr (
1400     IN P_ADAPTER_T  prAdapter,
1401     IN  PVOID    pvQueryBuf,
1402     IN  UINT_32  u4QueryBufLen,
1403     OUT PUINT_32 pu4QueryInfoLen
1404     );
1405
1406 WLAN_STATUS
1407 wlanoidQueryPermanentAddr (
1408     IN P_ADAPTER_T  prAdapter,
1409     IN  PVOID    pvQueryBuf,
1410     IN  UINT_32  u4QueryBufLen,
1411     OUT PUINT_32 pu4QueryInfoLen
1412     );
1413
1414 WLAN_STATUS
1415 wlanoidQueryLinkSpeed(
1416     IN P_ADAPTER_T  prAdapter,
1417     IN  PVOID    pvQueryBuffer,
1418     IN  UINT_32  u4QueryBufferLen,
1419     OUT PUINT_32 pu4QueryInfoLen
1420     );
1421
1422 WLAN_STATUS
1423 wlanoidQueryMcrRead (
1424     IN P_ADAPTER_T  prAdapter,
1425     IN  PVOID    pvQueryBuffer,
1426     IN  UINT_32  u4QueryBufferLen,
1427     OUT PUINT_32 pu4QueryInfoLen
1428     );
1429
1430 WLAN_STATUS
1431 wlanoidQueryMemDump (
1432     IN P_ADAPTER_T  prAdapter,
1433     IN  PVOID    pvQueryBuffer,
1434     IN  UINT_32  u4QueryBufferLen,
1435     OUT PUINT_32 pu4QueryInfoLen
1436     );
1437
1438 WLAN_STATUS
1439 wlanoidSetMcrWrite (
1440     IN P_ADAPTER_T  prAdapter,
1441     IN  PVOID    pvSetBuffer,
1442     IN  UINT_32  u4SetBufferLen,
1443     OUT PUINT_32 pu4SetInfoLen
1444     );
1445
1446
1447 WLAN_STATUS
1448 wlanoidQuerySwCtrlRead (
1449     IN P_ADAPTER_T  prAdapter,
1450     IN  PVOID    pvQueryBuffer,
1451     IN  UINT_32  u4QueryBufferLen,
1452     OUT PUINT_32 pu4QueryInfoLen
1453     );
1454
1455 WLAN_STATUS
1456 wlanoidSetSwCtrlWrite (
1457     IN P_ADAPTER_T  prAdapter,
1458     IN  PVOID    pvSetBuffer,
1459     IN  UINT_32  u4SetBufferLen,
1460     OUT PUINT_32 pu4SetInfoLen
1461     );
1462
1463
1464 WLAN_STATUS
1465 wlanoidQueryEepromRead (
1466     IN  P_ADAPTER_T  prAdapter,
1467     IN  PVOID        pvQueryBuffer,
1468     IN  UINT_32      u4QueryBufferLen,
1469     OUT PUINT_32     pu4QueryInfoLen
1470     );
1471
1472 WLAN_STATUS
1473 wlanoidSetEepromWrite (
1474     IN P_ADAPTER_T  prAdapter,
1475     IN  PVOID       pvSetBuffer,
1476     IN  UINT_32     u4SetBufferLen,
1477     OUT PUINT_32    pu4SetInfoLen
1478     );
1479
1480 WLAN_STATUS
1481 wlanoidQueryRfTestRxStatus (
1482     IN  P_ADAPTER_T  prAdapter,
1483     IN  PVOID        pvQueryBuffer,
1484     IN  UINT_32      u4QueryBufferLen,
1485     OUT PUINT_32     pu4QueryInfoLen
1486     );
1487
1488 WLAN_STATUS
1489 wlanoidQueryRfTestTxStatus (
1490     IN  P_ADAPTER_T  prAdapter,
1491     IN  PVOID        pvQueryBuffer,
1492     IN  UINT_32      u4QueryBufferLen,
1493     OUT PUINT_32     pu4QueryInfoLen
1494     );
1495
1496 WLAN_STATUS
1497 wlanoidQueryOidInterfaceVersion (
1498     IN P_ADAPTER_T  prAdapter,
1499     IN  PVOID    pvQueryBuffer,
1500     IN  UINT_32  u4QueryBufferLen,
1501     OUT PUINT_32 pu4QueryInfoLen
1502     );
1503
1504 WLAN_STATUS
1505 wlanoidQueryVendorId(
1506     IN  P_ADAPTER_T       prAdapter,
1507     OUT PVOID             pvQueryBuffer,
1508     IN  UINT_32           u4QueryBufferLen,
1509     OUT PUINT_32          pu4QueryInfoLen
1510     );
1511
1512 WLAN_STATUS
1513 wlanoidQueryMulticastList(
1514     IN  P_ADAPTER_T prAdapter,
1515     OUT PVOID       pvQueryBuffer,
1516     IN  UINT_32     u4QueryBufferLen,
1517     OUT PUINT_32    pu4QueryInfoLen
1518     );
1519
1520 WLAN_STATUS
1521 wlanoidSetMulticastList(
1522     IN  P_ADAPTER_T prAdapter,
1523     IN  PVOID       pvSetBuffer,
1524     IN  UINT_32     u4SetBufferLen,
1525     OUT PUINT_32    pu4SetInfoLen
1526     );
1527
1528 WLAN_STATUS
1529 wlanoidQueryRcvError (
1530     IN  P_ADAPTER_T     prAdapter,
1531     IN  PVOID           pvQueryBuffer,
1532     IN  UINT_32         u4QueryBufferLen,
1533     OUT PUINT_32        pu4QueryInfoLen
1534     );
1535
1536 WLAN_STATUS
1537 wlanoidQueryRcvNoBuffer (
1538     IN  P_ADAPTER_T       prAdapter,
1539     IN  PVOID             pvQueryBuffer,
1540     IN  UINT_32           u4QueryBufferLen,
1541     OUT PUINT_32          pu4QueryInfoLen
1542     );
1543
1544 WLAN_STATUS
1545 wlanoidQueryRcvCrcError (
1546     IN  P_ADAPTER_T       prAdapter,
1547     IN  PVOID             pvQueryBuffer,
1548     IN  UINT_32           u4QueryBufferLen,
1549     OUT PUINT_32          pu4QueryInfoLen
1550     );
1551
1552 WLAN_STATUS
1553 wlanoidQueryStatistics (
1554     IN  P_ADAPTER_T     prAdapter,
1555     IN  PVOID           pvQueryBuffer,
1556     IN  UINT_32         u4QueryBufferLen,
1557     OUT PUINT_32        pu4QueryInfoLen
1558     );
1559
1560 #ifdef LINUX
1561
1562 WLAN_STATUS
1563 wlanoidQueryStatisticsForLinux (
1564     IN  P_ADAPTER_T     prAdapter,
1565     IN  PVOID           pvQueryBuffer,
1566     IN  UINT_32         u4QueryBufferLen,
1567     OUT PUINT_32        pu4QueryInfoLen
1568     );
1569
1570 #endif
1571
1572 WLAN_STATUS
1573 wlanoidQueryMediaStreamMode(
1574     IN  P_ADAPTER_T     prAdapter,
1575     IN  PVOID           pvQueryBuffer,
1576     IN  UINT_32         u4QueryBufferLen,
1577     OUT PUINT_32        pu4QueryInfoLen
1578     );
1579
1580 WLAN_STATUS
1581 wlanoidSetMediaStreamMode(
1582     IN  P_ADAPTER_T prAdapter,
1583     IN  PVOID       pvSetBuffer,
1584     IN  UINT_32     u4SetBufferLen,
1585     OUT PUINT_32    pu4SetInfoLen
1586     );
1587
1588 WLAN_STATUS
1589 wlanoidQueryRcvOk(
1590     IN P_ADAPTER_T  prAdapter,
1591     IN  PVOID           pvQueryBuffer,
1592     IN  UINT_32         u4QueryBufferLen,
1593     OUT PUINT_32        pu4QueryInfoLen
1594     );
1595
1596 WLAN_STATUS
1597 wlanoidQueryXmitOk(
1598     IN P_ADAPTER_T  prAdapter,
1599     IN  PVOID       pvQueryBuffer,
1600     IN  UINT_32     u4QueryBufferLen,
1601     OUT PUINT_32    pu4QueryInfoLen
1602     );
1603
1604 WLAN_STATUS
1605 wlanoidQueryXmitError (
1606     IN  P_ADAPTER_T       prAdapter,
1607     IN  PVOID           pvQueryBuffer,
1608     IN  UINT_32         u4QueryBufferLen,
1609     OUT PUINT_32          pu4QueryInfoLen
1610     );
1611
1612 WLAN_STATUS
1613 wlanoidQueryXmitOneCollision (
1614     IN  P_ADAPTER_T       prAdapter,
1615     IN  PVOID           pvQueryBuffer,
1616     IN  UINT_32         u4QueryBufferLen,
1617     OUT PUINT_32          pu4QueryInfoLen
1618     );
1619
1620 WLAN_STATUS
1621 wlanoidQueryXmitMoreCollisions (
1622     IN  P_ADAPTER_T       prAdapter,
1623     IN  PVOID           pvQueryBuffer,
1624     IN  UINT_32         u4QueryBufferLen,
1625     OUT PUINT_32          pu4QueryInfoLen
1626     );
1627
1628 WLAN_STATUS
1629 wlanoidQueryXmitMaxCollisions (
1630     IN  P_ADAPTER_T       prAdapter,
1631     IN   PVOID           pvQueryBuffer,
1632     IN   UINT_32         u4QueryBufferLen,
1633     OUT PUINT_32          pu4QueryInfoLen
1634     );
1635
1636
1637 WLAN_STATUS
1638 wlanoidSetCurrentPacketFilter(
1639     IN P_ADAPTER_T  prAdapter,
1640     IN  PVOID    pvSetBuffer,
1641     IN  UINT_32  u4SetBufferLen,
1642     OUT PUINT_32 pu4SetInfoLen
1643     );
1644
1645 WLAN_STATUS
1646 wlanoidQueryCurrentPacketFilter (
1647     IN P_ADAPTER_T prAdapter,
1648     IN  PVOID      pvQueryBuffer,
1649     IN  UINT_32    u4QueryBufferLen,
1650     OUT PUINT_32   pu4QueryInfoLen
1651     );
1652
1653
1654 WLAN_STATUS
1655 wlanoidSetAcpiDevicePowerState (
1656     IN P_ADAPTER_T prAdapter,
1657     IN  PVOID    pvSetBuffer,
1658     IN  UINT_32  u4SetBufferLen,
1659     OUT PUINT_32 pu4SetInfoLen
1660     );
1661
1662 WLAN_STATUS
1663 wlanoidQueryAcpiDevicePowerState (
1664     IN P_ADAPTER_T prAdapter,
1665     IN  PVOID       pvQueryBuffer,
1666     IN  UINT_32     u4QueryBufferLen,
1667     OUT PUINT_32    pu4QueryInfoLen
1668     );
1669
1670
1671 WLAN_STATUS
1672 wlanoidSetDisassociate (
1673     IN P_ADAPTER_T        prAdapter,
1674     IN  PVOID             pvSetBuffer,
1675     IN  UINT_32           u4SetBufferLen,
1676     OUT PUINT_32          pu4SetInfoLen
1677     );
1678
1679 WLAN_STATUS
1680 wlanoidQueryFragThreshold (
1681     IN  P_ADAPTER_T prAdapter,
1682     OUT PVOID       pvQueryBuffer,
1683     IN  UINT_32     u4QueryBufferLen,
1684     OUT PUINT_32    pu4QueryInfoLen
1685     );
1686
1687 WLAN_STATUS
1688 wlanoidSetFragThreshold (
1689     IN  P_ADAPTER_T prAdapter,
1690     IN  PVOID       pvSetBuffer,
1691     IN  UINT_32     u4SetBufferLen,
1692     OUT PUINT_32    pu4SetInfoLen
1693     );
1694
1695
1696 WLAN_STATUS
1697 wlanoidQueryAdHocMode (
1698     IN  P_ADAPTER_T prAdapter,
1699     OUT PVOID       pvQueryBuffer,
1700     IN  UINT_32     u4QueryBufferLen,
1701     OUT PUINT_32    pu4QueryInfoLen
1702     );
1703
1704 WLAN_STATUS
1705 wlanoidSetAdHocMode (
1706     IN  P_ADAPTER_T prAdapter,
1707     IN  PVOID       pvSetBuffer,
1708     IN  UINT_32     u4SetBufferLen,
1709     OUT PUINT_32    pu4SetInfoLen
1710     );
1711
1712 WLAN_STATUS
1713 wlanoidQueryBeaconInterval (
1714     IN  P_ADAPTER_T prAdapter,
1715     OUT PVOID       pvQueryBuffer,
1716     IN  UINT_32     u4QueryBufferLen,
1717     OUT PUINT_32    pu4QueryInfoLen
1718     );
1719
1720 WLAN_STATUS
1721 wlanoidSetBeaconInterval (
1722     IN  P_ADAPTER_T prAdapter,
1723     IN  PVOID       pvSetBuffer,
1724     IN  UINT_32     u4SetBufferLen,
1725     OUT PUINT_32    pu4SetInfoLen
1726     );
1727
1728 WLAN_STATUS
1729 wlanoidSetCurrentAddr (
1730     IN  P_ADAPTER_T prAdapter,
1731     IN  PVOID       pvSetBuffer,
1732     IN  UINT_32     u4SetBufferLen,
1733     OUT PUINT_32    pu4SetInfoLen
1734     );
1735
1736 #if CFG_TCP_IP_CHKSUM_OFFLOAD
1737 WLAN_STATUS
1738 wlanoidSetCSUMOffload (
1739     IN  P_ADAPTER_T prAdapter,
1740     IN  PVOID       pvSetBuffer,
1741     IN  UINT_32     u4SetBufferLen,
1742     OUT PUINT_32    pu4SetInfoLen
1743 );
1744 #endif /* CFG_TCP_IP_CHKSUM_OFFLOAD */
1745
1746 WLAN_STATUS
1747 wlanoidSetNetworkAddress (
1748     IN  P_ADAPTER_T prAdapter,
1749     IN  PVOID       pvSetBuffer,
1750     IN  UINT_32     u4SetBufferLen,
1751     OUT PUINT_32    pu4SetInfoLen
1752     );
1753
1754 WLAN_STATUS
1755 wlanoidQueryMaxFrameSize (
1756     IN  P_ADAPTER_T       prAdapter,
1757     OUT PVOID             pvQueryBuffer,
1758     IN  UINT_32           u4QueryBufferLen,
1759     OUT PUINT_32          pu4QueryInfoLen
1760     );
1761
1762 WLAN_STATUS
1763 wlanoidQueryMaxTotalSize (
1764     IN  P_ADAPTER_T       prAdapter,
1765     OUT PVOID             pvQueryBuffer,
1766     IN  UINT_32           u4QueryBufferLen,
1767     OUT PUINT_32          pu4QueryInfoLen
1768     );
1769
1770 WLAN_STATUS
1771 wlanoidSetCurrentLookahead (
1772     IN  P_ADAPTER_T       prAdapter,
1773     IN  PVOID             pvSetBuffer,
1774     IN  UINT_32           u4SetBufferLen,
1775     OUT PUINT_32          pu4SetInfoLen
1776     );
1777
1778 /* RF Test related APIs */
1779 WLAN_STATUS
1780 wlanoidRftestSetTestMode (
1781     IN  P_ADAPTER_T       prAdapter,
1782     IN  PVOID             pvSetBuffer,
1783     IN  UINT_32           u4SetBufferLen,
1784     OUT PUINT_32          pu4SetInfoLen
1785     );
1786
1787 WLAN_STATUS
1788 wlanoidRftestSetAbortTestMode (
1789     IN  P_ADAPTER_T       prAdapter,
1790     IN  PVOID             pvSetBuffer,
1791     IN  UINT_32           u4SetBufferLen,
1792     OUT PUINT_32          pu4SetInfoLen
1793     );
1794
1795 WLAN_STATUS
1796 wlanoidRftestQueryAutoTest (
1797     IN  P_ADAPTER_T prAdapter,
1798     OUT PVOID       pvQueryBuffer,
1799     IN  UINT_32     u4QueryBufferLen,
1800     OUT PUINT_32    pu4QueryInfoLen
1801     );
1802
1803 WLAN_STATUS
1804 wlanoidRftestSetAutoTest (
1805     IN  P_ADAPTER_T prAdapter,
1806     OUT PVOID       pvSetBuffer,
1807     IN  UINT_32     u4SetBufferLen,
1808     OUT PUINT_32    pu4SetInfoLen
1809     );
1810
1811 #if CFG_SUPPORT_WAPI
1812 WLAN_STATUS
1813 wlanoidSetWapiMode (
1814     IN  P_ADAPTER_T       prAdapter,
1815     IN  PVOID             pvSetBuffer,
1816     IN  UINT_32           u4SetBufferLen,
1817     OUT PUINT_32          pu4SetInfoLen
1818     );
1819
1820 WLAN_STATUS
1821 wlanoidSetWapiAssocInfo (
1822     IN  P_ADAPTER_T       prAdapter,
1823     IN  PVOID             pvSetBuffer,
1824     IN  UINT_32           u4SetBufferLen,
1825     OUT PUINT_32          pu4SetInfoLen
1826     );
1827
1828 WLAN_STATUS
1829 wlanoidSetWapiKey(
1830     IN  P_ADAPTER_T   prAdapter,
1831     IN  PVOID         pvSetBuffer,
1832     IN  UINT_32       u4SetBufferLen,
1833     OUT PUINT_32      pu4SetInfoLen
1834     );
1835 #endif
1836
1837 #if CFG_SUPPORT_WPS2
1838 WLAN_STATUS
1839 wlanoidSetWSCAssocInfo (
1840     IN  P_ADAPTER_T       prAdapter,
1841     IN  PVOID             pvSetBuffer,
1842     IN  UINT_32           u4SetBufferLen,
1843     OUT PUINT_32          pu4SetInfoLen
1844     );
1845 #endif
1846
1847 #if CFG_ENABLE_WAKEUP_ON_LAN
1848 WLAN_STATUS
1849 wlanoidSetAddWakeupPattern (
1850     IN  P_ADAPTER_T   prAdapter,
1851     IN  PVOID         pvSetBuffer,
1852     IN  UINT_32       u4SetBufferLen,
1853     OUT PUINT_32      pu4SetInfoLen
1854     );
1855
1856 WLAN_STATUS
1857 wlanoidSetRemoveWakeupPattern (
1858     IN  P_ADAPTER_T   prAdapter,
1859     IN  PVOID         pvSetBuffer,
1860     IN  UINT_32       u4SetBufferLen,
1861     OUT PUINT_32      pu4SetInfoLen
1862     );
1863
1864 WLAN_STATUS
1865 wlanoidQueryEnableWakeup (
1866     IN  P_ADAPTER_T   prAdapter,
1867     OUT PVOID         pvQueryBuffer,
1868     IN  UINT_32       u4QueryBufferLen,
1869     OUT PUINT_32      u4QueryInfoLen
1870     );
1871
1872 WLAN_STATUS
1873 wlanoidSetEnableWakeup (
1874     IN  P_ADAPTER_T   prAdapter,
1875     IN  PVOID         pvSetBuffer,
1876     IN  UINT_32       u4SetBufferLen,
1877     OUT PUINT_32      pu4SetInfoLen
1878     );
1879 #endif
1880
1881 WLAN_STATUS
1882 wlanoidSetWiFiWmmPsTest (
1883     IN P_ADAPTER_T  prAdapter,
1884     IN  PVOID       pvSetBuffer,
1885     IN  UINT_32     u4SetBufferLen,
1886     OUT PUINT_32    pu4SetInfoLen
1887     );
1888
1889 WLAN_STATUS
1890 wlanoidSetTxAmpdu (
1891     IN P_ADAPTER_T  prAdapter,
1892     IN  PVOID       pvSetBuffer,
1893     IN  UINT_32     u4SetBufferLen,
1894     OUT PUINT_32    pu4SetInfoLen
1895     );
1896
1897 WLAN_STATUS
1898 wlanoidSetAddbaReject(
1899     IN P_ADAPTER_T  prAdapter,
1900     IN  PVOID       pvSetBuffer,
1901     IN  UINT_32     u4SetBufferLen,
1902     OUT PUINT_32    pu4SetInfoLen
1903     );
1904
1905 WLAN_STATUS
1906 wlanoidQueryNvramRead (
1907     IN  P_ADAPTER_T  prAdapter,
1908     OUT PVOID        pvQueryBuffer,
1909     IN  UINT_32      u4QueryBufferLen,
1910     OUT PUINT_32     pu4QueryInfoLen
1911     );
1912
1913 WLAN_STATUS
1914 wlanoidSetNvramWrite (
1915     IN P_ADAPTER_T  prAdapter,
1916     IN  PVOID       pvSetBuffer,
1917     IN  UINT_32     u4SetBufferLen,
1918     OUT PUINT_32    pu4SetInfoLen
1919     );
1920
1921 WLAN_STATUS
1922 wlanoidQueryCfgSrcType(
1923     IN  P_ADAPTER_T prAdapter,
1924     OUT PVOID       pvQueryBuffer,
1925     IN  UINT_32     u4QueryBufferLen,
1926     OUT PUINT_32    pu4QueryInfoLen
1927     );
1928
1929 WLAN_STATUS
1930 wlanoidQueryEepromType(
1931     IN  P_ADAPTER_T       prAdapter,
1932     OUT PVOID             pvQueryBuffer,
1933     IN  UINT_32           u4QueryBufferLen,
1934     OUT PUINT_32          pu4QueryInfoLen
1935     );
1936
1937 WLAN_STATUS
1938 wlanoidSetCountryCode (
1939     IN P_ADAPTER_T  prAdapter,
1940     IN  PVOID       pvSetBuffer,
1941     IN  UINT_32     u4SetBufferLen,
1942     OUT PUINT_32    pu4SetInfoLen
1943     );
1944
1945 WLAN_STATUS
1946 wlanSendMemDumpCmd (
1947     IN P_ADAPTER_T  prAdapter,
1948     IN PVOID        pvQueryBuffer,
1949     IN UINT_32      u4QueryBufferLen
1950     );
1951
1952 #if CFG_SLT_SUPPORT
1953
1954 WLAN_STATUS
1955 wlanoidQuerySLTStatus(
1956     IN  P_ADAPTER_T   prAdapter,
1957     OUT PVOID         pvQueryBuffer,
1958     IN  UINT_32       u4QueryBufferLen,
1959     OUT PUINT_32      pu4QueryInfoLen
1960     );
1961
1962 WLAN_STATUS
1963 wlanoidUpdateSLTMode(
1964     IN P_ADAPTER_T  prAdapter,
1965     IN  PVOID       pvSetBuffer,
1966     IN  UINT_32     u4SetBufferLen,
1967     OUT PUINT_32    pu4SetInfoLen
1968     );
1969
1970 #endif
1971
1972 #if 0
1973 WLAN_STATUS
1974 wlanoidSetNoaParam (
1975     IN  P_ADAPTER_T       prAdapter,
1976     IN  PVOID             pvSetBuffer,
1977     IN  UINT_32           u4SetBufferLen,
1978     OUT PUINT_32          pu4SetInfoLen
1979     );
1980
1981 WLAN_STATUS
1982 wlanoidSetOppPsParam (
1983     IN  P_ADAPTER_T       prAdapter,
1984     IN  PVOID             pvSetBuffer,
1985     IN  UINT_32           u4SetBufferLen,
1986     OUT PUINT_32          pu4SetInfoLen
1987     );
1988
1989 WLAN_STATUS
1990 wlanoidSetUApsdParam (
1991     IN  P_ADAPTER_T       prAdapter,
1992     IN  PVOID             pvSetBuffer,
1993     IN  UINT_32           u4SetBufferLen,
1994     OUT PUINT_32          pu4SetInfoLen
1995     );
1996 #endif
1997
1998 /*----------------------------------------------------------------------------*/
1999 WLAN_STATUS
2000 wlanoidSetBT (
2001     IN  P_ADAPTER_T prAdapter,
2002     IN  PVOID       pvSetBuffer,
2003     IN  UINT_32     u4SetBufferLen,
2004     OUT PUINT_32    pu4SetInfoLen
2005     );
2006
2007 WLAN_STATUS
2008 wlanoidQueryBT (
2009     IN  P_ADAPTER_T prAdapter,
2010     OUT PVOID       pvQueryBuffer,
2011     IN  UINT_32     u4QueryBufferLen,
2012     OUT PUINT_32    pu4QueryInfoLen
2013     );
2014
2015 WLAN_STATUS
2016 wlanoidSetTxPower (
2017     IN  P_ADAPTER_T prAdapter,
2018     IN  PVOID       pvSetBuffer,
2019     IN  UINT_32     u4SetBufferLen,
2020     OUT PUINT_32    pu4SetInfoLen
2021     );
2022
2023 /*
2024 WLAN_STATUS
2025 wlanoidQueryBtSingleAntenna (
2026     IN  P_ADAPTER_T prAdapter,
2027     OUT PVOID       pvQueryBuffer,
2028     IN  UINT_32     u4QueryBufferLen,
2029     OUT PUINT_32    pu4QueryInfoLen
2030     );
2031
2032 WLAN_STATUS
2033 wlanoidSetBtSingleAntenna (
2034     IN  P_ADAPTER_T prAdapter,
2035     IN  PVOID       pvSetBuffer,
2036     IN  UINT_32     u4SetBufferLen,
2037     OUT PUINT_32    pu4SetInfoLen
2038     );
2039
2040 WLAN_STATUS
2041 wlanoidSetPta (
2042     IN  P_ADAPTER_T prAdapter,
2043     IN  PVOID       pvSetBuffer,
2044     IN  UINT_32     u4SetBufferLen,
2045     OUT PUINT_32    pu4SetInfoLen
2046     );
2047
2048 WLAN_STATUS
2049 wlanoidQueryPta (
2050     IN  P_ADAPTER_T prAdapter,
2051     OUT PVOID       pvQueryBuffer,
2052     IN  UINT_32     u4QueryBufferLen,
2053     OUT PUINT_32    pu4QueryInfoLen
2054     );
2055 */
2056
2057 #if CFG_ENABLE_WIFI_DIRECT
2058 WLAN_STATUS
2059 wlanoidSetP2pMode (
2060     IN  P_ADAPTER_T prAdapter,
2061     IN  PVOID       pvSetBuffer,
2062     IN  UINT_32     u4SetBufferLen,
2063     OUT PUINT_32    pu4SetInfoLen
2064     );
2065 #endif
2066
2067 /*******************************************************************************
2068 *                              F U N C T I O N S
2069 ********************************************************************************
2070 */
2071
2072 #endif /* _WLAN_OID_H */
2073