📄 zdinlinef.h
字号:
#ifndef _ZD_INLINEF_H
#define _ZD_INLINEF_H
#include "zd1205.h"
#include "zdglobal.h"
#include "zddebug.h"
#define write_str(a,b)
extern zd_80211Obj_t dot11Obj;
#if defined(OFDM)
extern u8 OfdmRateTbl_11A[12];
extern u8 OfdmRateTbl[12];
#endif
__inline void
Cal_Us_Service(
u8 TxRate,
u16 Len,
u16 *pLenInUs,
u8 *pService
)
{
u32 Remainder;
u32 Delta;
#if defined(OFDM)
*(pService) = 0x00;
#endif
switch(TxRate){
case RATE_1M: /* 1M bps */
*(pLenInUs) = Len << 3;
break;
case RATE_2M: /* 2M bps */
*(pLenInUs) = Len << 2;
break;
case RATE_5M: /* 5.5M bps */
*(pLenInUs) = (u16)(((u32)Len << 4)/11);
Remainder = (((u32)Len << 4) % 11);
if ( Remainder ){
*(pLenInUs) += 1;
}
break;
case RATE_11M: /* 11M bps */
*(pLenInUs) = (u16)(((u32)Len << 3)/11);
Remainder = (((u32)Len << 3) % 11);
Delta = 11 - Remainder;
if ( Remainder ){
*(pLenInUs) += 1;
if ( Delta >= 8 ){
*(pService) |= BIT_7;
}
}
break;
#if !(defined(GCCK) && defined(OFDM))
case RATE_16M: // 16.5M bps
*(pLenInUs) = (u16)(((u32)Len << 4)/33);
Remainder = (((u32)Len << 4) % 33);
Delta = 33 - Remainder;
if ( Remainder ){
*(pLenInUs) += 1;
if ( Delta < 16 ){
}
else if ( (Delta >= 16) && (Delta < 32) ){
*(pService) |= BIT_7;
}
else if ( Delta >= 32 ){
*(pService) |= BIT_6;
}
}
break;
case RATE_22M: // 22M bps
*(pLenInUs) = (u16)(((u32)Len << 2)/11);
Remainder = (((u32)Len << 2) % 11);
Delta = 11 - Remainder;
if ( Remainder ){
*(pLenInUs) += 1;
if ( Delta < 4 ){
}
else if ( (Delta >= 4) && (Delta < 8) ){
*(pService) |= BIT_7;
}
else if ( Delta >= 8 ){
*(pService) |= BIT_6;
}
}
break;
case RATE_27M: // 27.5 bps
*(pLenInUs) = (u16)(((u32)Len << 4)/55);
Remainder = (((u32)Len << 4) % 55);
Delta = 55 - Remainder;
if ( Remainder ){
*(pLenInUs) += 1;
if ( Delta < 16 ){
}
else if ( (Delta >= 16) && (Delta < 32) ){
*(pService) |= BIT_7;
}
else if ( (Delta >= 32) && (Delta < 48) ){
*(pService) |= BIT_6;
}
else if ( Delta >= 48 ){
*(pService) |= (BIT_6 | BIT_7);
}
}
break;
case RATE_33M: // 33M bps
*(pLenInUs) = (u16)(((u32)Len << 3)/33);
Remainder = (((u32)Len << 3) % 33);
Delta = 33 - Remainder;
if ( Remainder ){
*(pLenInUs) += 1;
if ( Delta < 8 ){
}
else if ( (Delta >= 8) && (Delta < 16) ){
*(pService) |= BIT_7;
}
else if ( (Delta >= 16) && (Delta < 24) ){
*(pService) |= BIT_6;
}
else if ( (Delta >= 24) && (Delta < 32) ){
*(pService) |= (BIT_6 | BIT_7);
}
else if ( Delta >= 32 ){
*(pService) |= BIT_5;
}
}
break;
case RATE_38M: // 38.5M bps
*(pLenInUs) = (u16)(((u32)Len << 4)/77);
Remainder = (((u32)Len << 4) % 77);
Delta = 77 - Remainder;
if ( Remainder ){
*(pLenInUs) += 1;
if ( Delta < 16 ){
}
else if ( (Delta >= 16) && (Delta < 32) ){
*(pService) |= BIT_7;
}
else if ( (Delta >= 32) && (Delta < 48) ){
*(pService) |= BIT_6;
}
else if ( (Delta >= 48) && (Delta < 64) ){
*(pService) |= (BIT_6 | BIT_7);
}
else if ( Delta >= 64){
*(pService) |= BIT_5;
}
}
break;
case RATE_44M: // 44M bps
*(pLenInUs) = (u16)(((u32)Len << 1)/11);
Remainder = (((u32)Len << 1) % 11);
Delta = 11 - Remainder;
if ( Remainder ){
*(pLenInUs) += 1;
if ( Delta < 2 ){
}
else if ( (Delta >= 2) && (Delta < 4) ){
*(pService) |= BIT_7;
}
else if ( (Delta >= 4) && (Delta < 6) ){
*(pService) |= BIT_6;
}
else if ( (Delta >= 6) && (Delta < 8) ){
*(pService) |= (BIT_6 | BIT_7);
}
else if ( (Delta >= 8) && (Delta < 10) ){
*(pService) |= BIT_5;
}
else if ( Delta >= 10 ){
*(pService) |= (BIT_5 | BIT_7);
}
}
break;
case RATE_49M: // 49.5M bps
*(pLenInUs) = (u16)(((u32)Len << 4)/99);
Remainder = (((u32)Len << 4) % 99);
Delta = 99 - Remainder;
if ( Remainder ){
*(pLenInUs) += 1;
if ( Delta < 16 ){
}
else if ( (Delta >= 16) && (Delta < 32) ){
*(pService) |= BIT_7;
}
else if ( (Delta >= 32) && (Delta < 48) ){
*(pService) |= BIT_6;
}
else if ( (Delta >= 48) && (Delta < 64) ){
*(pService) |= (BIT_6 | BIT_7);
}
else if ( (Delta >= 64) && (Delta < 80) ){
*(pService) |= BIT_5;
}
else if ( (Delta >= 80) && (Delta < 96) ){
*(pService) |= (BIT_5 | BIT_7);
}
else if ( Delta >= 96 ){
*(pService) |= (BIT_5 | BIT_6);
}
}
break;
case RATE_55M: // 55M bps
*(pLenInUs) = (u16)(((u32)Len << 3)/55);
Remainder = (((u32)Len << 3) % 55);
Delta = 55 - Remainder;
if ( Remainder ){
*(pLenInUs) += 1;
if ( Delta < 8 ){
}
else if ( (Delta >= 8) && (Delta < 16) ){
*(pService) |= BIT_7;
}
else if ( (Delta >= 16) && (Delta < 24) ){
*(pService) |= BIT_6;
}
else if ( (Delta >= 24) && (Delta < 32) ){
*(pService) |= (BIT_6 | BIT_7);
}
else if ( (Delta >= 32) && (Delta < 40) ){
*(pService) |= BIT_5;
}
else if ( (Delta >= 40) && (Delta < 48) ){
*(pService) |= (BIT_5 | BIT_7);
}
else if ( Delta >= 48 ){
*(pService) |= (BIT_5 | BIT_6);
}
}
break;
case RATE_60M: // 60.5M bps
*(pLenInUs) = (u16)(((u32)Len << 4)/121);
Remainder = (((u32)Len << 4) % 121);
Delta = 121 - Remainder;
if ( Remainder ){
*(pLenInUs) += 1;
if ( Delta < 16 ){
}
else if ( (Delta >= 16) && (Delta < 32) ){
*(pService) |= BIT_7;
}
else if ( (Delta >= 32) && (Delta < 48) ){
*(pService) |= BIT_6;
}
else if ( (Delta >= 48) && (Delta < 64) ){
*(pService) |= (BIT_6 | BIT_7);
}
else if ( (Delta >= 64) && (Delta < 80) ){
*(pService) |= BIT_5;
}
else if ( (Delta >= 80) && (Delta < 96) ){
*(pService) |= (BIT_5 | BIT_7);
}
else if ( (Delta >= 96) && (Delta < 112) ){
*(pService) |= (BIT_5 | BIT_6);
}
else if ( Delta >= 112 ){
*(pService) |= (BIT_5 | BIT_6 | BIT_7);
}
}
break;
case 13: // 8.25M bps
*(pLenInUs) = (u16)(((u32)Len * 32)/33);
Remainder = (((u32)Len * 32) % 33);
Delta = 33 - Remainder;
if ( Remainder ){
*(pLenInUs) += 1;
if (Delta < 32){
}
else {
*(pService) |= BIT_7;
}
}
break;
#else
case RATE_6M: // 6M
*(pLenInUs) = (u16)(((u32)Len << 3)/6);
break;
case RATE_9M: // 9M
*(pLenInUs) = (u16)(((u32)Len << 3)/9);
break;
case RATE_12M: // 12M
*(pLenInUs) = (u16)(((u32)Len << 3)/12);
break;
case RATE_18M: // 18M
*(pLenInUs) = (u16)(((u32)Len << 3)/18);
break;
case RATE_24M: // 24M
*(pLenInUs) = (u16)(((u32)Len << 3)/24);
break;
case RATE_36M: // 36M
*(pLenInUs) = (u16)(((u32)Len << 3)/36);
break;
case RATE_48M: // 48M
*(pLenInUs) = (u16)(((u32)Len << 3)/48);
break;
case RATE_54M: // 54M
*(pLenInUs) = (u16)(((u32)Len << 3)/54);
break;
#endif
default:
printk(KERN_ERR "zd1205: Invalid RF module parameter\n");
}
}
char DbgStr100[]="TKIP:";
char DbgStr101[]="CtrlSetting";
char DbgStr102[]="EncryType";
#define CTRL_SIZE 25
__inline unsigned long
Cfg_CtrlSetting(
struct zd1205_private *macp,
zd1205_SwTcb_t *pSwTcb,
wla_Header_t *pWlaHdr,
ctrl_Set_parm_t *pSetParms
)
{
zd1205_Ctrl_Set_t *pCtrlSet = pSwTcb->pHwCtrlPtr;
u8 tmp;
u16 Len = 0;
u16 NextLen = 0;
u16 LenInUs;
u16 NextLenInUs;
u8 Service;
u8 TxRate;
u8 Rate = pSetParms->Rate;
u8 Preamble = pSetParms->Preamble;
u32 CurrFragLen = pSetParms->CurrFragLen;
u32 NextFragLen = pSetParms->NextFragLen;
u8 encryType = pSetParms->encryType;
//u8 vapId = pSetParms->vapId;
u8 bMgtFrame = 0;
u8 bGroupAddr = 0;
u8 EnCipher = ((pWlaHdr->FrameCtrl[1] & ENCRY_BIT) ? 1 : 0);
u16 FragNum = (pWlaHdr->SeqCtrl[0] & 0x0F);
card_Setting_t *pCardSettting = &macp->cardSetting;
u16 FrameType = pWlaHdr->FrameCtrl[0];
u8 bBusrt = 0;
#ifdef ZD1211B
u8 LengthDiff=0;
#endif
memset(pCtrlSet,0,sizeof(zd1205_Ctrl_Set_t));
if (Rate > macp->AdapterMaxRate)
Rate = macp->AdapterMaxRate;
if ((FrameType & 0x0c) == MANAGEMENT){
bMgtFrame = 1;
Rate = dot11Obj.BasicRate;
}
if ((FrameType & 0x0c) == DATA){
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -