diff options
Diffstat (limited to 'drivers/staging/vt6656/bssdb.c')
-rw-r--r-- | drivers/staging/vt6656/bssdb.c | 402 |
1 files changed, 173 insertions, 229 deletions
diff --git a/drivers/staging/vt6656/bssdb.c b/drivers/staging/vt6656/bssdb.c index 6b1678bfd61..36ed61b595c 100644 --- a/drivers/staging/vt6656/bssdb.c +++ b/drivers/staging/vt6656/bssdb.c | |||
@@ -91,19 +91,13 @@ const WORD awHWRetry1[5][5] = { | |||
91 | 91 | ||
92 | /*--------------------- Static Functions --------------------------*/ | 92 | /*--------------------- Static Functions --------------------------*/ |
93 | 93 | ||
94 | VOID s_vCheckSensitivity( | 94 | void s_vCheckSensitivity(void *hDeviceContext); |
95 | IN HANDLE hDeviceContext | 95 | void s_vCheckPreEDThreshold(void *hDeviceContext); |
96 | ); | ||
97 | |||
98 | VOID s_vCheckPreEDThreshold( | ||
99 | IN HANDLE hDeviceContext | ||
100 | ); | ||
101 | 96 | ||
102 | #ifdef Calcu_LinkQual | 97 | #ifdef Calcu_LinkQual |
103 | VOID s_uCalculateLinkQual( | 98 | void s_uCalculateLinkQual(void *hDeviceContext); |
104 | IN HANDLE hDeviceContext | ||
105 | ); | ||
106 | #endif | 99 | #endif |
100 | |||
107 | /*--------------------- Export Variables --------------------------*/ | 101 | /*--------------------- Export Variables --------------------------*/ |
108 | 102 | ||
109 | 103 | ||
@@ -123,13 +117,10 @@ VOID s_uCalculateLinkQual( | |||
123 | * | 117 | * |
124 | -*/ | 118 | -*/ |
125 | 119 | ||
126 | PKnownBSS | 120 | PKnownBSS BSSpSearchBSSList(void *hDeviceContext, |
127 | BSSpSearchBSSList( | 121 | PBYTE pbyDesireBSSID, |
128 | IN HANDLE hDeviceContext, | 122 | PBYTE pbyDesireSSID, |
129 | IN PBYTE pbyDesireBSSID, | 123 | CARD_PHY_TYPE ePhyType) |
130 | IN PBYTE pbyDesireSSID, | ||
131 | IN CARD_PHY_TYPE ePhyType | ||
132 | ) | ||
133 | { | 124 | { |
134 | PSDevice pDevice = (PSDevice)hDeviceContext; | 125 | PSDevice pDevice = (PSDevice)hDeviceContext; |
135 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); | 126 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); |
@@ -138,8 +129,8 @@ BSSpSearchBSSList( | |||
138 | PKnownBSS pCurrBSS = NULL; | 129 | PKnownBSS pCurrBSS = NULL; |
139 | PKnownBSS pSelect = NULL; | 130 | PKnownBSS pSelect = NULL; |
140 | BYTE ZeroBSSID[WLAN_BSSID_LEN]={0x00,0x00,0x00,0x00,0x00,0x00}; | 131 | BYTE ZeroBSSID[WLAN_BSSID_LEN]={0x00,0x00,0x00,0x00,0x00,0x00}; |
141 | UINT ii = 0; | 132 | unsigned int ii = 0; |
142 | UINT jj = 0; //DavidWang | 133 | unsigned int jj = 0; |
143 | if (pbyDesireBSSID != NULL) { | 134 | if (pbyDesireBSSID != NULL) { |
144 | DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"BSSpSearchBSSList BSSID[%02X %02X %02X-%02X %02X %02X]\n", | 135 | DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"BSSpSearchBSSList BSSID[%02X %02X %02X-%02X %02X %02X]\n", |
145 | *pbyDesireBSSID,*(pbyDesireBSSID+1),*(pbyDesireBSSID+2), | 136 | *pbyDesireBSSID,*(pbyDesireBSSID+1),*(pbyDesireBSSID+2), |
@@ -296,15 +287,11 @@ pDevice->bSameBSSMaxNum = jj; | |||
296 | -*/ | 287 | -*/ |
297 | 288 | ||
298 | 289 | ||
299 | VOID | 290 | void BSSvClearBSSList(void *hDeviceContext, BOOL bKeepCurrBSSID) |
300 | BSSvClearBSSList( | ||
301 | IN HANDLE hDeviceContext, | ||
302 | IN BOOL bKeepCurrBSSID | ||
303 | ) | ||
304 | { | 291 | { |
305 | PSDevice pDevice = (PSDevice)hDeviceContext; | 292 | PSDevice pDevice = (PSDevice)hDeviceContext; |
306 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); | 293 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); |
307 | UINT ii; | 294 | unsigned int ii; |
308 | 295 | ||
309 | for (ii = 0; ii < MAX_BSS_NUM; ii++) { | 296 | for (ii = 0; ii < MAX_BSS_NUM; ii++) { |
310 | if (bKeepCurrBSSID) { | 297 | if (bKeepCurrBSSID) { |
@@ -342,17 +329,14 @@ BSSvClearBSSList( | |||
342 | * TRUE if found. | 329 | * TRUE if found. |
343 | * | 330 | * |
344 | -*/ | 331 | -*/ |
345 | PKnownBSS | 332 | PKnownBSS BSSpAddrIsInBSSList(void *hDeviceContext, |
346 | BSSpAddrIsInBSSList( | 333 | PBYTE abyBSSID, |
347 | IN HANDLE hDeviceContext, | 334 | PWLAN_IE_SSID pSSID) |
348 | IN PBYTE abyBSSID, | ||
349 | IN PWLAN_IE_SSID pSSID | ||
350 | ) | ||
351 | { | 335 | { |
352 | PSDevice pDevice = (PSDevice)hDeviceContext; | 336 | PSDevice pDevice = (PSDevice)hDeviceContext; |
353 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); | 337 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); |
354 | PKnownBSS pBSSList = NULL; | 338 | PKnownBSS pBSSList = NULL; |
355 | UINT ii; | 339 | unsigned int ii; |
356 | 340 | ||
357 | for (ii = 0; ii < MAX_BSS_NUM; ii++) { | 341 | for (ii = 0; ii < MAX_BSS_NUM; ii++) { |
358 | pBSSList = &(pMgmt->sBSSList[ii]); | 342 | pBSSList = &(pMgmt->sBSSList[ii]); |
@@ -383,33 +367,30 @@ BSSpAddrIsInBSSList( | |||
383 | * | 367 | * |
384 | -*/ | 368 | -*/ |
385 | 369 | ||
386 | BOOL | 370 | BOOL BSSbInsertToBSSList(void *hDeviceContext, |
387 | BSSbInsertToBSSList ( | 371 | PBYTE abyBSSIDAddr, |
388 | IN HANDLE hDeviceContext, | 372 | QWORD qwTimestamp, |
389 | IN PBYTE abyBSSIDAddr, | 373 | WORD wBeaconInterval, |
390 | IN QWORD qwTimestamp, | 374 | WORD wCapInfo, |
391 | IN WORD wBeaconInterval, | 375 | BYTE byCurrChannel, |
392 | IN WORD wCapInfo, | 376 | PWLAN_IE_SSID pSSID, |
393 | IN BYTE byCurrChannel, | 377 | PWLAN_IE_SUPP_RATES pSuppRates, |
394 | IN PWLAN_IE_SSID pSSID, | 378 | PWLAN_IE_SUPP_RATES pExtSuppRates, |
395 | IN PWLAN_IE_SUPP_RATES pSuppRates, | 379 | PERPObject psERP, |
396 | IN PWLAN_IE_SUPP_RATES pExtSuppRates, | 380 | PWLAN_IE_RSN pRSN, |
397 | IN PERPObject psERP, | 381 | PWLAN_IE_RSN_EXT pRSNWPA, |
398 | IN PWLAN_IE_RSN pRSN, | 382 | PWLAN_IE_COUNTRY pIE_Country, |
399 | IN PWLAN_IE_RSN_EXT pRSNWPA, | 383 | PWLAN_IE_QUIET pIE_Quiet, |
400 | IN PWLAN_IE_COUNTRY pIE_Country, | 384 | unsigned int uIELength, |
401 | IN PWLAN_IE_QUIET pIE_Quiet, | 385 | PBYTE pbyIEs, |
402 | IN UINT uIELength, | 386 | void *pRxPacketContext) |
403 | IN PBYTE pbyIEs, | ||
404 | IN HANDLE pRxPacketContext | ||
405 | ) | ||
406 | { | 387 | { |
407 | 388 | ||
408 | PSDevice pDevice = (PSDevice)hDeviceContext; | 389 | PSDevice pDevice = (PSDevice)hDeviceContext; |
409 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); | 390 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); |
410 | PSRxMgmtPacket pRxPacket = (PSRxMgmtPacket)pRxPacketContext; | 391 | PSRxMgmtPacket pRxPacket = (PSRxMgmtPacket)pRxPacketContext; |
411 | PKnownBSS pBSSList = NULL; | 392 | PKnownBSS pBSSList = NULL; |
412 | UINT ii; | 393 | unsigned int ii; |
413 | BOOL bParsingQuiet = FALSE; | 394 | BOOL bParsingQuiet = FALSE; |
414 | 395 | ||
415 | 396 | ||
@@ -484,24 +465,27 @@ BSSbInsertToBSSList ( | |||
484 | WPA_ClearRSN(pBSSList); | 465 | WPA_ClearRSN(pBSSList); |
485 | 466 | ||
486 | if (pRSNWPA != NULL) { | 467 | if (pRSNWPA != NULL) { |
487 | UINT uLen = pRSNWPA->len + 2; | 468 | unsigned int uLen = pRSNWPA->len + 2; |
488 | 469 | ||
489 | if (uLen <= (uIELength - (UINT)(ULONG_PTR)((PBYTE)pRSNWPA - pbyIEs))) { | 470 | if (uLen <= (uIELength - |
490 | pBSSList->wWPALen = uLen; | 471 | (unsigned int) (ULONG_PTR) ((PBYTE) pRSNWPA - pbyIEs))) { |
491 | memcpy(pBSSList->byWPAIE, pRSNWPA, uLen); | 472 | pBSSList->wWPALen = uLen; |
492 | WPA_ParseRSN(pBSSList, pRSNWPA); | 473 | memcpy(pBSSList->byWPAIE, pRSNWPA, uLen); |
493 | } | 474 | WPA_ParseRSN(pBSSList, pRSNWPA); |
475 | } | ||
494 | } | 476 | } |
495 | 477 | ||
496 | WPA2_ClearRSN(pBSSList); | 478 | WPA2_ClearRSN(pBSSList); |
497 | 479 | ||
498 | if (pRSN != NULL) { | 480 | if (pRSN != NULL) { |
499 | UINT uLen = pRSN->len + 2; | 481 | unsigned int uLen = pRSN->len + 2; |
500 | if (uLen <= (uIELength - (UINT)(ULONG_PTR)((PBYTE)pRSN - pbyIEs))) { | 482 | |
501 | pBSSList->wRSNLen = uLen; | 483 | if (uLen <= (uIELength - |
502 | memcpy(pBSSList->byRSNIE, pRSN, uLen); | 484 | (unsigned int) (ULONG_PTR) ((PBYTE) pRSN - pbyIEs))) { |
503 | WPA2vParseRSN(pBSSList, pRSN); | 485 | pBSSList->wRSNLen = uLen; |
504 | } | 486 | memcpy(pBSSList->byRSNIE, pRSN, uLen); |
487 | WPA2vParseRSN(pBSSList, pRSN); | ||
488 | } | ||
505 | } | 489 | } |
506 | 490 | ||
507 | if ((pMgmt->eAuthenMode == WMAC_AUTH_WPA2) || (pBSSList->bWPA2Valid == TRUE)) { | 491 | if ((pMgmt->eAuthenMode == WMAC_AUTH_WPA2) || (pBSSList->bWPA2Valid == TRUE)) { |
@@ -518,7 +502,9 @@ BSSbInsertToBSSList ( | |||
518 | if ((bIs802_1x == TRUE) && (pSSID->len == ((PWLAN_IE_SSID)pMgmt->abyDesireSSID)->len) && | 502 | if ((bIs802_1x == TRUE) && (pSSID->len == ((PWLAN_IE_SSID)pMgmt->abyDesireSSID)->len) && |
519 | ( !memcmp(pSSID->abySSID, ((PWLAN_IE_SSID)pMgmt->abyDesireSSID)->abySSID, pSSID->len))) { | 503 | ( !memcmp(pSSID->abySSID, ((PWLAN_IE_SSID)pMgmt->abyDesireSSID)->abySSID, pSSID->len))) { |
520 | 504 | ||
521 | bAdd_PMKID_Candidate((HANDLE)pDevice, pBSSList->abyBSSID, &pBSSList->sRSNCapObj); | 505 | bAdd_PMKID_Candidate((void *) pDevice, |
506 | pBSSList->abyBSSID, | ||
507 | &pBSSList->sRSNCapObj); | ||
522 | 508 | ||
523 | if ((pDevice->bLinkPass == TRUE) && (pMgmt->eCurrState == WMAC_STATE_ASSOC)) { | 509 | if ((pDevice->bLinkPass == TRUE) && (pMgmt->eCurrState == WMAC_STATE_ASSOC)) { |
524 | if ((KeybGetTransmitKey(&(pDevice->sKey), pDevice->abyBSSID, PAIRWISE_KEY, &pTransmitKey) == TRUE) || | 510 | if ((KeybGetTransmitKey(&(pDevice->sKey), pDevice->abyBSSID, PAIRWISE_KEY, &pTransmitKey) == TRUE) || |
@@ -602,33 +588,30 @@ BSSbInsertToBSSList ( | |||
602 | -*/ | 588 | -*/ |
603 | // TODO: input structure modify | 589 | // TODO: input structure modify |
604 | 590 | ||
605 | BOOL | 591 | BOOL BSSbUpdateToBSSList(void *hDeviceContext, |
606 | BSSbUpdateToBSSList ( | 592 | QWORD qwTimestamp, |
607 | IN HANDLE hDeviceContext, | 593 | WORD wBeaconInterval, |
608 | IN QWORD qwTimestamp, | 594 | WORD wCapInfo, |
609 | IN WORD wBeaconInterval, | 595 | BYTE byCurrChannel, |
610 | IN WORD wCapInfo, | 596 | BOOL bChannelHit, |
611 | IN BYTE byCurrChannel, | 597 | PWLAN_IE_SSID pSSID, |
612 | IN BOOL bChannelHit, | 598 | PWLAN_IE_SUPP_RATES pSuppRates, |
613 | IN PWLAN_IE_SSID pSSID, | 599 | PWLAN_IE_SUPP_RATES pExtSuppRates, |
614 | IN PWLAN_IE_SUPP_RATES pSuppRates, | 600 | PERPObject psERP, |
615 | IN PWLAN_IE_SUPP_RATES pExtSuppRates, | 601 | PWLAN_IE_RSN pRSN, |
616 | IN PERPObject psERP, | 602 | PWLAN_IE_RSN_EXT pRSNWPA, |
617 | IN PWLAN_IE_RSN pRSN, | 603 | PWLAN_IE_COUNTRY pIE_Country, |
618 | IN PWLAN_IE_RSN_EXT pRSNWPA, | 604 | PWLAN_IE_QUIET pIE_Quiet, |
619 | IN PWLAN_IE_COUNTRY pIE_Country, | 605 | PKnownBSS pBSSList, |
620 | IN PWLAN_IE_QUIET pIE_Quiet, | 606 | unsigned int uIELength, |
621 | IN PKnownBSS pBSSList, | 607 | PBYTE pbyIEs, |
622 | IN UINT uIELength, | 608 | void *pRxPacketContext) |
623 | IN PBYTE pbyIEs, | ||
624 | IN HANDLE pRxPacketContext | ||
625 | ) | ||
626 | { | 609 | { |
627 | int ii, jj; | 610 | int ii, jj; |
628 | PSDevice pDevice = (PSDevice)hDeviceContext; | 611 | PSDevice pDevice = (PSDevice)hDeviceContext; |
629 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); | 612 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); |
630 | PSRxMgmtPacket pRxPacket = (PSRxMgmtPacket)pRxPacketContext; | 613 | PSRxMgmtPacket pRxPacket = (PSRxMgmtPacket)pRxPacketContext; |
631 | LONG ldBm, ldBmSum; | 614 | signed long ldBm, ldBmSum; |
632 | BOOL bParsingQuiet = FALSE; | 615 | BOOL bParsingQuiet = FALSE; |
633 | // BYTE abyTmpSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1]; | 616 | // BYTE abyTmpSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1]; |
634 | 617 | ||
@@ -687,24 +670,26 @@ BSSbUpdateToBSSList ( | |||
687 | 670 | ||
688 | WPA_ClearRSN(pBSSList); //mike update | 671 | WPA_ClearRSN(pBSSList); //mike update |
689 | 672 | ||
690 | if (pRSNWPA != NULL) { | 673 | if (pRSNWPA != NULL) { |
691 | UINT uLen = pRSNWPA->len + 2; | 674 | unsigned int uLen = pRSNWPA->len + 2; |
692 | if (uLen <= (uIELength - (UINT)(ULONG_PTR)((PBYTE)pRSNWPA - pbyIEs))) { | 675 | if (uLen <= (uIELength - |
693 | pBSSList->wWPALen = uLen; | 676 | (unsigned int) (ULONG_PTR) ((PBYTE) pRSNWPA - pbyIEs))) { |
694 | memcpy(pBSSList->byWPAIE, pRSNWPA, uLen); | 677 | pBSSList->wWPALen = uLen; |
695 | WPA_ParseRSN(pBSSList, pRSNWPA); | 678 | memcpy(pBSSList->byWPAIE, pRSNWPA, uLen); |
696 | } | 679 | WPA_ParseRSN(pBSSList, pRSNWPA); |
697 | } | 680 | } |
681 | } | ||
698 | 682 | ||
699 | WPA2_ClearRSN(pBSSList); //mike update | 683 | WPA2_ClearRSN(pBSSList); //mike update |
700 | 684 | ||
701 | if (pRSN != NULL) { | 685 | if (pRSN != NULL) { |
702 | UINT uLen = pRSN->len + 2; | 686 | unsigned int uLen = pRSN->len + 2; |
703 | if (uLen <= (uIELength - (UINT)(ULONG_PTR)((PBYTE)pRSN - pbyIEs))) { | 687 | if (uLen <= (uIELength - |
704 | pBSSList->wRSNLen = uLen; | 688 | (unsigned int) (ULONG_PTR) ((PBYTE) pRSN - pbyIEs))) { |
705 | memcpy(pBSSList->byRSNIE, pRSN, uLen); | 689 | pBSSList->wRSNLen = uLen; |
706 | WPA2vParseRSN(pBSSList, pRSN); | 690 | memcpy(pBSSList->byRSNIE, pRSN, uLen); |
707 | } | 691 | WPA2vParseRSN(pBSSList, pRSN); |
692 | } | ||
708 | } | 693 | } |
709 | 694 | ||
710 | if (pRxPacket->uRSSI != 0) { | 695 | if (pRxPacket->uRSSI != 0) { |
@@ -768,16 +753,13 @@ BSSbUpdateToBSSList ( | |||
768 | * | 753 | * |
769 | -*/ | 754 | -*/ |
770 | 755 | ||
771 | BOOL | 756 | BOOL BSSbIsSTAInNodeDB(void *hDeviceContext, |
772 | BSSbIsSTAInNodeDB( | 757 | PBYTE abyDstAddr, |
773 | IN HANDLE hDeviceContext, | 758 | PUINT puNodeIndex) |
774 | IN PBYTE abyDstAddr, | ||
775 | OUT PUINT puNodeIndex | ||
776 | ) | ||
777 | { | 759 | { |
778 | PSDevice pDevice = (PSDevice)hDeviceContext; | 760 | PSDevice pDevice = (PSDevice)hDeviceContext; |
779 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); | 761 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); |
780 | UINT ii; | 762 | unsigned int ii; |
781 | 763 | ||
782 | // Index = 0 reserved for AP Node | 764 | // Index = 0 reserved for AP Node |
783 | for (ii = 1; ii < (MAX_NODE_NUM + 1); ii++) { | 765 | for (ii = 1; ii < (MAX_NODE_NUM + 1); ii++) { |
@@ -804,18 +786,14 @@ BSSbIsSTAInNodeDB( | |||
804 | * None | 786 | * None |
805 | * | 787 | * |
806 | -*/ | 788 | -*/ |
807 | VOID | 789 | void BSSvCreateOneNode(void *hDeviceContext, PUINT puNodeIndex) |
808 | BSSvCreateOneNode( | ||
809 | IN HANDLE hDeviceContext, | ||
810 | OUT PUINT puNodeIndex | ||
811 | ) | ||
812 | { | 790 | { |
813 | 791 | ||
814 | PSDevice pDevice = (PSDevice)hDeviceContext; | 792 | PSDevice pDevice = (PSDevice)hDeviceContext; |
815 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); | 793 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); |
816 | UINT ii; | 794 | unsigned int ii; |
817 | UINT BigestCount = 0; | 795 | unsigned int BigestCount = 0; |
818 | UINT SelectIndex; | 796 | unsigned int SelectIndex; |
819 | struct sk_buff *skb; | 797 | struct sk_buff *skb; |
820 | // Index = 0 reserved for AP Node (In STA mode) | 798 | // Index = 0 reserved for AP Node (In STA mode) |
821 | // Index = 0 reserved for Broadcast/MultiCast (In AP mode) | 799 | // Index = 0 reserved for Broadcast/MultiCast (In AP mode) |
@@ -869,11 +847,8 @@ BSSvCreateOneNode( | |||
869 | * None | 847 | * None |
870 | * | 848 | * |
871 | -*/ | 849 | -*/ |
872 | VOID | 850 | |
873 | BSSvRemoveOneNode( | 851 | void BSSvRemoveOneNode(void *hDeviceContext, unsigned int uNodeIndex) |
874 | IN HANDLE hDeviceContext, | ||
875 | IN UINT uNodeIndex | ||
876 | ) | ||
877 | { | 852 | { |
878 | 853 | ||
879 | PSDevice pDevice = (PSDevice)hDeviceContext; | 854 | PSDevice pDevice = (PSDevice)hDeviceContext; |
@@ -902,17 +877,14 @@ BSSvRemoveOneNode( | |||
902 | * | 877 | * |
903 | -*/ | 878 | -*/ |
904 | 879 | ||
905 | VOID | 880 | void BSSvUpdateAPNode(void *hDeviceContext, |
906 | BSSvUpdateAPNode( | 881 | PWORD pwCapInfo, |
907 | IN HANDLE hDeviceContext, | 882 | PWLAN_IE_SUPP_RATES pSuppRates, |
908 | IN PWORD pwCapInfo, | 883 | PWLAN_IE_SUPP_RATES pExtSuppRates) |
909 | IN PWLAN_IE_SUPP_RATES pSuppRates, | ||
910 | IN PWLAN_IE_SUPP_RATES pExtSuppRates | ||
911 | ) | ||
912 | { | 884 | { |
913 | PSDevice pDevice = (PSDevice)hDeviceContext; | 885 | PSDevice pDevice = (PSDevice)hDeviceContext; |
914 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); | 886 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); |
915 | UINT uRateLen = WLAN_RATES_MAXLEN; | 887 | unsigned int uRateLen = WLAN_RATES_MAXLEN; |
916 | 888 | ||
917 | memset(&pMgmt->sNodeDBTable[0], 0, sizeof(KnownNodeDB)); | 889 | memset(&pMgmt->sNodeDBTable[0], 0, sizeof(KnownNodeDB)); |
918 | 890 | ||
@@ -926,7 +898,7 @@ BSSvUpdateAPNode( | |||
926 | pMgmt->abyCurrExtSuppRates[1] = RATEuSetIE((PWLAN_IE_SUPP_RATES)pExtSuppRates, | 898 | pMgmt->abyCurrExtSuppRates[1] = RATEuSetIE((PWLAN_IE_SUPP_RATES)pExtSuppRates, |
927 | (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrExtSuppRates, | 899 | (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrExtSuppRates, |
928 | uRateLen); | 900 | uRateLen); |
929 | RATEvParseMaxRate((PVOID) pDevice, | 901 | RATEvParseMaxRate((void *) pDevice, |
930 | (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates, | 902 | (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates, |
931 | (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrExtSuppRates, | 903 | (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrExtSuppRates, |
932 | TRUE, | 904 | TRUE, |
@@ -946,10 +918,6 @@ BSSvUpdateAPNode( | |||
946 | 918 | ||
947 | }; | 919 | }; |
948 | 920 | ||
949 | |||
950 | |||
951 | |||
952 | |||
953 | /*+ | 921 | /*+ |
954 | * | 922 | * |
955 | * Routine Description: | 923 | * Routine Description: |
@@ -961,11 +929,7 @@ BSSvUpdateAPNode( | |||
961 | * | 929 | * |
962 | -*/ | 930 | -*/ |
963 | 931 | ||
964 | 932 | void BSSvAddMulticastNode(void *hDeviceContext) | |
965 | VOID | ||
966 | BSSvAddMulticastNode( | ||
967 | IN HANDLE hDeviceContext | ||
968 | ) | ||
969 | { | 933 | { |
970 | PSDevice pDevice = (PSDevice)hDeviceContext; | 934 | PSDevice pDevice = (PSDevice)hDeviceContext; |
971 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); | 935 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); |
@@ -976,7 +940,7 @@ BSSvAddMulticastNode( | |||
976 | pMgmt->sNodeDBTable[0].bActive = TRUE; | 940 | pMgmt->sNodeDBTable[0].bActive = TRUE; |
977 | pMgmt->sNodeDBTable[0].bPSEnable = FALSE; | 941 | pMgmt->sNodeDBTable[0].bPSEnable = FALSE; |
978 | skb_queue_head_init(&pMgmt->sNodeDBTable[0].sTxPSQueue); | 942 | skb_queue_head_init(&pMgmt->sNodeDBTable[0].sTxPSQueue); |
979 | RATEvParseMaxRate((PVOID) pDevice, | 943 | RATEvParseMaxRate((void *) pDevice, |
980 | (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates, | 944 | (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates, |
981 | (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrExtSuppRates, | 945 | (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrExtSuppRates, |
982 | TRUE, | 946 | TRUE, |
@@ -991,10 +955,6 @@ BSSvAddMulticastNode( | |||
991 | 955 | ||
992 | }; | 956 | }; |
993 | 957 | ||
994 | |||
995 | |||
996 | |||
997 | |||
998 | /*+ | 958 | /*+ |
999 | * | 959 | * |
1000 | * Routine Description: | 960 | * Routine Description: |
@@ -1008,19 +968,15 @@ BSSvAddMulticastNode( | |||
1008 | * | 968 | * |
1009 | -*/ | 969 | -*/ |
1010 | 970 | ||
1011 | 971 | void BSSvSecondCallBack(void *hDeviceContext) | |
1012 | VOID | ||
1013 | BSSvSecondCallBack( | ||
1014 | IN HANDLE hDeviceContext | ||
1015 | ) | ||
1016 | { | 972 | { |
1017 | PSDevice pDevice = (PSDevice)hDeviceContext; | 973 | PSDevice pDevice = (PSDevice)hDeviceContext; |
1018 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); | 974 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); |
1019 | UINT ii; | 975 | unsigned int ii; |
1020 | PWLAN_IE_SSID pItemSSID, pCurrSSID; | 976 | PWLAN_IE_SSID pItemSSID, pCurrSSID; |
1021 | UINT uSleepySTACnt = 0; | 977 | unsigned int uSleepySTACnt = 0; |
1022 | UINT uNonShortSlotSTACnt = 0; | 978 | unsigned int uNonShortSlotSTACnt = 0; |
1023 | UINT uLongPreambleSTACnt = 0; | 979 | unsigned int uLongPreambleSTACnt = 0; |
1024 | viawget_wpa_header *wpahdr; //DavidWang | 980 | viawget_wpa_header *wpahdr; //DavidWang |
1025 | 981 | ||
1026 | spin_lock_irq(&pDevice->lock); | 982 | spin_lock_irq(&pDevice->lock); |
@@ -1080,7 +1036,7 @@ if((pMgmt->eCurrState!=WMAC_STATE_ASSOC) && | |||
1080 | #endif | 1036 | #endif |
1081 | 1037 | ||
1082 | #ifdef Calcu_LinkQual | 1038 | #ifdef Calcu_LinkQual |
1083 | s_uCalculateLinkQual((HANDLE)pDevice); | 1039 | s_uCalculateLinkQual((void *)pDevice); |
1084 | #endif | 1040 | #endif |
1085 | 1041 | ||
1086 | for (ii = 0; ii < (MAX_NODE_NUM + 1); ii++) { | 1042 | for (ii = 0; ii < (MAX_NODE_NUM + 1); ii++) { |
@@ -1131,12 +1087,14 @@ if((pMgmt->eCurrState!=WMAC_STATE_ASSOC) && | |||
1131 | */ | 1087 | */ |
1132 | if (ii > 0) { | 1088 | if (ii > 0) { |
1133 | // ii = 0 for multicast node (AP & Adhoc) | 1089 | // ii = 0 for multicast node (AP & Adhoc) |
1134 | RATEvTxRateFallBack((PVOID)pDevice, &(pMgmt->sNodeDBTable[ii])); | 1090 | RATEvTxRateFallBack((void *)pDevice, |
1091 | &(pMgmt->sNodeDBTable[ii])); | ||
1135 | } | 1092 | } |
1136 | else { | 1093 | else { |
1137 | // ii = 0 reserved for unicast AP node (Infra STA) | 1094 | // ii = 0 reserved for unicast AP node (Infra STA) |
1138 | if (pMgmt->eCurrMode == WMAC_MODE_ESS_STA) | 1095 | if (pMgmt->eCurrMode == WMAC_MODE_ESS_STA) |
1139 | RATEvTxRateFallBack((PVOID)pDevice, &(pMgmt->sNodeDBTable[ii])); | 1096 | RATEvTxRateFallBack((void *)pDevice, |
1097 | &(pMgmt->sNodeDBTable[ii])); | ||
1140 | } | 1098 | } |
1141 | 1099 | ||
1142 | } | 1100 | } |
@@ -1177,14 +1135,14 @@ if((pMgmt->eCurrState!=WMAC_STATE_ASSOC) && | |||
1177 | if (pDevice->bShortSlotTime) { | 1135 | if (pDevice->bShortSlotTime) { |
1178 | pDevice->bShortSlotTime = FALSE; | 1136 | pDevice->bShortSlotTime = FALSE; |
1179 | BBvSetShortSlotTime(pDevice); | 1137 | BBvSetShortSlotTime(pDevice); |
1180 | vUpdateIFS((PVOID)pDevice); | 1138 | vUpdateIFS((void *)pDevice); |
1181 | } | 1139 | } |
1182 | } | 1140 | } |
1183 | else { | 1141 | else { |
1184 | if (!pDevice->bShortSlotTime) { | 1142 | if (!pDevice->bShortSlotTime) { |
1185 | pDevice->bShortSlotTime = TRUE; | 1143 | pDevice->bShortSlotTime = TRUE; |
1186 | BBvSetShortSlotTime(pDevice); | 1144 | BBvSetShortSlotTime(pDevice); |
1187 | vUpdateIFS((PVOID)pDevice); | 1145 | vUpdateIFS((void *)pDevice); |
1188 | } | 1146 | } |
1189 | } | 1147 | } |
1190 | 1148 | ||
@@ -1224,14 +1182,16 @@ if((pMgmt->eCurrState!=WMAC_STATE_ASSOC) && | |||
1224 | // DBG_PRT(MSG_LEVEL_INFO, KERN_INFO "Callback inactive Count = [%d]\n", pMgmt->sNodeDBTable[0].uInActiveCount); | 1182 | // DBG_PRT(MSG_LEVEL_INFO, KERN_INFO "Callback inactive Count = [%d]\n", pMgmt->sNodeDBTable[0].uInActiveCount); |
1225 | 1183 | ||
1226 | if (pDevice->bUpdateBBVGA) { | 1184 | if (pDevice->bUpdateBBVGA) { |
1227 | // s_vCheckSensitivity((HANDLE) pDevice); | 1185 | /* s_vCheckSensitivity((void *) pDevice); */ |
1228 | s_vCheckPreEDThreshold((HANDLE)pDevice); | 1186 | s_vCheckPreEDThreshold((void *) pDevice); |
1229 | } | 1187 | } |
1230 | 1188 | ||
1231 | if ((pMgmt->sNodeDBTable[0].uInActiveCount >= (LOST_BEACON_COUNT/2)) && | 1189 | if ((pMgmt->sNodeDBTable[0].uInActiveCount >= (LOST_BEACON_COUNT/2)) && |
1232 | (pDevice->byBBVGACurrent != pDevice->abyBBVGA[0]) ) { | 1190 | (pDevice->byBBVGACurrent != pDevice->abyBBVGA[0]) ) { |
1233 | pDevice->byBBVGANew = pDevice->abyBBVGA[0]; | 1191 | pDevice->byBBVGANew = pDevice->abyBBVGA[0]; |
1234 | bScheduleCommand((HANDLE) pDevice, WLAN_CMD_CHANGE_BBSENSITIVITY, NULL); | 1192 | bScheduleCommand((void *) pDevice, |
1193 | WLAN_CMD_CHANGE_BBSENSITIVITY, | ||
1194 | NULL); | ||
1235 | } | 1195 | } |
1236 | 1196 | ||
1237 | if (pMgmt->sNodeDBTable[0].uInActiveCount >= LOST_BEACON_COUNT) { | 1197 | if (pMgmt->sNodeDBTable[0].uInActiveCount >= LOST_BEACON_COUNT) { |
@@ -1279,9 +1239,13 @@ DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "bRoaming %d, !\n", pDevice->bRoaming ); | |||
1279 | DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "bIsRoaming %d, !\n", pDevice->bIsRoaming ); | 1239 | DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "bIsRoaming %d, !\n", pDevice->bIsRoaming ); |
1280 | if ((pDevice->bRoaming == TRUE)&&(pDevice->bIsRoaming == TRUE)){ | 1240 | if ((pDevice->bRoaming == TRUE)&&(pDevice->bIsRoaming == TRUE)){ |
1281 | DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Fast Roaming ...\n"); | 1241 | DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Fast Roaming ...\n"); |
1282 | BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass); | 1242 | BSSvClearBSSList((void *) pDevice, pDevice->bLinkPass); |
1283 | bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID); | 1243 | bScheduleCommand((void *) pDevice, |
1284 | bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, pMgmt->abyDesireSSID); | 1244 | WLAN_CMD_BSSID_SCAN, |
1245 | pMgmt->abyDesireSSID); | ||
1246 | bScheduleCommand((void *) pDevice, | ||
1247 | WLAN_CMD_SSID, | ||
1248 | pMgmt->abyDesireSSID); | ||
1285 | pDevice->uAutoReConnectTime = 0; | 1249 | pDevice->uAutoReConnectTime = 0; |
1286 | pDevice->uIsroamingTime = 0; | 1250 | pDevice->uIsroamingTime = 0; |
1287 | pDevice->bRoaming = FALSE; | 1251 | pDevice->bRoaming = FALSE; |
@@ -1324,10 +1288,14 @@ else { | |||
1324 | pDevice->eEncryptionStatus = pDevice->eOldEncryptionStatus; | 1288 | pDevice->eEncryptionStatus = pDevice->eOldEncryptionStatus; |
1325 | 1289 | ||
1326 | DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Roaming ...\n"); | 1290 | DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Roaming ...\n"); |
1327 | BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass); | 1291 | BSSvClearBSSList((void *) pDevice, pDevice->bLinkPass); |
1328 | pMgmt->eScanType = WMAC_SCAN_ACTIVE; | 1292 | pMgmt->eScanType = WMAC_SCAN_ACTIVE; |
1329 | bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID); | 1293 | bScheduleCommand((void *) pDevice, |
1330 | bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, pMgmt->abyDesireSSID); | 1294 | WLAN_CMD_BSSID_SCAN, |
1295 | pMgmt->abyDesireSSID); | ||
1296 | bScheduleCommand((void *) pDevice, | ||
1297 | WLAN_CMD_SSID, | ||
1298 | pMgmt->abyDesireSSID); | ||
1331 | pDevice->uAutoReConnectTime = 0; | 1299 | pDevice->uAutoReConnectTime = 0; |
1332 | } | 1300 | } |
1333 | } | 1301 | } |
@@ -1343,17 +1311,17 @@ else { | |||
1343 | else { | 1311 | else { |
1344 | DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Adhoc re-scaning ...\n"); | 1312 | DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Adhoc re-scaning ...\n"); |
1345 | pMgmt->eScanType = WMAC_SCAN_ACTIVE; | 1313 | pMgmt->eScanType = WMAC_SCAN_ACTIVE; |
1346 | bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, NULL); | 1314 | bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, NULL); |
1347 | bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, NULL); | 1315 | bScheduleCommand((void *) pDevice, WLAN_CMD_SSID, NULL); |
1348 | pDevice->uAutoReConnectTime = 0; | 1316 | pDevice->uAutoReConnectTime = 0; |
1349 | }; | 1317 | }; |
1350 | } | 1318 | } |
1351 | if (pMgmt->eCurrState == WMAC_STATE_JOINTED) { | 1319 | if (pMgmt->eCurrState == WMAC_STATE_JOINTED) { |
1352 | 1320 | ||
1353 | if (pDevice->bUpdateBBVGA) { | 1321 | if (pDevice->bUpdateBBVGA) { |
1354 | //s_vCheckSensitivity((HANDLE) pDevice); | 1322 | /* s_vCheckSensitivity((void *) pDevice); */ |
1355 | s_vCheckPreEDThreshold((HANDLE)pDevice); | 1323 | s_vCheckPreEDThreshold((void *) pDevice); |
1356 | } | 1324 | } |
1357 | if (pMgmt->sNodeDBTable[0].uInActiveCount >=ADHOC_LOST_BEACON_COUNT) { | 1325 | if (pMgmt->sNodeDBTable[0].uInActiveCount >=ADHOC_LOST_BEACON_COUNT) { |
1358 | DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Lost other STA beacon [%d] sec, started !\n", pMgmt->sNodeDBTable[0].uInActiveCount); | 1326 | DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Lost other STA beacon [%d] sec, started !\n", pMgmt->sNodeDBTable[0].uInActiveCount); |
1359 | pMgmt->sNodeDBTable[0].uInActiveCount = 0; | 1327 | pMgmt->sNodeDBTable[0].uInActiveCount = 0; |
@@ -1377,9 +1345,6 @@ else { | |||
1377 | return; | 1345 | return; |
1378 | } | 1346 | } |
1379 | 1347 | ||
1380 | |||
1381 | |||
1382 | |||
1383 | /*+ | 1348 | /*+ |
1384 | * | 1349 | * |
1385 | * Routine Description: | 1350 | * Routine Description: |
@@ -1393,30 +1358,23 @@ else { | |||
1393 | * | 1358 | * |
1394 | -*/ | 1359 | -*/ |
1395 | 1360 | ||
1396 | 1361 | void BSSvUpdateNodeTxCounter(void *hDeviceContext, | |
1397 | 1362 | PSStatCounter pStatistic, | |
1398 | VOID | 1363 | BYTE byTSR, |
1399 | BSSvUpdateNodeTxCounter( | 1364 | BYTE byPktNO) |
1400 | IN HANDLE hDeviceContext, | ||
1401 | IN PSStatCounter pStatistic, | ||
1402 | IN BYTE byTSR, | ||
1403 | IN BYTE byPktNO | ||
1404 | ) | ||
1405 | { | 1365 | { |
1406 | PSDevice pDevice = (PSDevice)hDeviceContext; | 1366 | PSDevice pDevice = (PSDevice)hDeviceContext; |
1407 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); | 1367 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); |
1408 | UINT uNodeIndex = 0; | 1368 | unsigned int uNodeIndex = 0; |
1409 | BYTE byTxRetry; | 1369 | BYTE byTxRetry; |
1410 | WORD wRate; | 1370 | WORD wRate; |
1411 | WORD wFallBackRate = RATE_1M; | 1371 | WORD wFallBackRate = RATE_1M; |
1412 | BYTE byFallBack; | 1372 | BYTE byFallBack; |
1413 | UINT ii; | 1373 | unsigned int ii; |
1414 | PBYTE pbyDestAddr; | 1374 | PBYTE pbyDestAddr; |
1415 | BYTE byPktNum; | 1375 | BYTE byPktNum; |
1416 | WORD wFIFOCtl; | 1376 | WORD wFIFOCtl; |
1417 | 1377 | ||
1418 | |||
1419 | |||
1420 | byPktNum = (byPktNO & 0x0F) >> 4; | 1378 | byPktNum = (byPktNO & 0x0F) >> 4; |
1421 | byTxRetry = (byTSR & 0xF0) >> 4; | 1379 | byTxRetry = (byTSR & 0xF0) >> 4; |
1422 | wRate = (WORD) (byPktNO & 0xF0) >> 4; | 1380 | wRate = (WORD) (byPktNO & 0xF0) >> 4; |
@@ -1483,11 +1441,13 @@ BSSvUpdateNodeTxCounter( | |||
1483 | } | 1441 | } |
1484 | }; | 1442 | }; |
1485 | 1443 | ||
1486 | if ((pMgmt->eCurrMode == WMAC_MODE_IBSS_STA) || | 1444 | if ((pMgmt->eCurrMode == WMAC_MODE_IBSS_STA) || |
1487 | (pMgmt->eCurrMode == WMAC_MODE_ESS_AP)) { | 1445 | (pMgmt->eCurrMode == WMAC_MODE_ESS_AP)) { |
1488 | 1446 | ||
1489 | if (BSSbIsSTAInNodeDB((HANDLE)pDevice, pbyDestAddr, &uNodeIndex)){ | 1447 | if (BSSbIsSTAInNodeDB((void *) pDevice, |
1490 | pMgmt->sNodeDBTable[uNodeIndex].uTxAttempts += 1; | 1448 | pbyDestAddr, |
1449 | &uNodeIndex)) { | ||
1450 | pMgmt->sNodeDBTable[uNodeIndex].uTxAttempts += 1; | ||
1491 | if ( !(byTSR & (TSR_TMO | TSR_RETRYTMO))) { | 1451 | if ( !(byTSR & (TSR_TMO | TSR_RETRYTMO))) { |
1492 | // transmit success, TxAttempts at least plus one | 1452 | // transmit success, TxAttempts at least plus one |
1493 | pMgmt->sNodeDBTable[uNodeIndex].uTxOk[MAX_RATE]++; | 1453 | pMgmt->sNodeDBTable[uNodeIndex].uTxOk[MAX_RATE]++; |
@@ -1542,9 +1502,6 @@ BSSvUpdateNodeTxCounter( | |||
1542 | 1502 | ||
1543 | } | 1503 | } |
1544 | 1504 | ||
1545 | |||
1546 | |||
1547 | |||
1548 | /*+ | 1505 | /*+ |
1549 | * | 1506 | * |
1550 | * Routine Description: | 1507 | * Routine Description: |
@@ -1563,18 +1520,13 @@ BSSvUpdateNodeTxCounter( | |||
1563 | * | 1520 | * |
1564 | -*/ | 1521 | -*/ |
1565 | 1522 | ||
1566 | 1523 | void BSSvClearNodeDBTable(void *hDeviceContext, | |
1567 | VOID | 1524 | unsigned int uStartIndex) |
1568 | BSSvClearNodeDBTable( | ||
1569 | IN HANDLE hDeviceContext, | ||
1570 | IN UINT uStartIndex | ||
1571 | ) | ||
1572 | |||
1573 | { | 1525 | { |
1574 | PSDevice pDevice = (PSDevice)hDeviceContext; | 1526 | PSDevice pDevice = (PSDevice)hDeviceContext; |
1575 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); | 1527 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); |
1576 | struct sk_buff *skb; | 1528 | struct sk_buff *skb; |
1577 | UINT ii; | 1529 | unsigned int ii; |
1578 | 1530 | ||
1579 | for (ii = uStartIndex; ii < (MAX_NODE_NUM + 1); ii++) { | 1531 | for (ii = uStartIndex; ii < (MAX_NODE_NUM + 1); ii++) { |
1580 | if (pMgmt->sNodeDBTable[ii].bActive) { | 1532 | if (pMgmt->sNodeDBTable[ii].bActive) { |
@@ -1592,10 +1544,7 @@ BSSvClearNodeDBTable( | |||
1592 | return; | 1544 | return; |
1593 | }; | 1545 | }; |
1594 | 1546 | ||
1595 | 1547 | void s_vCheckSensitivity(void *hDeviceContext) | |
1596 | VOID s_vCheckSensitivity( | ||
1597 | IN HANDLE hDeviceContext | ||
1598 | ) | ||
1599 | { | 1548 | { |
1600 | PSDevice pDevice = (PSDevice)hDeviceContext; | 1549 | PSDevice pDevice = (PSDevice)hDeviceContext; |
1601 | PKnownBSS pBSSList = NULL; | 1550 | PKnownBSS pBSSList = NULL; |
@@ -1606,9 +1555,9 @@ VOID s_vCheckSensitivity( | |||
1606 | ((pMgmt->eCurrMode == WMAC_MODE_IBSS_STA) && (pMgmt->eCurrState == WMAC_STATE_JOINTED))) { | 1555 | ((pMgmt->eCurrMode == WMAC_MODE_IBSS_STA) && (pMgmt->eCurrState == WMAC_STATE_JOINTED))) { |
1607 | pBSSList = BSSpAddrIsInBSSList(pDevice, pMgmt->abyCurrBSSID, (PWLAN_IE_SSID)pMgmt->abyCurrSSID); | 1556 | pBSSList = BSSpAddrIsInBSSList(pDevice, pMgmt->abyCurrBSSID, (PWLAN_IE_SSID)pMgmt->abyCurrSSID); |
1608 | if (pBSSList != NULL) { | 1557 | if (pBSSList != NULL) { |
1609 | // Updata BB Reg if RSSI is too strong. | 1558 | /* Update BB register if RSSI is too strong */ |
1610 | LONG LocalldBmAverage = 0; | 1559 | signed long LocalldBmAverage = 0; |
1611 | LONG uNumofdBm = 0; | 1560 | signed long uNumofdBm = 0; |
1612 | for (ii = 0; ii < RSSI_STAT_COUNT; ii++) { | 1561 | for (ii = 0; ii < RSSI_STAT_COUNT; ii++) { |
1613 | if (pBSSList->ldBmAverage[ii] != 0) { | 1562 | if (pBSSList->ldBmAverage[ii] != 0) { |
1614 | uNumofdBm ++; | 1563 | uNumofdBm ++; |
@@ -1627,7 +1576,9 @@ VOID s_vCheckSensitivity( | |||
1627 | if (pDevice->byBBVGANew != pDevice->byBBVGACurrent) { | 1576 | if (pDevice->byBBVGANew != pDevice->byBBVGACurrent) { |
1628 | pDevice->uBBVGADiffCount++; | 1577 | pDevice->uBBVGADiffCount++; |
1629 | if (pDevice->uBBVGADiffCount >= BB_VGA_CHANGE_THRESHOLD) | 1578 | if (pDevice->uBBVGADiffCount >= BB_VGA_CHANGE_THRESHOLD) |
1630 | bScheduleCommand((HANDLE) pDevice, WLAN_CMD_CHANGE_BBSENSITIVITY, NULL); | 1579 | bScheduleCommand((void *) pDevice, |
1580 | WLAN_CMD_CHANGE_BBSENSITIVITY, | ||
1581 | NULL); | ||
1631 | } else { | 1582 | } else { |
1632 | pDevice->uBBVGADiffCount = 0; | 1583 | pDevice->uBBVGADiffCount = 0; |
1633 | } | 1584 | } |
@@ -1637,14 +1588,12 @@ VOID s_vCheckSensitivity( | |||
1637 | } | 1588 | } |
1638 | 1589 | ||
1639 | #ifdef Calcu_LinkQual | 1590 | #ifdef Calcu_LinkQual |
1640 | VOID s_uCalculateLinkQual( | 1591 | void s_uCalculateLinkQual(void *hDeviceContext) |
1641 | IN HANDLE hDeviceContext | ||
1642 | ) | ||
1643 | { | 1592 | { |
1644 | PSDevice pDevice = (PSDevice)hDeviceContext; | 1593 | PSDevice pDevice = (PSDevice)hDeviceContext; |
1645 | ULONG TxOkRatio, TxCnt; | 1594 | unsigned long TxOkRatio, TxCnt; |
1646 | ULONG RxOkRatio,RxCnt; | 1595 | unsigned long RxOkRatio, RxCnt; |
1647 | ULONG RssiRatio; | 1596 | unsigned long RssiRatio; |
1648 | long ldBm; | 1597 | long ldBm; |
1649 | 1598 | ||
1650 | TxCnt = pDevice->scStatistic.TxNoRetryOkCount + | 1599 | TxCnt = pDevice->scStatistic.TxNoRetryOkCount + |
@@ -1685,14 +1634,11 @@ else | |||
1685 | } | 1634 | } |
1686 | #endif | 1635 | #endif |
1687 | 1636 | ||
1688 | VOID | 1637 | void BSSvClearAnyBSSJoinRecord(void *hDeviceContext) |
1689 | BSSvClearAnyBSSJoinRecord ( | ||
1690 | IN HANDLE hDeviceContext | ||
1691 | ) | ||
1692 | { | 1638 | { |
1693 | PSDevice pDevice = (PSDevice)hDeviceContext; | 1639 | PSDevice pDevice = (PSDevice)hDeviceContext; |
1694 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); | 1640 | PSMgmtObject pMgmt = &(pDevice->sMgmtObj); |
1695 | UINT ii; | 1641 | unsigned int ii; |
1696 | 1642 | ||
1697 | for (ii = 0; ii < MAX_BSS_NUM; ii++) { | 1643 | for (ii = 0; ii < MAX_BSS_NUM; ii++) { |
1698 | pMgmt->sBSSList[ii].bSelected = FALSE; | 1644 | pMgmt->sBSSList[ii].bSelected = FALSE; |
@@ -1700,9 +1646,7 @@ BSSvClearAnyBSSJoinRecord ( | |||
1700 | return; | 1646 | return; |
1701 | } | 1647 | } |
1702 | 1648 | ||
1703 | VOID s_vCheckPreEDThreshold( | 1649 | void s_vCheckPreEDThreshold(void *hDeviceContext) |
1704 | IN HANDLE hDeviceContext | ||
1705 | ) | ||
1706 | { | 1650 | { |
1707 | PSDevice pDevice = (PSDevice)hDeviceContext; | 1651 | PSDevice pDevice = (PSDevice)hDeviceContext; |
1708 | PKnownBSS pBSSList = NULL; | 1652 | PKnownBSS pBSSList = NULL; |