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

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

?? scif_cmn.c

?? WinCE5.0BSP for Renesas SH7770
?? C
?? 第 1 頁 / 共 3 頁
字號:
    }

    // We're done with that registry key, so close it.
    RegCloseKey (hKey);

    return ( TRUE ); 
}


//
// @doc OEM 
// @func PVOID | SCIF_Deinit | De-initializes SCIF device head.  
//
ULONG
SCIF_Deinit(
    PVOID   pHead // @parm points to device head
    )
{
    PSCIF_INFO   pHWHead   = (PSCIF_INFO)pHead;

    DEBUGMSG (ZONE_CLOSE,(TEXT("+SerDeinit, 0x%X\r\n"), pHWHead));
    if ( !pHWHead )
        return 0;

    // Free the flushdone event
    if( pHWHead -> FlushDone )
        CloseHandle( pHWHead -> FlushDone );

    if ( pHWHead -> pBaseAddress )
        VirtualFree((PVOID)pHWHead -> pBaseAddress, 0, MEM_RELEASE);

    if ( pHWHead -> pDMABaseAddress )
        VirtualFree((PVOID)pHWHead -> pDMABaseAddress, 0, MEM_RELEASE);

    LocalFree(pHWHead);
    pHWHead = (PSCIF_INFO)NULL;

    DeleteCriticalSection(&(pHWHead -> TransmitCritSec));

    DEBUGMSG (ZONE_CLOSE,(TEXT("-SerDeinit, 0x%X\r\n"), pHWHead));
    return 0;
}

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

    DEBUGMSG (ZONE_FUNCTION, (TEXT("+SerClearDTR, 0x%X\r\n"), pHead));
    EnterCriticalSection(&(pHWHead->RegCritSec));
    try {
    	// Not support DTR
    }
    except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
            EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
        // Just exit
    }
    LeaveCriticalSection(&(pHWHead->RegCritSec));

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

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

    DEBUGMSG (ZONE_FUNCTION, (TEXT("+SerSetDTR, 0x%X\r\n"), pHead));
    EnterCriticalSection(&(pHWHead->RegCritSec));
    try {
    	// Not support DTR
    }
    except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
            EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
        // Just exit
    }
    LeaveCriticalSection(&(pHWHead->RegCritSec));

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



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

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

    EnterCriticalSection(&(pHWHead->RegCritSec));
    try {
    	// Clear Break
        WRITE_REGISTER_USHORT(pHWHead -> pSCR, READ_REGISTER_USHORT(pHWHead -> pSCR) | SCIF_SCR_TE);
    }
    except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
            EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
        // Just exit
    }
    LeaveCriticalSection(&(pHWHead->RegCritSec));

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

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

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

    EnterCriticalSection(&(pHWHead->RegCritSec));
    try {
    	// Set Break
        WRITE_REGISTER_USHORT(pHWHead -> pSCR, READ_REGISTER_USHORT(pHWHead -> pSCR) & ~SCIF_SCR_TE);
    }
    except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
            EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
        // Just exit
    }
    LeaveCriticalSection(&(pHWHead->RegCritSec));

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

//
// @doc OEM
// @func VOID | SCIF_SetBaudRate |
//  This routine sets the baud rate of the device.
//
// @rdesc None.
//
DWORD AdjustMicroSecondsToLoopCount( DWORD dwMicroSeconds );
DWORD BusyWait( DWORD dwLoopCount );
BOOL
SCIF_SetBaudRate(
    PVOID   pHead,	// @parm     PVOID returned by HWInit
    ULONG   BaudRate	// @parm     ULONG representing decimal baud rate.
    )
{
    PSCIF_INFO	pHWHead = (PSCIF_INFO)pHead;
    USHORT		divisor;
    BOOL		bRet = TRUE;

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

    EnterCriticalSection(&(pHWHead->RegCritSec));

    divisor = SCIF_DivisorOfRate(pHead, BaudRate);

    if ( divisor )
    {
        try
        {
            pHWHead->dcb.BaudRate = BaudRate;

            WRITE_REGISTER_USHORT(pHWHead -> pBRGDL, divisor);
            DEBUGMSG (ZONE_FUNCTION,
                      (TEXT("-SCIF_SetbaudRate 0x%X (%d Baud)\r\n"),
                       pHead, BaudRate));
        }
        except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
                EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
            DEBUGMSG (ZONE_FUNCTION | ZONE_ERROR,
                      (TEXT("-SCIF_SetbaudRate - Exception\r\n")) );
            bRet = FALSE;
        }
    }
    else
    {
        DEBUGMSG (ZONE_FUNCTION | ZONE_ERROR,
                  (TEXT("-SCIF_SetbaudRate - Bad BaudRate %d\r\n"),
                   BaudRate) );
        bRet = FALSE;
    }
    if ( bRet == TRUE ){
        if ( pHWHead -> bFirstBaudRate == FALSE ){
            BusyWait(AdjustMicroSecondsToLoopCount((3680000*(1/divisor)*1/16)+1));
            pHWHead -> bFirstBaudRate = TRUE;
        }else{
            BusyWait(AdjustMicroSecondsToLoopCount((3680000*(1/65535)*1/16)+1));
        }
    }

    LeaveCriticalSection(&(pHWHead->RegCritSec));

    return bRet;
}

