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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? rtmp_init.c

?? r73模塊的無(wú)線網(wǎng)卡在Linux下的驅(qū)動(dòng)程序
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
/*************************************************************************** * 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]);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩美一区二区三区| 99精品视频中文字幕| 国产精品视频线看| 国产精品自在在线| 欧美电影免费观看完整版| 日本免费在线视频不卡一不卡二 | 久久99精品国产| 2021中文字幕一区亚洲| 国产成人午夜精品5599| 国产精品网曝门| 欧美专区亚洲专区| 日本va欧美va精品发布| 久久精品这里都是精品| 91啦中文在线观看| 五月综合激情网| 久久你懂得1024| 99久久精品免费看| 视频一区视频二区中文字幕| 日韩精品资源二区在线| 成人美女视频在线看| 亚洲午夜久久久| 久久久久久久久久久久久久久99 | 精品亚洲aⅴ乱码一区二区三区| 精品国产青草久久久久福利| 成人免费福利片| 午夜精品久久久久影视| 欧美国产精品久久| 欧美精品在线观看播放| 国产成人在线电影| 视频一区在线视频| 国产精品美女久久久久久久网站| 欧美日韩高清在线| 国产91精品入口| 日韩中文欧美在线| 国产欧美日韩久久| 777色狠狠一区二区三区| 顶级嫩模精品视频在线看| 日日骚欧美日韩| 国产精品视频免费看| 日韩一区二区麻豆国产| 91在线视频播放| 国模套图日韩精品一区二区 | 五月激情综合婷婷| 中文字幕欧美日韩一区| 91麻豆精品91久久久久同性| proumb性欧美在线观看| 韩国一区二区三区| 性感美女久久精品| 亚洲免费av高清| 国产精品视频免费| 久久影音资源网| 日韩视频免费观看高清完整版 | 国产美女一区二区| 日韩avvvv在线播放| 一区二区在线电影| 国产精品久久久久aaaa| 久久久久久久久蜜桃| 欧美精品久久天天躁| 一本大道久久a久久精二百 | av午夜一区麻豆| 国产精品资源在线| 久久99蜜桃精品| 日韩va亚洲va欧美va久久| 亚洲一区二区四区蜜桃| 中文字幕在线不卡一区| 欧美国产视频在线| 久久久久国产精品麻豆ai换脸| 日韩精品中文字幕一区二区三区| 欧美日韩一区二区三区不卡| 日本电影亚洲天堂一区| 97se亚洲国产综合自在线不卡| 国产成人99久久亚洲综合精品| 国内精品免费**视频| 精品亚洲porn| 精品一区二区三区免费观看| 久久精品国产77777蜜臀| 蜜桃av噜噜一区二区三区小说| 午夜电影网一区| 午夜精品福利一区二区蜜股av| 亚洲mv大片欧洲mv大片精品| 亚洲二区视频在线| 日韩激情在线观看| 奇米777欧美一区二区| 奇米亚洲午夜久久精品| 麻豆国产精品官网| 国产精品影视在线| 成人性生交大合| 一本一本大道香蕉久在线精品 | 国产九色sp调教91| 丁香婷婷综合色啪| 9久草视频在线视频精品| 91免费国产视频网站| 欧美做爰猛烈大尺度电影无法无天| 色www精品视频在线观看| 在线观看国产91| 欧美久久一二三四区| 日韩午夜精品电影| 久久青草国产手机看片福利盒子| 久久久99久久精品欧美| 中文字幕第一区综合| 亚洲激情欧美激情| 五月天丁香久久| 国产一区二区三区国产| www.日韩精品| 欧美日韩日日夜夜| 久久久久久综合| 一区二区三区高清在线| 免费久久99精品国产| 国产成人av一区二区三区在线观看| 91在线一区二区| 欧美一区二区在线免费播放| 国产女同性恋一区二区| 亚洲综合区在线| 久久99精品国产麻豆婷婷洗澡| 国产成人av电影在线观看| 欧美综合一区二区| 久久综合九色综合97婷婷| 亚洲视频资源在线| 蜜臂av日日欢夜夜爽一区| 成人视屏免费看| 欧美巨大另类极品videosbest | 一本到三区不卡视频| 日韩一区二区在线看| 欧美激情一区二区三区四区| 亚洲午夜久久久久中文字幕久| 激情综合一区二区三区| 色哟哟一区二区三区| 精品福利二区三区| 一区二区三区在线高清| 国产伦精品一区二区三区在线观看| 色老头久久综合| 国产喂奶挤奶一区二区三区| 午夜一区二区三区视频| 成人午夜精品在线| 日韩色在线观看| 亚洲国产综合视频在线观看| 成人综合婷婷国产精品久久蜜臀 | 欧美日韩精品欧美日韩精品| 久久久久久9999| 日韩国产高清影视| 在线亚洲一区观看| 日本一区二区三区视频视频| 久久99精品国产麻豆婷婷洗澡| 欧美午夜免费电影| ...xxx性欧美| 国产乱色国产精品免费视频| 欧美一级欧美三级| 亚洲精选视频在线| 99久久精品免费看| 中文字幕高清不卡| 国产91精品久久久久久久网曝门 | 日韩av网站在线观看| 91电影在线观看| 一区二区三区在线视频观看| 成人免费毛片app| 国产欧美一区在线| 国产精品一区二区在线看| 337p粉嫩大胆噜噜噜噜噜91av | 日韩激情av在线| 欧美亚男人的天堂| 亚洲免费成人av| 色婷婷亚洲婷婷| 一区二区三区在线视频观看58| 色偷偷成人一区二区三区91 | 日本网站在线观看一区二区三区| 99国产欧美久久久精品| 欧美激情在线一区二区三区| 国产一区二区在线观看免费| 精品人伦一区二区色婷婷| 美女在线视频一区| 精品蜜桃在线看| 麻豆精品国产91久久久久久| 久久免费看少妇高潮| 国产米奇在线777精品观看| 国产欧美综合在线| av在线不卡观看免费观看| 亚洲人成网站色在线观看| 色综合中文综合网| 日韩一区二区视频| 午夜精品久久久久久不卡8050| 欧美一区永久视频免费观看| 青椒成人免费视频| 久久综合久色欧美综合狠狠| 国产精品亚洲午夜一区二区三区| 国产欧美日韩综合| 91色综合久久久久婷婷| 亚洲国产视频直播| 欧美一级搡bbbb搡bbbb| 国产a级毛片一区| 亚洲少妇最新在线视频| 欧美区在线观看| 精品一区二区在线播放| 国产精品天美传媒沈樵| 在线精品视频免费观看| 欧美bbbbb| 国产精品色呦呦| 在线观看91精品国产麻豆| 国产九色精品成人porny| 亚洲精品免费在线观看| 欧美一区二区美女|