⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zdinlinef.h

📁 ZYDAS zd1211b driver for Linux2.4
💻 H
📖 第 1 页 / 共 2 页
字号:
#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 + -