]>
Commit | Line | Data |
---|---|---|
5449c685 FB |
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: wmgr.h | |
21 | * | |
22 | * Purpose: | |
23 | * | |
24 | * Author: lyndon chen | |
25 | * | |
26 | * Date: Jan 2, 2003 | |
27 | * | |
28 | * Functions: | |
29 | * | |
30 | * Revision History: | |
31 | * | |
32 | */ | |
33 | ||
5449c685 FB |
34 | #ifndef __WMGR_H__ |
35 | #define __WMGR_H__ | |
36 | ||
5449c685 | 37 | #include "ttype.h" |
5449c685 | 38 | #include "80211mgr.h" |
5449c685 | 39 | #include "80211hdr.h" |
5449c685 | 40 | #include "wcmd.h" |
5449c685 | 41 | #include "bssdb.h" |
5449c685 | 42 | #include "wpa2.h" |
5449c685 | 43 | #include "vntwifi.h" |
a7ad322a | 44 | #include "card.h" |
5449c685 FB |
45 | |
46 | /*--------------------- Export Definitions -------------------------*/ | |
47 | ||
48 | ||
49 | ||
50 | // Scan time | |
51 | #define PROBE_DELAY 100 // (us) | |
52 | #define SWITCH_CHANNEL_DELAY 200 // (us) | |
53 | #define WLAN_SCAN_MINITIME 25 // (ms) | |
54 | #define WLAN_SCAN_MAXTIME 100 // (ms) | |
55 | #define TRIVIAL_SYNC_DIFFERENCE 0 // (us) | |
56 | #define DEFAULT_IBSS_BI 100 // (ms) | |
57 | ||
58 | #define WCMD_ACTIVE_SCAN_TIME 50 //(ms) | |
59 | #define WCMD_PASSIVE_SCAN_TIME 100 //(ms) | |
60 | ||
61 | ||
62 | #define DEFAULT_MSDU_LIFETIME 512 // ms | |
63 | #define DEFAULT_MSDU_LIFETIME_RES_64us 8000 // 64us | |
64 | ||
65 | #define DEFAULT_MGN_LIFETIME 8 // ms | |
66 | #define DEFAULT_MGN_LIFETIME_RES_64us 125 // 64us | |
67 | ||
68 | #define MAKE_BEACON_RESERVED 10 //(us) | |
69 | ||
70 | ||
71 | #define TIM_MULTICAST_MASK 0x01 | |
72 | #define TIM_BITMAPOFFSET_MASK 0xFE | |
73 | #define DEFAULT_DTIM_PERIOD 1 | |
74 | ||
75 | #define AP_LONG_RETRY_LIMIT 4 | |
76 | ||
77 | #define DEFAULT_IBSS_CHANNEL 6 //2.4G | |
78 | ||
79 | ||
80 | /*--------------------- Export Classes ----------------------------*/ | |
81 | ||
82 | /*--------------------- Export Variables --------------------------*/ | |
83 | ||
84 | /*--------------------- Export Types ------------------------------*/ | |
85 | #define timer_expire(timer,next_tick) mod_timer(&timer, RUN_AT(next_tick)) | |
e3fd16d0 | 86 | typedef void (*TimerFunction)(unsigned long); |
5449c685 FB |
87 | |
88 | ||
89 | //+++ NDIS related | |
90 | ||
5c9824e1 | 91 | typedef unsigned char NDIS_802_11_MAC_ADDRESS[6]; |
5449c685 FB |
92 | typedef struct _NDIS_802_11_AI_REQFI |
93 | { | |
800acdbd CC |
94 | unsigned short Capabilities; |
95 | unsigned short ListenInterval; | |
5449c685 FB |
96 | NDIS_802_11_MAC_ADDRESS CurrentAPAddress; |
97 | } NDIS_802_11_AI_REQFI, *PNDIS_802_11_AI_REQFI; | |
98 | ||
99 | typedef struct _NDIS_802_11_AI_RESFI | |
100 | { | |
800acdbd CC |
101 | unsigned short Capabilities; |
102 | unsigned short StatusCode; | |
103 | unsigned short AssociationId; | |
5449c685 FB |
104 | } NDIS_802_11_AI_RESFI, *PNDIS_802_11_AI_RESFI; |
105 | ||
106 | typedef struct _NDIS_802_11_ASSOCIATION_INFORMATION | |
107 | { | |
e3fd16d0 | 108 | unsigned long Length; |
800acdbd | 109 | unsigned short AvailableRequestFixedIEs; |
5449c685 | 110 | NDIS_802_11_AI_REQFI RequestFixedIEs; |
e3fd16d0 CC |
111 | unsigned long RequestIELength; |
112 | unsigned long OffsetRequestIEs; | |
800acdbd | 113 | unsigned short AvailableResponseFixedIEs; |
5449c685 | 114 | NDIS_802_11_AI_RESFI ResponseFixedIEs; |
e3fd16d0 CC |
115 | unsigned long ResponseIELength; |
116 | unsigned long OffsetResponseIEs; | |
5449c685 FB |
117 | } NDIS_802_11_ASSOCIATION_INFORMATION, *PNDIS_802_11_ASSOCIATION_INFORMATION; |
118 | ||
119 | ||
120 | ||
121 | typedef struct tagSAssocInfo { | |
122 | NDIS_802_11_ASSOCIATION_INFORMATION AssocInfo; | |
3fc9b584 | 123 | unsigned char abyIEs[WLAN_BEACON_FR_MAXLEN+WLAN_BEACON_FR_MAXLEN]; |
5449c685 | 124 | // store ReqIEs set by OID_802_11_ASSOCIATION_INFORMATION |
e3fd16d0 | 125 | unsigned long RequestIELength; |
3fc9b584 | 126 | unsigned char abyReqIEs[WLAN_BEACON_FR_MAXLEN]; |
a884847a | 127 | } SAssocInfo, *PSAssocInfo; |
5449c685 FB |
128 | //--- |
129 | ||
130 | ||
131 | /* | |
132 | typedef enum tagWMAC_AUTHENTICATION_MODE { | |
133 | ||
134 | ||
135 | WMAC_AUTH_OPEN, | |
136 | WMAC_AUTH_SHAREKEY, | |
137 | WMAC_AUTH_AUTO, | |
138 | WMAC_AUTH_WPA, | |
139 | WMAC_AUTH_WPAPSK, | |
140 | WMAC_AUTH_WPANONE, | |
141 | WMAC_AUTH_WPA2, | |
142 | WMAC_AUTH_WPA2PSK, | |
143 | WMAC_AUTH_MAX // Not a real mode, defined as upper bound | |
144 | ||
145 | ||
146 | } WMAC_AUTHENTICATION_MODE, *PWMAC_AUTHENTICATION_MODE; | |
147 | */ | |
148 | ||
149 | ||
150 | // Pre-configured Mode (from XP) | |
151 | /* | |
152 | typedef enum tagWMAC_CONFIG_MODE { | |
153 | WMAC_CONFIG_ESS_STA, | |
154 | WMAC_CONFIG_IBSS_STA, | |
155 | WMAC_CONFIG_AUTO, | |
156 | WMAC_CONFIG_AP | |
157 | ||
158 | } WMAC_CONFIG_MODE, *PWMAC_CONFIG_MODE; | |
159 | */ | |
160 | ||
161 | typedef enum tagWMAC_SCAN_TYPE { | |
162 | ||
163 | WMAC_SCAN_ACTIVE, | |
164 | WMAC_SCAN_PASSIVE, | |
165 | WMAC_SCAN_HYBRID | |
166 | ||
167 | } WMAC_SCAN_TYPE, *PWMAC_SCAN_TYPE; | |
168 | ||
169 | ||
170 | typedef enum tagWMAC_SCAN_STATE { | |
171 | ||
172 | WMAC_NO_SCANNING, | |
173 | WMAC_IS_SCANNING, | |
174 | WMAC_IS_PROBEPENDING | |
175 | ||
176 | } WMAC_SCAN_STATE, *PWMAC_SCAN_STATE; | |
177 | ||
178 | ||
179 | ||
180 | // Notes: | |
181 | // Basic Service Set state explained as following: | |
182 | // WMAC_STATE_IDLE : no BSS is selected (Adhoc or Infra) | |
183 | // WMAC_STATE_STARTED : no BSS is selected, start own IBSS (Adhoc only) | |
184 | // WMAC_STATE_JOINTED : BSS is selected and synchronized (Adhoc or Infra) | |
185 | // WMAC_STATE_AUTHPENDING : Authentication pending (Infra) | |
186 | // WMAC_STATE_AUTH : Authenticated (Infra) | |
187 | // WMAC_STATE_ASSOCPENDING : Association pending (Infra) | |
188 | // WMAC_STATE_ASSOC : Associated (Infra) | |
189 | ||
190 | typedef enum tagWMAC_BSS_STATE { | |
191 | ||
192 | WMAC_STATE_IDLE, | |
193 | WMAC_STATE_STARTED, | |
194 | WMAC_STATE_JOINTED, | |
195 | WMAC_STATE_AUTHPENDING, | |
196 | WMAC_STATE_AUTH, | |
197 | WMAC_STATE_ASSOCPENDING, | |
198 | WMAC_STATE_ASSOC | |
199 | ||
200 | } WMAC_BSS_STATE, *PWMAC_BSS_STATE; | |
201 | ||
202 | // WMAC selected running mode | |
203 | typedef enum tagWMAC_CURRENT_MODE { | |
204 | ||
205 | WMAC_MODE_STANDBY, | |
206 | WMAC_MODE_ESS_STA, | |
207 | WMAC_MODE_IBSS_STA, | |
208 | WMAC_MODE_ESS_AP | |
209 | ||
210 | } WMAC_CURRENT_MODE, *PWMAC_CURRENT_MODE; | |
211 | ||
212 | /* | |
213 | typedef enum tagWMAC_POWER_MODE { | |
214 | ||
215 | WMAC_POWER_CAM, | |
216 | WMAC_POWER_FAST, | |
217 | WMAC_POWER_MAX | |
218 | ||
219 | } WMAC_POWER_MODE, *PWMAC_POWER_MODE; | |
220 | */ | |
221 | ||
222 | ||
25985edc | 223 | // Tx Management Packet descriptor |
5449c685 FB |
224 | typedef struct tagSTxMgmtPacket { |
225 | ||
226 | PUWLAN_80211HDR p80211Header; | |
b6e95cd5 CC |
227 | unsigned int cbMPDULen; |
228 | unsigned int cbPayloadLen; | |
5449c685 | 229 | |
a884847a | 230 | } STxMgmtPacket, *PSTxMgmtPacket; |
5449c685 FB |
231 | |
232 | ||
25985edc | 233 | // Rx Management Packet descriptor |
5449c685 FB |
234 | typedef struct tagSRxMgmtPacket { |
235 | ||
236 | PUWLAN_80211HDR p80211Header; | |
237 | QWORD qwLocalTSF; | |
b6e95cd5 CC |
238 | unsigned int cbMPDULen; |
239 | unsigned int cbPayloadLen; | |
240 | unsigned int uRSSI; | |
3fc9b584 CC |
241 | unsigned char bySQ; |
242 | unsigned char byRxRate; | |
243 | unsigned char byRxChannel; | |
5449c685 | 244 | |
a884847a | 245 | } SRxMgmtPacket, *PSRxMgmtPacket; |
5449c685 FB |
246 | |
247 | ||
248 | ||
249 | typedef struct tagSMgmtObject | |
250 | { | |
251 | ||
830a619c | 252 | void * pAdapter; |
5449c685 | 253 | // MAC address |
3fc9b584 | 254 | unsigned char abyMACAddr[WLAN_ADDR_LEN]; |
5449c685 FB |
255 | |
256 | // Configuration Mode | |
257 | WMAC_CONFIG_MODE eConfigMode; // MAC pre-configed mode | |
258 | CARD_PHY_TYPE eCurrentPHYMode; | |
259 | CARD_PHY_TYPE eConfigPHYMode; | |
260 | ||
261 | ||
262 | // Operation state variables | |
263 | WMAC_CURRENT_MODE eCurrMode; // MAC current connection mode | |
264 | WMAC_BSS_STATE eCurrState; // MAC current BSS state | |
265 | ||
266 | PKnownBSS pCurrBSS; | |
3fc9b584 CC |
267 | unsigned char byCSSGK; |
268 | unsigned char byCSSPK; | |
5449c685 | 269 | |
3fc9b584 CC |
270 | // unsigned char abyNewSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN]; |
271 | // unsigned char abyNewExtSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN]; | |
5449c685 FB |
272 | |
273 | // Current state vars | |
b6e95cd5 | 274 | unsigned int uCurrChannel; |
3fc9b584 CC |
275 | unsigned char abyCurrSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1]; |
276 | unsigned char abyCurrExtSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1]; | |
277 | unsigned char abyCurrSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1]; | |
278 | unsigned char abyCurrBSSID[WLAN_BSSID_LEN]; | |
2986db5f CC |
279 | unsigned short wCurrCapInfo; |
280 | unsigned short wCurrAID; | |
281 | unsigned short wCurrATIMWindow; | |
282 | unsigned short wCurrBeaconPeriod; | |
7b6a0013 | 283 | bool bIsDS; |
3fc9b584 | 284 | unsigned char byERPContext; |
5449c685 FB |
285 | |
286 | CMD_STATE eCommandState; | |
b6e95cd5 | 287 | unsigned int uScanChannel; |
5449c685 FB |
288 | |
289 | // Desire joinning BSS vars | |
3fc9b584 CC |
290 | unsigned char abyDesireSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1]; |
291 | unsigned char abyDesireBSSID[WLAN_BSSID_LEN]; | |
5449c685 FB |
292 | |
293 | // Adhoc or AP configuration vars | |
3fc9b584 | 294 | //unsigned char abyAdHocSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1]; |
2986db5f CC |
295 | unsigned short wIBSSBeaconPeriod; |
296 | unsigned short wIBSSATIMWindow; | |
b6e95cd5 | 297 | unsigned int uIBSSChannel; |
3fc9b584 CC |
298 | unsigned char abyIBSSSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1]; |
299 | unsigned char byAPBBType; | |
300 | unsigned char abyWPAIE[MAX_WPA_IE_LEN]; | |
2986db5f | 301 | unsigned short wWPAIELen; |
5449c685 | 302 | |
b6e95cd5 | 303 | unsigned int uAssocCount; |
7b6a0013 | 304 | bool bMoreData; |
5449c685 FB |
305 | |
306 | // Scan state vars | |
307 | WMAC_SCAN_STATE eScanState; | |
308 | WMAC_SCAN_TYPE eScanType; | |
b6e95cd5 CC |
309 | unsigned int uScanStartCh; |
310 | unsigned int uScanEndCh; | |
2986db5f | 311 | unsigned short wScanSteps; |
b6e95cd5 | 312 | unsigned int uScanBSSType; |
5449c685 | 313 | // Desire scannig vars |
3fc9b584 CC |
314 | unsigned char abyScanSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1]; |
315 | unsigned char abyScanBSSID[WLAN_BSSID_LEN]; | |
5449c685 FB |
316 | |
317 | // Privacy | |
318 | WMAC_AUTHENTICATION_MODE eAuthenMode; | |
319 | WMAC_ENCRYPTION_MODE eEncryptionMode; | |
7b6a0013 | 320 | bool bShareKeyAlgorithm; |
3fc9b584 | 321 | unsigned char abyChallenge[WLAN_CHALLENGE_LEN]; |
7b6a0013 | 322 | bool bPrivacyInvoked; |
5449c685 FB |
323 | |
324 | // Received beacon state vars | |
7b6a0013 CC |
325 | bool bInTIM; |
326 | bool bMulticastTIM; | |
3fc9b584 CC |
327 | unsigned char byDTIMCount; |
328 | unsigned char byDTIMPeriod; | |
5449c685 FB |
329 | |
330 | // Power saving state vars | |
331 | WMAC_POWER_MODE ePSMode; | |
2986db5f CC |
332 | unsigned short wListenInterval; |
333 | unsigned short wCountToWakeUp; | |
7b6a0013 | 334 | bool bInTIMWake; |
2989e96f | 335 | unsigned char *pbyPSPacketPool; |
3fc9b584 | 336 | unsigned char byPSPacketPool[sizeof(STxMgmtPacket) + WLAN_NULLDATA_FR_MAXLEN]; |
7b6a0013 | 337 | bool bRxBeaconInTBTTWake; |
3fc9b584 | 338 | unsigned char abyPSTxMap[MAX_NODE_NUM + 1]; |
5449c685 | 339 | |
658ce9d6 | 340 | // management command related |
b6e95cd5 CC |
341 | unsigned int uCmdBusy; |
342 | unsigned int uCmdHostAPBusy; | |
5449c685 | 343 | |
658ce9d6 | 344 | // management packet pool |
2989e96f | 345 | unsigned char *pbyMgmtPacketPool; |
3fc9b584 | 346 | unsigned char byMgmtPacketPool[sizeof(STxMgmtPacket) + WLAN_A3FR_MAXLEN]; |
5449c685 FB |
347 | |
348 | ||
349 | // One second callback timer | |
350 | struct timer_list sTimerSecondCallback; | |
351 | ||
352 | // Temporarily Rx Mgmt Packet Descriptor | |
353 | SRxMgmtPacket sRxPacket; | |
354 | ||
355 | // link list of known bss's (scan results) | |
356 | KnownBSS sBSSList[MAX_BSS_NUM]; | |
357 | ||
358 | ||
359 | ||
360 | // table list of known node | |
361 | // sNodeDBList[0] is reserved for AP under Infra mode | |
362 | // sNodeDBList[0] is reserved for Multicast under adhoc/AP mode | |
363 | KnownNodeDB sNodeDBTable[MAX_NODE_NUM + 1]; | |
364 | ||
365 | ||
366 | ||
367 | // WPA2 PMKID Cache | |
368 | SPMKIDCache gsPMKIDCache; | |
7b6a0013 | 369 | bool bRoaming; |
5449c685 FB |
370 | |
371 | // rate fall back vars | |
372 | ||
373 | ||
374 | ||
375 | // associate info | |
376 | SAssocInfo sAssocInfo; | |
377 | ||
378 | ||
379 | // for 802.11h | |
7b6a0013 CC |
380 | bool b11hEnable; |
381 | bool bSwitchChannel; | |
3fc9b584 | 382 | unsigned char byNewChannel; |
5449c685 | 383 | PWLAN_IE_MEASURE_REP pCurrMeasureEIDRep; |
b6e95cd5 | 384 | unsigned int uLengthOfRepEIDs; |
3fc9b584 CC |
385 | unsigned char abyCurrentMSRReq[sizeof(STxMgmtPacket) + WLAN_A3FR_MAXLEN]; |
386 | unsigned char abyCurrentMSRRep[sizeof(STxMgmtPacket) + WLAN_A3FR_MAXLEN]; | |
387 | unsigned char abyIECountry[WLAN_A3FR_MAXLEN]; | |
388 | unsigned char abyIBSSDFSOwner[6]; | |
389 | unsigned char byIBSSDFSRecovery; | |
5449c685 FB |
390 | |
391 | struct sk_buff skb; | |
392 | ||
a884847a | 393 | } SMgmtObject, *PSMgmtObject; |
5449c685 FB |
394 | |
395 | ||
396 | /*--------------------- Export Macros ------------------------------*/ | |
397 | ||
398 | ||
399 | /*--------------------- Export Functions --------------------------*/ | |
400 | ||
401 | ||
402 | void | |
403 | vMgrObjectInit( | |
3a215e0f | 404 | void *hDeviceContext |
5449c685 FB |
405 | ); |
406 | ||
407 | void | |
408 | vMgrTimerInit( | |
3a215e0f | 409 | void *hDeviceContext |
5449c685 FB |
410 | ); |
411 | ||
6b35b7b3 | 412 | void |
5449c685 | 413 | vMgrObjectReset( |
3a215e0f | 414 | void *hDeviceContext |
5449c685 FB |
415 | ); |
416 | ||
417 | void | |
418 | vMgrAssocBeginSta( | |
3a215e0f CC |
419 | void *hDeviceContext, |
420 | PSMgmtObject pMgmt, | |
3cdec554 | 421 | PCMD_STATUS pStatus |
5449c685 FB |
422 | ); |
423 | ||
6b35b7b3 | 424 | void |
5449c685 | 425 | vMgrReAssocBeginSta( |
3a215e0f CC |
426 | void *hDeviceContext, |
427 | PSMgmtObject pMgmt, | |
3cdec554 | 428 | PCMD_STATUS pStatus |
5449c685 FB |
429 | ); |
430 | ||
6b35b7b3 | 431 | void |
5449c685 | 432 | vMgrDisassocBeginSta( |
3a215e0f CC |
433 | void *hDeviceContext, |
434 | PSMgmtObject pMgmt, | |
2989e96f | 435 | unsigned char *abyDestAddress, |
2986db5f | 436 | unsigned short wReason, |
3cdec554 | 437 | PCMD_STATUS pStatus |
5449c685 FB |
438 | ); |
439 | ||
6b35b7b3 | 440 | void |
5449c685 | 441 | vMgrAuthenBeginSta( |
3a215e0f CC |
442 | void *hDeviceContext, |
443 | PSMgmtObject pMgmt, | |
3cdec554 | 444 | PCMD_STATUS pStatus |
5449c685 FB |
445 | ); |
446 | ||
6b35b7b3 | 447 | void |
5449c685 | 448 | vMgrCreateOwnIBSS( |
3a215e0f | 449 | void *hDeviceContext, |
3cdec554 | 450 | PCMD_STATUS pStatus |
5449c685 FB |
451 | ); |
452 | ||
6b35b7b3 | 453 | void |
5449c685 | 454 | vMgrJoinBSSBegin( |
3a215e0f | 455 | void *hDeviceContext, |
3cdec554 | 456 | PCMD_STATUS pStatus |
5449c685 FB |
457 | ); |
458 | ||
6b35b7b3 | 459 | void |
5449c685 | 460 | vMgrRxManagePacket( |
3a215e0f CC |
461 | void *hDeviceContext, |
462 | PSMgmtObject pMgmt, | |
463 | PSRxMgmtPacket pRxPacket | |
5449c685 FB |
464 | ); |
465 | ||
466 | /* | |
6b35b7b3 | 467 | void |
5449c685 | 468 | vMgrScanBegin( |
3a215e0f | 469 | void *hDeviceContext, |
3cdec554 | 470 | PCMD_STATUS pStatus |
5449c685 FB |
471 | ); |
472 | */ | |
473 | ||
6b35b7b3 | 474 | void |
5449c685 | 475 | vMgrDeAuthenBeginSta( |
3a215e0f CC |
476 | void *hDeviceContext, |
477 | PSMgmtObject pMgmt, | |
2989e96f | 478 | unsigned char *abyDestAddress, |
2986db5f | 479 | unsigned short wReason, |
3cdec554 | 480 | PCMD_STATUS pStatus |
5449c685 FB |
481 | ); |
482 | ||
7b6a0013 | 483 | bool |
5449c685 | 484 | bMgrPrepareBeaconToSend( |
3a215e0f CC |
485 | void *hDeviceContext, |
486 | PSMgmtObject pMgmt | |
5449c685 FB |
487 | ); |
488 | ||
489 | ||
7b6a0013 | 490 | bool |
5449c685 | 491 | bAdd_PMKID_Candidate ( |
3a215e0f | 492 | void *hDeviceContext, |
2989e96f | 493 | unsigned char *pbyBSSID, |
3a215e0f | 494 | PSRSNCapObject psRSNCapObj |
5449c685 FB |
495 | ); |
496 | ||
6b35b7b3 | 497 | void |
5449c685 | 498 | vFlush_PMKID_Candidate ( |
3a215e0f | 499 | void *hDeviceContext |
5449c685 FB |
500 | ); |
501 | ||
502 | #endif // __WMGR_H__ |