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

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

?? scif0.c

?? WinCE5.0BSP for Renesas SH7770
?? C
?? 第 1 頁 / 共 2 頁
字號:
//
//  Copyright(C) Renesas Technology Corp. 1999-2004. All rights reserved.
//
//  Serial(SCIF0) driver for ITS-DS7
//
//  FILE      : scif0.c
//  CREATED   : 2002.06.26
//  MODIFIED  : 2004.09.01
//  AUTHOR    : Renesas Technology Corp.
//  HARDWARE  : RENESAS ITS-DS7
//  HISTORY   : 
//              2003.06.20
//              - Created release code.
//                (based on Serial driver for 
//                          ITS-DS4 Source Kit Ver.1.2.0 for WCE 4.2)
//              2003.11.25
//              - Transmitting processing was changed into exclusion 
//              - Changed for corresponding to COM_MDD2.
//              - Bug fixed. (fail,etc in CETK)
//              2004.09.01
//              - Created release code for WCE5.0.
//

#include <windows.h>
#include <types.h>
#include <ceddk.h>
#include <memory.h>
#include <notify.h>
#include <serhw.h>
#include <nkintr.h>
#include <oalintr.h>
#include <devload.h>
#include <windev.h>
#undef ZONE_INIT
#include <serdbg.h>
#include <celog.h> 
#include <its_ds7.h>
#include <drv_glob.h>
#include <sh7770.h>
#include "..\inc\scif.h"

#define RX_FLOW_CONTROL 1

extern BOOL SCIF_PostInit(
         PVOID   pHead   // @parm PVOID returned by SerInit.
         );

// Miscellaneous internal routines. (scif_cmn.c)
extern PUCHAR Ser_InternalMapRegisterAddresses(
				ULONG   HWAddress,
				ULONG   Size );

extern const HW_VTBL SCIF3IoVTbl;
/*
 @doc OEM 
 @func PVOID | SerInit | Initializes device identified by argument.
 *  This routine sets information controlled by the user
 *  such as Line control and baud rate. It can also initialize events and
 *  interrupts, thereby indirectly managing initializing hardware buffers.
 *  Exported only to driver, called only once per process.
 *
 @rdesc The return value is a PVOID to be passed back into the HW
 dependent layer when HW functions are called.
 */
