blob: 3e620a726212958e6070df8380b4fe2c957c239f [file] [log] [blame]
Forest Bond5449c682009-04-25 10:30:44 -04001/*
2 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
3 * All rights reserved.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 *
20 * File: vntwifi.h
21 *
22 * Purpose: export VNT Host WiFi library function
23 *
24 * Author: Yiching Chen
25 *
26 * Date: Jan 7, 2004
27 *
28 */
29
30#ifndef __VNTWIFI_H__
31#define __VNTWIFI_H__
32
33#if !defined(__TTYPE_H__)
34#include "ttype.h"
35#endif
36#if !defined(__80211MGR_H__)
37#include "80211mgr.h"
38#endif
39#if !defined(__CARD_H__)
40#include "card.h"
41#endif
42
43/*--------------------- Export Definitions -------------------------*/
44#define RATE_1M 0
45#define RATE_2M 1
46#define RATE_5M 2
47#define RATE_11M 3
48#define RATE_6M 4
49#define RATE_9M 5
50#define RATE_12M 6
51#define RATE_18M 7
52#define RATE_24M 8
53#define RATE_36M 9
54#define RATE_48M 10
55#define RATE_54M 11
56#define RATE_AUTO 12
57#define MAX_RATE 12
58
59// key CipherSuite
60#define KEY_CTL_WEP 0x00
61#define KEY_CTL_NONE 0x01
62#define KEY_CTL_TKIP 0x02
63#define KEY_CTL_CCMP 0x03
64#define KEY_CTL_INVALID 0xFF
65
66#define CHANNEL_MAX_24G 14
67
68#define MAX_BSS_NUM 42
69
70#define MAX_PMKID_CACHE 16
71
72// Pre-configured Authenticaiton Mode (from XP)
73typedef enum tagWMAC_AUTHENTICATION_MODE {
74
75 WMAC_AUTH_OPEN,
76 WMAC_AUTH_SHAREKEY,
77 WMAC_AUTH_AUTO,
78 WMAC_AUTH_WPA,
79 WMAC_AUTH_WPAPSK,
80 WMAC_AUTH_WPANONE,
81 WMAC_AUTH_WPA2,
82 WMAC_AUTH_WPA2PSK,
83 WMAC_AUTH_MAX // Not a real mode, defined as upper bound
84
85} WMAC_AUTHENTICATION_MODE, *PWMAC_AUTHENTICATION_MODE;
86
87typedef enum tagWMAC_ENCRYPTION_MODE {
88
89 WMAC_ENCRYPTION_WEPEnabled,
90 WMAC_ENCRYPTION_WEPDisabled,
91 WMAC_ENCRYPTION_WEPKeyAbsent,
92 WMAC_ENCRYPTION_WEPNotSupported,
93 WMAC_ENCRYPTION_TKIPEnabled,
94 WMAC_ENCRYPTION_TKIPKeyAbsent,
95 WMAC_ENCRYPTION_AESEnabled,
96 WMAC_ENCRYPTION_AESKeyAbsent
97
98} WMAC_ENCRYPTION_MODE, *PWMAC_ENCRYPTION_MODE;
99
100// Pre-configured Mode (from XP)
101
102typedef enum tagWMAC_CONFIG_MODE {
103
104 WMAC_CONFIG_ESS_STA = 0,
105 WMAC_CONFIG_IBSS_STA,
106 WMAC_CONFIG_AUTO,
107 WMAC_CONFIG_AP
108
109} WMAC_CONFIG_MODE, *PWMAC_CONFIG_MODE;
110
111
112
113typedef enum tagWMAC_POWER_MODE {
114
115 WMAC_POWER_CAM,
116 WMAC_POWER_FAST,
117 WMAC_POWER_MAX
118
119} WMAC_POWER_MODE, *PWMAC_POWER_MODE;
120
121#define VNTWIFIbIsShortSlotTime(wCapInfo) \
122 WLAN_GET_CAP_INFO_SHORTSLOTTIME(wCapInfo) \
123
124#define VNTWIFIbIsProtectMode(byERP) \
125 ((byERP & WLAN_EID_ERP_USE_PROTECTION) != 0) \
126
127#define VNTWIFIbIsBarkerMode(byERP) \
128 ((byERP & WLAN_EID_ERP_BARKER_MODE) != 0) \
129
130#define VNTWIFIbIsShortPreamble(wCapInfo) \
131 WLAN_GET_CAP_INFO_SHORTPREAMBLE(wCapInfo) \
132
133#define VNTWIFIbIsEncryption(wCapInfo) \
134 WLAN_GET_CAP_INFO_PRIVACY(wCapInfo) \
135
136#define VNTWIFIbIsESS(wCapInfo) \
137 WLAN_GET_CAP_INFO_ESS(wCapInfo) \
138
139
140/*--------------------- Export Classes ----------------------------*/
141
142/*--------------------- Export Variables --------------------------*/
143
144
145/*--------------------- Export Types ------------------------------*/
146
147
148/*--------------------- Export Functions --------------------------*/
149
150#ifdef __cplusplus
151extern "C" { /* Assume C declarations for C++ */
152#endif /* __cplusplus */
153
154
155VOID
156VNTWIFIvSetIBSSParameter (
157 IN PVOID pMgmtHandle,
158 IN WORD wBeaconPeriod,
159 IN WORD wATIMWindow,
160 IN UINT uChannel
161 );
162
163VOID
164VNTWIFIvSetOPMode (
165 IN PVOID pMgmtHandle,
166 IN WMAC_CONFIG_MODE eOPMode
167 );
168
169PWLAN_IE_SSID
170VNTWIFIpGetCurrentSSID(
171 IN PVOID pMgmtHandle
172 );
173
174UINT
175VNTWIFIpGetCurrentChannel(
176 IN PVOID pMgmtHandle
177 );
178
179WORD
180VNTWIFIwGetAssocID (
181 IN PVOID pMgmtHandle
182 );
183
184BYTE
185VNTWIFIbyGetMaxSupportRate (
186 IN PWLAN_IE_SUPP_RATES pSupportRateIEs,
187 IN PWLAN_IE_SUPP_RATES pExtSupportRateIEs
188 );
189
190BYTE
191VNTWIFIbyGetACKTxRate (
192 IN BYTE byRxDataRate,
193 IN PWLAN_IE_SUPP_RATES pSupportRateIEs,
194 IN PWLAN_IE_SUPP_RATES pExtSupportRateIEs
195 );
196
197VOID
198VNTWIFIvSetAuthenticationMode (
199 IN PVOID pMgmtHandle,
200 IN WMAC_AUTHENTICATION_MODE eAuthMode
201 );
202
203VOID
204VNTWIFIvSetEncryptionMode (
205 IN PVOID pMgmtHandle,
206 IN WMAC_ENCRYPTION_MODE eEncryptionMode
207 );
208
209
210BOOL
211VNTWIFIbConfigPhyMode(
212 IN PVOID pMgmtHandle,
213 IN CARD_PHY_TYPE ePhyType
214 );
215
216VOID
217VNTWIFIbGetConfigPhyMode(
218 IN PVOID pMgmtHandle,
219 OUT PVOID pePhyType
220 );
221
222VOID
223VNTWIFIvQueryBSSList(
224 IN PVOID pMgmtHandle,
225 OUT PUINT puBSSCount,
226 OUT PVOID *pvFirstBSS
227 );
228
229
230
231
232VOID
233VNTWIFIvGetNextBSS (
234 IN PVOID pMgmtHandle,
235 IN PVOID pvCurrentBSS,
236 OUT PVOID *pvNextBSS
237 );
238
239
240
241VOID
242VNTWIFIvUpdateNodeTxCounter(
243 IN PVOID pMgmtHandle,
244 IN PBYTE pbyDestAddress,
245 IN BOOL bTxOk,
246 IN WORD wRate,
247 IN PBYTE pbyTxFailCount
248 );
249
250
251VOID
252VNTWIFIvGetTxRate(
253 IN PVOID pMgmtHandle,
254 IN PBYTE pbyDestAddress,
255 OUT PWORD pwTxDataRate,
256 OUT PBYTE pbyACKRate,
257 OUT PBYTE pbyCCKBasicRate,
258 OUT PBYTE pbyOFDMBasicRate
259 );
260/*
261BOOL
262VNTWIFIbInit(
263 IN PVOID pAdapterHandler,
264 OUT PVOID *pMgmtHandler
265 );
266*/
267
268BYTE
269VNTWIFIbyGetKeyCypher(
270 IN PVOID pMgmtHandle,
271 IN BOOL bGroupKey
272 );
273
274
275
276
277BOOL
278VNTWIFIbSetPMKIDCache (
279 IN PVOID pMgmtObject,
280 IN ULONG ulCount,
281 IN PVOID pPMKIDInfo
282 );
283
284BOOL
285VNTWIFIbCommandRunning (
286 IN PVOID pMgmtObject
287 );
288
289WORD
290VNTWIFIwGetMaxSupportRate(
291 IN PVOID pMgmtObject
292 );
293
294// for 802.11h
295VOID
296VNTWIFIvSet11h (
297 IN PVOID pMgmtObject,
298 IN BOOL b11hEnable
299 );
300
301BOOL
302VNTWIFIbMeasureReport(
303 IN PVOID pMgmtObject,
304 IN BOOL bEndOfReport,
305 IN PVOID pvMeasureEID,
306 IN BYTE byReportMode,
307 IN BYTE byBasicMap,
308 IN BYTE byCCAFraction,
309 IN PBYTE pbyRPIs
310 );
311
312BOOL
313VNTWIFIbChannelSwitch(
314 IN PVOID pMgmtObject,
315 IN BYTE byNewChannel
316 );
317/*
318BOOL
319VNTWIFIbRadarPresent(
320 IN PVOID pMgmtObject,
321 IN BYTE byChannel
322 );
323*/
324
325#ifdef __cplusplus
326} /* End of extern "C" { */
327#endif /* __cplusplus */
328
329
330#endif //__VNTWIFI_H__