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

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

?? comm.h

?? 一個(gè)C語言編寫的串口程序
?? H
字號(hào):
/*****************************
comm.h:終端與支付密碼器通訊協(xié)議
編制人:李健
編制日期:2001/8/28
修改日期:2001/12/13 /2001/12/17
上層調(diào)用:comm.c
*****************************/

#include <string.h>
#include <termio.h>
#include <fcntl.h>
#include <stdlib.h>
#include <time.h>
#include <stdio.h>

char MsgLog[50]="/usr/zfmm/comm/comm.log";  /*程序信息*/
FILE *fp;

#define TTY		0	/*	0-串口,1-輔口		*/

#define True   		0 
#define False   	-1	

#define PACKLEN		520	/*	幀最大長度		*/

#define STX		0x02	/*	幀頭			*/
#define ETX		0x03	/*	幀尾			*/

/*	TAG		*/
#define READ_SN		0x31	/*	讀機(jī)具號(hào)和芯片序列號(hào)	*/	
#define GEN_KEYPAIR	0x32	/*	產(chǎn)生密鑰對		*/
#define LOAD_AK		0x33	/*	下載AK支		*/
#define DEL_ACCU	0x34	/*	刪除帳號(hào)		*/
#define ADD_SIG		0x35	/*	增發(fā)簽名		*/
#define UNLOCK		0x36	/*	解鎖			*/
#define DIST_MACH	0x37	/*	發(fā)行機(jī)具		*/
#define CONN_CALU	0x38	/*	聯(lián)機(jī)計(jì)算		*/

#define INIT_IC		0x50	/*	初始化IC卡		*/
#define VER_ICMM	0x51	/*	驗(yàn)證IC卡密碼		*/
#define CHG_ICMM	0x52	/*	修改IC卡密碼		*/
#define COMP_CHIPNO	0x53	/*	比較算法芯片號(hào)		*/
#define ICZFMM		0x54	/*	生成支付密碼對照表	*/

char Send_Buff[PACKLEN];	/*	Send Buffer		*/
char Rece_Buff[PACKLEN];	/*	Rece Buffer		*/

char AUXLEAD[25];		/*	終端輔口頭		*/
char AUXEND[25];		/*	終端輔口尾		*/

static int    Port_no;
static struct termio bak_termio,curr_termio;

#if TTY==0
/*	此處程序供串口使用		*/

/*	初始化串口	*/
int Port_Init(char *tty_name)
{

	Port_no=open(tty_name,O_RDWR);
	if (Port_no<0) return (False);
	if (ioctl(Port_no,TCGETA,&bak_termio)<0)  return (False);

	curr_termio=bak_termio;
	curr_termio.c_iflag&=~IXON;
	curr_termio.c_iflag&=~IXOFF;
	curr_termio.c_iflag&=~INLCR;
	curr_termio.c_iflag&=~ICRNL;

	curr_termio.c_oflag&=~OPOST;
	curr_termio.c_oflag&=~OLCUC;
	curr_termio.c_oflag&=~ONLCR;
	curr_termio.c_oflag&=~OCRNL;

	curr_termio.c_cflag&=~CBAUD;   
	curr_termio.c_cflag|=B9600;
	curr_termio.c_cflag&=~CSIZE;
	curr_termio.c_cflag|=CS8;

	curr_termio.c_lflag&=~ECHO;
	curr_termio.c_lflag&=~ICANON;
	curr_termio.c_lflag&=~ISIG;

	curr_termio.c_cc[VMIN]=0;
	curr_termio.c_cc[VTIME]=5;
	curr_termio.c_cc[VQUIT]=0xff;


	ioctl(Port_no,TCFLSH,2);
	if (ioctl(Port_no,TCSETA,&curr_termio)<0) return (False);

	return (True);
}

/*	恢復(fù)串口	*/
int Port_Res()
{
	if(Port_no<0)	return (False);
	if(ioctl(Port_no,TCSETAW,&bak_termio)<0)  return (False);
	close(Port_no);
	return (True);
}

