]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
staging: vt6656: Remove QWORD from source and replace with u64.
authorMalcolm Priestley <tvboxspy@gmail.com>
Wed, 28 Nov 2012 21:11:02 +0000 (21:11 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 7 Jan 2013 19:08:13 +0000 (11:08 -0800)
Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
17 files changed:
drivers/staging/vt6656/80211mgr.c
drivers/staging/vt6656/80211mgr.h
drivers/staging/vt6656/bssdb.c
drivers/staging/vt6656/bssdb.h
drivers/staging/vt6656/card.c
drivers/staging/vt6656/card.h
drivers/staging/vt6656/device.h
drivers/staging/vt6656/dpc.c
drivers/staging/vt6656/hostap.c
drivers/staging/vt6656/int.c
drivers/staging/vt6656/int.h
drivers/staging/vt6656/key.c
drivers/staging/vt6656/key.h
drivers/staging/vt6656/ttype.h
drivers/staging/vt6656/wmgr.c
drivers/staging/vt6656/wmgr.h
drivers/staging/vt6656/wpactl.c

index e6ced95e6fa7c7b826b667a57b8a2f68b115249c..8221d65ccedcbee9c7ea22ff5bc1a5076f2f552b 100644 (file)
@@ -96,9 +96,10 @@ vMgrEncodeBeacon(
 {
     pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;
 
-    /* Fixed Fields */
-    pFrame->pqwTimestamp = (PQWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))
-                                    + WLAN_BEACON_OFF_TS);
+       /* Fixed Fields */
+       pFrame->pqwTimestamp =
+               (u64 *)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3)) +
+                       WLAN_BEACON_OFF_TS);
     pFrame->pwBeaconInterval = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))
                                        + WLAN_BEACON_OFF_BCN_INT);
     pFrame->pwCapInfo = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))
@@ -130,9 +131,10 @@ vMgrDecodeBeacon(
 
     pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;
 
-    /* Fixed Fields */
-    pFrame->pqwTimestamp = (PQWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))
-                                    + WLAN_BEACON_OFF_TS);
+       /* Fixed Fields */
+       pFrame->pqwTimestamp =
+               (u64 *)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3)) +
+                       WLAN_BEACON_OFF_TS);
     pFrame->pwBeaconInterval = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))
                                        + WLAN_BEACON_OFF_BCN_INT);
     pFrame->pwCapInfo = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))
@@ -671,9 +673,10 @@ vMgrEncodeProbeResponse(
 {
     pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;
 
-    /* Fixed Fields */
-    pFrame->pqwTimestamp = (PQWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))
-                                    + WLAN_PROBERESP_OFF_TS);
+       /* Fixed Fields */
+       pFrame->pqwTimestamp =
+               (u64 *)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3)) +
+                       WLAN_PROBERESP_OFF_TS);
     pFrame->pwBeaconInterval = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))
                                        + WLAN_PROBERESP_OFF_BCN_INT);
     pFrame->pwCapInfo = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))
@@ -706,9 +709,10 @@ vMgrDecodeProbeResponse(
 
     pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;
 
-    /* Fixed Fields */
-    pFrame->pqwTimestamp = (PQWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))
-                                    + WLAN_PROBERESP_OFF_TS);
+       /* Fixed Fields */
+       pFrame->pqwTimestamp =
+               (u64 *)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3)) +
+                       WLAN_PROBERESP_OFF_TS);
     pFrame->pwBeaconInterval = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))
                                        + WLAN_PROBERESP_OFF_BCN_INT);
     pFrame->pwCapInfo = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))
