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

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

?? ycc_driver.c

?? 在SoC單片機上實現對內部Flash的操作,基于uc/os-II.
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*	YCC4型集中器的底層驅動函數,工作于多任務操作系統下	馬興錄,2005-07-19*/#include "includes.h"//串口驅動函數,馬興錄,2005-10-20#ifdef _UCOS_IIint ycc_com_init(char port,unsigned long ctrl,unsigned int baud) reentrant{	}#endif#ifndef _ECOS //1static int ycc_com_fd=0;  //串口句柄,本系統只有一個串口int ycc_com_init(char *port,unsigned long ctrl,unsigned int baud){	if(ycc_com_fd>0)		close(ycc_com_fd);	ycc_com_fd=open("/dev/ttyS0",O_RDWR|O_NOCTTY|O_SYNC);	if(ycc_com_fd<=0)	{		return -1;	}			fcntl(ycc_com_fd,F_SETFL,O_NONBLOCK|fcntl(ycc_com_fd,F_GETFL,0));	struct termios oldtio,newtio;	tcgetattr(ycc_com_fd,&oldtio);	bzero(&newtio, sizeof(newtio));	newtio.c_cflag &= ~CSIZE;	newtio.c_cflag =  B1200 |  CS8 | CLOCAL | CREAD;	newtio.c_cflag |= PARENB;	newtio.c_cflag &=~PARODD;	newtio.c_cflag &=~CSTOPB;		newtio.c_iflag |= INPCK;	newtio.c_oflag = 0;	newtio.c_lflag = 0;//ICANON;	newtio.c_cc[VINTR] = 0; // Ctrl-c 	newtio.c_cc[VQUIT] = 0; // Ctrl-	newtio.c_cc[VERASE] = 0; // del 	newtio.c_cc[VKILL] = 0; // @ 	newtio.c_cc[VEOF] = 0; // Ctrl-d 	newtio.c_cc[VTIME] = 0; // inter-character timer unused 	newtio.c_cc[VMIN] = 1; // blocking read until 1 character arrives 	newtio.c_cc[VSWTC] = 0; // '\0' 	newtio.c_cc[VSTART] = 0; // Ctrl-q 	newtio.c_cc[VSTOP] = 0; // Ctrl-s 	newtio.c_cc[VSUSP] = 0; // Ctrl-z 	newtio.c_cc[VEOL] = 0; // '\0' 	newtio.c_cc[VREPRINT] = 0; // Ctrl-r 	newtio.c_cc[VDISCARD] = 0; // Ctrl-u 	newtio.c_cc[VWERASE] = 0; // Ctrl-w 	newtio.c_cc[VLNEXT] = 0; // Ctrl-v 	newtio.c_cc[VEOL2] = 0; // '\0' 	tcflush(ycc_com_fd, TCIOFLUSH);	if(tcsetattr(ycc_com_fd,TCSANOW,&newtio)!=0)	{	#ifdef __YCC_DEBUG		ycc_printf("open com failed!\n");	#endif		return -1;	}	   	return 0;}int ycc_com_sendchar(char port,unsigned char c){	if(ycc_com_fd<0)		return -1;	if(write(ycc_com_fd,&c,1)<=0)		return -1;	else 	{	#ifdef __YCC_DEBUG		//ycc_printf("%02X \n",c);	#endif		return 0;	}}int ycc_com_getchar(char port,unsigned char *c){	if(ycc_com_fd<0)		return -1;#ifdef __YCC_DEBUG	//ycc_printf("ycc_com_fd:%d\n",ycc_com_fd);#endif	if(read(ycc_com_fd,c,sizeof(char))>0)		return 0;	else		return 1;}int ycc_com_sendbuf(char port,unsigned char *bf,int len){	if(ycc_com_fd<0)	{	#ifdef __YCC_DEBUG		ycc_printf("com send buf\n");		#endif		return -1;	}		if(write(ycc_com_fd,bf,len)<=0)	{	#ifdef __YCC_DEBUG		ycc_printf("com send buf write error\n");	#endif			return 1;	}	else 		return 0;}//調試信息顯示函數int ycc_printf(char *format, ...){	va_list arg;  	va_start(arg, format);  	vprintf(format,arg);  	va_end(arg);}//to-do:init tcp socket//These functions should be rewrite in ecosvoid modem_data_req(void){	gprs_ppp_network=true;}void modem_ppp_status(unsigned char s){	return;}/*void reset_tcp_ppp(void){	return;}*/unsigned long ByteToNetIP(unsigned char *arry){	unsigned long iIP;	int i;	iIP=0;	for(i=0;i<4;i++)	{	#ifdef YCC__DEBUG		ycc_printf("arry[%d] is %d\n",i,arry[i]);	#endif		iIP=iIP<<8;		iIP|=arry[i];	}#ifdef __DEBUG	ycc_printf("the IP is %lu\n",iIP);#endif	return iIP;}/* get IP address of relay server form SIM card or flash */void get_relay_server_ipaddr(void){		//struct in_addr rs;	//inet_aton((unsigned char *)("211.97.245.108"),&rs);	sa_tcp_server_ip.sin_family=AF_INET;	sa_tcp_server_ip.sin_port = htons(yccpara.frmPort);	sa_tcp_server_ip.sin_addr.s_addr=htonl(ByteToNetIP(yccpara.frmIP));}void ljc_os_start(void){	return;}//Task for tcp receiveunsigned long get_current_tick(void){	return time(NULL);}unsigned short init_board(void){		pthread_mutex_init(&ComLock,NULL);	pthread_mutex_init(&MeterListLock,NULL);	pthread_mutex_init(&AlmListLock,NULL);	pthread_mutex_init(&MemLock,NULL);	pthread_mutex_init(&SendBufLock,NULL);	pthread_mutex_init(&LogRecLock,NULL);	return 8888;}LJC_UINT ljc_thread_cread(ljc_thread_entry_t *thread_entry){	t_ljc_thread_type *p_ljc_thread;	p_ljc_thread=malloc(sizeof(t_ljc_thread_type));	if(NULL == p_ljc_thread) return 0;			pthread_attr_init(&p_ljc_thread->thread_Attr);		pthread_attr_setdetachstate(&p_ljc_thread->thread_Attr,PTHREAD_CREATE_DETACHED);		if(0!=pthread_create(&p_ljc_thread->thread_id,&p_ljc_thread->thread_Attr,(void*)thread_entry,NULL)) return 0;	return p_ljc_thread->thread_id;	}void ljc_delay_us(unsigned int us){	struct timespec t1;		t1.tv_sec=us/1000000;		t1.tv_nsec=(us%1000000)*1000;		nanosleep(&t1,NULL);	}void ljc_sleep_ms(unsigned long ms){	unsigned long t;	ljc_delay_us(ms*1000);		/*	t=ms/1000;	if(ms%1000) t++;	sleep(t);*/}bool ljc_flash_add_config(struct config_option *opt, bool update){	return 0;}bool ljc_flash_get_config(char *key, void *val, int type){	return 0;}void ljc_memory_lack_handler(void){	return;}void system_reset(void){	system("Reboot");	return;}void power_relay_control(unsigned int mode) {	return;}int nand_memory_valid(void){	return 4096;}void ljc_clear_nand_memory(void){	return;}int (* gt08_app_callback)(int,int)=NULL;// app call back for app purposeunsigned long (* sms_rev_callback)(unsigned long len, unsigned char *buf,unsigned char *sender_phnum)=NULL;// sms send call back, the real fun is duty of the appint								gprs_ppp_network=true; 					unsigned long					rcp_link_flag=0;struct sockaddr_in				sa_tcp_server_ip;bool							relay_server_have_static_ip;unsigned char 					ljc_admin_number1[16];unsigned char 					ljc_admin_number2[16];unsigned char 					ljc_admin_number3[16];#endif //_ECOS //2//success 0,failed >0,pos(high 16 bit:memblk,low 16 bit:offset in memblkint ycc_mem_read(unsigned char *data,int len,unsigned long pos){	//value boundary check	unsigned long MemBlk=0,nOffset=0;	MemBlk=pos & 0xffff0000;	MemBlk=MemBlk>>16;	nOffset=pos & 0xffff;	if(MemBlk<=0 || MemBlk>nand_memory_valid() || nOffset<0 || nOffset >MEMBLKSIZE-1)	{	#ifdef __YCC_DEBUG		ycc_printf("read nand flash over boundary!\n");	#endif		return 1;	}	if(len<0 || len>MEMBLKSIZE)	{	#ifdef __YCC_DEBUG		ycc_printf("read nand flash,len too long!\n");	#endif		return 2;	}	LJC_Mutex_lock(MemLock);	unsigned char *tmpBuf=malloc(MEMBLKSIZE);	if(NULL==tmpBuf)	{	#ifdef __YCC_DEBUG		ycc_printf("read nand flash,alloc memory error!\n");	#endif		return 3;	}		if(nand_memory_read(tmpBuf,MEMBLKSIZE,MemBlk)!=1)	{	#ifdef __YCC_DEBUG		ycc_printf("read nand flash error!\n");	#endif			free(tmpBuf);		LJC_Mutex_unlock(MemLock);		return 4;	}		memcpy(data,&tmpBuf[nOffset],len);	free(tmpBuf);	LJC_Mutex_unlock(MemLock);	return 0;}//same as ycc_mem_read in parameters passed into functionint ycc_mem_write(unsigned char *data,int len,unsigned long pos){	unsigned long MemBlk=0,nOffset=0;	MemBlk=pos & 0xffff0000;	MemBlk=MemBlk>>16;	nOffset=pos & 0xffff;	#ifdef __YCC_DEBUG	//ycc_printf("in mem write,pos:%lu,memblk:%d,nOffset:%d",pos,MemBlk,nOffset);#endif		//value boundary check	if(MemBlk<=0 || MemBlk>nand_memory_valid() || nOffset<0 || nOffset>MEMBLKSIZE-1)	{	#ifdef __YCC_DEBUG		ycc_printf("when write,nand flash pos over boundary!:");		ycc_printf("MemBlk:%lu,nOffset:%lu\n",MemBlk,nOffset);	#endif			return 1;	}	if(len<0 || len>MEMBLKSIZE)	{	#ifdef __YCC_DEBUG		ycc_printf("when write nandflash,buffer len less than zero!\n");	#endif		return 2;	}#ifdef __YCC_DEBUG	//ycc_printf("write nand flash,memblk:%d,offset:%d\n",MemBlk,nOffset);#endif		LJC_Mutex_lock(MemLock);	unsigned char *tmpBuf=malloc(MEMBLKSIZE);	if(NULL==tmpBuf)	{	#ifdef __YCC_DEBUG		ycc_printf("when operate nand flash,allocate memory error!\n");	#endif			LJC_Mutex_unlock(MemLock);		return 3;	}		memset(tmpBuf,0,MEMBLKSIZE);	if(nand_memory_read(tmpBuf,MEMBLKSIZE,MemBlk)!=1)	{	#ifdef __YCC_DEBUG		ycc_printf("read nand flash error!\n");	#endif			free(tmpBuf);		LJC_Mutex_unlock(MemLock);		return 4;	}	if(len>MEMBLKSIZE-nOffset)	//if data large than memblksize,firstly write predata	{		memcpy(&tmpBuf[nOffset],data,MEMBLKSIZE-nOffset);		if(nand_memory_write(tmpBuf,MEMBLKSIZE,MemBlk)!=1)//寫錯,再寫一次,一般成功		{			if(nand_memory_write(tmpBuf,MEMBLKSIZE,MemBlk)!=1)			{			#ifdef __YCC_DEBUG				ycc_printf("write nand flash error!\n");			#endif				free(tmpBuf);				LJC_Mutex_unlock(MemLock);				return 5;			}		}		memset(tmpBuf,0,MEMBLKSIZE);		memcpy(tmpBuf,data+MEMBLKSIZE-nOffset,len-(MEMBLKSIZE-nOffset));		if(nand_memory_write(tmpBuf,MEMBLKSIZE,MemBlk+1)!=1)		{			if(nand_memory_write(tmpBuf,MEMBLKSIZE,MemBlk+1)!=1)			{			#ifdef __YCC_DEBUG				ycc_printf("write nand flash error!\n");			#endif					free(tmpBuf);				LJC_Mutex_unlock(MemLock);				return 6;			}		}	}	else	{		memcpy(&tmpBuf[nOffset],data,len);		if(nand_memory_write(tmpBuf,MEMBLKSIZE,MemBlk)!=1)		{			if(nand_memory_write(tmpBuf,MEMBLKSIZE,MemBlk)!=1)			{			#ifdef __YCC_DEBUG				ycc_printf("write nand flash error!\n");			#endif							free(tmpBuf);				LJC_Mutex_unlock(MemLock);				return 7;			}		}		else		{		#ifdef __YCC_DEBUG			ycc_printf("write nand flash blk:%d\n",MemBlk);		#endif		}	}	free(tmpBuf);	LJC_Mutex_unlock(MemLock);	return 0;}int change_rs_port (unsigned int port,bool flag){	unsigned int port_id;	struct config_option * opt;	port_id = port;	ycc_printf("port_id = %d\n" , port_id);		opt = (struct config_option*) malloc(sizeof(struct config_option));	if (!opt)	{		ljc_memory_lack_handler();	}	memset(opt, 0, sizeof(struct config_option));	opt->type = CONFIG_INT;	opt->enable = "gprs_mc8k";	relay_server_have_static_ip = true;		opt->enable_sense = false;		opt->key="gprs_relay_nmc8k_tport";			opt->title = "Tcp Server Port";						memcpy(&opt->dflt,&(port_id),4);	if(!ljc_flash_add_config(opt,flag))	{		ycc_printf("\nFailed to write new config to flash.\n");		free(opt);		return 0;	}		free(opt);			return 1;}int change_rs_addr(unsigned char * address,bool flag){	struct in_addr rs_in_addr;	struct config_option * opt;	int res;	//change the ip address of MC8000	res = inet_aton(address,&rs_in_addr);	if(res == -1){		ycc_printf("invalid ip address \n");		return 0;	}	ycc_printf("\nchange relay_server ip address to %s\n",address);	sa_tcp_server_ip.sin_addr.s_addr = rs_in_addr.s_addr;	//organize the config option 	opt = (struct config_option*) malloc(sizeof(struct config_option));	if (!opt)	{		ljc_memory_lack_handler();	}	memset(opt, 0, sizeof(struct config_option));	opt->key="gprs_relay_ip";	opt->type = CONFIG_IP;	opt->enable = "gprs_relay";	opt->enable_sense = true;	opt->title = "GPRS Network Relay Server IP Address";	memcpy(&opt->dflt,&rs_in_addr,sizeof(in_addr_t));	//add the option to flash	if(!ljc_flash_add_config(opt,flag))	{		ycc_printf("\nFailed to write new config to flash.\n");		free(opt);		return 0;	}	memset(opt, 0, sizeof(struct config_option));	opt->key="gprs_relay";	opt->type = CONFIG_BOOL;	opt->enable = "gprs";	opt->enable_sense = true;	opt->title = "GPRS Relay Sever Have Static IP Address";	opt->dflt  = true;	relay_server_have_static_ip = true;	//add the option to flash	if(!ljc_flash_add_config(opt,flag))	{		ycc_printf("\nFailed to write new config to flash.\n");		free(opt);		return 0;	}		free(opt);	return 1;}int set_tele_number(unsigned char * phone_num, int len){	struct config_option * opt;	unsigned char buf[16]={0};	unsigned long val;	bool ret;		//organize the config option 	opt = (struct config_option*) malloc(sizeof(struct config_option) + MAX_STRING_LENGTH);	if(!opt)	{		ljc_memory_lack_handler();	}	memset(opt, 0, sizeof(struct config_option) + MAX_STRING_LENGTH);	opt->dflt = (unsigned long)((unsigned char*)opt + sizeof(struct config_option));	opt->key="voice_num1";	opt->type = CONFIG_STRING;	opt->enable = ALWAYS_ENABLED;	opt->enable_sense = true;	opt->title = "SMS admin number1";	memcpy((unsigned char*)(opt->dflt),phone_num,len);		//add the option to flash	if(!ljc_flash_add_config(opt,true))	{		ycc_printf("\nFailed to write new config to flash.\n");		free(opt);		return 0;	}	else		free(opt);	if((ret = ljc_flash_get_config("voice_num1", &val, CONFIG_STRING)))    {        strcpy(buf, (char*)val);        ycc_printf("get admin number1 ok =%s\n",buf);        	                strcpy(ljc_admin_number1, "+86");        strcat(ljc_admin_number1, (char*)val);        strcat(ljc_admin_number1, "\r");    }		return 1;}unsigned long sms_callback (unsigned long sms_len, unsigned char *sms_buf,unsigned char *sender_phnum){	unsigned char command[8];	int command_id;			unsigned char buffer[300];	int len,res;	ycc_printf(" begin to process sms...........!\n");		memcpy(command, sms_buf, 7);	len=0;	command[7]= '\0';	command_id = atoi(command);	ycc_printf("command_id = %d\n" , command_id);		switch(command_id) 	{		case RESET_SYSTEM:			ycc_printf("Reset system sms\n");			buffer[0] = 'R';			buffer[1] = 'E';			buffer[2] = 'S';			buffer[3] = 'E';			buffer[4] = 'T';			buffer[5] = 'O';			buffer[6] = 'K';			buffer[7] = '\0';			len=8;			//send_one_sms(buffer, len, sender_phnum);			ycc_printf("sms RESET_SYSTEM\n");			break;				case CHANGE_MC8000_IP:			memcpy(buffer, sms_buf+8, 15);			buffer[15] = '\0';			ycc_printf("Changge MC8000 IP sms \n");			//res = change_rs_addr(buffer);			res=1;			if(res == 1)			{				buffer[0] = 'O';				buffer[1] = 'K';				buffer[2] = '\0';				len =3 ;			}						if(res == 0)			{				buffer[0] = 'E';				buffer[1] = 'R';				buffer[2] = 'R';				buffer[3] = '\0';				len = 4;			}			//send_one_sms(buffer, len, sender_phnum);			break;				case CHANGE_SERVER_PORT:			memcpy(buffer, sms_buf+8, 5);			buffer[5] = '\0';			ycc_printf("Changge SERVER PORT sms \n");			unsigned int port;			port=atoi(buffer);			//res = change_rs_port(port);			res=1;			if(res == 1)			{				buffer[0] = 'O';				buffer[1] = 'K';				buffer[2] = '\0';				len =3 ;			}						if(res == 0)			{				buffer[0] = 'E';				buffer[1] = 'R';				buffer[2] = 'R';				buffer[3] = '\0';				len = 4;			}			//send_one_sms( buffer, len, sender_phnum);			break;				default :			break;		}	system_reset();	return 1;}int ycc_get_para(int itemID,unsigned char *iErr){	LJC_Mutex_lock(MemLock);	*iErr=0;	unsigned char *tmpBuf;	tmpBuf=malloc(MEMBLKSIZE);	if(NULL==tmpBuf)	{	#ifdef __YCC_DEBUG		ycc_printf("when get sys parametes,failed!\n");	#endif		LJC_Mutex_unlock(MemLock);		return 1;	}	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区小说| 国产.欧美.日韩| 国产白丝精品91爽爽久久 | 椎名由奈av一区二区三区| 亚洲动漫第一页| 成人av网址在线| 精品国产免费一区二区三区香蕉| 一区二区三区四区乱视频| 国产精品资源站在线| 久久久影院官网| 蜜桃视频一区二区| 欧美日韩在线观看一区二区 | 国产精品天干天干在观线| 日本欧洲一区二区| 欧美日韩一区 二区 三区 久久精品| 久久久精品中文字幕麻豆发布| 午夜电影网亚洲视频| 日本精品免费观看高清观看| 国产欧美日韩综合| 国产精品自拍在线| 欧美变态凌虐bdsm| 蜜桃av一区二区在线观看| 欧美精品123区| 亚洲18女电影在线观看| 色琪琪一区二区三区亚洲区| 亚洲欧洲另类国产综合| 国产不卡在线视频| 日本一区二区三区四区在线视频 | 欧美狂野另类xxxxoooo| 亚洲免费资源在线播放| 99天天综合性| 中文字幕日韩一区| 91啪在线观看| 一区二区三区产品免费精品久久75| 99视频一区二区| 亚洲欧美激情插| 精品视频免费在线| 天天色 色综合| 日韩精品在线网站| 国产一区福利在线| 久久精品在这里| 成人美女视频在线看| 中文字幕精品一区| 91老师片黄在线观看| 亚洲激情六月丁香| 欧美男人的天堂一二区| 日韩va亚洲va欧美va久久| 日韩免费高清av| 国产精品自拍在线| 中文字幕一区二区三区不卡| 色悠悠久久综合| 亚洲综合清纯丝袜自拍| 欧美日韩国产大片| 久久电影网电视剧免费观看| 国产日产欧美一区二区视频| 成人动漫视频在线| 亚洲成人自拍偷拍| 日韩精品一区国产麻豆| 国产成人精品影院| 亚洲精品久久久蜜桃| 91麻豆精品国产91久久久| 久久99在线观看| 17c精品麻豆一区二区免费| 欧美日韩在线直播| 国产原创一区二区| 一区二区三区国产豹纹内裤在线| 欧美一级日韩免费不卡| 成+人+亚洲+综合天堂| 亚洲超丰满肉感bbw| 久久综合九色综合欧美亚洲| 色老综合老女人久久久| 久久精品噜噜噜成人88aⅴ| 国产精品免费看片| 欧美精品 日韩| 99麻豆久久久国产精品免费优播| 午夜精品福利久久久| 国产日产欧美一区二区视频| 欧美精选一区二区| av网站免费线看精品| 日本成人在线一区| 亚洲伦理在线精品| 2023国产精华国产精品| 欧美日韩成人综合| 99久久精品免费看国产| 国产一区二区三区在线观看免费视频 | 精品日韩在线一区| 色婷婷av久久久久久久| 激情综合色丁香一区二区| 亚洲一线二线三线视频| 欧美国产精品v| 欧美大片在线观看一区二区| 精品视频在线免费| 91麻豆免费看| 成人激情小说乱人伦| 九色综合国产一区二区三区| 性久久久久久久久| 亚洲综合视频在线观看| 亚洲欧洲日韩在线| 国产女人aaa级久久久级| 91精品国产一区二区三区香蕉| 色94色欧美sute亚洲13| 成人开心网精品视频| 国产剧情在线观看一区二区| 美女视频免费一区| 亚洲成人av电影在线| 樱花草国产18久久久久| 中文字幕一区三区| 中文字幕不卡一区| 国产性天天综合网| 国产日韩亚洲欧美综合| 国产婷婷一区二区| 欧美www视频| 亚洲精品在线电影| 久久免费看少妇高潮| 精品噜噜噜噜久久久久久久久试看 | 亚洲精品中文字幕乱码三区| 国产精品嫩草99a| 中文字幕日韩欧美一区二区三区| 国产精品入口麻豆九色| 中文字幕巨乱亚洲| 18欧美亚洲精品| 夜夜爽夜夜爽精品视频| 有码一区二区三区| 亚洲大片免费看| 免费成人结看片| 国产在线麻豆精品观看| 国产成人在线电影| 91一区二区在线| 欧美亚洲动漫精品| 7777精品久久久大香线蕉| 日韩欧美国产麻豆| 日本一区二区视频在线观看| 中文字幕一区二区三| 亚洲影院在线观看| 琪琪久久久久日韩精品| 国产精品主播直播| 99视频精品免费视频| 欧美日韩国产区一| 精品久久人人做人人爰| 国产精品色在线| 视频一区欧美精品| 国产一区美女在线| 色综合久久66| 精品免费99久久| 亚洲男人的天堂一区二区 | 亚洲一区二区三区中文字幕| 日韩精品成人一区二区在线| 激情偷乱视频一区二区三区| av中文字幕在线不卡| 欧美日韩久久一区| 国产欧美综合色| 亚洲电影你懂得| 国产一区二区伦理| 在线精品视频免费播放| 精品乱人伦一区二区三区| 亚洲伦理在线精品| 激情文学综合插| 欧美三级在线看| 国产欧美一区二区精品婷婷| 一个色综合av| 成人性生交大片免费看视频在线 | 岛国精品在线观看| 欧美日韩日日摸| 国产精品久久久久久久第一福利| 天天综合网 天天综合色| 成人在线视频首页| 日韩一二在线观看| 一区二区在线观看视频 | 一本色道久久综合亚洲aⅴ蜜桃| 欧美一区二区三区在线视频| 亚洲视频图片小说| 国产一区二区电影| 91精品国产综合久久久久久漫画| 中文字幕不卡的av| 久久99精品国产91久久来源| 欧美三级在线播放| 亚洲日本va在线观看| 国产乱一区二区| 91精品国产aⅴ一区二区| 亚洲精选视频在线| 成人中文字幕在线| 2021国产精品久久精品| 日本在线不卡一区| 欧美日本一区二区三区| 亚洲免费大片在线观看| 福利一区二区在线观看| 精品国产电影一区二区| 视频在线观看91| 欧美日韩一区不卡| 亚洲国产日韩一级| 欧美性大战xxxxx久久久| 自拍av一区二区三区| av在线不卡免费看| 成人免费在线观看入口| 成a人片亚洲日本久久| 中文字幕一区二区三区不卡| 成人动漫视频在线| 1024成人网| 欧美午夜一区二区| 性欧美疯狂xxxxbbbb|