亚洲欧美第一页_禁久久精品乱码_粉嫩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久久久| 精品蜜桃在线看| 国产.欧美.日韩| 伊人夜夜躁av伊人久久| proumb性欧美在线观看| 亚洲国产日韩在线一区模特 | 国产精品一品二品| 国产午夜三级一区二区三| 国产一区二区毛片| 亚洲欧美日韩在线不卡| 欧美区视频在线观看| 免费久久99精品国产| 欧美激情一区三区| 欧美色视频一区| 麻豆91精品91久久久的内涵| 国产欧美1区2区3区| 欧美视频在线播放| 国产精品一二三区在线| 亚洲精品国产视频| 欧美精品自拍偷拍| 国产福利91精品一区二区三区| 亚洲色图一区二区| 欧美一区日本一区韩国一区| 成人夜色视频网站在线观看| 亚洲一区二区三区四区五区黄| 精品久久久久久久久久久久久久久久久 | 国产乱码精品一区二区三区av| 国产精品麻豆久久久| 欧美丰满少妇xxxxx高潮对白| 国产电影精品久久禁18| 亚洲国产精品综合小说图片区| 久久免费视频色| 欧美影院一区二区| 国产成人h网站| 日韩精品三区四区| 中文字幕欧美一| 日韩一二在线观看| 色妹子一区二区| 国产精品1区2区| 人人超碰91尤物精品国产| 日韩伦理电影网| 国产丝袜在线精品| 欧美精品色综合| 91视频xxxx| 懂色av一区二区夜夜嗨| 捆绑变态av一区二区三区| 一区二区三区日韩欧美精品| 久久综合色播五月| 91精品国产综合久久久蜜臀粉嫩 | 91精品国产综合久久精品app| 成人国产视频在线观看| 狠狠久久亚洲欧美| 肉色丝袜一区二区| 亚洲精品免费在线| 亚洲视频狠狠干| 中文字幕av不卡| 国产午夜一区二区三区| 欧美mv日韩mv国产网站| 欧美精品粉嫩高潮一区二区| 欧美在线一二三四区| 91玉足脚交白嫩脚丫在线播放| 国产成a人亚洲精| 国产在线精品一区二区夜色| 蜜臀av性久久久久av蜜臀妖精| 亚洲成人一区在线| 亚洲一区免费在线观看| 亚洲精品中文在线观看| 亚洲人xxxx| 亚洲一区视频在线| 亚洲亚洲人成综合网络| 亚洲一级二级在线| 亚洲成人一区在线| 日韩综合在线视频| 日韩1区2区3区| 久久精品久久99精品久久| 日韩av一二三| 久久99精品视频| 狠狠色丁香婷综合久久| 国产成人自拍网| 北岛玲一区二区三区四区| 99久久精品情趣| 91精品啪在线观看国产60岁| 91精品国产综合久久精品app| 日韩欧美www| 精品国精品自拍自在线| 国产欧美一区二区三区在线老狼| 亚洲国产精品成人久久综合一区| 国产精品第13页| 一区二区三区在线免费播放 | 91精品一区二区三区在线观看| 欧美一区二区三区系列电影| 精品日产卡一卡二卡麻豆| 久久伊99综合婷婷久久伊| 中文字幕二三区不卡| 亚洲卡通动漫在线| 午夜不卡av在线| 韩日精品视频一区| 成人晚上爱看视频| 色吧成人激情小说| 制服丝袜av成人在线看| 国产欧美日韩激情| 亚洲午夜影视影院在线观看| 日本欧美大码aⅴ在线播放| 国产在线精品不卡| 91丨porny丨国产入口| 欧美精品三级在线观看| 国产欧美一区二区三区沐欲| 夜夜嗨av一区二区三区网页| 奇米在线7777在线精品 | 一区二区三区在线免费视频| 免费成人在线观看视频| av电影在线观看完整版一区二区| 欧美剧情片在线观看| 国产午夜精品福利| 亚洲成人av一区二区三区| 国产一区二区毛片| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 日韩欧美色电影| 日韩美女精品在线| 久久99国产精品麻豆| 97se亚洲国产综合自在线| 3d成人h动漫网站入口| 国产日产亚洲精品系列| 亚洲国产精品人人做人人爽| 国产精一品亚洲二区在线视频| 欧美性videosxxxxx| 国产午夜亚洲精品午夜鲁丝片 | 日本乱人伦一区| 欧美经典一区二区| 日韩精品电影在线观看| 91香蕉视频黄| 欧美国产精品劲爆| 激情综合色综合久久| 精品婷婷伊人一区三区三| 国产欧美1区2区3区| 麻豆视频一区二区| 欧美三级中文字幕在线观看| 国产精品美女久久久久久| 麻豆一区二区三| 欧美一级片在线看| 亚洲伦在线观看| 成人黄色一级视频| 久久精品视频免费| 免费观看久久久4p| 欧美日本乱大交xxxxx| 亚洲免费看黄网站| 91在线国产福利| 国产欧美日韩视频在线观看| 久久66热偷产精品| 91精品国产一区二区人妖| 岛国精品在线播放| 久久久久久久久久电影| 精品亚洲成a人在线观看| 欧美日韩第一区日日骚| 夜夜揉揉日日人人青青一国产精品| 97精品国产97久久久久久久久久久久| 久久精品夜色噜噜亚洲aⅴ| 久久国产免费看| 日韩欧美色综合网站| 美腿丝袜亚洲一区| 欧美一区二区成人| 奇米精品一区二区三区四区 | 欧美一级国产精品| 免费看欧美美女黄的网站| 91精品国产综合久久精品麻豆| 天天做天天摸天天爽国产一区 | 极品销魂美女一区二区三区| 日韩久久免费av| 久久99精品久久久久| 欧美成人vps| 国产一区啦啦啦在线观看| 2019国产精品| 丁香婷婷综合色啪| 亚洲欧美一区二区三区孕妇| 99精品1区2区| 亚洲一区二区三区四区不卡| 欧美男生操女生| 老司机午夜精品| 久久精品视频免费观看| 99久久99久久综合| 亚洲国产你懂的| 精品捆绑美女sm三区| 国产激情精品久久久第一区二区| 中文字幕第一页久久| 色综合久久中文字幕综合网| 五月开心婷婷久久| 久久久久国产精品麻豆| 成人午夜精品在线| 亚洲综合精品久久| 欧美一区二区视频观看视频| 久久66热re国产| 亚洲美女免费视频| 91精品国产麻豆| 国产99久久久国产精品免费看| 亚洲精品自拍动漫在线| 91精品免费观看| 99视频一区二区| 美腿丝袜亚洲综合|