mirror of
https://github.com/torvalds/linux.git
synced 2024-11-01 09:41:44 +00:00
staging: vt6656: code cleanup, removed HANDLE definition in ttype.h
Checkpatch warnings about using externs in .c files were not resolved, neither some long lines on deeply nested code. Signed-off-by: Andres More <more.andres@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
3afc7cc38c
commit
0cbd8d9854
@ -1513,7 +1513,9 @@ BBvAntennaDiversity (PSDevice pDevice, BYTE byRxRate, BYTE bySQ3)
|
|||||||
if ( pDevice->byTMax == 0 )
|
if ( pDevice->byTMax == 0 )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_CHANGE_ANTENNA, NULL);
|
bScheduleCommand((void *) pDevice,
|
||||||
|
WLAN_CMD_CHANGE_ANTENNA,
|
||||||
|
NULL);
|
||||||
|
|
||||||
pDevice->byAntennaState = 1;
|
pDevice->byAntennaState = 1;
|
||||||
|
|
||||||
@ -1543,7 +1545,9 @@ BBvAntennaDiversity (PSDevice pDevice, BYTE byRxRate, BYTE bySQ3)
|
|||||||
((pDevice->ulSQ3_State1 != 0) && (pDevice->ulSQ3_State0 != 0) && (pDevice->ulSQ3_State0 < pDevice->ulSQ3_State1))
|
((pDevice->ulSQ3_State1 != 0) && (pDevice->ulSQ3_State0 != 0) && (pDevice->ulSQ3_State0 < pDevice->ulSQ3_State1))
|
||||||
) {
|
) {
|
||||||
|
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_CHANGE_ANTENNA, NULL);
|
bScheduleCommand((void *) pDevice,
|
||||||
|
WLAN_CMD_CHANGE_ANTENNA,
|
||||||
|
NULL);
|
||||||
|
|
||||||
pDevice->TimerSQ3Tmax3.expires = RUN_AT(pDevice->byTMax3 * HZ);
|
pDevice->TimerSQ3Tmax3.expires = RUN_AT(pDevice->byTMax3 * HZ);
|
||||||
pDevice->TimerSQ3Tmax2.expires = RUN_AT(pDevice->byTMax2 * HZ);
|
pDevice->TimerSQ3Tmax2.expires = RUN_AT(pDevice->byTMax2 * HZ);
|
||||||
@ -1576,17 +1580,14 @@ BBvAntennaDiversity (PSDevice pDevice, BYTE byRxRate, BYTE bySQ3)
|
|||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
void
|
void TimerSQ3CallBack(void *hDeviceContext)
|
||||||
TimerSQ3CallBack (
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"TimerSQ3CallBack...");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"TimerSQ3CallBack...");
|
||||||
spin_lock_irq(&pDevice->lock);
|
spin_lock_irq(&pDevice->lock);
|
||||||
|
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_CHANGE_ANTENNA, NULL);
|
bScheduleCommand((void *) pDevice, WLAN_CMD_CHANGE_ANTENNA, NULL);
|
||||||
pDevice->byAntennaState = 0;
|
pDevice->byAntennaState = 0;
|
||||||
s_vClearSQ3Value(pDevice);
|
s_vClearSQ3Value(pDevice);
|
||||||
pDevice->TimerSQ3Tmax3.expires = RUN_AT(pDevice->byTMax3 * HZ);
|
pDevice->TimerSQ3Tmax3.expires = RUN_AT(pDevice->byTMax3 * HZ);
|
||||||
@ -1618,10 +1619,7 @@ TimerSQ3CallBack (
|
|||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
void
|
void TimerSQ3Tmax3CallBack(void *hDeviceContext)
|
||||||
TimerSQ3Tmax3CallBack (
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
|
|
||||||
@ -1639,7 +1637,7 @@ TimerSQ3Tmax3CallBack (
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_CHANGE_ANTENNA, NULL);
|
bScheduleCommand((void *) pDevice, WLAN_CMD_CHANGE_ANTENNA, NULL);
|
||||||
pDevice->byAntennaState = 1;
|
pDevice->byAntennaState = 1;
|
||||||
del_timer(&pDevice->TimerSQ3Tmax3);
|
del_timer(&pDevice->TimerSQ3Tmax3);
|
||||||
del_timer(&pDevice->TimerSQ3Tmax2);
|
del_timer(&pDevice->TimerSQ3Tmax2);
|
||||||
|
@ -117,15 +117,8 @@ BBvCaculateParameter (
|
|||||||
|
|
||||||
// timer for antenna diversity
|
// timer for antenna diversity
|
||||||
|
|
||||||
void
|
void TimerSQ3CallBack(void *hDeviceContext);
|
||||||
TimerSQ3CallBack (
|
void TimerSQ3Tmax3CallBack(void *hDeviceContext);
|
||||||
HANDLE hDeviceContext
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
|
||||||
TimerSQ3Tmax3CallBack (
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
);
|
|
||||||
|
|
||||||
void BBvAntennaDiversity(PSDevice pDevice, BYTE byRxRate, BYTE bySQ3);
|
void BBvAntennaDiversity(PSDevice pDevice, BYTE byRxRate, BYTE bySQ3);
|
||||||
void BBvLoopbackOn(PSDevice pDevice);
|
void BBvLoopbackOn(PSDevice pDevice);
|
||||||
|
@ -91,19 +91,13 @@ const WORD awHWRetry1[5][5] = {
|
|||||||
|
|
||||||
/*--------------------- Static Functions --------------------------*/
|
/*--------------------- Static Functions --------------------------*/
|
||||||
|
|
||||||
void s_vCheckSensitivity(
|
void s_vCheckSensitivity(void *hDeviceContext);
|
||||||
HANDLE hDeviceContext
|
void s_vCheckPreEDThreshold(void *hDeviceContext);
|
||||||
);
|
|
||||||
|
|
||||||
void s_vCheckPreEDThreshold(
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
);
|
|
||||||
|
|
||||||
#ifdef Calcu_LinkQual
|
#ifdef Calcu_LinkQual
|
||||||
void s_uCalculateLinkQual(
|
void s_uCalculateLinkQual(void *hDeviceContext);
|
||||||
HANDLE hDeviceContext
|
|
||||||
);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*--------------------- Export Variables --------------------------*/
|
/*--------------------- Export Variables --------------------------*/
|
||||||
|
|
||||||
|
|
||||||
@ -123,13 +117,10 @@ void s_uCalculateLinkQual(
|
|||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
PKnownBSS
|
PKnownBSS BSSpSearchBSSList(void *hDeviceContext,
|
||||||
BSSpSearchBSSList(
|
PBYTE pbyDesireBSSID,
|
||||||
HANDLE hDeviceContext,
|
PBYTE pbyDesireSSID,
|
||||||
PBYTE pbyDesireBSSID,
|
CARD_PHY_TYPE ePhyType)
|
||||||
PBYTE pbyDesireSSID,
|
|
||||||
CARD_PHY_TYPE ePhyType
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
||||||
@ -296,11 +287,7 @@ pDevice->bSameBSSMaxNum = jj;
|
|||||||
-*/
|
-*/
|
||||||
|
|
||||||
|
|
||||||
void
|
void BSSvClearBSSList(void *hDeviceContext, BOOL bKeepCurrBSSID)
|
||||||
BSSvClearBSSList(
|
|
||||||
HANDLE hDeviceContext,
|
|
||||||
BOOL bKeepCurrBSSID
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
||||||
@ -342,12 +329,9 @@ BSSvClearBSSList(
|
|||||||
* TRUE if found.
|
* TRUE if found.
|
||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
PKnownBSS
|
PKnownBSS BSSpAddrIsInBSSList(void *hDeviceContext,
|
||||||
BSSpAddrIsInBSSList(
|
PBYTE abyBSSID,
|
||||||
HANDLE hDeviceContext,
|
PWLAN_IE_SSID pSSID)
|
||||||
PBYTE abyBSSID,
|
|
||||||
PWLAN_IE_SSID pSSID
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
||||||
@ -383,26 +367,23 @@ BSSpAddrIsInBSSList(
|
|||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
BOOL
|
BOOL BSSbInsertToBSSList(void *hDeviceContext,
|
||||||
BSSbInsertToBSSList (
|
PBYTE abyBSSIDAddr,
|
||||||
HANDLE hDeviceContext,
|
QWORD qwTimestamp,
|
||||||
PBYTE abyBSSIDAddr,
|
WORD wBeaconInterval,
|
||||||
QWORD qwTimestamp,
|
WORD wCapInfo,
|
||||||
WORD wBeaconInterval,
|
BYTE byCurrChannel,
|
||||||
WORD wCapInfo,
|
PWLAN_IE_SSID pSSID,
|
||||||
BYTE byCurrChannel,
|
PWLAN_IE_SUPP_RATES pSuppRates,
|
||||||
PWLAN_IE_SSID pSSID,
|
PWLAN_IE_SUPP_RATES pExtSuppRates,
|
||||||
PWLAN_IE_SUPP_RATES pSuppRates,
|
PERPObject psERP,
|
||||||
PWLAN_IE_SUPP_RATES pExtSuppRates,
|
PWLAN_IE_RSN pRSN,
|
||||||
PERPObject psERP,
|
PWLAN_IE_RSN_EXT pRSNWPA,
|
||||||
PWLAN_IE_RSN pRSN,
|
PWLAN_IE_COUNTRY pIE_Country,
|
||||||
PWLAN_IE_RSN_EXT pRSNWPA,
|
PWLAN_IE_QUIET pIE_Quiet,
|
||||||
PWLAN_IE_COUNTRY pIE_Country,
|
UINT uIELength,
|
||||||
PWLAN_IE_QUIET pIE_Quiet,
|
PBYTE pbyIEs,
|
||||||
UINT uIELength,
|
void *pRxPacketContext)
|
||||||
PBYTE pbyIEs,
|
|
||||||
HANDLE pRxPacketContext
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
@ -518,7 +499,9 @@ BSSbInsertToBSSList (
|
|||||||
if ((bIs802_1x == TRUE) && (pSSID->len == ((PWLAN_IE_SSID)pMgmt->abyDesireSSID)->len) &&
|
if ((bIs802_1x == TRUE) && (pSSID->len == ((PWLAN_IE_SSID)pMgmt->abyDesireSSID)->len) &&
|
||||||
( !memcmp(pSSID->abySSID, ((PWLAN_IE_SSID)pMgmt->abyDesireSSID)->abySSID, pSSID->len))) {
|
( !memcmp(pSSID->abySSID, ((PWLAN_IE_SSID)pMgmt->abyDesireSSID)->abySSID, pSSID->len))) {
|
||||||
|
|
||||||
bAdd_PMKID_Candidate((HANDLE)pDevice, pBSSList->abyBSSID, &pBSSList->sRSNCapObj);
|
bAdd_PMKID_Candidate((void *) pDevice,
|
||||||
|
pBSSList->abyBSSID,
|
||||||
|
&pBSSList->sRSNCapObj);
|
||||||
|
|
||||||
if ((pDevice->bLinkPass == TRUE) && (pMgmt->eCurrState == WMAC_STATE_ASSOC)) {
|
if ((pDevice->bLinkPass == TRUE) && (pMgmt->eCurrState == WMAC_STATE_ASSOC)) {
|
||||||
if ((KeybGetTransmitKey(&(pDevice->sKey), pDevice->abyBSSID, PAIRWISE_KEY, &pTransmitKey) == TRUE) ||
|
if ((KeybGetTransmitKey(&(pDevice->sKey), pDevice->abyBSSID, PAIRWISE_KEY, &pTransmitKey) == TRUE) ||
|
||||||
@ -602,27 +585,24 @@ BSSbInsertToBSSList (
|
|||||||
-*/
|
-*/
|
||||||
// TODO: input structure modify
|
// TODO: input structure modify
|
||||||
|
|
||||||
BOOL
|
BOOL BSSbUpdateToBSSList(void *hDeviceContext,
|
||||||
BSSbUpdateToBSSList (
|
QWORD qwTimestamp,
|
||||||
HANDLE hDeviceContext,
|
WORD wBeaconInterval,
|
||||||
QWORD qwTimestamp,
|
WORD wCapInfo,
|
||||||
WORD wBeaconInterval,
|
BYTE byCurrChannel,
|
||||||
WORD wCapInfo,
|
BOOL bChannelHit,
|
||||||
BYTE byCurrChannel,
|
PWLAN_IE_SSID pSSID,
|
||||||
BOOL bChannelHit,
|
PWLAN_IE_SUPP_RATES pSuppRates,
|
||||||
PWLAN_IE_SSID pSSID,
|
PWLAN_IE_SUPP_RATES pExtSuppRates,
|
||||||
PWLAN_IE_SUPP_RATES pSuppRates,
|
PERPObject psERP,
|
||||||
PWLAN_IE_SUPP_RATES pExtSuppRates,
|
PWLAN_IE_RSN pRSN,
|
||||||
PERPObject psERP,
|
PWLAN_IE_RSN_EXT pRSNWPA,
|
||||||
PWLAN_IE_RSN pRSN,
|
PWLAN_IE_COUNTRY pIE_Country,
|
||||||
PWLAN_IE_RSN_EXT pRSNWPA,
|
PWLAN_IE_QUIET pIE_Quiet,
|
||||||
PWLAN_IE_COUNTRY pIE_Country,
|
PKnownBSS pBSSList,
|
||||||
PWLAN_IE_QUIET pIE_Quiet,
|
UINT uIELength,
|
||||||
PKnownBSS pBSSList,
|
PBYTE pbyIEs,
|
||||||
UINT uIELength,
|
void *pRxPacketContext)
|
||||||
PBYTE pbyIEs,
|
|
||||||
HANDLE pRxPacketContext
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
int ii, jj;
|
int ii, jj;
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
@ -768,12 +748,9 @@ BSSbUpdateToBSSList (
|
|||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
BOOL
|
BOOL BSSbIsSTAInNodeDB(void *hDeviceContext,
|
||||||
BSSbIsSTAInNodeDB(
|
PBYTE abyDstAddr,
|
||||||
HANDLE hDeviceContext,
|
PUINT puNodeIndex)
|
||||||
PBYTE abyDstAddr,
|
|
||||||
PUINT puNodeIndex
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
||||||
@ -804,11 +781,7 @@ BSSbIsSTAInNodeDB(
|
|||||||
* None
|
* None
|
||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
void
|
void BSSvCreateOneNode(void *hDeviceContext, PUINT puNodeIndex)
|
||||||
BSSvCreateOneNode(
|
|
||||||
HANDLE hDeviceContext,
|
|
||||||
PUINT puNodeIndex
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
@ -869,11 +842,8 @@ BSSvCreateOneNode(
|
|||||||
* None
|
* None
|
||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
void
|
|
||||||
BSSvRemoveOneNode(
|
void BSSvRemoveOneNode(void *hDeviceContext, UINT uNodeIndex)
|
||||||
HANDLE hDeviceContext,
|
|
||||||
UINT uNodeIndex
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
@ -902,13 +872,10 @@ BSSvRemoveOneNode(
|
|||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
void
|
void BSSvUpdateAPNode(void *hDeviceContext,
|
||||||
BSSvUpdateAPNode(
|
PWORD pwCapInfo,
|
||||||
HANDLE hDeviceContext,
|
PWLAN_IE_SUPP_RATES pSuppRates,
|
||||||
PWORD pwCapInfo,
|
PWLAN_IE_SUPP_RATES pExtSuppRates)
|
||||||
PWLAN_IE_SUPP_RATES pSuppRates,
|
|
||||||
PWLAN_IE_SUPP_RATES pExtSuppRates
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
||||||
@ -946,10 +913,6 @@ BSSvUpdateAPNode(
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*+
|
/*+
|
||||||
*
|
*
|
||||||
* Routine Description:
|
* Routine Description:
|
||||||
@ -961,11 +924,7 @@ BSSvUpdateAPNode(
|
|||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
|
void BSSvAddMulticastNode(void *hDeviceContext)
|
||||||
void
|
|
||||||
BSSvAddMulticastNode(
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
||||||
@ -991,10 +950,6 @@ BSSvAddMulticastNode(
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*+
|
/*+
|
||||||
*
|
*
|
||||||
* Routine Description:
|
* Routine Description:
|
||||||
@ -1008,11 +963,7 @@ BSSvAddMulticastNode(
|
|||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
|
void BSSvSecondCallBack(void *hDeviceContext)
|
||||||
void
|
|
||||||
BSSvSecondCallBack(
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
||||||
@ -1080,7 +1031,7 @@ if((pMgmt->eCurrState!=WMAC_STATE_ASSOC) &&
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef Calcu_LinkQual
|
#ifdef Calcu_LinkQual
|
||||||
s_uCalculateLinkQual((HANDLE)pDevice);
|
s_uCalculateLinkQual((void *)pDevice);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
for (ii = 0; ii < (MAX_NODE_NUM + 1); ii++) {
|
for (ii = 0; ii < (MAX_NODE_NUM + 1); ii++) {
|
||||||
@ -1226,14 +1177,16 @@ if((pMgmt->eCurrState!=WMAC_STATE_ASSOC) &&
|
|||||||
// DBG_PRT(MSG_LEVEL_INFO, KERN_INFO "Callback inactive Count = [%d]\n", pMgmt->sNodeDBTable[0].uInActiveCount);
|
// DBG_PRT(MSG_LEVEL_INFO, KERN_INFO "Callback inactive Count = [%d]\n", pMgmt->sNodeDBTable[0].uInActiveCount);
|
||||||
|
|
||||||
if (pDevice->bUpdateBBVGA) {
|
if (pDevice->bUpdateBBVGA) {
|
||||||
// s_vCheckSensitivity((HANDLE) pDevice);
|
/* s_vCheckSensitivity((void *) pDevice); */
|
||||||
s_vCheckPreEDThreshold((HANDLE)pDevice);
|
s_vCheckPreEDThreshold((void *) pDevice);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((pMgmt->sNodeDBTable[0].uInActiveCount >= (LOST_BEACON_COUNT/2)) &&
|
if ((pMgmt->sNodeDBTable[0].uInActiveCount >= (LOST_BEACON_COUNT/2)) &&
|
||||||
(pDevice->byBBVGACurrent != pDevice->abyBBVGA[0]) ) {
|
(pDevice->byBBVGACurrent != pDevice->abyBBVGA[0]) ) {
|
||||||
pDevice->byBBVGANew = pDevice->abyBBVGA[0];
|
pDevice->byBBVGANew = pDevice->abyBBVGA[0];
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_CHANGE_BBSENSITIVITY, NULL);
|
bScheduleCommand((void *) pDevice,
|
||||||
|
WLAN_CMD_CHANGE_BBSENSITIVITY,
|
||||||
|
NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pMgmt->sNodeDBTable[0].uInActiveCount >= LOST_BEACON_COUNT) {
|
if (pMgmt->sNodeDBTable[0].uInActiveCount >= LOST_BEACON_COUNT) {
|
||||||
@ -1281,9 +1234,13 @@ DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "bRoaming %d, !\n", pDevice->bRoaming );
|
|||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "bIsRoaming %d, !\n", pDevice->bIsRoaming );
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "bIsRoaming %d, !\n", pDevice->bIsRoaming );
|
||||||
if ((pDevice->bRoaming == TRUE)&&(pDevice->bIsRoaming == TRUE)){
|
if ((pDevice->bRoaming == TRUE)&&(pDevice->bIsRoaming == TRUE)){
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Fast Roaming ...\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Fast Roaming ...\n");
|
||||||
BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass);
|
BSSvClearBSSList((void *) pDevice, pDevice->bLinkPass);
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID);
|
bScheduleCommand((void *) pDevice,
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, pMgmt->abyDesireSSID);
|
WLAN_CMD_BSSID_SCAN,
|
||||||
|
pMgmt->abyDesireSSID);
|
||||||
|
bScheduleCommand((void *) pDevice,
|
||||||
|
WLAN_CMD_SSID,
|
||||||
|
pMgmt->abyDesireSSID);
|
||||||
pDevice->uAutoReConnectTime = 0;
|
pDevice->uAutoReConnectTime = 0;
|
||||||
pDevice->uIsroamingTime = 0;
|
pDevice->uIsroamingTime = 0;
|
||||||
pDevice->bRoaming = FALSE;
|
pDevice->bRoaming = FALSE;
|
||||||
@ -1326,10 +1283,14 @@ else {
|
|||||||
pDevice->eEncryptionStatus = pDevice->eOldEncryptionStatus;
|
pDevice->eEncryptionStatus = pDevice->eOldEncryptionStatus;
|
||||||
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Roaming ...\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Roaming ...\n");
|
||||||
BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass);
|
BSSvClearBSSList((void *) pDevice, pDevice->bLinkPass);
|
||||||
pMgmt->eScanType = WMAC_SCAN_ACTIVE;
|
pMgmt->eScanType = WMAC_SCAN_ACTIVE;
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID);
|
bScheduleCommand((void *) pDevice,
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, pMgmt->abyDesireSSID);
|
WLAN_CMD_BSSID_SCAN,
|
||||||
|
pMgmt->abyDesireSSID);
|
||||||
|
bScheduleCommand((void *) pDevice,
|
||||||
|
WLAN_CMD_SSID,
|
||||||
|
pMgmt->abyDesireSSID);
|
||||||
pDevice->uAutoReConnectTime = 0;
|
pDevice->uAutoReConnectTime = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1345,17 +1306,17 @@ else {
|
|||||||
else {
|
else {
|
||||||
DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Adhoc re-scaning ...\n");
|
DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Adhoc re-scaning ...\n");
|
||||||
pMgmt->eScanType = WMAC_SCAN_ACTIVE;
|
pMgmt->eScanType = WMAC_SCAN_ACTIVE;
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, NULL);
|
bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, NULL);
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, NULL);
|
bScheduleCommand((void *) pDevice, WLAN_CMD_SSID, NULL);
|
||||||
pDevice->uAutoReConnectTime = 0;
|
pDevice->uAutoReConnectTime = 0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
if (pMgmt->eCurrState == WMAC_STATE_JOINTED) {
|
if (pMgmt->eCurrState == WMAC_STATE_JOINTED) {
|
||||||
|
|
||||||
if (pDevice->bUpdateBBVGA) {
|
if (pDevice->bUpdateBBVGA) {
|
||||||
//s_vCheckSensitivity((HANDLE) pDevice);
|
/* s_vCheckSensitivity((void *) pDevice); */
|
||||||
s_vCheckPreEDThreshold((HANDLE)pDevice);
|
s_vCheckPreEDThreshold((void *) pDevice);
|
||||||
}
|
}
|
||||||
if (pMgmt->sNodeDBTable[0].uInActiveCount >=ADHOC_LOST_BEACON_COUNT) {
|
if (pMgmt->sNodeDBTable[0].uInActiveCount >=ADHOC_LOST_BEACON_COUNT) {
|
||||||
DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Lost other STA beacon [%d] sec, started !\n", pMgmt->sNodeDBTable[0].uInActiveCount);
|
DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Lost other STA beacon [%d] sec, started !\n", pMgmt->sNodeDBTable[0].uInActiveCount);
|
||||||
pMgmt->sNodeDBTable[0].uInActiveCount = 0;
|
pMgmt->sNodeDBTable[0].uInActiveCount = 0;
|
||||||
@ -1379,9 +1340,6 @@ else {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*+
|
/*+
|
||||||
*
|
*
|
||||||
* Routine Description:
|
* Routine Description:
|
||||||
@ -1395,15 +1353,10 @@ else {
|
|||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
|
void BSSvUpdateNodeTxCounter(void *hDeviceContext,
|
||||||
|
PSStatCounter pStatistic,
|
||||||
void
|
BYTE byTSR,
|
||||||
BSSvUpdateNodeTxCounter(
|
BYTE byPktNO)
|
||||||
HANDLE hDeviceContext,
|
|
||||||
PSStatCounter pStatistic,
|
|
||||||
BYTE byTSR,
|
|
||||||
BYTE byPktNO
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
||||||
@ -1417,8 +1370,6 @@ BSSvUpdateNodeTxCounter(
|
|||||||
BYTE byPktNum;
|
BYTE byPktNum;
|
||||||
WORD wFIFOCtl;
|
WORD wFIFOCtl;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
byPktNum = (byPktNO & 0x0F) >> 4;
|
byPktNum = (byPktNO & 0x0F) >> 4;
|
||||||
byTxRetry = (byTSR & 0xF0) >> 4;
|
byTxRetry = (byTSR & 0xF0) >> 4;
|
||||||
wRate = (WORD) (byPktNO & 0xF0) >> 4;
|
wRate = (WORD) (byPktNO & 0xF0) >> 4;
|
||||||
@ -1485,11 +1436,13 @@ BSSvUpdateNodeTxCounter(
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if ((pMgmt->eCurrMode == WMAC_MODE_IBSS_STA) ||
|
if ((pMgmt->eCurrMode == WMAC_MODE_IBSS_STA) ||
|
||||||
(pMgmt->eCurrMode == WMAC_MODE_ESS_AP)) {
|
(pMgmt->eCurrMode == WMAC_MODE_ESS_AP)) {
|
||||||
|
|
||||||
if (BSSbIsSTAInNodeDB((HANDLE)pDevice, pbyDestAddr, &uNodeIndex)){
|
if (BSSbIsSTAInNodeDB((void *) pDevice,
|
||||||
pMgmt->sNodeDBTable[uNodeIndex].uTxAttempts += 1;
|
pbyDestAddr,
|
||||||
|
&uNodeIndex)) {
|
||||||
|
pMgmt->sNodeDBTable[uNodeIndex].uTxAttempts += 1;
|
||||||
if ( !(byTSR & (TSR_TMO | TSR_RETRYTMO))) {
|
if ( !(byTSR & (TSR_TMO | TSR_RETRYTMO))) {
|
||||||
// transmit success, TxAttempts at least plus one
|
// transmit success, TxAttempts at least plus one
|
||||||
pMgmt->sNodeDBTable[uNodeIndex].uTxOk[MAX_RATE]++;
|
pMgmt->sNodeDBTable[uNodeIndex].uTxOk[MAX_RATE]++;
|
||||||
@ -1544,9 +1497,6 @@ BSSvUpdateNodeTxCounter(
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*+
|
/*+
|
||||||
*
|
*
|
||||||
* Routine Description:
|
* Routine Description:
|
||||||
@ -1565,13 +1515,8 @@ BSSvUpdateNodeTxCounter(
|
|||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
|
void BSSvClearNodeDBTable(void *hDeviceContext,
|
||||||
void
|
UINT uStartIndex)
|
||||||
BSSvClearNodeDBTable(
|
|
||||||
HANDLE hDeviceContext,
|
|
||||||
UINT uStartIndex
|
|
||||||
)
|
|
||||||
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
||||||
@ -1594,10 +1539,7 @@ BSSvClearNodeDBTable(
|
|||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void s_vCheckSensitivity(void *hDeviceContext)
|
||||||
void s_vCheckSensitivity(
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PKnownBSS pBSSList = NULL;
|
PKnownBSS pBSSList = NULL;
|
||||||
@ -1629,7 +1571,9 @@ void s_vCheckSensitivity(
|
|||||||
if (pDevice->byBBVGANew != pDevice->byBBVGACurrent) {
|
if (pDevice->byBBVGANew != pDevice->byBBVGACurrent) {
|
||||||
pDevice->uBBVGADiffCount++;
|
pDevice->uBBVGADiffCount++;
|
||||||
if (pDevice->uBBVGADiffCount >= BB_VGA_CHANGE_THRESHOLD)
|
if (pDevice->uBBVGADiffCount >= BB_VGA_CHANGE_THRESHOLD)
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_CHANGE_BBSENSITIVITY, NULL);
|
bScheduleCommand((void *) pDevice,
|
||||||
|
WLAN_CMD_CHANGE_BBSENSITIVITY,
|
||||||
|
NULL);
|
||||||
} else {
|
} else {
|
||||||
pDevice->uBBVGADiffCount = 0;
|
pDevice->uBBVGADiffCount = 0;
|
||||||
}
|
}
|
||||||
@ -1639,9 +1583,7 @@ void s_vCheckSensitivity(
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef Calcu_LinkQual
|
#ifdef Calcu_LinkQual
|
||||||
void s_uCalculateLinkQual(
|
void s_uCalculateLinkQual(void *hDeviceContext)
|
||||||
HANDLE hDeviceContext
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
ULONG TxOkRatio, TxCnt;
|
ULONG TxOkRatio, TxCnt;
|
||||||
@ -1687,10 +1629,7 @@ else
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void
|
void BSSvClearAnyBSSJoinRecord(void *hDeviceContext)
|
||||||
BSSvClearAnyBSSJoinRecord (
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
||||||
@ -1702,9 +1641,7 @@ BSSvClearAnyBSSJoinRecord (
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void s_vCheckPreEDThreshold(
|
void s_vCheckPreEDThreshold(void *hDeviceContext)
|
||||||
HANDLE hDeviceContext
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PKnownBSS pBSSList = NULL;
|
PKnownBSS pBSSList = NULL;
|
||||||
|
@ -226,134 +226,82 @@ typedef struct tagKnownNodeDB {
|
|||||||
|
|
||||||
} KnownNodeDB, *PKnownNodeDB;
|
} KnownNodeDB, *PKnownNodeDB;
|
||||||
|
|
||||||
|
|
||||||
/*--------------------- Export Functions --------------------------*/
|
/*--------------------- Export Functions --------------------------*/
|
||||||
|
|
||||||
|
PKnownBSS BSSpSearchBSSList(void *hDeviceContext,
|
||||||
|
PBYTE pbyDesireBSSID,
|
||||||
|
PBYTE pbyDesireSSID,
|
||||||
|
CARD_PHY_TYPE ePhyType);
|
||||||
|
|
||||||
|
PKnownBSS BSSpAddrIsInBSSList(void *hDeviceContext,
|
||||||
|
PBYTE abyBSSID,
|
||||||
|
PWLAN_IE_SSID pSSID);
|
||||||
|
|
||||||
PKnownBSS
|
void BSSvClearBSSList(void *hDeviceContext, BOOL bKeepCurrBSSID);
|
||||||
BSSpSearchBSSList(
|
|
||||||
HANDLE hDeviceContext,
|
|
||||||
PBYTE pbyDesireBSSID,
|
|
||||||
PBYTE pbyDesireSSID,
|
|
||||||
CARD_PHY_TYPE ePhyType
|
|
||||||
);
|
|
||||||
|
|
||||||
PKnownBSS
|
BOOL BSSbInsertToBSSList(void *hDeviceContext,
|
||||||
BSSpAddrIsInBSSList(
|
PBYTE abyBSSIDAddr,
|
||||||
HANDLE hDeviceContext,
|
QWORD qwTimestamp,
|
||||||
PBYTE abyBSSID,
|
WORD wBeaconInterval,
|
||||||
PWLAN_IE_SSID pSSID
|
WORD wCapInfo,
|
||||||
);
|
BYTE byCurrChannel,
|
||||||
|
PWLAN_IE_SSID pSSID,
|
||||||
|
PWLAN_IE_SUPP_RATES pSuppRates,
|
||||||
|
PWLAN_IE_SUPP_RATES pExtSuppRates,
|
||||||
|
PERPObject psERP,
|
||||||
|
PWLAN_IE_RSN pRSN,
|
||||||
|
PWLAN_IE_RSN_EXT pRSNWPA,
|
||||||
|
PWLAN_IE_COUNTRY pIE_Country,
|
||||||
|
PWLAN_IE_QUIET pIE_Quiet,
|
||||||
|
UINT uIELength,
|
||||||
|
PBYTE pbyIEs,
|
||||||
|
void *pRxPacketContext);
|
||||||
|
|
||||||
void
|
BOOL BSSbUpdateToBSSList(void *hDeviceContext,
|
||||||
BSSvClearBSSList(
|
QWORD qwTimestamp,
|
||||||
HANDLE hDeviceContext,
|
WORD wBeaconInterval,
|
||||||
BOOL bKeepCurrBSSID
|
WORD wCapInfo,
|
||||||
);
|
BYTE byCurrChannel,
|
||||||
|
BOOL bChannelHit,
|
||||||
|
PWLAN_IE_SSID pSSID,
|
||||||
|
PWLAN_IE_SUPP_RATES pSuppRates,
|
||||||
|
PWLAN_IE_SUPP_RATES pExtSuppRates,
|
||||||
|
PERPObject psERP,
|
||||||
|
PWLAN_IE_RSN pRSN,
|
||||||
|
PWLAN_IE_RSN_EXT pRSNWPA,
|
||||||
|
PWLAN_IE_COUNTRY pIE_Country,
|
||||||
|
PWLAN_IE_QUIET pIE_Quiet,
|
||||||
|
PKnownBSS pBSSList,
|
||||||
|
UINT uIELength,
|
||||||
|
PBYTE pbyIEs,
|
||||||
|
void *pRxPacketContext);
|
||||||
|
|
||||||
BOOL
|
BOOL BSSbIsSTAInNodeDB(void *hDeviceContext,
|
||||||
BSSbInsertToBSSList(
|
PBYTE abyDstAddr,
|
||||||
HANDLE hDeviceContext,
|
PUINT puNodeIndex);
|
||||||
PBYTE abyBSSIDAddr,
|
|
||||||
QWORD qwTimestamp,
|
|
||||||
WORD wBeaconInterval,
|
|
||||||
WORD wCapInfo,
|
|
||||||
BYTE byCurrChannel,
|
|
||||||
PWLAN_IE_SSID pSSID,
|
|
||||||
PWLAN_IE_SUPP_RATES pSuppRates,
|
|
||||||
PWLAN_IE_SUPP_RATES pExtSuppRates,
|
|
||||||
PERPObject psERP,
|
|
||||||
PWLAN_IE_RSN pRSN,
|
|
||||||
PWLAN_IE_RSN_EXT pRSNWPA,
|
|
||||||
PWLAN_IE_COUNTRY pIE_Country,
|
|
||||||
PWLAN_IE_QUIET pIE_Quiet,
|
|
||||||
UINT uIELength,
|
|
||||||
PBYTE pbyIEs,
|
|
||||||
HANDLE pRxPacketContext
|
|
||||||
);
|
|
||||||
|
|
||||||
|
void BSSvCreateOneNode(void *hDeviceContext, PUINT puNodeIndex);
|
||||||
|
|
||||||
BOOL
|
void BSSvUpdateAPNode(void *hDeviceContext,
|
||||||
BSSbUpdateToBSSList(
|
PWORD pwCapInfo,
|
||||||
HANDLE hDeviceContext,
|
PWLAN_IE_SUPP_RATES pItemRates,
|
||||||
QWORD qwTimestamp,
|
PWLAN_IE_SUPP_RATES pExtSuppRates);
|
||||||
WORD wBeaconInterval,
|
|
||||||
WORD wCapInfo,
|
|
||||||
BYTE byCurrChannel,
|
|
||||||
BOOL bChannelHit,
|
|
||||||
PWLAN_IE_SSID pSSID,
|
|
||||||
PWLAN_IE_SUPP_RATES pSuppRates,
|
|
||||||
PWLAN_IE_SUPP_RATES pExtSuppRates,
|
|
||||||
PERPObject psERP,
|
|
||||||
PWLAN_IE_RSN pRSN,
|
|
||||||
PWLAN_IE_RSN_EXT pRSNWPA,
|
|
||||||
PWLAN_IE_COUNTRY pIE_Country,
|
|
||||||
PWLAN_IE_QUIET pIE_Quiet,
|
|
||||||
PKnownBSS pBSSList,
|
|
||||||
UINT uIELength,
|
|
||||||
PBYTE pbyIEs,
|
|
||||||
HANDLE pRxPacketContext
|
|
||||||
);
|
|
||||||
|
|
||||||
|
void BSSvSecondCallBack(void *hDeviceContext);
|
||||||
|
|
||||||
BOOL
|
void BSSvUpdateNodeTxCounter(void *hDeviceContext,
|
||||||
BSSbIsSTAInNodeDB(
|
PSStatCounter pStatistic,
|
||||||
HANDLE hDeviceContext,
|
BYTE byTSR,
|
||||||
PBYTE abyDstAddr,
|
BYTE byPktNO);
|
||||||
PUINT puNodeIndex
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
void BSSvRemoveOneNode(void *hDeviceContext,
|
||||||
BSSvCreateOneNode(
|
UINT uNodeIndex);
|
||||||
HANDLE hDeviceContext,
|
|
||||||
PUINT puNodeIndex
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
void BSSvAddMulticastNode(void *hDeviceContext);
|
||||||
BSSvUpdateAPNode(
|
|
||||||
HANDLE hDeviceContext,
|
|
||||||
PWORD pwCapInfo,
|
|
||||||
PWLAN_IE_SUPP_RATES pItemRates,
|
|
||||||
PWLAN_IE_SUPP_RATES pExtSuppRates
|
|
||||||
);
|
|
||||||
|
|
||||||
|
void BSSvClearNodeDBTable(void *hDeviceContext,
|
||||||
|
UINT uStartIndex);
|
||||||
|
|
||||||
void
|
void BSSvClearAnyBSSJoinRecord(void *hDeviceContext);
|
||||||
BSSvSecondCallBack(
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
BSSvUpdateNodeTxCounter(
|
|
||||||
HANDLE hDeviceContext,
|
|
||||||
PSStatCounter pStatistic,
|
|
||||||
BYTE byTSR,
|
|
||||||
BYTE byPktNO
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
|
||||||
BSSvRemoveOneNode(
|
|
||||||
HANDLE hDeviceContext,
|
|
||||||
UINT uNodeIndex
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
|
||||||
BSSvAddMulticastNode(
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
BSSvClearNodeDBTable(
|
|
||||||
HANDLE hDeviceContext,
|
|
||||||
UINT uStartIndex
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
|
||||||
BSSvClearAnyBSSJoinRecord(
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
);
|
|
||||||
|
|
||||||
#endif /* __BSSDB_H__ */
|
#endif /* __BSSDB_H__ */
|
||||||
|
@ -1069,7 +1069,9 @@ static BOOL s_bAPModeRxCtl (
|
|||||||
// delcare received ps-poll event
|
// delcare received ps-poll event
|
||||||
if (IS_CTL_PSPOLL(pbyFrame)) {
|
if (IS_CTL_PSPOLL(pbyFrame)) {
|
||||||
pMgmt->sNodeDBTable[iSANodeIndex].bRxPSPoll = TRUE;
|
pMgmt->sNodeDBTable[iSANodeIndex].bRxPSPoll = TRUE;
|
||||||
bScheduleCommand((HANDLE)pDevice, WLAN_CMD_RX_PSPOLL, NULL);
|
bScheduleCommand((void *) pDevice,
|
||||||
|
WLAN_CMD_RX_PSPOLL,
|
||||||
|
NULL);
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dpc: WLAN_CMD_RX_PSPOLL 1\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dpc: WLAN_CMD_RX_PSPOLL 1\n");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -1078,7 +1080,9 @@ static BOOL s_bAPModeRxCtl (
|
|||||||
if (!IS_FC_POWERMGT(pbyFrame)) {
|
if (!IS_FC_POWERMGT(pbyFrame)) {
|
||||||
pMgmt->sNodeDBTable[iSANodeIndex].bPSEnable = FALSE;
|
pMgmt->sNodeDBTable[iSANodeIndex].bPSEnable = FALSE;
|
||||||
pMgmt->sNodeDBTable[iSANodeIndex].bRxPSPoll = TRUE;
|
pMgmt->sNodeDBTable[iSANodeIndex].bRxPSPoll = TRUE;
|
||||||
bScheduleCommand((HANDLE)pDevice, WLAN_CMD_RX_PSPOLL, NULL);
|
bScheduleCommand((void *) pDevice,
|
||||||
|
WLAN_CMD_RX_PSPOLL,
|
||||||
|
NULL);
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dpc: WLAN_CMD_RX_PSPOLL 2\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dpc: WLAN_CMD_RX_PSPOLL 2\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1094,7 +1098,9 @@ static BOOL s_bAPModeRxCtl (
|
|||||||
if (pMgmt->sNodeDBTable[iSANodeIndex].wEnQueueCnt > 0) {
|
if (pMgmt->sNodeDBTable[iSANodeIndex].wEnQueueCnt > 0) {
|
||||||
pMgmt->sNodeDBTable[iSANodeIndex].bPSEnable = FALSE;
|
pMgmt->sNodeDBTable[iSANodeIndex].bPSEnable = FALSE;
|
||||||
pMgmt->sNodeDBTable[iSANodeIndex].bRxPSPoll = TRUE;
|
pMgmt->sNodeDBTable[iSANodeIndex].bRxPSPoll = TRUE;
|
||||||
bScheduleCommand((HANDLE)pDevice, WLAN_CMD_RX_PSPOLL, NULL);
|
bScheduleCommand((void *) pDevice,
|
||||||
|
WLAN_CMD_RX_PSPOLL,
|
||||||
|
NULL);
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dpc: WLAN_CMD_RX_PSPOLL 3\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dpc: WLAN_CMD_RX_PSPOLL 3\n");
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1596,7 +1602,7 @@ void RXvMngWorkItem(void *Context)
|
|||||||
}
|
}
|
||||||
ASSERT(pRCB);// cannot be NULL
|
ASSERT(pRCB);// cannot be NULL
|
||||||
pRxPacket = &(pRCB->sMngPacket);
|
pRxPacket = &(pRCB->sMngPacket);
|
||||||
vMgrRxManagePacket((HANDLE)pDevice, &(pDevice->sMgmtObj), pRxPacket);
|
vMgrRxManagePacket((void *) pDevice, &(pDevice->sMgmtObj), pRxPacket);
|
||||||
pRCB->Ref--;
|
pRCB->Ref--;
|
||||||
if(pRCB->Ref == 0) {
|
if(pRCB->Ref == 0) {
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"RxvFreeMng %d %d\n",pDevice->NumRecvFreeList, pDevice->NumRecvMngList);
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"RxvFreeMng %d %d\n",pDevice->NumRecvFreeList, pDevice->NumRecvMngList);
|
||||||
|
@ -160,11 +160,11 @@ INTnsProcessData(PSDevice pDevice)
|
|||||||
pMgmt->byDTIMPeriod-1;
|
pMgmt->byDTIMPeriod-1;
|
||||||
pMgmt->sNodeDBTable[0].bRxPSPoll = TRUE;
|
pMgmt->sNodeDBTable[0].bRxPSPoll = TRUE;
|
||||||
if (pMgmt->sNodeDBTable[0].bPSEnable)
|
if (pMgmt->sNodeDBTable[0].bPSEnable)
|
||||||
bScheduleCommand((HANDLE)pDevice,
|
bScheduleCommand((void *) pDevice,
|
||||||
WLAN_CMD_RX_PSPOLL,
|
WLAN_CMD_RX_PSPOLL,
|
||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
bScheduleCommand((HANDLE)pDevice,
|
bScheduleCommand((void *) pDevice,
|
||||||
WLAN_CMD_BECON_SEND,
|
WLAN_CMD_BECON_SEND,
|
||||||
NULL);
|
NULL);
|
||||||
} /* if (pDevice->eOPMode == OP_MODE_AP) */
|
} /* if (pDevice->eOPMode == OP_MODE_AP) */
|
||||||
@ -174,13 +174,13 @@ INTnsProcessData(PSDevice pDevice)
|
|||||||
}
|
}
|
||||||
if (pINTData->byISR0 & ISR_TBTT) {
|
if (pINTData->byISR0 & ISR_TBTT) {
|
||||||
if (pDevice->bEnablePSMode)
|
if (pDevice->bEnablePSMode)
|
||||||
bScheduleCommand((HANDLE) pDevice,
|
bScheduleCommand((void *) pDevice,
|
||||||
WLAN_CMD_TBTT_WAKEUP,
|
WLAN_CMD_TBTT_WAKEUP,
|
||||||
NULL);
|
NULL);
|
||||||
if (pDevice->bChannelSwitch) {
|
if (pDevice->bChannelSwitch) {
|
||||||
pDevice->byChannelSwitchCount--;
|
pDevice->byChannelSwitchCount--;
|
||||||
if (pDevice->byChannelSwitchCount == 0)
|
if (pDevice->byChannelSwitchCount == 0)
|
||||||
bScheduleCommand((HANDLE) pDevice,
|
bScheduleCommand((void *) pDevice,
|
||||||
WLAN_CMD_11H_CHSW,
|
WLAN_CMD_11H_CHSW,
|
||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
@ -207,7 +207,7 @@ INTnsProcessData(PSDevice pDevice)
|
|||||||
|
|
||||||
if (pINTData->byISR1 != 0)
|
if (pINTData->byISR1 != 0)
|
||||||
if (pINTData->byISR1 & ISR_GPIO3)
|
if (pINTData->byISR1 & ISR_GPIO3)
|
||||||
bScheduleCommand((HANDLE) pDevice,
|
bScheduleCommand((void *) pDevice,
|
||||||
WLAN_CMD_RADIO,
|
WLAN_CMD_RADIO,
|
||||||
NULL);
|
NULL);
|
||||||
pDevice->intBuf.uDataLen = 0;
|
pDevice->intBuf.uDataLen = 0;
|
||||||
|
@ -100,16 +100,21 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq) {
|
|||||||
memcpy(abyScanSSID, pItemSSID, pItemSSID->len + WLAN_IEHDR_LEN);
|
memcpy(abyScanSSID, pItemSSID, pItemSSID->len + WLAN_IEHDR_LEN);
|
||||||
}
|
}
|
||||||
spin_lock_irq(&pDevice->lock);
|
spin_lock_irq(&pDevice->lock);
|
||||||
if (memcmp(pMgmt->abyCurrBSSID, &abyNullAddr[0], 6) == 0)
|
|
||||||
BSSvClearBSSList((HANDLE)pDevice, FALSE);
|
|
||||||
else
|
|
||||||
BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass);
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "WLAN_CMD_BSS_SCAN..begin \n");
|
|
||||||
|
|
||||||
if (pItemSSID->len != 0)
|
if (memcmp(pMgmt->abyCurrBSSID, &abyNullAddr[0], 6) == 0)
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, abyScanSSID);
|
BSSvClearBSSList((void *) pDevice, FALSE);
|
||||||
else
|
else
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, NULL);
|
BSSvClearBSSList((void *) pDevice, pDevice->bLinkPass);
|
||||||
|
|
||||||
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "WLAN_CMD_BSS_SCAN..begin\n");
|
||||||
|
|
||||||
|
if (pItemSSID->len != 0)
|
||||||
|
bScheduleCommand((void *) pDevice,
|
||||||
|
WLAN_CMD_BSSID_SCAN,
|
||||||
|
abyScanSSID);
|
||||||
|
else
|
||||||
|
bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, NULL);
|
||||||
|
|
||||||
spin_unlock_irq(&pDevice->lock);
|
spin_unlock_irq(&pDevice->lock);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -207,8 +212,10 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq) {
|
|||||||
netif_stop_queue(pDevice->dev);
|
netif_stop_queue(pDevice->dev);
|
||||||
spin_lock_irq(&pDevice->lock);
|
spin_lock_irq(&pDevice->lock);
|
||||||
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID);
|
bScheduleCommand((void *) pDevice,
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, NULL);
|
WLAN_CMD_BSSID_SCAN,
|
||||||
|
pMgmt->abyDesireSSID);
|
||||||
|
bScheduleCommand((void *) pDevice, WLAN_CMD_SSID, NULL);
|
||||||
spin_unlock_irq(&pDevice->lock);
|
spin_unlock_irq(&pDevice->lock);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -576,7 +583,7 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq) {
|
|||||||
|
|
||||||
netif_stop_queue(pDevice->dev);
|
netif_stop_queue(pDevice->dev);
|
||||||
spin_lock_irq(&pDevice->lock);
|
spin_lock_irq(&pDevice->lock);
|
||||||
bScheduleCommand((HANDLE)pDevice, WLAN_CMD_RUN_AP, NULL);
|
bScheduleCommand((void *) pDevice, WLAN_CMD_RUN_AP, NULL);
|
||||||
spin_unlock_irq(&pDevice->lock);
|
spin_unlock_irq(&pDevice->lock);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -209,9 +209,9 @@ if(pDevice->byReAssocCount > 0) { //reject scan when re-associating!
|
|||||||
|
|
||||||
spin_lock_irq(&pDevice->lock);
|
spin_lock_irq(&pDevice->lock);
|
||||||
|
|
||||||
#ifdef update_BssList
|
#ifdef update_BssList
|
||||||
BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass);
|
BSSvClearBSSList((void *) pDevice, pDevice->bLinkPass);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//mike add: active scan OR passive scan OR desire_ssid scan
|
//mike add: active scan OR passive scan OR desire_ssid scan
|
||||||
if(wrq->length == sizeof(struct iw_scan_req)) {
|
if(wrq->length == sizeof(struct iw_scan_req)) {
|
||||||
@ -229,7 +229,7 @@ if(pDevice->byReAssocCount > 0) { //reject scan when re-associating!
|
|||||||
pMgmt->eScanType = WMAC_SCAN_PASSIVE;
|
pMgmt->eScanType = WMAC_SCAN_PASSIVE;
|
||||||
PRINT_K("SIOCSIWSCAN:[desired_ssid=%s,len=%d]\n",((PWLAN_IE_SSID)abyScanSSID)->abySSID,
|
PRINT_K("SIOCSIWSCAN:[desired_ssid=%s,len=%d]\n",((PWLAN_IE_SSID)abyScanSSID)->abySSID,
|
||||||
((PWLAN_IE_SSID)abyScanSSID)->len);
|
((PWLAN_IE_SSID)abyScanSSID)->len);
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, abyScanSSID);
|
bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, abyScanSSID);
|
||||||
spin_unlock_irq(&pDevice->lock);
|
spin_unlock_irq(&pDevice->lock);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -244,7 +244,7 @@ if(pDevice->byReAssocCount > 0) { //reject scan when re-associating!
|
|||||||
|
|
||||||
pMgmt->eScanType = WMAC_SCAN_PASSIVE;
|
pMgmt->eScanType = WMAC_SCAN_PASSIVE;
|
||||||
//printk("SIOCSIWSCAN:WLAN_CMD_BSSID_SCAN\n");
|
//printk("SIOCSIWSCAN:WLAN_CMD_BSSID_SCAN\n");
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, NULL);
|
bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, NULL);
|
||||||
spin_unlock_irq(&pDevice->lock);
|
spin_unlock_irq(&pDevice->lock);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -944,10 +944,14 @@ int iwctl_siwessid(struct net_device *dev,
|
|||||||
|
|
||||||
if (pCurr == NULL){
|
if (pCurr == NULL){
|
||||||
PRINT_K("SIOCSIWESSID:hidden ssid site survey before associate.......\n");
|
PRINT_K("SIOCSIWESSID:hidden ssid site survey before associate.......\n");
|
||||||
vResetCommandTimer((HANDLE) pDevice);
|
vResetCommandTimer((void *) pDevice);
|
||||||
pMgmt->eScanType = WMAC_SCAN_ACTIVE;
|
pMgmt->eScanType = WMAC_SCAN_ACTIVE;
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID);
|
bScheduleCommand((void *) pDevice,
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, pMgmt->abyDesireSSID);
|
WLAN_CMD_BSSID_SCAN,
|
||||||
|
pMgmt->abyDesireSSID);
|
||||||
|
bScheduleCommand((void *) pDevice,
|
||||||
|
WLAN_CMD_SSID,
|
||||||
|
pMgmt->abyDesireSSID);
|
||||||
}
|
}
|
||||||
else { //mike:to find out if that desired SSID is a hidden-ssid AP ,
|
else { //mike:to find out if that desired SSID is a hidden-ssid AP ,
|
||||||
// by means of judging if there are two same BSSID exist in list ?
|
// by means of judging if there are two same BSSID exist in list ?
|
||||||
@ -959,10 +963,14 @@ int iwctl_siwessid(struct net_device *dev,
|
|||||||
}
|
}
|
||||||
if(uSameBssidNum >= 2) { //hit: desired AP is in hidden ssid mode!!!
|
if(uSameBssidNum >= 2) { //hit: desired AP is in hidden ssid mode!!!
|
||||||
PRINT_K("SIOCSIWESSID:hidden ssid directly associate.......\n");
|
PRINT_K("SIOCSIWESSID:hidden ssid directly associate.......\n");
|
||||||
vResetCommandTimer((HANDLE) pDevice);
|
vResetCommandTimer((void *) pDevice);
|
||||||
pMgmt->eScanType = WMAC_SCAN_PASSIVE; //this scan type,you'll submit scan result!
|
pMgmt->eScanType = WMAC_SCAN_PASSIVE; //this scan type,you'll submit scan result!
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID);
|
bScheduleCommand((void *) pDevice,
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, pMgmt->abyDesireSSID);
|
WLAN_CMD_BSSID_SCAN,
|
||||||
|
pMgmt->abyDesireSSID);
|
||||||
|
bScheduleCommand((void *) pDevice,
|
||||||
|
WLAN_CMD_SSID,
|
||||||
|
pMgmt->abyDesireSSID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1554,11 +1562,11 @@ int iwctl_siwpower(struct net_device *dev,
|
|||||||
}
|
}
|
||||||
if ((wrq->flags & IW_POWER_TYPE) == IW_POWER_TIMEOUT) {
|
if ((wrq->flags & IW_POWER_TYPE) == IW_POWER_TIMEOUT) {
|
||||||
pDevice->ePSMode = WMAC_POWER_FAST;
|
pDevice->ePSMode = WMAC_POWER_FAST;
|
||||||
PSvEnablePowerSaving((HANDLE)pDevice, pMgmt->wListenInterval);
|
PSvEnablePowerSaving((void *) pDevice, pMgmt->wListenInterval);
|
||||||
|
|
||||||
} else if ((wrq->flags & IW_POWER_TYPE) == IW_POWER_PERIOD) {
|
} else if ((wrq->flags & IW_POWER_TYPE) == IW_POWER_PERIOD) {
|
||||||
pDevice->ePSMode = WMAC_POWER_FAST;
|
pDevice->ePSMode = WMAC_POWER_FAST;
|
||||||
PSvEnablePowerSaving((HANDLE)pDevice, pMgmt->wListenInterval);
|
PSvEnablePowerSaving((void *) pDevice, pMgmt->wListenInterval);
|
||||||
}
|
}
|
||||||
switch (wrq->flags & IW_POWER_MODE) {
|
switch (wrq->flags & IW_POWER_MODE) {
|
||||||
case IW_POWER_UNICAST_R:
|
case IW_POWER_UNICAST_R:
|
||||||
@ -2007,12 +2015,16 @@ int iwctl_siwmlme(struct net_device *dev,
|
|||||||
case IW_MLME_DEAUTH:
|
case IW_MLME_DEAUTH:
|
||||||
//this command seems to be not complete,please test it --einsnliu
|
//this command seems to be not complete,please test it --einsnliu
|
||||||
//printk("iwctl_siwmlme--->send DEAUTH\n");
|
//printk("iwctl_siwmlme--->send DEAUTH\n");
|
||||||
//bScheduleCommand((HANDLE) pDevice, WLAN_CMD_DEAUTH, (PBYTE)&reason);
|
/* bScheduleCommand((void *) pDevice,
|
||||||
|
WLAN_CMD_DEAUTH,
|
||||||
|
(PBYTE)&reason); */
|
||||||
//break;
|
//break;
|
||||||
case IW_MLME_DISASSOC:
|
case IW_MLME_DISASSOC:
|
||||||
if(pDevice->bLinkPass == TRUE){
|
if(pDevice->bLinkPass == TRUE){
|
||||||
PRINT_K("iwctl_siwmlme--->send DISASSOCIATE\n");
|
PRINT_K("iwctl_siwmlme--->send DISASSOCIATE\n");
|
||||||
bScheduleCommand((HANDLE)pDevice, WLAN_CMD_DISASSOCIATE, NULL);
|
bScheduleCommand((void *) pDevice,
|
||||||
|
WLAN_CMD_DISASSOCIATE,
|
||||||
|
NULL);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -1158,12 +1158,12 @@ static int device_open(struct net_device *dev) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (pDevice->sMgmtObj.eConfigMode == WMAC_CONFIG_AP) {
|
if (pDevice->sMgmtObj.eConfigMode == WMAC_CONFIG_AP) {
|
||||||
bScheduleCommand((HANDLE)pDevice, WLAN_CMD_RUN_AP, NULL);
|
bScheduleCommand((void *) pDevice, WLAN_CMD_RUN_AP, NULL);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
//mike:mark@2008-11-10
|
//mike:mark@2008-11-10
|
||||||
bScheduleCommand((HANDLE)pDevice, WLAN_CMD_BSSID_SCAN, NULL);
|
bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, NULL);
|
||||||
//bScheduleCommand((HANDLE)pDevice, WLAN_CMD_SSID, NULL);
|
/* bScheduleCommand((void *) pDevice, WLAN_CMD_SSID, NULL); */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1220,7 +1220,7 @@ static int device_close(struct net_device *dev) {
|
|||||||
|
|
||||||
//2007-1121-02<Add>by EinsnLiu
|
//2007-1121-02<Add>by EinsnLiu
|
||||||
if (pDevice->bLinkPass) {
|
if (pDevice->bLinkPass) {
|
||||||
bScheduleCommand((HANDLE)pDevice, WLAN_CMD_DISASSOCIATE, NULL);
|
bScheduleCommand((void *) pDevice, WLAN_CMD_DISASSOCIATE, NULL);
|
||||||
mdelay(30);
|
mdelay(30);
|
||||||
}
|
}
|
||||||
//End Add
|
//End Add
|
||||||
@ -2101,16 +2101,16 @@ static int device_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) {
|
|||||||
if (pMgmt->eConfigMode == WMAC_CONFIG_AP) {
|
if (pMgmt->eConfigMode == WMAC_CONFIG_AP) {
|
||||||
netif_stop_queue(pDevice->dev);
|
netif_stop_queue(pDevice->dev);
|
||||||
spin_lock_irq(&pDevice->lock);
|
spin_lock_irq(&pDevice->lock);
|
||||||
bScheduleCommand((HANDLE)pDevice, WLAN_CMD_RUN_AP, NULL);
|
bScheduleCommand((void *) pDevice, WLAN_CMD_RUN_AP, NULL);
|
||||||
spin_unlock_irq(&pDevice->lock);
|
spin_unlock_irq(&pDevice->lock);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Commit the settings\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Commit the settings\n");
|
||||||
spin_lock_irq(&pDevice->lock);
|
spin_lock_irq(&pDevice->lock);
|
||||||
//2007-1121-01<Modify>by EinsnLiu
|
//2007-1121-01<Modify>by EinsnLiu
|
||||||
if (pDevice->bLinkPass&&
|
if (pDevice->bLinkPass &&
|
||||||
memcmp(pMgmt->abyCurrSSID,pMgmt->abyDesireSSID,WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN)) {
|
memcmp(pMgmt->abyCurrSSID,pMgmt->abyDesireSSID,WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN)) {
|
||||||
bScheduleCommand((HANDLE)pDevice, WLAN_CMD_DISASSOCIATE, NULL);
|
bScheduleCommand((void *) pDevice, WLAN_CMD_DISASSOCIATE, NULL);
|
||||||
} else {
|
} else {
|
||||||
pDevice->bLinkPass = FALSE;
|
pDevice->bLinkPass = FALSE;
|
||||||
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
||||||
@ -2121,10 +2121,14 @@ static int device_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) {
|
|||||||
netif_stop_queue(pDevice->dev);
|
netif_stop_queue(pDevice->dev);
|
||||||
#ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT
|
#ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT
|
||||||
pMgmt->eScanType = WMAC_SCAN_ACTIVE;
|
pMgmt->eScanType = WMAC_SCAN_ACTIVE;
|
||||||
if(pDevice->bWPASuppWextEnabled !=TRUE)
|
if (!pDevice->bWPASuppWextEnabled)
|
||||||
#endif
|
#endif
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID);
|
bScheduleCommand((void *) pDevice,
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, NULL);
|
WLAN_CMD_BSSID_SCAN,
|
||||||
|
pMgmt->abyDesireSSID);
|
||||||
|
bScheduleCommand((void *) pDevice,
|
||||||
|
WLAN_CMD_SSID,
|
||||||
|
NULL);
|
||||||
spin_unlock_irq(&pDevice->lock);
|
spin_unlock_irq(&pDevice->lock);
|
||||||
}
|
}
|
||||||
pDevice->bCommit = FALSE;
|
pDevice->bCommit = FALSE;
|
||||||
|
@ -50,19 +50,14 @@
|
|||||||
|
|
||||||
/*--------------------- Static Definitions -------------------------*/
|
/*--------------------- Static Definitions -------------------------*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*--------------------- Static Classes ----------------------------*/
|
/*--------------------- Static Classes ----------------------------*/
|
||||||
|
|
||||||
/*--------------------- Static Variables --------------------------*/
|
/*--------------------- Static Variables --------------------------*/
|
||||||
static int msglevel =MSG_LEVEL_INFO;
|
static int msglevel =MSG_LEVEL_INFO;
|
||||||
/*--------------------- Static Functions --------------------------*/
|
/*--------------------- Static Functions --------------------------*/
|
||||||
|
|
||||||
|
|
||||||
/*--------------------- Export Variables --------------------------*/
|
/*--------------------- Export Variables --------------------------*/
|
||||||
|
|
||||||
|
|
||||||
/*--------------------- Export Functions --------------------------*/
|
/*--------------------- Export Functions --------------------------*/
|
||||||
|
|
||||||
/*+
|
/*+
|
||||||
@ -75,12 +70,8 @@ static int msglevel =MSG_LEVEL_INFO;
|
|||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
|
void PSvEnablePowerSaving(void *hDeviceContext,
|
||||||
void
|
WORD wListenInterval)
|
||||||
PSvEnablePowerSaving(
|
|
||||||
HANDLE hDeviceContext,
|
|
||||||
WORD wListenInterval
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
||||||
@ -128,7 +119,7 @@ PSvEnablePowerSaving(
|
|||||||
pDevice->bEnablePSMode = TRUE;
|
pDevice->bEnablePSMode = TRUE;
|
||||||
|
|
||||||
if (pDevice->eOPMode == OP_MODE_ADHOC) {
|
if (pDevice->eOPMode == OP_MODE_ADHOC) {
|
||||||
// bMgrPrepareBeaconToSend((HANDLE)pDevice, pMgmt);
|
/* bMgrPrepareBeaconToSend((void *) pDevice, pMgmt); */
|
||||||
}
|
}
|
||||||
// We don't send null pkt in ad hoc mode since beacon will handle this.
|
// We don't send null pkt in ad hoc mode since beacon will handle this.
|
||||||
else if (pDevice->eOPMode == OP_MODE_INFRASTRUCTURE) {
|
else if (pDevice->eOPMode == OP_MODE_INFRASTRUCTURE) {
|
||||||
@ -139,11 +130,6 @@ PSvEnablePowerSaving(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*+
|
/*+
|
||||||
*
|
*
|
||||||
* Routine Description:
|
* Routine Description:
|
||||||
@ -154,10 +140,7 @@ PSvEnablePowerSaving(
|
|||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
void
|
void PSvDisablePowerSaving(void *hDeviceContext)
|
||||||
PSvDisablePowerSaving(
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
// PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
// PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
||||||
@ -187,7 +170,6 @@ PSvDisablePowerSaving(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*+
|
/*+
|
||||||
*
|
*
|
||||||
* Routine Description:
|
* Routine Description:
|
||||||
@ -198,13 +180,9 @@ PSvDisablePowerSaving(
|
|||||||
* FALSE, if fail
|
* FALSE, if fail
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
|
BOOL PSbConsiderPowerDown(void *hDeviceContext,
|
||||||
BOOL
|
BOOL bCheckRxDMA,
|
||||||
PSbConsiderPowerDown(
|
BOOL bCheckCountToWakeUp)
|
||||||
HANDLE hDeviceContext,
|
|
||||||
BOOL bCheckRxDMA,
|
|
||||||
BOOL bCheckCountToWakeUp
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
||||||
@ -248,8 +226,6 @@ PSbConsiderPowerDown(
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*+
|
/*+
|
||||||
*
|
*
|
||||||
* Routine Description:
|
* Routine Description:
|
||||||
@ -260,12 +236,7 @@ PSbConsiderPowerDown(
|
|||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
|
void PSvSendPSPOLL(void *hDeviceContext)
|
||||||
|
|
||||||
void
|
|
||||||
PSvSendPSPOLL(
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
||||||
@ -297,8 +268,6 @@ PSvSendPSPOLL(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*+
|
/*+
|
||||||
*
|
*
|
||||||
* Routine Description:
|
* Routine Description:
|
||||||
@ -308,10 +277,8 @@ PSvSendPSPOLL(
|
|||||||
* None.
|
* None.
|
||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
BOOL
|
|
||||||
PSbSendNullPacket(
|
BOOL PSbSendNullPacket(void *hDeviceContext)
|
||||||
HANDLE hDeviceContext
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSTxMgmtPacket pTxPacket = NULL;
|
PSTxMgmtPacket pTxPacket = NULL;
|
||||||
@ -388,10 +355,7 @@ PSbSendNullPacket(
|
|||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
BOOL
|
BOOL PSbIsNextTBTTWakeUp(void *hDeviceContext)
|
||||||
PSbIsNextTBTTWakeUp(
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
|
@ -48,37 +48,14 @@
|
|||||||
/* PSDevice pDevice */
|
/* PSDevice pDevice */
|
||||||
/* PSDevice hDeviceContext */
|
/* PSDevice hDeviceContext */
|
||||||
|
|
||||||
BOOL
|
BOOL PSbConsiderPowerDown(void *hDeviceContext,
|
||||||
PSbConsiderPowerDown(
|
BOOL bCheckRxDMA,
|
||||||
HANDLE hDeviceContext,
|
BOOL bCheckCountToWakeUp);
|
||||||
BOOL bCheckRxDMA,
|
|
||||||
BOOL bCheckCountToWakeUp
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
void PSvDisablePowerSaving(void *hDeviceContext);
|
||||||
PSvDisablePowerSaving(
|
void PSvEnablePowerSaving(void *hDeviceContext, WORD wListenInterval);
|
||||||
HANDLE hDeviceContext
|
void PSvSendPSPOLL(void *hDeviceContext);
|
||||||
);
|
BOOL PSbSendNullPacket(void *hDeviceContext);
|
||||||
|
BOOL PSbIsNextTBTTWakeUp(void *hDeviceContext);
|
||||||
void
|
|
||||||
PSvEnablePowerSaving(
|
|
||||||
HANDLE hDeviceContext,
|
|
||||||
WORD wListenInterval
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
|
||||||
PSvSendPSPOLL(
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
);
|
|
||||||
|
|
||||||
BOOL
|
|
||||||
PSbSendNullPacket(
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
);
|
|
||||||
|
|
||||||
BOOL
|
|
||||||
PSbIsNextTBTTWakeUp(
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
);
|
|
||||||
|
|
||||||
#endif /* __POWER_H__ */
|
#endif /* __POWER_H__ */
|
||||||
|
@ -3032,10 +3032,12 @@ nsDMA_tx_packet(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dma_tx: pDevice->wCurrentRate = %d \n", pDevice->wCurrentRate);
|
DBG_PRT(MSG_LEVEL_DEBUG,
|
||||||
|
KERN_INFO "dma_tx: pDevice->wCurrentRate = %d\n",
|
||||||
|
pDevice->wCurrentRate);
|
||||||
|
|
||||||
if (wKeepRate != pDevice->wCurrentRate) {
|
if (wKeepRate != pDevice->wCurrentRate) {
|
||||||
bScheduleCommand((HANDLE)pDevice, WLAN_CMD_SETPOWER, NULL);
|
bScheduleCommand((void *) pDevice, WLAN_CMD_SETPOWER, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pDevice->wCurrentRate <= RATE_11M) {
|
if (pDevice->wCurrentRate <= RATE_11M) {
|
||||||
@ -3118,7 +3120,9 @@ nsDMA_tx_packet(
|
|||||||
|
|
||||||
if ( pDevice->bEnablePSMode == TRUE ) {
|
if ( pDevice->bEnablePSMode == TRUE ) {
|
||||||
if ( !pDevice->bPSModeTxBurst ) {
|
if ( !pDevice->bPSModeTxBurst ) {
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_MAC_DISPOWERSAVING, NULL);
|
bScheduleCommand((void *) pDevice,
|
||||||
|
WLAN_CMD_MAC_DISPOWERSAVING,
|
||||||
|
NULL);
|
||||||
pDevice->bPSModeTxBurst = TRUE;
|
pDevice->bPSModeTxBurst = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3138,7 +3142,7 @@ nsDMA_tx_packet(
|
|||||||
if (bNeedDeAuth == TRUE) {
|
if (bNeedDeAuth == TRUE) {
|
||||||
WORD wReason = WLAN_MGMT_REASON_MIC_FAILURE;
|
WORD wReason = WLAN_MGMT_REASON_MIC_FAILURE;
|
||||||
|
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_DEAUTH, (PBYTE)&wReason);
|
bScheduleCommand((void *) pDevice, WLAN_CMD_DEAUTH, (PBYTE) &wReason);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(status!=STATUS_PENDING) {
|
if(status!=STATUS_PENDING) {
|
||||||
@ -3258,9 +3262,8 @@ bRelayPacketSend (
|
|||||||
pDevice->wCurrentRate = pMgmt->sNodeDBTable[uNodeIndex].wTxDataRate;
|
pDevice->wCurrentRate = pMgmt->sNodeDBTable[uNodeIndex].wTxDataRate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (wKeepRate != pDevice->wCurrentRate) {
|
if (wKeepRate != pDevice->wCurrentRate) {
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SETPOWER, NULL);
|
bScheduleCommand((void *) pDevice, WLAN_CMD_SETPOWER, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pDevice->wCurrentRate <= RATE_11M)
|
if (pDevice->wCurrentRate <= RATE_11M)
|
||||||
|
@ -133,11 +133,4 @@ typedef DWORD * PDWORD;
|
|||||||
|
|
||||||
typedef QWORD * PQWORD;
|
typedef QWORD * PQWORD;
|
||||||
|
|
||||||
// handle declaration
|
|
||||||
#ifdef STRICT
|
|
||||||
typedef void *HANDLE;
|
|
||||||
#else
|
|
||||||
typedef void *HANDLE;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* __TTYPE_H__ */
|
#endif /* __TTYPE_H__ */
|
||||||
|
@ -94,18 +94,12 @@ s_bCommandComplete (
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
static
|
static BOOL s_bClearBSSID_SCAN(void *hDeviceContext);
|
||||||
BOOL s_bClearBSSID_SCAN (
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
);
|
|
||||||
|
|
||||||
/*--------------------- Export Variables --------------------------*/
|
/*--------------------- Export Variables --------------------------*/
|
||||||
|
|
||||||
|
|
||||||
/*--------------------- Export Functions --------------------------*/
|
/*--------------------- Export Functions --------------------------*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Description:
|
* Description:
|
||||||
* Stop AdHoc beacon during scan process
|
* Stop AdHoc beacon during scan process
|
||||||
@ -119,6 +113,7 @@ BOOL s_bClearBSSID_SCAN (
|
|||||||
* Return Value: none
|
* Return Value: none
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static
|
static
|
||||||
void
|
void
|
||||||
vAdHocBeaconStop(PSDevice pDevice)
|
vAdHocBeaconStop(PSDevice pDevice)
|
||||||
@ -321,15 +316,7 @@ s_MgrMakeProbeRequest(
|
|||||||
return pTxPacket;
|
return pTxPacket;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void vCommandTimerWait(void *hDeviceContext, UINT MSecond)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
vCommandTimerWait(
|
|
||||||
HANDLE hDeviceContext,
|
|
||||||
UINT MSecond
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
|
|
||||||
@ -342,13 +329,7 @@ vCommandTimerWait(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void vRunCommand(void *hDeviceContext)
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
vRunCommand(
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
||||||
@ -435,7 +416,8 @@ vRunCommand(
|
|||||||
pMgmt->abyScanBSSID[5] = 0xFF;
|
pMgmt->abyScanBSSID[5] = 0xFF;
|
||||||
pItemSSID->byElementID = WLAN_EID_SSID;
|
pItemSSID->byElementID = WLAN_EID_SSID;
|
||||||
// clear bssid list
|
// clear bssid list
|
||||||
// BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass);
|
/* BSSvClearBSSList((void *) pDevice,
|
||||||
|
pDevice->bLinkPass); */
|
||||||
pMgmt->eScanState = WMAC_IS_SCANNING;
|
pMgmt->eScanState = WMAC_IS_SCANNING;
|
||||||
pDevice->byScanBBType = pDevice->byBBType; //lucas
|
pDevice->byScanBBType = pDevice->byBBType; //lucas
|
||||||
pDevice->bStopDataPkt = TRUE;
|
pDevice->bStopDataPkt = TRUE;
|
||||||
@ -480,11 +462,11 @@ vRunCommand(
|
|||||||
(pMgmt->uScanChannel < CB_MAX_CHANNEL_24G)) {
|
(pMgmt->uScanChannel < CB_MAX_CHANNEL_24G)) {
|
||||||
s_vProbeChannel(pDevice);
|
s_vProbeChannel(pDevice);
|
||||||
spin_unlock_irq(&pDevice->lock);
|
spin_unlock_irq(&pDevice->lock);
|
||||||
vCommandTimerWait((HANDLE)pDevice, 100);
|
vCommandTimerWait((void *) pDevice, 100);
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
spin_unlock_irq(&pDevice->lock);
|
spin_unlock_irq(&pDevice->lock);
|
||||||
vCommandTimerWait((HANDLE)pDevice, WCMD_PASSIVE_SCAN_TIME);
|
vCommandTimerWait((void *) pDevice, WCMD_PASSIVE_SCAN_TIME);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -552,7 +534,11 @@ vRunCommand(
|
|||||||
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Send Disassociation Packet..\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Send Disassociation Packet..\n");
|
||||||
// reason = 8 : disassoc because sta has left
|
// reason = 8 : disassoc because sta has left
|
||||||
vMgrDisassocBeginSta((HANDLE)pDevice, pMgmt, pMgmt->abyCurrBSSID, (8), &Status);
|
vMgrDisassocBeginSta((void *) pDevice,
|
||||||
|
pMgmt,
|
||||||
|
pMgmt->abyCurrBSSID,
|
||||||
|
(8),
|
||||||
|
&Status);
|
||||||
pDevice->bLinkPass = FALSE;
|
pDevice->bLinkPass = FALSE;
|
||||||
ControlvMaskByte(pDevice,MESSAGE_REQUEST_MACREG,MAC_REG_PAPEDELAY,LEDSTS_STS,LEDSTS_SLOW);
|
ControlvMaskByte(pDevice,MESSAGE_REQUEST_MACREG,MAC_REG_PAPEDELAY,LEDSTS_STS,LEDSTS_SLOW);
|
||||||
// unlock command busy
|
// unlock command busy
|
||||||
@ -614,22 +600,26 @@ vRunCommand(
|
|||||||
// set initial state
|
// set initial state
|
||||||
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
||||||
pMgmt->eCurrMode = WMAC_MODE_STANDBY;
|
pMgmt->eCurrMode = WMAC_MODE_STANDBY;
|
||||||
PSvDisablePowerSaving((HANDLE)pDevice);
|
PSvDisablePowerSaving((void *) pDevice);
|
||||||
BSSvClearNodeDBTable(pDevice, 0);
|
BSSvClearNodeDBTable(pDevice, 0);
|
||||||
vMgrJoinBSSBegin((HANDLE)pDevice, &Status);
|
vMgrJoinBSSBegin((void *) pDevice, &Status);
|
||||||
// if Infra mode
|
// if Infra mode
|
||||||
if ((pMgmt->eCurrMode == WMAC_MODE_ESS_STA) && (pMgmt->eCurrState == WMAC_STATE_JOINTED)) {
|
if ((pMgmt->eCurrMode == WMAC_MODE_ESS_STA) && (pMgmt->eCurrState == WMAC_STATE_JOINTED)) {
|
||||||
// Call mgr to begin the deauthentication
|
// Call mgr to begin the deauthentication
|
||||||
// reason = (3) beacuse sta has left ESS
|
// reason = (3) beacuse sta has left ESS
|
||||||
if (pMgmt->eCurrState>= WMAC_STATE_AUTH) {
|
if (pMgmt->eCurrState >= WMAC_STATE_AUTH) {
|
||||||
vMgrDeAuthenBeginSta((HANDLE)pDevice, pMgmt, pMgmt->abyCurrBSSID, (3), &Status);
|
vMgrDeAuthenBeginSta((void *)pDevice,
|
||||||
}
|
pMgmt,
|
||||||
|
pMgmt->abyCurrBSSID,
|
||||||
|
(3),
|
||||||
|
&Status);
|
||||||
|
}
|
||||||
// Call mgr to begin the authentication
|
// Call mgr to begin the authentication
|
||||||
vMgrAuthenBeginSta((HANDLE)pDevice, pMgmt, &Status);
|
vMgrAuthenBeginSta((void *) pDevice, pMgmt, &Status);
|
||||||
if (Status == CMD_STATUS_SUCCESS) {
|
if (Status == CMD_STATUS_SUCCESS) {
|
||||||
pDevice->byLinkWaitCount = 0;
|
pDevice->byLinkWaitCount = 0;
|
||||||
pDevice->eCommandState = WLAN_AUTHENTICATE_WAIT;
|
pDevice->eCommandState = WLAN_AUTHENTICATE_WAIT;
|
||||||
vCommandTimerWait((HANDLE)pDevice, AUTHENTICATE_TIMEOUT);
|
vCommandTimerWait((void *) pDevice, AUTHENTICATE_TIMEOUT);
|
||||||
spin_unlock_irq(&pDevice->lock);
|
spin_unlock_irq(&pDevice->lock);
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO" Set eCommandState = WLAN_AUTHENTICATE_WAIT\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO" Set eCommandState = WLAN_AUTHENTICATE_WAIT\n");
|
||||||
return;
|
return;
|
||||||
@ -648,10 +638,12 @@ vRunCommand(
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// start own IBSS
|
// start own IBSS
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "CreateOwn IBSS by CurrMode = IBSS_STA \n");
|
DBG_PRT(MSG_LEVEL_DEBUG,
|
||||||
vMgrCreateOwnIBSS((HANDLE)pDevice, &Status);
|
KERN_INFO "CreateOwn IBSS by CurrMode = IBSS_STA\n");
|
||||||
|
vMgrCreateOwnIBSS((void *) pDevice, &Status);
|
||||||
if (Status != CMD_STATUS_SUCCESS){
|
if (Status != CMD_STATUS_SUCCESS){
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " WLAN_CMD_IBSS_CREATE fail ! \n");
|
DBG_PRT(MSG_LEVEL_DEBUG,
|
||||||
|
KERN_INFO "WLAN_CMD_IBSS_CREATE fail!\n");
|
||||||
};
|
};
|
||||||
BSSvAddMulticastNode(pDevice);
|
BSSvAddMulticastNode(pDevice);
|
||||||
}
|
}
|
||||||
@ -662,10 +654,12 @@ vRunCommand(
|
|||||||
if (pMgmt->eConfigMode == WMAC_CONFIG_IBSS_STA ||
|
if (pMgmt->eConfigMode == WMAC_CONFIG_IBSS_STA ||
|
||||||
pMgmt->eConfigMode == WMAC_CONFIG_AUTO) {
|
pMgmt->eConfigMode == WMAC_CONFIG_AUTO) {
|
||||||
// start own IBSS
|
// start own IBSS
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "CreateOwn IBSS by CurrMode = STANDBY \n");
|
DBG_PRT(MSG_LEVEL_DEBUG,
|
||||||
vMgrCreateOwnIBSS((HANDLE)pDevice, &Status);
|
KERN_INFO "CreateOwn IBSS by CurrMode = STANDBY\n");
|
||||||
|
vMgrCreateOwnIBSS((void *) pDevice, &Status);
|
||||||
if (Status != CMD_STATUS_SUCCESS){
|
if (Status != CMD_STATUS_SUCCESS){
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO" WLAN_CMD_IBSS_CREATE fail ! \n");
|
DBG_PRT(MSG_LEVEL_DEBUG,
|
||||||
|
KERN_INFO "WLAN_CMD_IBSS_CREATE fail!\n");
|
||||||
};
|
};
|
||||||
BSSvAddMulticastNode(pDevice);
|
BSSvAddMulticastNode(pDevice);
|
||||||
s_bClearBSSID_SCAN(pDevice);
|
s_bClearBSSID_SCAN(pDevice);
|
||||||
@ -701,12 +695,12 @@ vRunCommand(
|
|||||||
pDevice->byLinkWaitCount = 0;
|
pDevice->byLinkWaitCount = 0;
|
||||||
// Call mgr to begin the association
|
// Call mgr to begin the association
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"eCurrState == WMAC_STATE_AUTH\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"eCurrState == WMAC_STATE_AUTH\n");
|
||||||
vMgrAssocBeginSta((HANDLE)pDevice, pMgmt, &Status);
|
vMgrAssocBeginSta((void *) pDevice, pMgmt, &Status);
|
||||||
if (Status == CMD_STATUS_SUCCESS) {
|
if (Status == CMD_STATUS_SUCCESS) {
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"eCommandState = WLAN_ASSOCIATE_WAIT\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"eCommandState = WLAN_ASSOCIATE_WAIT\n");
|
||||||
pDevice->byLinkWaitCount = 0;
|
pDevice->byLinkWaitCount = 0;
|
||||||
pDevice->eCommandState = WLAN_ASSOCIATE_WAIT;
|
pDevice->eCommandState = WLAN_ASSOCIATE_WAIT;
|
||||||
vCommandTimerWait((HANDLE)pDevice, ASSOCIATE_TIMEOUT);
|
vCommandTimerWait((void *) pDevice, ASSOCIATE_TIMEOUT);
|
||||||
spin_unlock_irq(&pDevice->lock);
|
spin_unlock_irq(&pDevice->lock);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -718,7 +712,7 @@ vRunCommand(
|
|||||||
pDevice->byLinkWaitCount ++;
|
pDevice->byLinkWaitCount ++;
|
||||||
printk("WLAN_AUTHENTICATE_WAIT:wait %d times!!\n",pDevice->byLinkWaitCount);
|
printk("WLAN_AUTHENTICATE_WAIT:wait %d times!!\n",pDevice->byLinkWaitCount);
|
||||||
spin_unlock_irq(&pDevice->lock);
|
spin_unlock_irq(&pDevice->lock);
|
||||||
vCommandTimerWait((HANDLE)pDevice, AUTHENTICATE_TIMEOUT/2);
|
vCommandTimerWait((void *) pDevice, AUTHENTICATE_TIMEOUT/2);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
pDevice->byLinkWaitCount = 0;
|
pDevice->byLinkWaitCount = 0;
|
||||||
@ -742,7 +736,8 @@ vRunCommand(
|
|||||||
if (pMgmt->eCurrState == WMAC_STATE_ASSOC) {
|
if (pMgmt->eCurrState == WMAC_STATE_ASSOC) {
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"eCurrState == WMAC_STATE_ASSOC\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"eCurrState == WMAC_STATE_ASSOC\n");
|
||||||
if (pDevice->ePSMode != WMAC_POWER_CAM) {
|
if (pDevice->ePSMode != WMAC_POWER_CAM) {
|
||||||
PSvEnablePowerSaving((HANDLE)pDevice, pMgmt->wListenInterval);
|
PSvEnablePowerSaving((void *) pDevice,
|
||||||
|
pMgmt->wListenInterval);
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
if (pMgmt->eAuthenMode >= WMAC_AUTH_WPA) {
|
if (pMgmt->eAuthenMode >= WMAC_AUTH_WPA) {
|
||||||
@ -786,7 +781,7 @@ vRunCommand(
|
|||||||
pDevice->byLinkWaitCount ++;
|
pDevice->byLinkWaitCount ++;
|
||||||
printk("WLAN_ASSOCIATE_WAIT:wait %d times!!\n",pDevice->byLinkWaitCount);
|
printk("WLAN_ASSOCIATE_WAIT:wait %d times!!\n",pDevice->byLinkWaitCount);
|
||||||
spin_unlock_irq(&pDevice->lock);
|
spin_unlock_irq(&pDevice->lock);
|
||||||
vCommandTimerWait((HANDLE)pDevice, ASSOCIATE_TIMEOUT/2);
|
vCommandTimerWait((void *) pDevice, ASSOCIATE_TIMEOUT/2);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
pDevice->byLinkWaitCount = 0;
|
pDevice->byLinkWaitCount = 0;
|
||||||
@ -823,9 +818,10 @@ vRunCommand(
|
|||||||
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
||||||
pDevice->bFixRate = FALSE;
|
pDevice->bFixRate = FALSE;
|
||||||
|
|
||||||
vMgrCreateOwnIBSS((HANDLE)pDevice, &Status);
|
vMgrCreateOwnIBSS((void *) pDevice, &Status);
|
||||||
if (Status != CMD_STATUS_SUCCESS){
|
if (Status != CMD_STATUS_SUCCESS) {
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " vMgrCreateOwnIBSS fail ! \n");
|
DBG_PRT(MSG_LEVEL_DEBUG,
|
||||||
|
KERN_INFO "vMgrCreateOwnIBSS fail!\n");
|
||||||
};
|
};
|
||||||
// alway turn off unicast bit
|
// alway turn off unicast bit
|
||||||
MACvRegBitsOff(pDevice, MAC_REG_RCR, RCR_UNICAST);
|
MACvRegBitsOff(pDevice, MAC_REG_RCR, RCR_UNICAST);
|
||||||
@ -948,7 +944,11 @@ vRunCommand(
|
|||||||
|
|
||||||
if (pDevice->bLinkPass == TRUE) {
|
if (pDevice->bLinkPass == TRUE) {
|
||||||
// reason = 8 : disassoc because sta has left
|
// reason = 8 : disassoc because sta has left
|
||||||
vMgrDisassocBeginSta((HANDLE)pDevice, pMgmt, pMgmt->abyCurrBSSID, (8), &Status);
|
vMgrDisassocBeginSta((void *) pDevice,
|
||||||
|
pMgmt,
|
||||||
|
pMgmt->abyCurrBSSID,
|
||||||
|
(8),
|
||||||
|
&Status);
|
||||||
pDevice->bLinkPass = FALSE;
|
pDevice->bLinkPass = FALSE;
|
||||||
// unlock command busy
|
// unlock command busy
|
||||||
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
||||||
@ -1185,18 +1185,15 @@ s_bCommandComplete (
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
vCommandTimerWait((void *) pDevice, 0);
|
||||||
vCommandTimerWait((HANDLE)pDevice, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL bScheduleCommand (
|
BOOL bScheduleCommand(void *hDeviceContext,
|
||||||
HANDLE hDeviceContext,
|
CMD_CODE eCommand,
|
||||||
CMD_CODE eCommand,
|
PBYTE pbyItem0)
|
||||||
PBYTE pbyItem0
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
|
|
||||||
@ -1264,10 +1261,7 @@ BOOL bScheduleCommand (
|
|||||||
* Return Value: TRUE if success; otherwise FALSE
|
* Return Value: TRUE if success; otherwise FALSE
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
static
|
static BOOL s_bClearBSSID_SCAN(void *hDeviceContext)
|
||||||
BOOL s_bClearBSSID_SCAN (
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
UINT uCmdDequeueIdx = pDevice->uCmdDequeueIdx;
|
UINT uCmdDequeueIdx = pDevice->uCmdDequeueIdx;
|
||||||
@ -1287,10 +1281,7 @@ BOOL s_bClearBSSID_SCAN (
|
|||||||
|
|
||||||
|
|
||||||
//mike add:reset command timer
|
//mike add:reset command timer
|
||||||
void
|
void vResetCommandTimer(void *hDeviceContext)
|
||||||
vResetCommandTimer(
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
|
|
||||||
@ -1311,10 +1302,7 @@ vResetCommandTimer(
|
|||||||
|
|
||||||
//2007-0115-08<Add>by MikeLiu
|
//2007-0115-08<Add>by MikeLiu
|
||||||
#ifdef TxInSleep
|
#ifdef TxInSleep
|
||||||
void
|
void BSSvSecondTxData(void *hDeviceContext)
|
||||||
BSSvSecondTxData(
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
||||||
|
@ -105,33 +105,22 @@ typedef enum tagCMD_STATE {
|
|||||||
WLAN_CMD_IDLE
|
WLAN_CMD_IDLE
|
||||||
} CMD_STATE, *PCMD_STATE;
|
} CMD_STATE, *PCMD_STATE;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*--------------------- Export Classes ----------------------------*/
|
/*--------------------- Export Classes ----------------------------*/
|
||||||
|
|
||||||
/*--------------------- Export Variables --------------------------*/
|
/*--------------------- Export Variables --------------------------*/
|
||||||
|
|
||||||
|
|
||||||
/*--------------------- Export Types ------------------------------*/
|
/*--------------------- Export Types ------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
/*--------------------- Export Functions --------------------------*/
|
/*--------------------- Export Functions --------------------------*/
|
||||||
void
|
|
||||||
vResetCommandTimer(
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
);
|
|
||||||
|
|
||||||
BOOL
|
void vResetCommandTimer(void *hDeviceContext);
|
||||||
bScheduleCommand(
|
|
||||||
HANDLE hDeviceContext,
|
BOOL bScheduleCommand(void *hDeviceContext,
|
||||||
CMD_CODE eCommand,
|
CMD_CODE eCommand,
|
||||||
PBYTE pbyItem0
|
PBYTE pbyItem0);
|
||||||
);
|
|
||||||
|
void vRunCommand(void *hDeviceContext);
|
||||||
|
|
||||||
void
|
|
||||||
vRunCommand(
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
);
|
|
||||||
/*
|
/*
|
||||||
void
|
void
|
||||||
WCMDvCommandThread(
|
WCMDvCommandThread(
|
||||||
@ -141,10 +130,7 @@ WCMDvCommandThread(
|
|||||||
|
|
||||||
//2007-0115-09<Add>by MikeLiu
|
//2007-0115-09<Add>by MikeLiu
|
||||||
#ifdef TxInSleep
|
#ifdef TxInSleep
|
||||||
void
|
void BSSvSecondTxData(void *hDeviceContext);
|
||||||
BSSvSecondTxData(
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* __WCMD_H__ */
|
#endif /* __WCMD_H__ */
|
||||||
|
@ -329,14 +329,10 @@ s_bCipherMatch (
|
|||||||
PKnownBSS pCurr
|
PKnownBSS pCurr
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*--------------------- Export Variables --------------------------*/
|
/*--------------------- Export Variables --------------------------*/
|
||||||
|
|
||||||
|
|
||||||
/*--------------------- Export Functions --------------------------*/
|
/*--------------------- Export Functions --------------------------*/
|
||||||
|
|
||||||
|
|
||||||
/*+
|
/*+
|
||||||
*
|
*
|
||||||
* Routine Description:
|
* Routine Description:
|
||||||
@ -347,10 +343,7 @@ s_bCipherMatch (
|
|||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
void
|
void vMgrObjectInit(void *hDeviceContext)
|
||||||
vMgrObjectInit(
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
||||||
@ -368,7 +361,7 @@ vMgrObjectInit(
|
|||||||
pMgmt->byCSSPK = KEY_CTL_NONE;
|
pMgmt->byCSSPK = KEY_CTL_NONE;
|
||||||
pMgmt->byCSSGK = KEY_CTL_NONE;
|
pMgmt->byCSSGK = KEY_CTL_NONE;
|
||||||
pMgmt->wIBSSBeaconPeriod = DEFAULT_IBSS_BI;
|
pMgmt->wIBSSBeaconPeriod = DEFAULT_IBSS_BI;
|
||||||
BSSvClearBSSList((HANDLE)pDevice, FALSE);
|
BSSvClearBSSList((void *) pDevice, FALSE);
|
||||||
|
|
||||||
init_timer(&pMgmt->sTimerSecondCallback);
|
init_timer(&pMgmt->sTimerSecondCallback);
|
||||||
pMgmt->sTimerSecondCallback.data = (ULONG)pDevice;
|
pMgmt->sTimerSecondCallback.data = (ULONG)pDevice;
|
||||||
@ -401,8 +394,6 @@ vMgrObjectInit(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*+
|
/*+
|
||||||
*
|
*
|
||||||
* Routine Description:
|
* Routine Description:
|
||||||
@ -414,13 +405,9 @@ vMgrObjectInit(
|
|||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
|
void vMgrAssocBeginSta(void *hDeviceContext,
|
||||||
void
|
PSMgmtObject pMgmt,
|
||||||
vMgrAssocBeginSta(
|
PCMD_STATUS pStatus)
|
||||||
HANDLE hDeviceContext,
|
|
||||||
PSMgmtObject pMgmt,
|
|
||||||
PCMD_STATUS pStatus
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSTxMgmtPacket pTxPacket;
|
PSTxMgmtPacket pTxPacket;
|
||||||
@ -491,12 +478,9 @@ vMgrAssocBeginSta(
|
|||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
void
|
void vMgrReAssocBeginSta(void *hDeviceContext,
|
||||||
vMgrReAssocBeginSta(
|
PSMgmtObject pMgmt,
|
||||||
HANDLE hDeviceContext,
|
PCMD_STATUS pStatus)
|
||||||
PSMgmtObject pMgmt,
|
|
||||||
PCMD_STATUS pStatus
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSTxMgmtPacket pTxPacket;
|
PSTxMgmtPacket pTxPacket;
|
||||||
@ -570,14 +554,11 @@ vMgrReAssocBeginSta(
|
|||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
void
|
void vMgrDisassocBeginSta(void *hDeviceContext,
|
||||||
vMgrDisassocBeginSta(
|
PSMgmtObject pMgmt,
|
||||||
HANDLE hDeviceContext,
|
PBYTE abyDestAddress,
|
||||||
PSMgmtObject pMgmt,
|
WORD wReason,
|
||||||
PBYTE abyDestAddress,
|
PCMD_STATUS pStatus)
|
||||||
WORD wReason,
|
|
||||||
PCMD_STATUS pStatus
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSTxMgmtPacket pTxPacket = NULL;
|
PSTxMgmtPacket pTxPacket = NULL;
|
||||||
@ -987,7 +968,10 @@ s_vMgrRxAssocResponse(
|
|||||||
};
|
};
|
||||||
DBG_PRT(MSG_LEVEL_INFO, KERN_INFO "Association Successful, AID=%d.\n", pMgmt->wCurrAID & ~(BIT14|BIT15));
|
DBG_PRT(MSG_LEVEL_INFO, KERN_INFO "Association Successful, AID=%d.\n", pMgmt->wCurrAID & ~(BIT14|BIT15));
|
||||||
pMgmt->eCurrState = WMAC_STATE_ASSOC;
|
pMgmt->eCurrState = WMAC_STATE_ASSOC;
|
||||||
BSSvUpdateAPNode((HANDLE)pDevice, sFrame.pwCapInfo, sFrame.pSuppRates, sFrame.pExtSuppRates);
|
BSSvUpdateAPNode((void *) pDevice,
|
||||||
|
sFrame.pwCapInfo,
|
||||||
|
sFrame.pSuppRates,
|
||||||
|
sFrame.pExtSuppRates);
|
||||||
pItemSSID = (PWLAN_IE_SSID)pMgmt->abyCurrSSID;
|
pItemSSID = (PWLAN_IE_SSID)pMgmt->abyCurrSSID;
|
||||||
DBG_PRT(MSG_LEVEL_INFO, KERN_INFO "Link with AP(SSID): %s\n", pItemSSID->abySSID);
|
DBG_PRT(MSG_LEVEL_INFO, KERN_INFO "Link with AP(SSID): %s\n", pItemSSID->abySSID);
|
||||||
pDevice->bLinkPass = TRUE;
|
pDevice->bLinkPass = TRUE;
|
||||||
@ -1089,8 +1073,6 @@ if(pMgmt->eCurrState == WMAC_STATE_ASSOC)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*+
|
/*+
|
||||||
*
|
*
|
||||||
* Routine Description:
|
* Routine Description:
|
||||||
@ -1102,12 +1084,9 @@ if(pMgmt->eCurrState == WMAC_STATE_ASSOC)
|
|||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
void
|
void vMgrAuthenBeginSta(void *hDeviceContext,
|
||||||
vMgrAuthenBeginSta(
|
PSMgmtObject pMgmt,
|
||||||
HANDLE hDeviceContext,
|
PCMD_STATUS pStatus)
|
||||||
PSMgmtObject pMgmt,
|
|
||||||
PCMD_STATUS pStatus
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
WLAN_FR_AUTHEN sFrame;
|
WLAN_FR_AUTHEN sFrame;
|
||||||
@ -1147,8 +1126,6 @@ vMgrAuthenBeginSta(
|
|||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*+
|
/*+
|
||||||
*
|
*
|
||||||
* Routine Description:
|
* Routine Description:
|
||||||
@ -1160,14 +1137,11 @@ vMgrAuthenBeginSta(
|
|||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
void
|
void vMgrDeAuthenBeginSta(void *hDeviceContext,
|
||||||
vMgrDeAuthenBeginSta(
|
PSMgmtObject pMgmt,
|
||||||
HANDLE hDeviceContext,
|
PBYTE abyDestAddress,
|
||||||
PSMgmtObject pMgmt,
|
WORD wReason,
|
||||||
PBYTE abyDestAddress,
|
PCMD_STATUS pStatus)
|
||||||
WORD wReason,
|
|
||||||
PCMD_STATUS pStatus
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
WLAN_FR_DEAUTHEN sFrame;
|
WLAN_FR_DEAUTHEN sFrame;
|
||||||
@ -1405,12 +1379,11 @@ s_vMgrRxAuthenSequence_2(
|
|||||||
s_vMgrLogStatus(pMgmt, cpu_to_le16((*(pFrame->pwStatus))));
|
s_vMgrLogStatus(pMgmt, cpu_to_le16((*(pFrame->pwStatus))));
|
||||||
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
||||||
}
|
}
|
||||||
if (pDevice->eCommandState == WLAN_AUTHENTICATE_WAIT ) {
|
if (pDevice->eCommandState == WLAN_AUTHENTICATE_WAIT) {
|
||||||
// spin_unlock_irq(&pDevice->lock);
|
/* spin_unlock_irq(&pDevice->lock);
|
||||||
// vCommandTimerWait((HANDLE)pDevice, 0);
|
vCommandTimerWait((void *) pDevice, 0);
|
||||||
// spin_lock_irq(&pDevice->lock);
|
spin_lock_irq(&pDevice->lock); */
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WLAN_AUTH_ALG_SHAREDKEY:
|
case WLAN_AUTH_ALG_SHAREDKEY:
|
||||||
@ -1453,9 +1426,9 @@ s_vMgrRxAuthenSequence_2(
|
|||||||
else {
|
else {
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Mgt:rx Auth_reply sequence_2 status error ...\n");
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Mgt:rx Auth_reply sequence_2 status error ...\n");
|
||||||
if ( pDevice->eCommandState == WLAN_AUTHENTICATE_WAIT ) {
|
if ( pDevice->eCommandState == WLAN_AUTHENTICATE_WAIT ) {
|
||||||
// spin_unlock_irq(&pDevice->lock);
|
/* spin_unlock_irq(&pDevice->lock);
|
||||||
// vCommandTimerWait((HANDLE)pDevice, 0);
|
vCommandTimerWait((void *) pDevice, 0);
|
||||||
// spin_lock_irq(&pDevice->lock);
|
spin_lock_irq(&pDevice->lock); */
|
||||||
}
|
}
|
||||||
s_vMgrLogStatus(pMgmt, cpu_to_le16((*(pFrame->pwStatus))));
|
s_vMgrLogStatus(pMgmt, cpu_to_le16((*(pFrame->pwStatus))));
|
||||||
}
|
}
|
||||||
@ -1591,11 +1564,10 @@ s_vMgrRxAuthenSequence_4(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ( pDevice->eCommandState == WLAN_AUTHENTICATE_WAIT ) {
|
if ( pDevice->eCommandState == WLAN_AUTHENTICATE_WAIT ) {
|
||||||
// spin_unlock_irq(&pDevice->lock);
|
/* spin_unlock_irq(&pDevice->lock);
|
||||||
// vCommandTimerWait((HANDLE)pDevice, 0);
|
vCommandTimerWait((void *) pDevice, 0);
|
||||||
// spin_lock_irq(&pDevice->lock);
|
spin_lock_irq(&pDevice->lock); */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*+
|
/*+
|
||||||
@ -1913,10 +1885,12 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
|
|||||||
sERP.byERP = 0;
|
sERP.byERP = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
pBSSList = BSSpAddrIsInBSSList((HANDLE)pDevice, sFrame.pHdr->sA3.abyAddr3, sFrame.pSSID);
|
pBSSList = BSSpAddrIsInBSSList((void *) pDevice,
|
||||||
|
sFrame.pHdr->sA3.abyAddr3,
|
||||||
|
sFrame.pSSID);
|
||||||
if (pBSSList == NULL) {
|
if (pBSSList == NULL) {
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Beacon/insert: RxChannel = : %d\n", byCurrChannel);
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Beacon/insert: RxChannel = : %d\n", byCurrChannel);
|
||||||
BSSbInsertToBSSList((HANDLE)pDevice,
|
BSSbInsertToBSSList((void *) pDevice,
|
||||||
sFrame.pHdr->sA3.abyAddr3,
|
sFrame.pHdr->sA3.abyAddr3,
|
||||||
*sFrame.pqwTimestamp,
|
*sFrame.pqwTimestamp,
|
||||||
*sFrame.pwBeaconInterval,
|
*sFrame.pwBeaconInterval,
|
||||||
@ -1932,12 +1906,11 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
|
|||||||
sFrame.pIE_Quiet,
|
sFrame.pIE_Quiet,
|
||||||
sFrame.len - WLAN_HDR_ADDR3_LEN,
|
sFrame.len - WLAN_HDR_ADDR3_LEN,
|
||||||
sFrame.pHdr->sA4.abyAddr4, // payload of beacon
|
sFrame.pHdr->sA4.abyAddr4, // payload of beacon
|
||||||
(HANDLE)pRxPacket
|
(void *) pRxPacket);
|
||||||
);
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"update bcn: RxChannel = : %d\n", byCurrChannel);
|
// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"update bcn: RxChannel = : %d\n", byCurrChannel);
|
||||||
BSSbUpdateToBSSList((HANDLE)pDevice,
|
BSSbUpdateToBSSList((void *) pDevice,
|
||||||
*sFrame.pqwTimestamp,
|
*sFrame.pqwTimestamp,
|
||||||
*sFrame.pwBeaconInterval,
|
*sFrame.pwBeaconInterval,
|
||||||
*sFrame.pwCapInfo,
|
*sFrame.pwCapInfo,
|
||||||
@ -1954,8 +1927,7 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
|
|||||||
pBSSList,
|
pBSSList,
|
||||||
sFrame.len - WLAN_HDR_ADDR3_LEN,
|
sFrame.len - WLAN_HDR_ADDR3_LEN,
|
||||||
sFrame.pHdr->sA4.abyAddr4, // payload of probresponse
|
sFrame.pHdr->sA4.abyAddr4, // payload of probresponse
|
||||||
(HANDLE)pRxPacket
|
(void *) pRxPacket);
|
||||||
);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2324,7 +2296,7 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
|
|||||||
// set highest basic rate
|
// set highest basic rate
|
||||||
// s_vSetHighestBasicRate(pDevice, (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates);
|
// s_vSetHighestBasicRate(pDevice, (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates);
|
||||||
// Prepare beacon frame
|
// Prepare beacon frame
|
||||||
bMgrPrepareBeaconToSend((HANDLE)pDevice, pMgmt);
|
bMgrPrepareBeaconToSend((void *) pDevice, pMgmt);
|
||||||
// }
|
// }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -2341,8 +2313,6 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*+
|
/*+
|
||||||
*
|
*
|
||||||
* Routine Description:
|
* Routine Description:
|
||||||
@ -2355,11 +2325,9 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
|
|||||||
* CMD_STATUS
|
* CMD_STATUS
|
||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
void
|
|
||||||
vMgrCreateOwnIBSS(
|
void vMgrCreateOwnIBSS(void *hDeviceContext,
|
||||||
HANDLE hDeviceContext,
|
PCMD_STATUS pStatus)
|
||||||
PCMD_STATUS pStatus
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
||||||
@ -2609,14 +2577,12 @@ vMgrCreateOwnIBSS(
|
|||||||
|
|
||||||
pMgmt->eCurrState = WMAC_STATE_STARTED;
|
pMgmt->eCurrState = WMAC_STATE_STARTED;
|
||||||
// Prepare beacon to send
|
// Prepare beacon to send
|
||||||
if (bMgrPrepareBeaconToSend((HANDLE)pDevice, pMgmt)) {
|
if (bMgrPrepareBeaconToSend((void *) pDevice, pMgmt))
|
||||||
*pStatus = CMD_STATUS_SUCCESS;
|
*pStatus = CMD_STATUS_SUCCESS;
|
||||||
}
|
|
||||||
return ;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*+
|
/*+
|
||||||
*
|
*
|
||||||
* Routine Description:
|
* Routine Description:
|
||||||
@ -2630,13 +2596,8 @@ vMgrCreateOwnIBSS(
|
|||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
void
|
void vMgrJoinBSSBegin(void *hDeviceContext, PCMD_STATUS pStatus)
|
||||||
vMgrJoinBSSBegin(
|
|
||||||
HANDLE hDeviceContext,
|
|
||||||
PCMD_STATUS pStatus
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
|
||||||
PKnownBSS pCurr = NULL;
|
PKnownBSS pCurr = NULL;
|
||||||
@ -2782,12 +2743,17 @@ vMgrJoinBSSBegin(
|
|||||||
// Add current BSS to Candidate list
|
// Add current BSS to Candidate list
|
||||||
// This should only works for WPA2 BSS, and WPA2 BSS check must be done before.
|
// This should only works for WPA2 BSS, and WPA2 BSS check must be done before.
|
||||||
if (pMgmt->eAuthenMode == WMAC_AUTH_WPA2) {
|
if (pMgmt->eAuthenMode == WMAC_AUTH_WPA2) {
|
||||||
BOOL bResult = bAdd_PMKID_Candidate((HANDLE)pDevice, pMgmt->abyCurrBSSID, &pCurr->sRSNCapObj);
|
BOOL bResult = bAdd_PMKID_Candidate((void *) pDevice,
|
||||||
|
pMgmt->abyCurrBSSID,
|
||||||
|
&pCurr->sRSNCapObj);
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"bAdd_PMKID_Candidate: 1(%d)\n", bResult);
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"bAdd_PMKID_Candidate: 1(%d)\n", bResult);
|
||||||
if (bResult == FALSE) {
|
if (bResult == FALSE) {
|
||||||
vFlush_PMKID_Candidate((HANDLE)pDevice);
|
vFlush_PMKID_Candidate((void *) pDevice);
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"vFlush_PMKID_Candidate: 4\n");
|
DBG_PRT(MSG_LEVEL_DEBUG,
|
||||||
bAdd_PMKID_Candidate((HANDLE)pDevice, pMgmt->abyCurrBSSID, &pCurr->sRSNCapObj);
|
KERN_INFO "vFlush_PMKID_Candidate: 4\n");
|
||||||
|
bAdd_PMKID_Candidate((void *) pDevice,
|
||||||
|
pMgmt->abyCurrBSSID,
|
||||||
|
&pCurr->sRSNCapObj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2940,7 +2906,7 @@ vMgrJoinBSSBegin(
|
|||||||
CARDvSetRSPINF(pDevice, (BYTE)pDevice->byBBType);
|
CARDvSetRSPINF(pDevice, (BYTE)pDevice->byBBType);
|
||||||
|
|
||||||
// Prepare beacon
|
// Prepare beacon
|
||||||
bMgrPrepareBeaconToSend((HANDLE)pDevice, pMgmt);
|
bMgrPrepareBeaconToSend((void *) pDevice, pMgmt);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
||||||
@ -4299,31 +4265,32 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
|
|||||||
|
|
||||||
|
|
||||||
// update or insert the bss
|
// update or insert the bss
|
||||||
pBSSList = BSSpAddrIsInBSSList((HANDLE)pDevice, sFrame.pHdr->sA3.abyAddr3, sFrame.pSSID);
|
pBSSList = BSSpAddrIsInBSSList((void *) pDevice,
|
||||||
|
sFrame.pHdr->sA3.abyAddr3,
|
||||||
|
sFrame.pSSID);
|
||||||
if (pBSSList) {
|
if (pBSSList) {
|
||||||
BSSbUpdateToBSSList((HANDLE)pDevice,
|
BSSbUpdateToBSSList((void *) pDevice,
|
||||||
*sFrame.pqwTimestamp,
|
*sFrame.pqwTimestamp,
|
||||||
*sFrame.pwBeaconInterval,
|
*sFrame.pwBeaconInterval,
|
||||||
*sFrame.pwCapInfo,
|
*sFrame.pwCapInfo,
|
||||||
byCurrChannel,
|
byCurrChannel,
|
||||||
bChannelHit,
|
bChannelHit,
|
||||||
sFrame.pSSID,
|
sFrame.pSSID,
|
||||||
sFrame.pSuppRates,
|
sFrame.pSuppRates,
|
||||||
sFrame.pExtSuppRates,
|
sFrame.pExtSuppRates,
|
||||||
&sERP,
|
&sERP,
|
||||||
sFrame.pRSN,
|
sFrame.pRSN,
|
||||||
sFrame.pRSNWPA,
|
sFrame.pRSNWPA,
|
||||||
sFrame.pIE_Country,
|
sFrame.pIE_Country,
|
||||||
sFrame.pIE_Quiet,
|
sFrame.pIE_Quiet,
|
||||||
pBSSList,
|
pBSSList,
|
||||||
sFrame.len - WLAN_HDR_ADDR3_LEN,
|
sFrame.len - WLAN_HDR_ADDR3_LEN,
|
||||||
sFrame.pHdr->sA4.abyAddr4, // payload of probresponse
|
/* payload of probresponse */
|
||||||
(HANDLE)pRxPacket
|
sFrame.pHdr->sA4.abyAddr4,
|
||||||
);
|
(void *) pRxPacket);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Probe resp/insert: RxChannel = : %d\n", byCurrChannel);
|
DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Probe resp/insert: RxChannel = : %d\n", byCurrChannel);
|
||||||
BSSbInsertToBSSList((HANDLE)pDevice,
|
BSSbInsertToBSSList((void *) pDevice,
|
||||||
sFrame.pHdr->sA3.abyAddr3,
|
sFrame.pHdr->sA3.abyAddr3,
|
||||||
*sFrame.pqwTimestamp,
|
*sFrame.pqwTimestamp,
|
||||||
*sFrame.pwBeaconInterval,
|
*sFrame.pwBeaconInterval,
|
||||||
@ -4338,9 +4305,8 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
|
|||||||
sFrame.pIE_Country,
|
sFrame.pIE_Country,
|
||||||
sFrame.pIE_Quiet,
|
sFrame.pIE_Quiet,
|
||||||
sFrame.len - WLAN_HDR_ADDR3_LEN,
|
sFrame.len - WLAN_HDR_ADDR3_LEN,
|
||||||
sFrame.pHdr->sA4.abyAddr4, // payload of beacon
|
sFrame.pHdr->sA4.abyAddr4, /* payload of beacon */
|
||||||
(HANDLE)pRxPacket
|
(void *) pRxPacket);
|
||||||
);
|
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -4436,10 +4402,6 @@ s_vMgrRxProbeRequest(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*+
|
/*+
|
||||||
*
|
*
|
||||||
* Routine Description:
|
* Routine Description:
|
||||||
@ -4454,13 +4416,9 @@ s_vMgrRxProbeRequest(
|
|||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
|
|
||||||
|
void vMgrRxManagePacket(void *hDeviceContext,
|
||||||
void
|
PSMgmtObject pMgmt,
|
||||||
vMgrRxManagePacket(
|
PSRxMgmtPacket pRxPacket)
|
||||||
HANDLE hDeviceContext,
|
|
||||||
PSMgmtObject pMgmt,
|
|
||||||
PSRxMgmtPacket pRxPacket
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
BOOL bInScan = FALSE;
|
BOOL bInScan = FALSE;
|
||||||
@ -4593,9 +4551,6 @@ vMgrRxManagePacket(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*+
|
/*+
|
||||||
*
|
*
|
||||||
* Routine Description:
|
* Routine Description:
|
||||||
@ -4607,11 +4562,7 @@ vMgrRxManagePacket(
|
|||||||
* TRUE if success; FALSE if failed.
|
* TRUE if success; FALSE if failed.
|
||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
BOOL
|
BOOL bMgrPrepareBeaconToSend(void *hDeviceContext, PSMgmtObject pMgmt)
|
||||||
bMgrPrepareBeaconToSend(
|
|
||||||
HANDLE hDeviceContext,
|
|
||||||
PSMgmtObject pMgmt
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PSTxMgmtPacket pTxPacket;
|
PSTxMgmtPacket pTxPacket;
|
||||||
@ -4715,7 +4666,6 @@ s_vMgrLogStatus(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
@ -4732,12 +4682,10 @@ s_vMgrLogStatus(
|
|||||||
* Return Value: none.
|
* Return Value: none.
|
||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
BOOL
|
|
||||||
bAdd_PMKID_Candidate (
|
BOOL bAdd_PMKID_Candidate(void *hDeviceContext,
|
||||||
HANDLE hDeviceContext,
|
PBYTE pbyBSSID,
|
||||||
PBYTE pbyBSSID,
|
PSRSNCapObject psRSNCapObj)
|
||||||
PSRSNCapObject psRSNCapObj
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
PPMKID_CANDIDATE pCandidateList;
|
PPMKID_CANDIDATE pCandidateList;
|
||||||
@ -4796,10 +4744,8 @@ bAdd_PMKID_Candidate (
|
|||||||
* Return Value: none.
|
* Return Value: none.
|
||||||
*
|
*
|
||||||
-*/
|
-*/
|
||||||
void
|
|
||||||
vFlush_PMKID_Candidate (
|
void vFlush_PMKID_Candidate(void *hDeviceContext)
|
||||||
HANDLE hDeviceContext
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PSDevice pDevice = (PSDevice)hDeviceContext;
|
PSDevice pDevice = (PSDevice)hDeviceContext;
|
||||||
|
|
||||||
|
@ -400,102 +400,61 @@ typedef struct tagSMgmtObject
|
|||||||
|
|
||||||
} SMgmtObject, *PSMgmtObject;
|
} SMgmtObject, *PSMgmtObject;
|
||||||
|
|
||||||
|
|
||||||
/*--------------------- Export Macros ------------------------------*/
|
/*--------------------- Export Macros ------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
/*--------------------- Export Functions --------------------------*/
|
/*--------------------- Export Functions --------------------------*/
|
||||||
|
|
||||||
|
void vMgrObjectInit(void *hDeviceContext);
|
||||||
|
|
||||||
void
|
void vMgrAssocBeginSta(void *hDeviceContext,
|
||||||
vMgrObjectInit(
|
PSMgmtObject pMgmt,
|
||||||
HANDLE hDeviceContext
|
PCMD_STATUS pStatus);
|
||||||
);
|
|
||||||
|
|
||||||
|
void vMgrReAssocBeginSta(void *hDeviceContext,
|
||||||
|
PSMgmtObject pMgmt,
|
||||||
|
PCMD_STATUS pStatus);
|
||||||
|
|
||||||
void
|
void vMgrDisassocBeginSta(void *hDeviceContext,
|
||||||
vMgrAssocBeginSta(
|
PSMgmtObject pMgmt,
|
||||||
HANDLE hDeviceContext,
|
PBYTE abyDestAddress,
|
||||||
PSMgmtObject pMgmt,
|
WORD wReason,
|
||||||
PCMD_STATUS pStatus
|
PCMD_STATUS pStatus);
|
||||||
);
|
|
||||||
|
|
||||||
void
|
void vMgrAuthenBeginSta(void *hDeviceContext,
|
||||||
vMgrReAssocBeginSta(
|
PSMgmtObject pMgmt,
|
||||||
HANDLE hDeviceContext,
|
PCMD_STATUS pStatus);
|
||||||
PSMgmtObject pMgmt,
|
|
||||||
PCMD_STATUS pStatus
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
void vMgrCreateOwnIBSS(void *hDeviceContext,
|
||||||
vMgrDisassocBeginSta(
|
PCMD_STATUS pStatus);
|
||||||
HANDLE hDeviceContext,
|
|
||||||
PSMgmtObject pMgmt,
|
|
||||||
PBYTE abyDestAddress,
|
|
||||||
WORD wReason,
|
|
||||||
PCMD_STATUS pStatus
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
void vMgrJoinBSSBegin(void *hDeviceContext,
|
||||||
vMgrAuthenBeginSta(
|
PCMD_STATUS pStatus);
|
||||||
HANDLE hDeviceContext,
|
|
||||||
PSMgmtObject pMgmt,
|
|
||||||
PCMD_STATUS pStatus
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
void vMgrRxManagePacket(void *hDeviceContext,
|
||||||
vMgrCreateOwnIBSS(
|
PSMgmtObject pMgmt,
|
||||||
HANDLE hDeviceContext,
|
PSRxMgmtPacket pRxPacket);
|
||||||
PCMD_STATUS pStatus
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
|
||||||
vMgrJoinBSSBegin(
|
|
||||||
HANDLE hDeviceContext,
|
|
||||||
PCMD_STATUS pStatus
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
|
||||||
vMgrRxManagePacket(
|
|
||||||
HANDLE hDeviceContext,
|
|
||||||
PSMgmtObject pMgmt,
|
|
||||||
PSRxMgmtPacket pRxPacket
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
void
|
void
|
||||||
vMgrScanBegin(
|
vMgrScanBegin(
|
||||||
HANDLE hDeviceContext,
|
void *hDeviceContext,
|
||||||
PCMD_STATUS pStatus
|
PCMD_STATUS pStatus
|
||||||
);
|
);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void
|
void vMgrDeAuthenBeginSta(void *hDeviceContext,
|
||||||
vMgrDeAuthenBeginSta(
|
PSMgmtObject pMgmt,
|
||||||
HANDLE hDeviceContext,
|
PBYTE abyDestAddress,
|
||||||
PSMgmtObject pMgmt,
|
WORD wReason,
|
||||||
PBYTE abyDestAddress,
|
PCMD_STATUS pStatus);
|
||||||
WORD wReason,
|
|
||||||
PCMD_STATUS pStatus
|
|
||||||
);
|
|
||||||
|
|
||||||
BOOL
|
BOOL bMgrPrepareBeaconToSend(void *hDeviceContext,
|
||||||
bMgrPrepareBeaconToSend(
|
PSMgmtObject pMgmt);
|
||||||
HANDLE hDeviceContext,
|
|
||||||
PSMgmtObject pMgmt
|
|
||||||
);
|
|
||||||
|
|
||||||
|
BOOL bAdd_PMKID_Candidate(void *hDeviceContext,
|
||||||
|
PBYTE pbyBSSID,
|
||||||
|
PSRSNCapObject psRSNCapObj);
|
||||||
|
|
||||||
BOOL
|
void vFlush_PMKID_Candidate(void *hDeviceContext);
|
||||||
bAdd_PMKID_Candidate (
|
|
||||||
HANDLE hDeviceContext,
|
|
||||||
PBYTE pbyBSSID,
|
|
||||||
PSRSNCapObject psRSNCapObj
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
|
||||||
vFlush_PMKID_Candidate (
|
|
||||||
HANDLE hDeviceContext
|
|
||||||
);
|
|
||||||
|
|
||||||
#endif /* __WMGR_H__ */
|
#endif /* __WMGR_H__ */
|
||||||
|
@ -489,7 +489,7 @@ static int wpa_set_disassociate(PSDevice pDevice,
|
|||||||
spin_lock_irq(&pDevice->lock);
|
spin_lock_irq(&pDevice->lock);
|
||||||
if (pDevice->bLinkPass) {
|
if (pDevice->bLinkPass) {
|
||||||
if (!memcmp(param->addr, pMgmt->abyCurrBSSID, 6))
|
if (!memcmp(param->addr, pMgmt->abyCurrBSSID, 6))
|
||||||
bScheduleCommand((HANDLE)pDevice, WLAN_CMD_DISASSOCIATE, NULL);
|
bScheduleCommand((void *) pDevice, WLAN_CMD_DISASSOCIATE, NULL);
|
||||||
}
|
}
|
||||||
spin_unlock_irq(&pDevice->lock);
|
spin_unlock_irq(&pDevice->lock);
|
||||||
|
|
||||||
@ -513,7 +513,7 @@ static int wpa_set_disassociate(PSDevice pDevice,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
static int wpa_set_scan(PSDevice pDevice,
|
static int wpa_set_scan(PSDevice pDevice,
|
||||||
struct viawget_wpa_param *param)
|
struct viawget_wpa_param *param)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
@ -531,9 +531,11 @@ memcpy(pItemSSID->abySSID, param->u.scan_req.ssid, param->u.scan_req.ssid_len);
|
|||||||
pItemSSID->len = param->u.scan_req.ssid_len;
|
pItemSSID->len = param->u.scan_req.ssid_len;
|
||||||
|
|
||||||
spin_lock_irq(&pDevice->lock);
|
spin_lock_irq(&pDevice->lock);
|
||||||
BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass);
|
BSSvClearBSSList((void *) pDevice, pDevice->bLinkPass);
|
||||||
// bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, NULL);
|
/* bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, NULL); */
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID);
|
bScheduleCommand((void *) pDevice,
|
||||||
|
WLAN_CMD_BSSID_SCAN,
|
||||||
|
pMgmt->abyDesireSSID);
|
||||||
spin_unlock_irq(&pDevice->lock);
|
spin_unlock_irq(&pDevice->lock);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -886,12 +888,14 @@ static int wpa_set_associate(PSDevice pDevice,
|
|||||||
|
|
||||||
if (pCurr == NULL){
|
if (pCurr == NULL){
|
||||||
printk("wpa_set_associate---->hidden mode site survey before associate.......\n");
|
printk("wpa_set_associate---->hidden mode site survey before associate.......\n");
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID);
|
bScheduleCommand((void *) pDevice,
|
||||||
|
WLAN_CMD_BSSID_SCAN,
|
||||||
|
pMgmt->abyDesireSSID);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
/****************************************************************/
|
/****************************************************************/
|
||||||
|
|
||||||
bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, NULL);
|
bScheduleCommand((void *) pDevice, WLAN_CMD_SSID, NULL);
|
||||||
spin_unlock_irq(&pDevice->lock);
|
spin_unlock_irq(&pDevice->lock);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
Loading…
Reference in New Issue
Block a user