//
// @doc OEM
// @func VOID | SCIF_SetByteSize |
//  This routine sets the WordSize of the device.
//
// @rdesc None.
//
BOOL
SCIF_SetByteSize(
    PVOID   pHead,	    // @parm     PVOID returned by HWInit
    ULONG   ByteSize	// @parm     ULONG ByteSize field from DCB.
    )
{
    PSCIF_INFO	pHWHead = (PSCIF_INFO)pHead;
    USHORT		SMR;
    BOOL		ret = TRUE;

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

    EnterCriticalSection(&(pHWHead->RegCritSec));

    try
    {
        SMR = READ_REGISTER_USHORT(pHWHead -> pSMR);
        SMR &= ~SCIF_SMR_7BIT;
        switch( ByteSize )
        {
            case 7:
                SMR |= SCIF_SMR_7BIT;
                break;
            case 8:
                SMR |= SCIF_SMR_8BIT;
                pHWHead -> dcb.ByteSize = 8;
                break;
            default :
                SMR |= SCIF_SMR_8BIT;
                pHWHead -> dcb.ByteSize = 8;
                ret = FALSE;
                break;
        }
        WRITE_REGISTER_USHORT(pHWHead -> pSMR, SMR);
    }
    except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
            EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
        // Do nothing - we're in enough trouble
    }

    LeaveCriticalSection(&(pHWHead->RegCritSec));

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

    return ret;
}
//
// @doc OEM
// @func VOID | SCIF_SetParity |
//  This routine sets the parity of the device.
//
// @rdesc None.
//
BOOL
SCIF_SetParity(
    PVOID   pHead,	// @parm     PVOID returned by HWInit
    ULONG   Parity	// @parm     ULONG parity field from DCB.
    )
{
    PSCIF_INFO	pHWHead = (PSCIF_INFO)pHead;
    USHORT SMR;
    DEBUGMSG (ZONE_FUNCTION,
              (TEXT("+SCIF_SetParity 0x%X, x%X\r\n"), pHead, Parity));

    EnterCriticalSection(&(pHWHead->RegCritSec));

    try
    {
        SMR = READ_REGISTER_USHORT(pHWHead -> pSMR);
        SMR &= ~SCIF_SMR_ODD_PAR;
        switch( Parity )
        {
            case ODDPARITY:
                SMR |= SCIF_SMR_PE | SCIF_SMR_ODD_PAR;
                break;
            case EVENPARITY:
                SMR |= SCIF_SMR_PE | SCIF_SMR_EVEN_PAR;
                break;
            case NOPARITY:
                SMR &= ~SCIF_SMR_PE;
                break;
            default:
                SMR &= ~SCIF_SMR_PE;
                pHWHead -> dcb.Parity = NOPARITY;
                break;
        }
        WRITE_REGISTER_USHORT(pHWHead -> pSMR, SMR);
    }
    except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
            EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
        // Do nothing - we're in enough trouble
    }

    LeaveCriticalSection(&(pHWHead->RegCritSec));

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

    return TRUE;
}
//
// @doc OEM
// @func VOID | SCIF_SetStopBits |
//  This routine sets the Stop Bits for the device.
//
// @rdesc None.
//
BOOL
SCIF_SetStopBits(
    PVOID   pHead,	  // @parm     PVOID returned by HWInit
    ULONG   StopBits  // @parm     ULONG StopBits field from DCB.
    )
{
    PSCIF_INFO	pHWHead = (PSCIF_INFO)pHead;
    USHORT SMR;
    DEBUGMSG (ZONE_FUNCTION,
              (TEXT("+SCIF_SetStopBits 0x%X, x%X\r\n"), pHead, StopBits));

	EnterCriticalSection(&(pHWHead->RegCritSec));

    try
    {
         // Note that 1.5 stop bits only works if the word size
         // is 5 bits.  Any other xmit word size will cause the
         // 1.5 stop bit setting to generate 2 stop bits.
        SMR = READ_REGISTER_USHORT(pHWHead -> pSMR);
        SMR &= ~SCIF_SMR_2STOP;
        switch( StopBits )
        {
            case ONESTOPBIT :
                SMR |= SCIF_SMR_1STOP;
                break;
            case TWOSTOPBITS :
                SMR |= SCIF_SMR_2STOP;
                break;
            default :
                SMR |= SCIF_SMR_1STOP;
                pHWHead -> dcb.StopBits = ONESTOPBIT;
                break;
        }
        WRITE_REGISTER_USHORT(pHWHead -> pSMR, SMR);
    }
    except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
            EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
        // Do nothing - we're in enough trouble
    }

	LeaveCriticalSection(&(pHWHead->RegCritSec));

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

    return TRUE;
}