index e5db73be0e7157162e4ca5052cfed37bbf1de120..29fad08e97ccae4532b21da81f003a3b4d2670f1 100644 (file)
@@ -526,7 +526,7 @@ typedef struct tagWLAN_FR_BEACON {
     PBYTE                   pBuf;
     PUWLAN_80211HDR         pHdr;
     // fixed fields
-    PQWORD                  pqwTimestamp;
+       u64 *pqwTimestamp;
     PWORD                   pwBeaconInterval;
     PWORD                   pwCapInfo;
     /*-- info elements ----------*/
@@ -683,7 +683,7 @@ typedef struct tagWLAN_FR_PROBERESP {
     PBYTE                   pBuf;
     PUWLAN_80211HDR         pHdr;
     /*-- fixed fields -----------*/
-    PQWORD                  pqwTimestamp;
+       u64 *pqwTimestamp;
     PWORD                   pwBeaconInterval;
     PWORD                   pwCapInfo;
     /*-- info elements ----------*/
index 6a1394192248504ba69a9b5b832870ed999886bf..539bc1dc6c26e485d1262decda9a77a0050420b1 100644 (file)
@@ -339,7 +339,7 @@ PKnownBSS BSSpAddrIsInBSSList(void *hDeviceContext,
 
 BOOL BSSbInsertToBSSList(void *hDeviceContext,
                         PBYTE abyBSSIDAddr,
-                        QWORD qwTimestamp,
+                       u64 qwTimestamp,
                         WORD wBeaconInterval,
                         WORD wCapInfo,
                         BYTE byCurrChannel,
@@ -380,8 +380,7 @@ BOOL BSSbInsertToBSSList(void *hDeviceContext,
     // save the BSS info
     pBSSList->bActive = TRUE;
     memcpy( pBSSList->abyBSSID, abyBSSIDAddr, WLAN_BSSID_LEN);
-    HIDWORD(pBSSList->qwBSSTimestamp) = cpu_to_le32(HIDWORD(qwTimestamp));
-    LODWORD(pBSSList->qwBSSTimestamp) = cpu_to_le32(LODWORD(qwTimestamp));
+       pBSSList->qwBSSTimestamp = cpu_to_le64(qwTimestamp);
     pBSSList->wBeaconInterval = cpu_to_le16(wBeaconInterval);
     pBSSList->wCapInfo = cpu_to_le16(wCapInfo);
     pBSSList->uClearCount = 0;
@@ -519,7 +518,7 @@ BOOL BSSbInsertToBSSList(void *hDeviceContext,
 // TODO: input structure modify
 
 BOOL BSSbUpdateToBSSList(void *hDeviceContext,
-                        QWORD qwTimestamp,
+                       u64 qwTimestamp,
                         WORD wBeaconInterval,
                         WORD wCapInfo,
                         BYTE byCurrChannel,
@@ -548,8 +547,8 @@ BOOL BSSbUpdateToBSSList(void *hDeviceContext,
         return FALSE;
 
 
-    HIDWORD(pBSSList->qwBSSTimestamp) = cpu_to_le32(HIDWORD(qwTimestamp));
-    LODWORD(pBSSList->qwBSSTimestamp) = cpu_to_le32(LODWORD(qwTimestamp));
+       pBSSList->qwBSSTimestamp = cpu_to_le64(qwTimestamp);
+
     pBSSList->wBeaconInterval = cpu_to_le16(wBeaconInterval);
     pBSSList->wCapInfo = cpu_to_le16(wCapInfo);
     pBSSList->uClearCount = 0;
index 6b2ec390e77503e177989ef89ec205011d02b031..125edc2725c7a37b70bfe65c962568cc3e9be2a1 100644 (file)
@@ -142,8 +142,8 @@ typedef struct tagKnownBSS {
     unsigned int            uClearCount;
 //    BYTE            abyIEs[WLAN_BEACON_FR_MAXLEN];
     unsigned int            uIELength;
-    QWORD           qwBSSTimestamp;
-    QWORD           qwLocalTSF;     // local TSF timer
+       u64 qwBSSTimestamp;
+       u64 qwLocalTSF;/* local TSF timer */
 
     CARD_PHY_TYPE   eNetworkTypeInUse;
 
@@ -239,7 +239,7 @@ void BSSvClearBSSList(void *hDeviceContext, BOOL bKeepCurrBSSID);
 
 BOOL BSSbInsertToBSSList(void *hDeviceContext,
                         PBYTE abyBSSIDAddr,
-                        QWORD qwTimestamp,
+                       u64 qwTimestamp,
                         WORD wBeaconInterval,
                         WORD wCapInfo,
                         BYTE byCurrChannel,
@@ -256,7 +256,7 @@ BOOL BSSbInsertToBSSList(void *hDeviceContext,
                         void *pRxPacketContext);
 
 BOOL BSSbUpdateToBSSList(void *hDeviceContext,
-                        QWORD qwTimestamp,
+                       u64 qwTimestamp,
                         WORD wBeaconInterval,
                         WORD wCapInfo,
                         BYTE byCurrChannel,
index 826520b03383af4322338154016b1a3276c76e0c..d89fac53d951bf0adfe0d9630db19e9810b8b291 100644 (file)
@@ -654,28 +654,18 @@ BYTE CARDbyGetPktType(void *pDeviceHandler)
  * Return Value: TSF Offset value
  *
  */
-QWORD CARDqGetTSFOffset (BYTE byRxRate, QWORD qwTSF1, QWORD qwTSF2)
+u64 CARDqGetTSFOffset(BYTE byRxRate, u64 qwTSF1, u64 qwTSF2)
 {
-    QWORD   qwTSFOffset;
-    WORD    wRxBcnTSFOffst = 0;
+       u64 qwTSFOffset = 0;
+       WORD wRxBcnTSFOffst = 0;
 
-    HIDWORD(qwTSFOffset) = 0;
-    LODWORD(qwTSFOffset) = 0;
+       wRxBcnTSFOffst = cwRXBCNTSFOff[byRxRate % MAX_RATE];
 
-    wRxBcnTSFOffst = cwRXBCNTSFOff[byRxRate%MAX_RATE];
-    (qwTSF2).u.dwLowDword += (DWORD)(wRxBcnTSFOffst);
-    if ((qwTSF2).u.dwLowDword < (DWORD)(wRxBcnTSFOffst)) {
-        (qwTSF2).u.dwHighDword++;
-    }
-    LODWORD(qwTSFOffset) = LODWORD(qwTSF1) - LODWORD(qwTSF2);
-    if (LODWORD(qwTSF1) < LODWORD(qwTSF2)) {
-        // if borrow needed
-        HIDWORD(qwTSFOffset) = HIDWORD(qwTSF1) - HIDWORD(qwTSF2) - 1 ;
-    }
-    else {
-        HIDWORD(qwTSFOffset) = HIDWORD(qwTSF1) - HIDWORD(qwTSF2);
-    };
-    return (qwTSFOffset);
+       qwTSF2 += (u64)wRxBcnTSFOffst;
+
+       qwTSFOffset = qwTSF1 - qwTSF2;
+
+       return qwTSFOffset;
 }
 
 
@@ -696,32 +686,26 @@ QWORD CARDqGetTSFOffset (BYTE byRxRate, QWORD qwTSF1, QWORD qwTSF2)
  *
  */
 void CARDvAdjustTSF(void *pDeviceHandler, BYTE byRxRate,
-                   QWORD qwBSSTimestamp, QWORD qwLocalTSF)
+               u64 qwBSSTimestamp, u64 qwLocalTSF)
 {
 
     PSDevice        pDevice = (PSDevice) pDeviceHandler;
-    QWORD           qwTSFOffset;
-    DWORD           dwTSFOffset1,dwTSFOffset2;
+       u64 qwTSFOffset = 0;
     BYTE            pbyData[8];
 
-    HIDWORD(qwTSFOffset) = 0;
-    LODWORD(qwTSFOffset) = 0;
 
     qwTSFOffset = CARDqGetTSFOffset(byRxRate, qwBSSTimestamp, qwLocalTSF);
     // adjust TSF
     // HW's TSF add TSF Offset reg
-    dwTSFOffset1 = LODWORD(qwTSFOffset);
-    dwTSFOffset2 = HIDWORD(qwTSFOffset);
 
-
-    pbyData[0] = (BYTE)dwTSFOffset1;
-    pbyData[1] = (BYTE)(dwTSFOffset1>>8);
-    pbyData[2] = (BYTE)(dwTSFOffset1>>16);
-    pbyData[3] = (BYTE)(dwTSFOffset1>>24);
-    pbyData[4] = (BYTE)dwTSFOffset2;
-    pbyData[5] = (BYTE)(dwTSFOffset2>>8);
-    pbyData[6] = (BYTE)(dwTSFOffset2>>16);
-    pbyData[7] = (BYTE)(dwTSFOffset2>>24);
+       pbyData[0] = (u8)qwTSFOffset;
+       pbyData[1] = (u8)(qwTSFOffset >> 8);
+       pbyData[2] = (u8)(qwTSFOffset >> 16);
+       pbyData[3] = (u8)(qwTSFOffset >> 24);
+       pbyData[4] = (u8)(qwTSFOffset >> 32);
+       pbyData[5] = (u8)(qwTSFOffset >> 40);
+       pbyData[6] = (u8)(qwTSFOffset >> 48);
+       pbyData[7] = (u8)(qwTSFOffset >> 56);
 
     CONTROLnsRequestOut(pDevice,
                         MESSAGE_TYPE_SET_TSFTBTT,
@@ -745,12 +729,11 @@ void CARDvAdjustTSF(void *pDeviceHandler, BYTE byRxRate,
  * Return Value: TRUE if success; otherwise FALSE
  *
  */
-BOOL CARDbGetCurrentTSF(void *pDeviceHandler, PQWORD pqwCurrTSF)
+BOOL CARDbGetCurrentTSF(void *pDeviceHandler, u64 *pqwCurrTSF)
 {
-    PSDevice    pDevice = (PSDevice) pDeviceHandler;
+       PSDevice    pDevice = (PSDevice) pDeviceHandler;
 
-    LODWORD(*pqwCurrTSF) = LODWORD(pDevice->qwCurrTSF);
-    HIDWORD(*pqwCurrTSF) = HIDWORD(pDevice->qwCurrTSF);
+       *pqwCurrTSF = pDevice->qwCurrTSF;
 
     return(TRUE);
 }
@@ -773,8 +756,7 @@ BOOL CARDbClearCurrentTSF(void *pDeviceHandler)
 
     MACvRegBitsOn(pDevice,MAC_REG_TFTCTL,TFTCTL_TSFCNTRST);
 
-    LODWORD(pDevice->qwCurrTSF) = 0;
-    HIDWORD(pDevice->qwCurrTSF) = 0;
+       pDevice->qwCurrTSF = 0;
 
     return(TRUE);
 }
@@ -793,7 +775,7 @@ BOOL CARDbClearCurrentTSF(void *pDeviceHandler)
  * Return Value: TSF value of next Beacon
  *
  */
-QWORD CARDqGetNextTBTT (QWORD qwTSF, WORD wBeaconInterval)
+u64 CARDqGetNextTBTT(u64 qwTSF, WORD wBeaconInterval)
 {
 
     unsigned int    uLowNextTBTT;
@@ -802,18 +784,19 @@ QWORD CARDqGetNextTBTT (QWORD qwTSF, WORD wBeaconInterval)
 
     uBeaconInterval = wBeaconInterval * 1024;
     // Next TBTT = ((local_current_TSF / beacon_interval) + 1 ) * beacon_interval
-    uLowNextTBTT = (LODWORD(qwTSF) >> 10) << 10;
-    uLowRemain = (uLowNextTBTT) % uBeaconInterval;
-    uHighRemain = ((0x80000000 % uBeaconInterval)* 2 * HIDWORD(qwTSF))
-                  % uBeaconInterval;
-    uLowRemain = (uHighRemain + uLowRemain) % uBeaconInterval;
-    uLowRemain = uBeaconInterval - uLowRemain;
+       uLowNextTBTT = ((qwTSF & 0xffffffffU) >> 10) << 10;
+       uLowRemain = (uLowNextTBTT) % uBeaconInterval;
+       uHighRemain = ((0x80000000 % uBeaconInterval) * 2 * (u32)(qwTSF >> 32))
+               % uBeaconInterval;
+       uLowRemain = (uHighRemain + uLowRemain) % uBeaconInterval;
+       uLowRemain = uBeaconInterval - uLowRemain;
 
     // check if carry when add one beacon interval
-    if ((~uLowNextTBTT) < uLowRemain)
-        HIDWORD(qwTSF) ++ ;
+       if ((~uLowNextTBTT) < uLowRemain)
+               qwTSF = ((qwTSF >> 32) + 1) << 32;
 
-    LODWORD(qwTSF) = uLowNextTBTT + uLowRemain;
+       qwTSF = (qwTSF & 0xffffffff00000000U) |
+               (u64)(uLowNextTBTT + uLowRemain);
 
     return (qwTSF);
 }
@@ -837,28 +820,22 @@ void CARDvSetFirstNextTBTT(void *pDeviceHandler, WORD wBeaconInterval)
 {
 
     PSDevice        pDevice = (PSDevice) pDeviceHandler;
-    QWORD           qwNextTBTT;
-    DWORD           dwLoTBTT,dwHiTBTT;
-    BYTE            pbyData[8];
+       u64 qwNextTBTT = 0;
+       BYTE            pbyData[8];
 
-    HIDWORD(qwNextTBTT) = 0;
-    LODWORD(qwNextTBTT) = 0;
-    CARDbClearCurrentTSF(pDevice);
+       CARDbClearCurrentTSF(pDevice);
     //CARDbGetCurrentTSF(pDevice, &qwNextTBTT); //Get Local TSF counter
-    qwNextTBTT = CARDqGetNextTBTT(qwNextTBTT, wBeaconInterval);
+       qwNextTBTT = CARDqGetNextTBTT(qwNextTBTT, wBeaconInterval);
     // Set NextTBTT
 
-    dwLoTBTT = LODWORD(qwNextTBTT);
-    dwHiTBTT = HIDWORD(qwNextTBTT);
-
-    pbyData[0] = (BYTE)dwLoTBTT;
-    pbyData[1] = (BYTE)(dwLoTBTT>>8);
-    pbyData[2] = (BYTE)(dwLoTBTT>>16);
-    pbyData[3] = (BYTE)(dwLoTBTT>>24);
-    pbyData[4] = (BYTE)dwHiTBTT;
-    pbyData[5] = (BYTE)(dwHiTBTT>>8);
-    pbyData[6] = (BYTE)(dwHiTBTT>>16);
-    pbyData[7] = (BYTE)(dwHiTBTT>>24);
+       pbyData[0] = (u8)qwNextTBTT;
+       pbyData[1] = (u8)(qwNextTBTT >> 8);
+       pbyData[2] = (u8)(qwNextTBTT >> 16);
+       pbyData[3] = (u8)(qwNextTBTT >> 24);
+       pbyData[4] = (u8)(qwNextTBTT >> 32);
+       pbyData[5] = (u8)(qwNextTBTT >> 40);
+       pbyData[6] = (u8)(qwNextTBTT >> 48);
+       pbyData[7] = (u8)(qwNextTBTT >> 56);
 
     CONTROLnsRequestOut(pDevice,
                         MESSAGE_TYPE_SET_TSFTBTT,
@@ -887,27 +864,24 @@ void CARDvSetFirstNextTBTT(void *pDeviceHandler, WORD wBeaconInterval)
  * Return Value: none
  *
  */
-void CARDvUpdateNextTBTT(void *pDeviceHandler, QWORD qwTSF,
+void CARDvUpdateNextTBTT(void *pDeviceHandler, u64 qwTSF,
                         WORD wBeaconInterval)
 {
     PSDevice        pDevice = (PSDevice) pDeviceHandler;
-    DWORD           dwLoTBTT,dwHiTBTT;
     BYTE            pbyData[8];
 
     qwTSF = CARDqGetNextTBTT(qwTSF, wBeaconInterval);
 
     // Set NextTBTT
-    dwLoTBTT = LODWORD(qwTSF);
-    dwHiTBTT = HIDWORD(qwTSF);
-
-    pbyData[0] = (BYTE)dwLoTBTT;
-    pbyData[1] = (BYTE)(dwLoTBTT>>8);
-    pbyData[2] = (BYTE)(dwLoTBTT>>16);
-    pbyData[3] = (BYTE)(dwLoTBTT>>24);
-    pbyData[4] = (BYTE)dwHiTBTT;
-    pbyData[5] = (BYTE)(dwHiTBTT>>8);
-    pbyData[6] = (BYTE)(dwHiTBTT>>16);
-    pbyData[7] = (BYTE)(dwHiTBTT>>24);
+
+       pbyData[0] = (u8)qwTSF;
+       pbyData[1] = (u8)(qwTSF >> 8);
+       pbyData[2] = (u8)(qwTSF >> 16);
+       pbyData[3] = (u8)(qwTSF >> 24);
+       pbyData[4] = (u8)(qwTSF >> 32);
+       pbyData[5] = (u8)(qwTSF >> 40);
+       pbyData[6] = (u8)(qwTSF >> 48);
+       pbyData[7] = (u8)(qwTSF >> 56);
 
     CONTROLnsRequestOut(pDevice,
                         MESSAGE_TYPE_SET_TSFTBTT,
@@ -918,7 +892,8 @@ void CARDvUpdateNextTBTT(void *pDeviceHandler, QWORD qwTSF,
                         );
 
 
-    DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Card:Update Next TBTT[%8xh:%8xh] \n",(int)HIDWORD(qwTSF), (int)LODWORD(qwTSF));
+       DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO
+               "Card:Update Next TBTT[%8lx]\n", (unsigned long)qwTSF);
 
     return;
 }
index 55962b1988317f4aea1fdb52d9ede78d31ae18d8..1059467bbc84da7d876f7e77f877c05349c4a794 100644 (file)
@@ -67,14 +67,14 @@ void CARDvUpdateBasicTopRate(void *pDeviceHandler);
 void CARDbAddBasicRate(void *pDeviceHandler, WORD wRateIdx);
 BOOL CARDbIsOFDMinBasicRate(void *pDeviceHandler);
 void CARDvAdjustTSF(void *pDeviceHandler, BYTE byRxRate,
-                   QWORD qwBSSTimestamp, QWORD qwLocalTSF);
-BOOL CARDbGetCurrentTSF(void *pDeviceHandler, PQWORD pqwCurrTSF);
+               u64 qwBSSTimestamp, u64 qwLocalTSF);
+BOOL CARDbGetCurrentTSF(void *pDeviceHandler, u64 *pqwCurrTSF);
 BOOL CARDbClearCurrentTSF(void *pDeviceHandler);
 void CARDvSetFirstNextTBTT(void *pDeviceHandler, WORD wBeaconInterval);
-void CARDvUpdateNextTBTT(void *pDeviceHandler, QWORD qwTSF,
+void CARDvUpdateNextTBTT(void *pDeviceHandler, u64 qwTSF,
                         WORD wBeaconInterval);
-QWORD CARDqGetNextTBTT(QWORD qwTSF, WORD wBeaconInterval);
-QWORD CARDqGetTSFOffset(BYTE byRxRate, QWORD qwTSF1, QWORD qwTSF2);
+u64 CARDqGetNextTBTT(u64 qwTSF, WORD wBeaconInterval);
+u64 CARDqGetTSFOffset(BYTE byRxRate, u64 qwTSF1, u64 qwTSF2);
 BOOL CARDbRadioPowerOff(void *pDeviceHandler);
 BOOL CARDbRadioPowerOn(void *pDeviceHandler);
 BYTE CARDbyGetPktType(void *pDeviceHandler);
index 25bf03af7733e53491caebf1e3c5d3343ea8cce1..047f55092078eeb13ede1e163d4b9e428e56d581 100644 (file)
@@ -527,7 +527,7 @@ typedef struct __device_info {
     // 802.11 management
     SMgmtObject                 sMgmtObj;
 
-    QWORD                       qwCurrTSF;
+       u64 qwCurrTSF;
     unsigned int                        cbBulkInMax;
     BOOL                        bPSRxBeacon;
 
index e94f6a1647a3b60e21f224eec8a0aa87ea976872..8f21bc7a4d602134a291b96be7d50587a906dc93 100644 (file)
@@ -328,7 +328,7 @@ RXbBulkInProcessData (
     PBYTE           pbyRsr;
     PBYTE           pbyNewRsr;
     PBYTE           pbyRSSI;
-    PQWORD          pqwTSFTime;
+       u64 *pqwTSFTime;
     PBYTE           pbyFrame;
     BOOL            bDeFragRx = FALSE;
     unsigned int            cbHeaderOffset;
@@ -411,7 +411,7 @@ RXbBulkInProcessData (
 
     wPLCPwithPadding = ( (*pwPLCP_Length / 4) + ( (*pwPLCP_Length % 4) ? 1:0 ) ) *4;
 
-    pqwTSFTime = (PQWORD) (pbyDAddress + 8 + wPLCPwithPadding);
+       pqwTSFTime = (u64 *)(pbyDAddress + 8 + wPLCPwithPadding);
   if(pDevice->byBBType == BB_TYPE_11G)  {
       pby3SQ = pbyDAddress + 8 + wPLCPwithPadding + 12;
       pbySQ = pby3SQ;
@@ -598,8 +598,7 @@ RXbBulkInProcessData (
             pRxPacket->cbMPDULen = FrameSize;
             pRxPacket->uRSSI = *pbyRSSI;
             pRxPacket->bySQ = *pbySQ;
-            HIDWORD(pRxPacket->qwLocalTSF) = cpu_to_le32(HIDWORD(*pqwTSFTime));
-            LODWORD(pRxPacket->qwLocalTSF) = cpu_to_le32(LODWORD(*pqwTSFTime));
+               pRxPacket->qwLocalTSF = cpu_to_le64(*pqwTSFTime);
             if (bIsWEP) {
                 // strip IV
                 pbyData1 = WLAN_HDR_A3_DATA_PTR(pbyFrame);
@@ -910,7 +909,7 @@ RXbBulkInProcessData (
             RSC = dwRxTSC47_16;
             RSC <<= 16;
             RSC += wRxTSC15_0;
-            memcpy(&(pKey->KeyRSC), &RSC,  sizeof(QWORD));
+               memcpy(&(pKey->KeyRSC), &RSC,  sizeof(u64));
 
             if ( (pDevice->sMgmtObj.eCurrMode == WMAC_MODE_ESS_STA) &&
                  (pDevice->sMgmtObj.eCurrState == WMAC_STATE_ASSOC)) {
index 26a7d0e4b0487aa118d85e9e665238ccb6ade802..33228553138366685ede95c0712817cdf7d5c4be 100644 (file)
@@ -512,14 +512,12 @@ static int hostap_set_encryption(PSDevice pDevice,
         } else {
             // 8021x enable, individual key
             dwKeyIndex |= (1 << 30); // set pairwise key
-            if (KeybSetKey(pDevice,
-                           &(pDevice->sKey),
-                           &param->sta_addr[0],
-                           dwKeyIndex & ~(USE_KEYRSC),
-                           param->u.crypt.key_len,
-                           (PQWORD) &(KeyRSC),
-                           (PBYTE)abyKey,
-                            KEY_CTL_WEP
+               if (KeybSetKey(pDevice, &(pDevice->sKey),
+                       &param->sta_addr[0],
+                       dwKeyIndex & ~(USE_KEYRSC),
+                       param->u.crypt.key_len,
+                       &KeyRSC, (PBYTE)abyKey,
+                       KEY_CTL_WEP
                            ) == TRUE) {
 
 
@@ -574,7 +572,7 @@ static int hostap_set_encryption(PSDevice pDevice,
                            &(pDevice->sKey),
                            dwKeyIndex,
                            param->u.crypt.key_len,
-                           (PQWORD) &(KeyRSC),
+                       &KeyRSC,
                            abyKey,
                            byKeyDecMode
                           );
@@ -587,7 +585,7 @@ static int hostap_set_encryption(PSDevice pDevice,
                        &param->sta_addr[0],
                        dwKeyIndex,
                        param->u.crypt.key_len,
-                       (PQWORD) &(KeyRSC),
+                       &KeyRSC,
                        (PBYTE)abyKey,
                         byKeyDecMode
                        ) == TRUE) {
index bba31caae036e1be67c87549873574de4ac97501..7718ac21039e980da96b4c6b28c467afc34dc8f3 100644 (file)
@@ -179,8 +179,7 @@ void INTnsProcessData(PSDevice pDevice)
                                                        NULL);
                        }
                }
-               LODWORD(pDevice->qwCurrTSF) = pINTData->dwLoTSF;
-               HIDWORD(pDevice->qwCurrTSF) = pINTData->dwHiTSF;
+               pDevice->qwCurrTSF = cpu_to_le64(pINTData->qwTSF);
                /*DBG_PRN_GRP01(("ISR0 = %02x ,
                  LoTsf =  %08x,
                  HiTsf =  %08x\n",
index 5d8faf9f96ec4aac7f4e4c452b7d83dafb79bd35..ffc243feba69d965c7e04cc9d92b48ff8e407813 100644 (file)
@@ -48,8 +48,7 @@ typedef struct tagSINTData {
        BYTE byTSR3;
        BYTE byPkt3;
        WORD wTime3;
-       u32 dwLoTSF;
-       u32 dwHiTSF;
+       u64 qwTSF;
        BYTE byISR0;
        BYTE byISR1;
        BYTE byRTSSuccess;
index 8c78b86b5c807886cad98ae299e3ddad4b8f8fa5..6f6a2197aca18b63d2dac0cbda978d24727d1919 100644 (file)
@@ -224,7 +224,7 @@ BOOL KeybSetKey(
     PBYTE           pbyBSSID,
     DWORD           dwKeyIndex,
        u32 uKeyLength,
-    PQWORD          pKeyRSC,
+       u64 *KeyRSC,
     PBYTE           pbyKey,
     BYTE            byKeyDecMode
     )
@@ -286,13 +286,11 @@ BOOL KeybSetKey(
             }
             MACvSetKeyEntry(pDevice, pTable->KeyTable[i].wKeyCtl, i, uKeyIdx, pbyBSSID, (PDWORD)pKey->abyKey);
 
-            if ((dwKeyIndex & USE_KEYRSC) == 0) {
-                // RSC set by NIC
-                   memset(&(pKey->KeyRSC), 0, sizeof(QWORD));
-            }
-            else {
-                memcpy(&(pKey->KeyRSC), pKeyRSC,  sizeof(QWORD));
-            }
+               if ((dwKeyIndex & USE_KEYRSC) == 0)
+                       pKey->KeyRSC = 0; /* RSC set by NIC */
+               else
+                       pKey->KeyRSC = *KeyRSC;
+
             pKey->dwTSC47_16 = 0;
             pKey->wTSC15_0 = 0;
 
@@ -356,13 +354,11 @@ BOOL KeybSetKey(
         }
         MACvSetKeyEntry(pDevice, pTable->KeyTable[j].wKeyCtl, j, uKeyIdx, pbyBSSID, (PDWORD)pKey->abyKey);
 
-        if ((dwKeyIndex & USE_KEYRSC) == 0) {
-            // RSC set by NIC
-               memset(&(pKey->KeyRSC), 0, sizeof(QWORD));
-        }
-        else {
-            memcpy(&(pKey->KeyRSC), pKeyRSC,  sizeof(QWORD));
-        }
+               if ((dwKeyIndex & USE_KEYRSC) == 0)
+                       pKey->KeyRSC = 0; /* RSC set by NIC */
+               else
+                       pKey->KeyRSC = *KeyRSC;
+
         pKey->dwTSC47_16 = 0;
         pKey->wTSC15_0 = 0;
 
@@ -676,7 +672,7 @@ BOOL KeybSetDefaultKey(
     PSKeyManagement pTable,
     DWORD           dwKeyIndex,
        u32 uKeyLength,
-    PQWORD          pKeyRSC,
+       u64 *KeyRSC,
     PBYTE           pbyKey,
     BYTE            byKeyDecMode
     )
@@ -742,12 +738,12 @@ BOOL KeybSetDefaultKey(
 
     MACvSetKeyEntry(pDevice, pTable->KeyTable[MAX_KEY_TABLE-1].wKeyCtl, MAX_KEY_TABLE-1, uKeyIdx, pTable->KeyTable[MAX_KEY_TABLE-1].abyBSSID, (PDWORD) pKey->abyKey);
 
-    if ((dwKeyIndex & USE_KEYRSC) == 0) {
-        // RSC set by NIC
-           memset(&(pKey->KeyRSC), 0, sizeof(QWORD));
-    } else {
-        memcpy(&(pKey->KeyRSC), pKeyRSC,  sizeof(QWORD));
-    }
+               if ((dwKeyIndex & USE_KEYRSC) == 0)
+                       pKey->KeyRSC = 0; /* RSC set by NIC */
+               else
+                       pKey->KeyRSC = *KeyRSC;
+
+
     pKey->dwTSC47_16 = 0;
     pKey->wTSC15_0 = 0;
 
@@ -792,7 +788,7 @@ BOOL KeybSetAllGroupKey(
     PSKeyManagement pTable,
     DWORD           dwKeyIndex,
        u32 uKeyLength,
-    PQWORD          pKeyRSC,
+       u64 *KeyRSC,
     PBYTE           pbyKey,
     BYTE            byKeyDecMode
     )
@@ -847,13 +843,11 @@ BOOL KeybSetAllGroupKey(
 
             MACvSetKeyEntry(pDevice, pTable->KeyTable[i].wKeyCtl, i, uKeyIdx, pTable->KeyTable[i].abyBSSID, (PDWORD) pKey->abyKey);
 
-            if ((dwKeyIndex & USE_KEYRSC) == 0) {
-                // RSC set by NIC
-                   memset(&(pKey->KeyRSC), 0, sizeof(QWORD));
-            }
-            else {
-                memcpy(&(pKey->KeyRSC), pKeyRSC,  sizeof(QWORD));
-            }
+               if ((dwKeyIndex & USE_KEYRSC) == 0)
+                       pKey->KeyRSC = 0; /* RSC set by NIC */
+               else
+                       pKey->KeyRSC = *KeyRSC;
+
             pKey->dwTSC47_16 = 0;
             pKey->wTSC15_0 = 0;
 
index bd35d39621ae11664bd48dcd200b7ea9d7e5033d..863db7cb590fe03d31be4f64d03451be4c842695 100644 (file)
@@ -60,7 +60,7 @@ typedef struct tagSKeyItem
     BOOL        bKeyValid;
        u32 uKeyLength;
     BYTE        abyKey[MAX_KEY_LEN];
-    QWORD       KeyRSC;
+       u64 KeyRSC;
     DWORD       dwTSC47_16;
     WORD        wTSC15_0;
     BYTE        byCipherSuite;
@@ -108,7 +108,7 @@ BOOL KeybSetKey(
     PBYTE           pbyBSSID,
     DWORD           dwKeyIndex,
        u32 uKeyLength,
-    PQWORD          pKeyRSC,
+       u64 *KeyRSC,
     PBYTE           pbyKey,
     BYTE            byKeyDecMode
     );
@@ -147,7 +147,7 @@ BOOL KeybSetDefaultKey(
     PSKeyManagement pTable,
     DWORD           dwKeyIndex,
        u32 uKeyLength,
-    PQWORD          pKeyRSC,
+       u64 *KeyRSC,
     PBYTE           pbyKey,
     BYTE            byKeyDecMode
     );
@@ -157,7 +157,7 @@ BOOL KeybSetAllGroupKey(
     PSKeyManagement pTable,
     DWORD           dwKeyIndex,
        u32 uKeyLength,
-    PQWORD          pKeyRSC,
+       u64 *KeyRSC,
     PBYTE           pbyKey,
     BYTE            byKeyDecMode
     );
index dfbf74713a80cd5756d3eae00ad554de01236623..89ab494922026269898606862e851059c288f5cb 100644 (file)
@@ -48,18 +48,6 @@ typedef u8 BYTE;
 typedef u16 WORD;
 typedef u32 DWORD;
 
-// QWORD is for those situation that we want
-// an 8-byte-aligned 8 byte long structure
-// which is NOT really a floating point number.
-typedef union tagUQuadWord {
-    struct {
-       u32 dwLowDword;
-       u32 dwHighDword;
-    } u;
-    double      DoNotUseThisField;
-} UQuadWord;
-typedef UQuadWord       QWORD;          // 64-bit
-
 /****** Common pointer types ***********************************************/
 
 typedef u32 ULONG_PTR;
@@ -73,6 +61,4 @@ typedef WORD *           PWORD;
 
 typedef DWORD *          PDWORD;
 
-typedef QWORD *          PQWORD;
-
 #endif /* __TTYPE_H__ */
index 95ddc8303bb3f703189a98ecd120eb879491faa4..7a242f76aa3174a0db232db3ad453c2f0f233af9 100644 (file)
@@ -1740,7 +1740,7 @@ s_vMgrRxBeacon(
 
     PKnownBSS           pBSSList;
     WLAN_FR_BEACON      sFrame;
-    QWORD               qwTSFOffset;
+       u64 qwTSFOffset;
     BOOL                bIsBSSIDEqual = FALSE;
     BOOL                bIsSSIDEqual = FALSE;
     BOOL                bTSFLargeDiff = FALSE;
@@ -1752,8 +1752,8 @@ s_vMgrRxBeacon(
     BYTE                byTIMBitOn = 0;
     WORD                wAIDNumber = 0;
     unsigned int                uNodeIndex;
-    QWORD               qwTimestamp, qwLocalTSF;
-    QWORD               qwCurrTSF;
+       u64 qwTimestamp, qwLocalTSF;
+       u64 qwCurrTSF;
     WORD                wStartIndex = 0;
     WORD                wAIDIndex = 0;
     BYTE                byCurrChannel = pRxPacket->byRxChannel;
@@ -2013,26 +2013,14 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
         }
     }
 
-    HIDWORD(qwTimestamp) = cpu_to_le32(HIDWORD(*sFrame.pqwTimestamp));
-    LODWORD(qwTimestamp) = cpu_to_le32(LODWORD(*sFrame.pqwTimestamp));
-    HIDWORD(qwLocalTSF) = HIDWORD(pRxPacket->qwLocalTSF);
-    LODWORD(qwLocalTSF) = LODWORD(pRxPacket->qwLocalTSF);
+       qwTimestamp = cpu_to_le64(*sFrame.pqwTimestamp);
+       qwLocalTSF = pRxPacket->qwLocalTSF;
 
     // check if beacon TSF larger or small than our local TSF
-    if (HIDWORD(qwTimestamp) == HIDWORD(qwLocalTSF)) {
-        if (LODWORD(qwTimestamp) >= LODWORD(qwLocalTSF)) {
-            bTSFOffsetPostive = TRUE;
-        }
-        else {
-            bTSFOffsetPostive = FALSE;
-        }
-    }
-    else if (HIDWORD(qwTimestamp) > HIDWORD(qwLocalTSF)) {
-        bTSFOffsetPostive = TRUE;
-    }
-    else if (HIDWORD(qwTimestamp) < HIDWORD(qwLocalTSF)) {
-        bTSFOffsetPostive = FALSE;
-    }
+       if (qwTimestamp >= qwLocalTSF)
+               bTSFOffsetPostive = TRUE;
+       else
+               bTSFOffsetPostive = FALSE;
 
     if (bTSFOffsetPostive) {
         qwTSFOffset = CARDqGetTSFOffset(pRxPacket->byRxRate, (qwTimestamp), (qwLocalTSF));
@@ -2041,10 +2029,8 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
         qwTSFOffset = CARDqGetTSFOffset(pRxPacket->byRxRate, (qwLocalTSF), (qwTimestamp));
     }
 
-    if (HIDWORD(qwTSFOffset) != 0 ||
-        (LODWORD(qwTSFOffset) > TRIVIAL_SYNC_DIFFERENCE )) {
-         bTSFLargeDiff = TRUE;
-    }
+       if (qwTSFOffset > TRIVIAL_SYNC_DIFFERENCE)
+               bTSFLargeDiff = TRUE;
 
 
     // if infra mode
@@ -2265,7 +2251,7 @@ void vMgrCreateOwnIBSS(void *hDeviceContext,
     WORD                wMaxSuppRate;
     BYTE                byTopCCKBasicRate;
     BYTE                byTopOFDMBasicRate;
-    QWORD               qwCurrTSF;
+       u64 qwCurrTSF = 0;
     unsigned int                ii;
     BYTE    abyRATE[] = {0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, 0x0C, 0x12, 0x18, 0x60};
     BYTE    abyCCK_RATE[] = {0x82, 0x84, 0x8B, 0x96};
@@ -2274,9 +2260,6 @@ void vMgrCreateOwnIBSS(void *hDeviceContext,
 
 
 
-    HIDWORD(qwCurrTSF) = 0;
-    LODWORD(qwCurrTSF) = 0;
-
     DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Create Basic Service Set .......\n");
 
     if (pMgmt->eConfigMode == WMAC_CONFIG_IBSS_STA) {
@@ -2420,12 +2403,12 @@ void vMgrCreateOwnIBSS(void *hDeviceContext,
     if (pMgmt->eCurrMode == WMAC_MODE_IBSS_STA) {
 
         // BSSID selected must be randomized as spec 11.1.3
-        pMgmt->abyCurrBSSID[5] = (BYTE) (LODWORD(qwCurrTSF)& 0x000000ff);
-        pMgmt->abyCurrBSSID[4] = (BYTE)((LODWORD(qwCurrTSF)& 0x0000ff00) >> 8);
-        pMgmt->abyCurrBSSID[3] = (BYTE)((LODWORD(qwCurrTSF)& 0x00ff0000) >> 16);
-        pMgmt->abyCurrBSSID[2] = (BYTE)((LODWORD(qwCurrTSF)& 0x00000ff0) >> 4);
-        pMgmt->abyCurrBSSID[1] = (BYTE)((LODWORD(qwCurrTSF)& 0x000ff000) >> 12);
-        pMgmt->abyCurrBSSID[0] = (BYTE)((LODWORD(qwCurrTSF)& 0x0ff00000) >> 20);
+       pMgmt->abyCurrBSSID[5] = (u8)(qwCurrTSF & 0x000000ff);
+       pMgmt->abyCurrBSSID[4] = (u8)((qwCurrTSF & 0x0000ff00) >> 8);
+       pMgmt->abyCurrBSSID[3] = (u8)((qwCurrTSF & 0x00ff0000) >> 16);
+       pMgmt->abyCurrBSSID[2] = (u8)((qwCurrTSF & 0x00000ff0) >> 4);
+       pMgmt->abyCurrBSSID[1] = (u8)((qwCurrTSF & 0x000ff000) >> 12);
+       pMgmt->abyCurrBSSID[0] = (u8)((qwCurrTSF & 0x0ff00000) >> 20);
         pMgmt->abyCurrBSSID[5] ^= pMgmt->abyMACAddr[0];
         pMgmt->abyCurrBSSID[4] ^= pMgmt->abyMACAddr[1];
         pMgmt->abyCurrBSSID[3] ^= pMgmt->abyMACAddr[2];
index 52b1b562b14144f79d7969cc17b9657d365b81fc..876c3526da2084fefcf3b5ef20bb5c96028e1713 100644 (file)
@@ -232,7 +232,7 @@ typedef struct tagSTxMgmtPacket {
 typedef struct tagSRxMgmtPacket {
 
     PUWLAN_80211HDR     p80211Header;
-    QWORD               qwLocalTSF;
+       u64 qwLocalTSF;
     unsigned int                cbMPDULen;
     unsigned int                cbPayloadLen;
     unsigned int                uRSSI;
index cc1d48bced2d9ee4944009c382af8f713f97c76b..3afbb61cc722a525fe6cea21b45087ea63c5bc8b 100644 (file)
@@ -74,7 +74,7 @@ int wpa_set_keys(PSDevice pDevice, void *ctx)
        DWORD dwKeyIndex = 0;
        BYTE abyKey[MAX_KEY_LEN];
        BYTE abySeq[MAX_KEY_LEN];
-       QWORD KeyRSC;
+       u64 KeyRSC;
        BYTE byKeyDecMode = KEY_CTL_WEP;
        int ret = 0;
        int uu;
@@ -136,9 +136,9 @@ int wpa_set_keys(PSDevice pDevice, void *ctx)
        if (param->u.wpa_key.seq_len > 0) {
                for (ii = 0 ; ii < param->u.wpa_key.seq_len ; ii++) {
                        if (ii < 4)
-                               LODWORD(KeyRSC) |= (abySeq[ii] << (ii * 8));
+                               KeyRSC |= (abySeq[ii] << (ii * 8));
                        else
-                               HIDWORD(KeyRSC) |= (abySeq[ii] << ((ii-4) * 8));
+                               KeyRSC |= (abySeq[ii] << ((ii-4) * 8));
                }
                dwKeyIndex |= 1 << 29;
        }
@@ -203,7 +203,7 @@ int wpa_set_keys(PSDevice pDevice, void *ctx)
 
                if ((KeybSetAllGroupKey(pDevice, &(pDevice->sKey), dwKeyIndex,
                                                        param->u.wpa_key.key_len,
-                                                       (PQWORD) &(KeyRSC),
+                                                       &KeyRSC,
                                                        (PBYTE)abyKey,
                                                        byKeyDecMode
                                        ) == TRUE) &&
@@ -211,7 +211,7 @@ int wpa_set_keys(PSDevice pDevice, void *ctx)
                                        &(pDevice->sKey),
                                        dwKeyIndex,
                                        param->u.wpa_key.key_len,
-                                       (PQWORD) &(KeyRSC),
+                                       &KeyRSC,
                                        (PBYTE)abyKey,
                                        byKeyDecMode
                                ) == TRUE) ) {
@@ -234,7 +234,7 @@ int wpa_set_keys(PSDevice pDevice, void *ctx)
                }
                if (KeybSetKey(pDevice, &(pDevice->sKey), &param->addr[0],
                                dwKeyIndex, param->u.wpa_key.key_len,
-                               (PQWORD) &(KeyRSC), (PBYTE)abyKey, byKeyDecMode
+                               &KeyRSC, (PBYTE)abyKey, byKeyDecMode
                                ) == TRUE) {
                        DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Pairwise Key Set\n");
                } else {