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

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

?? ser2410_hw.c

?? 增加串口,主要是wince方面的
?? C
?? 第 1 頁 / 共 5 頁
字號:
	s2410IOP->rGPBCON &= ~(0x3<<0);//2);	// clear GPBCON for GPB1 (nIRDAEN)
	s2410IOP->rGPBCON |= (0x1<<0);//2);	// set GPBCON for GPB1 output
	s2410IOP->rGPBUP |= (0x1<<0);//1);	// set GPB1 pullup disable (external pullup)
	s2410IOP->rGPBDAT &= ~(0x1<<0);//1);	// set GPB1 signal low 

	s2410IOP->rGPHCON &= ~(0x3<<12 | 0x3<<14); // clear uart 2 - rx, tx
	s2410IOP->rGPHCON |= (0x2<<12 | 0x2<<14); 
	s2410IOP->rGPHUP |= 0xc0;
#endif
	LeaveCriticalSection(&(pHWHead->RegCritSec));
}

S2410_SetSerialIOP(
       PVOID   pHead // @parm points to device head
       )
{
	PS2410_UART_INFO   pHWHead   = (PS2410_UART_INFO)pHead;
	PSER_INFO	   pHWHead1  = (PSER_INFO)pHead;

	RETAILMSG(DEBUGMODE, (TEXT("S2410_SetSerialIOP \r\n")));
	if(pHWHead1->dwIOBase == 0x50000000)	// add by perry
	{
#if USEVIRTUAL
	EnterCriticalSection(&(pHWHead->RegCritSec));
//2006-7-20 wsf
	v_pIOPregs->rGPHCON &= ~(0x3<<0 | 0x3<<2 | 0x3<<4 | 0x3<<6 );//clear uart0 all pins
	v_pIOPregs->rGPHCON |= (0x2<<4 | 0x2<<6 );//enable uart0 TXD0,RXD0

	v_pIOPregs->rGPHCON |= (0x2<<0 | 0x2<<2 );//enable uart0 CTS0,RTS0
	v_pIOPregs->rGPHUP  |= 0xC3;//cts0 rts0 pull up,txd0 rxd0 no pull up
/*	pHWHead->rDTRport = (volatile unsigned int *)&(v_pIOPregs->rGPHDAT);
	pHWHead->rDSRport = (volatile unsigned int *)&(v_pIOPregs->rGPHDAT);
	pHWHead->DtrPortNum = 6;
	pHWHead->DsrPortNum = 7;*/
#else
	volatile IOPreg *s2410IOP;
	s2410IOP   = (volatile IOPreg *)IOP_BASE;

	EnterCriticalSection(&(pHWHead->RegCritSec));

	s2410IOP->rGPHCON &= ~(0x3<<0 | 0x3<<2 | 0x3<<4 | 0x3<<6 );
	s2410IOP->rGPHCON |= (0x2<<4 | 0x2<<6 );

	s2410IOP->rGPHCON |= (0x2<<0 | 0x2<<2 );
	s2410IOP->rGPHUP  |= 0xC3;
/*	pHWHead->rDTRport = (volatile unsigned int *)(IOP_BASE+0x74); //s2410IOP->rGPHDAT
	pHWHead->rDSRport = (volatile unsigned int *)(IOP_BASE+0x74);
	pHWHead->DtrPortNum = 6;
	pHWHead->DsrPortNum = 7;*/
#endif
	}
	else if(pHWHead1->dwIOBase == 0x50004000)
	{
#if USEVIRTUAL
	EnterCriticalSection(&(pHWHead->RegCritSec));
//2006-7-20 wsf
	v_pIOPregs->rGPHCON &= ~(0x3<<8 | 0x3<<10 );//clear uart1 rxd1 txd1
	v_pIOPregs->rGPHCON |= (0x2<<8 | 0x2<<10 );//enabled rxd1 txd1,no used cts1 rts1
	
	v_pIOPregs->rGPHUP  |= 0xc0;//no need pull up 
/*	pHWHead->rDTRport = (volatile unsigned int *)&(v_pIOPregs->rGPHDAT);
	pHWHead->rDSRport = (volatile unsigned int *)&(v_pIOPregs->rGPHDAT);
	pHWHead->DtrPortNum = 6;
	pHWHead->DsrPortNum = 7;*/
#else
	volatile IOPreg *s2410IOP;
	s2410IOP   = (volatile IOPreg *)IOP_BASE;

	EnterCriticalSection(&(pHWHead->RegCritSec));

	s2410IOP->rGPHCON &= ~(0x3<<8 | 0x3<<10 );
	s2410IOP->rGPHCON |= (0x2<<8 | 0x2<<10 );

	s2410IOP->rGPHUP  |= 0xc0;
/*	pHWHead->rDTRport = (volatile unsigned int *)(IOP_BASE+0x74); //s2410IOP->rGPHDAT
	pHWHead->rDSRport = (volatile unsigned int *)(IOP_BASE+0x74);
	pHWHead->DtrPortNum = 6;
	pHWHead->DsrPortNum = 7;*/
#endif
	}
	else if(pHWHead1->dwIOBase == 0x50008000)
	{
	#if USEVIRTUAL
	EnterCriticalSection(&(pHWHead->RegCritSec));
//2006-7-20 wsf

	v_pIOPregs->rGPHCON &= ~(0x3<<12 | 0x3<<14 );//clear rxd2 txd2
	v_pIOPregs->rGPHCON |= (0x2<<12 | 0x2<<14 );//enabled rxd2 txd2

	v_pIOPregs->rGPHUP  |= 0xc0;
/*	pHWHead->rDTRport = (volatile unsigned int *)&(v_pIOPregs->rGPHDAT);
	pHWHead->rDSRport = (volatile unsigned int *)&(v_pIOPregs->rGPHDAT);
	pHWHead->DtrPortNum = 6;
	pHWHead->DsrPortNum = 7;*/
#else
	volatile IOPreg *s2410IOP;
	s2410IOP   = (volatile IOPreg *)IOP_BASE;

	EnterCriticalSection(&(pHWHead->RegCritSec));

	s2410IOP->rGPHCON &= ~(0x3<<12 | 0x3<<14  );
	s2410IOP->rGPHCON |= (0x2<<12 | 0x2<<14 );

	s2410IOP->rGPHUP  |= 0xc0;
/*	pHWHead->rDTRport = (volatile unsigned int *)(IOP_BASE+0x74); //s2410IOP->rGPHDAT
	pHWHead->rDSRport = (volatile unsigned int *)(IOP_BASE+0x74);
	pHWHead->DtrPortNum = 6;
	pHWHead->DsrPortNum = 7;*/
#endif
	}

	LeaveCriticalSection(&(pHWHead->RegCritSec));
}

