summaryrefslogtreecommitdiff
path: root/drivers/staging/rt2860/sta/sanity.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/rt2860/sta/sanity.c')
-rw-r--r--drivers/staging/rt2860/sta/sanity.c535
1 files changed, 239 insertions, 296 deletions
diff --git a/drivers/staging/rt2860/sta/sanity.c b/drivers/staging/rt2860/sta/sanity.c
index 7d530f601602..8f9fd19be151 100644
--- a/drivers/staging/rt2860/sta/sanity.c
+++ b/drivers/staging/rt2860/sta/sanity.c
@@ -36,15 +36,15 @@
*/
#include "../rt_config.h"
-extern UCHAR CISCO_OUI[];
+extern u8 CISCO_OUI[];
-extern UCHAR WPA_OUI[];
-extern UCHAR RSN_OUI[];
-extern UCHAR WME_INFO_ELEM[];
-extern UCHAR WME_PARM_ELEM[];
-extern UCHAR Ccx2QosInfo[];
-extern UCHAR RALINK_OUI[];
-extern UCHAR BROADCOM_OUI[];
+extern u8 WPA_OUI[];
+extern u8 RSN_OUI[];
+extern u8 WME_INFO_ELEM[];
+extern u8 WME_PARM_ELEM[];
+extern u8 Ccx2QosInfo[];
+extern u8 RALINK_OUI[];
+extern u8 BROADCOM_OUI[];
/*
==========================================================================
@@ -54,27 +54,25 @@ extern UCHAR BROADCOM_OUI[];
TRUE if all parameters are OK, FALSE otherwise
==========================================================================
*/
-BOOLEAN MlmeStartReqSanity(
- IN PRTMP_ADAPTER pAd,
- IN VOID *Msg,
- IN ULONG MsgLen,
- OUT CHAR Ssid[],
- OUT UCHAR *pSsidLen)
+BOOLEAN MlmeStartReqSanity(struct rt_rtmp_adapter *pAd,
+ void * Msg,
+ unsigned long MsgLen,
+ char Ssid[], u8 * pSsidLen)
{
- MLME_START_REQ_STRUCT *Info;
+ struct rt_mlme_start_req *Info;
- Info = (MLME_START_REQ_STRUCT *)(Msg);
+ Info = (struct rt_mlme_start_req *)(Msg);
- if (Info->SsidLen > MAX_LEN_OF_SSID)
- {
- DBGPRINT(RT_DEBUG_TRACE, ("MlmeStartReqSanity fail - wrong SSID length\n"));
- return FALSE;
- }
+ if (Info->SsidLen > MAX_LEN_OF_SSID) {
+ DBGPRINT(RT_DEBUG_TRACE,
+ ("MlmeStartReqSanity fail - wrong SSID length\n"));
+ return FALSE;
+ }
- *pSsidLen = Info->SsidLen;
- NdisMoveMemory(Ssid, Info->Ssid, *pSsidLen);
+ *pSsidLen = Info->SsidLen;
+ NdisMoveMemory(Ssid, Info->Ssid, *pSsidLen);
- return TRUE;
+ return TRUE;
}
/*
@@ -88,211 +86,161 @@ BOOLEAN MlmeStartReqSanity(
==========================================================================
*/
-BOOLEAN PeerAssocRspSanity(
- IN PRTMP_ADAPTER pAd,
- IN VOID *pMsg,
- IN ULONG MsgLen,
- OUT PUCHAR pAddr2,
- OUT USHORT *pCapabilityInfo,
- OUT USHORT *pStatus,
- OUT USHORT *pAid,
- OUT UCHAR SupRate[],
- OUT UCHAR *pSupRateLen,
- OUT UCHAR ExtRate[],
- OUT UCHAR *pExtRateLen,
- OUT HT_CAPABILITY_IE *pHtCapability,
- OUT ADD_HT_INFO_IE *pAddHtInfo, // AP might use this additional ht info IE
- OUT UCHAR *pHtCapabilityLen,
- OUT UCHAR *pAddHtInfoLen,
- OUT UCHAR *pNewExtChannelOffset,
- OUT PEDCA_PARM pEdcaParm,
- OUT UCHAR *pCkipFlag)
+BOOLEAN PeerAssocRspSanity(struct rt_rtmp_adapter *pAd, void * pMsg, unsigned long MsgLen, u8 *pAddr2, u16 * pCapabilityInfo, u16 * pStatus, u16 * pAid, u8 SupRate[], u8 * pSupRateLen, u8 ExtRate[], u8 * pExtRateLen, struct rt_ht_capability_ie * pHtCapability, struct rt_add_ht_info_ie * pAddHtInfo, /* AP might use this additional ht info IE */
+ u8 * pHtCapabilityLen,
+ u8 * pAddHtInfoLen,
+ u8 * pNewExtChannelOffset,
+ struct rt_edca_parm *pEdcaParm, u8 * pCkipFlag)
{
- CHAR IeType, *Ptr;
- PFRAME_802_11 pFrame = (PFRAME_802_11)pMsg;
- PEID_STRUCT pEid;
- ULONG Length = 0;
+ char IeType, *Ptr;
+ struct rt_frame_802_11 * pFrame = (struct rt_frame_802_11 *) pMsg;
+ struct rt_eid * pEid;
+ unsigned long Length = 0;
*pNewExtChannelOffset = 0xff;
*pHtCapabilityLen = 0;
*pAddHtInfoLen = 0;
- COPY_MAC_ADDR(pAddr2, pFrame->Hdr.Addr2);
- Ptr = pFrame->Octet;
- Length += LENGTH_802_11;
-
- NdisMoveMemory(pCapabilityInfo, &pFrame->Octet[0], 2);
- Length += 2;
- NdisMoveMemory(pStatus, &pFrame->Octet[2], 2);
- Length += 2;
- *pCkipFlag = 0;
- *pExtRateLen = 0;
- pEdcaParm->bValid = FALSE;
-
- if (*pStatus != MLME_SUCCESS)
- return TRUE;
-
- NdisMoveMemory(pAid, &pFrame->Octet[4], 2);
- Length += 2;
-
- // Aid already swaped byte order in RTMPFrameEndianChange() for big endian platform
- *pAid = (*pAid) & 0x3fff; // AID is low 14-bit
-
- // -- get supported rates from payload and advance the pointer
- IeType = pFrame->Octet[6];
- *pSupRateLen = pFrame->Octet[7];
- if ((IeType != IE_SUPP_RATES) || (*pSupRateLen > MAX_LEN_OF_SUPPORTED_RATES))
- {
- DBGPRINT(RT_DEBUG_TRACE, ("PeerAssocRspSanity fail - wrong SupportedRates IE\n"));
- return FALSE;
- }
- else
- NdisMoveMemory(SupRate, &pFrame->Octet[8], *pSupRateLen);
-
- Length = Length + 2 + *pSupRateLen;
-
- // many AP implement proprietary IEs in non-standard order, we'd better
- // tolerate mis-ordered IEs to get best compatibility
- pEid = (PEID_STRUCT) &pFrame->Octet[8 + (*pSupRateLen)];
-
- // get variable fields from payload and advance the pointer
- while ((Length + 2 + pEid->Len) <= MsgLen)
- {
- switch (pEid->Eid)
- {
- case IE_EXT_SUPP_RATES:
- if (pEid->Len <= MAX_LEN_OF_SUPPORTED_RATES)
- {
- NdisMoveMemory(ExtRate, pEid->Octet, pEid->Len);
- *pExtRateLen = pEid->Len;
- }
- break;
-
- case IE_HT_CAP:
- case IE_HT_CAP2:
- if (pEid->Len >= SIZE_HT_CAP_IE) //Note: allow extension.!!
+ COPY_MAC_ADDR(pAddr2, pFrame->Hdr.Addr2);
+ Ptr = (char *)pFrame->Octet;
+ Length += LENGTH_802_11;
+
+ NdisMoveMemory(pCapabilityInfo, &pFrame->Octet[0], 2);
+ Length += 2;
+ NdisMoveMemory(pStatus, &pFrame->Octet[2], 2);
+ Length += 2;
+ *pCkipFlag = 0;
+ *pExtRateLen = 0;
+ pEdcaParm->bValid = FALSE;
+
+ if (*pStatus != MLME_SUCCESS)
+ return TRUE;
+
+ NdisMoveMemory(pAid, &pFrame->Octet[4], 2);
+ Length += 2;
+
+ /* Aid already swaped byte order in RTMPFrameEndianChange() for big endian platform */
+ *pAid = (*pAid) & 0x3fff; /* AID is low 14-bit */
+
+ /* -- get supported rates from payload and advance the pointer */
+ IeType = pFrame->Octet[6];
+ *pSupRateLen = pFrame->Octet[7];
+ if ((IeType != IE_SUPP_RATES)
+ || (*pSupRateLen > MAX_LEN_OF_SUPPORTED_RATES)) {
+ DBGPRINT(RT_DEBUG_TRACE,
+ ("PeerAssocRspSanity fail - wrong SupportedRates IE\n"));
+ return FALSE;
+ } else
+ NdisMoveMemory(SupRate, &pFrame->Octet[8], *pSupRateLen);
+
+ Length = Length + 2 + *pSupRateLen;
+
+ /* many AP implement proprietary IEs in non-standard order, we'd better */
+ /* tolerate mis-ordered IEs to get best compatibility */
+ pEid = (struct rt_eid *) & pFrame->Octet[8 + (*pSupRateLen)];
+
+ /* get variable fields from payload and advance the pointer */
+ while ((Length + 2 + pEid->Len) <= MsgLen) {
+ switch (pEid->Eid) {
+ case IE_EXT_SUPP_RATES:
+ if (pEid->Len <= MAX_LEN_OF_SUPPORTED_RATES) {
+ NdisMoveMemory(ExtRate, pEid->Octet, pEid->Len);
+ *pExtRateLen = pEid->Len;
+ }
+ break;
+
+ case IE_HT_CAP:
+ case IE_HT_CAP2:
+ if (pEid->Len >= SIZE_HT_CAP_IE) /*Note: allow extension! */
{
- NdisMoveMemory(pHtCapability, pEid->Octet, SIZE_HT_CAP_IE);
+ NdisMoveMemory(pHtCapability, pEid->Octet,
+ SIZE_HT_CAP_IE);
- *(USHORT *)(&pHtCapability->HtCapInfo) = cpu2le16(*(USHORT *)(&pHtCapability->HtCapInfo));
- *(USHORT *)(&pHtCapability->ExtHtCapInfo) = cpu2le16(*(USHORT *)(&pHtCapability->ExtHtCapInfo));
+ *(u16 *) (&pHtCapability->HtCapInfo) =
+ cpu2le16(*(u16 *)
+ (&pHtCapability->HtCapInfo));
+ *(u16 *) (&pHtCapability->ExtHtCapInfo) =
+ cpu2le16(*(u16 *)
+ (&pHtCapability->ExtHtCapInfo));
*pHtCapabilityLen = SIZE_HT_CAP_IE;
+ } else {
+ DBGPRINT(RT_DEBUG_WARN,
+ ("PeerAssocRspSanity - wrong IE_HT_CAP. \n"));
}
- else
- {
- DBGPRINT(RT_DEBUG_WARN, ("PeerAssocRspSanity - wrong IE_HT_CAP. \n"));
- }
-
- break;
- case IE_ADD_HT:
- case IE_ADD_HT2:
- if (pEid->Len >= sizeof(ADD_HT_INFO_IE))
- {
- // This IE allows extension, but we can ignore extra bytes beyond our knowledge , so only
- // copy first sizeof(ADD_HT_INFO_IE)
- NdisMoveMemory(pAddHtInfo, pEid->Octet, sizeof(ADD_HT_INFO_IE));
- *(USHORT *)(&pAddHtInfo->AddHtInfo2) = cpu2le16(*(USHORT *)(&pAddHtInfo->AddHtInfo2));
- *(USHORT *)(&pAddHtInfo->AddHtInfo3) = cpu2le16(*(USHORT *)(&pAddHtInfo->AddHtInfo3));
+ break;
+ case IE_ADD_HT:
+ case IE_ADD_HT2:
+ if (pEid->Len >= sizeof(struct rt_add_ht_info_ie)) {
+ /* This IE allows extension, but we can ignore extra bytes beyond our knowledge , so only */
+ /* copy first sizeof(struct rt_add_ht_info_ie) */
+ NdisMoveMemory(pAddHtInfo, pEid->Octet,
+ sizeof(struct rt_add_ht_info_ie));
+
+ *(u16 *) (&pAddHtInfo->AddHtInfo2) =
+ cpu2le16(*(u16 *)
+ (&pAddHtInfo->AddHtInfo2));
+ *(u16 *) (&pAddHtInfo->AddHtInfo3) =
+ cpu2le16(*(u16 *)
+ (&pAddHtInfo->AddHtInfo3));
*pAddHtInfoLen = SIZE_ADD_HT_INFO_IE;
- }
- else
- {
- DBGPRINT(RT_DEBUG_WARN, ("PeerAssocRspSanity - wrong IE_ADD_HT. \n"));
+ } else {
+ DBGPRINT(RT_DEBUG_WARN,
+ ("PeerAssocRspSanity - wrong IE_ADD_HT. \n"));
}
- break;
- case IE_SECONDARY_CH_OFFSET:
- if (pEid->Len == 1)
- {
+ break;
+ case IE_SECONDARY_CH_OFFSET:
+ if (pEid->Len == 1) {
*pNewExtChannelOffset = pEid->Octet[0];
+ } else {
+ DBGPRINT(RT_DEBUG_WARN,
+ ("PeerAssocRspSanity - wrong IE_SECONDARY_CH_OFFSET. \n"));
}
- else
- {
- DBGPRINT(RT_DEBUG_WARN, ("PeerAssocRspSanity - wrong IE_SECONDARY_CH_OFFSET. \n"));
+ break;
+
+ case IE_VENDOR_SPECIFIC:
+ /* handle WME PARAMTER ELEMENT */
+ if (NdisEqualMemory(pEid->Octet, WME_PARM_ELEM, 6)
+ && (pEid->Len == 24)) {
+ u8 *ptr;
+ int i;
+
+ /* parsing EDCA parameters */
+ pEdcaParm->bValid = TRUE;
+ pEdcaParm->bQAck = FALSE; /* pEid->Octet[0] & 0x10; */
+ pEdcaParm->bQueueRequest = FALSE; /* pEid->Octet[0] & 0x20; */
+ pEdcaParm->bTxopRequest = FALSE; /* pEid->Octet[0] & 0x40; */
+ /*pEdcaParm->bMoreDataAck = FALSE; // pEid->Octet[0] & 0x80; */
+ pEdcaParm->EdcaUpdateCount =
+ pEid->Octet[6] & 0x0f;
+ pEdcaParm->bAPSDCapable =
+ (pEid->Octet[6] & 0x80) ? 1 : 0;
+ ptr = (u8 *)& pEid->Octet[8];
+ for (i = 0; i < 4; i++) {
+ u8 aci = (*ptr & 0x60) >> 5; /* b5~6 is AC INDEX */
+ pEdcaParm->bACM[aci] = (((*ptr) & 0x10) == 0x10); /* b5 is ACM */
+ pEdcaParm->Aifsn[aci] = (*ptr) & 0x0f; /* b0~3 is AIFSN */
+ pEdcaParm->Cwmin[aci] = *(ptr + 1) & 0x0f; /* b0~4 is Cwmin */
+ pEdcaParm->Cwmax[aci] = *(ptr + 1) >> 4; /* b5~8 is Cwmax */
+ pEdcaParm->Txop[aci] = *(ptr + 2) + 256 * (*(ptr + 3)); /* in unit of 32-us */
+ ptr += 4; /* point to next AC */
+ }
}
- break;
- case IE_AIRONET_CKIP:
- // 0. Check Aironet IE length, it must be larger or equal to 28
- // Cisco's AP VxWork version(will not be supported) used this IE length as 28
- // Cisco's AP IOS version used this IE length as 30
- if (pEid->Len < (CKIP_NEGOTIATION_LENGTH - 2))
- break;
-
- // 1. Copy CKIP flag byte to buffer for process
- *pCkipFlag = *(pEid->Octet + 8);
- break;
-
- case IE_AIRONET_IPADDRESS:
- if (pEid->Len != 0x0A)
- break;
-
- // Get Cisco Aironet IP information
- if (NdisEqualMemory(pEid->Octet, CISCO_OUI, 3) == 1)
- NdisMoveMemory(pAd->StaCfg.AironetIPAddress, pEid->Octet + 4, 4);
- break;
-
- // CCX2, WMM use the same IE value
- // case IE_CCX_V2:
- case IE_VENDOR_SPECIFIC:
- // handle WME PARAMTER ELEMENT
- if (NdisEqualMemory(pEid->Octet, WME_PARM_ELEM, 6) && (pEid->Len == 24))
- {
- PUCHAR ptr;
- int i;
-
- // parsing EDCA parameters
- pEdcaParm->bValid = TRUE;
- pEdcaParm->bQAck = FALSE; // pEid->Octet[0] & 0x10;
- pEdcaParm->bQueueRequest = FALSE; // pEid->Octet[0] & 0x20;
- pEdcaParm->bTxopRequest = FALSE; // pEid->Octet[0] & 0x40;
- //pEdcaParm->bMoreDataAck = FALSE; // pEid->Octet[0] & 0x80;
- pEdcaParm->EdcaUpdateCount = pEid->Octet[6] & 0x0f;
- pEdcaParm->bAPSDCapable = (pEid->Octet[6] & 0x80) ? 1 : 0;
- ptr = &pEid->Octet[8];
- for (i=0; i<4; i++)
- {
- UCHAR aci = (*ptr & 0x60) >> 5; // b5~6 is AC INDEX
- pEdcaParm->bACM[aci] = (((*ptr) & 0x10) == 0x10); // b5 is ACM
- pEdcaParm->Aifsn[aci] = (*ptr) & 0x0f; // b0~3 is AIFSN
- pEdcaParm->Cwmin[aci] = *(ptr+1) & 0x0f; // b0~4 is Cwmin
- pEdcaParm->Cwmax[aci] = *(ptr+1) >> 4; // b5~8 is Cwmax
- pEdcaParm->Txop[aci] = *(ptr+2) + 256 * (*(ptr+3)); // in unit of 32-us
- ptr += 4; // point to next AC
- }
- }
-
- // handle CCX IE
- else
- {
- // 0. Check the size and CCX admin control
- if (pAd->StaCfg.CCXControl.field.Enable == 0)
- break;
- if (pEid->Len != 5)
- break;
-
- // Turn CCX2 if matched
- if (NdisEqualMemory(pEid->Octet, Ccx2IeInfo, 5) == 1)
- pAd->StaCfg.CCXEnable = TRUE;
- break;
- }
- break;
-
- default:
- DBGPRINT(RT_DEBUG_TRACE, ("PeerAssocRspSanity - ignore unrecognized EID = %d\n", pEid->Eid));
- break;
- }
-
- Length = Length + 2 + pEid->Len;
- pEid = (PEID_STRUCT)((UCHAR*)pEid + 2 + pEid->Len);
- }
-
- // Force CCX2 enable to TRUE for those AP didn't replay CCX v2 IE, we still force it to be on
- if (pAd->StaCfg.CCXControl.field.Enable == 1)
- pAd->StaCfg.CCXEnable = TRUE;
-
- return TRUE;
+ break;
+ default:
+ DBGPRINT(RT_DEBUG_TRACE,
+ ("PeerAssocRspSanity - ignore unrecognized EID = %d\n",
+ pEid->Eid));
+ break;
+ }
+
+ Length = Length + 2 + pEid->Len;
+ pEid = (struct rt_eid *) ((u8 *) pEid + 2 + pEid->Len);
+ }
+
+ return TRUE;
}
/*
@@ -306,47 +254,46 @@ BOOLEAN PeerAssocRspSanity(
==========================================================================
*/
-BOOLEAN PeerProbeReqSanity(
- IN PRTMP_ADAPTER pAd,
- IN VOID *Msg,
- IN ULONG MsgLen,
- OUT PUCHAR pAddr2,
- OUT CHAR Ssid[],
- OUT UCHAR *pSsidLen)
+BOOLEAN PeerProbeReqSanity(struct rt_rtmp_adapter *pAd,
+ void * Msg,
+ unsigned long MsgLen,
+ u8 *pAddr2,
+ char Ssid[], u8 * pSsidLen)
{
- UCHAR Idx;
- UCHAR RateLen;
- CHAR IeType;
- PFRAME_802_11 pFrame = (PFRAME_802_11)Msg;
-
- COPY_MAC_ADDR(pAddr2, pFrame->Hdr.Addr2);
-
- if ((pFrame->Octet[0] != IE_SSID) || (pFrame->Octet[1] > MAX_LEN_OF_SSID))
- {
- DBGPRINT(RT_DEBUG_TRACE, ("PeerProbeReqSanity fail - wrong SSID IE(Type=%d,Len=%d)\n",pFrame->Octet[0],pFrame->Octet[1]));
- return FALSE;
- }
-
- *pSsidLen = pFrame->Octet[1];
- NdisMoveMemory(Ssid, &pFrame->Octet[2], *pSsidLen);
-
- Idx = *pSsidLen + 2;
-
- // -- get supported rates from payload and advance the pointer
- IeType = pFrame->Octet[Idx];
- RateLen = pFrame->Octet[Idx + 1];
- if (IeType != IE_SUPP_RATES)
- {
- DBGPRINT(RT_DEBUG_TRACE, ("PeerProbeReqSanity fail - wrong SupportRates IE(Type=%d,Len=%d)\n",pFrame->Octet[Idx],pFrame->Octet[Idx+1]));
- return FALSE;
- }
- else
- {
- if ((pAd->CommonCfg.PhyMode == PHY_11G) && (RateLen < 8))
- return (FALSE);
- }
-
- return TRUE;
+ u8 Idx;
+ u8 RateLen;
+ char IeType;
+ struct rt_frame_802_11 * pFrame = (struct rt_frame_802_11 *) Msg;
+
+ COPY_MAC_ADDR(pAddr2, pFrame->Hdr.Addr2);
+
+ if ((pFrame->Octet[0] != IE_SSID)
+ || (pFrame->Octet[1] > MAX_LEN_OF_SSID)) {
+ DBGPRINT(RT_DEBUG_TRACE,
+ ("PeerProbeReqSanity fail - wrong SSID IE(Type=%d,Len=%d)\n",
+ pFrame->Octet[0], pFrame->Octet[1]));
+ return FALSE;
+ }
+
+ *pSsidLen = pFrame->Octet[1];
+ NdisMoveMemory(Ssid, &pFrame->Octet[2], *pSsidLen);
+
+ Idx = *pSsidLen + 2;
+
+ /* -- get supported rates from payload and advance the pointer */
+ IeType = pFrame->Octet[Idx];
+ RateLen = pFrame->Octet[Idx + 1];
+ if (IeType != IE_SUPP_RATES) {
+ DBGPRINT(RT_DEBUG_TRACE,
+ ("PeerProbeReqSanity fail - wrong SupportRates IE(Type=%d,Len=%d)\n",
+ pFrame->Octet[Idx], pFrame->Octet[Idx + 1]));
+ return FALSE;
+ } else {
+ if ((pAd->CommonCfg.PhyMode == PHY_11G) && (RateLen < 8))
+ return (FALSE);
+ }
+
+ return TRUE;
}
/*
@@ -357,62 +304,58 @@ BOOLEAN PeerProbeReqSanity(
==========================================================================
*/
-BOOLEAN GetTimBit(
- IN CHAR *Ptr,
- IN USHORT Aid,
- OUT UCHAR *TimLen,
- OUT UCHAR *BcastFlag,
- OUT UCHAR *DtimCount,
- OUT UCHAR *DtimPeriod,
- OUT UCHAR *MessageToMe)
+BOOLEAN GetTimBit(char * Ptr,
+ u16 Aid,
+ u8 * TimLen,
+ u8 * BcastFlag,
+ u8 * DtimCount,
+ u8 * DtimPeriod, u8 * MessageToMe)
{
- UCHAR BitCntl, N1, N2, MyByte, MyBit;
- CHAR *IdxPtr;
+ u8 BitCntl, N1, N2, MyByte, MyBit;
+ char *IdxPtr;
- IdxPtr = Ptr;
+ IdxPtr = Ptr;
- IdxPtr ++;
- *TimLen = *IdxPtr;
+ IdxPtr++;
+ *TimLen = *IdxPtr;
- // get DTIM Count from TIM element
- IdxPtr ++;
- *DtimCount = *IdxPtr;
+ /* get DTIM Count from TIM element */
+ IdxPtr++;
+ *DtimCount = *IdxPtr;
- // get DTIM Period from TIM element
- IdxPtr++;
- *DtimPeriod = *IdxPtr;
+ /* get DTIM Period from TIM element */
+ IdxPtr++;
+ *DtimPeriod = *IdxPtr;
- // get Bitmap Control from TIM element
- IdxPtr++;
- BitCntl = *IdxPtr;
+ /* get Bitmap Control from TIM element */
+ IdxPtr++;
+ BitCntl = *IdxPtr;
- if ((*DtimCount == 0) && (BitCntl & 0x01))
- *BcastFlag = TRUE;
- else
- *BcastFlag = FALSE;
+ if ((*DtimCount == 0) && (BitCntl & 0x01))
+ *BcastFlag = TRUE;
+ else
+ *BcastFlag = FALSE;
- // Parse Partial Virtual Bitmap from TIM element
- N1 = BitCntl & 0xfe; // N1 is the first bitmap byte#
- N2 = *TimLen - 4 + N1; // N2 is the last bitmap byte#
+ /* Parse Partial Virtual Bitmap from TIM element */
+ N1 = BitCntl & 0xfe; /* N1 is the first bitmap byte# */
+ N2 = *TimLen - 4 + N1; /* N2 is the last bitmap byte# */
- if ((Aid < (N1 << 3)) || (Aid >= ((N2 + 1) << 3)))
- *MessageToMe = FALSE;
- else
- {
- MyByte = (Aid >> 3) - N1; // my byte position in the bitmap byte-stream
- MyBit = Aid % 16 - ((MyByte & 0x01)? 8:0);
+ if ((Aid < (N1 << 3)) || (Aid >= ((N2 + 1) << 3)))
+ *MessageToMe = FALSE;
+ else {
+ MyByte = (Aid >> 3) - N1; /* my byte position in the bitmap byte-stream */
+ MyBit = Aid % 16 - ((MyByte & 0x01) ? 8 : 0);
- IdxPtr += (MyByte + 1);
+ IdxPtr += (MyByte + 1);
- //if (*IdxPtr)
- // DBGPRINT(RT_DEBUG_WARN, ("TIM bitmap = 0x%02x\n", *IdxPtr));
+ /*if (*IdxPtr) */
+ /* DBGPRINT(RT_DEBUG_WARN, ("TIM bitmap = 0x%02x\n", *IdxPtr)); */
- if (*IdxPtr & (0x01 << MyBit))
- *MessageToMe = TRUE;
- else
- *MessageToMe = FALSE;
- }
+ if (*IdxPtr & (0x01 << MyBit))
+ *MessageToMe = TRUE;
+ else
+ *MessageToMe = FALSE;
+ }
- return TRUE;
+ return TRUE;
}
-