亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? zddebug.c

?? GW-US54GXS_Linux_v2.15.0.0_CE zd1211原碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
						CamEncryType = WEP64;
						tmpDynKeyMode=DYN_KEY_WEP64;
					}
					else
					{//keylen=13, WEP 128
						CamEncryType = WEP128;
						tmpDynKeyMode=DYN_KEY_WEP128;
					}
// For Dynamic WEP key (Non-WPA Radius), the key ID range: 0-3
// In WPA/RSN mode, the key ID range: 1-3, usually, a broadcast key.
// For WEP key setting: we set mDynKeyMode and mKeyFormat in following case:
//   1. For 802.1x dynamically generated WEP key method.
//   2. For WPA/RSN mode, but key id == 0. (But this is an impossible case)
// So, only check case 1.
					if (macp->cardSetting.WPAIeLen==0)
					{
						mKeyFormat = CamEncryType;
						mDynKeyMode = pSetting->DynKeyMode = tmpDynKeyMode;
						mPrivacyInvoked=TRUE;
						mCap |= CAP_PRIVACY;
						macp->cardSetting.EncryOnOff=1;
					}
				}
				/* DUMP key context */
#ifdef WPA_DEBUG
				if (keylen > 0)
				{
					int ii;
					printk("zddebug:Key Context:\n");
					for(ii = 0; ii < keylen;) {
						printk("0x%02x ", pkey[ii]);
						if((++ii % 16) == 0)
							printk("\n");
					}
					printk("\n");
				}
#endif
				zd_SetKeyInfo(zdparm->sta_addr, CamEncryType, keylen, idx, pkey);
				break;

