support different wifi bt chip auto compatible
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / mt5931_kk / drv_wlan / include / wlan_lib.h
1 /*
2 ** $Id: //Department/DaVinci/BRANCHES/MT662X_593X_WIFI_DRIVER_V2_3/include/wlan_lib.h#1 $
3 */
4
5 /*! \file   "wlan_lib.h"
6     \brief  The declaration of the functions of the wlanAdpater objects
7
8     Detail description.
9 */
10
11 /*******************************************************************************
12 * Copyright (c) 2007 MediaTek Inc.
13 *
14 * All rights reserved. Copying, compilation, modification, distribution
15 * or any other use whatsoever of this material is strictly prohibited
16 * except in accordance with a Software License Agreement with
17 * MediaTek Inc.
18 ********************************************************************************
19 */
20
21 /*******************************************************************************
22 * LEGAL DISCLAIMER
23 *
24 * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND
25 * AGREES THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK
26 * SOFTWARE") RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE
27 * PROVIDED TO BUYER ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY
28 * DISCLAIMS ANY AND ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
29 * LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
30 * PARTICULAR PURPOSE OR NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE
31 * ANY WARRANTY WHATSOEVER WITH RESPECT TO THE SOFTWARE OF ANY THIRD PARTY
32 * WHICH MAY BE USED BY, INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK
33 * SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY
34 * WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE
35 * FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S SPECIFICATION OR TO
36 * CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
37 *
38 * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
39 * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL
40 * BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT
41 * ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY
42 * BUYER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
43 *
44 * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
45 * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT
46 * OF LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING
47 * THEREOF AND RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN
48 * FRANCISCO, CA, UNDER THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE
49 * (ICC).
50 ********************************************************************************
51 */
52
53 /*
54 ** $Log: wlan_lib.h $
55 ** 
56 ** 09 14 2012 cp.wu
57 ** [WCXRP00001269] [MT6620 Wi-Fi][Driver] cfg80211 porting merge back to DaVinci
58 ** sync changes on roaming to an unindicated BSS under cfg80211.
59 ** 
60 ** 09 04 2012 cp.wu
61 ** [WCXRP00001269] [MT6620 Wi-Fi][Driver] cfg80211 porting merge back to DaVinci
62 ** sync for NVRAM warning scan result generation for CFG80211.
63 ** 
64 ** 08 24 2012 cp.wu
65 ** [WCXRP00001269] [MT6620 Wi-Fi][Driver] cfg80211 porting merge back to DaVinci
66 ** .
67 ** 
68 ** 08 24 2012 cp.wu
69 ** [WCXRP00001269] [MT6620 Wi-Fi][Driver] cfg80211 porting merge back to DaVinci
70 ** cfg80211 support merge back from ALPS.JB to DaVinci - MT6620 Driver v2.3 branch.
71  *
72  * 06 08 2012 eason.tsai
73  * NULL
74  * Nvram context covert from 6620 to 6628 for old 6620 meta tool
75  *
76  * 01 16 2012 cp.wu
77  * [MT6620 Wi-Fi][Driver] API and behavior modification for preferred band configuration with corresponding network configuration 
78  * add wlanSetPreferBandByNetwork() for glue layer to invoke for setting preferred band configuration corresponding to network type.
79  *
80  * 01 05 2012 wh.su
81  * [WCXRP00001153] [MT6620 Wi-Fi][Driver] Adding the get_ch_list and set_tx_power proto type function
82  * Adding the related ioctl / wlan oid function to set the Tx power cfg.
83  *
84  * 10 03 2011 cp.wu
85  * [WCXRP00001022] [MT6628 Driver][Firmware Download] Add multi section independent download functionality
86  * eliminate win32 native data types.
87  *
88  * 10 03 2011 cp.wu
89  * [WCXRP00001022] [MT6628 Driver][Firmware Download] Add multi section independent download functionality
90  * add firmware download path in divided scatters.
91  *
92  * 10 03 2011 cp.wu
93  * [MT6628 Driver][Firmware Download] Add multi section independent download functionality 
94  * add firmware downloading aggregated path.
95  *
96  * 09 20 2011 tsaiyuan.hsu
97  * [WCXRP00000931] [MT5931 Wi-Fi][DRV/FW] add swcr to disable roaming from driver
98  * change window registry of driver for roaming.
99  *
100  * 09 08 2011 cm.chang
101  * [WCXRP00000969] [MT6620 Wi-Fi][Driver][FW] Channel list for 5G band based on country code
102  * Use new fields ucChannelListMap and ucChannelListIndex in NVRAM
103  *
104  * 08 31 2011 cm.chang
105  * [WCXRP00000969] [MT6620 Wi-Fi][Driver][FW] Channel list for 5G band based on country code
106  * .
107  *
108  * 08 25 2011 chinghwa.yu
109  * [WCXRP00000612] [MT6620 Wi-Fi] [FW] CSD update SWRDD algorithm
110  * Add DFS switch.
111  *
112  * 08 24 2011 chinghwa.yu
113  * [WCXRP00000612] [MT6620 Wi-Fi] [FW] CSD update SWRDD algorithm
114  * Update RDD test mode cases.
115  *
116  * 08 15 2011 cp.wu
117  * [WCXRP00000913] [MT6620 Wi-Fi] create repository of source code dedicated for MT6620 E6 ASIC
118  * support to load different firmware image for E3/E4/E5 and E6 ASIC on win32 platforms.
119  *
120  * 08 02 2011 yuche.tsai
121  * [WCXRP00000896] [Volunteer Patch][WiFi Direct][Driver] GO with multiple client, TX deauth to a disconnecting device issue.
122  * Fix GO send deauth frame issue.
123  *
124  * 07 22 2011 jeffrey.chang
125  * [WCXRP00000864] [MT5931] Add command to adjust OSC stable time
126  * modify driver to set OSC stable time after f/w download
127  *
128  * 07 18 2011 chinghwa.yu
129  * [WCXRP00000063] Update BCM CoEx design and settings[WCXRP00000612] [MT6620 Wi-Fi] [FW] CSD update SWRDD algorithm
130  * Add CMD/Event for RDD and BWCS.
131  *
132  * 05 27 2011 cp.wu
133  * [WCXRP00000749] [MT6620 Wi-Fi][Driver] Add band edge tx power control to Wi-Fi NVRAM
134  * invoke CMD_ID_SET_EDGE_TXPWR_LIMIT when there is valid data exist in NVRAM content.
135  *
136  * 05 11 2011 cp.wu
137  * [WCXRP00000718] [MT6620 Wi-Fi] modify the behavior of setting tx power
138  * ACPI APIs migrate to wlan_lib.c for glue layer to invoke.
139  *
140  * 04 18 2011 cp.wu
141  * [WCXRP00000636] [WHQL][MT5931 Driver] 2c_PMHibernate (hang on 2h)
142  * 1) add API for glue layer to query ACPI state
143  * 2) Windows glue should not access to hardware after switched into D3 state
144  *
145  * 03 10 2011 cp.wu
146  * [WCXRP00000532] [MT6620 Wi-Fi][Driver] Migrate NVRAM configuration procedures from MT6620 E2 to MT6620 E3
147  * deprecate configuration used by MT6620 E2
148  *
149  * 01 27 2011 tsaiyuan.hsu
150  * [WCXRP00000392] [MT6620 Wi-Fi][Driver] Add Roaming Support
151  * add roaming fsm
152  * 1. not support 11r, only use strength of signal to determine roaming.
153  * 2. not enable CFG_SUPPORT_ROAMING until completion of full test.
154  * 3. in 6620, adopt work-around to avoid sign extension problem of cck of hw
155  * 4. assume that change of link quality in smooth way.
156  *
157  * 01 27 2011 george.huang
158  * [WCXRP00000355] [MT6620 Wi-Fi] Set WMM-PS related setting with qualifying AP capability
159  * Support current measure mode, assigned by registry (XP only).
160  *
161  * 01 24 2011 cp.wu
162  * [WCXRP00000382] [MT6620 Wi-Fi][Driver] Track forwarding packet number with notifying tx thread for serving
163  * 1. add an extra counter for tracking pending forward frames.
164  * 2. notify TX service thread as well when there is pending forward frame
165  * 3. correct build errors leaded by introduction of Wi-Fi direct separation module
166  *
167  * 01 10 2011 cp.wu
168  * [WCXRP00000351] [MT6620 Wi-Fi][Driver] remove from scanning result in OID handling layer when the corresponding BSS is disconnected due to beacon timeout
169  * remove from scanning result when the BSS is disconnected due to beacon timeout.
170  *
171  * 10 27 2010 george.huang
172  * [WCXRP00000127] [MT6620 Wi-Fi][Driver] Add a registry to disable Beacon Timeout function for SQA test by using E1 EVB
173  * Support registry option for disable beacon lost detection.
174  *
175  * 10 26 2010 cp.wu
176  * [WCXRP00000056] [MT6620 Wi-Fi][Driver] NVRAM implementation with Version Check[WCXRP00000137] [MT6620 Wi-Fi] [FW] Support NIC capability query command
177  * 1) update NVRAM content template to ver 1.02
178  * 2) add compile option for querying NIC capability (default: off)
179  * 3) modify AIS 5GHz support to run-time option, which could be turned on by registry or NVRAM setting
180  * 4) correct auto-rate compiler error under linux (treat warning as error)
181  * 5) simplify usage of NVRAM and REG_INFO_T
182  * 6) add version checking between driver and firmware
183  *
184  * 10 26 2010 eddie.chen
185  * [WCXRP00000134] [MT6620 Wi-Fi][Driver] Add a registry to enable auto rate for SQA test by using E1 EVB
186  * Add auto rate parameter in registry.
187  *
188  * 10 18 2010 cp.wu
189  * [WCXRP00000056] [MT6620 Wi-Fi][Driver] NVRAM implementation with Version Check[WCXRP00000086] [MT6620 Wi-Fi][Driver] The mac address is all zero at android
190  * complete implementation of Android NVRAM access
191  *
192  * 10 08 2010 cp.wu
193  * [WCXRP00000084] [MT6620 Wi-Fi][Driver][FW] Add fixed rate support for distance test
194  * adding fixed rate support for distance test. (from registry setting)
195  *
196  * 10 06 2010 cp.wu
197  * [WCXRP00000052] [MT6620 Wi-Fi][Driver] Eliminate Linux Compile Warning
198  * divide a single function into 2 part to surpress a weird compiler warning from gcc-4.4.0
199  *
200  * 10 06 2010 cp.wu
201  * [WCXRP00000052] [MT6620 Wi-Fi][Driver] Eliminate Linux Compile Warning
202  * code reorganization to improve isolation between GLUE and CORE layers.
203  *
204  * 10 05 2010 cp.wu
205  * [WCXRP00000056] [MT6620 Wi-Fi][Driver] NVRAM implementation with Version Check
206  * load manufacture data when CFG_SUPPORT_NVRAM is set to 1
207  *
208  * 09 24 2010 cp.wu
209  * [WCXRP00000057] [MT6620 Wi-Fi][Driver] Modify online scan to a run-time switchable feature
210  * Modify online scan as a run-time adjustable option (for Windows, in registry)
211  *
212  * 09 23 2010 cp.wu
213  * [WCXRP00000051] [MT6620 Wi-Fi][Driver] WHQL test fail in MAC address changed item
214  * use firmware reported mac address right after wlanAdapterStart() as permanent address
215  *
216  * 09 23 2010 cp.wu
217  * [WCXRP00000056] [MT6620 Wi-Fi][Driver] NVRAM implementation with Version Check
218  * add skeleton for NVRAM integration
219  *
220  * 08 26 2010 yuche.tsai
221  * NULL
222  * Add AT GO test configure mode under WinXP.
223  * Please enable 1. CFG_ENABLE_WIFI_DIRECT, 2. CFG_TEST_WIFI_DIRECT_GO, 3. CFG_SUPPORT_AAA
224  *
225  * 08 25 2010 george.huang
226  * NULL
227  * .
228  *
229  * 07 21 2010 cp.wu
230  *
231  * 1) change BG_SCAN to ONLINE_SCAN for consistent term
232  * 2) only clear scanning result when scan is permitted to do
233  *
234  * 07 13 2010 cp.wu
235  *
236  * 1) MMPDUs are now sent to MT6620 by CMD queue for keeping strict order of 1X/MMPDU/CMD packets
237  * 2) integrate with qmGetFrameAction() for deciding which MMPDU/1X could pass checking for sending
238  * 2) enhance CMD_INFO_T descriptor number from 10 to 32 to avoid descriptor underflow under concurrent network operation
239  *
240  * 07 08 2010 cp.wu
241  *
242  * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
243  *
244  * 06 24 2010 cp.wu
245  * [WPD00003833][MT6620 and MT5931] Driver migration
246  * 802.1x and bluetooth-over-Wi-Fi security frames are now delievered to firmware via command path instead of data path.
247  *
248  * 06 21 2010 cp.wu
249  * [WPD00003833][MT6620 and MT5931] Driver migration
250  * change MAC address updating logic.
251  *
252  * 06 21 2010 cp.wu
253  * [WPD00003833][MT6620 and MT5931] Driver migration
254  * simplify timer usage.
255  *
256  * 06 11 2010 cp.wu
257  * [WPD00003833][MT6620 and MT5931] Driver migration
258  * 1) migrate assoc.c.
259  * 2) add ucTxSeqNum for tracking frames which needs TX-DONE awareness
260  * 3) add configuration options for CNM_MEM and RSN modules
261  * 4) add data path for management frames
262  * 5) eliminate rPacketInfo of MSDU_INFO_T
263  *
264  * 06 08 2010 cp.wu
265  * [WPD00003833][MT6620 and MT5931] Driver migration
266  * cnm_timer has been migrated.
267  *
268  * 06 06 2010 kevin.huang
269  * [WPD00003832][MT6620 5931] Create driver base
270  * [MT6620 5931] Create driver base
271  *
272  * 05 20 2010 cp.wu
273  * [WPD00001943]Create WiFi test driver framework on WinXP
274  * 1) integrate OID_GEN_NETWORK_LAYER_ADDRESSES with CMD_ID_SET_IP_ADDRESS
275  * 2) buffer statistics data for 2 seconds
276  * 3) use default value for adhoc parameters instead of 0
277  *
278  * 05 12 2010 cp.wu
279  * [WPD00001943]Create WiFi test driver framework on WinXP
280  * add extra 64 adjustable parameters for CoEX scenario.
281  *
282  * 04 06 2010 cp.wu
283  * [WPD00001943]Create WiFi test driver framework on WinXP
284  * code refine: fgTestMode should be at adapter rather than glue due to the device/fw is also involved
285  *
286  * 04 06 2010 cp.wu
287  * [WPD00001943]Create WiFi test driver framework on WinXP
288  * 1) for some OID, never do timeout expiration
289  *  * 2) add 2 kal API for later integration
290  *
291  * 04 01 2010 cp.wu
292  * [WPD00001943]Create WiFi test driver framework on WinXP
293  * change to use WIFI_TCM_ALWAYS_ON as firmware image
294  *
295  * 03 31 2010 wh.su
296  * [WPD00003816][MT6620 Wi-Fi] Adding the security support
297  * modify the wapi related code for new driver's design.
298  *
299  * 03 22 2010 cp.wu
300  * [WPD00001943]Create WiFi test driver framework on WinXP
301  * always send CMD_NIC_POWER_CTRL packet when nic is being halted
302  *
303  * 03 12 2010 cp.wu
304  * [WPD00001943]Create WiFi test driver framework on WinXP
305  * add two option for ACK and ENCRYPTION for firmware download
306  *
307  * 02 24 2010 cp.wu
308  * [WPD00001943]Create WiFi test driver framework on WinXP
309  * separate wlanProcesQueuePacket() into 2 APIs upon request
310  *
311  * 02 23 2010 cp.wu
312  * [WPD00001943]Create WiFi test driver framework on WinXP
313  * add new API: wlanProcessQueuedPackets()
314  *
315  * 02 11 2010 cp.wu
316  * [WPD00001943]Create WiFi test driver framework on WinXP
317  * 1. add logic for firmware download
318  *  *  * 2. firmware image filename and start/load address are now retrieved from registry
319  *
320  * 02 10 2010 cp.wu
321  * [WPD00001943]Create WiFi test driver framework on WinXP
322  * 1) remove unused function in nic_rx.c [which has been handled in que_mgt.c]
323  *  *  *  * 2) firmware image length is now retrieved via NdisFileOpen
324  *  *  *  * 3) firmware image is not structured by (P_IMG_SEC_HDR_T) anymore
325  *  *  *  * 4) nicRxWaitResponse() revised
326  *  *  *  * 5) another set of TQ counter default value is added for fw-download state
327  *  *  *  * 6) Wi-Fi load address is now retrieved from registry too
328  *
329  * 02 08 2010 cp.wu
330  * [WPD00001943]Create WiFi test driver framework on WinXP
331  * prepare for implementing fw download logic
332  *
333  * 01 27 2010 cp.wu
334  * [WPD00001943]Create WiFi test driver framework on WinXP
335  * 1. eliminate improper variable in rHifInfo
336  *  *  *  *  *  *  * 2. block TX/ordinary OID when RF test mode is engaged
337  *  *  *  *  *  *  * 3. wait until firmware finish operation when entering into and leaving from RF test mode
338  *  *  *  *  *  *  * 4. correct some HAL implementation
339 **  \main\maintrunk.MT6620WiFiDriver_Prj\10 2009-12-10 16:39:55 GMT mtk02752
340 **  eliminate unused API
341 **  \main\maintrunk.MT6620WiFiDriver_Prj\9 2009-10-13 21:58:41 GMT mtk01084
342 **  update for new macro define
343 **  \main\maintrunk.MT6620WiFiDriver_Prj\8 2009-05-19 10:43:06 GMT mtk01461
344 **  Add wlanReleasePendingOid()
345 **  \main\maintrunk.MT6620WiFiDriver_Prj\7 2009-04-13 16:38:44 GMT mtk01084
346 **  add WIFI start function
347 **  \main\maintrunk.MT6620WiFiDriver_Prj\6 2009-04-08 16:51:14 GMT mtk01084
348 **  Update for the image download part
349 **  \main\maintrunk.MT6620WiFiDriver_Prj\5 2009-04-01 10:57:38 GMT mtk01461
350 **  Add wlanSendLeftClusteredFrames() for SDIO_TX_ENHANCE
351 **  \main\maintrunk.MT6620WiFiDriver_Prj\4 2009-03-23 00:31:02 GMT mtk01461
352 **  Add declaration of FW Image download reference code
353 **  \main\maintrunk.MT6620WiFiDriver_Prj\3 2009-03-16 09:08:31 GMT mtk01461
354 **  Update TX PATH API
355 **  \main\maintrunk.MT6620WiFiDriver_Prj\2 2009-03-10 20:12:04 GMT mtk01426
356 **  Init for develop
357 **
358 */
359
360 #ifndef _WLAN_LIB_H
361 #define _WLAN_LIB_H
362
363 /*******************************************************************************
364 *                         C O M P I L E R   F L A G S
365 ********************************************************************************
366 */
367
368 /*******************************************************************************
369 *                    E X T E R N A L   R E F E R E N C E S
370 ********************************************************************************
371 */
372 #include "CFG_Wifi_File.h"
373 #include "rlm_domain.h"
374 #include "wlan_typedef.h"
375
376 /*******************************************************************************
377 *                              C O N S T A N T S
378 ********************************************************************************
379 */
380
381 #define MAX_NUM_GROUP_ADDR                      32      /* max number of group addresses */
382
383
384
385 #define TX_CS_TCP_UDP_GEN        BIT(1)
386 #define TX_CS_IP_GEN             BIT(0)
387
388
389 #define CSUM_OFFLOAD_EN_TX_TCP      BIT(0)
390 #define CSUM_OFFLOAD_EN_TX_UDP      BIT(1)
391 #define CSUM_OFFLOAD_EN_TX_IP       BIT(2)
392 #define CSUM_OFFLOAD_EN_RX_TCP      BIT(3)
393 #define CSUM_OFFLOAD_EN_RX_UDP      BIT(4)
394 #define CSUM_OFFLOAD_EN_RX_IPv4     BIT(5)
395 #define CSUM_OFFLOAD_EN_RX_IPv6     BIT(6)
396 #define CSUM_OFFLOAD_EN_TX_MASK     BITS(0,2)
397 #define CSUM_OFFLOAD_EN_ALL         BITS(0,6)
398
399 /* TCP, UDP, IP Checksum */
400 #define RX_CS_TYPE_UDP           BIT(7)
401 #define RX_CS_TYPE_TCP           BIT(6)
402 #define RX_CS_TYPE_IPv6          BIT(5)
403 #define RX_CS_TYPE_IPv4          BIT(4)
404
405 #define RX_CS_STATUS_UDP         BIT(3)
406 #define RX_CS_STATUS_TCP         BIT(2)
407 #define RX_CS_STATUS_IP          BIT(0)
408
409 #define CSUM_NOT_SUPPORTED      0x0
410
411 #define TXPWR_USE_PDSLOPE 0
412
413 /* NVRAM error code definitions */
414 #define NVRAM_ERROR_VERSION_MISMATCH        BIT(1)
415 #define NVRAM_ERROR_INVALID_TXPWR           BIT(2)
416 #define NVRAM_ERROR_INVALID_DPD             BIT(3)
417 #define NVRAM_ERROR_INVALID_MAC_ADDR        BIT(4)
418
419
420 /*******************************************************************************
421 *                             D A T A   T Y P E S
422 ********************************************************************************
423 */
424 typedef WLAN_STATUS (*PFN_OID_HANDLER_FUNC) (
425     IN  P_ADAPTER_T prAdapter,
426     IN  PVOID       pvBuf,
427     IN  UINT_32     u4BufLen,
428     OUT PUINT_32    pu4OutInfoLen
429     );
430
431 typedef enum _ENUM_CSUM_TYPE_T {
432     CSUM_TYPE_IPV4,
433     CSUM_TYPE_IPV6,
434     CSUM_TYPE_TCP,
435     CSUM_TYPE_UDP,
436     CSUM_TYPE_NUM
437 } ENUM_CSUM_TYPE_T, *P_ENUM_CSUM_TYPE_T;
438
439 typedef enum _ENUM_CSUM_RESULT_T {
440     CSUM_RES_NONE,
441     CSUM_RES_SUCCESS,
442     CSUM_RES_FAILED,
443     CSUM_RES_NUM
444 } ENUM_CSUM_RESULT_T, *P_ENUM_CSUM_RESULT_T;
445
446 typedef enum _ENUM_PHY_MODE_T {
447     ENUM_PHY_2G4_CCK,
448     ENUM_PHY_2G4_OFDM_BPSK,
449     ENUM_PHY_2G4_OFDM_QPSK,
450     ENUM_PHY_2G4_OFDM_16QAM,
451     ENUM_PHY_2G4_OFDM_48M,
452     ENUM_PHY_2G4_OFDM_54M,
453     ENUM_PHY_2G4_HT20_BPSK,
454     ENUM_PHY_2G4_HT20_QPSK,
455     ENUM_PHY_2G4_HT20_16QAM,
456     ENUM_PHY_2G4_HT20_MCS5,
457     ENUM_PHY_2G4_HT20_MCS6,
458     ENUM_PHY_2G4_HT20_MCS7,
459     ENUM_PHY_2G4_HT40_BPSK,
460     ENUM_PHY_2G4_HT40_QPSK,
461     ENUM_PHY_2G4_HT40_16QAM,
462     ENUM_PHY_2G4_HT40_MCS5,
463     ENUM_PHY_2G4_HT40_MCS6,
464     ENUM_PHY_2G4_HT40_MCS7,
465     ENUM_PHY_5G_OFDM_BPSK,
466     ENUM_PHY_5G_OFDM_QPSK,
467     ENUM_PHY_5G_OFDM_16QAM,
468     ENUM_PHY_5G_OFDM_48M,
469     ENUM_PHY_5G_OFDM_54M,
470     ENUM_PHY_5G_HT20_BPSK,
471     ENUM_PHY_5G_HT20_QPSK,
472     ENUM_PHY_5G_HT20_16QAM,
473     ENUM_PHY_5G_HT20_MCS5,
474     ENUM_PHY_5G_HT20_MCS6,
475     ENUM_PHY_5G_HT20_MCS7,
476     ENUM_PHY_5G_HT40_BPSK,
477     ENUM_PHY_5G_HT40_QPSK,
478     ENUM_PHY_5G_HT40_16QAM,
479     ENUM_PHY_5G_HT40_MCS5,
480     ENUM_PHY_5G_HT40_MCS6,
481     ENUM_PHY_5G_HT40_MCS7,
482     ENUM_PHY_MODE_NUM
483 } ENUM_PHY_MODE_T, *P_ENUM_PHY_MODE_T;
484
485 typedef enum _ENUM_POWER_SAVE_POLL_MODE_T {
486     ENUM_POWER_SAVE_POLL_DISABLE,
487     ENUM_POWER_SAVE_POLL_LEGACY_NULL,
488     ENUM_POWER_SAVE_POLL_QOS_NULL,
489     ENUM_POWER_SAVE_POLL_NUM
490 } ENUM_POWER_SAVE_POLL_MODE_T, *P_ENUM_POWER_SAVE_POLL_MODE_T;
491
492 typedef enum _ENUM_AC_TYPE_T {
493     ENUM_AC_TYPE_AC0,
494     ENUM_AC_TYPE_AC1,
495     ENUM_AC_TYPE_AC2,
496     ENUM_AC_TYPE_AC3,
497     ENUM_AC_TYPE_AC4,
498     ENUM_AC_TYPE_AC5,
499     ENUM_AC_TYPE_AC6,
500     ENUM_AC_TYPE_BMC,
501     ENUM_AC_TYPE_NUM
502 } ENUM_AC_TYPE_T, *P_ENUM_AC_TYPE_T;
503
504 typedef enum _ENUM_ADV_AC_TYPE_T {
505     ENUM_ADV_AC_TYPE_RX_NSW,
506     ENUM_ADV_AC_TYPE_RX_PTA,
507     ENUM_ADV_AC_TYPE_RX_SP,
508     ENUM_ADV_AC_TYPE_TX_PTA,
509     ENUM_ADV_AC_TYPE_TX_RSP,
510     ENUM_ADV_AC_TYPE_NUM
511 } ENUM_ADV_AC_TYPE_T, *P_ENUM_ADV_AC_TYPE_T;
512
513 typedef enum _ENUM_REG_CH_MAP_T {
514     REG_CH_MAP_COUNTRY_CODE,
515     REG_CH_MAP_TBL_IDX,
516     REG_CH_MAP_CUSTOMIZED,
517     REG_CH_MAP_NUM
518 } ENUM_REG_CH_MAP_T, *P_ENUM_REG_CH_MAP_T;
519
520 typedef struct _SET_TXPWR_CTRL_T{
521     INT_8    c2GLegacyStaPwrOffset;  /* Unit: 0.5dBm, default: 0*/
522     INT_8    c2GHotspotPwrOffset;
523     INT_8    c2GP2pPwrOffset;
524     INT_8    c2GBowPwrOffset;
525     INT_8    c5GLegacyStaPwrOffset;   /* Unit: 0.5dBm, default: 0*/
526     INT_8    c5GHotspotPwrOffset;
527     INT_8    c5GP2pPwrOffset;
528     INT_8    c5GBowPwrOffset;
529     UINT_8  ucConcurrencePolicy;   /* TX power policy when concurrence
530                                                             in the same channel
531                                                             0: Highest power has priority
532                                                             1: Lowest power has priority */
533     INT_8    acReserved1[3];            /* Must be zero */
534
535     /* Power limit by channel for all data rates */
536     INT_8    acTxPwrLimit2G[14];     /* Channel 1~14, Unit: 0.5dBm*/
537     INT_8    acTxPwrLimit5G[4];       /* UNII 1~4 */
538     INT_8    acReserved2[2];            /* Must be zero */
539 } SET_TXPWR_CTRL_T, *P_SET_TXPWR_CTRL_T;
540
541 /* For storing driver initialization value from glue layer */
542 typedef struct _REG_INFO_T {
543     UINT_32     u4SdBlockSize;                      /* SDIO block size */
544     UINT_32     u4SdBusWidth;                       /* SDIO bus width. 1 or 4 */
545     UINT_32     u4SdClockRate;                      /* SDIO clock rate. (in unit of HZ) */
546     UINT_32     u4StartAddress;                     /* Starting address of Wi-Fi Firmware */
547     UINT_32     u4LoadAddress;                      /* Load address of Wi-Fi Firmware */
548     UINT_16     aucFwImgFilename[65];               /* Firmware filename */
549     UINT_16     aucFwImgFilenameE6[65];             /* Firmware filename for E6 */
550     UINT_32     u4StartFreq;                        /* Start Frequency for Ad-Hoc network : in unit of KHz */
551     UINT_32     u4AdhocMode;                        /* Default mode for Ad-Hoc network : ENUM_PARAM_AD_HOC_MODE_T */
552     UINT_32     u4RddStartFreq;
553     UINT_32     u4RddStopFreq;
554     UINT_32     u4RddTestMode;
555     UINT_32     u4RddShutFreq;
556     UINT_32     u4RddDfs;
557     INT_32      i4HighRssiThreshold;
558     INT_32      i4MediumRssiThreshold;
559     INT_32      i4LowRssiThreshold;
560     INT_32      au4TxPriorityTag[ENUM_AC_TYPE_NUM];
561     INT_32      au4RxPriorityTag[ENUM_AC_TYPE_NUM];
562     INT_32      au4AdvPriorityTag[ENUM_ADV_AC_TYPE_NUM];
563     UINT_32     u4FastPSPoll;
564     UINT_32     u4PTA;                              /* 0: disable, 1: enable */
565     UINT_32     u4TXLimit;                          /* 0: disable, 1: enable */
566     UINT_32     u4SilenceWindow;                    /* range: 100 - 625, unit: us */
567     UINT_32     u4TXLimitThreshold;                 /* range: 250 - 1250, unit: us */
568     UINT_32     u4PowerMode;
569     UINT_32     fgEnArpFilter;
570     UINT_32     u4PsCurrentMeasureEn;
571     UINT_32     u4UapsdAcBmp;
572     UINT_32     u4MaxSpLen;
573     UINT_32     fgDisOnlineScan;                    /* 0: enable online scan, non-zero: disable online scan*/
574     UINT_32     fgDisBcnLostDetection;                    /* 0: enable online scan, non-zero: disable online scan*/
575     UINT_32     u4FixedRate;                        /* 0: automatic, non-zero: fixed rate */
576     UINT_32     u4ArSysParam0;
577     UINT_32     u4ArSysParam1;
578     UINT_32     u4ArSysParam2;
579     UINT_32     u4ArSysParam3;
580     UINT_32     fgDisRoaming;                        /* 0:enable roaming 1:disable */
581
582     // NVRAM - MP Data -START-
583     UINT_8              aucMacAddr[6];
584     UINT_16             au2CountryCode[4];          /* Country code (in ISO 3166-1 expression, ex: "US", "TW")  */
585     TX_PWR_PARAM_T      rTxPwr;
586     UINT_8              aucEFUSE[144];
587     UINT_8              ucTxPwrValid;
588     UINT_8              ucSupport5GBand;
589     UINT_8              fg2G4BandEdgePwrUsed;
590     INT_8               cBandEdgeMaxPwrCCK;
591     INT_8               cBandEdgeMaxPwrOFDM20;
592     INT_8               cBandEdgeMaxPwrOFDM40;
593     ENUM_REG_CH_MAP_T   eRegChannelListMap;
594     UINT_8              ucRegChannelListIndex;
595     DOMAIN_INFO_ENTRY   rDomainInfo;
596     // NVRAM - MP Data -END-
597
598     // NVRAM - Functional Data -START-
599     UINT_8              uc2G4BwFixed20M;
600     UINT_8              uc5GBwFixed20M;
601     UINT_8              ucEnable5GBand;
602     // NVRAM - Functional Data -END-
603
604 } REG_INFO_T, *P_REG_INFO_T;
605
606 /* for divided firmware loading */
607 typedef struct _FWDL_SECTION_INFO_T
608 {
609     UINT_32 u4Offset;
610     UINT_32 u4Reserved;
611     UINT_32 u4Length;
612     UINT_32 u4DestAddr;
613 } FWDL_SECTION_INFO_T, *P_FWDL_SECTION_INFO_T;
614
615 typedef struct _FIRMWARE_DIVIDED_DOWNLOAD_T
616 {
617     UINT_32             u4Signature;
618     UINT_32             u4CRC;          /* CRC calculated without first 8 bytes included */
619     UINT_32             u4NumOfEntries;
620     UINT_32             u4Reserved;
621     FWDL_SECTION_INFO_T arSection[];
622 } FIRMWARE_DIVIDED_DOWNLOAD_T, *P_FIRMWARE_DIVIDED_DOWNLOAD_T;
623
624 typedef struct _PARAM_MCR_RW_STRUC_T {
625     UINT_32             u4McrOffset;
626     UINT_32             u4McrData;
627 } PARAM_MCR_RW_STRUC_T, *P_PARAM_MCR_RW_STRUC_T;
628
629
630 /*******************************************************************************
631 *                            P U B L I C   D A T A
632 ********************************************************************************
633 */
634
635 /*******************************************************************************
636 *                           P R I V A T E   D A T A
637 ********************************************************************************
638 */
639
640 /*******************************************************************************
641 *                                 M A C R O S
642 ********************************************************************************
643 */
644 #define BUILD_SIGN(ch0, ch1, ch2, ch3) \
645     ((UINT_32)(UINT_8)(ch0) | ((UINT_32)(UINT_8)(ch1) << 8) |   \
646      ((UINT_32)(UINT_8)(ch2) << 16) | ((UINT_32)(UINT_8)(ch3) << 24 ))
647
648 #define MTK_WIFI_SIGNATURE BUILD_SIGN('M', 'T', 'K', 'W')
649
650 /*******************************************************************************
651 *                   F U N C T I O N   D E C L A R A T I O N S
652 ********************************************************************************
653 */
654
655 P_ADAPTER_T
656 wlanAdapterCreate (
657     IN P_GLUE_INFO_T prGlueInfo
658     );
659
660 VOID
661 wlanAdapterDestroy (
662     IN P_ADAPTER_T prAdapter
663     );
664
665 VOID
666 wlanCardEjected(
667     IN P_ADAPTER_T         prAdapter
668     );
669
670 VOID
671 wlanIST (
672     IN P_ADAPTER_T prAdapter
673     );
674
675 BOOL
676 wlanISR (
677     IN P_ADAPTER_T prAdapter,
678     IN BOOLEAN fgGlobalIntrCtrl
679     );
680
681 WLAN_STATUS
682 wlanProcessCommandQueue (
683     IN P_ADAPTER_T  prAdapter,
684     IN P_QUE_T      prCmdQue
685     );
686
687 WLAN_STATUS
688 wlanSendCommand (
689     IN P_ADAPTER_T  prAdapter,
690     IN P_CMD_INFO_T prCmdInfo
691     );
692
693 VOID
694 wlanReleaseCommand (
695     IN P_ADAPTER_T  prAdapter,
696     IN P_CMD_INFO_T prCmdInfo
697     );
698
699 VOID
700 wlanReleasePendingOid (
701     IN P_ADAPTER_T  prAdapter,
702     IN UINT_32      u4Data
703     );
704
705 VOID
706 wlanReleasePendingCMDbyNetwork(
707     IN P_ADAPTER_T  prAdapter,
708     IN ENUM_NETWORK_TYPE_INDEX_T eNetworkType
709     );
710
711 VOID
712 wlanReturnPacket (
713     IN P_ADAPTER_T prAdapter,
714     IN PVOID pvPacket
715     );
716
717 WLAN_STATUS
718 wlanQueryInformation (
719     IN P_ADAPTER_T          prAdapter,
720     IN PFN_OID_HANDLER_FUNC pfOidQryHandler,
721     IN PVOID                pvInfoBuf,
722     IN UINT_32              u4InfoBufLen,
723     OUT PUINT_32            pu4QryInfoLen
724     );
725
726 WLAN_STATUS
727 wlanSetInformation (
728     IN P_ADAPTER_T          prAdapter,
729     IN PFN_OID_HANDLER_FUNC pfOidSetHandler,
730     IN PVOID                pvInfoBuf,
731     IN UINT_32              u4InfoBufLen,
732     OUT PUINT_32            pu4SetInfoLen
733     );
734
735
736 WLAN_STATUS
737 wlanAdapterStart (
738     IN P_ADAPTER_T  prAdapter,
739     IN P_REG_INFO_T prRegInfo,
740     IN PVOID        pvFwImageMapFile,
741     IN UINT_32      u4FwImageFileLength
742     );
743
744 WLAN_STATUS
745 wlanAdapterStop (
746     IN P_ADAPTER_T prAdapter
747     );
748
749 #if CFG_SUPPORT_WAPI
750 BOOLEAN
751 wlanQueryWapiMode(
752     IN P_ADAPTER_T          prAdapter
753     );
754 #endif
755
756 VOID
757 wlanReturnRxPacket (
758     IN PVOID pvAdapter,
759     IN PVOID pvPacket
760     );
761
762 VOID
763 wlanRxSetBroadcast (
764     IN P_ADAPTER_T  prAdapter,
765     IN BOOLEAN      fgEnableBroadcast
766     );
767
768 BOOLEAN
769 wlanIsHandlerNeedHwAccess (
770     IN PFN_OID_HANDLER_FUNC pfnOidHandler,
771     IN BOOLEAN              fgSetInfo
772     );
773
774 VOID
775 wlanSetPromiscuousMode (
776     IN P_ADAPTER_T  prAdapter,
777     IN BOOLEAN      fgEnablePromiscuousMode
778     );
779
780 #if CFG_ENABLE_FW_DOWNLOAD
781     #if CFG_ENABLE_FW_DOWNLOAD_AGGREGATION
782 WLAN_STATUS
783 wlanImageSectionDownloadAggregated (
784     IN P_ADAPTER_T  prAdapter,
785     IN UINT_32      u4DestAddr,
786     IN UINT_32      u4ImgSecSize,
787     IN PUINT_8      pucImgSecBuf
788     );
789     #endif
790
791 WLAN_STATUS
792 wlanImageSectionDownload (
793     IN P_ADAPTER_T  prAdapter,
794     IN UINT_32      u4DestAddr,
795     IN UINT_32      u4ImgSecSize,
796     IN PUINT_8      pucImgSecBuf
797     );
798
799 #if !CFG_ENABLE_FW_DOWNLOAD_ACK
800 WLAN_STATUS
801 wlanImageQueryStatus(
802     IN P_ADAPTER_T  prAdapter
803     );
804 #else
805 WLAN_STATUS
806 wlanImageSectionDownloadStatus (
807     IN P_ADAPTER_T  prAdapter,
808     IN UINT_8       ucCmdSeqNum
809     );
810 #endif
811
812 WLAN_STATUS
813 wlanConfigWifiFunc (
814     IN P_ADAPTER_T  prAdapter,
815     IN BOOLEAN      fgEnable,
816     IN UINT_32      u4StartAddress
817     );
818
819 UINT_32 wlanCRC32(
820     PUINT_8 buf,
821     UINT_32 len
822     );
823
824 #endif
825
826 WLAN_STATUS
827 wlanSendNicPowerCtrlCmd (
828     IN P_ADAPTER_T  prAdapter,
829     IN UINT_8       ucPowerMode
830     );
831
832 BOOLEAN
833 wlanIsHandlerAllowedInRFTest (
834     IN PFN_OID_HANDLER_FUNC pfnOidHandler,
835     IN BOOLEAN              fgSetInfo
836     );
837
838 WLAN_STATUS
839 wlanProcessQueuedSwRfb (
840     IN P_ADAPTER_T prAdapter,
841     IN P_SW_RFB_T prSwRfbListHead
842     );
843
844 WLAN_STATUS
845 wlanProcessQueuedMsduInfo (
846     IN P_ADAPTER_T prAdapter,
847     IN P_MSDU_INFO_T prMsduInfoListHead
848     );
849
850 BOOLEAN
851 wlanoidTimeoutCheck (
852     IN P_ADAPTER_T prAdapter,
853     IN PFN_OID_HANDLER_FUNC pfnOidHandler
854     );
855
856 VOID
857 wlanoidClearTimeoutCheck (
858     IN P_ADAPTER_T prAdapter
859     );
860
861 WLAN_STATUS
862 wlanUpdateNetworkAddress (
863     IN P_ADAPTER_T prAdapter
864     );
865
866 BOOLEAN
867 wlanQueryTestMode(
868     IN P_ADAPTER_T          prAdapter
869     );
870
871 /* Security Frame Handling */
872 BOOLEAN
873 wlanProcessSecurityFrame(
874     IN P_ADAPTER_T      prAdapter,
875     IN P_NATIVE_PACKET  prPacket
876     );
877
878 VOID
879 wlanSecurityFrameTxDone(
880     IN P_ADAPTER_T  prAdapter,
881     IN P_CMD_INFO_T prCmdInfo,
882     IN PUINT_8      pucEventBuf
883     );
884
885 VOID
886 wlanSecurityFrameTxTimeout(
887     IN P_ADAPTER_T  prAdapter,
888     IN P_CMD_INFO_T prCmdInfo
889     );
890
891 /*----------------------------------------------------------------------------*/
892 /* OID/IOCTL Handling                                                         */
893 /*----------------------------------------------------------------------------*/
894 VOID
895 wlanClearScanningResult(
896     IN P_ADAPTER_T  prAdapter
897     );
898
899 VOID
900 wlanClearBssInScanningResult(
901     IN P_ADAPTER_T      prAdapter,
902     IN PUINT_8          arBSSID
903     );
904
905 #if CFG_TEST_WIFI_DIRECT_GO
906 VOID
907 wlanEnableP2pFunction(
908     IN P_ADAPTER_T prAdapter
909     );
910
911 VOID
912 wlanEnableATGO(
913     IN P_ADAPTER_T prAdapter
914     );
915 #endif
916
917
918 /*----------------------------------------------------------------------------*/
919 /* Address Retreive by Polling                                                */
920 /*----------------------------------------------------------------------------*/
921 WLAN_STATUS
922 wlanQueryPermanentAddress(
923     IN P_ADAPTER_T prAdapter
924     );
925
926
927 /*----------------------------------------------------------------------------*/
928 /* NIC Capability Retrieve by Polling                                         */
929 /*----------------------------------------------------------------------------*/
930 WLAN_STATUS
931 wlanQueryNicCapability(
932     IN P_ADAPTER_T prAdapter
933     );
934
935
936 /*----------------------------------------------------------------------------*/
937 /* PD MCR Retrieve by Polling                                         */
938 /*----------------------------------------------------------------------------*/
939 WLAN_STATUS
940 wlanQueryPdMcr(
941     IN P_ADAPTER_T prAdapter,
942     IN P_PARAM_MCR_RW_STRUC_T prMcrRdInfo
943     );
944 /*----------------------------------------------------------------------------*/
945 /* Loading Manufacture Data                                                   */
946 /*----------------------------------------------------------------------------*/
947 WLAN_STATUS
948 wlanLoadManufactureData (
949     IN P_ADAPTER_T prAdapter,
950     IN P_REG_INFO_T prRegInfo
951     );
952
953
954 /*----------------------------------------------------------------------------*/
955 /* Media Stream Mode                                                          */
956 /*----------------------------------------------------------------------------*/
957 BOOLEAN
958 wlanResetMediaStreamMode(
959     IN P_ADAPTER_T prAdapter
960     );
961
962
963 /*----------------------------------------------------------------------------*/
964 /* Timer Timeout Check (for Glue Layer)                                       */
965 /*----------------------------------------------------------------------------*/
966 WLAN_STATUS
967 wlanTimerTimeoutCheck(
968     IN P_ADAPTER_T prAdapter
969     );
970
971
972 /*----------------------------------------------------------------------------*/
973 /* Mailbox Message Check (for Glue Layer)                                     */
974 /*----------------------------------------------------------------------------*/
975 WLAN_STATUS
976 wlanProcessMboxMessage(
977     IN P_ADAPTER_T prAdapter
978     );
979
980
981 /*----------------------------------------------------------------------------*/
982 /* TX Pending Packets Handling (for Glue Layer)                               */
983 /*----------------------------------------------------------------------------*/
984 WLAN_STATUS
985 wlanEnqueueTxPacket (
986     IN P_ADAPTER_T      prAdapter,
987     IN P_NATIVE_PACKET  prNativePacket
988     );
989
990 WLAN_STATUS
991 wlanFlushTxPendingPackets(
992     IN P_ADAPTER_T prAdapter
993     );
994
995 WLAN_STATUS
996 wlanTxPendingPackets (
997     IN      P_ADAPTER_T prAdapter,
998     IN OUT  PBOOLEAN    pfgHwAccess
999     );
1000
1001
1002 /*----------------------------------------------------------------------------*/
1003 /* Low Power Acquire/Release (for Glue Layer)                                 */
1004 /*----------------------------------------------------------------------------*/
1005 WLAN_STATUS
1006 wlanAcquirePowerControl(
1007     IN P_ADAPTER_T prAdapter
1008     );
1009
1010 WLAN_STATUS
1011 wlanReleasePowerControl(
1012     IN P_ADAPTER_T prAdapter
1013     );
1014
1015
1016 /*----------------------------------------------------------------------------*/
1017 /* Pending Packets Number Reporting (for Glue Layer)                          */
1018 /*----------------------------------------------------------------------------*/
1019 UINT_32
1020 wlanGetTxPendingFrameCount (
1021     IN P_ADAPTER_T prAdapter
1022     );
1023
1024
1025 /*----------------------------------------------------------------------------*/
1026 /* ACPI state inquiry (for Glue Layer)                                        */
1027 /*----------------------------------------------------------------------------*/
1028 ENUM_ACPI_STATE_T
1029 wlanGetAcpiState (
1030     IN P_ADAPTER_T prAdapter
1031     );
1032
1033 VOID
1034 wlanSetAcpiState (
1035     IN P_ADAPTER_T prAdapter,
1036     IN ENUM_ACPI_STATE_T ePowerState
1037     );
1038
1039 #if CFG_SUPPORT_OSC_SETTING && defined(MT5931)
1040 WLAN_STATUS
1041 wlanSetMcuOscStableTime (
1042     IN P_ADAPTER_T      prAdapter,
1043     IN UINT_16          u2OscStableTime
1044     );
1045 #endif
1046
1047 VOID
1048 wlanDefTxPowerCfg (
1049     IN P_ADAPTER_T      prAdapter
1050     );
1051
1052 /*----------------------------------------------------------------------------*/
1053 /* get ECO version from Revision ID register (for Win32)                      */
1054 /*----------------------------------------------------------------------------*/
1055 UINT_8
1056 wlanGetEcoVersion(
1057     IN P_ADAPTER_T prAdapter
1058     );
1059
1060 /*----------------------------------------------------------------------------*/
1061 /* set preferred band configuration corresponding to network type             */
1062 /*----------------------------------------------------------------------------*/
1063 VOID
1064 wlanSetPreferBandByNetwork (
1065     IN P_ADAPTER_T prAdapter,
1066     IN ENUM_BAND_T eBand,
1067     IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex
1068     );
1069
1070 /*----------------------------------------------------------------------------*/
1071 /* get currently operating channel information                                */
1072 /*----------------------------------------------------------------------------*/
1073 UINT_8
1074 wlanGetChannelNumberByNetwork (
1075     IN P_ADAPTER_T prAdapter,
1076     IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex
1077     );
1078
1079 /*----------------------------------------------------------------------------*/
1080 /* get BSS Descriptor information                                             */
1081 /*----------------------------------------------------------------------------*/
1082 P_BSS_DESC_T
1083 wlanGetTargetBssDescByNetwork (
1084     IN P_ADAPTER_T prAdapter,
1085     IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex
1086     );
1087
1088 /*----------------------------------------------------------------------------*/
1089 /* check for system configuration to generate message on scan list            */
1090 /*----------------------------------------------------------------------------*/
1091 WLAN_STATUS
1092 wlanCheckSystemConfiguration (
1093     IN P_ADAPTER_T prAdapter
1094     );
1095
1096
1097 #endif /* _WLAN_LIB_H */
1098