VOID
S2410_SetIOP(
       PVOID   pHead // @parm points to device head
       )
{
	PS2410_UART_INFO   pHWHead   = (PS2410_UART_INFO)pHead;

	if ( pHWHead->UseIrDA )
	{
		RETAILMSG(DEBUGMODE, (TEXT("S2410_SetIOP : IRDA\r\n")));
		S2410_SetIrDAIOP(pHWHead);
	}
	else
	{
		RETAILMSG(DEBUGMODE, (TEXT("S2410_SetIOP : SERIAL\r\n")));
		S2410_SetSerialIOP(pHWHead);
	}
}


//
/////////////////// Start of exported entrypoints ////////////////
//
//
// @doc OEM 
// @func PVOID | SL_Open | Configures 16550 for default behaviour.
//
VOID
SL_Open(
       PVOID   pHead // @parm PVOID returned by HWinit.
       )
{
	PS2410_UART_INFO pHWHead = (PS2410_UART_INFO)pHead;

	RETAILMSG(1, (TEXT("SL_Open 0x%X (%d opens)\r\n"), pHead, pHWHead->OpenCount));
	// If the device is already open, all we do is increment count
	if ( pHWHead->OpenCount++ ) {
		RETAILMSG(1, (TEXT("SL_Open 0x%X (%d opens)\r\n"), pHead, pHWHead->OpenCount));
		return ;
	}

	pHWHead->DroppedBytes = 0;
	pHWHead->CTSFlowOff = FALSE;  // Not flowed off yet
	pHWHead->DSRFlowOff = FALSE;  // Not flowed off yet
	pHWHead->CommErrors   = 0;
	pHWHead->ModemStatus  = 0;
	pHWHead->ConSetup = 6;
	pHWHead->vUMSTAT = 0;
	pHWHead->fSW_EnTxINT = FALSE;

	EnterCriticalSection(&(pHWHead->RegCritSec));
	try {
		S2410_SetIOP(pHead);

		// Get defaults from the DCB structure
		SL_SetBaudRate( pHead, pHWHead->dcb.BaudRate );
		SL_SetByteSize( pHead, pHWHead->dcb.ByteSize );
		SL_SetStopBits( pHead, pHWHead->dcb.StopBits );
		SL_SetParity(pHead, pHWHead->dcb.Parity );

		// UART Control, Modem, Fifo register setting.
		OUTREG(pHWHead,rUCON,0x2c5);   //Clock selection=PCLK, tx=level,rx=pulse,enable timeout int.,
		//enable rx error int., Tx int, Rx int
		OUTREG(pHWHead,rUFCON,0x6);    // Reset FIFO
		OUTREG(pHWHead,rUFCON,0x41);   //FIFO enable : tx-4bytes, rx-4bytes
		//OUTREG(pHWHead,rUMCON,0x10);   //Enable auto flow control.
		OUTREG(pHWHead,rUMCON,0x00);   //Enable auto flow control.

		if ( pHWHead->UseIrDA )
			SETREG(pHWHead,rULCON,SER2410_IRMODE_MASK);   // Infra-red mode enable.

		EnINT(pHWHead, pHWHead->bINT);
		EnSubINT(pHWHead, pHWHead->bRxINT);

		// For CE 3.0, we are still supporting
		// the old style MDDs, and they don't call our PostInit, which
		// needs to happen sometime prior to this.  So for now, we go ahead
		// ahead and clear out interrupts one last time.  In 4.0, we can
		// kill the old serial MDD and assume that everyone uses the new
		// MDD and calls post init.  

		SL_PostInit(pHWHead);
		ReadLSR(pHWHead);
	}
	except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
		EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
		// Just get out of here.
	}
	LeaveCriticalSection(&(pHWHead->RegCritSec));
}

