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

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

?? hardware.c

?? 一個類似與Windows環(huán)境下的softice的源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/****************************************************************************** * * Copyright (c) 2003 Gerhard W. Gruber * * PROJECT: pICE * $Source: /cvsroot/pice/pice/module/hardware.c,v $ * $Revision: 1.6 $ * $Date: 2004/02/17 23:07:36 $ * $Author: lightweave $ * $Name:  $ * * $Log: hardware.c,v $ * Revision 1.6  2004/02/17 23:07:36  lightweave * * Improved the DEBUG facillity and replaced the configuration handler with a * new code which now can read MS Windows INI style files. See CHANGES.txt for * more details. * Also added a macro which prevents compiling for kernels before 2.4.19. * * Revision 1.4  2003/06/18 22:00:22  lightweave * DEBUG and DEBUG_SERIAL added * * *****************************************************************************/static char *ident = "$Header: /cvsroot/pice/pice/module/hardware.c,v 1.6 2004/02/17 23:07:36 lightweave Exp $";/*++Copyright (c) 1998-2001 Klaus P. GerlicherModule Name:    hardware.cAbstract:	    output to consoleEnvironment:    Kernel mode onlyAuthor:    Klaus P. GerlicherRevision History:    04-Aug-1998:	created    15-Nov-2000:    general cleanup of source files    Copyright notice:  This file may be distributed under the terms of the GNU Public License.--*/////////////////////////////////////////////////////// INCLUDES////#include "remods.h"#include <asm/io.h>#include <linux/ctype.h>#include <asm/delay.h>#include "precomp.h"////////////////////////////////////////////////////// PROTOTYPES////////////////////////////////////////////////////////// DEFINES////////////////////////////////////////////////////////// GLOBALS////// flagging stuffBOOLEAN bCursorEnabled = FALSE;BOOLEAN bConsoleIsInitialized = FALSE;// terminal emulationETERMINALMODE eTerminalMode = TERMINAL_MODE_NONE;// window stuffWINDOW wWindow[4];// screen parameterULONG GLOBAL_SCREEN_WIDTH,GLOBAL_SCREEN_HEIGHT;// jump table to real output functionsOUTPUT_HANDLERS ohandlers;INPUT_HANDLERS ihandlers;// ring buffer stuffULONG ulInPos = 0,ulLastPos = 0;ULONG ulOldInPos = 0,ulOldDelta = 0;BOOLEAN bSuspendPrintRingBuffer = FALSE;struct _RING_BUFFER{	USHORT usForegroundColor;	USHORT usBackgroundColor;	char buffer[1024];} aBuffers[LINES_IN_BUFFER];char OneTempBuffer[sizeof(aBuffers[0].buffer)];// color of windows pane separation barsUSHORT usCaptionColor       = BLUE;USHORT usCaptionText        = WHITE;USHORT usForegroundColor    = LTGRAY;USHORT usBackgroundColor    = BLACK;USHORT usHiLiteColor        = WHITE;////////////////////////////////////////////////////// FUNCTIONS//////*************************************************************************// SuspendPrintRingBuffer()////*************************************************************************void SuspendPrintRingBuffer(BOOLEAN bSuspend){    //ENTER_FUNC();    bSuspendPrintRingBuffer = bSuspend;    //LEAVE_FUNC();}//*************************************************************************// EmptyRingBuffer()////*************************************************************************void EmptyRingBuffer(void){    //ENTER_FUNC();    ulLastPos = ulInPos = ulOldInPos = ulOldDelta = 0;	PICE_memset(aBuffers,0,sizeof(aBuffers));    //LEAVE_FUNC();}//*************************************************************************// LinesInRingBuffer()////*************************************************************************ULONG LinesInRingBuffer(void){    ULONG ulResult;    //ENTER_FUNC();    ulResult = (ulInPos-ulLastPos)%LINES_IN_BUFFER;    //LEAVE_FUNC();	return ulResult;}//*************************************************************************// CheckRingBuffer()////*************************************************************************void CheckRingBuffer(void){    //ENTER_FUNC();	PrintRingBuffer(wWindow[OUTPUT_WINDOW].cy-1);    //LEAVE_FUNC();}//*************************************************************************// AddToRingBuffer()////*************************************************************************BOOLEAN AddToRingBuffer(LPSTR p){   ULONG i,j,len;   BOOLEAN bHadReturn = FALSE;   //ENTER_FUNC();    DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "checking if inside buffers (ulInpos = %u)\n", ulInPos);    if(ulInPos >= LINES_IN_BUFFER)    {		 DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "attempt to leave ring buffer\n");		 //LEAVE_FUNC();		 return FALSE;    }    DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "checking input string\n");    j = PICE_strlen(p);    DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "input string has %u chars\n",j);    DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "getting length of string\n");    // size of current string    j = PICE_strlen(aBuffers[ulInPos].buffer);    DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "length of current string = %u\n",j);    // start with ':' and current has ':' in front    if(aBuffers[ulInPos].buffer[0]==':' && *p==':')    {        DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "colon case\n");        if(j==1)        {            //LEAVE_FUNC();            return FALSE;        }		aBuffers[ulInPos].buffer[j++]='\n';		aBuffers[ulInPos].buffer[j]=0;		ulInPos = (ulInPos+1)%LINES_IN_BUFFER;		// wrap around		if(ulInPos == ulLastPos)		{			ulLastPos = (ulLastPos+1)%LINES_IN_BUFFER;			PICE_memset(aBuffers[ulInPos].buffer,0,sizeof(aBuffers[0].buffer));		}        // reset to start of buffer		j = 0;        DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "leaving colon case\n");    }    // it's an internal print ("pICE: ...")    else    if(aBuffers[ulInPos].buffer[0]==':' && PICE_strncmpi(p,"pICE:",5)==0)    {        DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "internal case\n");	if(j==1)	{	   PICE_memset(aBuffers[ulInPos].buffer,0,sizeof(aBuffers[0].buffer));	}	else	{	   aBuffers[ulInPos].buffer[j++]='\n';	   aBuffers[ulInPos].buffer[j]=0;	   ulInPos = (ulInPos+1)%LINES_IN_BUFFER;	   // wrap around	   if(ulInPos == ulLastPos)	   {	      ulLastPos = (ulLastPos+1)%LINES_IN_BUFFER;	      PICE_memset(aBuffers[ulInPos].buffer,0,sizeof(aBuffers[0].buffer));	   }	}        // reset to start of buffer	j = 0;        DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "leaving internal case\n");    }    // it's a debug print and the current line is starting with ':'    else    if(aBuffers[ulInPos].buffer[0]==':' &&       ( (*p=='<' && isdigit(*(p+1)) && *(p+2)=='>') || bIsDebugPrint) )    {        DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "kernel debug print\n");	if(j==1)	{	   PICE_memset(aBuffers[ulInPos].buffer,0,sizeof(aBuffers[0].buffer));	}	else	{	   aBuffers[ulInPos].buffer[j++]='\n';	   aBuffers[ulInPos].buffer[j]=0;	   ulInPos = (ulInPos+1)%LINES_IN_BUFFER;	   // wrap around	   if(ulInPos == ulLastPos)	   {	      ulLastPos = (ulLastPos+1)%LINES_IN_BUFFER;	      PICE_memset(aBuffers[ulInPos].buffer,0,sizeof(aBuffers[0].buffer));	   }	}        // reset to start of buffer	j = 0;        DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "leaving kernel debug print\n");    }    // it's a debug print    else if(( (*p=='<' && isdigit(*(p+1)) && *(p+2)=='>') || bIsDebugPrint) )    {        DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "debug print\n");        p += 3;        DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "leaving debug print\n");    }    DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "getting size of new string\n");    // size of new string    len = PICE_strlen(p);    DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "size of new string = %u\n",len);    // if combined string length too big    // reduce to maximum    if( (len+j) > sizeof(aBuffers[0].buffer)-2 )    {        DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "combine strings\n");        PICE_memcpy(OneTempBuffer,p,sizeof(aBuffers[0].buffer)-2);        p = OneTempBuffer;        // assume we end in NEWLINE        p[sizeof(aBuffers[0].buffer)-2]='\n';        p[sizeof(aBuffers[0].buffer)-1]=0;        DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "leaving combine strings\n");    }    DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "formatting string\n");	for(i=0;p[i]!=0;i++)	{		// newline		if(p[i]=='\n')		{			aBuffers[ulInPos].buffer[j++]='\n';			aBuffers[ulInPos].buffer[j]=0;			ulInPos = (ulInPos+1)%LINES_IN_BUFFER;			// wrap around			if(ulInPos == ulLastPos)			{				ulLastPos = (ulLastPos+1)%LINES_IN_BUFFER;				PICE_memset(aBuffers[ulInPos].buffer,0,sizeof(aBuffers[0].buffer));			}            // reset to start of buffer			j = 0;            // notify that we had a NEWLINE            bHadReturn = TRUE;		}		// backspace		else if(p[i]=='\b')		{			if(j!=0)			{				j--;				aBuffers[ulInPos].buffer[j] = 0;			}		}		// TAB		else if(p[i]=='\t')		{            // copy TAB			aBuffers[ulInPos].buffer[j++] = p[i];		}		else		{			if((UCHAR)p[i]<0x20 || (UCHAR)p[i]>0x7f)				p[i]=0x20;						aBuffers[ulInPos].buffer[j++] = p[i];		}	}    	// set colors on buffer line	aBuffers[ulInPos].usForegroundColor = usForegroundColor;	aBuffers[ulInPos].usBackgroundColor = usBackgroundColor;    //LEAVE_FUNC();    return bHadReturn;}//*************************************************************************// ReplaceRingBufferCurrent()////*************************************************************************void ReplaceRingBufferCurrent(LPSTR s){    //ENTER_FUNC();    if(ulInPos >= LINES_IN_BUFFER)    {       DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "attempt to leave ring buffer\n");       //LEAVE_FUNC();       return;    }    DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "checking input string\n");    if(!PICE_strlen(s))    {        DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "string is empty!\n");        //LEAVE_FUNC();        return;    }    PICE_memset(aBuffers[ulInPos].buffer,0,sizeof(aBuffers[0].buffer));    PICE_strcpy(aBuffers[ulInPos].buffer,s);    //LEAVE_FUNC();}//*************************************************************************// PrintRingBuffer()////*************************************************************************void PrintRingBuffer(ULONG ulLines){   ULONG ulDelta;   ULONG ulOutPos,i;    //ENTER_FUNC();   if(bSuspendPrintRingBuffer)   {      DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "suspended\n");      //LEAVE_FUNC();      return;   }   if(ulInPos == ulOldInPos )   {      DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "didn't move forward\n");      //LEAVE_FUNC();      return;   }	    ulOldInPos = ulInPos;    ulDelta = LinesInRingBuffer();        if(!ulDelta)    {        DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "no lines in ring buffer\n");        //LEAVE_FUNC();		return;    }    if(ulDelta<ulOldDelta)    {        DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "lines already output\n");        //LEAVE_FUNC();        return;    }    ulOldDelta = ulDelta;    if(ulDelta < ulLines)    {        DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "less lines than requested\n");	ulLines = ulDelta;    }	ulOutPos = (ulInPos-ulLines)%LINES_IN_BUFFER;    DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "ulOutPos = %u\n",ulOutPos);    Home(OUTPUT_WINDOW);    ClrLines(wWindow[OUTPUT_WINDOW].y,ulLines);    i = ulLines;	while(ulLines--)	{		SetForegroundColor(aBuffers[ulOutPos].usForegroundColor);		SetBackgroundColor(aBuffers[ulOutPos].usBackgroundColor);		Print(OUTPUT_WINDOW_UNBUFFERED,aBuffers[ulOutPos].buffer);		ResetColor();		ulOutPos = (ulOutPos+1)%LINES_IN_BUFFER;	}    if(aBuffers[ulOutPos].buffer[0]==':')    {        ClrLines(wWindow[OUTPUT_WINDOW].y+i,1);		SetForegroundColor(aBuffers[ulOutPos].usForegroundColor);		SetBackgroundColor(aBuffers[ulOutPos].usBackgroundColor);		Print(OUTPUT_WINDOW_UNBUFFERED,aBuffers[ulOutPos].buffer);		ResetColor();    	wWindow[OUTPUT_WINDOW].usCurX = 1;    }    //LEAVE_FUNC();}//*************************************************************************// PrintRingBufferOffset()////*************************************************************************BOOLEAN PrintRingBufferOffset(ULONG ulLines,ULONG ulOffset){	ULONG ulLinesInRingBuffer;	ULONG ulOutPos;    //ENTER_FUNC();    ulLinesInRingBuffer = LinesInRingBuffer();    // no lines in ring buffer	if(!ulLinesInRingBuffer)    {        DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "ulLinesInRingBuffer is 0\n");        //LEAVE_FUNC();		return FALSE;    }    // more lines inc. offset to display than in ring buffer	if(ulLinesInRingBuffer < ulLines)    {        ulLines = ulLinesInRingBuffer;    }	if(ulLinesInRingBuffer < ulOffset+ulLines)    {        DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "ulLinesInRingBuffer < ulOffset+ulLines\n");        //LEAVE_FUNC();        return FALSE;    }    DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "ulLinesInRingBuffer %u ulLines %u ulOffset %u\n",ulLinesInRingBuffer,ulLines,ulOffset);    ulOutPos = (ulInPos-ulOffset-ulLines)%LINES_IN_BUFFER;    DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "ulOutPos = %u\n",ulOutPos);    if(ulOutPos == ulInPos)    {        DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "ulOutPos == ulInPos\n");        //LEAVE_FUNC();        return FALSE;    }    // start to output upper left corner of window	Home(OUTPUT_WINDOW);    // while not end reached...    ClrLines(wWindow[OUTPUT_WINDOW].y,ulLines);	while(ulLines--)	{		SetForegroundColor(aBuffers[ulOutPos].usForegroundColor);		SetBackgroundColor(aBuffers[ulOutPos].usBackgroundColor);		Print(OUTPUT_WINDOW_UNBUFFERED,aBuffers[ulOutPos].buffer);		ResetColor();		ulOutPos = (ulOutPos+1)%LINES_IN_BUFFER;	}    if(aBuffers[ulInPos].buffer[0]==':')    {        ClrLines(wWindow[OUTPUT_WINDOW].y+wWindow[OUTPUT_WINDOW].cy-1,1);        wWindow[OUTPUT_WINDOW].usCurY = wWindow[OUTPUT_WINDOW].cy-1;		SetForegroundColor(aBuffers[ulInPos].usForegroundColor);		SetBackgroundColor(aBuffers[ulInPos].usBackgroundColor);		Print(OUTPUT_WINDOW_UNBUFFERED,aBuffers[ulInPos].buffer);		ResetColor();    	wWindow[OUTPUT_WINDOW].usCurX = strlen(aBuffers[ulInPos].buffer)+1;    }    //LEAVE_FUNC();    return TRUE;}//*************************************************************************// PrintRingBufferHome()////*************************************************************************BOOLEAN PrintRingBufferHome(ULONG ulLines){   ULONG ulDelta;   ULONG ulOutPos;    //ENTER_FUNC();    ulDelta = LinesInRingBuffer();    // no lines in ring buffer    if(!ulDelta)    {        DPRINT(PICE_DEBUG, DBT_HARDWARE, DBL_INFO, "no lines in ring buffer\n");        //LEAVE_FUNC();	return FALSE;    }    // more lines inc. offset to display than in ring buffer	if(ulDelta < ulLines)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91猫先生在线| 欧美一三区三区四区免费在线看| 狠狠色狠狠色综合系列| 日韩一级片在线播放| 午夜天堂影视香蕉久久| 91精品欧美综合在线观看最新 | 久久99国产精品久久99果冻传媒| 91精品在线免费| 国产一区欧美日韩| 一区二区欧美视频| 欧美一区二区三区的| 亚洲成年人网站在线观看| 欧美一二三区精品| 成人亚洲精品久久久久软件| 一区二区在线看| 欧美电影免费观看高清完整版| 国产高清视频一区| 图片区小说区国产精品视频| 久久久99久久| 日韩精品中文字幕一区| 欧美视频在线观看一区二区| 国产一区二区三区在线观看免费| 亚洲一区二区三区四区不卡| 精品国产91亚洲一区二区三区婷婷| av午夜精品一区二区三区| 九九**精品视频免费播放| 亚洲精品中文字幕在线观看| 国产日韩欧美精品一区| 日韩一区二区麻豆国产| 欧美精选午夜久久久乱码6080| 成人h版在线观看| 国产激情一区二区三区四区 | 高清国产午夜精品久久久久久| 三级影片在线观看欧美日韩一区二区 | 在线精品国精品国产尤物884a| 国内精品久久久久影院一蜜桃| 婷婷激情综合网| 亚洲3atv精品一区二区三区| 亚洲一本大道在线| 午夜精品久久久久久久| 午夜视频在线观看一区二区| 亚洲欧美中日韩| 一级日本不卡的影视| 日韩主播视频在线| 五月天中文字幕一区二区| 久久亚洲综合av| 一本色道久久综合精品竹菊| 欧美伊人久久久久久久久影院 | 国产精品毛片久久久久久| 欧美激情一区二区| 亚洲小说欧美激情另类| 国产一区二区三区综合| 色综合久久综合| 精品欧美一区二区三区精品久久| 国产三级欧美三级日产三级99| 亚洲免费av网站| 国产麻豆成人精品| 91精品国产综合久久香蕉麻豆| 国产亚洲欧美日韩日本| 日韩激情一二三区| 国产毛片一区二区| 欧美精品在线一区二区| 最新国产成人在线观看| 天天操天天色综合| 9i在线看片成人免费| 亚洲精品在线三区| 日本午夜精品一区二区三区电影| 国产精品123| 精品国产凹凸成av人网站| 亚洲va欧美va人人爽| 97se亚洲国产综合自在线| 久久久久久久综合色一本| 日本不卡一区二区三区| 欧美日韩国产首页在线观看| 亚洲精品成人少妇| 在线看国产一区| 亚洲自拍欧美精品| 欧美精品电影在线播放| 五月婷婷激情综合| 欧美一区二区三区色| 婷婷开心久久网| 久久综合成人精品亚洲另类欧美 | 欧美一级搡bbbb搡bbbb| 秋霞电影网一区二区| 久久综合国产精品| av不卡一区二区三区| 一片黄亚洲嫩模| 久久久久久久网| 色综合久久久久综合体| 日韩不卡一二三区| 欧美激情在线观看视频免费| 日本精品视频一区二区三区| 五月综合激情网| 欧美激情一区二区三区不卡| 欧美性猛片aaaaaaa做受| 久久精品国产色蜜蜜麻豆| 国产精品久久久久三级| 欧美一区二区三区思思人| 成人看片黄a免费看在线| 亚洲成a人v欧美综合天堂下载 | 久久久午夜精品理论片中文字幕| 波多野结衣在线一区| 免费观看在线综合| 一区二区三区中文在线| 日本一区二区三区久久久久久久久不| 91首页免费视频| 国产精品一级在线| 日韩精品亚洲一区| 亚洲国产精品麻豆| 亚洲欧洲美洲综合色网| 日韩欧美色电影| 日韩精品一区二区在线| 欧美亚洲精品一区| 一区二区久久久| 欧美一区2区视频在线观看| 91香蕉视频污| 91国产成人在线| 在线观看三级视频欧美| 欧美日高清视频| 精品视频全国免费看| 欧美日韩一区三区四区| 欧美日韩精品电影| 8x8x8国产精品| 欧美一区二区在线不卡| 欧美一区二区三区性视频| 欧美第一区第二区| 国产喷白浆一区二区三区| 国产精品免费丝袜| 亚洲综合在线观看视频| 日韩精品免费视频人成| 国产黄色成人av| 在线一区二区三区做爰视频网站| 欧美午夜宅男影院| 久久噜噜亚洲综合| 夜夜嗨av一区二区三区| 麻豆91小视频| 99久久国产免费看| 欧美一级在线免费| 国产欧美日韩在线观看| 视频一区二区国产| www.亚洲国产| 精品第一国产综合精品aⅴ| 中文字幕欧美一区| 久久爱另类一区二区小说| 一本久道久久综合中文字幕| 日韩一区二区免费电影| 亚洲专区一二三| 99久久免费视频.com| 欧美成人欧美edvon| 亚洲日本免费电影| 国产成人小视频| 日韩一级黄色大片| 三级欧美在线一区| 欧美在线观看一区二区| 自拍偷拍国产亚洲| 成人av资源下载| 国产精品久久久久影院亚瑟| 日av在线不卡| 日韩免费在线观看| 精品一区二区三区免费| 日韩欧美的一区二区| 免费观看日韩电影| 国产亚洲欧美激情| 国产在线精品不卡| 久久久噜噜噜久久中文字幕色伊伊 | 欧美亚洲高清一区| 亚洲综合色噜噜狠狠| 欧美日韩一区二区三区四区五区| 亚洲激情中文1区| 欧美日韩免费观看一区三区| 日韩和欧美一区二区| 欧美精品一区二区三区蜜桃| 国产福利一区二区三区视频| 中文字幕在线不卡| 欧美日本一道本| 国产在线精品免费| 亚洲国产精品久久久久婷婷884 | 久久久精品国产免大香伊| 成人动漫av在线| 日韩电影一二三区| 久久综合狠狠综合久久激情| 在线免费观看不卡av| 精品一区二区三区免费毛片爱| 中文字幕不卡的av| 欧美精品亚洲二区| 99在线热播精品免费| 久久国产精品一区二区| 亚洲男人天堂av网| 久久精品在线免费观看| 91.com视频| 欧美性videosxxxxx| www.成人在线| 国产成人午夜视频| 欧美国产综合色视频| 国产69精品一区二区亚洲孕妇| 亚洲国产日日夜夜| 亚洲欧美一区二区三区久本道91| 精品粉嫩aⅴ一区二区三区四区| 欧美喷水一区二区| 欧美亚洲精品一区|