Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / staging / vt6655 / vntwifi.h
1 /*
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 #include "ttype.h"
34 #include "80211mgr.h"
35 #include "card.h"
36 #include "wpa2.h"
37
38 /*--------------------- Export Definitions -------------------------*/
39 #define RATE_1M 0
40 #define RATE_2M 1
41 #define RATE_5M 2
42 #define RATE_11M 3
43 #define RATE_6M 4
44 #define RATE_9M 5
45 #define RATE_12M 6
46 #define RATE_18M 7
47 #define RATE_24M 8
48 #define RATE_36M 9
49 #define RATE_48M 10
50 #define RATE_54M 11
51 #define RATE_AUTO 12
52 #define MAX_RATE 12
53
54 // key CipherSuite
55 #define KEY_CTL_WEP 0x00
56 #define KEY_CTL_NONE 0x01
57 #define KEY_CTL_TKIP 0x02
58 #define KEY_CTL_CCMP 0x03
59 #define KEY_CTL_INVALID 0xFF
60
61 #define CHANNEL_MAX_24G 14
62
63 #define MAX_BSS_NUM 42
64
65 // Pre-configured Authenticaiton Mode (from XP)
66 typedef enum tagWMAC_AUTHENTICATION_MODE {
67
68 WMAC_AUTH_OPEN,
69 WMAC_AUTH_SHAREKEY,
70 WMAC_AUTH_AUTO,
71 WMAC_AUTH_WPA,
72 WMAC_AUTH_WPAPSK,
73 WMAC_AUTH_WPANONE,
74 WMAC_AUTH_WPA2,
75 WMAC_AUTH_WPA2PSK,
76 WMAC_AUTH_MAX // Not a real mode, defined as upper bound
77
78 } WMAC_AUTHENTICATION_MODE, *PWMAC_AUTHENTICATION_MODE;
79
80 typedef enum tagWMAC_ENCRYPTION_MODE {
81
82 WMAC_ENCRYPTION_WEPEnabled,
83 WMAC_ENCRYPTION_WEPDisabled,
84 WMAC_ENCRYPTION_WEPKeyAbsent,
85 WMAC_ENCRYPTION_WEPNotSupported,
86 WMAC_ENCRYPTION_TKIPEnabled,
87 WMAC_ENCRYPTION_TKIPKeyAbsent,
88 WMAC_ENCRYPTION_AESEnabled,
89 WMAC_ENCRYPTION_AESKeyAbsent
90
91 } WMAC_ENCRYPTION_MODE, *PWMAC_ENCRYPTION_MODE;
92
93 // Pre-configured Mode (from XP)
94
95 typedef enum tagWMAC_CONFIG_MODE {
96
97 WMAC_CONFIG_ESS_STA = 0,
98 WMAC_CONFIG_IBSS_STA,
99 WMAC_CONFIG_AUTO,
100 WMAC_CONFIG_AP
101
102 } WMAC_CONFIG_MODE, *PWMAC_CONFIG_MODE;
103
104
105
106 typedef enum tagWMAC_POWER_MODE {
107
108 WMAC_POWER_CAM,
109 WMAC_POWER_FAST,
110 WMAC_POWER_MAX
111
112 } WMAC_POWER_MODE, *PWMAC_POWER_MODE;
113
114 #define VNTWIFIbIsShortSlotTime(wCapInfo) \
115 WLAN_GET_CAP_INFO_SHORTSLOTTIME(wCapInfo) \
116
117 #define VNTWIFIbIsProtectMode(byERP) \
118 ((byERP & WLAN_EID_ERP_USE_PROTECTION) != 0) \
119
120 #define VNTWIFIbIsBarkerMode(byERP) \
121 ((byERP & WLAN_EID_ERP_BARKER_MODE) != 0) \
122
123 #define VNTWIFIbIsShortPreamble(wCapInfo) \
124 WLAN_GET_CAP_INFO_SHORTPREAMBLE(wCapInfo) \
125
126 #define VNTWIFIbIsEncryption(wCapInfo) \
127 WLAN_GET_CAP_INFO_PRIVACY(wCapInfo) \
128
129 #define VNTWIFIbIsESS(wCapInfo) \
130 WLAN_GET_CAP_INFO_ESS(wCapInfo) \
131
132
133 /*--------------------- Export Classes ----------------------------*/
134
135 /*--------------------- Export Variables --------------------------*/
136
137
138 /*--------------------- Export Types ------------------------------*/
139
140
141 /*--------------------- Export Functions --------------------------*/
142
143 void
144 VNTWIFIvSetIBSSParameter (
145 void *pMgmtHandle,
146 WORD wBeaconPeriod,
147 WORD wATIMWindow,
148 UINT uChannel
149 );
150
151 void
152 VNTWIFIvSetOPMode (
153 void *pMgmtHandle,
154 WMAC_CONFIG_MODE eOPMode
155 );
156
157 PWLAN_IE_SSID
158 VNTWIFIpGetCurrentSSID(
159 void *pMgmtHandle
160 );
161
162 UINT
163 VNTWIFIpGetCurrentChannel(
164 void *pMgmtHandle
165 );
166
167 WORD
168 VNTWIFIwGetAssocID (
169 void *pMgmtHandle
170 );
171
172 BYTE
173 VNTWIFIbyGetMaxSupportRate (
174 PWLAN_IE_SUPP_RATES pSupportRateIEs,
175 PWLAN_IE_SUPP_RATES pExtSupportRateIEs
176 );
177
178 BYTE
179 VNTWIFIbyGetACKTxRate (
180 BYTE byRxDataRate,
181 PWLAN_IE_SUPP_RATES pSupportRateIEs,
182 PWLAN_IE_SUPP_RATES pExtSupportRateIEs
183 );
184
185 void
186 VNTWIFIvSetAuthenticationMode (
187 void *pMgmtHandle,
188 WMAC_AUTHENTICATION_MODE eAuthMode
189 );
190
191 void
192 VNTWIFIvSetEncryptionMode (
193 void *pMgmtHandle,
194 WMAC_ENCRYPTION_MODE eEncryptionMode
195 );
196
197
198 BOOL
199 VNTWIFIbConfigPhyMode(
200 void *pMgmtHandle,
201 CARD_PHY_TYPE ePhyType
202 );
203
204 void
205 VNTWIFIbGetConfigPhyMode(
206 void *pMgmtHandle,
207 void *pePhyType
208 );
209
210 void
211 VNTWIFIvQueryBSSList(
212 void *pMgmtHandle,
213 PUINT puBSSCount,
214 void **pvFirstBSS
215 );
216
217
218
219
220 void
221 VNTWIFIvGetNextBSS (
222 void *pMgmtHandle,
223 void *pvCurrentBSS,
224 void **pvNextBSS
225 );
226
227
228
229 void
230 VNTWIFIvUpdateNodeTxCounter(
231 void *pMgmtHandle,
232 PBYTE pbyDestAddress,
233 BOOL bTxOk,
234 WORD wRate,
235 PBYTE pbyTxFailCount
236 );
237
238
239 void
240 VNTWIFIvGetTxRate(
241 void *pMgmtHandle,
242 PBYTE pbyDestAddress,
243 PWORD pwTxDataRate,
244 PBYTE pbyACKRate,
245 PBYTE pbyCCKBasicRate,
246 PBYTE pbyOFDMBasicRate
247 );
248 /*
249 BOOL
250 VNTWIFIbInit(
251 void *pAdapterHandler,
252 void **pMgmtHandler
253 );
254 */
255
256 BYTE
257 VNTWIFIbyGetKeyCypher(
258 void *pMgmtHandle,
259 BOOL bGroupKey
260 );
261
262
263
264
265 BOOL
266 VNTWIFIbSetPMKIDCache (
267 void *pMgmtObject,
268 ULONG ulCount,
269 void *pPMKIDInfo
270 );
271
272 BOOL
273 VNTWIFIbCommandRunning (
274 void *pMgmtObject
275 );
276
277 WORD
278 VNTWIFIwGetMaxSupportRate(
279 void *pMgmtObject
280 );
281
282 // for 802.11h
283 void
284 VNTWIFIvSet11h (
285 void *pMgmtObject,
286 BOOL b11hEnable
287 );
288
289 BOOL
290 VNTWIFIbMeasureReport(
291 void *pMgmtObject,
292 BOOL bEndOfReport,
293 void *pvMeasureEID,
294 BYTE byReportMode,
295 BYTE byBasicMap,
296 BYTE byCCAFraction,
297 PBYTE pbyRPIs
298 );
299
300 BOOL
301 VNTWIFIbChannelSwitch(
302 void *pMgmtObject,
303 BYTE byNewChannel
304 );
305 /*
306 BOOL
307 VNTWIFIbRadarPresent(
308 void *pMgmtObject,
309 BYTE byChannel
310 );
311 */
312
313 #endif //__VNTWIFI_H__