//
// @doc OEM 
// @func PVOID | SL_Close | Does nothing except keep track of the
// open count so that other routines know what to do.
//
VOID
SL_Close(
        PVOID   pHead // @parm PVOID returned by HWinit.
        )
{
	PS2410_UART_INFO pHWHead = (PS2410_UART_INFO)pHead;

	RETAILMSG(DEBUGMODE, (TEXT("SL_Close \r\n")));
	if ( pHWHead->OpenCount )	pHWHead->OpenCount--;

	EnterCriticalSection(&(pHWHead->RegCritSec));
	try {
		SL_ClearRTS( pHWHead );
		OUTREG(pHWHead,rUMSTAT,0x0);

		// Disable all interrupts and clear MCR.
		DisEnSubINT(pHWHead, pHWHead->bRxINT);
		pHWHead->fSW_EnTxINT = FALSE;

		// This routhine for auto detect.
		S2410_SetIrDAIOP(pHead);
	}
	except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
		EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
		// Just get out of here.
	}
	LeaveCriticalSection(&(pHWHead->RegCritSec));
}

//
// @doc OEM 
// @func PVOID | SL_Init | Initializes 16550 device head.  
//
/*
VOID
SL_Init(
       PVOID   pHead, // @parm points to device head
       PUCHAR  pRegBase, // Pointer to 16550 register base
       UINT8   RegStride, // Stride amongst the 16550 registers
       EVENT_FUNC EventCallback, // This callback exists in MDD
       PVOID   pMddHead,   // This is the first parm to callback
       PLOOKUP_TBL   pBaudTable  // BaudRate Table
       )
{
	PS2410_UART_INFO   pHWHead   = (PS2410_UART_INFO)pHead;

	RETAILMSG(DEBUGMODE, (TEXT("SL_Init : IRDA = %d \r\n"), pHWHead->UseIrDA));
#if USEVIRTUAL
	SER_VirtualAlloc();
#endif

	if ( pHWHead->UseIrDA )
	{
		pHWHead->bINT = BIT_UART2;
		pHWHead->bTxINT = INTSUB_TXD2;
		pHWHead->bRxINT = INTSUB_RXD2;
		pHWHead->bErrINT = INTSUB_ERR2;
#if USEVIRTUAL
		pHWHead->s2410SerReg = (S2410_UART_REG *)v_pUART2regs;
		pRegBase = (PUCHAR)pHWHead->s2410SerReg;
#else		
		pRegBase = (PUCHAR)UART2_BASE;
		pHWHead->s2410SerReg = (S2410_UART_REG *)pRegBase;
#endif
	}
	else
	{
		pHWHead->bINT = BIT_UART0;
		pHWHead->bTxINT = INTSUB_TXD0;
		pHWHead->bRxINT = INTSUB_RXD0;
		pHWHead->bErrINT = INTSUB_ERR0;
#if USEVIRTUAL
		pHWHead->s2410SerReg = (S2410_UART_REG *)v_pUART0regs;
		pRegBase = (PUCHAR)pHWHead->s2410SerReg;
#else		
		pRegBase = (PUCHAR)UART0_BASE;
		pHWHead->s2410SerReg = (S2410_UART_REG *)pRegBase;
#endif	
	}

#if USEVIRTUAL
	pHWHead->UART_INTMASK = (volatile unsigned int *)&(v_pINTregs->rINTMSK);
	pHWHead->UART_INTSUBMASK = (volatile unsigned int *)&(v_pINTregs->rINTSUBMSK);
	pHWHead->UART_INTPND = (volatile unsigned int *)&(v_pINTregs->rINTPND);
	pHWHead->UART_INTSRCPND = (volatile unsigned int *)&(v_pINTregs->rSRCPND);
	pHWHead->UART_INTSUBSRCPND = (volatile unsigned int *)&(v_pINTregs->rSUBSRCPND);
#else
	pHWHead->UART_INTMASK = (volatile unsigned int *)(INT_BASE+0x8);
	pHWHead->UART_INTSUBMASK = (volatile unsigned int *)(INTSUB_MSK);
	pHWHead->UART_INTPND = (volatile unsigned int *)(INT_BASE+0x10);
	pHWHead->UART_INTSRCPND = (volatile unsigned int *)(INT_BASE);
	pHWHead->UART_INTSUBSRCPND = (volatile unsigned int *)(INTSUB_BASE);
#endif
	pHWHead->vUMSTAT = 0;

#if USEVIRTUAL
	if ( pHWHead->UseIrDA )
	{
		pHWHead->pUFTXH = (volatile unsigned char *)&(v_pUART2regs->rUTXH);
		pHWHead->pUFRXH = (volatile unsigned char *)&(v_pUART2regs->rURXH);    
	}
	else
	{
		pHWHead->pUFTXH = (volatile unsigned char *)&(v_pUART0regs->rUTXH);
		pHWHead->pUFRXH = (volatile unsigned char *)&(v_pUART0regs->rURXH);    
	}
#else
	pHWHead->pUFTXH = (volatile unsigned char *)&(pHWHead->s2410SerReg->rUTXH);
	pHWHead->pUFRXH = (volatile unsigned char *)&(pHWHead->s2410SerReg->rURXH);    
#endif

	InitializeCriticalSection(&(pHWHead->TransmitCritSec));
	InitializeCriticalSection(&(pHWHead->RegCritSec));

	RETAILMSG(DEBUGMODE, (TEXT("+ S2410_SetIrDAIOP \r\n")));
	S2410_SetIrDAIOP(pHead);
	RETAILMSG(DEBUGMODE, (TEXT("- S2410_SetIrDAIOP \r\n")));

	// Store info for callback function
	pHWHead->EventCallback = EventCallback;
	pHWHead->pMddHead = pMddHead;

	// Now set up remaining fields
	if ( pBaudTable != NULL )
		pHWHead->pBaudTable = (LOOKUP_TBL *) pBaudTable;
	else
		pHWHead->pBaudTable = (LOOKUP_TBL *) &LS_BaudTable;
	pHWHead->FlushDone      = CreateEvent(0, FALSE, FALSE, NULL);

	pHWHead->OpenCount = 0;

	// Don't allow any interrupts till PostInit.
	DisEnINT(pHWHead, pHWHead->bINT);
	DisEnSubINT(pHWHead, pHWHead->bTxINT | pHWHead->bRxINT | pHWHead->bErrINT);

	pHWHead->fSW_EnTxINT = FALSE;
	pHWHead->RxDiscard = FALSE;

	// Clear any interrupts which may be pending.  Normally only
	// happens if we were warm reset.
	ClearPendingInts( pHWHead );
}*/

