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

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

?? zlg85c30.c

?? z85c30 DRIVER RUN ON PC104 PC AND VXWORKS SYSTERM.
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include "vxWorks.h"
#include "iv.h"
#include "tyLib.h"
#include "intLib.h"
#include "rngLib.h"
#include "logLib.h"
#include "Zlg85C30.h"
#include "pc.h"
#include "stdio.h"

LOCAL int dataAddr[ComMaxUnit];
LOCAL int commandAddr[ComMaxUnit];
LOCAL int comMode[ComMaxUnit];

int 	  comIntTaskId;
//RING_ID          comInt_ring_id=NULL;
//SEM_ID		  comInt_sem_id=NULL;

RING_ID          comR_ring_id[ComMaxUnit];
RING_ID          comT_ring_id[ComMaxUnit];
RING_ID          comS_ring_id[ComMaxUnit];
SEM_ID		  comR_sem_id[ComMaxUnit];
int              portsending[ComMaxUnit];
LOCAL void ComIntHandle(int iPortNo);
LOCAL void ComIntHandle2(int iPortNo);
LOCAL void ComIntHandle3(int iPortNo);
//LOCAL void ComIntHandle4(int iPortNo);
LOCAL void ComOneIntHandle(int iPortNoN,unsigned char intflag);
LOCAL void com_IntTask(void);

int Zlg85C30Debugstatus=0;
/******************************************************************/
STATUS ComIntInit(int iPortNo,int dataport,unsigned long lBaudrate,unsigned char intLevel)
{
	unsigned long iDiviValue=115200L/lBaudrate;
	unsigned char chLbr;
	unsigned char chMbr;
	int lockKey;

	printf("ComIntInit PortNo=%d dataAddr=%x baudrate=%d intLevel=%d\n", iPortNo,dataport,lBaudrate,intLevel);
	if(iPortNo>=ComMaxUnit)return 0;

	dataAddr[iPortNo]=dataport;
	commandAddr[iPortNo]=dataport;

	sysOutByte(dataAddr[iPortNo]+com_lineclt,0x03);
	sysOutByte(dataAddr[iPortNo]+com_lineclt,(0x80|sysInByte(dataAddr[iPortNo] + com_lineclt)));
	chLbr=iDiviValue&0xff;
	chMbr=(iDiviValue>>8)&0xff;
	sysOutByte(dataAddr[iPortNo],chLbr);
	sysOutByte(dataAddr[iPortNo]+1,chMbr);
	
	sysOutByte(dataAddr[iPortNo]+com_lineclt,(0x7f&sysInByte(dataAddr[iPortNo] + com_lineclt)));

	portsending[iPortNo]=0;
	comR_ring_id[iPortNo]=rngCreate(ComMaxData);
	if(comR_ring_id[iPortNo]==NULL){printf("Error: can not create ring\n");return ERROR;}
	comS_ring_id[iPortNo]=rngCreate(ComMaxData);
	if(comS_ring_id[iPortNo]==NULL){printf("Error: can not create ring\n");return ERROR;}
	if((comR_sem_id[iPortNo]=semBCreate(SEM_Q_FIFO, SEM_EMPTY)) == NULL)
		{printf("Error: can not create sem!\n");return ERROR;}

	lockKey = intLock ();
	if(sysIntDisablePIC(intLevel)==ERROR){intUnlock (lockKey); return ERROR;}
	if(intConnect(INUM_TO_IVEC(0x20+intLevel),ComIntHandle,iPortNo)==ERROR)
	{
		intUnlock (lockKey);		
		logMsg("Error: connect int\n",0,0,0,0,0,0);
		return ERROR;
	}
	if(sysIntEnablePIC(intLevel)==ERROR){intUnlock (lockKey); return ERROR;}

	sysOutByte(dataAddr[iPortNo]+ com_modemclt,0x0b);
	sysOutByte(dataAddr[iPortNo]+ com_intenable,0x03);	

	intUnlock (lockKey);
	
	return OK;
}
 
LOCAL void ComIntHandle(int iPortNo)
{
	unsigned char intflag=0,lineStatus;
	int lockKey;
	char str[2];

	/*lockKey = intLock ();
	if(iPortNo>=ComMaxUnit){intUnlock (lockKey); return;}
	FOREVER
	{
	    portconfig[iPortNo].intNum++;
	    intflag=(sysInByte(dataAddr[iPortNo]+com_intflag)&0x06);
	    if((intflag==0)||(intflag==1)||(intflag==3))break;
	    //intflag=sysInByte(dataAddr[iPortNo]+com_intflag)&0x07;
	    //if((intflag==1)||(intflag==0))break;
	    //intflag &=0x06;	   
         //if(intflag==0)break;
	    switch (intflag)
	    {
		case 2:
			if(rngIsEmpty(comS_ring_id[iPortNo])==FALSE)
			{
				rngBufGet(comS_ring_id[iPortNo],str,1);
				sysOutByte(dataAddr[iPortNo]+com_dataport,str[0]);
				portsending[iPortNo]=1;
				portconfig[iPortNo].SendByteNum++;
			}
			else
			{
				portsending[iPortNo]=0;
			}
		break;
		case 4:                                
			str[0]=sysInByte(dataAddr[iPortNo]+com_dataport);
			portconfig[iPortNo].RevByteNum++;
			if(rngFreeBytes(comR_ring_id[iPortNo])>0)
			{
				if(rngBufPut(comR_ring_id[iPortNo],str,1)<1)
					logMsg("Put flow!\n",0,0,0,0,0,0);
			}
		break;
		case 6:                                
			//lineStatus = sysInByte(dataAddr[iPortNo]+com_lineflag);
		break;
		define: break;
	    }
	}
	if(rngIsEmpty(comR_ring_id[iPortNo])==FALSE)semGive(comR_sem_id[iPortNo]);
	intUnlock (lockKey);*/

	lockKey = intLock ();
	portconfig[iPortNo].intNum++;

	if(iPortNo>=ComMaxUnit){intUnlock (lockKey); return;}


	intflag=sysInByte(dataAddr[iPortNo]+com_intflag);
	while((intflag&0x06)!=0)
	{
	    switch (intflag)
	    {
		case 2:
			if(rngIsEmpty(comS_ring_id[iPortNo])==FALSE)
			{
				rngBufGet(comS_ring_id[iPortNo],str,1);
				sysOutByte(dataAddr[iPortNo]+com_dataport,str[0]);
				portsending[iPortNo]=1;
				portconfig[iPortNo].SendByteNum++;
			}
			else
			{
				portsending[iPortNo]=0;
			}
		break;
		case 4:                                
			str[0]=sysInByte(dataAddr[iPortNo]+com_dataport);
			portconfig[iPortNo].RevByteNum++;
			if(rngFreeBytes(comR_ring_id[iPortNo])>0)
			{
				if(rngBufPut(comR_ring_id[iPortNo],str,1)<1)
					logMsg("Put flow!\n",0,0,0,0,0,0);
			}
		break;
		define: break;
	    }
	    intflag=sysInByte(dataAddr[iPortNo]+com_intflag);
	}
	if(rngIsEmpty(comR_ring_id[iPortNo])==FALSE)semGive(comR_sem_id[iPortNo]);
	intUnlock (lockKey);

}

/****************************************
*
*
Register Value Comments
WR9 C0H Force Hardware Reset
WR4 4CH x 16 clock, 2 stop bits, no parity
WR2 00H Interrupt Vector 00
WR3 C0H Rx 8 bits, Rx disabled
WR5 60H Tx 8 bits, DTR, RTS, Tx off
WR9 00H Int Disabled
WR10 00H NRZ
WR11 56H Tx & Rx = BRG out, TRxC = BRG out
WR12 06H Time constant = 6
WR13 00H Time constant high = 0
WR14 10H BRG in = RTxC, BRG of, loopback
Enables
WR14 11H BRG enable
WR3 C1H Rx enable
WR5 68H Tx enable
Enable Interrupts
WR1 12H Rx Int on all char and Tx Int enables
WR9 08H MIE

C4H → WR4, 00H → WR2,C0H → WR3 60H → WR5,00H → WR9, 50H → WR11 02H → WR14
,計算時間常數 時間常數低字節→WR12 時間常數高字節→WR13
03H → WR14,C1H → WR3,68H → WR5 12H → WR1,00H → WR15,08H → WR9
*
*****************************************/

STATUS com_asyncInitial(int iPortNo
				,int commandport
				,int dataport
				,unsigned long baudRate)
{

	unsigned char baut_hi;
	unsigned char baut_lo;
	unsigned long tc=0,tc1=0,tc2=0;
	unsigned long br=0;
	printf("com_asyncInitial PortNo=%d dataAddr=%x baudrate=%d\n", iPortNo,dataport,baudRate);

	dataAddr[iPortNo]=dataport;
	commandAddr[iPortNo]=commandport;
	comMode[iPortNo]=0;

	sysOutByte(commandport,0x04);
	sysOutByte(commandport,0x84);//0xc4:X64;0x84:X32;0x44:X16;0x04:X1

	sysOutByte(commandport,0x02);
	sysOutByte(commandport,0x0);

	sysOutByte(commandport,0x03);
	sysOutByte(commandport,0xc0);

	sysOutByte(commandport,0x05);
	sysOutByte(commandport,0x60);

	sysOutByte(commandport,0x09);
	sysOutByte(commandport,0x0);

	sysOutByte(commandport,0x0b);
	sysOutByte(commandport,0x50);

	sysOutByte(commandport,0x0e);
	sysOutByte(commandport,0x02);

	br=baudRate;
	//tc=(clock_f/(2*br*64))-2;
	tc=(clock_f/(2*br*32))-2;
	tc1=tc2=tc;
	baut_hi=(tc1&0xff00)>>8;
	baut_lo=(tc2&0x00ff);
	printf("%ld %2x %2X",tc,baut_hi,baut_lo);

	sysOutByte(commandport,0x0c);
	sysOutByte(commandport,baut_lo);        

	sysOutByte(commandport,0x0d);
	sysOutByte(commandport,baut_hi);       

	sysOutByte(commandport,0x0e);
	sysOutByte(commandport,0x03);        

	sysOutByte(commandport,0x03);
	sysOutByte(commandport,0xc1);        

	sysOutByte(commandport,0x05);
	sysOutByte(commandport,0x68);

	sysOutByte(commandport,0x01);
	sysOutByte(commandport,0x12);

	sysOutByte(commandport,0x0f);
	sysOutByte(commandport,0x0);

	sysOutByte(commandport,0x09);
	sysOutByte(commandport,0x08);        

	/*sysInByte(dataport);*/

	portsending[iPortNo]=0;
	comR_ring_id[iPortNo]=rngCreate(ComMaxData);
	if(comR_ring_id[iPortNo]==NULL){printf("Error: can not create ring\n");return ERROR;}
	comS_ring_id[iPortNo]=rngCreate(ComMaxData);
	if(comS_ring_id[iPortNo]==NULL){printf("Error: can not create ring\n");return ERROR;}
	if((comR_sem_id[iPortNo]=semBCreate(SEM_Q_FIFO, SEM_EMPTY)) == NULL)
		{printf("Error: can not create sem!\n");return ERROR;}
	return OK;
}

