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

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

?? sync.c

?? RT73_Linux_STA_Drv1.0.3.6 linux系統下
?? C
?? 第 1 頁 / 共 5 頁
字號:

        // leave PSM during scanning. otherwise we may lost ProbeRsp & BEACON
        if (pAd->PortCfg.Psm == PWR_SAVE)
            MlmeSetPsmBit(pAd, PWR_ACTIVE);
        
        AsicSwitchChannel(pAd, pAd->MlmeAux.Channel);
        AsicLockChannel(pAd, pAd->MlmeAux.Channel);
       
        // G band - set BBP_R62 to 0x02 when site survey or rssi<-82
		// A band - always set BBP_R62 to 0x04
        if (pAd->MlmeAux.Channel <= 14)
        {       
		    //
			// For the high power and False CCA issue.(Gary)
			//	
			RTUSBWriteBBPRegister(pAd, BBP_R62, 0x04);
			RTUSBWriteBBPRegister(pAd, 17, pAd->BbpTuning.R17LowerBoundG);        }      
        else
        {
            if ((pAd->PortCfg.bIEEE80211H == 1) && RadarChannelCheck(pAd, pAd->MlmeAux.Channel))
			    ScanType = SCAN_PASSIVE;
          
        	RTUSBWriteBBPRegister(pAd, 17, pAd->BbpTuning.R17LowerBoundA);        
        	RTUSBWriteBBPRegister(pAd, BBP_R62, 0x04);
        }
        
        
		// We need to shorten active scan time in order for WZC connect issue
		// Chnage the channel scan time for CISCO stuff based on its IAPP announcement
        if (ScanType == FAST_SCAN_ACTIVE)
        {
			RTMPSetTimer(pAd, &pAd->MlmeAux.ScanTimer, FAST_ACTIVE_SCAN_TIME);
        }
        else // must be SCAN_PASSIVE or SCAN_ACTIVE
        {
        	if (pAd->PortCfg.PhyMode == PHY_11ABG_MIXED)
				RTMPSetTimer(pAd, &pAd->MlmeAux.ScanTimer, MIN_CHANNEL_TIME);
			else
			    RTMPSetTimer(pAd, &pAd->MlmeAux.ScanTimer, MAX_CHANNEL_TIME);
        }

	if ((pAd->MlmeAux.Channel == 34) || (pAd->MlmeAux.Channel == 38) || 
	    (pAd->MlmeAux.Channel == 42) || (pAd->MlmeAux.Channel == 46))
	{
			ScanType = SCAN_PASSIVE;
	}
	
        if ((ScanType == SCAN_ACTIVE) || (ScanType == FAST_SCAN_ACTIVE))
        {
            NStatus = MlmeAllocateMemory(pAd, (PVOID)&pOutBuffer);  //Get an unused nonpaged memory
            if (NStatus != NDIS_STATUS_SUCCESS)
            {
    	        DBGPRINT(RT_DEBUG_TRACE, "SYNC - ScanNextChannel() allocate memory fail\n");
        	    pAd->Mlme.SyncMachine.CurrState = SYNC_IDLE;
        	    Status = MLME_FAIL_NO_RESOURCE;
                MlmeEnqueue(pAd, MLME_CNTL_STATE_MACHINE, MT2_SCAN_CONF, 2, &Status);
	            return;
    	    }

    		// There is no need to send broadcast probe request if active scan is in effect.
            SsidLen = pAd->MlmeAux.SsidLen;
   
   	if (pAd->MlmeAux.Channel <= 14)
	{
		// B&G band use 1,2,5.5,11
		pSupRate = pAd->PortCfg.SupRate;
		SupRateLen = pAd->PortCfg.SupRateLen;
		pExtRate = pAd->PortCfg.ExtRate;
		ExtRateLen = pAd->PortCfg.ExtRateLen;
	}
	else    // A band use OFDM rate
	{
		//
		// Overwrite Support Rate, CCK rate are not allowed
		//
		pSupRate = ASupRate;
		SupRateLen = ASupRateLen;
		ExtRateLen = 0;				
	}


    	    MgtMacHeaderInit(pAd, &Hdr80211, SUBTYPE_PROBE_REQ, 0, BROADCAST_ADDR, BROADCAST_ADDR);
            MakeOutgoingFrame(pOutBuffer,               &FrameLen,
                              sizeof(HEADER_802_11),    &Hdr80211,
                              1,                        &SsidIe,
                              1,                        &SsidLen,
                              SsidLen,			pAd->MlmeAux.Ssid,
                              1,                        &SupRateIe,
                              1,                        &SupRateLen,
	                      SupRateLen,  		pSupRate,
                              END_OF_ARGS);

            if (ExtRateLen)
            {
                ULONG Tmp;
            	MakeOutgoingFrame(pOutBuffer + FrameLen,        &Tmp,
                                  1,                            &ExtRateIe,
                                  1,                            &ExtRateLen,
                                  ExtRateLen,      		pExtRate, 
                                  END_OF_ARGS);
            	FrameLen += Tmp;
            }

            // add Simple Config Information Element
            if (pAd->PortCfg.bWscCapable && pAd->PortCfg.WscIEProbeReq.ValueLen)
            {
                ULONG WscTmpLen = 0;

                MakeOutgoingFrame(pOutBuffer+FrameLen,                      &WscTmpLen,
                                  pAd->PortCfg.WscIEProbeReq.ValueLen,      pAd->PortCfg.WscIEProbeReq.Value,
                                  END_OF_ARGS);
                FrameLen += WscTmpLen;
            }


            if (pAd->PortCfg.bGetAPConfig) 
            {
                UCHAR RalinkSpecificIEForGetCfg[6] = {IE_VENDOR_SPECIFIC, 4, 0x00, 0x0c, 0x43, 0x80};
                ULONG Tmp = 0;
                MakeOutgoingFrame(pOutBuffer + FrameLen,        &Tmp,
                                  6,                            RalinkSpecificIEForGetCfg,
                                  END_OF_ARGS);
                FrameLen += Tmp;
            }

            MiniportMMRequest(pAd, pOutBuffer, FrameLen);
            
            DBGPRINT(RT_DEBUG_INFO, "SYNC - send ProbeReq @ channel=%d, Len=%d\n", pAd->MlmeAux.Channel, FrameLen);
        }

		// For SCAN_CISCO_PASSIVE, do nothing and silently wait for beacon or other probe reponse
 	
        pAd->Mlme.SyncMachine.CurrState = SCAN_LISTEN;
    }
}