static
PVOID
SCIF0Init(
       ULONG   Identifier, // @parm Device identifier.
       PVOID   pMddHead,   // @parm First argument to mdd callbacks.
       PHWOBJ  pHWObj      // @parm Pointer to our own HW OBJ for this device

       )
{
    PSCIF_INFO   pHWHead;

     // Allocate for our main data structure and one of it's fields.
    pHWHead = (PSCIF_INFO)LocalAlloc( LMEM_ZEROINIT|LMEM_FIXED , sizeof(SCIF_INFO) );
    if ( !pHWHead )
        goto ALLOCFAILED;

    if ( ! Ser_GetRegistryData(pHWHead, (LPCTSTR)Identifier) ) {
        DEBUGMSG (ZONE_INIT|ZONE_ERROR,
                  (TEXT("SCIF0Init - Unable to read registry data.  Failing Init !!! \r\n")));
        goto ALLOCFAILED;
    }

     // This call will map the address space for the 16550 UART.  
    if ( !(pHWHead->pBaseAddress   = Ser_InternalMapRegisterAddresses(
        SCIF0_REGBASE, SCIF0_REGSIZE )) )
		goto ALLOCFAILED;

    pHWHead -> pSMR    = (volatile USHORT *)((PVBYTE)pHWHead -> pBaseAddress + SCIF_SCSMR_OFFSET);
    pHWHead -> pBRR    = (volatile BYTE *)((PVBYTE)pHWHead -> pBaseAddress   + SCIF_SCBRR_OFFSET);
    pHWHead -> pSCR    = (volatile USHORT *)((PVBYTE)pHWHead -> pBaseAddress + SCIF_SCSCR_OFFSET);
    pHWHead -> pFTDR   = (volatile BYTE *)((PVBYTE)pHWHead -> pBaseAddress   + SCIF_SCFTDR_OFFSET);
    pHWHead -> pFSR    = (volatile USHORT *)((PVBYTE)pHWHead -> pBaseAddress + SCIF_SCFSR_OFFSET);
    pHWHead -> pFRDR   = (volatile BYTE *)((PVBYTE)pHWHead -> pBaseAddress   + SCIF_SCFRDR_OFFSET);
    pHWHead -> pFCR    = (volatile USHORT *)((PVBYTE)pHWHead -> pBaseAddress + SCIF_SCFCR_OFFSET);
    pHWHead -> pFDR    = (volatile USHORT *)((PVBYTE)pHWHead -> pBaseAddress + SCIF_SCFDR_OFFSET);
    pHWHead -> pSPTR   = (volatile USHORT *)((PVBYTE)pHWHead -> pBaseAddress + SCIF_SCSPTR_OFFSET);
    pHWHead -> pLSR    = (volatile USHORT *)((PVBYTE)pHWHead -> pBaseAddress + SCIF_SCLSR_OFFSET);
    pHWHead -> pBRGDL  = (volatile USHORT *)((PVBYTE)pHWHead -> pBaseAddress + SCIF_BRG_DL);
    pHWHead -> pBRGCKS = (volatile USHORT *)((PVBYTE)pHWHead -> pBaseAddress + SCIF_BRG_CKS);

    pHWHead -> EventCallback = (EVENT_FUNC)EvaluateEventFlag;
    pHWHead -> pMddHead	     = pMddHead;
    pHWHead -> pHWObj        = pHWObj;
    pHWHead -> OpenCount     = 0;

     // Set up our Comm Properties data
    pHWHead->CommProp.wPacketLength      = 0xffff;
    pHWHead->CommProp.wPacketVersion     = 0xffff;
    pHWHead->CommProp.dwServiceMask      = SP_SERIALCOMM;
    pHWHead->CommProp.dwReserved1	     = 0;
    pHWHead->CommProp.dwMaxTxQueue	     = 16;
    pHWHead->CommProp.dwMaxRxQueue	     = 16;
    pHWHead->CommProp.dwMaxBaud	         = BAUD_115200;
    pHWHead->CommProp.dwProvSubType      = PST_RS232;
    pHWHead->CommProp.dwProvCapabilities = PCF_RTSCTS |
                                           PCF_SETXCHAR |
                                           PCF_INTTIMEOUTS |
                                           PCF_PARITY_CHECK |
                                           PCF_SPECIALCHARS |
                                           PCF_TOTALTIMEOUTS |
                                           PCF_XONXOFF;
    pHWHead->CommProp.dwSettableBaud     = BAUD_110 |
                                           BAUD_300 |
                                           BAUD_600 |
                                           BAUD_1200 |
                                           BAUD_2400 |
                                           BAUD_4800 |
                                           BAUD_9600 |
                                           BAUD_19200 |
                                           BAUD_38400 |
                                           BAUD_57600 |
                                           BAUD_115200 ;
    pHWHead->CommProp.dwSettableParams   = SP_BAUD |
                                           SP_DATABITS |
                                           SP_HANDSHAKING |
                                           SP_PARITY |
                                           SP_PARITY_CHECK |
                                           SP_STOPBITS;
    pHWHead->CommProp.wSettableData      = DATABITS_7 |
                                           DATABITS_8;
    pHWHead->CommProp.wSettableStopParity = STOPBITS_10 |
                                            STOPBITS_20 |
                                            PARITY_NONE |
                                            PARITY_ODD  |
                                            PARITY_EVEN;

	if ( !(pHWHead -> FlushDone = CreateEvent(0, FALSE, FALSE, NULL)) )
		goto ALLOCFAILED;

	if ( !(pHWHead -> pTxBuff = (PBYTE)Ser_InternalMapRegisterAddresses
				( SCIF0_TX_BUFFER_BASE, SCIF0_TXBUFFER_SIZE )) )
		goto ALLOCFAILED;
	if ( !(pHWHead -> pRxBuff = (PBYTE)Ser_InternalMapRegisterAddresses
				( SCIF0_RX_BUFFER_BASE, SCIF0_RXBUFFER_SIZE * 2 )) )
		goto ALLOCFAILED;

	if ( !dma_Init(CH_TX_SCIF0, &(pHWHead -> pTxDma)) )
		goto ALLOCFAILED;

	if ( !dma_Init(CH_RX_SCIF0, &(pHWHead -> pRxDma)) )
		goto ALLOCFAILED;

    pHWHead -> ulRxDmaRegBase = SCIF0_REGBASE + SCIF_SCFRDR_OFFSET;
    pHWHead -> ulRxDmaBuffBase1 = SCIF0_RX_BUFFER_BASE;
    pHWHead -> ulRxDmaBuffBase2 = SCIF0_RX_BUFFER_BASE + SCIF0_RXBUFFER_SIZE;
    pHWHead -> ulRxDmaBuffSize = SCIF0_RXBUFFER_SIZE;
    pHWHead -> dwRxDmaPort =  DPTR_SDPT_SCIF0;

    pHWHead -> bFirstBaudRate = FALSE;

    InitializeCriticalSection(&(pHWHead->TransmitCritSec));
    InitializeCriticalSection(&(pHWHead->RegCritSec));
    pHWHead->PowerDown = FALSE;
    pHWHead->bSuspendResume = FALSE;

    DEBUGMSG (ZONE_INIT,
              (TEXT("SCIF_Init - Disabling UART Power\r\n")));
    pHWHead->fIRMode  = FALSE;   // Select wired by default

    DEBUGMSG(ZONE_INIT, (TEXT("Revision %08x \r\n"), (ULONG)READ_REGISTER_USHORT(pHWHead -> pSMR) ));
    DEBUGMSG(ZONE_INIT, (TEXT("%08x \r\n"), (ULONG)READ_REGISTER_UCHAR(pHWHead -> pBRR) ));
    DEBUGMSG(ZONE_INIT, (TEXT("%08x \r\n"), (ULONG)READ_REGISTER_USHORT(pHWHead -> pSCR) ));
    DEBUGMSG(ZONE_INIT, (TEXT("%08x \r\n"), (ULONG)READ_REGISTER_UCHAR( pHWHead -> pFTDR ) ));
//    RETAILMSG(1, (TEXT("%08x \r\n"), (ULONG)READ_REGISTER_ULONG(pHWHead -> pFSR) ));
//    RETAILMSG(1, (TEXT("%08x \r\n"), (ULONG)READ_REGISTER_ULONG(pHWHead -> pFRDR) ));
//    RETAILMSG(1, (TEXT("%08x \r\n"), (ULONG)READ_REGISTER_ULONG(pHWHead -> pFCR) ));
//    RETAILMSG(1, (TEXT("%08x \r\n"), (ULONG)READ_REGISTER_ULONG(pHWHead -> pFDR) ));
//    RETAILMSG(1, (TEXT("%08x \r\n"), (ULONG)READ_REGISTER_ULONG(pHWHead -> pSPTR) ));
//    RETAILMSG(1, (TEXT("%08x \r\n"), (ULONG)READ_REGISTER_ULONG(pHWHead -> pLSR) ));
//    RETAILMSG(1, (TEXT("%08x \r\n"), (ULONG)READ_REGISTER_ULONG(pHWHead -> pBRGDL) ));
//    RETAILMSG(1, (TEXT("%08x \r\n"), (ULONG)READ_REGISTER_ULONG(pHWHead -> pBRGCKS) ));
 
//	WRITE_REGISTER_USHORT((pHWHead -> pSMR),
//		(READ_REGISTER_USHORT(pHWHead -> pSMR) | 0x00000011));
//	WRITE_REGISTER_USHORT((pHWHead -> pSCR),
//		(READ_REGISTER_USHORT(pHWHead -> pSCR) | 0x00000011));

	return pHWHead;
 
ALLOCFAILED:
    if ( pHWHead -> pBaseAddress )
        VirtualFree((PVOID)pHWHead -> pBaseAddress, 0, MEM_RELEASE);
    if ( pHWHead -> FlushDone )
	CloseHandle( pHWHead -> FlushDone ); 
    if ( pHWHead -> pTxBuff )
        VirtualFree((PVOID)pHWHead -> pTxBuff, 0, MEM_RELEASE);
    if ( pHWHead -> pRxBuff )
        VirtualFree((PVOID)pHWHead -> pRxBuff, 0, MEM_RELEASE);
	
    LocalFree( pHWHead );
    return NULL;
}