/*	發(fā)送字符串	*/
int Out_Port(char *temp)
{
	int i,temp_len=0;
	char buf[2];

	temp_len=strlen(temp);

	ioctl(Port_no,TCSBRK,1);

	for(i=0;i<temp_len;i++)
	{
		buf[0]=temp[i];	
		buf[1]='\0';
		write(Port_no,buf,strlen(buf));
	}

	return (True);
}

/*	接收一個(gè)字符	*/
int In_Port(char *temp)
{
	 char s='\0';
	int i=0;

	i=read(Port_no,&s,1);
	*(temp)=s;
	if (i<=0)	return (False);
	else	return (True);
}
#endif


#if TTY==1
/*	此處為終端輔口使用		*/

/*	初始化輔口	*/
int Port_Init(char *tty_name)		
{	
	char temp[PACKLEN];

	memset(temp,0,PACKLEN);

	/*	實(shí)達(dá)終端輔口3		*/
        strcpy(temp,"\033[/50h\033!0;0;0;0X\033[/54l\033[/53h");
        strcpy (AUXLEAD ,"\033[/51h");
        strcpy (AUXEND  ,"\033[/51l");

	Port_no=open(tty_name,O_RDWR);
	if (Port_no<0) return (False);
	if (ioctl(Port_no,TCGETA,&bak_termio)<0)  return (False);
	
	curr_termio=bak_termio;
	curr_termio.c_iflag&=~IXON;
	curr_termio.c_iflag&=~IXOFF;
	curr_termio.c_iflag&=~INLCR;
	curr_termio.c_iflag&=~ICRNL;

	curr_termio.c_oflag&=~OPOST;
	curr_termio.c_oflag&=~OLCUC;
	curr_termio.c_oflag&=~ONLCR;
	curr_termio.c_oflag&=~OCRNL;

	curr_termio.c_lflag&=~ECHO;
	curr_termio.c_lflag&=~ICANON;
	curr_termio.c_lflag&=~ISIG;
	
	curr_termio.c_cc[VMIN]=0;
	curr_termio.c_cc[VTIME]=5;
	curr_termio.c_cc[VQUIT]=0xff;

	if (ioctl(Port_no,TCSETA,&curr_termio)<0) return (False);	
	
	write(Port_no,temp,strlen(temp));
	return (True);
}

int Port_Res()		
{
	if(Port_no<0)	return (False);
	if(ioctl(Port_no,TCSETAW,&bak_termio)<0)  return (False);

	close(Port_no);
	return (True);
}

int Out_Port(char *temp)
{
	int i;
	char buf[2];

	write(Port_no,AUXLEAD,strlen(AUXLEAD));
	for(i=0;i<strlen(temp);i++)
	{	
		buf[0]=temp[i];	buf[1]='\0';
		write(Port_no,buf,strlen(buf));
	}
	write(Port_no,AUXEND,strlen(AUXEND));

	return (True);
}

int In_Port(char *temp)
{
	 char s='\0';
	int i=0;

	i=read(Port_no,&s,1);
	*(temp)=s;

	if (i<=0)	return (False);
	else		return (True);
}
#endif
	


