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

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

?? ycc_driver.c

?? 在SoC單片機(jī)上實(shí)現(xiàn)對(duì)內(nèi)部Flash的操作,基于uc/os-II.
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
	memset(tmpBuf,0,MEMBLKSIZE);	if(nand_memory_read(tmpBuf,MEMBLKSIZE,SYSPARASECTION)!=1 ||					0!=memcmp(tmpBuf,SYSPARAFLAG,sizeof(SYSPARAFLAG)-1))	{		if(nand_memory_read(tmpBuf,MEMBLKSIZE,SYSBACKSECTION)!=1 || 					0!=memcmp(tmpBuf,SYSBACKFLAG,sizeof(SYSBACKFLAG)-1))			{		#ifdef __YCC_DEBUG			ycc_printf("when get para,read failed!\n");		#endif			*iErr|=0x80;		}	}		unsigned char *pBuf=NULL;	if(FRMINFOID & itemID)	{		pBuf=tmpBuf+FRMINFOOFFSET;		if(0!=memcmp(pBuf,FRMINFOFLAG,sizeof(FRMINFOFLAG)-1))		{			yccpara.TGAP=15;			sprintf(yccpara.frmPasswd,"123456");			//yccno默認(rèn)值為999999			yccpara.yccno[0]=0x39;			yccpara.yccno[1]=0x39;			yccpara.yccno[2]=0x39;			yccpara.yccno[3]=0x39;			yccpara.yccno[4]=0x39;			yccpara.yccno[5]=0x39;			yccpara.frmIP[0]=192;			yccpara.frmIP[1]=168;			yccpara.frmIP[2]=0;			yccpara.frmIP[3]=1;						sprintf(yccpara.frmTel,"CMNET");			yccpara.frmPort=8501;					*iErr|=FRMINFOID;		}		else		{			pBuf=tmpBuf+FRMINFOOFFSET+sizeof(FRMINFOFLAG)-1;			memcpy(&yccpara,pBuf,sizeof(yccpara));		}	}		if(METERINFOID & itemID)	{		if(p_meter)			clear_meter_list();				METER_PARA_PTR *p=NULL;		pBuf=tmpBuf+METERINFOOFFSET;		int i=0,flag=0;	#ifdef __YCC_DEBUG		/*int t=0;		unsigned char Testbuf[]=METERINFOFLAG;		for(t=0;t<sizeof(METERINFOFLAG)-1;t++)			ycc_printf("%02x,%02x\n",*(pBuf+t),Testbuf[t]);*/	#endif		if(0==memcmp(pBuf,METERINFOFLAG,sizeof(METERINFOFLAG)-1))		{		#ifdef __YCC_DEBUG			//ycc_printf("GET METER LIST\n");		#endif			pBuf=pBuf+sizeof(METERINFOFLAG)-1;			for(i=0;i<4;i++)			{				if(0==memcmp(pBuf,ENDMETERSEC,sizeof(ENDMETERSEC)-1))					flag=1;//fangzhi no endmeterinfo to death pc				pBuf+=sizeof(METER_PARA_PTR);			}			pBuf=tmpBuf+METERINFOOFFSET+sizeof(METERINFOFLAG)-1;			p=(METER_PARA_PTR *)malloc(sizeof(METER_PARA_PTR));						while(1)			{				if(0==flag)				{					break;				}								if(0==memcmp(pBuf,ENDMETERSEC,sizeof(ENDMETERSEC)-1))					break;								if(!p)				{				#ifdef __YCC_DEBUG						//ycc_printf("cann't malloc memory for meter list\n");				#endif					break;					*iErr|=METERINFOID;				}				memcpy(p,pBuf,sizeof(METER_PARA_PTR));				p->status=0;				p->next=p_meter;				p->ASlTime=0;				p->BSlTime=0;				p->CSlTime=0;				if((((p->mpara.cbMode)&0x80)!=0x80) && 													(p->mpara.cbMode!=0))				{					p_meter=p;					p=(METER_PARA_PTR *)malloc(sizeof(METER_PARA_PTR));					}				pBuf+=sizeof(METER_PARA_PTR);			}			if(NULL!=p)				free(p);		}	}		if(ALMINFOID & itemID)	{		if(p_alm)			clear_alarm_list();					METER_ALARM_PTR *pp;		pBuf=tmpBuf+ALMINFOOFFSET;		int j=0,flag1=0;			time_t curt;		if(0==memcmp(pBuf,ALMINFOFLAG,sizeof(ALMINFOFLAG)-1))		{			pBuf=pBuf+sizeof(ALMINFOFLAG)-1;			for(j=0;j<4;j++)			{				if(0==memcmp(pBuf,ENDALMSEC,sizeof(ENDALMSEC)-1))					flag1=1;//fangzhi no endmeterinfo to death pc				pBuf+=sizeof(METER_ALARM_PTR);			}			pBuf=tmpBuf+ALMINFOOFFSET+sizeof(ALMINFOFLAG)-1;			pp=(METER_ALARM_PTR *)malloc(sizeof(METER_ALARM_PTR));						while(1)			{							if(0==flag1)					break;				if(0==memcmp(pBuf,ENDALMSEC,sizeof(ENDALMSEC)-1))					break;							if(!pp)				{				#ifdef __YCC_DEBUG					ycc_printf("cann't malloc memory for alm listr!\n");				#endif					break;					*iErr|=ALMINFOID;				}				memcpy(pp,pBuf,sizeof(METER_ALARM_PTR));				pp->next=p_alm;				curt=time(NULL);				pp->mpara.FLevelStartTime=curt;				pp->mpara.FLevelStartTime1=curt;				p_alm=pp;				pp=(METER_ALARM_PTR*)malloc(sizeof(METER_ALARM_PTR));				pBuf+=sizeof(METER_ALARM_PTR);			}			if(NULL!=pp)				free(pp);		}	}		if(LOGRECINFOID & itemID)	{		pBuf=tmpBuf+LOGNUMOFFSET;		if(0==memcmp(pBuf,LOGINFOFLAG,sizeof(LOGINFOFLAG)-1))		{			pBuf=tmpBuf+LOGNUMOFFSET+sizeof(LOGINFOFLAG)-1;			iErrLogRec=*pBuf;			iRunLogRec=*(pBuf+1);			iAlmLogRec=*(pBuf+2);			if(iErrLogRec<0 || iErrLogRec>256)				iErrLogRec=0;			if(iRunLogRec<0 || iRunLogRec>256)				iRunLogRec=0;			if(iAlmLogRec<0 || iAlmLogRec>256)				iAlmLogRec=0;		}		else		{			iErrLogRec=0;			iRunLogRec=0;			iAlmLogRec=0;			*iErr|=LOGRECINFOID;		}	}		if(CURDATABLKID & itemID)	{		time_t t1,t2;				struct tm dt;		struct tm *CurDate;		dt.tm_year=2005-1900;		dt.tm_mon=0;		dt.tm_mday=1;		dt.tm_hour=0;		dt.tm_min=0;		dt.tm_sec=0;		t2=mktime(&dt);				t1=time(NULL);		CurDate=localtime(&t1);				memset(tmpBuf,0,MEMBLKSIZE);		unsigned int nMemBlk=0;		unsigned short days=0;		unsigned int iCurYear,iCurMon;		days=labs((unsigned long)difftime(t1,t2))/(60*60*24);		nMemBlk=(days%125)*24+1;	//24 memblks nand flash size per day		if(1==nand_memory_read(tmpBuf,10,nMemBlk))		{			iCurYear=tmpBuf[6];			iCurYear=(iCurYear<<8) | tmpBuf[5];			if(iCurYear==(CurDate->tm_year+1900) && tmpBuf[7]==(CurDate->tm_mon+1) &&								tmpBuf[8]==CurDate->tm_mday)			{				iCurBlk=(int)tmpBuf[0];			}			else				iCurBlk=0;			if(iCurBlk<0 || iCurBlk>96)				iCurBlk=0;		}		else		{			iCurBlk=0;			*iErr|=CURDATABLKID;		}	#ifdef __YCC_DEBUG		ycc_printf("in get para,days:%d,iCurBlk:%d\n",days,iCurBlk);	#endif	}		free(tmpBuf);	LJC_Mutex_unlock(MemLock);	return 0;}int ycc_save_para(int item,unsigned char *iErr){#ifdef __YCC_DEBUG	ycc_printf("start save para......\n");#endif	*iErr=0;	LJC_Mutex_lock(MemLock);	unsigned char *buf,*SysBuf=NULL;	buf=malloc(MEMBLKSIZE);	if(NULL==buf)	{	#ifdef __YCC_DEBUG		ycc_printf("when save sys parameters,failed!\n");	#endif		LJC_Mutex_unlock(MemLock);		return 1;	}		memset(buf,0,MEMBLKSIZE);		if(nand_memory_read(buf,MEMBLKSIZE,SYSPARASECTION)!=1 ||					0!=memcmp(buf,SYSPARAFLAG,sizeof(SYSPARAFLAG)-1))	{		if(nand_memory_read(buf,MEMBLKSIZE,SYSBACKSECTION)!=1 ||					0!=memcmp(buf,SYSBACKFLAG,sizeof(SYSBACKFLAG)-1))			{		#ifdef __YCC_DEBUG			ycc_printf("when save para,read failed!\n");		#endif			SysBuf=(unsigned char*)SYSPARAFLAG;			memset(buf,0,MEMBLKSIZE);		  	memcpy(buf,SysBuf,sizeof(SYSPARAFLAG)-1);			*iErr|=0x80;		}	}		unsigned char *pBuf=NULL;		if(FRMINFOID & item)//save yccpara parameters	{		pBuf=buf+FRMINFOOFFSET;		if(0!=memcmp(pBuf,FRMINFOFLAG,sizeof(FRMINFOFLAG)-1))		{			memcpy(pBuf,FRMINFOFLAG,sizeof(FRMINFOFLAG)-1);			*iErr|=FRMINFOID;		}				pBuf=pBuf+sizeof(FRMINFOFLAG)-1;		memcpy(pBuf,&yccpara,sizeof(yccpara));		if(CHANGEIP&item)		{			unsigned char IPbuf[20];			memset(IPbuf,0,sizeof(IPbuf));			sprintf(IPbuf,"%d.%d.%d.%d",				yccpara.frmIP[0],yccpara.frmIP[1],yccpara.frmIP[2],yccpara.frmIP[3]);					change_rs_addr(IPbuf,false);				change_rs_port(yccpara.frmPort,true);			}		reset_tcp_ppp();	}		if(METERINFOID & item)//save meters parameters	{		METER_PARA_PTR *p=NULL;		pBuf=buf+METERINFOOFFSET;		if(0!=memcmp(pBuf,METERINFOFLAG,sizeof(METERINFOFLAG)-1))		{			memcpy(pBuf,METERINFOFLAG,sizeof(METERINFOFLAG)-1);			*iErr|=METERINFOID;		}				pBuf=pBuf+sizeof(METERINFOFLAG)-1;		p=p_meter;		int iMCounter=0;		while(NULL!=p)		{		#ifdef __YCC_DEBUG			//ycc_printf("SAVE METER LIST\n");		#endif				memcpy(pBuf,p,sizeof(METER_PARA_PTR));			p=p->next;			pBuf+=sizeof(METER_PARA_PTR);			iMCounter++;			if(iMCounter>4)				break;		}		memcpy(pBuf,ENDMETERSEC,sizeof(ENDMETERSEC)-1);	}		if(ALMINFOID & item)	{		METER_ALARM_PTR *pp=NULL;		pBuf=buf+ALMINFOOFFSET;		if(0!=memcmp(pBuf,ALMINFOFLAG,sizeof(ALMINFOFLAG)-1))		{			memcpy(pBuf,ALMINFOFLAG,sizeof(ALMINFOFLAG)-1);			*iErr|=ALMINFOID;		}				pBuf=pBuf+sizeof(ALMINFOFLAG)-1;				pp=p_alm;		int iAlmCounter=0;			while(NULL!=pp)		{			memcpy(pBuf,pp,sizeof(METER_ALARM_PTR));		#ifdef __YCC_DEBUG			//ycc_printf("type:%d\n",pp->mpara.st.type);		#endif						pp=pp->next;			pBuf+=sizeof(METER_ALARM_PTR);			iAlmCounter++;			if(iAlmCounter>4)				break;		}		memcpy(pBuf,ENDALMSEC,sizeof(ENDALMSEC)-1);	}		if(LOGRECINFOID & item)	{		pBuf=buf+LOGNUMOFFSET;		if(0!=memcmp(pBuf,LOGINFOFLAG,sizeof(LOGINFOFLAG)-1))		{			memcpy(pBuf,LOGINFOFLAG,sizeof(LOGINFOFLAG)-1);			*iErr|=LOGRECINFOID;		}				pBuf=pBuf+sizeof(LOGINFOFLAG)-1;				*pBuf=(unsigned char)iErrLogRec;		*(pBuf+1)=(unsigned char)iRunLogRec;		*(pBuf+2)=(unsigned char)iAlmLogRec;	}		nand_memory_write(buf,MEMBLKSIZE,SYSPARASECTION);	SysBuf=(unsigned char*)SYSBACKFLAG;	memcpy(buf,SysBuf,sizeof(SYSBACKFLAG)-1);	nand_memory_write(buf,MEMBLKSIZE,SYSBACKSECTION);		if(CURDATABLKID & item)	{		time_t t1,t2;		t1=time(NULL);				struct tm dt;		dt.tm_year=2005-1900;		dt.tm_mon=0;		dt.tm_mday=1;		dt.tm_hour=0;		dt.tm_min=0;		dt.tm_sec=0;		t2=mktime(&dt);				memset(buf,0,MEMBLKSIZE);		unsigned int MemBlk=0;		unsigned short days=0;		days=labs((unsigned long)difftime(t1,t2))/(60*60*24);		MemBlk=(days%125)*24+1;	//24 memblks nand flash size per day	#ifdef __YCC_DEBUG		ycc_printf("when save current,days:%d,blk:%d\n",days,MemBlk);	#endif		if(1==nand_memory_read(buf,MEMBLKSIZE,MemBlk))		{			if(iCurBlk>=0 && iCurBlk<95)			{				buf[0]=(unsigned char)iCurBlk;				if(0==nand_memory_write(buf,MEMBLKSIZE,MemBlk))				{					if(0==nand_memory_write(buf,MEMBLKSIZE,MemBlk))						*iErr|=CURDATABLKID;				}			}			else				*iErr|=CURDATABLKID;		}		else			*iErr|=CURDATABLKID;	}#ifdef __YCC_DEBUG	ycc_printf("save para end\n");#endif	free(buf);	LJC_Mutex_unlock(MemLock);	return 0;}void clear_meter_list(void){	METER_PARA_PTR * p;	p=p_meter;	while(p)	{		p_meter=p->next;		free(p);		p=p_meter;	}	p_meter=NULL;}void clear_alarm_list(void){	METER_ALARM_PTR *p;	p=p_alm;	while(p)	{		p_alm=p->next;		free(p);		p=p_alm;	}	p_alm=NULL;}/*int AddItemOption(char* key,int type,unsigned char *value,int len){	return 0;	struct config_option *opt;	LJC_Mutex_lock(MemLock);	if(CONFIG_STRING==type) 	{		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));			}		else	{		opt = (struct config_option*) malloc(sizeof(struct config_option));		if (!opt)		{			ljc_memory_lack_handler();		}		memset(opt, 0, sizeof(struct config_option));	}			opt->key=key;	opt->type = type;	if(CONFIG_STRING==type)	{		memcpy((unsigned char*)(opt->dflt),value,len);	}	else 	{		if(len<4)		{			ycc_printf(" error var len %d .\n", len);			LJC_Mutex_unlock(MemLock);			return -1;		}		memcpy(&opt->dflt,value,len);	}			//opt.enable =enable;	//opt.enable_sense = sense;	//opt.title = title;		if(!ljc_flash_add_config(opt,true))	{		ycc_printf("add config failed!\n");		free(opt);		LJC_Mutex_unlock(MemLock);		return -1;	}	free(opt);	LJC_Mutex_unlock(MemLock);	return 0;	}*//*int GetItemValue(char* key,int type,int *value){	LJC_Mutex_lock(MemLock);	if(!ljc_flash_get_config(key,value,type))	{		ycc_printf("get parameter error!\n");		LJC_Mutex_unlock(MemLock);		return -1;	}		LJC_Mutex_unlock(MemLock);*/	/*	if ((ret = ljc_flash_get_config("voice_num2", val, CONFIG_STRING)))        {        	strcpy(ljc_admin_number2, (char*)(*val));        	gt08_printf("get admin number2 ok =%s\n",ljc_admin_number2);        	        }*/		/*return 0;}*/#ifndef __ECOS// 1 is ok and 0 is errorint nand_memory_read(unsigned char *buf, unsigned long len, unsigned int block){#ifdef __YCC_DEBUG	ycc_printf("in nand_memory_read,block:%d\n",block);#endif		if(len<0 || len>MEMBLKSIZE)	{		ycc_printf("in nand_read,data too long!\n");		return 0;	}	if(block<0 || block>nand_memory_valid())	{		ycc_printf("in nand_read,read block over boundary,blk:%d!\n",block);		return 0;	}			FILE *fp;	fp=fopen("/home/test.dat","rb");	if(!fp)	{		ycc_printf("in nand_read,open file failed\n");		return 0;	}	fseek(fp,(block-1)*MEMBLKSIZE,SEEK_SET);//file from 0,	if(fread(buf,1,len,fp)!=len)	{		fclose(fp);		ycc_printf("in nand_read,read failed\n");		return 0;	}	fclose(fp);		return 1;}// 1 is ok and 0 is errorint nand_memory_write(unsigned char *buf, unsigned long len, unsigned int block){	//boundary check#ifdef __YCC_DEBUG	ycc_printf("in nand_memory_write,block:%d\n",block);#endif	if(len<0 || len>MEMBLKSIZE)	{		ycc_printf("write data too long!\n");		return 0;	}		if(block<0 || block>nand_memory_valid())	{		ycc_printf("write block over boundary!\n");		return 0;	}	FILE *fp;		fp=fopen("/home/test.dat","rb+");	if(!fp)	{		ycc_printf("in drive,open file err!\n");		return 0;	}	fseek(fp,(block-1)*MEMBLKSIZE,SEEK_SET);		if(fwrite(buf,1,len,fp)!=len)	{		ycc_printf("in drive,write file err!\n");		fclose(fp);		return 0;	}		fclose(fp);	return 1;}int get_12v_status(){	return 0;}void ds1302_set_time(unsigned char sec,unsigned char min,unsigned char hr,			unsigned char date,unsigned char mon, unsigned char week, unsigned char yr){	struct tm dt;	time_t t;	dt.tm_year=yr+100;	dt.tm_mon=mon-1;	dt.tm_mday=date;	dt.tm_hour=hr;	dt.tm_min=min;	dt.tm_sec=sec;		t=mktime(&dt);	stime(&t);}void ds1302_get_time(unsigned char *sec,unsigned char *min,unsigned char *hr,		unsigned char *date,unsigned char *mon, unsigned char *week, unsigned char *yr){	time_t t;	struct tm *dt;		t=time(NULL);	dt=localtime(&t);	*yr=dt->tm_year-100;	*mon=dt->tm_mon+1;	*date=dt->tm_mday;	*hr=dt->tm_hour;	*min=dt->tm_min;	*sec=dt->tm_sec;	*week=dt->tm_wday;}void firmware_up_data(void *buf, int len){	if(NULL==buf)	{	#ifdef __YCC_DEBUG		ycc_printf("when update firmware,buf is null\n");	#endif		return;	}	FILE *fp;	fp=fopen("/home/firmware","wb");	if(NULL==fp)	{	#ifdef __YCC_DEBUG		ycc_printf("when save updatefile,open file err!\n");	#endif		return;	}	if(fwrite(buf,1,len,fp)!=len)	{	#ifdef __YCC_DEUBG		ycc_printf("when save updatefile,write failed!\n");	#endif		fclose(fp);		return;	}	fclose(fp);	system_reset();	return;}#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲图片激情小说| 亚洲精品高清在线观看| 91视频免费观看| 日本欧美韩国一区三区| 国产欧美精品一区二区色综合| 91官网在线免费观看| 久久国内精品自在自线400部| 亚洲天堂福利av| 久久综合给合久久狠狠狠97色69| 在线免费观看一区| 成人午夜碰碰视频| 久久91精品久久久久久秒播| 亚洲综合一区在线| 国产精品国产三级国产aⅴ原创| 欧美精品日韩一区| 色88888久久久久久影院按摩| 国产精品一二三区在线| 美女爽到高潮91| 亚洲国产cao| 夜夜嗨av一区二区三区网页 | 日韩精品久久理论片| 国产精品久久久久久久岛一牛影视 | 免费三级欧美电影| 亚洲一区二区三区影院| 亚洲欧洲日韩在线| 欧美极品少妇xxxxⅹ高跟鞋| 精品国产在天天线2019| 欧美一区二区三区公司| 欧美精品在欧美一区二区少妇| 色哟哟亚洲精品| 9i在线看片成人免费| 成人网男人的天堂| 福利一区二区在线观看| 国产精品1区二区.| 国产毛片一区二区| 国产一区二区在线免费观看| 久久国产尿小便嘘嘘| 首页国产欧美日韩丝袜| 天天av天天翘天天综合网色鬼国产| 亚洲精品伦理在线| 亚洲激情男女视频| 一区二区三区色| 一区二区三区四区激情| 亚洲综合久久久久| 亚洲一区二区三区四区在线免费观看| 亚洲男人都懂的| 亚洲免费伊人电影| 一区av在线播放| 艳妇臀荡乳欲伦亚洲一区| 亚洲欧美另类久久久精品| 亚洲美女区一区| 亚洲综合一区二区| 天天综合天天做天天综合| 五月综合激情婷婷六月色窝| 午夜av一区二区三区| 日本亚洲电影天堂| 黑人巨大精品欧美黑白配亚洲| 激情综合色综合久久综合| 国产乱码精品一区二区三区忘忧草| 国产精品99久久久久久久vr| 成人免费视频免费观看| 91一区二区三区在线播放| 色94色欧美sute亚洲线路二| 欧美日韩精品免费观看视频| 欧美一区二区三区白人| 久久亚洲免费视频| 综合色天天鬼久久鬼色| 亚洲无人区一区| 韩国欧美国产1区| 成人免费视频app| 在线观看免费一区| 日韩视频免费直播| 欧美国产1区2区| 亚洲精品国产无套在线观| 日韩av中文字幕一区二区 | 成人18视频日本| 欧洲另类一二三四区| 日韩一卡二卡三卡| 中文一区一区三区高中清不卡| 亚洲一区自拍偷拍| 久久av老司机精品网站导航| youjizz久久| 欧美日韩国产综合草草| 久久青草国产手机看片福利盒子| 成人免费一区二区三区在线观看| 午夜精品国产更新| 国产91精品在线观看| 欧美日韩视频一区二区| 久久久久久免费网| 亚洲一区二区三区自拍| 国产精品一级片在线观看| 在线视频一区二区三| 久久女同性恋中文字幕| 亚洲一区视频在线| 高清国产一区二区| 91精品欧美久久久久久动漫| 亚洲国产电影在线观看| 日本女人一区二区三区| 99riav一区二区三区| 日韩精品中午字幕| 亚洲国产美国国产综合一区二区| 国产iv一区二区三区| 欧美日本在线视频| 国产精品久久久久aaaa樱花| 老司机精品视频导航| 色偷偷久久一区二区三区| 久久久蜜桃精品| 日韩和的一区二区| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 一本久久a久久精品亚洲| 精品va天堂亚洲国产| 亚洲成人久久影院| 色综合久久66| 国产亚洲欧美日韩在线一区| 秋霞av亚洲一区二区三| 欧美亚洲一区二区在线| 国产精品久久久久影院色老大| 国产在线播放一区| 欧美一区二区三区公司| 亚洲成va人在线观看| 91天堂素人约啪| 国产精品久久久久久久久快鸭| 狠狠色伊人亚洲综合成人| 日韩一区二区免费高清| 视频一区视频二区中文| 欧美系列一区二区| 亚洲国产视频一区二区| 91香蕉视频在线| 亚洲天堂久久久久久久| av电影在线不卡| 中文字幕一区在线| 成人福利电影精品一区二区在线观看| 久久先锋影音av鲁色资源网| 久久99这里只有精品| 日韩精品资源二区在线| 看国产成人h片视频| 3atv一区二区三区| 日韩专区在线视频| 欧美一级理论性理论a| 日本亚洲一区二区| 欧美一区二区高清| 久久精品999| 精品第一国产综合精品aⅴ| 激情六月婷婷综合| 久久久精品人体av艺术| 国产精品一品视频| 亚洲国产精品成人综合色在线婷婷 | 国产一区欧美日韩| 久久久久国产精品麻豆ai换脸| 国产精品18久久久久久久久| 欧美国产欧美综合| 91一区二区三区在线观看| 一区二区三区高清| 欧美日韩高清不卡| 玖玖九九国产精品| 国产亚洲欧美日韩在线一区| 成人免费视频app| 亚洲综合在线第一页| 3atv在线一区二区三区| 精品一区二区三区欧美| 欧美激情自拍偷拍| 色菇凉天天综合网| 五月婷婷激情综合| 久久婷婷一区二区三区| 成人免费观看视频| 亚洲一区二区欧美日韩| 日韩免费看网站| 国产iv一区二区三区| 一区二区三区不卡在线观看| 在线不卡a资源高清| 国内精品写真在线观看| 亚洲图片你懂的| 91精品久久久久久久91蜜桃| 国产剧情一区二区| 亚洲激情在线播放| 欧美岛国在线观看| 99国产精品视频免费观看| 无码av中文一区二区三区桃花岛| 日韩免费一区二区三区在线播放| 波多野结衣视频一区| 午夜日韩在线电影| 国产日韩精品一区| 欧美乱妇15p| 国产精品1区2区3区在线观看| 一区二区免费看| 久久久久88色偷偷免费| 欧美午夜免费电影| 国产成人综合自拍| 亚洲国产精品一区二区久久恐怖片| 精品国精品国产| 91黄色免费看| 国产精品一区二区91| 亚洲国产cao| 国产精品国产三级国产aⅴ原创| 在线电影国产精品| 99精品国产一区二区三区不卡| 久久精品国产免费看久久精品| 亚洲人成精品久久久久| 精品国产乱码久久久久久图片| 在线免费观看日韩欧美|