/*
 @doc OEM
 @func BOOL | SerOpen | This routine is called when the port is opened.
 *  Not exported to users, only to driver.
 *
 @rdesc Returns TRUE if successful, FALSEotherwise.
 */
static
BOOL
SCIF0Open(
       PVOID   pHead /*@parm PVOID returned by Serinit. */
       )
{

    PSCIF_INFO	pHWHead = (PSCIF_INFO)pHead;
    DWORD	dcr_value;

     // Disallow multiple simultaneous opens
    if( pHWHead->OpenCount )
        return FALSE;

    pHWHead->OpenCount++;

    DEBUGMSG (ZONE_OPEN,
              (TEXT("SCIF0_Open - Selecting Non IR Mode\r\n")));

    pHWHead->fIRMode  = FALSE;   // Select wired by default

    pHWHead->SMR = 0;
    pHWHead->FCR = 0;
    pHWHead->BRR = 0;
    pHWHead->SCR = 0;
    pHWHead->BRGDL = 0;
    pHWHead->BRGCKS = 0;
    pHWHead->DroppedBytes = 0;
    pHWHead->CTSFlowOff = FALSE;  // Not flowed off yet
    pHWHead->DSRFlowOff = FALSE;  // Not flowed off yet
    pHWHead->CommErrors   = 0;
    pHWHead->ModemStatus  = 0;

    WRITE_REGISTER_USHORT(pHWHead -> pSCR, 0);
    WRITE_REGISTER_USHORT(pHWHead -> pFSR, 0);
    WRITE_REGISTER_UCHAR(pHWHead -> pBRR, 0);
    WRITE_REGISTER_USHORT(pHWHead -> pSPTR, SCIF_SPTR_RTSIO);

    pHWHead->ulReceiveDmaBufferPointer = 0;

    WRITE_REGISTER_USHORT(pHWHead -> pFCR, SCIF_FCR_TFRST | SCIF_FCR_RFRST);

    WRITE_REGISTER_USHORT(pHWHead -> pSMR, SCIF_SMR_ASYNC|SCIF_SMR_CKS_1|SCIF_SMR_8BIT|SCIF_SMR_1STOP);

	// Set Default Value
	pHWHead->dcb.BaudRate = 9600;
	pHWHead->dcb.ByteSize = DATABITS_8;
	pHWHead->dcb.StopBits = ONESTOPBIT;
	pHWHead->dcb.Parity   = NOPARITY;

    SCIF_SetBaudRate(pHWHead, pHWHead -> dcb.BaudRate);
    SCIF_SetByteSize(pHWHead, pHWHead -> dcb.ByteSize);
    SCIF_SetStopBits(pHWHead, pHWHead -> dcb.StopBits);
    SCIF_SetParity(  pHWHead, pHWHead -> dcb.Parity);

    WRITE_REGISTER_USHORT(pHWHead -> pFCR, SCIF_FCR_RSTRG_15 | SCIF_FCR_RTRG_14 | SCIF_FCR_TTRG_0);

    WRITE_REGISTER_USHORT(pHWHead -> pSCR, SCIF_SCR_CKE_2);
    dcr_value = DCR_DPDS_8BIT		|
				DCR_DDRMD_MODULE	|
				DCR_DPDAM_FIX	 	|
				DCR_DMDL_MEMORY		|
				DCR_SPDS_8BIT		|
				DCR_SDRMD_MODULE	|
				DCR_SPDAM_FIX		|
				DCR_SMDL_PERIPHERAL	|
				DCR_DIP_2PAGE		|
				DCR_ACMD_ENABLE		|
				DCR_CT_ENABLE		|
				DCR_PKMD_DISABLE	|
				DCR_BTMD_DISABLE	|
				DCR_DTAU_BYTE		|
				DCR_DTAC_DISABLE	;	

    dma_SetPage(pHWHead -> pRxDma, 0, pHWHead -> ulRxDmaRegBase,
				   pHWHead -> ulRxDmaBuffBase1, pHWHead -> ulRxDmaBuffSize);
    dma_SetPage(pHWHead -> pRxDma, 1, pHWHead -> ulRxDmaRegBase,
				   pHWHead -> ulRxDmaBuffBase2, pHWHead -> ulRxDmaBuffSize); 
    dma_SetPort(pHWHead -> pRxDma, pHWHead -> dwRxDmaPort);
    dma_SetControl(pHWHead -> pRxDma, dcr_value);
    dma_SetCommand(pHWHead -> pRxDma, DCMDR_DMEN);
    
#if (SH7770_REVISION == SH7770_1STCUT)
		WRITE_REGISTER_USHORT(pHWHead -> pSCR,
				 SCIF_SCR_TOIE|SCIF_SCR_TE|SCIF_SCR_RE|SCIF_SCR_REIE|SCIF_SCR_CKE_2|SCIF_SCR_RIE);
#else
		WRITE_REGISTER_USHORT(pHWHead -> pSCR,
				 SCIF_SCR_TOIE|SCIF_SCR_TE|SCIF_SCR_RE|SCIF_SCR_REIE|SCIF_SCR_CKE_2);
#endif
		
    dma_InterruptEnable(pHWHead -> pRxDma);

    ReadModemStatus( pHWHead );

    return TRUE;
}