/*	打包程序	*/
int Make_Item(char TAG,char *buffer)
{
	int i=0,q=0,s=0,x=0,s1,s2;
	int len=0;
	static   int xh=0;
	char Temp[PACKLEN];

	memset(Send_Buff,'\0',PACKLEN);
	memset(Temp,'\0',PACKLEN);

	Temp[0]=STX;				/*	STX	*/

	Temp[1]=(xh>>4)&0x0f;			/*	SEQ	*/
	if (Temp[1]>=10)
		Temp[1]=Temp[1]-10+0x41;
	else
		Temp[1]=Temp[1]+0x30;
	Temp[2]=(xh)&0x0f;	
	if (Temp[2]>=10)
		Temp[2]=Temp[2]-10+0x41;
	else
		Temp[2]=Temp[2]+0x30;
	xh++;

	Temp[3]=(TAG>>4)&0x0f;			/*	TAG	*/
	if (Temp[3]>=10)
		Temp[3]=Temp[3]-10+0x41;
	else
		Temp[3]=Temp[3]+0x30;
	Temp[4]=(TAG)&0x0f;	
	if (Temp[4]>=10)
		Temp[4]=Temp[4]-10+0x41;
	else
		Temp[4]=Temp[4]+0x30;

	len=strlen(buffer)/2;			/*	LEN	*/
	Temp[5]=(len>>12)&0x0f;	
	if (Temp[5]>=10)
		Temp[5]=Temp[5]-10+0x41;
	else
		Temp[5]=Temp[5]+0x30;
	Temp[6]=(len>>8)&0x0f;	
	if (Temp[6]>=10)
		Temp[6]=Temp[6]-10+0x41;
	else
		Temp[6]=Temp[6]+0x30;
	Temp[7]=(len>>4)&0x0f;	
	if (Temp[7]>=10)
		Temp[7]=Temp[7]-10+0x41;
	else
		Temp[7]=Temp[7]+0x30;
	Temp[8]=(len)&0x0f;	
	if (Temp[8]>=10)
		Temp[8]=Temp[8]-10+0x41;
	else
		Temp[8]=Temp[8]+0x30;
	
	strcat(Temp,buffer);			/*	DATA	*/

	
	for (i=0;i<4+len;i++)			/*	LRC	*/	
	{
		if ((Temp[i*2+1]>='A')&&(Temp[i*2+1]<='F'))
			s1=(Temp[i*2+1]-'A'+10);
		else if((Temp[i*2+1]>='0')&&(Temp[i*2+1]<='9'))
			s1=(Temp[i*2+1]-'0');
		if ((Temp[i*2+2]>='A')&&(Temp[i*2+2]<='F'))
			s2=(Temp[i*2+2]-'A'+10);
		else if((Temp[i*2+2]>='0')&&(Temp[i*2+2]<='9'))
			s2=(Temp[i*2+2]-'0');

		x=(s1<<4)|(s2);
		q=(q+x)%65536;	/*	2001/12/13修改	*/
		s=(s+q)%65536;
	}
	Temp[8+len*2+1]=(s>>12)&0x0f;	
	if (Temp[8+len*2+1]>=10)
		Temp[8+len*2+1]=Temp[8+len*2+1]-10+0x41;
	else
		Temp[8+len*2+1]=Temp[8+len*2+1]+0x30;

	Temp[8+len*2+2]=(s>>8)&0x0f;	
	if (Temp[8+len*2+2]>=10)
		Temp[8+len*2+2]=Temp[8+len*2+2]-10+0x41;
	else
		Temp[8+len*2+2]=Temp[8+len*2+2]+0x30;

	Temp[8+len*2+3]=(s>>4)&0x0f;	
	if (Temp[8+len*2+3]>=10)
		Temp[8+len*2+3]=Temp[8+len*2+3]-10+0x41;
	else
		Temp[8+len*2+3]=Temp[8+len*2+3]+0x30;

	Temp[8+len*2+4]=(s)&0x0f;	
	if (Temp[8+len*2+4]>=10)
		Temp[8+len*2+4]=Temp[8+len*2+4]-10+0x41;
	else
		Temp[8+len*2+4]=Temp[8+len*2+4]+0x30;

	Temp[8+len*2+5]=ETX;			/*	ETC	*/

	strcpy(Send_Buff,Temp);
	return (True);
}