/*********************************
*
Initializing in SDLC Mode
Bit #
Reg D7 D6 D5 D4 D3 D2 D1 D0 Description
WR4 0 0 1 0 0 0 0 0 Select x1 clock,
				SDLC mode, enable sync mode
WR3 r x 0 1 1 1 0 0 rx=# of Rx bits/char, No auto enable, enter Hunt.
				Enable Rx CRC, Address Search, No sync character
				load inhibit
WR5 d t x 0 0 0 r 1 d=inverse of DTR pin, tx=# of Tx bits/char, use SDLC CRC,
				r=inverse state of /RTS pin, CRC enable
WR7 0 1 1 1 1 1 1 0 SDLC Flag
WR6 x x x x x x x x Receiver secondary address
WR15 x x x x x x x 1 Enable access to new register
WR7' 0 1 1 d 1 r 1 1 Enable extended read, Tx INT on FIFO empty,
				d=REQUEST timing mode, Rx INT on 4 char, r=RTS
				deactivation, auto EOM reset, auto flag tx CRC preset to
				zero, NRZ data,i=idle line
WR10 0 0 0 0 i 0 0 0 CRC preset to zero, NRZ data, i=idle line
WR3 r x 0 1 1 1 0 1 Enable Receiver
WR5 d t x 0 1 0 r 1 Enable Transmitter
WR0 1 0 0 0 0 0 0 0 Reset CRC generator
*
00H→WR2,D8H→WR3,61H→WR5,00H→WR9
00H→WR15,7EH→WR7,FFH→WR6,01H→WR15
43H→WR7,88H→WR10,60H→WR14,
計算時間常數時間常數低字節→WR12,時間常數高字節→WR13,02H→WR14

*
*
**********************************/
STATUS com_syncInitial(int iPortNo
				,int commandport
				,int dataport
				,unsigned long baudRate
				,int Tclock_type)
{
    int baut_hi;
    int baut_lo;
    unsigned long tc=0,tc1=0,tc2=0;
    unsigned long br=0;

	printf("com_syncInitial PortNo=%d dataAddr=%x baudrate=%d clockType=%d\n", iPortNo,dataport,baudRate,Tclock_type);

	dataAddr[iPortNo]=dataport;
	commandAddr[iPortNo]=commandport;
	comMode[iPortNo]=1;

	sysOutByte(commandport,0x04);        
	if(Tclock_type==0)
		sysOutByte(commandport,0xa0);        
	else
		sysOutByte(commandport,0x20);        


	sysOutByte(commandport,0x02);        
	sysOutByte(commandport,0x00);

	sysOutByte(commandport,0x03);        
	sysOutByte(commandport,0xd8);        


	sysOutByte(commandport,0x05);        
	sysOutByte(commandport,0x61);

	sysOutByte(commandport,0x09);        
	sysOutByte(commandport,0x0);        

	sysOutByte(commandport,0x0f);        
	sysOutByte(commandport,0x0);       

	sysOutByte(commandport,0x07);        
	sysOutByte(commandport,0x7e);        

	sysOutByte(commandport,0x06);        
	sysOutByte(commandport,0xff);        

	sysOutByte(commandport,0x0f);        
	sysOutByte(commandport,0x01);        
	sysOutByte(commandport,0x07);        
	sysOutByte(commandport,0x43);        
				       
	sysOutByte(commandport,0x0a);        
	sysOutByte(commandport,0x88);        

	sysOutByte(commandport,0x0e);
	sysOutByte(commandport,0x60);

	if(Tclock_type==0)
	{
		br=baudRate;           
		tc=(clock_f/(2*br*32))-2;
		tc1=tc2=tc;
		baut_hi=(tc1&0xff00)>>8;
		baut_lo=(tc2&0x00ff);
	}
	else
	{
		br=baudRate;          
		tc=(clock_f/(2*br))-2;
		tc1=tc2=tc;
		baut_hi=(tc1&0xff00)>>8;
		baut_lo=(tc2&0x00ff);
	}

	sysOutByte(commandport,0x0c);
	sysOutByte(commandport,baut_lo);        

	sysOutByte(commandport,0x0d);
	sysOutByte(commandport,baut_hi);        

	sysOutByte(commandport,0x0e);
	sysOutByte(commandport,0x02);           

	if(Tclock_type==0)                
	{
		sysOutByte(commandport,0x0b);
		sysOutByte(commandport,0x7f);      	

		sysOutByte(commandport,0x0e);
		sysOutByte(commandport,0x83);         

		sysOutByte(commandport,0x0e);
		sysOutByte(commandport,0xe3);
	        
		sysOutByte(commandport,0x0e);
		sysOutByte(commandport,0x23);         
	}
	else  if(Tclock_type==1)          
	{
		sysOutByte(commandport,0x0b);
		sysOutByte(commandport,0x56);      

		sysOutByte(commandport,0x0e);
		sysOutByte(commandport,0x63);         
	}
	else                              
	{
/*
Write Register 11:
D1 D0 :
 0 0 /TRxC Out = Xtal Output
 0 1 /TRxC Out = Transmit Clock
 1 0 /TRxC Out = BR Generator Output
 1 1 /TRxC Out = DPLL Output
D2 : /TRxC O/I
D4 D3:
 0 0 Transmit Clock = /RTxC Pin
 0 1 Transmit Clock = /TRxC Pin
 1 0 Transmit Clock = BR Generator Output
 1 1 Transmit Clock = DPLL Output
D6 D5:
 0 0 Receive Clock = /RTxC Pin
 0 1 Receive Clock = /TRxC Pin
 1 0 Receive Clock = BR Generator Output
 1 1 Receive Clock = DPLL Output
D7: /RTxC Xtal//No Xtal
*/
		sysOutByte(commandport,0x0b);
		sysOutByte(commandport,0x00);
		/*sysOutByte(commandport,0x2d);*/

		sysOutByte(commandport,0x0e);
		sysOutByte(commandport,0x63);         
	}

	sysOutByte(commandport,0x03);        
	sysOutByte(commandport,0xd9);

	sysOutByte(commandport,0x05);        
	sysOutByte(commandport,0x69);        

	sysOutByte(commandport,0x01);
	sysOutByte(commandport,0x13);       

	sysOutByte(commandport,0x0f);       
	sysOutByte(commandport,0x40);

	sysOutByte(commandport,0x09);
	sysOutByte(commandport,0x08);       


	/*sysOutByte(commandport,0x40);*/

	/*sysInByte(dataport);*/

	portsending[iPortNo]=0;
	comR_ring_id[iPortNo]=rngCreate(ComMaxData);
	if(comR_ring_id[iPortNo]==NULL){printf("Error: can not create ring\n");return ERROR;}
	comS_ring_id[iPortNo]=rngCreate(ComMaxData);
	if(comS_ring_id[iPortNo]==NULL){printf("Error: can not create ring\n");return ERROR;}
	if((comR_sem_id[iPortNo]=semBCreate(SEM_Q_FIFO, SEM_EMPTY)) == NULL)
		{printf("Error: can not create sem!\n");return ERROR;}

	return OK;
}
/*
LOCAL void com_IntTask(void)
{
	unsigned char iPortNo,intflag;
	if(comInt_sem_id==NULL)return;
	FOREVER
	{
		semTake(comInt_sem_id,WAIT_FOREVER);
		while(rngIsEmpty(comInt_ring_id)==FALSE)
		{	
			rngBufGet(comInt_ring_id,&iPortNo,1);
			rngBufGet(comInt_ring_id,&intflag,1);
			//ComOneIntHandle(iPortNo,intflag);
		}
	}
}
*/
STATUS com_intConnect(int iAPortNo,unsigned char intLevel)
{
	int lockKey;

	if(iAPortNo>=ComMaxUnit)return ERROR;
/*	// 060423 Add wzk //
	if(comInt_ring_id==NULL)
	{
		comInt_ring_id=rngCreate(ComMaxData);
		if(comInt_ring_id==NULL)
			{printf("Error: can not create ring\n");return ERROR;}
		if((comInt_sem_id=semBCreate(SEM_Q_FIFO, SEM_EMPTY)) == NULL)
			{printf("Error: can not create sem!\n");return ERROR;}

		if((comIntTaskId=taskSpawn("comTask",100,0,10000,(FUNCPTR)com_IntTask,0,0,0,0,0,0,0,0,0,0))==ERROR)
		{
			printf("comIntTest task cannot be create.");
			return ERROR;
		}
		printf(" Create Zlg85C30 Interrupt Ring\n");
	}*/
	lockKey = intLock ();
	if(sysIntDisablePIC(intLevel)==ERROR){intUnlock (lockKey); return ERROR;}
	if(intConnect(INUM_TO_IVEC(0x20+intLevel),ComIntHandle3,iAPortNo)==ERROR)
	{
		intUnlock (lockKey);
		return ERROR;
	}
	if(sysIntEnablePIC(intLevel)==ERROR){intUnlock (lockKey); return ERROR;}
	intUnlock (lockKey);

	return OK;
}
/******************************************************************
0 0 0 0(0x00) Ch B Transmit Buffer Empty
0 0 1 0(0x02) Ch B External/Status Change
0 1 0 0(0x04) Ch B Receive Character Available
0 1 1 0(0x06) Ch B Special Receive Condition
1 0 0 0(0x08) Ch A Transmit Buffer Empty
1 0 1 0(0x0a) Ch A External/Status Change
1 1 0 0(0x0c) Ch A Receive Character Available
1 1 1 0(0x0e) Ch A Special Receive Condition
*
LOCAL void ComIntHandle4(int iPortNo)
{
	unsigned char intflag=0,rr1=0;
	int lockKey;
	char outChar[ComMaxUnit];
	char inChar[ComMaxUnit];
	int dataAddrA;
	int commandAddrA;
	int dataAddrB;
	int commandAddrB;
	int iPortNoA,iPortNoB;
	int whilenum=0;
	

	if(iPortNo>=ComMaxUnit)return;
	if(iPortNo<1)return;

	lockKey = intLock ();
	iPortNoA=iPortNo;
	iPortNoB=iPortNo-1;
	
	dataAddrA=dataAddr[iPortNoA];
	commandAddrA=commandAddr[iPortNoA];
	dataAddrB=dataAddr[iPortNoB];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一卡二卡三卡| 日本一区免费视频| 欧美日韩在线免费视频| 一本到高清视频免费精品| 在线观看日韩毛片| 欧美国产精品一区二区| 中文字幕精品在线不卡| 国产精品久久久久久久久久免费看 | 制服丝袜激情欧洲亚洲| 日韩一区二区三区电影在线观看 | 国产在线不卡一区| 99视频精品免费视频| 337p亚洲精品色噜噜噜| 亚洲精品自拍动漫在线| 日本不卡免费在线视频| hitomi一区二区三区精品| 欧美精品在线观看一区二区| 国产精品免费观看视频| 久久草av在线| 日韩午夜激情视频| 亚洲va欧美va天堂v国产综合| 99久久久久久| 国产欧美一区二区精品仙草咪| 日本欧洲一区二区| 欧美日韩国产另类一区| 亚洲理论在线观看| eeuss国产一区二区三区| 久久婷婷国产综合精品青草| 日韩电影在线免费| 欧美日韩国产一二三| 午夜久久久影院| 国产日韩v精品一区二区| 国产在线国偷精品免费看| 26uuu色噜噜精品一区二区| 日韩高清中文字幕一区| 日韩一区二区电影网| 亚洲成人午夜电影| 51精品国自产在线| 国产一区二区不卡在线| 国产精品乱子久久久久| 成人午夜视频免费看| 国产精品日日摸夜夜摸av| 91亚洲大成网污www| 婷婷综合久久一区二区三区| 国产日韩精品久久久| 色视频成人在线观看免| 性做久久久久久| 久久亚洲影视婷婷| 色婷婷香蕉在线一区二区| 日韩激情一二三区| 久久久久久麻豆| 欧美中文字幕一区二区三区亚洲| 日韩国产成人精品| 亚洲视频中文字幕| 精品99999| 欧美精品一二三区| 99re热视频这里只精品| 精品一区免费av| 一区二区三区免费| 精品美女一区二区三区| 在线视频你懂得一区二区三区| 免费欧美日韩国产三级电影| 国产精品成人午夜| 欧美va亚洲va国产综合| 色婷婷av一区二区三区之一色屋| 麻豆91在线播放| 男人的j进女人的j一区| 《视频一区视频二区| 久久先锋资源网| 日韩欧美久久久| 欧美一级理论片| 91精品婷婷国产综合久久| 日本高清成人免费播放| 91一区二区在线| 色婷婷av一区二区三区大白胸| 丰满少妇在线播放bd日韩电影| 国产综合色精品一区二区三区| 亚洲国产aⅴ天堂久久| 亚洲欧美综合色| 亚洲乱码中文字幕综合| 国产精品短视频| 亚洲欧洲性图库| 亚洲一区二区偷拍精品| 亚洲国产成人av网| 麻豆91精品视频| 丰满白嫩尤物一区二区| heyzo一本久久综合| 色又黄又爽网站www久久| 欧美性一二三区| 精品入口麻豆88视频| 国产精品久久99| 亚洲日本va午夜在线影院| 亚洲第一会所有码转帖| 日本在线不卡视频一二三区| 精品一区二区三区蜜桃| 91视频免费播放| 91精品国产综合久久久久久漫画| 国产日韩欧美不卡在线| 亚洲高清免费视频| 国产伦精品一区二区三区在线观看| 成人激情免费网站| 欧美人xxxx| 中文字幕一区二区在线播放| 丝袜亚洲另类欧美| 一本色道久久综合亚洲aⅴ蜜桃| 日韩三级在线免费观看| 亚洲人一二三区| 成人晚上爱看视频| 欧美一区二区久久久| 亚洲国产人成综合网站| 成人激情文学综合网| 久久伊人蜜桃av一区二区| 日韩一区精品字幕| 欧美中文字幕一二三区视频| 国产欧美日韩久久| 国产精一区二区三区| 欧美精品一区二区三区蜜桃| 亚洲第一成年网| 在线免费视频一区二区| 一区二区三区在线播放| 99国产精品久久久| 国产精品欧美久久久久一区二区| 精品一区二区在线免费观看| 日韩一区二区三免费高清| 亚洲第一综合色| 欧美成人性福生活免费看| 免费观看日韩电影| 日韩视频国产视频| 国产成人鲁色资源国产91色综 | 在线观看日韩高清av| 精品一区二区在线观看| 国产亚洲精品资源在线26u| 国产精品 欧美精品| 亚洲欧洲日产国产综合网| 色综合 综合色| 日本亚洲天堂网| 国产色一区二区| 欧美日韩国产高清一区| 青青青爽久久午夜综合久久午夜| 欧美一区二区日韩| 成人午夜免费电影| 亚洲第一在线综合网站| 久久久久久免费| 欧美日本免费一区二区三区| 毛片av一区二区| 亚洲激情自拍视频| 精品国产一区二区三区久久久蜜月 | 91麻豆精品国产91久久久久久久久 | 欧美日韩亚洲综合一区二区三区| 精品亚洲成a人在线观看| 亚洲天堂久久久久久久| 欧美久久一区二区| 日本乱人伦aⅴ精品| 久久99精品国产| 爽爽淫人综合网网站| 亚洲精品v日韩精品| 国产精品国产成人国产三级| 日韩一区二区三区三四区视频在线观看 | 久久免费看少妇高潮| 色八戒一区二区三区| 国产91在线|亚洲| 精品一二三四在线| 老司机精品视频导航| 日精品一区二区| 日日摸夜夜添夜夜添国产精品 | av午夜一区麻豆| 国产不卡在线一区| 国产成人精品综合在线观看| 免费成人在线观看| 久久99精品一区二区三区三区| 亚洲一区二区三区在线| 亚洲国产一区二区三区| 亚洲午夜精品一区二区三区他趣| 国产精品久久久久久久裸模| 国产精品久久久久久久久晋中 | 欧美成人精精品一区二区频| 精品免费视频一区二区| 久久蜜桃一区二区| 亚洲欧洲av另类| 亚洲成在人线在线播放| 免费成人在线网站| 成人精品免费视频| 色综合久久天天综合网| 欧美人与禽zozo性伦| 日韩美女天天操| 国产精品狼人久久影院观看方式| 亚洲美女视频在线观看| 免费人成网站在线观看欧美高清| 成人午夜视频福利| 欧美日韩视频不卡| 久久先锋影音av鲁色资源| 亚洲免费在线观看| 国产在线精品一区在线观看麻豆| 国产电影精品久久禁18| 欧美色网一区二区| 中文字幕高清不卡| 蜜臀久久久久久久| 欧美中文字幕一区| 国产精品九色蝌蚪自拍| 国产在线乱码一区二区三区|