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

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

?? 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.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
不卡视频一二三| 日本亚洲最大的色成网站www| 久久国产麻豆精品| 这里只有精品电影| 日韩不卡一区二区三区| 欧美一区二区三区婷婷月色| 免费观看91视频大全| 日韩欧美国产综合在线一区二区三区| 亚瑟在线精品视频| 制服丝袜激情欧洲亚洲| 久久99久久99小草精品免视看| 欧美变态tickling挠脚心| 国模娜娜一区二区三区| 国产精品天天看| 91丨porny丨蝌蚪视频| 一区二区三区加勒比av| 91精品在线免费| 激情五月婷婷综合网| 国产精品欧美一区二区三区| 色婷婷香蕉在线一区二区| 日韩主播视频在线| 国产婷婷色一区二区三区四区 | 精品视频999| 美女视频免费一区| 国产精品每日更新| 精品视频1区2区3区| 国产精品77777竹菊影视小说| 亚洲色图视频网站| 欧美tickle裸体挠脚心vk| eeuss国产一区二区三区| 天天影视网天天综合色在线播放| 国产日韩欧美a| 欧美日韩dvd在线观看| 成人免费av在线| 秋霞影院一区二区| 亚洲欧美激情小说另类| 精品国产91乱码一区二区三区| 一本到高清视频免费精品| 久久精品国产网站| 一卡二卡三卡日韩欧美| 久久蜜臀精品av| 欧美三级午夜理伦三级中视频| 国产一区二区三区免费看| 亚洲一二三四在线| 综合久久久久久久| 欧美精品一区二区在线观看| 欧美性大战久久| 成人激情黄色小说| 黄色日韩网站视频| 日韩在线一区二区| 亚洲激情在线播放| 国产午夜精品理论片a级大结局 | 亚洲精品一二三| 久久婷婷成人综合色| 欧美电影在哪看比较好| 色播五月激情综合网| 成人午夜免费电影| 国产乱码一区二区三区| 免费看欧美女人艹b| 亚洲大片在线观看| 亚洲精品乱码久久久久久黑人| 中文字幕国产精品一区二区| 久久午夜羞羞影院免费观看| 在线成人免费视频| 欧美日韩国产一二三| 欧美色老头old∨ideo| 99久久婷婷国产| 成人免费视频caoporn| 国产精品亚洲а∨天堂免在线| 免费成人深夜小野草| 日韩国产精品久久久久久亚洲| 一区二区三区中文在线| 一个色综合网站| 尤物av一区二区| 怡红院av一区二区三区| 亚洲男人天堂av网| 一区二区三区欧美日| 亚洲一区二区偷拍精品| 亚洲小说欧美激情另类| 亚洲国产成人tv| 日本vs亚洲vs韩国一区三区| 日本视频一区二区三区| 麻豆国产精品视频| 精品一区二区免费看| 精品一区二区三区不卡| 国产精品夜夜爽| 欧美精品tushy高清| 欧美日韩黄色一区二区| 欧美福利电影网| 精品对白一区国产伦| 久久精品亚洲乱码伦伦中文| 国产精品久久久久永久免费观看| 国产精品久久久久久久久久久免费看 | 亚洲乱码日产精品bd| 亚洲视频电影在线| 亚洲二区视频在线| 美女脱光内衣内裤视频久久影院| 免费观看日韩av| 国产激情91久久精品导航| caoporm超碰国产精品| 91免费小视频| 337p亚洲精品色噜噜狠狠| 精品久久久网站| 国产精品毛片久久久久久| 悠悠色在线精品| 美女在线视频一区| 国产成人自拍网| 色噜噜久久综合| 欧美一区二区大片| 久久精品亚洲乱码伦伦中文| 一区二区三区精品| 久久99国内精品| 99综合影院在线| 日韩一区二区电影在线| 国产日韩高清在线| 亚洲成人动漫av| 岛国精品在线观看| 欧美日韩国产片| 国产无人区一区二区三区| 亚洲综合色区另类av| 韩国av一区二区三区在线观看| caoporen国产精品视频| 日韩精品一区二区三区在线观看 | 欧美主播一区二区三区| 日韩女优电影在线观看| 亚洲精品免费在线| 韩国女主播成人在线观看| 91麻豆视频网站| 久久久国产精品不卡| 亚洲1区2区3区4区| 91性感美女视频| 久久久久国产成人精品亚洲午夜| 一区二区三区在线视频观看 | 中文字幕制服丝袜成人av| 日韩精品视频网站| 91色|porny| 国产精品天干天干在线综合| 偷拍日韩校园综合在线| 91在线视频观看| 久久久99精品久久| 日韩成人av影视| 色狠狠一区二区三区香蕉| 国产欧美精品一区aⅴ影院| 日产国产欧美视频一区精品| 在线免费av一区| 日韩理论片在线| 波多野结衣中文一区| 欧美videos大乳护士334| 亚洲1区2区3区4区| 欧美曰成人黄网| 亚洲丝袜自拍清纯另类| 成人av电影免费在线播放| 久久综合999| 国产尤物一区二区| 精品久久国产老人久久综合| 日韩av一二三| 日韩三级中文字幕| 日韩高清一区在线| 91精选在线观看| 日韩二区在线观看| 欧美一区午夜视频在线观看| 天堂久久一区二区三区| 欧美日韩电影在线播放| 亚洲成人先锋电影| 欧美日韩亚洲综合一区| 夜夜精品视频一区二区 | 欧美丰满嫩嫩电影| 偷拍日韩校园综合在线| 欧美精品99久久久**| 秋霞成人午夜伦在线观看| 在线不卡中文字幕播放| 日本一不卡视频| 国产色91在线| 本田岬高潮一区二区三区| 国产精品成人免费精品自在线观看| 国产成人免费在线观看不卡| 国产欧美日韩精品一区| 成人天堂资源www在线| 亚洲欧洲精品一区二区三区不卡| 成人精品国产一区二区4080| 亚洲人成影院在线观看| 91久久精品网| 日韩影院精彩在线| 2020国产精品自拍| 成人美女在线视频| 亚洲精品菠萝久久久久久久| 欧美欧美欧美欧美首页| 美国欧美日韩国产在线播放| 精品国产第一区二区三区观看体验| 国产老女人精品毛片久久| 国产精品久久网站| 欧美性极品少妇| 精品亚洲porn| 国产精品理论片在线观看| 欧美少妇xxx| 国产主播一区二区三区| 欧美激情艳妇裸体舞| 在线一区二区三区| 日本亚洲免费观看| 国产精品久久久久影院老司|