/*		校驗(yàn)接收字符串			*/
int Check_Rece(char TAG,char *Temp)
{
	int i,len=0,q=0,s=0,x=0,s1=0,s2=0;
	int LRC;

	if ((Temp[0]!=STX)||(Temp[strlen(Temp)-1]!=ETX))
		return (False);

	/*	驗(yàn)證TAG		*/
	if ((Temp[3]>='A')&&(Temp[3]<='F'))
		s1=(Temp[3]-'A'+10);
	else if((Temp[3]>='0')&&(Temp[3]<='9'))
		s1=(Temp[3]-'0');
	if ((Temp[4]>='A')&&(Temp[4]<='F'))
		s2=(Temp[4]-'A'+10);
	else if((Temp[4]>='0')&&(Temp[4]<='9'))
		s2=(Temp[4]-'0');

	x=(s1<<4)|(s2);

	if(TAG!=x)	return (False);	

	
	if ((Temp[5]>='A')&&(Temp[5]<='F'))	/*	LEN	*/
		len=(Temp[5]-'A'+10)*4096;
	else if((Temp[5]>='0')&&(Temp[5]<='9'))
		len=(Temp[5]-'0')*4096;

	if ((Temp[6]>='A')&&(Temp[6]<='F'))
		len=len+(Temp[6]-'A'+10)*256;
	else if((Temp[6]>='0')&&(Temp[6]<='9'))
		len=len+(Temp[6]-'0')*256;

	if ((Temp[7]>='A')&&(Temp[7]<='F'))
		len=len+(Temp[7]-'A'+10)*16;
	else if((Temp[7]>='0')&&(Temp[7]<='9'))
		len=len+(Temp[7]-'0')*16;

	if ((Temp[8]>='A')&&(Temp[8]<='F'))
		len=len+(Temp[8]-'A'+10);
	else if((Temp[8]>='0')&&(Temp[8]<='9'))
		len=len+(Temp[8]-'0');


	for (i=0;i<4+len;i++)			/*	LRC	*/	
	{
		if ((Temp[i*2+1]>='A')&&(Temp[i*2+1]<='F'))
			s1=(Temp[i*2+1]-'A'+10);
		else if((Temp[i*2+1]>='0')&&(Temp[i*2+1]<='9'))
			s1=(Temp[i*2+1]-'0');
		if ((Temp[i*2+2]>='A')&&(Temp[i*2+2]<='F'))
			s2=(Temp[i*2+2]-'A'+10);
		else if((Temp[i*2+2]>='0')&&(Temp[i*2+2]<='9'))
			s2=(Temp[i*2+2]-'0');

		x=(s1<<4)|(s2);
		q=(q+x)%65536;	/*	2001/12/13修改	*/
		s=(s+q)%65536;
	}

	/*	接收到的LRC	*/	
	if ((Temp[strlen(Temp)-5]>='A')&&(Temp[strlen(Temp)-5]<='F'))
		LRC=(Temp[strlen(Temp)-5]-'A'+10)*4096;
	else if((Temp[strlen(Temp)-5]>='0')&&(Temp[strlen(Temp)-5]<='9'))
		LRC=(Temp[strlen(Temp)-5]-'0')*4096;
	if ((Temp[strlen(Temp)-4]>='A')&&(Temp[strlen(Temp)-4]<='F'))
		LRC=LRC+(Temp[strlen(Temp)-4]-'A'+10)*256;
	else if((Temp[strlen(Temp)-4]>='0')&&(Temp[strlen(Temp)-4]<='9'))
		LRC=LRC+(Temp[strlen(Temp)-4]-'0')*256;
	if ((Temp[strlen(Temp)-3]>='A')&&(Temp[strlen(Temp)-3]<='F'))
		LRC=LRC+(Temp[strlen(Temp)-3]-'A'+10)*16;
	else if((Temp[strlen(Temp)-3]>='0')&&(Temp[strlen(Temp)-3]<='9'))
		LRC=LRC+(Temp[strlen(Temp)-3]-'0')*16;
	if ((Temp[strlen(Temp)-2]>='A')&&(Temp[strlen(Temp)-2]<='F'))
		LRC=LRC+(Temp[strlen(Temp)-2]-'A'+10);
	else if((Temp[strlen(Temp)-2]>='0')&&(Temp[strlen(Temp)-2]<='9'))
		LRC=LRC+(Temp[strlen(Temp)-2]-'0');


	if(LRC!=s)	return (False);	

	return (True);
}