//
// @doc OEM
// @func ULONG | SCIF_GetRxBufferSize | This function returns
// the size of the hardware buffer passed to the interrupt
// initialize function.  It would be used only for devices
// which share a buffer between the MDD/PDD and an ISR.
//
// 
// @rdesc This routine always returns 0.
// 
ULONG
SCIF_GetRxBufferSize(
    PVOID pHead
    )
{
    return 0;
}


// @doc OEM
// @func ULONG | SCIF_RxIntr | This routine gets several characters from the hardware
//   receive buffer and puts them in a buffer provided via the second argument.
//   It returns the number of bytes lost to overrun.
// 
// @rdesc The return value indicates the number of overruns detected.
//   The actual number of dropped characters may be higher.
//
ULONG
SCIF_RxIntr(
    PVOID pHead,                // @parm Pointer to hardware head
    PUCHAR pRxBuffer,           // @parm Pointer to receive buffer
    ULONG *pBufflen             // @parm In = max bytes to read, out = bytes read
    )
{
    PSCIF_INFO  pHWHead		= (PSCIF_INFO)pHead;
    PDMA_INFO	pRxDma 		= pHWHead -> pRxDma;
    ULONG	    RetVal		= 0;
    ULONG	    TargetRoom	= *pBufflen;
    DWORD		dwCnt;
    ULONG		NextStartPoint;
#if (SH7770_REVISION != SH7770_1STCUT)
	ULONG DSTSR;
#endif

    DEBUGMSG (ZONE_THREAD, (TEXT("+SCIF_RxIntr - len %d.\r\n"),
                  *pBufflen));

    DEBUGMSG (ZONE_THREAD, (TEXT("Ticks[%d]\r\n"),GetTickCount()));

    *pBufflen = 0;
    dwCnt = 0;
#if (SH7770_REVISION == SH7770_1STCUT)
    NextStartPoint = READ_REGISTER_ULONG(pRxDma -> pvDDASR);
	NextStartPoint &= ((SCIF0_RXBUFFER_SIZE*2)-1);	
#else
    DSTSR = READ_REGISTER_ULONG(pRxDma -> pvDSTSR);
    NextStartPoint = READ_REGISTER_ULONG(pRxDma -> pvDTCSR);
	NextStartPoint &= ((SCIF0_RXBUFFER_SIZE*2)-1);	
	// get transfer count
	NextStartPoint = pHWHead->ulRxDmaBuffSize - NextStartPoint;
	if(DSTSR & 0x20) NextStartPoint += pHWHead->ulRxDmaBuffSize;
#endif

	DEBUGMSG (ZONE_THREAD, (TEXT("LSR[%04x] DDASR[0x%x] DSTSR[%04x] NextStartPoint[%d] ulReceiveDmaBufferPointer[%d] DTCSR[%d]\r\n"),
              READ_REGISTER_USHORT(pHWHead-> pLSR),
              READ_REGISTER_ULONG(pRxDma -> pvDDASR),
              READ_REGISTER_ULONG(pRxDma -> pvDSTSR),
              NextStartPoint,
              pHWHead->ulReceiveDmaBufferPointer,
              READ_REGISTER_ULONG(pRxDma -> pvDTCSR)));

    try {
		while ( TargetRoom ){
			if ( NextStartPoint == pHWHead->ulReceiveDmaBufferPointer )
				break;
			*pRxBuffer++ = *((pHWHead -> pRxBuff) + (pHWHead -> ulReceiveDmaBufferPointer));
			pHWHead->ulReceiveDmaBufferPointer++;
			pHWHead->ulReceiveDmaBufferPointer &= ((SCIF0_RXBUFFER_SIZE*2)-1);
			--TargetRoom;
			++(*pBufflen);
		}
    }
    except (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ?
            EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
        // just exit
    }

	// Serial TimeOut Interrupt Clear
	if (READ_REGISTER_USHORT(pHWHead -> pLSR) & SCIF_LSR_TO){
		DEBUGMSG(ZONE_THREAD, (TEXT("SCIF_LSR_TO ON-->OFF\r\n")));
		WRITE_REGISTER_USHORT(pHWHead -> pLSR, 
				READ_REGISTER_USHORT(pHWHead -> pLSR) & ~SCIF_LSR_TO);
	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷精品大视频在线蜜桃视频| 日韩欧美国产一区二区在线播放| 91精品国产黑色紧身裤美女| 国产午夜一区二区三区| 亚洲精品高清视频在线观看| 久久机这里只有精品| eeuss鲁片一区二区三区| 欧美精品少妇一区二区三区| 国产精品色哟哟| 开心九九激情九九欧美日韩精美视频电影| 成人av电影在线播放| 欧美日韩一区精品| 成人欧美一区二区三区小说 | 日韩一区二区视频| 亚洲美女一区二区三区| 国产精品一区二区久久不卡| 欧美一卡二卡三卡四卡| 亚洲va欧美va国产va天堂影院| 国产成人在线影院| 精品国产一区二区三区忘忧草| 亚洲五码中文字幕| 色综合天天狠狠| 国产精品入口麻豆原神| 国产一区二区三区在线观看精品 | 欧美日韩中字一区| 亚洲乱码国产乱码精品精可以看 | 国产高清无密码一区二区三区| 777a∨成人精品桃花网| 亚洲福利一区二区| 欧美色倩网站大全免费| 亚洲精品欧美激情| 在线视频观看一区| 亚洲第一激情av| 色拍拍在线精品视频8848| 18欧美乱大交hd1984| 99久久婷婷国产| 日韩美女视频一区二区| 色8久久人人97超碰香蕉987| 亚洲自拍欧美精品| 欧美日韩精品欧美日韩精品一| 亚洲一区在线观看网站| 欧美色综合影院| 亚洲一区二区三区四区中文字幕| 91丨porny丨蝌蚪视频| 亚洲裸体在线观看| 成人免费福利片| 一区二区成人在线视频| 欧美亚一区二区| 亚洲国产精品久久不卡毛片 | 《视频一区视频二区| 91在线观看地址| 亚洲二区在线观看| 欧美日韩国产另类一区| 久久精品二区亚洲w码| 欧美国产成人在线| 欧美羞羞免费网站| 久久99国内精品| 国产精品私人影院| 91国产视频在线观看| 日本欧洲一区二区| 国产清纯白嫩初高生在线观看91| 波多野结衣中文字幕一区二区三区| 亚洲乱码一区二区三区在线观看| 欧美精品乱码久久久久久按摩 | 亚洲尤物视频在线| 欧美一区三区四区| 99r精品视频| 日韩国产高清在线| 欧美国产日本视频| 91精品国产色综合久久ai换脸| 国产精品自拍网站| 亚洲一区二区三区视频在线| 欧美电影免费观看完整版| 成人午夜av在线| 日韩在线一区二区三区| 国产日韩欧美综合一区| 欧美高清一级片在线| 国产精品白丝av| 天天av天天翘天天综合网色鬼国产| 久久人人97超碰com| 欧美三级电影网站| 成人精品小蝌蚪| 久久精品国产精品亚洲红杏 | 国产精品视频麻豆| 91精品国产综合久久福利软件 | 国产成人综合视频| 六月婷婷色综合| 亚洲男人电影天堂| 亚洲国产精品成人久久综合一区| 欧美日韩色综合| www.综合网.com| 激情五月激情综合网| 亚洲一区免费观看| 中文字幕中文乱码欧美一区二区| 91精品国产全国免费观看| 色综合久久天天综合网| 丰满少妇在线播放bd日韩电影| 蜜臀av性久久久久蜜臀aⅴ| 亚洲一区欧美一区| 亚洲女女做受ⅹxx高潮| 国产欧美精品区一区二区三区| 91精品国产综合久久香蕉的特点| 91视频观看免费| 成人午夜碰碰视频| 成人永久aaa| 国产精品一区二区久久不卡| 精品一区二区三区蜜桃| 亚洲第一会所有码转帖| 亚洲成人777| 午夜日韩在线观看| 亚洲www啪成人一区二区麻豆| 亚洲综合在线五月| 亚洲一区二区三区四区在线免费观看| 亚洲欧洲99久久| 亚洲视频 欧洲视频| 自拍偷拍亚洲综合| 1000部国产精品成人观看| 国产精品久久久久精k8 | 亚洲国产sm捆绑调教视频| 自拍视频在线观看一区二区| 最新热久久免费视频| 亚洲青青青在线视频| 中文字幕av一区二区三区| 一区二区中文视频| 日韩毛片高清在线播放| 亚洲日韩欧美一区二区在线| 亚洲精品免费在线观看| 午夜激情综合网| 日韩经典中文字幕一区| 蜜臀久久99精品久久久久久9| 免费在线成人网| 国内成人免费视频| 成人黄色小视频| 欧美私人免费视频| 欧美一级艳片视频免费观看| 精品日韩成人av| 国产清纯美女被跳蛋高潮一区二区久久w | 久久久久久一级片| 国产精品久久久久久妇女6080| 亚洲天天做日日做天天谢日日欢| 怡红院av一区二区三区| 免费在线观看精品| 风间由美一区二区三区在线观看| 97久久久精品综合88久久| 欧美色偷偷大香| 精品粉嫩超白一线天av| 国产精品久久夜| 亚洲国产精品一区二区www在线 | 成人晚上爱看视频| 在线免费观看日韩欧美| 91麻豆精品国产91久久久久久 | 色婷婷久久久亚洲一区二区三区| 欧美日韩精品欧美日韩精品一 | 水野朝阳av一区二区三区| 国产综合色精品一区二区三区| 色综合一区二区三区| 日韩午夜三级在线| 亚洲欧美区自拍先锋| 狠狠色丁香婷婷综合| 91网站最新地址| 精品少妇一区二区三区日产乱码| 亚洲欧洲日产国产综合网| 免费看欧美美女黄的网站| k8久久久一区二区三区| 日韩三级视频中文字幕| 亚洲欧美国产高清| 日本欧美肥老太交大片| 91在线精品一区二区三区| 精品国产123| 亚洲福中文字幕伊人影院| 99视频精品在线| 精品日韩一区二区三区免费视频| 久久蜜桃av一区二区天堂| 亚洲国产精品一区二区www在线| 国产91高潮流白浆在线麻豆| 在线中文字幕不卡| 亚洲欧洲av在线| 久久国产免费看| 欧美色手机在线观看| 综合电影一区二区三区| 九一九一国产精品| 欧美精品久久天天躁| 亚洲精品视频在线观看网站| 国产成人8x视频一区二区| 3d动漫精品啪啪| 亚洲一区自拍偷拍| 激情都市一区二区| 欧美一区二区三区免费观看视频 | 欧美大片在线观看一区二区| 亚洲一区日韩精品中文字幕| 色综合天天综合狠狠| 亚洲欧洲三级电影| 丰满少妇在线播放bd日韩电影| 精品国产成人系列| 一区二区高清视频在线观看| 成人激情免费网站| 精品少妇一区二区三区免费观看 | 裸体歌舞表演一区二区| 欧美日韩久久一区| 久久久久国产精品麻豆ai换脸|