#if 0
				WPADEBUG("zd1205_wpa_ioctl: ZD_CMD_SET_ENCRYPT_KEY\n");

				/* DUMP the Key information set by the upper layer */
				{
					WPADEBUG("alg=%s key_idx=%d set_tx=%d key_len=%d\n",
						zdparm->u.crypt.alg, zdparm->u.crypt.idx,
						zdparm->u.crypt.flags, zdparm->u.crypt.key_len);
				}

				keylen = zdparm->u.crypt.key_len;
				idx = zdparm->u.crypt.idx;
				pkey = zdparm->u.crypt.key;

				if (strcmp(zdparm->u.crypt.alg, "NONE") == 0) {
					/* Reset those settings related to WPA */
                                        mKeyFormat=0;
                                        pSetting->EncryMode=0;
					pSetting->DynKeyMode = 0;
					return ret;
				}
				else if (strcmp(zdparm->u.crypt.alg, "TKIP") == 0) {
					/* Try to change mDynKeyMode here. 4D06 */
					pSetting->DynKeyMode = DYN_KEY_TKIP;
					mDynKeyMode = DYN_KEY_TKIP;
                                        mKeyFormat = TKIP;
				}
				else if (strcmp(zdparm->u.crypt.alg, "CCMP") == 0) {
					/* Try to change mDynKeyMode here. 4D06 */
					pSetting->DynKeyMode = DYN_KEY_AES;
					mDynKeyMode = DYN_KEY_AES;
                                        mKeyFormat = AES;
				}

				/* DUMP key context */
				{
					int ii;

					WPADEBUG("Key Context: ");
					for(ii = 0; ii < keylen;) {
						WPADEBUG("0x%02x ", pkey[ii]);
						
						if((++ii % 16) == 0)
							WPADEBUG("\n");
					}
					WPADEBUG("\n");
				}

				/* If Key Index is 0, this is the unicast key */
				if (idx == 0) {
					/* Set unicast key installed information */
					zd_SetKeyContext(&macp->BSSID[0], pSetting->DynKeyMode, keylen, idx, pkey);
				}
				else {
					/* Set broadcast key installed information */
					u8 bcaddr[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
					
					zd_SetKeyContext(bcaddr, pSetting->DynKeyMode, keylen, idx, pkey);
				}
				
				break;
#endif
		case ZD_CMD_SET_MLME:
				WPADEBUG("zd1205_wpa_ioctl: ZD_CMD_SET_MLME\n");

                /* Translate STA's address */
                sprintf(mac_addr, "%02x:%02x:%02x:%02x:%02x:%02x", zdparm->sta_addr[0], zdparm->sta_addr[1],
                    zdparm->sta_addr[2], zdparm->sta_addr[3], zdparm->sta_addr[4], zdparm->sta_addr[5]);

                switch(zdparm->u.mlme.cmd) {
                    case MLME_STA_DEAUTH:
                                                printk(" -------Call zd_CmdDeauth, reason:%d\n",zdparm->u.mlme.reason_code);
                        if(zd_CmdDeauth((MacAddr_t *) zdparm->sta_addr, zdparm->u.mlme.reason_code) == FALSE)
                            WPADEBUG("Can't deauthencate STA: %s\n", mac_addr);
                        else
                            WPADEBUG("Deauthenticate STA: %s with reason code: %d\n", mac_addr, zdparm->u.mlme.reason_code);
                        break;

                    case MLME_STA_DISASSOC:
                        if(zd_CmdDisasoc((MacAddr_t *) zdparm->sta_addr, zdparm->u.mlme.reason_code) == FALSE)
                            WPADEBUG("Can't disassociate STA: %s\n", mac_addr);
                        else
                            WPADEBUG("Disassociate STA: %s with reason code: %d\n", mac_addr, zdparm->u.mlme.reason_code);
                        break;

                    default:
                        WPADEBUG("MLME command: 0x%04x not support\n", zdparm->u.mlme.cmd);
                        break;
                }


				break;

		case ZD_CMD_SCAN_REQ:
				WPADEBUG("zd1205_wpa_ioctl: ZD_CMD_SCAN_REQ\n");
				break;

		case ZD_CMD_SET_GENERIC_ELEMENT:
				WPADEBUG("zd1205_wpa_ioctl: ZD_CMD_SET_GENERIC_ELEMENT\n");
				
				/* Copy the WPA IE */
				pSetting->WPAIeLen = zdparm->u.generic_elem.len;
				memcpy(&pSetting->WPAIe, zdparm->u.generic_elem.data, pSetting->WPAIeLen);

				{
					int ii;
					
					WPADEBUG("pSetting->WPAIeLen: %d\n", pSetting->WPAIeLen);

					/* DUMP WPA IE */
					for(ii = 0; ii < pSetting->WPAIeLen;) {
						WPADEBUG("0x%02x ", pSetting->WPAIe[ii]);
						
						if((++ii % 16) == 0)
							WPADEBUG("\n");
					}
					WPADEBUG("\n");
				}
#if CODE4_AP
			#ifdef HOSTAPD_SUPPORT
				if (pSetting->BssType == AP_BSS)
				{// Update Beacon FIFO in the next TBTT.
					memcpy(&mWPAIe, pSetting->WPAIe, pSetting->WPAIeLen);
					WPADEBUG("Copy WPA IE into mWPAIe\n");
				}
			#endif
#endif

				break;

		default:
				WPADEBUG("zd1205_wpa_ioctl: default\n");
				ret = -EINVAL;
				break;
	}

	return ret;
}
int zd1205_cont_tx(struct zd1205_private *macp, u8 rate) {

			void *reg = dot11Obj.reg;
			static u8 LastCont_TX_Rate=0;
            printk(KERN_ERR "ZDContinuousTx,Rate=%d\n",rate);

            //if (le32_to_cpu(pZDRD->ZDRdLength) < sizeof(ZD_RD_STRUCT))
            //{
            //   pZDRD->ZDRdLength = cpu_to_le32(sizeof(ZD_RD_STRUCT));
            //    *BytesNeeded = sizeof(ZD_RD_STRUCT);
            //    *BytesRead = 0;
            //    Status = NDIS_STATUS_BUFFER_TOO_SHORT;
            //    break;
            //}

            //macp->bContinueTxMode = le32_to_cpu(pZDRD->Buffer[0]);
            //macp->bContinueTx = le32_to_cpu(pZDRD->Buffer[1]);

            /* Use the Fixed Rate instead of LastSentTxRate */
            //macp->LastZDContinuousTxRate = macp->cardSetting.LastSentTxRate;
            //macp->LastZDContinuousTxRate = macp->cardSetting.FixedRate;

            // Roger 2004-11-10 , Set for Dr.Wang request , set 0x0001c4 when CCK mode with AL2230
            if (dot11Obj.rfMode == AL2230_RF) {
                //if (macp->cardSetting.LastSentTxRate > 3) {
                if (LastCont_TX_Rate > 3) {
                    HW_Set_IF_Synthesizer(&dot11Obj, 0x0005a4);
                }
                //else if (macp->cardSetting.LastSentTxRate <= 3) {
                else if (LastCont_TX_Rate <= 3) {
                    HW_Set_IF_Synthesizer(&dot11Obj, 0x0001c4);
                }
            }
			LastCont_TX_Rate = rate;

            if(rate <= RATE_54M) {  // Start
                u8	tmpChr = 0;
                u32	RateTmp= 0;
                u32	tmpvalue;
                u32	nLoop;
                LockPhyReg(&dot11Obj);
                dot11Obj.SetReg(reg, ZD1205_CR2, 0x3F);
                dot11Obj.SetReg(reg, ZD1205_CR138, 0x28);
                dot11Obj.SetReg(reg, ZD1205_CR33, 0x20);
                // Query CR60 until change to 0x04
                nLoop = 200;
                while(nLoop--)
                {
                    dot11Obj.DelayUs(10*1000); // sleep 10ms
                    tmpvalue = dot11Obj.GetReg(reg, ZD1205_CR60);

                    if(tmpvalue == 0x04)
                        break;
                }

                UnLockPhyReg(&dot11Obj);

                    printk(KERN_DEBUG "Start ContTx_Normal\n");

                    dot11Obj.bContinueTx = 1;
                    LockPhyReg(&dot11Obj);
                    /* In order to avoid the uninitial length problem,
                       force to set length to 0x20.
                     */
                    dot11Obj.SetReg(reg, ZD1205_CR134, 0x20);
					UnLockPhyReg(&dot11Obj);

                    switch (rate){
                    case RATE_6M: //6M
                            RateTmp = 0xB;
                            break;
                    case RATE_9M: //9M
                            RateTmp = 0xF;
                            break;
                    case RATE_12M: //12M
                            RateTmp = 0xA;
                            break;
                    case RATE_18M: //18M
                            RateTmp = 0xE;
                            break;
                    case RATE_24M: //24M
                            RateTmp = 0x9;
                            break;
                    case RATE_36M: //36M
                            RateTmp = 0xD;
                            break;

                    case RATE_48M:   //48M
                            RateTmp = 0x8;
                            break;

                    case RATE_54M:   //54M
                            RateTmp = 0xC;
                            break;

                    default:
                            RateTmp = 0;
                            break;
                    }

                    printk(KERN_DEBUG "RateTmp=0x%08x\n", RateTmp);

                    if (RateTmp){
						LockPhyReg(&dot11Obj);
                        dot11Obj.SetReg(reg, ZD1205_CR132, RateTmp);

                        //AcquireCtrOfPhyReg(Adapter);
                        tmpvalue = dot11Obj.GetReg(reg, ZD1205_CR159);
                        tmpvalue &= ~(BIT_0 + BIT_1 );
                        tmpvalue |= BIT_2;
                        dot11Obj.SetReg(reg, ZD1205_CR159, tmpvalue);


                        dot11Obj.SetReg(reg, 0x644, 7);

                        tmpvalue = dot11Obj.GetReg(reg, 0x648);
                        tmpvalue &= ~BIT_0;
                        dot11Obj.SetReg(reg, 0x648, tmpvalue);
						UnLockPhyReg(&dot11Obj);

                    }

                    tmpChr = LastCont_TX_Rate;
                    printk(KERN_DEBUG "tmpChr=0x%x\n", tmpChr);

                    #if 0
                    if (macp->preambleMode == 1)
                        macp->cardSetting.PreambleType = 0x00;
                    else if (macp->preambleMode == 2)
                        macp->cardSetting.PreambleType = 0x20;
                    #endif

                    if (macp->cardSetting.PreambleType == SHORT_PREAMBLE){
                        // short premable
                        tmpChr |= BIT_5;
                    }
                    else{
                        // long premable
                        tmpChr &= ~BIT_5;
                    }

                    if (macp->RegionCode == 0x10)
                        tmpChr &= ~BIT_6;   //USA
                    if (macp->RegionCode == 0x40)
                        tmpChr |= BIT_6;    //japan

					LockPhyReg(&dot11Obj);
                    dot11Obj.SetReg(reg, ZD1205_CR5, tmpChr);
                    dot11Obj.SetReg(reg, 0x644, 3);
					UnLockPhyReg(&dot11Obj);
            }
            else {
                u32	tmpvalue;

                // Roger 2004-11-10 , Set for Dr.Wang request , set 0x0001c4 when CCK mode with AL2230
                if (dot11Obj.rfMode == AL2230_RF) {
                    HW_Set_IF_Synthesizer(&dot11Obj, 0x0005a4);
                }

                LockPhyReg(&dot11Obj);
                dot11Obj.SetReg(reg, ZD1205_CR2, 0x26);
                dot11Obj.SetReg(reg, ZD1205_CR138, 0xA8);
                dot11Obj.SetReg(reg, ZD1205_CR33, 0x08);
                UnLockPhyReg(&dot11Obj);
                        printk(KERN_DEBUG "Stop Normal Continuous Transmit\n");

                        dot11Obj.bContinueTx = 0;
                        LockPhyReg(&dot11Obj);
                        macp->PHYTestTimer = 30;
//                      ZD1205_WRITE_REGISTER(Adapter,CR122, 0x0);
                        UnLockPhyReg(&dot11Obj);

                        if (LastCont_TX_Rate >= 4){
                            LockPhyReg(&dot11Obj);
                            tmpvalue = dot11Obj.GetReg(reg, ZD1205_CR159);
                            tmpvalue &= ~(BIT_0 + BIT_1 + BIT_2 );
                            dot11Obj.SetReg(reg, ZD1205_CR159, tmpvalue);

                            dot11Obj.SetReg(reg, 0x644, 0);

                            tmpvalue = dot11Obj.GetReg(reg, 0x648);
                            tmpvalue |= BIT_0;
                            dot11Obj.SetReg(reg, 0x648, tmpvalue);
							UnLockPhyReg(&dot11Obj);

                        }
                        else{
							LockPhyReg(&dot11Obj);
                            dot11Obj.SetReg(reg, 0x644, 0);

                            tmpvalue = dot11Obj.GetReg(reg, 0x648);
                            tmpvalue |= BIT_0;
                            dot11Obj.SetReg(reg, 0x648, tmpvalue);
							UnLockPhyReg(&dot11Obj);
                        }

                //dot11Obj.SetReg(reg, ZD_PS_Ctrl, 0x1);
                //Roger 2004-11-16 SoftwareReset here to solve RX fail after TxContinue problem
				{
                	//zd1205_device_reset(macp);
					//Card resetting , copying from driver of ZyNOS
					//It's a little different from ours
				    u32  tmp_value;
    				/* Update the value of Beacon Interval and Pre TBTT */
				    update_beacon_interval(macp, 0x2);
				    zd_writel(0x01, Pre_TBTT);
					
					LockPhyReg(&dot11Obj);
					dot11Obj.SetReg(dot11Obj.reg, ZD1205_PHY_END, 0x8);
				    tmp_value = zd_readl(PS_Ctrl);
				    zd_writel(tmp_value | BIT_5, PS_Ctrl);
					dot11Obj.SetReg(dot11Obj.reg, ZD1205_PHY_END, 0x0);
					UnLockPhyReg(&dot11Obj);

				    dot11Obj.bDeviceInSleep = 1;
					dot11Obj.DelayUs(5000);
				}
            }

	return 0;
}

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丰满少妇久久久久久久| av午夜一区麻豆| 国产精品欧美久久久久无广告| av一区二区三区四区| 日本免费新一区视频| 国产人成一区二区三区影院| 欧美日本一道本| 91免费小视频| 一本色道久久综合狠狠躁的推荐| 精品亚洲免费视频| 五月激情综合网| 色一区在线观看| 在线观看www91| 91一区二区在线| 国产成人激情av| 国产成人综合在线| 国产精选一区二区三区| 免费人成精品欧美精品| 蜜臀av性久久久久蜜臀av麻豆| 一区二区免费在线| 中文字幕在线观看一区| 中文字幕一区二区三中文字幕| 国产欧美视频一区二区| 国产亚洲一本大道中文在线| 久久品道一品道久久精品| xnxx国产精品| 国产喂奶挤奶一区二区三区| 欧美精品一区二| 日韩一区二区电影网| 欧美一区二区三区免费| 日韩精品一区二区三区swag| 精品少妇一区二区三区在线视频| 国产视频一区在线观看| 亚洲va韩国va欧美va精品| 欧美一区二区日韩| 日韩欧美一区二区不卡| 91精品福利在线| 91视视频在线直接观看在线看网页在线看| 国产精品亚洲人在线观看| 国产成人精品aa毛片| 91丨porny丨国产入口| 在线国产亚洲欧美| 日韩欧美一区在线| 国产日韩欧美激情| 国产精品不卡视频| 亚洲一区二区三区在线播放| 亚洲大型综合色站| 亚洲成av人片一区二区| 激情综合色综合久久| youjizz国产精品| 欧美写真视频网站| 久久你懂得1024| 亚洲免费观看高清| 日本va欧美va精品发布| 欧美aaa在线| 懂色av一区二区夜夜嗨| 91福利国产精品| 美女免费视频一区二区| 岛国精品一区二区| 欧美日韩一区三区四区| 日韩美女一区二区三区四区| 2020日本不卡一区二区视频| 一区二区三区资源| 男男视频亚洲欧美| 成人激情小说乱人伦| 日韩小视频在线观看专区| 国产精品午夜免费| 久久精品噜噜噜成人av农村| 日韩国产精品91| 91蜜桃网址入口| 精品国产乱码久久久久久老虎| 亚洲福利一区二区三区| 国产精品77777| 日韩一区国产二区欧美三区| 国产精品国产自产拍在线| 免费精品99久久国产综合精品| eeuss影院一区二区三区| 日韩一区二区免费视频| 亚洲午夜免费电影| 97超碰欧美中文字幕| 日韩欧美123| 久久精品久久99精品久久| 在线观看成人免费视频| 中文字幕一区二区在线观看 | 国产精品888| 欧美成人video| 国产精一区二区三区| 中文字幕欧美国产| 91免费视频观看| 亚洲成av人在线观看| 欧美精品丝袜久久久中文字幕| 五月天精品一区二区三区| 在线不卡免费av| 美女脱光内衣内裤视频久久网站 | 91福利社在线观看| 亚洲国产欧美在线| 日韩亚洲国产中文字幕欧美| 激情综合一区二区三区| 国产精品久久久久久久久搜平片| 972aa.com艺术欧美| 午夜视频在线观看一区二区| 欧美电影免费观看高清完整版在线| 国产一区二区三区黄视频 | 99久久精品国产导航| 一区二区三区四区五区视频在线观看 | 欧美二区三区91| 国产麻豆精品在线观看| 亚洲色欲色欲www| 日韩亚洲欧美中文三级| 国产精品一卡二卡在线观看| 欧美国产日产图区| 国产老妇另类xxxxx| 亚洲国产精品黑人久久久| 91在线看国产| 26uuu精品一区二区| 色综合久久中文综合久久牛| 亚洲精品国久久99热| 欧美群妇大交群中文字幕| 日本不卡一区二区三区| 精品处破学生在线二十三| 91浏览器在线视频| 青青国产91久久久久久| 久久久国产一区二区三区四区小说| 成人一级视频在线观看| 一区二区三区欧美激情| 欧美三级电影在线观看| 国产综合久久久久久久久久久久| 国产丝袜美腿一区二区三区| 91麻豆国产福利精品| 亚洲va欧美va人人爽午夜| 欧美一区二区三区视频在线观看| 99视频一区二区| 日韩电影在线看| 1区2区3区欧美| 欧美大白屁股肥臀xxxxxx| 成人av在线影院| 国产成人综合在线| 日韩中文字幕不卡| 日韩理论在线观看| 精品裸体舞一区二区三区| 91社区在线播放| jlzzjlzz亚洲日本少妇| 日韩福利视频导航| 亚洲欧美日韩久久| 欧美激情在线免费观看| 欧美二区在线观看| 717成人午夜免费福利电影| 粉嫩久久99精品久久久久久夜| 亚洲成a人片综合在线| 中文字幕免费观看一区| 日韩精品专区在线| 精品日韩一区二区| 欧美图片一区二区三区| 成人午夜精品在线| 国产福利一区二区三区| 久久狠狠亚洲综合| 国产老妇另类xxxxx| 欧美96一区二区免费视频| 亚洲国产毛片aaaaa无费看| 欧美激情一区二区三区不卡| 欧美mv日韩mv国产网站app| 久久久久久久久伊人| 日韩美女天天操| 欧美一级高清大全免费观看| 在线观看日韩高清av| 暴力调教一区二区三区| 色综合久久天天| www.99精品| 99久久er热在这里只有精品66| 春色校园综合激情亚洲| 国内精品免费**视频| 久久99久久99精品免视看婷婷| 免费观看在线综合| 免费精品视频最新在线| 免费成人在线网站| jizzjizzjizz欧美| 91蜜桃在线观看| 欧美色图第一页| 91超碰这里只有精品国产| 精品人在线二区三区| 日韩精品一区二区三区在线| 欧美精品一区二区三区一线天视频 | 成人伦理片在线| 99久久国产综合精品色伊| 91久久精品一区二区三| 欧美午夜电影一区| 久久尤物电影视频在线观看| 久久精品人人做| 亚洲欧美一区二区视频| 一区二区三区在线视频免费| 五月婷婷综合在线| 成人app在线观看| 91精品91久久久中77777| 欧美中文字幕一区二区三区亚洲 | 国产人成亚洲第一网站在线播放| 亚洲黄色免费网站| 免费的成人av| 成人av网站在线观看| 777午夜精品视频在线播放| 国产视频视频一区|