/*		接收程序		*/
int  Rece_codestr(char TAG,char *buffer)
{
	char temp;
	int result=0,resend=0,i=0,status=0;
	int SUCCESS;
	int count;

	while(1)
	{
		switch(status)
		{
			case 0:		/*		STX		*/
				/*	接收回應(yīng)包時(shí)間加長	*/

				for(count=0;count<20;count++)
					{
						result=In_Port(&temp);
						if (result==True) break;
					}

				#ifdef DEBUG
 				ShowMsg("STX=%d\n",result);
				#endif
	
				if (result==True)
				{
					if (temp==STX)	
						{
							buffer[i++]=temp;
							status=1;
						}
				}
				else
					status=99;
				break;
			case 1:		/*		幀其余部分	*/
				result=In_Port(&temp);
				#ifdef DEBUG
				if (result==True)
				{
					fp=fopen(MsgLog,"a+");
  					fputc(temp,fp);
  					fclose(fp);
				}
				else
				{
					fp=fopen(MsgLog,"a+");
  					fputc('T',fp);
  					fclose(fp);
				}
				#endif
				if (result==True)
				{
					buffer[i++]=temp;
					if (temp==ETX)	
						{
						#ifdef DEBUG
 						ShowMsg("ETX=%d\n",result);
						#endif
							status=2;
						}
				}
				else
					status=99;
				break;
			case 2:		/*		校驗(yàn)		*/
				result=Check_Rece(TAG,buffer);
				#ifdef DEBUG
 				ShowMsg("Check_Rece=%d\n",result);
				#endif
				if (result==True)
				{
					SUCCESS=True;
					status=100;
				}
				else
					status=99;
				break;
			case 99:	/*		重發(fā)		*/
				if (++resend<3)
				{
					Out_Port(Send_Buff);
					#ifdef DEBUG
 					ShowMsg("comm 重發(fā)第%d次 Send_Buff=%s\n",resend,Send_Buff);
					#endif
					status=0;
				}
				else
				{
					SUCCESS=False;
					status=100;
				}
				break;
			case 100:
				return (SUCCESS);
		}/*	switch	*/
	}/*	while	*/
}

int OPEN_PORT()
{
	int result;
	char tty_name[25];
	char COM;

	#ifdef DEBUG
 	ShowId("comm");
	#endif

	#if TTY==0
		// 2001/12/17
  		GetEnv("/usr/zfmm/zfmm.cfg","[銀河]COM",&COM);	
		#ifdef DEBUG
 		ShowMsg("comm open COM=%c\n",COM);
		#endif
		switch(COM)
		{
			case '1':
				strcpy(tty_name,"/dev/tty1a");
				break;
			case '2':
				strcpy(tty_name,"/dev/tty2a");
				break;
			default:
				strcpy(tty_name,"/dev/tty1a");
				break;
		}
			
	#endif
	#if TTY==1
		strcpy(tty_name,ttyname(1));
	#endif

	result=Port_Init(tty_name);
	#ifdef DEBUG
 	ShowMsg("comm OPEN_PORT=%d\n",result);
	#endif
	if (result==False)
	{
	      	Port_Res();	
		return (False);
	}
	return (True);
}


int PORT_RW(char TAG,char *buffer,char *rece_buffer)
{
	char temp[PACKLEN];
	int result=0,i=0,s1=0,s2=0,x=0;

	/*	打開端口	*/
	result=OPEN_PORT();
	if (result==False)
		return (False);

	/*	打包		*/
	Make_Item(TAG,buffer);

	/*	發(fā)送字符串	*/
	Out_Port(Send_Buff);
	#ifdef DEBUG
 	ShowMsg("comm Out_Port Send_Buff=%s\n",Send_Buff);
	#endif


	memset(temp,'\0',PACKLEN); 
	memset(Rece_Buff,'\0',PACKLEN);

	/*	接收字符串	*/
	result=Rece_codestr(TAG,temp);
	#ifdef DEBUG
 	ShowMsg("comm 接收結(jié)果=%d\n",result);
	#endif
	if (result==True)
	{
		switch(TAG)
		{
			case READ_SN:
					i=18;	break;
			case GEN_KEYPAIR:
					i=192;	break;
			case ADD_SIG:
					i=16;	break;
			case LOAD_AK:
			case DEL_ACCU:
			case UNLOCK:
			case DIST_MACH:
			case INIT_IC:
			case VER_ICMM:
			case CHG_ICMM:
			case COMP_CHIPNO:
					i=0;	break;
			case CONN_CALU:
					i=20;	break;
			case ICZFMM:
					i=500;	break;
			default:	
					break;
		}

		result=i;

		for (i=0;i<result;i++)			/*	DATA	*/
			rece_buffer[i]=temp[i+11];
		rece_buffer[i]='\0';
		#ifdef DEBUG
 		ShowMsg("comm 接收字符串=%s\n",rece_buffer);
		#endif
	}
	else	
	{	
		Port_Res();
		return (False);		
	}

	
	if ((temp[9]>='A')&&(temp[9]<='F'))
		s1=(temp[9]-'A'+10);
	else if((temp[9]>='0')&&(temp[9]<='9'))
		s1=(temp[9]-'0');
	if ((temp[10]>='A')&&(temp[10]<='F'))
		s2=(temp[10]-'A'+10);
	else if((temp[10]>='0')&&(temp[10]<='9'))
		s2=(temp[10]-'0');

	x=s1*10+s2;

	/*	關(guān)閉端口	*/
	Port_Res();

	#ifdef DEBUG
 	ShowMsg("comm 返回碼=%d\n",x);
	#endif

	return (x);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区免费视频 | 一本到不卡精品视频在线观看| 亚洲人成网站精品片在线观看| 日韩一区二区视频| 99久久精品情趣| 美女免费视频一区二区| 亚洲女与黑人做爰| 久久青草国产手机看片福利盒子 | 欧美日韩免费一区二区三区视频| 麻豆一区二区99久久久久| 亚洲图片欧美激情| 亚洲精品一区二区三区精华液 | 国产一区二区三区综合| 亚洲成人777| 中文字幕一区二区在线播放| 欧美不卡激情三级在线观看| 欧美性感一区二区三区| 91美女在线观看| 国产91富婆露脸刺激对白| 久久激五月天综合精品| 婷婷国产在线综合| 一区二区免费在线| 亚洲精品久久久久久国产精华液| 久久免费精品国产久精品久久久久| 欧美日本一道本在线视频| 不卡的电影网站| 福利一区二区在线观看| 精品一区二区精品| 麻豆91在线播放| 免费在线看成人av| 婷婷综合五月天| 午夜欧美2019年伦理| 亚洲综合色在线| 亚洲综合自拍偷拍| 亚洲免费电影在线| 日韩理论在线观看| 一区二区在线观看不卡| 亚洲乱码一区二区三区在线观看| 国产精品福利av| 亚洲手机成人高清视频| 亚洲欧美日韩在线不卡| 亚洲精品综合在线| 一区2区3区在线看| 亚洲午夜在线观看视频在线| 亚洲黄色小说网站| 亚洲国产cao| 日本成人在线视频网站| 免费成人美女在线观看.| 青青草国产精品亚洲专区无| 看电影不卡的网站| 国产一区二区在线免费观看| 国产福利精品一区二区| 国产成人日日夜夜| 北条麻妃国产九九精品视频| 99视频精品在线| 欧美性欧美巨大黑白大战| 欧美片网站yy| 精品国产91乱码一区二区三区| 国产三级精品视频| ...xxx性欧美| 天堂久久久久va久久久久| 美女脱光内衣内裤视频久久网站 | 国产超碰在线一区| 99久久久精品| 欧美猛男超大videosgay| 日韩亚洲欧美成人一区| 国产亚洲综合色| 一区二区三区欧美| 乱一区二区av| 丰满岳乱妇一区二区三区| 91蜜桃在线免费视频| 91精品久久久久久久91蜜桃| 久久精品一二三| 一区二区三区在线视频观看| 蜜臀av亚洲一区中文字幕| 成人黄色片在线观看| 欧美日韩国产美| 国产亚洲欧洲997久久综合 | 91美女片黄在线观看| 欧美日韩免费在线视频| 欧美精品一区二区高清在线观看| 国产精品国产三级国产普通话蜜臀| 亚洲图片欧美色图| 国产一区二区三区四| 日本高清不卡aⅴ免费网站| 日韩免费一区二区| 亚洲蜜臀av乱码久久精品蜜桃| 日韩精品成人一区二区在线| 成人美女在线观看| 欧美久久久一区| 国产午夜精品一区二区三区嫩草| 亚洲综合成人网| 国产99一区视频免费| 欧美精品一二三| 国产精品国产自产拍高清av| 蜜桃一区二区三区四区| 日本道色综合久久| 久久精品夜色噜噜亚洲a∨| 色婷婷久久久综合中文字幕| 日韩精品资源二区在线| 一区二区三区在线观看欧美| 国产精品综合av一区二区国产馆| 欧日韩精品视频| 国产精品你懂的| 精品伊人久久久久7777人| 欧美三级在线播放| 亚洲人精品一区| 成人性生交大片免费看中文网站| 欧美日韩黄色一区二区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 国产成人精品网址| 欧美一区二区三区在线| 亚洲激情自拍偷拍| 成人免费毛片高清视频| 久久这里只有精品视频网| 日本免费新一区视频| 精品视频123区在线观看| 亚洲免费视频成人| 成人精品视频一区二区三区尤物| 精品国产一区二区精华| 男人的j进女人的j一区| 欧美男同性恋视频网站| 一区二区三区四区蜜桃 | 日韩区在线观看| 午夜精品爽啪视频| 欧美亚洲国产怡红院影院| 亚洲欧美日韩一区二区 | 欧美日韩高清影院| 亚洲一区二区在线视频| 一本大道久久精品懂色aⅴ| 国产精品久久久久久久午夜片| 国产高清精品久久久久| 久久久久国产一区二区三区四区 | 国产精品麻豆视频| 成人免费黄色大片| 国产精品国产三级国产普通话三级| 国产成人亚洲综合色影视| 久久久久99精品国产片| 国产一区二区女| 国产午夜精品久久久久久久| 东方欧美亚洲色图在线| 国产三级三级三级精品8ⅰ区| 国产福利一区二区| 中文字幕一区二| 色爱区综合激月婷婷| 亚洲一区二区三区影院| 欧美日韩国产综合草草| 日本亚洲视频在线| www国产精品av| 国产91精品露脸国语对白| 中文字幕一区在线观看| 在线欧美日韩精品| 日日欢夜夜爽一区| 26uuu久久综合| av亚洲精华国产精华精华| 亚洲精品第一国产综合野| 欧美日韩不卡一区| 韩日欧美一区二区三区| 国产日本欧洲亚洲| 色94色欧美sute亚洲13| 日一区二区三区| 久久综合狠狠综合久久激情 | 欧美一区二区三区喷汁尤物| 国产一区二区中文字幕| 国产精品久久久久精k8| 欧美日韩视频第一区| 狠狠色丁香九九婷婷综合五月| 国产欧美日韩在线视频| 日本韩国一区二区三区视频| 日本不卡在线视频| 国产丝袜在线精品| 在线观看中文字幕不卡| 久久国产免费看| 国产精品久久毛片av大全日韩| 欧美性色黄大片| 激情成人综合网| 一区二区国产盗摄色噜噜| 欧美电视剧免费观看| 一本大道久久a久久综合| 免费一级片91| **欧美大码日韩| 精品国产麻豆免费人成网站| 99re66热这里只有精品3直播| 日韩av一区二区三区四区| 国产精品系列在线| 91麻豆精品国产91| 99久久精品免费看| 美女脱光内衣内裤视频久久影院| 国产精品理论片在线观看| 欧美一区二区三区免费大片 | 国产亚洲美州欧州综合国| 欧洲中文字幕精品| 国产成人福利片| 午夜久久福利影院| 亚洲欧美自拍偷拍| 久久综合久久综合亚洲| 欧美日韩电影一区| 91一区二区三区在线观看| 国产精品伊人色| 日本特黄久久久高潮|