/* 
    ==========================================================================
    Description:
    ==========================================================================
 */
VOID InvalidStateWhenScan(
    IN PRTMP_ADAPTER pAd, 
    IN MLME_QUEUE_ELEM *Elem) 
{
    USHORT  Status;
    DBGPRINT(RT_DEBUG_TRACE, "AYNC - InvalidStateWhenScan(state=%d). Reset SYNC machine\n", pAd->Mlme.SyncMachine.CurrState);
    pAd->Mlme.SyncMachine.CurrState = SYNC_IDLE;
    Status = MLME_STATE_MACHINE_REJECT;
    MlmeEnqueue(pAd, MLME_CNTL_STATE_MACHINE, MT2_SCAN_CONF, 2, &Status);
}

/* 
    ==========================================================================
    Description:
    ==========================================================================
 */
VOID InvalidStateWhenJoin(
    IN PRTMP_ADAPTER pAd, 
    IN MLME_QUEUE_ELEM *Elem) 
{
    USHORT  Status;
    
    DBGPRINT(RT_DEBUG_TRACE, "AYNC - InvalidStateWhenJoin(state=%d). Reset SYNC machine\n", pAd->Mlme.SyncMachine.CurrState);
    pAd->Mlme.SyncMachine.CurrState = SYNC_IDLE;
    Status = MLME_STATE_MACHINE_REJECT;
    MlmeEnqueue(pAd, MLME_CNTL_STATE_MACHINE, MT2_JOIN_CONF, 2, &Status);
}

/* 
    ==========================================================================
    Description:
    ==========================================================================
 */
VOID InvalidStateWhenStart(
    IN PRTMP_ADAPTER pAd, 
    IN MLME_QUEUE_ELEM *Elem) 
{
    USHORT  Status;
    
    DBGPRINT(RT_DEBUG_TRACE, "AYNC - InvalidStateWhenStart(state=%d). Reset SYNC machine\n", pAd->Mlme.SyncMachine.CurrState);
    pAd->Mlme.SyncMachine.CurrState = SYNC_IDLE;
    Status = MLME_STATE_MACHINE_REJECT;
    MlmeEnqueue(pAd, MLME_CNTL_STATE_MACHINE, MT2_START_CONF, 2, &Status);
}

/* 
    ==========================================================================
    Description:
    	
    ==========================================================================
 */
VOID EnqueuePsPoll(
    IN PRTMP_ADAPTER pAd) 
{
    DBGPRINT(RT_DEBUG_TRACE, "SYNC - send PsPoll ...\n");
    MiniportMMRequest(pAd, (PUCHAR)&pAd->PsPollFrame, sizeof(PSPOLL_FRAME));
}

// 2003-04-17 john
// driver force send out a BEACON frame to cover ADHOC mode BEACON starving issue
// that is, in ADHOC mode, driver guarantee itself can send out at least a BEACON
// per a specified duration, even the peer's clock is faster than us and win all the
// hardware-based BEACON TX oppertunity. 
// we may remove this software feature once 2560 IC fix this problem in ASIC.
VOID EnqueueBeaconFrame(
    IN PRTMP_ADAPTER pAd) 
{

    PTXD_STRUC		pTxD;
#ifdef BIG_ENDIAN
    PTXD_STRUC      pDestTxD;
    TXD_STRUC       TxD;
#endif
    PCHAR           pBeaconFrame = pAd->BeaconBuf;
    PUCHAR			pOutBuffer = NULL;
    LARGE_INTEGER   Tsf;
    NDIS_STATUS		NStatus;

#ifndef BIG_ENDIAN
	pTxD = &pAd->BeaconTxD;
#else
    pDestTxD  = &pAd->BeaconTxD;
    TxD = *pDestTxD;
    pTxD = &TxD;
    RTMPDescriptorEndianChange((PUCHAR)pTxD, TYPE_TXD);
#endif
    DBGPRINT(RT_DEBUG_TRACE, "SYNC - driver sent BEACON (len=%d)...\n",pTxD->DataByteCnt);

    NStatus = MlmeAllocateMemory(pAd, (PVOID)&pOutBuffer);  //Get an unused nonpaged memory
	if (NStatus != NDIS_STATUS_SUCCESS) 
	{
		DBGPRINT(RT_DEBUG_TRACE, "EnqueueBeaconFrame allocate memory fail\n");
		return;
	}
	
    RTUSBReadMACRegister(pAd, TXRX_CSR13, &Tsf.vv.HighPart);
    RTUSBReadMACRegister(pAd, TXRX_CSR12, &Tsf.vv.LowPart);
    
    // TODO: not good if porting to big endian platform - TSF byte order ???
    NdisMoveMemory(pBeaconFrame + sizeof(HEADER_802_11), &Tsf, TIMESTAMP_LEN);
	NdisMoveMemory(pOutBuffer, pBeaconFrame, 256);
	MiniportMMRequest(pAd, pOutBuffer, pTxD->DataByteCnt);
	
#ifdef BIG_ENDIAN
    RTMPDescriptorEndianChange((PUCHAR)pTxD, TYPE_TXD);
    WriteBackToDescriptor((PUCHAR)pDestTxD, (PUCHAR)pTxD, FALSE, TYPE_TXD);
#endif

}

/* 
    ==========================================================================
    Description:
    ==========================================================================
 */
VOID EnqueueProbeRequest(
    IN PRTMP_ADAPTER pAd) 
{
    PUCHAR          pOutBuffer;
    ULONG           FrameLen = 0;
    HEADER_802_11   Hdr80211;
    USHORT          NStatus;
    
    DBGPRINT(RT_DEBUG_TRACE, "force out a ProbeRequest ...\n");
    

    NStatus = MlmeAllocateMemory(pAd, (PVOID)&pOutBuffer);  //Get an unused nonpaged memory
    if (NStatus != NDIS_STATUS_SUCCESS)
    {
        DBGPRINT(RT_DEBUG_TRACE, "EnqueueProbeRequest() allocate memory fail\n");
        return;
    }    
    else
    {
        MgtMacHeaderInit(pAd, &Hdr80211, SUBTYPE_PROBE_REQ, 0, BROADCAST_ADDR, BROADCAST_ADDR);

		// this ProbeRequest explicitly specify SSID to reduce unwanted ProbeResponse
        MakeOutgoingFrame(pOutBuffer,                     &FrameLen,
                          sizeof(HEADER_802_11),          &Hdr80211,
                          1,                              &SsidIe,
                          1,                              &pAd->PortCfg.SsidLen,
                          pAd->PortCfg.SsidLen,		      pAd->PortCfg.Ssid,
                          1,                              &SupRateIe,
                          1,                              &pAd->ActiveCfg.SupRateLen,
                          pAd->ActiveCfg.SupRateLen,      pAd->ActiveCfg.SupRate, 
                          END_OF_ARGS);

        // add Simple Config Information Element
        if (pAd->PortCfg.bWscCapable && pAd->PortCfg.WscIEProbeReq.ValueLen) 
        {
            ULONG WscTmpLen = 0;

            MakeOutgoingFrame(pOutBuffer+FrameLen,                   &WscTmpLen,
        		              pAd->PortCfg.WscIEProbeReq.ValueLen,   pAd->PortCfg.WscIEProbeReq.Value,
                              END_OF_ARGS);
            FrameLen += WscTmpLen;
        }

	    if (pAd->PortCfg.bGetAPConfig)         
	    {            
	 	    UCHAR RalinkSpecificIEForGetCfg[6] = {IE_VENDOR_SPECIFIC, 4, 0x00, 0x0c, 0x43, 0x80};            
		    ULONG Tmp = 0;            
		    MakeOutgoingFrame(pOutBuffer + FrameLen,        &Tmp,                              
			                  6,                            RalinkSpecificIEForGetCfg,                              
			                  END_OF_ARGS);            
		FrameLen += Tmp;        
	    }	
	 
        MiniportMMRequest(pAd, pOutBuffer, FrameLen);
    }
    
}

/* 
    ==========================================================================
    Description:
        Update PortCfg->ChannelList[] according to 1) Country Region 2) RF IC type,
        and 3) PHY-mode user selected.
        The outcome is used by driver when doing site survey.
    ============================================

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲mv在线观看| 91国产免费观看| 日韩一区二区三区观看| 中文字幕一区二区三区不卡在线| 欧美日韩亚洲丝袜制服| www.日韩精品| 中文字幕中文字幕在线一区| 91麻豆精品国产综合久久久久久| 一区二区高清免费观看影视大全| 成人av电影在线播放| 亚洲视频 欧洲视频| 久久女同性恋中文字幕| 91免费看视频| 国产99久久久国产精品免费看| 成人免费视频一区| 日本一区二区免费在线| 欧美一区二区三区不卡| 欧美视频在线一区| 久久综合五月天婷婷伊人| 日本精品免费观看高清观看| 精品免费99久久| 日韩欧美一区在线| ww久久中文字幕| 中文字幕一区二区三区视频| 亚洲六月丁香色婷婷综合久久| 亚洲四区在线观看| 亚洲人成电影网站色mp4| 久久精品人人做人人综合| 亚洲一区在线观看免费观看电影高清 | 亚洲欧洲一区二区三区| 亚洲精品国产无套在线观| 天堂成人免费av电影一区| 在线观看免费亚洲| 国产人成亚洲第一网站在线播放 | 九九**精品视频免费播放| 欧美国产一区在线| 国产黄人亚洲片| 成人精品一区二区三区中文字幕| 91麻豆国产福利在线观看| 欧美伦理影视网| 国产精品久久久久久久浪潮网站| 中文字幕制服丝袜成人av| 日韩av一级片| 日韩免费在线观看| 一个色综合网站| 粉嫩av亚洲一区二区图片| 国产亚洲精品免费| 免费观看日韩电影| 欧美在线三级电影| 日韩精品五月天| 色综合天天综合在线视频| 久久免费看少妇高潮| 在线精品视频一区二区三四| 国产亚洲女人久久久久毛片| 国产麻豆精品在线观看| 日韩欧美在线不卡| 成人欧美一区二区三区小说| kk眼镜猥琐国模调教系列一区二区| 欧美激情中文字幕| 久久国产精品无码网站| 日韩免费高清电影| 免费观看在线色综合| 日韩午夜中文字幕| 毛片一区二区三区| 国产蜜臀97一区二区三区| 成人美女视频在线观看| 欧美一区二区三区啪啪| 亚洲国产精品麻豆| 国产成人av电影在线观看| 中文字幕一区二区日韩精品绯色| 不卡的电视剧免费网站有什么| 国产精品日产欧美久久久久| 欧美午夜在线观看| 国产精品久久三区| 欧美另类z0zxhd电影| 亚洲国产视频在线| 日本视频一区二区| 成人精品视频一区| xfplay精品久久| 色综合久久九月婷婷色综合| 国产一二三精品| 一级女性全黄久久生活片免费| 久久―日本道色综合久久| 麻豆精品在线视频| 日韩国产精品久久| 亚洲一区二区三区四区五区黄| 日韩欧美的一区二区| 日韩一区二区三区av| 欧美性大战xxxxx久久久| 国产一区二区久久| 国产成人精品一区二 | 欧美日韩一区二区三区四区五区 | 国产一区 二区 三区一级| 久久一二三国产| 久久久91精品国产一区二区精品| 欧美一区在线视频| 欧美午夜寂寞影院| 欧美v亚洲v综合ⅴ国产v| 久久天天做天天爱综合色| 粉嫩嫩av羞羞动漫久久久| 成人综合日日夜夜| 国产精品1区2区3区| 免费成人在线网站| 亚洲欧洲日本在线| |精品福利一区二区三区| 国产精品久久久久桃色tv| 欧美一区二区三区白人| 久久精子c满五个校花| 久久综合五月天婷婷伊人| 久久久久国产一区二区三区四区| 中文字幕+乱码+中文字幕一区| 777亚洲妇女| 日韩免费看的电影| 国产女主播视频一区二区| 在线视频你懂得一区| 日本精品视频一区二区| 欧美群妇大交群中文字幕| 91国偷自产一区二区开放时间| 欧美日韩中文精品| 成人免费高清视频在线观看| 91丝袜美女网| 久久影院电视剧免费观看| 亚洲在线观看免费| 成人国产在线观看| 精品国产乱码久久久久久浪潮| 国产日本一区二区| 亚洲国产日韩一级| 欧美精品粉嫩高潮一区二区| 中文字幕成人网| 日本一二三四高清不卡| 性久久久久久久| 色综合久久综合网欧美综合网 | 亚洲欧美激情插| 日本一区二区三区电影| 国产精品电影院| 亚洲精品成人a在线观看| 亚洲18女电影在线观看| 国产白丝精品91爽爽久久| 欧美国产日韩在线观看| 免费在线视频一区| 欧美成人伊人久久综合网| 日韩有码一区二区三区| 18欧美亚洲精品| av一区二区三区黑人| 91精品国产丝袜白色高跟鞋| 中文字幕乱码亚洲精品一区| 久久精品国产亚洲一区二区三区| 99精品国产热久久91蜜凸| 4438x亚洲最大成人网| 国产麻豆视频一区| 欧美精品一区在线观看| 日韩三级在线免费观看| 亚洲激情成人在线| 91麻豆精品国产91久久久| 石原莉奈一区二区三区在线观看| 成人av免费在线| 久久久噜噜噜久久中文字幕色伊伊| 国内精品自线一区二区三区视频| 欧美电视剧免费全集观看| 日韩av一区二区三区| 久久蜜桃av一区二区天堂| 日韩综合小视频| 亚洲欧美日韩电影| 欧美mv和日韩mv的网站| 成人av电影在线网| 亚洲成人黄色影院| 色综合天天性综合| 国产麻豆精品视频| 亚洲综合激情网| 久久青草国产手机看片福利盒子 | 精品国产一区二区三区av性色| a在线欧美一区| 久久久久九九视频| 99re热这里只有精品视频| 国产又粗又猛又爽又黄91精品| 奇米色777欧美一区二区| 午夜精品久久久久久久久久| 国产精品免费免费| 日韩一级完整毛片| 7777精品伊人久久久大香线蕉最新版 | 国产视频在线观看一区二区三区| 亚洲色图视频免费播放| 九色综合狠狠综合久久| 亚洲三级在线免费| 久久久久久久电影| 久久―日本道色综合久久| 精品国产制服丝袜高跟| 久久综合色一综合色88| 国产精品欧美一区喷水| 亚洲一区欧美一区| 麻豆精品一区二区av白丝在线 | 欧美另类变人与禽xxxxx| 国产**成人网毛片九色| av爱爱亚洲一区| 欧美亚洲国产一卡| 日韩欧美一区二区不卡| 日韩免费高清电影| 久久久99精品免费观看| 国产精品欧美一区喷水| 一区二区三区免费观看|