//
// @doc OEM
// @func VOID | SCIF_ClearRTS | This routine clears RTS.
// 
// @rdesc None.
// 
VOID
SCIF0ClearRTS(
    PVOID   pHead // @parm PVOID returned by HWinit.
    )
{
    PSCIF_INFO   pHWHead   = (PSCIF_INFO)pHead;

    DEBUGMSG (ZONE_FUNCTION, (TEXT("+SerClearRTS, 0x%X\r\n"), pHead));
    EnterCriticalSection(&(pHWHead->RegCritSec));
    try {
    	// Clear RTS
        USHORT SPR = READ_REGISTER_USHORT(pHWHead -> pSPTR);
        SPR &= ~SCIF_SPTR_RTS;
        WRITE_REGISTER_USHORT(pHWHead -> pSPTR, SPR);
    }
    except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
            EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
        // Just exit
    }
    LeaveCriticalSection(&(pHWHead->RegCritSec));

    DEBUGMSG (ZONE_FUNCTION, (TEXT("-SerClearRTS, 0x%X\r\n"), pHead));
}

//
// @doc OEM
// @func VOID | SCIF_SetRTS | This routine sets RTS.
// 
// @rdesc None.
//
VOID
SCIF0SetRTS(
    PVOID   pHead // @parm PVOID returned by HWinit.
    )
{
    PSCIF_INFO   pHWHead   = (PSCIF_INFO)pHead;

    DEBUGMSG (ZONE_FUNCTION, (TEXT("+SetSetRTS, 0x%X\r\n"), pHead));

    EnterCriticalSection(&(pHWHead->RegCritSec));
    try {
    	// Set RTS
        USHORT SPR = READ_REGISTER_USHORT(pHWHead -> pSPTR);
        SPR |= SCIF_SPTR_RTS;
        WRITE_REGISTER_USHORT(pHWHead -> pSPTR, SPR);
    }
    except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
            EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
        // Just exit
    }
    LeaveCriticalSection(&(pHWHead->RegCritSec));

    DEBUGMSG (ZONE_FUNCTION, (TEXT("-SetSetRTS, 0x%X\r\n"), pHead));
}


//
// @doc OEM
// @func ULONG | SCIF_GetGetInterruptType | This function is called
//   by the MDD whenever an interrupt occurs.  The return code
//   is then checked by the MDD to determine which of the four
//   interrupt handling routines are to be called.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品网站导航| 国产欧美日韩精品在线| 97精品久久久午夜一区二区三区| 美女一区二区三区在线观看| 美女视频第一区二区三区免费观看网站| 亚洲免费观看高清完整版在线| 中文字幕日本乱码精品影院| 亚洲欧美一区二区三区国产精品| ...av二区三区久久精品| 亚洲视频你懂的| 一区二区免费在线| 亚洲国产一区二区视频| 日韩精品亚洲专区| 狠狠v欧美v日韩v亚洲ⅴ| 国产精品综合在线视频| 波多野结衣亚洲| 色婷婷精品久久二区二区蜜臂av | 同产精品九九九| 亚洲午夜成aⅴ人片| 日韩在线观看一区二区| 久草精品在线观看| 成人激情小说乱人伦| 色哟哟日韩精品| 欧美精品成人一区二区三区四区| 欧美电影免费观看高清完整版在 | 亚洲人成在线观看一区二区| 亚洲综合免费观看高清在线观看| 亚洲自拍偷拍av| 精品一区二区精品| 91香蕉视频黄| 911精品国产一区二区在线| 久久亚洲一区二区三区明星换脸| 亚洲免费观看高清完整版在线观看熊| 视频在线在亚洲| 丁香婷婷综合五月| 欧美色视频在线| 久久久99久久| 五月婷婷激情综合网| 成人性色生活片| 91精品国产综合久久香蕉的特点 | 免费人成在线不卡| aaa欧美色吧激情视频| 日韩欧美国产系列| 夜夜嗨av一区二区三区四季av| 久久91精品国产91久久小草| 在线日韩av片| 日本一区二区三区国色天香| 丝瓜av网站精品一区二区| av午夜精品一区二区三区| 91精品国产91热久久久做人人 | 亚洲愉拍自拍另类高清精品| 国产一区二区精品在线观看| 欧美日韩国产大片| 亚洲视频一区二区在线| 国产成人自拍网| 精品久久久久久久人人人人传媒| 一区二区三区成人| 一本大道久久a久久精品综合| xnxx国产精品| 久久66热re国产| 欧美大尺度电影在线| 午夜精品一区二区三区电影天堂| 91麻豆精品秘密| 国产精品日韩成人| 粗大黑人巨茎大战欧美成人| 2017欧美狠狠色| 老司机精品视频导航| 欧美一级在线免费| 免费在线看成人av| 欧美一区二区久久久| 日本sm残虐另类| 欧美一区二区三区啪啪| 午夜久久久久久久久| 欧美高清激情brazzers| 天堂一区二区在线免费观看| 欧美日韩成人一区| 婷婷国产在线综合| 欧美一区二区三区免费观看视频| 亚洲成人高清在线| 欧美一区二区三区啪啪| 老司机一区二区| 久久九九久久九九| 丁香激情综合五月| 亚洲婷婷在线视频| 欧美性淫爽ww久久久久无| 亚洲国产精品久久人人爱蜜臀| 欧美亚洲一区二区在线| 首页国产丝袜综合| 精品av综合导航| 成人午夜碰碰视频| 亚洲一区二区黄色| 日韩免费在线观看| 国产精品一二三四| 亚洲人妖av一区二区| 欧美高清视频不卡网| 国产麻豆精品视频| 亚洲日本va在线观看| 欧美一区三区二区| 国产寡妇亲子伦一区二区| 亚洲天堂av老司机| 69av一区二区三区| 成人天堂资源www在线| 一区二区三区资源| 日韩免费电影一区| gogo大胆日本视频一区| 亚洲成a人v欧美综合天堂| www国产亚洲精品久久麻豆| 99精品热视频| 久久99精品久久久久婷婷| 日本一区二区视频在线| 欧美乱妇一区二区三区不卡视频| 国产乱淫av一区二区三区| 亚洲欧美福利一区二区| 精品国产一二三| 欧美又粗又大又爽| 高清日韩电视剧大全免费| 三级久久三级久久久| 中文字幕av一区二区三区高| 91精品国产综合久久精品图片| 丁香五精品蜜臀久久久久99网站| 调教+趴+乳夹+国产+精品| 国产精品夫妻自拍| 日韩一区二区在线看| 一本到高清视频免费精品| 国产成人精品免费看| 日韩精品欧美成人高清一区二区| 中文字幕免费一区| 精品少妇一区二区三区在线播放 | 久久久久九九视频| 欧美视频在线播放| 91网站最新地址| 狠狠色丁香久久婷婷综合_中| 亚洲.国产.中文慕字在线| 亚洲人成精品久久久久久| 欧美国产精品久久| 久久精品人人做人人综合 | 久久久久久久综合日本| 717成人午夜免费福利电影| 在线视频国产一区| 色综合网色综合| 91女厕偷拍女厕偷拍高清| 成人一级视频在线观看| 国产激情视频一区二区三区欧美| 激情六月婷婷综合| 激情综合一区二区三区| 麻豆高清免费国产一区| 免费成人在线影院| 美女任你摸久久| 久草在线在线精品观看| 激情综合色播激情啊| 国产在线看一区| 国产成人综合网| 99视频一区二区| 色天使久久综合网天天| 在线视频国内一区二区| 欧美日韩在线不卡| 欧美日韩高清一区二区不卡| 在线电影国产精品| 久久综合色鬼综合色| 国产日韩v精品一区二区| 欧美激情综合五月色丁香小说| 久久精品亚洲一区二区三区浴池 | 天天亚洲美女在线视频| 天堂影院一区二区| 精品无人区卡一卡二卡三乱码免费卡| 国产在线国偷精品免费看| 成人一区二区三区视频| 欧美在线制服丝袜| 日韩欧美国产三级电影视频| 国产午夜亚洲精品羞羞网站| 中文字幕人成不卡一区| 亚洲成av人片在线观看无码| 男男视频亚洲欧美| 丰满白嫩尤物一区二区| 在线观看日韩电影| 精品国精品国产| 亚洲视频资源在线| 日韩和的一区二区| 不卡电影免费在线播放一区| 欧美日韩中文国产| 国产午夜精品一区二区三区视频| 悠悠色在线精品| 精品中文字幕一区二区| 91论坛在线播放| 欧美一区二区三区系列电影| 中文av一区二区| 秋霞影院一区二区| 99国产精品国产精品毛片| 日韩一区二区中文字幕| 亚洲欧洲日韩在线| 久久精品国产免费| 色88888久久久久久影院野外| 欧美草草影院在线视频| 亚洲精品成a人| 国产高清视频一区| 日韩三级伦理片妻子的秘密按摩| 国产精品久久久久一区| 久久99深爱久久99精品| 欧美三区免费完整视频在线观看| 亚洲国产经典视频|