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

📄 zdshared.c

📁 ZYDAS zd1211b driver for Linux2.4
💻 C
📖 第 1 页 / 共 3 页
字号:
                                body[0] = Reason & 0xff;	//Reason Code                                body[1] = (Reason & 0xff00) >> 8;                                pf->bodyLen = 2;                        }                        void sendProbeRspFrm(MacAddr_t *addr1, U16 BcnInterval, U16 Cap,                                             Element *pSsid, Element *pSupRates, Element *pDsParms,                                             Element *pExtRates, Element *pWpa, U8 vapId) {                                Signal_t *signal;                                FrmDesc_t *pfrmDesc;                                if ((signal = allocSignal()) == NULL)                                        return;                                if ((pfrmDesc = allocFdesc()) == NULL) {                                        freeSignal(signal);                                        return;                                }                                mkProbeRspFrm(pfrmDesc, addr1, BcnInterval, Cap, pSsid, pSupRates, pDsParms,                                              pExtRates, pWpa, vapId);                                sendMgtFrame(signal, pfrmDesc);                        }                        void mkProbeReqFrm(FrmDesc_t* pfrmDesc, MacAddr_t *addr1, Element *pSsid, Element *pSupRates,                                           Element *pExtRates, Element *pWpa, U8 vapId) {                                U8 *body;                                U8 elemLen;                                U16 len;                                Frame_t *pf = pfrmDesc->mpdu;                                setFrameType(pf, ST_PROBE_REQ);                                pf->body = pfrmDesc->buffer;                                body = pf->body;                                setAddr1(pf, addr1);                                setAddr2(pf, &dot11MacAddress);                                setAddr3(pf, &dot11BCAddress);                                pf->HdrLen = MAC_HDR_LNG;                                len = 0;                                if (pSsid->buf[1] > 0) {                                        elemLen = pSsid->buf[1]+2;                                        memcpy(&body[len], (U8 *)pSsid, elemLen); //Extended rates                                        len += elemLen;                                } else {                                        body[0] = pSsid->buf[0];                                        body[1] = 0; //broadcast SSID                                        len += 2;                                }                                elemLen = pSupRates->buf[1]+2;                                memcpy(&body[len], (U8 *)pSupRates, elemLen); //Extended rates                                len += elemLen;                                if ((mMacMode != PURE_A_MODE) && (mMacMode != PURE_B_MODE) && (pExtRates)) {                                        elemLen = pExtRates->buf[1]+2;                                        memcpy(&body[len], (U8 *)pExtRates, elemLen); //Extended rates                                        len += elemLen;                                }                                if ((mDynKeyMode == DYN_KEY_TKIP)  && (pWpa)) {                                        elemLen = pWpa->buf[1]+2;                                        memcpy(&body[len], (U8 *)pWpa, elemLen); //WPA IE                                        len += elemLen;                                }                                pf->bodyLen = len;                        }                        void mkRe_AsocReqFrm(FrmDesc_t* pfrmDesc, TypeSubtype subType, MacAddr_t *addr1,                                             U16 Cap, U16 LisInterval, MacAddr_t *oldAP, Element *pSsid, Element *pSupRates,                                             Element *pExtRates, Element *pWpa, U8 vapId)                        {                                U8 *body;                                U8 elemLen;                                U16 len;                                Frame_t *pf = pfrmDesc->mpdu;                                setFrameType(pf, subType);                                pf->body = pfrmDesc->buffer;                                body = pf->body;                                setAddr1(pf, addr1);                                setAddr2(pf, &dot11MacAddress);                                setAddr3(pf, &mBssId);                                pf->HdrLen = MAC_HDR_LNG;                                body[0] = Cap & 0xff;			//Cap                                body[1] = (Cap & 0xff00) >> 8;                                body[2] = LisInterval & 0xff;	//LisInterval                                body[3] = (LisInterval & 0xff00) >> 8;                                len = 4;                                if (subType == ST_REASOC_REQ) {                                        memcpy(&body[4], oldAP, 6);                                        len = 10;                                }                                elemLen = pSsid->buf[1]+2;                                memcpy(&body[len], (U8 *)pSsid, elemLen); 	//SSID                                len += elemLen;#ifdef DEBUG_DUMP_ASSOC_REQ                                zd1205_dump_data("SSID element:", (U8*) &body[len-elemLen], elemLen);#endif                                elemLen = pSupRates->buf[1]+2;                                memcpy(&body[len], (U8 *)pSupRates, elemLen); //Support Rates                                len += elemLen;#ifdef DEBUG_DUMP_ASSOC_REQ                                zd1205_dump_data("SupportedRate element:", (U8*) &body[len-elemLen], elemLen);#endif                                if ((mMacMode != PURE_B_MODE) && (mMacMode != PURE_A_MODE)&& (pExtRates)) {                                        elemLen = pExtRates->buf[1]+2;                                        memcpy(&body[len], (U8 *)pExtRates, elemLen); //Extended rates                                        len += elemLen;                                }                                // WPA IE                                if (pWpa->buf[1] != 0) {                                        elemLen = pWpa->buf[1]+2;                                        memcpy(&body[len], (U8 *)pWpa, elemLen); // WPA IE                                        len += elemLen;                                }                                pf->bodyLen = len;                        }                        BOOLEAN sendPsPollFrame(Signal_t *signal, FrmDesc_t *pfrmDesc, MacAddr_t *addr1, U16 aid) {                                FrmInfo_t *pfrmInfo;                                Frame_t *pf = pfrmDesc->mpdu;                                setFrameType(pf, ST_PS_POLL);                                setAid(pf, aid);                                setAddr1(pf, addr1);                                setAddr2(pf, &dot11MacAddress);                                pf->HdrLen = 16;                                pf->bodyLen = 0;                                pfrmDesc->ConfigSet |= PS_POLL_SET;                                pfrmDesc->ConfigSet &= ~INTRA_BSS_SET;                                pfrmDesc->ConfigSet &= ~EAPOL_FRAME_SET;                                pfrmDesc->pHash = NULL;                                signal->buf = NULL;                                signal->bDataFrm = 0;                                //pfrmDesc->bDataFrm = 0;                                pfrmInfo = &signal->frmInfo;                                pfrmInfo->frmDesc = pfrmDesc; //make connection for signal and frmDesc                                return SendPkt(signal, pfrmDesc, TRUE);                        }                        BOOLEAN sendNullDataFrame(Signal_t *signal, FrmDesc_t *pfrmDesc, MacAddr_t *addr1) {                                Frame_t *pf = pfrmDesc->mpdu;                                setFrameType(pf, ST_NULL_FRAME);                                pf->header[1] = TO_DS_BIT;                                if (mPwrState) {                                        pf->header[1] |= PW_SAVE_BIT;                                } else                                        pf->header[1] &= ~PW_SAVE_BIT;                                setAddr1(pf, addr1);                                setAddr2(pf, &dot11MacAddress);                                setAddr3(pf, &mBssId);                                pf->HdrLen = MAC_HDR_LNG;                                pf->bodyLen = 0;                                pfrmDesc->ConfigSet &= ~INTRA_BSS_SET;                                pfrmDesc->ConfigSet &= ~EAPOL_FRAME_SET;                                pfrmDesc->pHash = NULL;                                signal->buf = NULL;                                signal->bDataFrm = 1;                                //pfrmDesc->bDataFrm = 0;                                mkFragment(signal, pfrmDesc, NULL);                                return SendPkt(signal, pfrmDesc, TRUE);                        }                        U8 RateConvert(U8 rate) {#if defined(OFDM)                                switch (rate) {                                case 2  :                                        return 0;  // 1M                                case 4  :                                        return 1;  // 2M                                case 11 :                                        return 2;  // 5.5M                                case 22 :                                        return 3;  // 11M                                case 12 :                                        return 4;  // 6M                                case 18 :                                        return 5;  // 9M                                case 24 :                                        return 6;  // 12M                                case 36 :                                        return 7;	// 18M                                case 48 :                                        return 8;	// 24M                                case 72 :                                        return 9;	// 36M                                case 96 :                                        return 0xa;	// 48M                                case 108:                                        return 0xb;	// 54M                                }#else                                switch (rate) {                                case 2  :                                        return 0;  // 1M                                case 4  :                                        return 1;  // 2M                                case 11 :                                        return 2;  // 5.5M                                case 22 :                                        return 3;  // 11M                                case 33 :                                        return 4;  // 16.5M                                case 44 :                                        return 5;  // 22M                                case 55 :                                        return 6;  // 27.5M#if defined(ECCK_60_5)                                case 66 :                                        return 7;  // 33M                                case 77 :                                        return 8;  // 38.5M                                case 88 :                                        return 9;  // 44M                                case 99 :                                        return 10; // 49.5M                                case 110:                                        return 11; // 55M                                case 121:                                        return 12; // 60.5M#endif                                }#endif                                return 3;	// 11M                        }#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -