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

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

?? rtmp_init.c

?? RT73_Linux_STA_Drv1.0.3.6 linux系統下
?? C
?? 第 1 頁 / 共 5 頁
字號:
		{
			kfree( pMLMEContext->TransferBuffer);
			pMLMEContext->TransferBuffer = NULL;
		}
	}
	
	// Free Tx frame resource
	for (acidx = 0; acidx < 4; acidx++)
	{
		for ( i= 0; i < TX_RING_SIZE; i++ )
		{
			PTX_CONTEXT pTxContext = &(pAd->TxContext[acidx][i]);

			if ( NULL != pTxContext->pUrb )
			{
				RTUSB_UNLINK_URB(pTxContext->pUrb);
				if (IsFree)
				usb_free_urb(pTxContext->pUrb);
				pTxContext->pUrb = NULL;
			}
		
			if ( NULL != pTxContext->TransferBuffer )
			{
				kfree( pTxContext->TransferBuffer);
				pTxContext->TransferBuffer = NULL;
			}
		}
	}

	DBGPRINT(RT_DEBUG_TRACE, "<--- ReleaseAdapter\n");

}

/*
	========================================================================
	
	Routine Description:
		Allocate DMA memory blocks for send, receive

	Arguments:
		Adapter		Pointer to our adapter

	Return Value:
		NDIS_STATUS_SUCCESS
		NDIS_STATUS_FAILURE
		NDIS_STATUS_RESOURCES

	Note:
	
	========================================================================
*/
NDIS_STATUS	RTMPInitAdapterBlock(
	IN	PRTMP_ADAPTER	pAd)
{
	NDIS_STATUS		Status=NDIS_STATUS_SUCCESS;
	UINT			i;
	PCmdQElmt		cmdqelmt;

	DBGPRINT(RT_DEBUG_TRACE, "--> RTMPInitAdapterBlock\n");

	// init counter
	pAd->WlanCounters.TransmittedFragmentCount.vv.LowPart =  0;
	pAd->WlanCounters.MulticastTransmittedFrameCount.vv.LowPart =0;
	pAd->WlanCounters.FailedCount.vv.LowPart =0;
	pAd->WlanCounters.NoRetryCount.vv.LowPart =0;
	pAd->WlanCounters.RetryCount.vv.LowPart =0;
	pAd->WlanCounters.MultipleRetryCount.vv.LowPart =0;
	pAd->WlanCounters.RTSSuccessCount.vv.LowPart =0;
	pAd->WlanCounters.RTSFailureCount.vv.LowPart =0;
	pAd->WlanCounters.ACKFailureCount.vv.LowPart =0;
	pAd->WlanCounters.FrameDuplicateCount.vv.LowPart =0;
	pAd->WlanCounters.ReceivedFragmentCount.vv.LowPart =0;
	pAd->WlanCounters.MulticastReceivedFrameCount.vv.LowPart =0;
	pAd->WlanCounters.FCSErrorCount.vv.LowPart =0;

	pAd->WlanCounters.TransmittedFragmentCount.vv.HighPart =  0;
	pAd->WlanCounters.MulticastTransmittedFrameCount.vv.HighPart =0;
	pAd->WlanCounters.FailedCount.vv.HighPart =0;
	pAd->WlanCounters.NoRetryCount.vv.HighPart =0;
	pAd->WlanCounters.RetryCount.vv.HighPart =0;
	pAd->WlanCounters.MultipleRetryCount.vv.HighPart =0;
	pAd->WlanCounters.RTSSuccessCount.vv.HighPart =0;
	pAd->WlanCounters.RTSFailureCount.vv.HighPart =0;
	pAd->WlanCounters.ACKFailureCount.vv.HighPart =0;
	pAd->WlanCounters.FrameDuplicateCount.vv.HighPart =0;
	pAd->WlanCounters.ReceivedFragmentCount.vv.HighPart =0;
	pAd->WlanCounters.MulticastReceivedFrameCount.vv.HighPart =0;
	pAd->WlanCounters.FCSErrorCount.vv.HighPart =0;
	
	do
	{
		for (i = 0; i < COMMAND_QUEUE_SIZE; i++)
		{
			cmdqelmt = &(pAd->CmdQElements[i]);
			NdisZeroMemory(cmdqelmt, sizeof(CmdQElmt));
			cmdqelmt->buffer = NULL;
			cmdqelmt->CmdFromNdis = FALSE;
			cmdqelmt->InUse = FALSE;
		}
		RTUSBInitializeCmdQ(&pAd->CmdQ);

		init_MUTEX(&(pAd->usbdev_semaphore));
		init_MUTEX_LOCKED(&(pAd->mlme_semaphore));
		init_MUTEX_LOCKED(&(pAd->RTUSBCmd_semaphore));
		init_completion (&pAd->notify); 	// event initially non-signalled
		
		////////////////////////
		// Spinlock
		NdisAllocateSpinLock(&pAd->MLMEQLock);
		NdisAllocateSpinLock(&pAd->BulkOutLock[0]);
		NdisAllocateSpinLock(&pAd->BulkOutLock[1]);
		NdisAllocateSpinLock(&pAd->BulkOutLock[2]);
		NdisAllocateSpinLock(&pAd->BulkOutLock[3]);
		NdisAllocateSpinLock(&pAd->CmdQLock);
		NdisAllocateSpinLock(&pAd->SendTxWaitQueueLock[0]);
		NdisAllocateSpinLock(&pAd->SendTxWaitQueueLock[1]);
		NdisAllocateSpinLock(&pAd->SendTxWaitQueueLock[2]);
		NdisAllocateSpinLock(&pAd->SendTxWaitQueueLock[3]);
		NdisAllocateSpinLock(&pAd->DeQueueLock[0]);
		NdisAllocateSpinLock(&pAd->DeQueueLock[1]);
		NdisAllocateSpinLock(&pAd->DeQueueLock[2]);
		NdisAllocateSpinLock(&pAd->DeQueueLock[3]);
		NdisAllocateSpinLock(&pAd->DataQLock[0]);
		NdisAllocateSpinLock(&pAd->DataQLock[1]);
		NdisAllocateSpinLock(&pAd->DataQLock[2]);
		NdisAllocateSpinLock(&pAd->DataQLock[3]);
		
		NdisAllocateSpinLock(&pAd->MLMEWaitQueueLock);

	}	while (FALSE);

	DBGPRINT(RT_DEBUG_TRACE, "<-- RTMPInitAdapterBlock\n");
	
	return Status;
}

NDIS_STATUS	RTUSBWriteHWMACAddress(
	IN	PRTMP_ADAPTER		pAd)
{
	MAC_CSR2_STRUC		StaMacReg0;
	MAC_CSR3_STRUC		StaMacReg1;
	NDIS_STATUS			Status = NDIS_STATUS_SUCCESS;

	if (pAd->bLocalAdminMAC != TRUE)
	{
		pAd->CurrentAddress[0] = pAd->PermanentAddress[0];
		pAd->CurrentAddress[1] = pAd->PermanentAddress[1];
		pAd->CurrentAddress[2] = pAd->PermanentAddress[2];
		pAd->CurrentAddress[3] = pAd->PermanentAddress[3];
		pAd->CurrentAddress[4] = pAd->PermanentAddress[4];
		pAd->CurrentAddress[5] = pAd->PermanentAddress[5];
	}
	// Write New MAC address to MAC_CSR2 & MAC_CSR3 & let ASIC know our new MAC
	StaMacReg0.field.Byte0 = pAd->CurrentAddress[0];
	StaMacReg0.field.Byte1 = pAd->CurrentAddress[1];
	StaMacReg0.field.Byte2 = pAd->CurrentAddress[2];
	StaMacReg0.field.Byte3 = pAd->CurrentAddress[3];
	StaMacReg1.field.Byte4 = pAd->CurrentAddress[4];
	StaMacReg1.field.Byte5 = pAd->CurrentAddress[5];
	StaMacReg1.field.U2MeMask = 0xff;

	DBGPRINT_RAW(RT_DEBUG_TRACE, "Local MAC = %02x:%02x:%02x:%02x:%02x:%02x\n",
			pAd->CurrentAddress[0], pAd->CurrentAddress[1], pAd->CurrentAddress[2],
			pAd->CurrentAddress[3], pAd->CurrentAddress[4], pAd->CurrentAddress[5]);

	RTUSBWriteMACRegister(pAd, MAC_CSR2, StaMacReg0.word);
	RTUSBWriteMACRegister(pAd, MAC_CSR3, StaMacReg1.word);

	return Status;
}

/*
	========================================================================
	
	Routine Description:
		Read initial parameters from EEPROM
		
	Arguments:
		Adapter						Pointer to our adapter

	Return Value:
		None

	Note:
		
	========================================================================
*/
VOID NICReadEEPROMParameters(
	IN	PRTMP_ADAPTER	pAd)
{
	USHORT					i, value, value2;
	EEPROM_ANTENNA_STRUC	Antenna;
	EEPROM_VERSION_STRUC	Version;
	CHAR					ChannelTxPower[MAX_NUM_OF_CHANNELS];
	EEPROM_LED_STRUC		LedSetting;

	DBGPRINT(RT_DEBUG_TRACE, "--> NICReadEEPROMParameters\n");

	//Read MAC address.
	RTUSBReadEEPROM(pAd, EEPROM_MAC_ADDRESS_BASE_OFFSET, pAd->PermanentAddress, MAC_ADDR_LEN);
	DBGPRINT_RAW(RT_DEBUG_TRACE, "Local MAC = %02x:%02x:%02x:%02x:%02x:%02x\n",
			pAd->PermanentAddress[0], pAd->PermanentAddress[1], pAd->PermanentAddress[2],
			pAd->PermanentAddress[3], pAd->PermanentAddress[4], pAd->PermanentAddress[5]);

	// Init the channel number for TX channel power
	// 0. 11b/g
	for (i = 0; i < 14; i++)
		pAd->TxPower[i].Channel = i + 1;
	// 1. UNI 36 - 64
	for (i = 0; i < 8; i++)
		pAd->TxPower[i + 14].Channel = 36 + i * 4;
	// 2. HipperLAN 2 100 - 140
	for (i = 0; i < 11; i++)
		pAd->TxPower[i + 22].Channel = 100 + i * 4;
	// 3. UNI 140 - 165
	for (i = 0; i < 5; i++)
		pAd->TxPower[i + 33].Channel = 149 + i * 4; 	   

	// 34/38/42/46
	for (i = 0; i < 4; i++)
		pAd->TxPower[i + 38].Channel = 34 + i * 4;

	// if E2PROM version mismatch with driver's expectation, then skip
	// all subsequent E2RPOM retieval and set a system error bit to notify GUI
	RTUSBReadEEPROM(pAd, EEPROM_VERSION_OFFSET, (PUCHAR)&Version.word, 2);
	pAd->EepromVersion = Version.field.Version + Version.field.FaeReleaseNumber * 256;
	DBGPRINT(RT_DEBUG_TRACE, "E2PROM: Version = %d, FAE release #%d\n", Version.field.Version, Version.field.FaeReleaseNumber);

	// Read BBP default value from EEPROM and store to array(EEPROMDefaultValue) in pAd
	RTUSBReadEEPROM(pAd, EEPROM_BBP_BASE_OFFSET, (PUCHAR)(pAd->EEPROMDefaultValue), 2 * NUM_EEPROM_BBP_PARMS);

	// We have to parse NIC configuration 0 at here.
	// If TSSI did not have preloaded value, it should reset the TxAutoAgc to false
	// Therefore, we have to read TxAutoAgc control beforehand.
	// Read Tx AGC control bit
	Antenna.word = pAd->EEPROMDefaultValue[0];
	if (Antenna.field.DynamicTxAgcControl == 1)
		pAd->bAutoTxAgcA = pAd->bAutoTxAgcG = TRUE;
	else
		pAd->bAutoTxAgcA = pAd->bAutoTxAgcG = FALSE;		

	//
	// Reset PhyMode if we don't support 802.11a
	//
	if ((pAd->PortCfg.PhyMode == PHY_11ABG_MIXED) || (pAd->PortCfg.PhyMode == PHY_11A))
	{
		//
		// Only RFIC_5226, RFIC_5225 suport 11a
		//
		if ((Antenna.field.RfIcType == RFIC_2528) || (Antenna.field.RfIcType == RFIC_2527))
			pAd->PortCfg.PhyMode = PHY_11BG_MIXED;

		//
		// Reset Adhoc Mode if we don't support 802.11a
		//
		if ((pAd->PortCfg.AdhocMode == ADHOC_11A) || (pAd->PortCfg.AdhocMode == ADHOC_11ABG_MIXED))
		{
			//
			// Only RFIC_5226, RFIC_5225 suport 11a
			//
			if ((Antenna.field.RfIcType == RFIC_2528) || (Antenna.field.RfIcType == RFIC_2527))
				pAd->PortCfg.AdhocMode = ADHOC_11BG_MIXED;
		}

    }

	
	// Read Tx power value for all 14 channels
	// Value from 1 - 0x7f. Default value is 24.
	// 0. 11b/g
	// Power value 0xFA (-6) ~ 0x24 (36)
	RTUSBReadEEPROM(pAd, EEPROM_G_TX_PWR_OFFSET, ChannelTxPower, 2 * NUM_EEPROM_TX_G_PARMS);
	for (i = 0; i < 2 * NUM_EEPROM_TX_G_PARMS; i++)
	{
		if ((ChannelTxPower[i] > 36) || (ChannelTxPower[i] < -6))
			pAd->TxPower[i].Power = 24;			
		else
			pAd->TxPower[i].Power = ChannelTxPower[i];

		DBGPRINT_RAW(RT_DEBUG_INFO, "Tx power for channel %d : %0x\n", pAd->TxPower[i].Channel, pAd->TxPower[i].Power);
	}

	// 1. UNI 36 - 64, HipperLAN 2 100 - 140, UNI 140 - 165
	// Power value 0xFA (-6) ~ 0x24 (36)
	RTUSBReadEEPROM(pAd, EEPROM_A_TX_PWR_OFFSET, ChannelTxPower, MAX_NUM_OF_A_CHANNELS);
	for (i = 0; i < MAX_NUM_OF_A_CHANNELS; i++)
	{
		if ((ChannelTxPower[i] > 36) || (ChannelTxPower[i] < -6))
			pAd->TxPower[i + 14].Power = 24;
		else			
			pAd->TxPower[i + 14].Power = ChannelTxPower[i];
		DBGPRINT_RAW(RT_DEBUG_INFO, "Tx power for channel %d : %0x\n", pAd->TxPower[i + 14].Channel, pAd->TxPower[i + 14].Power);
	}

	//
	// Please note, we must skip frist value, so we get TxPower as ChannelTxPower[i + 1];
	// because the TxPower was stored from 0x7D, but we need to read EEPROM from 0x7C. (Word alignment)
	//
	// for J52, 34/38/42/46
	RTUSBReadEEPROM(pAd, EEPROM_J52_TX_PWR_OFFSET, ChannelTxPower, 6); //must Read even valuse

	for (i = 0; i < 4; i++)
	{
		ASSERT(pAd->TxPower[J52_CHANNEL_START_OFFSET + i].Channel == 34 + i * 4);
		if ((ChannelTxPower[i] > 36) || (ChannelTxPower[i] < -6))
			pAd->TxPower[J52_CHANNEL_START_OFFSET + i].Power = 24;
		else			
			pAd->TxPower[J52_CHANNEL_START_OFFSET + i].Power = ChannelTxPower[i + 1];

		DBGPRINT_RAW(RT_DEBUG_INFO, "Tx power for channel %d : %0x\n", pAd->TxPower[J52_CHANNEL_START_OFFSET + i].Channel, pAd->TxPower[J52_CHANNEL_START_OFFSET + i].Power);
	}

	// Read TSSI reference and TSSI boundary for temperature compensation.
	// 0. 11b/g
	{
		RTUSBReadEEPROM(pAd, EEPROM_BG_TSSI_CALIBRAION, ChannelTxPower, 10);
		pAd->TssiMinusBoundaryG[4] = ChannelTxPower[0];
		pAd->TssiMinusBoundaryG[3] = ChannelTxPower[1];
		pAd->TssiMinusBoundaryG[2] = ChannelTxPower[2];
		pAd->TssiMinusBoundaryG[1] = ChannelTxPower[3];
		pAd->TssiPlusBoundaryG[1] = ChannelTxPower[4];
		pAd->TssiPlusBoundaryG[2] = ChannelTxPower[5];
		pAd->TssiPlusBoundaryG[3] = ChannelTxPower[6];
		pAd->TssiPlusBoundaryG[4] = ChannelTxPower[7];
		pAd->TssiRefG	= ChannelTxPower[8];
		pAd->TxAgcStepG = ChannelTxPower[9];  
		pAd->TxAgcCompensateG = 0;
		pAd->TssiMinusBoundaryG[0] = pAd->TssiRefG;
		pAd->TssiPlusBoundaryG[0]  = pAd->TssiRefG;

		// Disable TxAgc if the based value is not right
		if (pAd->TssiRefG == 0xff)
			pAd->bAutoTxAgcG = FALSE;

		DBGPRINT(RT_DEBUG_TRACE,"E2PROM: G Tssi[-4 .. +4] = %d %d %d %d - %d -%d %d %d %d, step=%d, tuning=%d\n",
			pAd->TssiMinusBoundaryG[4], pAd->TssiMinusBoundaryG[3], pAd->TssiMinusBoundaryG[2], pAd->TssiMinusBoundaryG[1],
			pAd->TssiRefG,
			pAd->TssiPlusBoundaryG[1], pAd->TssiPlusBoundaryG[2], pAd->TssiPlusBoundaryG[3], pAd->TssiPlusBoundaryG[4],
			pAd->TxAgcStepG, pAd->bAutoTxAgcG);
	}	
	// 1. 11a
	{
		RTUSBReadEEPROM(pAd, EEPROM_A_TSSI_CALIBRAION, ChannelTxPower, 10);
		pAd->TssiMinusBoundaryA[4] = ChannelTxPower[0];
		pAd->TssiMinusBoundaryA[3] = ChannelTxPower[1];
		pAd->TssiMinusBoundaryA[2] = ChannelTxPower[2];
		pAd->TssiMinusBoundaryA[1] = ChannelTxPower[3];
		pAd->TssiPlusBoundaryA[1] = ChannelTxPower[4];
		pAd->TssiPlusBoundaryA[2] = ChannelTxPower[5];
		pAd->TssiPlusBoundaryA[3] = ChannelTxPower[6];
		pAd->TssiPlusBoundaryA[4] = ChannelTxPower[7];
		pAd->TssiRefA	= ChannelTxPower[8];
		pAd->TxAgcStepA = ChannelTxPower[9]; 
		pAd->TxAgcCompensateA = 0;
		pAd->TssiMinusBoundaryA[0] = pAd->TssiRefA;
		pAd->TssiPlusBoundaryA[0]  = pAd->TssiRefA;

		// Disable TxAgc if the based value is not right
		if (pAd->TssiRefA == 0xff)
			pAd->bAutoTxAgcA = FALSE;

		DBGPRINT(RT_DEBUG_TRACE,"E2PROM: A Tssi[-4 .. +4] = %d %d %d %d - %d -%d %d %d %d, step=%d, tuning=%d\n",
			pAd->TssiMinusBoundaryA[4], pAd->TssiMinusBoundaryA[3], pAd->TssiMinusBoundaryA[2], pAd->TssiMinusBoundaryA[1],
			pAd->TssiRefA,
			pAd->TssiPlusBoundaryA[1], pAd->TssiPlusBoundaryA[2], pAd->TssiPlusBoundaryA[3], pAd->TssiPlusBoundaryA[4],
			pAd->TxAgcStepA, pAd->bAutoTxAgcA);
	}	
	pAd->BbpRssiToDbmDelta = 0x79;

	RTUSBReadEEPROM(pAd, EEPROM_FREQ_OFFSET, (PUCHAR) &value, 2);
	if ((value & 0xFF00) == 0xFF00)
	{
		pAd->RFProgSeq = 0;
	}
	else
	{
		pAd->RFProgSeq = (value & 0x0300) >> 8;	// bit 8,9
	}

	value &= 0x00FF;
	if (value != 0x00FF)
		pAd->RfFreqOffset = (ULONG) value;
	else
		pAd->RfFreqOffset = 0;
	DBGPRINT(RT_DEBUG_TRACE, "E2PROM: RF freq offset=0x%x\n", pAd->RfFreqOffset);

	//CountryRegion byte offset = 0x25
	value = pAd->EEPROMDefaultValue[2] >> 8;
	value2 = pAd->EEPROMDefaultValue[2] & 0x00FF;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级电影精品| 国产日韩欧美不卡在线| 亚洲日本在线观看| 国产一区二区在线看| 91网站在线观看视频| 中文字幕精品一区二区三区精品| 免费在线看一区| 国产精品88av| 日本一区二区三区在线不卡| 精品一区二区在线免费观看| 91精品国模一区二区三区| 一区二区在线观看免费| 91精品办公室少妇高潮对白| 一区二区三区日韩精品| 一区av在线播放| 精品免费视频.| 国产欧美精品一区二区三区四区 | 国产一区二区三区久久悠悠色av| 欧美另类z0zxhd电影| 欧美日韩国产综合一区二区三区| 久久99精品久久久久久国产越南 | 一区二区三区.www| 色妞www精品视频| 亚洲自拍偷拍九九九| 色综合久久六月婷婷中文字幕| 国产精品第五页| 在线看一区二区| 一区二区三区日韩欧美精品| 色综合久久综合中文综合网| 亚洲综合在线观看视频| 欧美日韩高清一区| 亚洲超丰满肉感bbw| 91精品国产综合久久久久久久| 亚洲一卡二卡三卡四卡五卡| 欧美一级精品大片| 国产中文字幕精品| |精品福利一区二区三区| 91麻豆精品秘密| 日韩av电影免费观看高清完整版在线观看 | 国产成人精品www牛牛影视| 精品成a人在线观看| 高清beeg欧美| 亚洲激情图片qvod| 成人不卡免费av| 欧美日韩国产123区| 国产精品久久精品日日| 风间由美一区二区av101| 欧美96一区二区免费视频| 中文字幕制服丝袜成人av| 欧美人狂配大交3d怪物一区| 亚洲欧美日韩国产成人精品影院| 免费在线视频一区| 91碰在线视频| 国产日韩欧美亚洲| 国产成人精品一区二区三区四区| 宅男噜噜噜66一区二区66| ●精品国产综合乱码久久久久| 亚洲va在线va天堂| 91黄色在线观看| 亚洲伊人色欲综合网| 亚洲高清视频在线| 不卡区在线中文字幕| 国产亚洲精品7777| 午夜久久久影院| 一本高清dvd不卡在线观看| 国产欧美日韩视频在线观看| 午夜精品福利一区二区蜜股av| 色88888久久久久久影院野外| 亚洲视频你懂的| 色哟哟欧美精品| 国产一区二三区| 国产精品国产三级国产a| 国产福利一区二区| 高清不卡一区二区| 国产在线精品一区二区夜色 | 欧美精品久久久久久久多人混战 | 日韩一区精品字幕| 风间由美一区二区三区在线观看 | 亚洲国产精品一区二区久久恐怖片| 成人妖精视频yjsp地址| 国产v综合v亚洲欧| a级精品国产片在线观看| 欧美电影免费观看高清完整版在线 | 91免费在线视频观看| 成人免费看视频| 97久久精品人人澡人人爽| 中文字幕一区二| 国产日韩欧美电影| 国产日韩成人精品| 久久综合成人精品亚洲另类欧美 | 色妹子一区二区| 风间由美一区二区三区在线观看 | 国模大尺度一区二区三区| 久久99精品久久久久久国产越南 | 精品无人区卡一卡二卡三乱码免费卡 | 91精品国产色综合久久久蜜香臀| a4yy欧美一区二区三区| 91丝袜高跟美女视频| 成人av高清在线| 91老司机福利 在线| 国产风韵犹存在线视精品| 国产精品18久久久久久久久| 国产一区二区三区精品欧美日韩一区二区三区 | 99免费精品在线观看| 99久久婷婷国产综合精品电影| 成人禁用看黄a在线| 一本色道久久综合亚洲91 | 91福利视频在线| 色婷婷久久99综合精品jk白丝| 欧美视频一区在线| 欧美精品三级日韩久久| 欧美成人伊人久久综合网| 精品日韩在线一区| 国产精品国产三级国产专播品爱网 | 精品一区二区日韩| 激情综合一区二区三区| 99精品国产热久久91蜜凸| 色综合久久综合中文综合网| 欧美一区二区三区系列电影| 精品国产第一区二区三区观看体验| 欧美视频一二三区| 久久综合久久综合亚洲| 亚洲视频在线观看三级| 日本一区中文字幕| 国产伦精品一区二区三区免费| 96av麻豆蜜桃一区二区| 欧美另类z0zxhd电影| 精品欧美久久久| 亚洲欧洲日韩av| 日本不卡一二三区黄网| www.久久精品| 69p69国产精品| 久久久不卡网国产精品一区| 日韩美女精品在线| 日韩电影免费在线观看网站| 国产成人午夜高潮毛片| 欧美精三区欧美精三区| 欧美激情综合在线| 亚洲国产一区二区三区 | 国产精品久久久久影院| 日韩高清在线不卡| 成人免费高清在线| 日韩美一区二区三区| 一区二区三区四区视频精品免费 | 日韩av在线发布| 不卡视频一二三四| 久久久精品2019中文字幕之3| 亚洲一卡二卡三卡四卡无卡久久| 高清免费成人av| 欧美日本在线一区| 亚洲视频在线一区观看| 国产精品影视在线| 欧洲亚洲精品在线| 日本一区二区免费在线| 国产精品美女久久久久av爽李琼| 蜜桃视频一区二区| 在线免费观看成人短视频| 国产网红主播福利一区二区| 亚洲成a人在线观看| 一本到高清视频免费精品| 日韩一区二区免费视频| 综合久久久久综合| 高清久久久久久| 久久噜噜亚洲综合| 日韩电影一区二区三区四区| 欧美在线观看一区| 亚洲色图在线播放| 国产精品一区二区91| 51精品视频一区二区三区| 国产精品成人一区二区艾草| 成人午夜视频在线观看| 久久久综合九色合综国产精品| 精品亚洲成a人| 欧美电影免费观看高清完整版在线| 自拍偷拍国产亚洲| 欧洲一区二区三区在线| 亚洲男人的天堂网| 欧美午夜精品一区二区三区| 国产亚洲精品7777| 成人毛片在线观看| 国产日本一区二区| 国产大陆a不卡| 久久精品欧美日韩精品| 成人app网站| 亚洲色欲色欲www| 欧美亚洲综合色| 亚洲第一电影网| 91精品国产欧美一区二区成人| 日韩—二三区免费观看av| 成人av免费在线播放| 亚洲黄色小视频| 91视频国产观看| 天堂一区二区在线| 欧美精品vⅰdeose4hd| 精品亚洲porn| 国产精品色呦呦| 91官网在线免费观看| 亚洲第一主播视频| 日韩一级精品视频在线观看| 激情国产一区二区|