VOID
SL_Init(
       PVOID   pHead, // @parm points to device head
       PUCHAR  pRegBase, // Pointer to 16550 register base
       UINT8   RegStride, // Stride amongst the 16550 registers
       EVENT_FUNC EventCallback, // This callback exists in MDD
       PVOID   pMddHead,   // This is the first parm to callback
       PLOOKUP_TBL   pBaudTable  // BaudRate Table
       )
{
	PS2410_UART_INFO   pHWHead   = (PS2410_UART_INFO)pHead;
	PSER_INFO	   pHWHead1  = (PSER_INFO)pHead;

	RETAILMSG(DEBUGMODE, (TEXT("SL_Init : IRDA = %d \r\n"), pHWHead->UseIrDA));
#if USEVIRTUAL
	SER_VirtualAlloc();
#endif

	if ( pHWHead->UseIrDA )
	{
		pHWHead->bINT = BIT_UART2;
		pHWHead->bTxINT = INTSUB_TXD2;
		pHWHead->bRxINT = INTSUB_RXD2;
		pHWHead->bErrINT = INTSUB_ERR2;
#if USEVIRTUAL
		pHWHead->s2410SerReg = (S2410_UART_REG *)v_pUART2regs;
		pRegBase = (PUCHAR)pHWHead->s2410SerReg;
#else		
		pRegBase = (PUCHAR)UART2_BASE;
		pHWHead->s2410SerReg = (S2410_UART_REG *)pRegBase;
#endif
	}
	else
	{
		if(pHWHead1->dwIOBase == 0x50000000)	// add by perry
		{
			pHWHead->bINT = BIT_UART0;
			pHWHead->bTxINT = INTSUB_TXD0;
			pHWHead->bRxINT = INTSUB_RXD0;
			pHWHead->bErrINT = INTSUB_ERR0;
		#if USEVIRTUAL
			pHWHead->s2410SerReg = (S2410_UART_REG *)v_pUART0regs;
			pRegBase = (PUCHAR)pHWHead->s2410SerReg;
		#else		
			pRegBase = (PUCHAR)UART0_BASE;
			pHWHead->s2410SerReg = (S2410_UART_REG *)pRegBase;
		#endif
		}
		else if(pHWHead1->dwIOBase == 0x50004000)
		{
			pHWHead->bINT = BIT_UART1;
			pHWHead->bTxINT = INTSUB_TXD1;
			pHWHead->bRxINT = INTSUB_RXD1;
			pHWHead->bErrINT = INTSUB_ERR1;
		#if USEVIRTUAL
			pHWHead->s2410SerReg = (S2410_UART_REG *)v_pUART1regs;
			pRegBase = (PUCHAR)pHWHead->s2410SerReg;
		#else		
			pRegBase = (PUCHAR)UART1_BASE;
			pHWHead->s2410SerReg = (S2410_UART_REG *)pRegBase;
		#endif
			
		}
		else if(pHWHead1->dwIOBase == 0x50008000)
		{			
			pHWHead->bINT = BIT_UART2;
			pHWHead->bTxINT = INTSUB_TXD2;
			pHWHead->bRxINT = INTSUB_RXD2;
			pHWHead->bErrINT = INTSUB_ERR2;
		#if USEVIRTUAL
			pHWHead->s2410SerReg = (S2410_UART_REG *)v_pUART2regs;
			pRegBase = (PUCHAR)pHWHead->s2410SerReg;
		#else		
			pRegBase = (PUCHAR)UART2_BASE;
			pHWHead->s2410SerReg = (S2410_UART_REG *)pRegBase;
		#endif
		}
	}

#if USEVIRTUAL
	pHWHead->UART_INTMASK = (volatile unsigned int *)&(v_pINTregs->rINTMSK);
	pHWHead->UART_INTSUBMASK = (volatile unsigned int *)&(v_pINTregs->rINTSUBMSK);
	pHWHead->UART_INTPND = (volatile unsigned int *)&(v_pINTregs->rINTPND);
	pHWHead->UART_INTSRCPND = (volatile unsigned int *)&(v_pINTregs->rSRCPND);
	pHWHead->UART_INTSUBSRCPND = (volatile unsigned int *)&(v_pINTregs->rSUBSRCPND);
#else
	pHWHead->UART_INTMASK = (volatile unsigned int *)(INT_BASE+0x8);
	pHWHead->UART_INTSUBMASK = (volatile unsigned int *)(INTSUB_MSK);
	pHWHead->UART_INTPND = (volatile unsigned int *)(INT_BASE+0x10);
	pHWHead->UART_INTSRCPND = (volatile unsigned int *)(INT_BASE);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美久久一二区| 一本色道久久综合亚洲精品按摩| 91理论电影在线观看| 久久久久久久久久久99999| 91麻豆自制传媒国产之光| 黄色日韩三级电影| 欧美四级电影在线观看| 欧美国产日产图区| 激情伊人五月天久久综合| 欧美性猛片xxxx免费看久爱| 国产日韩一级二级三级| 蜜桃av一区二区| 欧美伦理视频网站| 一区二区三区在线播放| 成人亚洲一区二区一| 精品国产乱码久久久久久牛牛 | 一区二区三区中文免费| 国产精品一区在线观看你懂的| 欧美久久久久久久久中文字幕| 亚洲视频免费看| 成人av免费在线| 国产色婷婷亚洲99精品小说| 久久精品国产色蜜蜜麻豆| 7777精品伊人久久久大香线蕉完整版 | 亚洲日本乱码在线观看| 粉嫩高潮美女一区二区三区| 精品国产乱码久久久久久夜甘婷婷 | 国产v综合v亚洲欧| 久久亚洲春色中文字幕久久久| 天天综合网天天综合色| 欧美日韩卡一卡二| 亚洲aaa精品| 5858s免费视频成人| 香蕉成人伊视频在线观看| 奇米888四色在线精品| 久久精品国产77777蜜臀| 亚洲一二三四区| 一区二区三区欧美久久| 亚洲另类一区二区| 亚洲欧美日韩久久精品| 亚洲精品国产视频| 天天综合网 天天综合色| 免费一级片91| 极品美女销魂一区二区三区免费| 99视频一区二区三区| 成人涩涩免费视频| 国产精品久久久久影院老司| 91亚洲国产成人精品一区二三 | 日韩免费一区二区三区在线播放| 在线成人小视频| 精品国产一区二区三区忘忧草 | 美女被吸乳得到大胸91| 日韩精品电影在线观看| 久久99精品久久久| 成人手机电影网| 欧美少妇bbb| 国产日产亚洲精品系列| 国产精品免费观看视频| 久久久噜噜噜久久中文字幕色伊伊 | 亚洲精品视频自拍| 在线日韩国产精品| 美女看a上一区| 日韩精品一区在线| 国产麻豆精品一区二区| 99久久久国产精品| 日韩一级大片在线| 亚洲午夜免费视频| 国产精品伊人色| 国产精品电影院| 视频一区中文字幕国产| 亚洲精品在线三区| 精品精品国产高清a毛片牛牛| 国产亚洲人成网站| 免费成人在线影院| 一区二区三区不卡视频| 亚洲最新视频在线观看| 精品国产凹凸成av人网站| 成人一区二区三区在线观看| 亚洲狠狠爱一区二区三区| 亚洲精品一区二区精华| 色婷婷国产精品综合在线观看| 美女尤物国产一区| 尤物av一区二区| 国产三级欧美三级| 日韩精品一区二| 欧美剧在线免费观看网站| 国产精品成人免费在线| 成人免费视频一区| 欧美国产日韩a欧美在线观看| 色婷婷综合久久久久中文| 欧美变态tickling挠脚心| 日本成人在线看| 国产精品高潮久久久久无| 亚洲天堂免费看| 日韩主播视频在线| 91在线观看视频| 日本成人在线看| 亚洲1区2区3区视频| 亚洲伦理在线免费看| 国产精品日产欧美久久久久| 精品国产伦一区二区三区观看方式| 欧美日韩视频在线一区二区| 国产精品区一区二区三| 欧洲精品中文字幕| 欧美成人福利视频| 国产精品久久久久久久久免费桃花 | 99riav一区二区三区| 日本高清不卡一区| 国产日韩精品一区二区三区| 玉足女爽爽91| 国产精品亚洲一区二区三区妖精| 亚洲婷婷综合色高清在线| 欧美一区二区三区四区五区 | 欧美综合视频在线观看| 在线不卡一区二区| 国产日产亚洲精品系列| 丝袜美腿亚洲综合| 国产一区二区三区精品视频| 91国偷自产一区二区开放时间| 欧美一区二区三区日韩视频| 久久一日本道色综合| 婷婷国产v国产偷v亚洲高清| 国产 日韩 欧美大片| 日韩欧美一区二区在线视频| 亚洲美女偷拍久久| 成人自拍视频在线| 久久精品亚洲麻豆av一区二区 | 中文字幕欧美国产| 精品无人码麻豆乱码1区2区| 91精品91久久久中77777| 国产午夜精品理论片a级大结局| 亚洲成人av福利| 欧美日韩一级视频| 亚洲成人激情综合网| 欧美日韩免费高清一区色橹橹| 日韩毛片精品高清免费| 99久久精品国产网站| 国产欧美久久久精品影院| 激情欧美一区二区| 国产亚洲1区2区3区| 福利电影一区二区三区| 自拍偷拍国产精品| 91久久香蕉国产日韩欧美9色| 亚洲无人区一区| 日韩午夜在线观看| 日韩影视精彩在线| 九色综合国产一区二区三区| 久久电影网站中文字幕| 色综合久久久久网| 欧美中文字幕一区二区三区| 91精品欧美久久久久久动漫 | 国产成人自拍网| 国产精品超碰97尤物18| 亚洲国产美国国产综合一区二区| 日本不卡视频一二三区| 成人国产在线观看| 91丨九色porny丨蝌蚪| 亚洲女人****多毛耸耸8| 日韩av在线发布| av成人免费在线观看| 91精品国产综合久久久蜜臀图片| 国产午夜亚洲精品不卡| 日韩精品一二三| 久久在线免费观看| 久久久国产午夜精品 | 久久久99久久精品欧美| 国产精品久久午夜| 久久99精品视频| 欧美成人aa大片| 香蕉加勒比综合久久| 国产亚洲精品bt天堂精选| 国产99久久久国产精品潘金| 欧美三级三级三级| 亚洲卡通动漫在线| 成人av网站免费观看| 久久久久国产精品厨房| 热久久国产精品| 欧美日韩在线播放一区| 亚洲一区二区三区激情| 欧美日韩一区在线观看| 亚洲免费电影在线| 色噜噜狠狠色综合中国| 亚洲欧美另类在线| 色综合天天综合在线视频| 成人欧美一区二区三区小说| 99国产欧美久久久精品| 亚洲情趣在线观看| 欧美三级在线看| 久久草av在线| 亚洲三级在线免费观看| av激情综合网| 国产精品99久久久久久久vr| 青青草成人在线观看| 国产精一区二区三区| 日韩一区二区三区在线观看| 青青草国产精品亚洲专区无| 久久久亚洲午夜电影| 91在线免费看| 午夜视频在线观看一区| 国产午夜精品一区二区三区视频 |