📄 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 voidCal_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 longCfg_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 = 0; u16 NextLenInUs = 0; 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) { write_str(DbgStr101, EnCipher); } if (bMgtFrame) { if ((FrameType == PROBE_RSP) || (FrameType == PROBE_REQ)) { // Ensure Site-Survey smooth if(PURE_A_MODE != pCardSettting->MacMode) { Rate = RATE_1M; Preamble = 0; } else if(PURE_A_MODE == pCardSettting->MacMode) { Rate = RATE_6M; Preamble =1; } } } if (FrameType == PS_POLL) { // For compatibility with D-Link AP if(PURE_A_MODE != pCardSettting->MacMode) { Rate = RATE_1M; Preamble = 0; } else if(PURE_A_MODE == pCardSettting->MacMode) { Rate = RATE_6M;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -