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

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

?? rtmp_init.c

?? r73模塊的無線網卡在Linux下的驅動程序
?? C
?? 第 1 頁 / 共 5 頁
字號:
/*************************************************************************** * RT2x00 SourceForge Project - http://rt2x00.serialmonkey.com             * *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License as published by  * *   the Free Software Foundation; either version 2 of the License, or     * *   (at your option) any later version.                                   * *                                                                         * *   This program is distributed in the hope that it will be useful,       * *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * *   GNU General Public License for more details.                          * *                                                                         * *   You should have received a copy of the GNU General Public License     * *   along with this program; if not, write to the                         * *   Free Software Foundation, Inc.,                                       * *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * *                                                                         * *   Licensed under the GNU GPL                                            * *   Original code supplied under license from RaLink Inc, 2004.           * ***************************************************************************//*************************************************************************** *	Module Name:	rtmp_init.c * *	Abstract: Miniport generic portion header file * *	Revision History: *	Who		When		What *	--------	----------	----------------------------- *	Paul Lin	2002-08-01	created *	John Chang	2004-08-20	RT2561/2661 use scatter-gather scheme *	Olivier Cornu	2007-05-14	Remove .dat file code ***************************************************************************/#include	"rt_config.h"#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)#define RT_USB_ALLOC_URB(iso)	usb_alloc_urb(iso, GFP_KERNEL);#else#define RT_USB_ALLOC_URB(iso)	usb_alloc_urb(iso);#endifUCHAR	 BIT8[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};ULONG	 BIT32[] = {0x00000001, 0x00000002, 0x00000004, 0x00000008,					0x00000010, 0x00000020, 0x00000040, 0x00000080,					0x00000100, 0x00000200, 0x00000400, 0x00000800,					0x00001000, 0x00002000, 0x00004000, 0x00008000,					0x00010000, 0x00020000, 0x00040000, 0x00080000,					0x00100000, 0x00200000, 0x00400000, 0x00800000,					0x01000000, 0x02000000, 0x04000000, 0x08000000,					0x10000000, 0x20000000, 0x40000000, 0x80000000};char*	CipherName[] = {"none","wep64","wep128","TKIP","AES","CKIP64","CKIP128"};const unsigned short ccitt_16Table[] = {	0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7,	0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF,	0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6,	0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE,	0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485,	0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D,	0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4,	0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC,	0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823,	0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B,	0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12,	0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A,	0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41,	0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49,	0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70,	0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78,	0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F,	0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067,	0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E,	0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256,	0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D,	0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,	0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C,	0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634,	0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB,	0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3,	0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A,	0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92,	0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9,	0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1,	0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8,	0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0};#define ByteCRC16(v, crc) \	(unsigned short)((crc << 8) ^  ccitt_16Table[((crc >> 8) ^ (v)) & 255])//// BBP register initialization set//BBP_REG_PAIR   BBPRegTable[] = {	{3, 	0x80},	{15,	0x30},	{17,	0x20},	{21,	0xc8},	{22,	0x38},	{23,	0x06},	{24,	0xfe},	{25,	0x0a},	{26,	0x0d},	{32,	0x0b},	{34,	0x12},	{37,	0x07},	{39,	0xf8}, // 2005-09-02 by Gary, Atheros 11b issue	{41,	0x60}, // 03-09 gary	{53,	0x10}, // 03-09 gary	{54,	0x18}, // 03-09 gary	{60,	0x10},	{61,	0x04},	{62,	0x04},	{75,	0xfe},	{86,	0xfe},	{88,	0xfe},	{90,	0x0f},	{99,	0x00},	{102,	0x16},	{107,	0x04},};#define	NUM_BBP_REG_PARMS	(sizeof(BBPRegTable) / sizeof(BBP_REG_PAIR))//// ASIC register initialization sets//RTMP_REG_PAIR	MACRegTable[] =	{	{TXRX_CSR0, 	0x025fb032}, // 0x3040, RX control, default Disable RX	{TXRX_CSR1, 	0x9eaa9eaf}, // 0x3044, BBP 30:Ant-A RSSI, R51:Ant-B RSSI, R42:OFDM rate, R47:CCK SIGNAL	{TXRX_CSR2, 	0x8a8b8c8d}, // 0x3048, CCK TXD BBP registers	{TXRX_CSR3, 	0x00858687}, // 0x304c, OFDM TXD BBP registers	{TXRX_CSR7, 	0x2E31353B}, // 0x305c, ACK/CTS payload consume time for 18/12/9/6 mbps	{TXRX_CSR8, 	0x2a2a2a2c}, // 0x3060, ACK/CTS payload consume time for 54/48/36/24 mbps	{TXRX_CSR15,	0x0000000f}, // 0x307c, TKIP MIC priority byte "AND" mask	{MAC_CSR6,		0x00000fff}, // 0x3018, MAX frame length	{MAC_CSR8,		0x016c030a}, // 0x3020, SIFS/EIFS time, set SIFS delay time.	{MAC_CSR10, 	0x00000718}, // 0x3028, ASIC PIN control in various power states	{MAC_CSR12, 	0x00000004}, // 0x3030, power state control, set to AWAKE state	{MAC_CSR13, 	0x00007f00}, // 0x3034, GPIO pin#7 as bHwRadio (input:0), otherwise (output:1)	{SEC_CSR0,		0x00000000}, // 0x30a0, invalidate all shared key entries	{SEC_CSR1,		0x00000000}, // 0x30a4, reset all shared key algorithm to "none"	{SEC_CSR5,		0x00000000}, // 0x30b4, reset all shared key algorithm to "none"	{PHY_CSR1,		0x000023b0}, // 0x3084, BBP Register R/W mode set to "Parallel mode"	{PHY_CSR5,		0x00040a06}, //  0x060a100c	{PHY_CSR6,		0x00080606},	{PHY_CSR7,		0x00000408},	{AIFSN_CSR, 	0x00002273},	{CWMIN_CSR, 	0x00002344},	{CWMAX_CSR, 	0x000034aa},};#define	NUM_MAC_REG_PARMS	(sizeof(MACRegTable) / sizeof(RTMP_REG_PAIR))VOID CreateThreads(PRTMP_ADAPTER pAd){	// Creat MLME Thread	pAd->MLMEThr_pid = kernel_thread(MlmeThread, pAd, CLONE_VM);	if (pAd->MLMEThr_pid < 0) {		DBGPRINT(RT_DEBUG_ERROR, "%s: unable to start mlme thread for %s\n",				__FUNCTION__, pAd->net_dev->name);		KPRINT(KERN_WARNING, "%s: unable to start mlme thread\n",				pAd->net_dev->name);	}	// Creat Command Thread	pAd->RTUSBCmdThr_pid = kernel_thread(RTUSBCmdThread, pAd, CLONE_VM);	if (pAd->RTUSBCmdThr_pid < 0) {		DBGPRINT(RT_DEBUG_ERROR, "%s: unable to start Cmd thread for %s\n",				__FUNCTION__, pAd->net_dev->name);		KPRINT(KERN_WARNING, "%s: unable to start Cmd thread\n",				pAd->net_dev->name);	}	DBGPRINT(RT_DEBUG_INFO, "-  (%s) Mlme pid=%d, Cmd pid=%d\n",			__FUNCTION__, pAd->MLMEThr_pid, pAd->RTUSBCmdThr_pid);}void KillThreads(PRTMP_ADAPTER pAd){	int             ret;	if (pAd->MLMEThr_pid > 0)	{		ret = kill_proc (pAd->MLMEThr_pid, SIGTERM, 1);		if (ret)		{			DBGPRINT(RT_DEBUG_ERROR, "%s(%s): unable to signal mlme thread"					" (pid=%d, err=%d)\n",					__FUNCTION__, pAd->net_dev->name, pAd->MLMEThr_pid, ret);			KPRINT(KERN_ERR, "(%s) unable to signal mlme thread"					" (pid=%d, err=%d)\n",					pAd->net_dev->name, pAd->MLMEThr_pid, ret);			//return ret;		Fix process killing		}		else wait_for_completion (&pAd->mlmenotify);	}	if (pAd->RTUSBCmdThr_pid> 0)	{		ret = kill_proc (pAd->RTUSBCmdThr_pid, SIGTERM, 1);		if (ret)		{			DBGPRINT(RT_DEBUG_ERROR, "%s(%s): unable to signal cmd thread"					" (pid=%d, err=%d)\n",					__FUNCTION__, pAd->net_dev->name, pAd->MLMEThr_pid, ret);			KPRINT(KERN_ERR, "(%s) unable to signal cmd thread"					" (pid=%d, err=%d)\n",					pAd->net_dev->name, pAd->RTUSBCmdThr_pid, ret);			//return ret;		Fix process killing		}		else wait_for_completion (&pAd->cmdnotify);	}	// reset mlme & command thread    pAd->MLMEThr_pid = -1;	pAd->RTUSBCmdThr_pid = -1;} /* End KillThreads () */NDIS_STATUS NICInitTransmit(	IN	PRTMP_ADAPTER	 pAd ){	UCHAR			i, acidx;	NDIS_STATUS 	Status = NDIS_STATUS_SUCCESS;	PTX_CONTEXT		pPsPollContext = &(pAd->PsPollContext);	PTX_CONTEXT		pNullContext   = &(pAd->NullContext);	PTX_CONTEXT		pRTSContext    = &(pAd->RTSContext);	DBGPRINT(RT_DEBUG_TRACE,"--> NICInitTransmit\n");	// Init 4 set of Tx parameters	for (i = 0; i < 4; i++)	{		// Initialize all Transmit releated queues		skb_queue_head_init(&pAd->SendTxWaitQueue[i]);		pAd->NextTxIndex[i]			= 0;		// Next Free local Tx ring pointer		pAd->TxRingTotalNumber[i]	= 0;		pAd->NextBulkOutIndex[i]	= 0;		// Next Local tx ring pointer waiting for buck out		pAd->BulkOutPending[i]		= FALSE;	// Buck Out control flag	}	pAd->PrivateInfo.TxRingFullCnt = 0;	pAd->NextMLMEIndex		   = 0;	pAd->PushMgmtIndex		   = 0;	pAd->PopMgmtIndex		   = 0;	atomic_set(&pAd->MgmtQueueSize, 0);	pAd->PrioRingFirstIndex    = 0;	pAd->PrioRingTxCnt		   = 0;	do	{		//		// TX_RING_SIZE		//		for (acidx = 0; acidx < 4; acidx++)		{			for ( i= 0; i < TX_RING_SIZE; i++ )			{				PTX_CONTEXT pTxContext = &(pAd->TxContext[acidx][i]);				//Allocate URB				pTxContext->pUrb = RT_USB_ALLOC_URB(0);				if(pTxContext->pUrb == NULL){					Status = NDIS_STATUS_RESOURCES;					goto done;				}				pTxContext->TransferBuffer= (PTX_BUFFER) kmalloc(sizeof(TX_BUFFER), GFP_KERNEL);				Status = NDIS_STATUS_SUCCESS;				if(!pTxContext->TransferBuffer){					DBGPRINT(RT_DEBUG_ERROR,"Not enough memory\n");					Status = NDIS_STATUS_RESOURCES;					goto out1;				}				memset(pTxContext->TransferBuffer, 0, sizeof(TX_BUFFER));				pTxContext->pAd = pAd;				pTxContext->InUse = FALSE;				pTxContext->IRPPending = FALSE;			}		}		//		// PRIO_RING_SIZE		//		for ( i= 0; i < PRIO_RING_SIZE; i++ )		{			PTX_CONTEXT	pMLMEContext = &(pAd->MLMEContext[i]);			pMLMEContext->pUrb = RT_USB_ALLOC_URB(0);			if(pMLMEContext->pUrb == NULL){				Status = NDIS_STATUS_RESOURCES;				goto out1;			}			pMLMEContext->TransferBuffer= (PTX_BUFFER) kmalloc(sizeof(TX_BUFFER), GFP_KERNEL);			if(!pMLMEContext->TransferBuffer){				DBGPRINT(RT_DEBUG_ERROR,"Not enough memory\n");				Status = NDIS_STATUS_RESOURCES;				goto out2;			}			memset(pMLMEContext->TransferBuffer, 0, sizeof(TX_BUFFER));			pMLMEContext->pAd = pAd ;			pMLMEContext->InUse = FALSE;			pMLMEContext->IRPPending = FALSE;		}		//		// BEACON_RING_SIZE		//		for (i = 0; i < BEACON_RING_SIZE; i++)		{			PTX_CONTEXT	pBeaconContext = &(pAd->BeaconContext[i]);			pBeaconContext->pUrb = RT_USB_ALLOC_URB(0);			if(pBeaconContext->pUrb == NULL){				Status = NDIS_STATUS_RESOURCES;				goto out2;			}			pBeaconContext->TransferBuffer= (PTX_BUFFER) kmalloc(sizeof(TX_BUFFER), GFP_KERNEL);			if(!pBeaconContext->TransferBuffer){				DBGPRINT(RT_DEBUG_ERROR,"Not enough memory\n");				Status = NDIS_STATUS_RESOURCES;				goto out3;			}			memset(pBeaconContext->TransferBuffer, 0, sizeof(TX_BUFFER));			pBeaconContext->pAd = pAd;			pBeaconContext->InUse = FALSE;			pBeaconContext->IRPPending = FALSE;		}		//		// NullContext		//		pNullContext->pUrb = RT_USB_ALLOC_URB(0);		if(pNullContext->pUrb == NULL){			Status = NDIS_STATUS_RESOURCES;			goto out3;		}		pNullContext->TransferBuffer= (PTX_BUFFER) kmalloc(sizeof(TX_BUFFER), GFP_KERNEL);		if(!pNullContext->TransferBuffer){			DBGPRINT(RT_DEBUG_ERROR,"Not enough memory\n");			Status = NDIS_STATUS_RESOURCES;			goto out4;		}		memset(pNullContext->TransferBuffer, 0, sizeof(TX_BUFFER));		pNullContext->pAd = pAd;		pNullContext->InUse = FALSE;		pNullContext->IRPPending = FALSE;		//		// RTSContext		//		pRTSContext->pUrb = RT_USB_ALLOC_URB(0);		if(pRTSContext->pUrb == NULL){			Status = NDIS_STATUS_RESOURCES;			goto out4;		}		pRTSContext->TransferBuffer= (PTX_BUFFER) kmalloc(sizeof(TX_BUFFER), GFP_KERNEL);		if(!pRTSContext->TransferBuffer){			DBGPRINT(RT_DEBUG_ERROR,"Not enough memory\n");			Status = NDIS_STATUS_RESOURCES;			goto out5;		}		memset(pRTSContext->TransferBuffer, 0, sizeof(TX_BUFFER));		pRTSContext->pAd = pAd;		pRTSContext->InUse = FALSE;		pRTSContext->IRPPending = FALSE;		//		// PsPollContext		//		pPsPollContext->pUrb = RT_USB_ALLOC_URB(0);		if(pPsPollContext->pUrb == NULL){			Status = NDIS_STATUS_RESOURCES;			goto out5;		}		pPsPollContext->TransferBuffer= (PTX_BUFFER) kmalloc(sizeof(TX_BUFFER), GFP_KERNEL);		if(!pPsPollContext->TransferBuffer){			DBGPRINT(RT_DEBUG_ERROR,"Not enough memory\n");			Status = NDIS_STATUS_RESOURCES;			goto out6;		}		memset(pPsPollContext->TransferBuffer, 0, sizeof(TX_BUFFER));		pPsPollContext->pAd = pAd;		pPsPollContext->InUse = FALSE;		pPsPollContext->IRPPending = FALSE;	}  while (FALSE);	return Status;out6:	if (NULL != pPsPollContext->pUrb)	{		RTUSB_UNLINK_URB(pPsPollContext->pUrb);		usb_free_urb(pPsPollContext->pUrb);		pPsPollContext->pUrb = NULL;	}	if (NULL != pPsPollContext->TransferBuffer)	{		kfree(pPsPollContext->TransferBuffer);		pPsPollContext->TransferBuffer = NULL;	}out5:	if (NULL != pRTSContext->pUrb)	{		RTUSB_UNLINK_URB(pRTSContext->pUrb);		usb_free_urb(pRTSContext->pUrb);		pRTSContext->pUrb = NULL;	}	if (NULL != pRTSContext->TransferBuffer)	{		kfree(pRTSContext->TransferBuffer);		pRTSContext->TransferBuffer = NULL;	}out4:	if (NULL != pNullContext->pUrb)	{		RTUSB_UNLINK_URB(pNullContext->pUrb);		usb_free_urb(pNullContext->pUrb);		pNullContext->pUrb = NULL;	}	if (NULL != pNullContext->TransferBuffer)	{		kfree(pNullContext->TransferBuffer);		pNullContext->TransferBuffer = NULL;	}out3:	for (i = 0; i < BEACON_RING_SIZE; i++)	{		PTX_CONTEXT	pBeaconContext = &(pAd->BeaconContext[i]);		if ( NULL != pBeaconContext->pUrb )		{			RTUSB_UNLINK_URB(pBeaconContext->pUrb);			usb_free_urb(pBeaconContext->pUrb);			pBeaconContext->pUrb = NULL;		}		if ( NULL != pBeaconContext->TransferBuffer )		{			kfree( pBeaconContext->TransferBuffer);			pBeaconContext->TransferBuffer = NULL;		}	}out2:	for ( i= 0; i < PRIO_RING_SIZE; i++ )	{		PTX_CONTEXT pMLMEContext = &(pAd->MLMEContext[i]);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲大片一区二区三区| 久久嫩草精品久久久精品一| 亚洲精品亚洲人成人网在线播放| youjizz久久| 亚洲欧洲国产日韩| 欧美自拍偷拍午夜视频| 亚洲成人av免费| 日韩欧美一级片| 国产高清成人在线| 亚洲人成在线播放网站岛国| 成人一区二区三区视频 | 国产69精品久久久久毛片| 欧美国产欧美综合| 91麻豆精东视频| 日韩1区2区日韩1区2区| 精品福利一区二区三区| 成人黄色a**站在线观看| 亚洲精品少妇30p| 日韩一卡二卡三卡国产欧美| 国产剧情一区二区| 一区二区三区在线视频观看 | 美国毛片一区二区三区| 久久综合精品国产一区二区三区| 北条麻妃一区二区三区| 婷婷国产v国产偷v亚洲高清| 久久久久久**毛片大全| 91久久人澡人人添人人爽欧美| 视频在线观看91| 中文在线一区二区| 欧美日韩精品专区| 成人深夜福利app| 日韩一区欧美二区| 国产精品精品国产色婷婷| 欧美蜜桃一区二区三区| 国产精华液一区二区三区| 亚洲制服丝袜在线| 国产精品欧美久久久久一区二区| 欧美日韩成人综合在线一区二区| 国产乱人伦精品一区二区在线观看 | 91精品视频网| 97se亚洲国产综合自在线| 蜜桃av一区二区三区| 亚洲精品少妇30p| 国产无人区一区二区三区| 欧美午夜电影网| 不卡大黄网站免费看| 久久不见久久见免费视频7| 亚洲精品免费在线播放| 欧美国产综合一区二区| 欧美一级在线视频| 在线视频观看一区| 成a人片国产精品| 寂寞少妇一区二区三区| 天天免费综合色| 一区2区3区在线看| 国产精品嫩草影院av蜜臀| 精品国产亚洲在线| 欧美一级专区免费大片| 欧美亚洲日本国产| 日本乱人伦aⅴ精品| 不卡一卡二卡三乱码免费网站| 精品一二线国产| 蜜臀久久99精品久久久画质超高清| 亚洲精品国产a| 亚洲精品亚洲人成人网| 亚洲日本韩国一区| 亚洲三级免费观看| 亚洲欧洲三级电影| 日韩一区在线免费观看| 国产精品伦理一区二区| 国产日韩亚洲欧美综合| 久久久久成人黄色影片| 久久网站最新地址| 国产视频一区二区在线观看| 久久众筹精品私拍模特| 久久精品一区二区三区四区| 精品粉嫩超白一线天av| 久久色在线观看| 久久精品欧美一区二区三区不卡| 欧美tk—视频vk| 亚洲精品一线二线三线无人区| 日韩无一区二区| 久久综合九色综合欧美亚洲| 久久久99精品免费观看不卡| 国产精品天天看| 中文字幕在线观看一区| 亚洲卡通欧美制服中文| 三级久久三级久久| 狠狠色伊人亚洲综合成人| 美女网站色91| 成人中文字幕电影| 色老头久久综合| 91精品国产一区二区三区蜜臀 | 国产伦精品一区二区三区在线观看| 国产麻豆91精品| 91视频免费观看| 91精品国产综合久久精品图片 | 日本怡春院一区二区| 精品综合久久久久久8888| 国产精品一二三四区| 成人免费看黄yyy456| 91论坛在线播放| 日韩一区二区三区精品视频| 国产女主播视频一区二区| 亚洲欧洲精品一区二区三区| 亚洲第一福利一区| 久久成人免费电影| 97久久精品人人爽人人爽蜜臀| 欧美色中文字幕| 精品粉嫩超白一线天av| 亚洲男女一区二区三区| 免费成人在线影院| eeuss鲁片一区二区三区在线观看| 色婷婷综合久久久| 精品久久一区二区| 亚洲天堂成人网| 久久国产剧场电影| 一本一道久久a久久精品| 91精品国产乱码久久蜜臀| 国产精品毛片无遮挡高清| 日韩成人精品视频| 99精品在线观看视频| 精品剧情v国产在线观看在线| 亚洲欧美日韩中文播放 | 国产成人免费在线观看| 欧美性生活影院| 国产欧美一区二区精品仙草咪| 亚洲国产欧美在线| 国产成人高清视频| 欧美一区二区国产| 亚洲免费色视频| 国产精品一区二区黑丝| 337p亚洲精品色噜噜噜| 亚洲欧美日韩小说| 国产精品自拍三区| 欧美一级夜夜爽| 亚洲一级二级三级在线免费观看| 国产成人一级电影| 日韩精品一区二区三区在线播放| 一区二区三区四区在线播放| 国产成人99久久亚洲综合精品| 91精品在线免费| 亚洲成人动漫一区| 一本色道亚洲精品aⅴ| 久久精品人人爽人人爽| 久久91精品久久久久久秒播| 欧美午夜片在线看| 亚洲一区二区在线免费看| 成人免费毛片a| 国产亚洲精品aa| 国内一区二区在线| 精品国精品国产尤物美女| 亚洲成人激情自拍| 欧美亚洲尤物久久| 亚洲综合清纯丝袜自拍| 91免费在线播放| 中文字幕亚洲区| av成人免费在线观看| 国产亚洲精品超碰| 成人妖精视频yjsp地址| 国产欧美日韩亚州综合| 国产成人啪免费观看软件| 久久精品人人做| 国产自产高清不卡| 2020日本不卡一区二区视频| 蜜臀精品一区二区三区在线观看| 日韩视频一区二区| 极品美女销魂一区二区三区| 日韩视频在线你懂得| 久久av资源网| 久久久影院官网| 国产suv精品一区二区三区| 国产精品丝袜黑色高跟| 99久久99久久久精品齐齐| 亚洲精品日产精品乱码不卡| 在线一区二区三区四区五区| 一区二区三区欧美日| 欧美日韩免费观看一区三区| 亚洲成a人在线观看| 欧美一区二区三区在线电影 | 成人亚洲一区二区一| 国产精品久久久久久久岛一牛影视| av一区二区三区四区| 亚洲人精品午夜| 欧美乱妇15p| 精品亚洲成a人在线观看| 国产日韩欧美不卡| 99re6这里只有精品视频在线观看| 亚洲综合无码一区二区| 日韩一区二区三区视频| 国产91精品在线观看| 亚洲视频一区在线观看| 欧美日韩一区国产| 国内精品免费**视频| 中文字幕一区二区三区蜜月| 色伊人久久综合中文字幕| 污片在线观看一区二区| 26uuu另类欧美| 色妞www精品视频| 另类小说一区二区三区|