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

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

?? fat.c

?? SD卡調試所用的資料
?? C
?? 第 1 頁 / 共 4 頁
字號:
  {
   FAT32_Buffer[i]=((UINT8 *)(&temp_rec))[i]; 
  }
  FAT32_WriteSector(temp_sec,FAT32_Buffer);
 }
 if(is_dir)
 {
  FAT32_Empty_Cluster(new_clu);

  Fill_Rec_Inf(&temp_rec,".",1,ptd);
  (temp_rec.deHighClust)[0]=(new_clu&0x00ff0000)>>16;
  (temp_rec.deHighClust)[1]=(new_clu&0xff000000)>>24;
  (temp_rec.deLowCluster)[0]=(new_clu&0x000000ff);
  (temp_rec.deLowCluster)[1]=(new_clu&0x0000ff00)>>8;
  for(i=0;i<sizeof(struct direntry);i++)
  {
   FAT32_Buffer[i]=((UINT8 *)(&temp_rec))[i]; 
  }
  Fill_Rec_Inf(&temp_rec,"..",1,ptd);
  if(cluster==pArg->FirstDirClust)
  {
   (temp_rec.deHighClust)[0]=0;
   (temp_rec.deHighClust)[1]=0;
   (temp_rec.deLowCluster)[0]=0;
   (temp_rec.deLowCluster)[1]=0;
  }
  else
  {
   (temp_rec.deHighClust)[0]=(cluster&0x00ff0000)>>16;
   (temp_rec.deHighClust)[1]=(cluster&0xff000000)>>24;
   (temp_rec.deLowCluster)[0]=(cluster&0x000000ff);
   (temp_rec.deLowCluster)[1]=(cluster&0x0000ff00)>>8;
  }
    
  for(i=sizeof(struct direntry);i<2*sizeof(struct direntry);i++)
  {
   FAT32_Buffer[i]=((UINT8 *)(&temp_rec))[i-sizeof(struct direntry)]; 
  }
  for(;i<pArg->BytesPerSector;i++)
  {
   FAT32_Buffer[i]=0;
  }		
  temp_sec=SOC(new_clu);
  FAT32_WriteSector(temp_sec,FAT32_Buffer);
 }
 else
 {
  strcpy(pfi->FileName,name);
  pfi->FileStartCluster=0;
  pfi->FileCurCluster=0;
  pfi->FileSize=0;
  pfi->FileCurSector=0;
  pfi->FileCurPos=0;
  pfi->FileCurOffset=0;
  pfi->Rec_Sec=temp_sec;
  pfi->nRec=temp_Rec;

  pfi->FileAttr=temp_rec.deAttributes;
 }
 FAT32_Find_Free_Clust(1);
 return 1;
}
*/
/**************************************************************************
 - 功能描述:向某一個文件追加數據
 - 隸屬模塊:FAT文件系統模塊
 - 函數屬性:外部,使用戶使用
 - 參數說明:pfi:指向FileInfoStruct類型的結構體,用于裝載剛創建的文件的信息
             len:要追加的數據長度
             pbuf:指向數據緩沖區的指針
 - 返回說明:成功返回實際寫入的數據長度,失敗返回0
 - 注:追加數據失敗很有可能是存儲設備已經沒有空間了,也就是找不到空閑簇了
 **************************************************************************/
/*
UINT32 FAT32_Add_Dat(struct FileInfoStruct *pfi,UINT32 len,UINT8 *pbuf)
{
 UINT32 i=0,counter=0,iSec,iClu;
 UINT32 temp_sub,temp_file_size,new_clu,temp_sec;
 struct direntry *prec;
 if(len>0)
 {
  FAT32_ReadSector(pfi->Rec_Sec,FAT32_Buffer);
  prec=(struct direntry *)(FAT32_Buffer+pfi->nRec);
  temp_file_size=LE2BE((prec->deFileSize),4);
  if(!temp_file_size)
  {   
   if(!(new_clu=FAT32_Find_Free_Clust(0))) return 0;
   FAT32_Modify_FAT(new_clu,0x0fffffff);
   pfi->FileStartCluster=new_clu;
   pfi->FileCurCluster=pfi->FileStartCluster;
   pfi->FileSize=0;
   pfi->FileCurSector=SOC(pfi->FileCurCluster);
   pfi->FileCurPos=0;
   pfi->FileCurOffset=0;
   FAT32_ReadSector(pfi->Rec_Sec,FAT32_Buffer);
   (prec->deHighClust)[0]=(new_clu&0x00ff0000)>>16;
   (prec->deHighClust)[1]=(new_clu&0xff000000)>>24;
   (prec->deLowCluster)[0]=(new_clu&0x000000ff);
   (prec->deLowCluster)[1]=(new_clu&0x0000ff00)>>8;
   FAT32_WriteSector(pfi->Rec_Sec,FAT32_Buffer);
  }
  else
  {
   if(!(temp_file_size%(pArg->SectorsPerClust*pArg->BytesPerSector))) //在簇的最末尾臨界地方,需要尋找新簇
   {
    FAT32_Seek_File(pfi,pfi->FileSize-1);
    if(!(new_clu=FAT32_Find_Free_Clust(0))) return 0;
	FAT32_Modify_FAT(pfi->FileCurCluster,new_clu);
    FAT32_Modify_FAT(new_clu,0x0fffffff);     
   }
   FAT32_Seek_File(pfi,pfi->FileSize);
  }

  iSec=pfi->FileCurSector;

  FAT32_ReadSector(iSec,FAT32_Buffer);
  for(i=pfi->FileCurPos;i<pArg->BytesPerSector;i++)
  {
   FAT32_Buffer[i]=pbuf[counter];
   counter++;
   if(counter>=len) 
   {
    iSec=pfi->FileCurSector;
    goto end;
   }
  }
  FAT32_WriteSector(pfi->FileCurSector,FAT32_Buffer); //數據接縫  
  
  if(pfi->FileCurSector-(SOC(pfi->FileCurCluster))<(pArg->SectorsPerClust-1)) //判斷是不是一個簇的最后一個扇區,先將當前簇所有扇區填滿 
  {
   for(iSec=pfi->FileCurSector+1;iSec<=(SOC(pfi->FileCurCluster)+pArg->SectorsPerClust-1);iSec++)
   {
    for(i=0;i<pArg->BytesPerSector;i++)
    {
	 FAT32_Buffer[i]=pbuf[counter];
	 counter++;
     if(counter>=len) 
	 {
	  goto end;
	 }
    }
    FAT32_WriteSector(iSec,FAT32_Buffer);
   }
  }
  
  temp_sub=len-counter;
  for(iClu=0;iClu<temp_sub/(pArg->SectorsPerClust*pArg->BytesPerSector);iClu++)
  {
   if(!(new_clu=FAT32_Find_Free_Clust(0))) return 0;
   FAT32_Modify_FAT(pfi->FileCurCluster,new_clu);
   FAT32_Modify_FAT(new_clu,0x0fffffff);
   pfi->FileCurCluster=new_clu;

   temp_sec=SOC(new_clu);
   for(iSec=temp_sec;iSec<temp_sec+pArg->SectorsPerClust;iSec++)
   {
    for(i=0;i<pArg->BytesPerSector;i++)
	{
   	 FAT32_Buffer[i]=pbuf[counter];
	 counter++;
	} 
	FAT32_WriteSector(iSec,FAT32_Buffer);
   }
  }

  temp_sub=len-counter;
  if(temp_sub)
  {
   if(!(new_clu=FAT32_Find_Free_Clust(0))) return 0;
   FAT32_Modify_FAT(pfi->FileCurCluster,new_clu);
   FAT32_Modify_FAT(new_clu,0x0fffffff);
   pfi->FileCurCluster=new_clu;
   temp_sec=SOC(new_clu);
   for(iSec=temp_sec;iSec<temp_sec+temp_sub/pArg->BytesPerSector;iSec++)
   {
    for(i=0;i<pArg->BytesPerSector;i++)
	{
   	 FAT32_Buffer[i]=pbuf[counter];
	 counter++;
	} 
	FAT32_WriteSector(iSec,FAT32_Buffer);    
   }   
  }

  temp_sub=len-counter;
  if(temp_sub)
  {
   for(i=0;i<pArg->BytesPerSector;i++)
   {
   	FAT32_Buffer[i]=pbuf[counter];
	counter++;
   } 
   FAT32_WriteSector(iSec,FAT32_Buffer);   
  }
end:
  FAT32_WriteSector(iSec,FAT32_Buffer);
  FAT32_ReadSector(pfi->Rec_Sec,FAT32_Buffer);
  (((struct direntry *)(FAT32_Buffer+pfi->nRec))->deFileSize)[0]=((temp_file_size+len)&0x000000ff);
  (((struct direntry *)(FAT32_Buffer+pfi->nRec))->deFileSize)[1]=((temp_file_size+len)&0x0000ff00)>>8;
  (((struct direntry *)(FAT32_Buffer+pfi->nRec))->deFileSize)[2]=((temp_file_size+len)&0x00ff0000)>>16;
  (((struct direntry *)(FAT32_Buffer+pfi->nRec))->deFileSize)[3]=((temp_file_size+len)&0xff000000)>>24;
  FAT32_WriteSector(pfi->Rec_Sec,FAT32_Buffer);

  pfi->FileSize=(temp_file_size+len);
  pfi->FileCurSector=(pfi->FileSize%pArg->BytesPerSector)?iSec:iSec+1;
  pfi->FileCurPos=pfi->FileSize%pArg->BytesPerSector;
  pfi->FileCurOffset=pfi->FileSize;
 }
 FAT32_Find_Free_Clust(1);
 return len;
}
*/
/**************************************************************************
 - 功能描述:創建目錄(支持任意層目錄創建)
 - 隸屬模塊:znFAT文件系統模塊
 - 函數屬性:外部,使用戶使用
 - 參數說明:pfi:無用
             dirpath:目錄路徑 比如 "\\dir1\\dir2\\dir3\\....\\dirn\\"
             最后必須是\\結束
 - 返回說明:成功返回0,失敗返回1
 - 注:如果中間某一級目錄不存在,比如上面的這個路徑中dir3不存在,那么此函數會
       創建這個目錄,然后再繼續去創建更深層的目錄
       創建目錄失敗有可能是因為存儲設備空間不足
 **************************************************************************/
/*
UINT8 FAT32_Create_Dir(struct FileInfoStruct *pfi,INT8 *dirpath,UINT8 *ptd)
{
 while(!FAT32_Enter_Dir(dirpath))
 {
  if(FAT32_Create_Rec(pfi,temp_dir_cluster,temp_dir_name,1,ptd)==-1)
  {
   return 1;
  }
 }
 return 0;
}
*/
/**************************************************************************
 - 功能描述:創建文件(支持任意層目錄創建)
 - 隸屬模塊:FAT文件系統模塊
 - 函數屬性:外部,使用戶使用
 - 參數說明:pfi:一個指向FileInfoStruct類型的結構體的指針,用來裝載新創建的
             文件信息,因此新創建的文件不用再打開就可以直接來操作
             filepath:文件路徑 比如 "\\dir1\\dir2\\dir3\\....\\dirn\\test.txt"
 - 返回說明:0:成功 1:文件已存在 2:創建文件目錄失敗 3:創建文件失敗
 - 注:如果文件路徑中某一個中間目錄不存在,那么此函數會創建這個目錄,再繼續
       去創建更深層的目錄,一直到最后把文件創建完成。
       創建文件失敗有可能是因為存儲設備空間不足,或是此文件已經存在
 **************************************************************************/
/*
UINT8 FAT32_Create_File(struct FileInfoStruct *pfi,INT8 *filepath,UINT8 *ptd)
{
 if(FAT32_Open_File(pfi,filepath,0))
 {
  if(!FAT32_Create_Dir(pfi,filepath,ptd))
  {
   if(FAT32_Create_Rec(pfi,temp_dir_cluster,temp_dir_name,0,ptd)==-1)
   {
    return 3;
   }    
  }
  else
  {
   return 2;   
  }
 }
 else
 {
  return 1;
 }
 return 0;
}
*/
/**************************************************************************
 - 功能描述:刪除文件(支持任意層目錄)
 - 隸屬模塊:FAT文件系統模塊
 - 函數屬性:外部,使用戶使用
 - 參數說明:filepath:文件路徑 比如 "\\dir1\\dir2\\dir3\\....\\dirn\\test.txt"
 - 返回說明:1:文件或目錄路徑不存在 0:成功
 - 注:刪除后的文件的FAT表中的簇鏈關系完全被破壞
 **************************************************************************/
/*
UINT8 FAT32_Del_File(INT8 *filepath)
{
 UINT32 cur_clu,next_clu;
 struct FileInfoStruct fi;
 
 if(FAT32_Open_File(&fi,filepath,0))
 {
  return 1;
 }
 FAT32_ReadSector(fi.Rec_Sec,FAT32_Buffer);
 *(FAT32_Buffer+fi.nRec)=0xe5;
 FAT32_WriteSector(fi.Rec_Sec,FAT32_Buffer);
 
 if(cur_clu=fi.FileStartCluster)
 {
  if(cur_clu<Search_Last_Usable_Cluster()) 
   FAT32_Update_FSInfo_Last_Clu(cur_clu);
  FAT32_Update_FSInfo_Free_Clu(1);
  next_clu=FAT32_GetNextCluster(cur_clu);
  while(next_clu!=0x0fffffff)
  {
   FAT32_Update_FSInfo_Free_Clu(1);
   FAT32_Modify_FAT(cur_clu,0x00000000);
   cur_clu=next_clu;
   next_clu=FAT32_GetNextCluster(cur_clu);
  }
  FAT32_Modify_FAT(cur_clu,0x00000000);
 }
 return 0;
}
*/
/**************************************************************************
 - 功能描述:文件拷貝(源文件路徑與目標文件路徑均支持任意深層目錄,并且支持
             文件名通配)
 - 隸屬模塊:FAT文件系統模塊
 - 函數屬性:外部,使用戶使用
 - 參數說明:pArg1:是源文件所在的存儲設備的初始參數結構體的指針
             pArg2:是目標文件所在的存儲設備的初始參數結構體的指針
             sfilename:源文件路徑,也就是拷貝操作的數據源
             tfilename:目標文件路徑,也就是數據最終到寫入的文件
                       比如 "\\dir1\\dir2\\dir3\\....\\dirn\\test.txt" 
             file_buf:拷貝過程中要用到的數據緩沖區,此緩沖區容量越大,
                      拷貝速度越快
             buf_size:數據緩沖區的大小 
 - 返回說明:1:目錄文件創建失敗 2:源文件打開打敗 0:成功
 - 注:此函數支持多設備之間的文件拷貝,pArg1與pArg2引入了源存儲設備與目的
       存儲設備的初始參數信息,從而可以同時對兩個存儲設備進行操作。
	   znFAT 5.01版開始支持多設備,多設備間的相互數據拷貝是最典型的應用
 **************************************************************************/
/*
unsigned char FAT32_XCopy_File(struct FAT32_Init_Arg *pArg1,struct FAT32_Init_Arg *pArg2,INT8 *sfilename,INT8 *tfilename,UINT8 *file_buf,UINT32 buf_size,unsigned char *pt)
{
 struct FileInfoStruct FileInfo2,FileInfo1;
 UINT32 i;

 Dev_No=pArg2->DEV_No;
 pArg=pArg2;
 if(FAT32_Create_File(&FileInfo1,tfilename,pt)) return 1;
 Dev_No=pArg1->DEV_No;
 pArg=pArg1;
 if(FAT32_Open_File(&FileInfo2,sfilename,0)) return 2;

 for(i=0;i<FileInfo2.FileSize/buf_size;i++)
 {
  Dev_No=pArg1->DEV_No;
  pArg=pArg1;
  FAT32_Read_File(&FileInfo2,i*buf_size,buf_size,file_buf);
  Dev_No=pArg2->DEV_No;
  pArg=pArg2;
  FAT32_Add_Dat(&FileInfo1,buf_size,file_buf);
 }

 Dev_No=pArg1->DEV_No;
 pArg=pArg1; 
 FAT32_Read_File(&FileInfo2,i*buf_size,FileInfo2.FileSize%buf_size,file_buf);
 Dev_No=pArg2->DEV_No;
 pArg=pArg2;
 FAT32_Add_Dat(&FileInfo1,FileInfo2.FileSize%buf_size,file_buf);

 return 0;
}
*/
/**************************************************************************
 - 功能描述:文件重命名
 - 隸屬模塊:FAT文件系統模塊
 - 函數屬性:外部,使用戶使用
 - 參數說明:filename:將要重命名的源文件的路徑 如\a.txt
             newfilename:目標文件名 如b.txt (注目標文件名是單純的文件名,
			 不含路徑)
 - 返回說明:1:源文件打開打敗 0:成功
 - 注:無
 **************************************************************************/
/*
UINT8 FAT32_Rename_File(INT8 *filename,INT8 *newfilename)
{
 struct FileInfoStruct fi;
 UINT8 i=0,j=0;
 if(FAT32_Open_File(&fi,filename,0)) return 1; //文件打開失敗
 FAT32_ReadSector(fi.Rec_Sec,FAT32_Buffer);
 for(i=0;i<11;i++) (FAT32_Buffer+fi.nRec)[i]=0x20;
 i=0;
 while(newfilename[i]!='.')
 {
  (FAT32_Buffer+fi.nRec)[i]=L2U(newfilename[i]);
  i++;
 }
 i++;
 while(newfilename[i])
 {
  (FAT32_Buffer+fi.nRec+8)[j]=L2U(newfilename[i]);
  i++;j++;
 }
 FAT32_WriteSector(fi.Rec_Sec,FAT32_Buffer);
 return 0;
}
*/
/**************************************************************************
 - 功能描述:文件關閉
 - 隸屬模塊:FAT文件系統模塊
 - 函數屬性:外部,使用戶使用
 - 參數說明:pfi:指向當前打開的文件的文件信息結構
 - 返回說明:0:成功
 - 注:無
 **************************************************************************/

UINT8 FAT32_File_Close(struct FileInfoStruct *pfi)
{
 UINT16 i=0;							
 for(i=0;i<sizeof(struct FileInfoStruct);i++)
 {
  ((UINT8 *)pfi)[i]=0;
 }
 return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人sese在线| 国产欧美日韩另类视频免费观看| www国产成人| 亚洲美腿欧美偷拍| 国产精品一品二品| 91精品国产91久久久久久一区二区 | 国产伦精品一区二区三区免费| 99re在线精品| 亚洲国产精品v| 日本美女一区二区三区视频| 91视频com| 国产精品久久久久一区二区三区 | 日韩电影免费在线| 9人人澡人人爽人人精品| 精品国产一区二区三区av性色| 一区二区三区不卡在线观看| 国产91精品入口| 久久久久久久综合狠狠综合| 蜜臀精品一区二区三区在线观看| 欧美性欧美巨大黑白大战| 亚洲色图丝袜美腿| 成人性色生活片免费看爆迷你毛片| 精品成人在线观看| 精品影院一区二区久久久| 欧美一级片免费看| 秋霞影院一区二区| 欧美日韩成人激情| 午夜电影久久久| 欧美日韩精品欧美日韩精品一综合| 亚洲欧美一区二区在线观看| 成人av在线一区二区| 国产精品理论在线观看| 成人免费黄色在线| 亚洲天堂精品在线观看| 一本久久精品一区二区| 亚洲免费观看高清完整版在线观看| 91视频免费播放| 亚洲午夜久久久久久久久电影网| 在线国产电影不卡| 亚洲超碰精品一区二区| 日韩视频一区二区三区在线播放| 久久国产乱子精品免费女| 精品毛片乱码1区2区3区| 狠狠色综合播放一区二区| 久久伊人蜜桃av一区二区| 国产精品1024| 一区二区三区免费| 在线综合亚洲欧美在线视频| 激情五月婷婷综合| 国产精品乱码一区二区三区软件| 97久久精品人人澡人人爽| 亚洲制服丝袜av| 日韩欧美国产精品一区| 成人免费高清在线观看| 一区二区国产视频| 日韩欧美一级二级三级| 成人国产精品免费观看视频| 亚洲综合视频在线观看| 日韩一区二区三区三四区视频在线观看| 蜜桃传媒麻豆第一区在线观看| 久久一区二区三区四区| 91欧美一区二区| 免费成人你懂的| 国产精品九色蝌蚪自拍| 91精品国产乱码| 成人性生交大片免费看中文网站| 一区二区三区加勒比av| 精品国产乱码久久| 欧洲在线/亚洲| 国产一区二区三区免费在线观看| 亚洲激情在线播放| 久久综合久久99| 欧美日韩不卡视频| av中文字幕一区| 久99久精品视频免费观看| 亚洲人精品午夜| 久久影院电视剧免费观看| 欧美色图激情小说| caoporm超碰国产精品| 免费一级片91| 一区二区三区在线影院| 欧美极品xxx| 欧美sm极限捆绑bd| 欧美日韩中文字幕精品| 粉嫩嫩av羞羞动漫久久久| 日韩专区在线视频| 亚洲欧美另类在线| 欧美国产日产图区| 欧美mv日韩mv国产网站app| 欧美日韩精品一区二区三区| 99re热视频精品| 国产 日韩 欧美大片| 麻豆国产精品777777在线| 午夜在线电影亚洲一区| 亚洲男人的天堂在线aⅴ视频| 久久精品视频免费观看| 日韩欧美电影一区| 3d动漫精品啪啪一区二区竹菊| 色国产综合视频| 色综合色狠狠天天综合色| 成人免费视频网站在线观看| 国产一区二区三区免费| 激情综合网天天干| 蜜臀精品久久久久久蜜臀| 亚洲a一区二区| 亚洲最快最全在线视频| 亚洲国产精品久久艾草纯爱| 亚洲另类春色校园小说| 亚洲欧美日韩电影| 亚洲麻豆国产自偷在线| 日韩美女视频一区二区| 亚洲日本在线a| 亚洲综合在线电影| 一区二区国产盗摄色噜噜| 亚洲亚洲精品在线观看| 亚洲一区二区欧美日韩| 天天亚洲美女在线视频| 日本vs亚洲vs韩国一区三区| 男女男精品视频网| 极品销魂美女一区二区三区| 国产一区亚洲一区| 粉嫩高潮美女一区二区三区 | 麻豆一区二区99久久久久| 久久疯狂做爰流白浆xx| 国产成人亚洲综合色影视| 成人性视频网站| 欧美伊人精品成人久久综合97 | 欧美aⅴ一区二区三区视频| 免费高清视频精品| 国产高清不卡一区二区| 本田岬高潮一区二区三区| 日本乱码高清不卡字幕| 欧美情侣在线播放| 精品粉嫩超白一线天av| 国产丝袜欧美中文另类| 亚洲日本成人在线观看| 天堂av在线一区| 国产一区二区精品久久91| 成+人+亚洲+综合天堂| 精品视频999| 久久影院电视剧免费观看| 亚洲欧美偷拍另类a∨色屁股| 亚洲福利视频三区| 国产成人午夜精品影院观看视频| 97成人超碰视| 日韩三级高清在线| 综合久久久久久久| 免费在线看成人av| 99久久精品国产导航| 制服丝袜中文字幕一区| 中文字幕欧美日韩一区| 亚洲va欧美va国产va天堂影院| 精品亚洲免费视频| 91精品91久久久中77777| 精品国产免费一区二区三区香蕉| 亚洲免费色视频| 国产中文字幕一区| 欧美在线观看18| 国产婷婷精品av在线| 免费在线观看不卡| 欧美影院一区二区| 国产日产欧美精品一区二区三区| 亚洲午夜激情网站| 粉嫩aⅴ一区二区三区四区五区| 欧美日韩一区精品| 中文字幕在线不卡| 韩国女主播一区| 欧美电影一区二区| 亚洲视频免费在线观看| 国产成人av一区| 26uuu成人网一区二区三区| 性感美女久久精品| 97久久精品人人做人人爽| 久久精品水蜜桃av综合天堂| 人人爽香蕉精品| 欧美日韩国产在线观看| 亚洲视频每日更新| 成人视屏免费看| 国产亚洲欧美日韩日本| 久久超碰97中文字幕| 欧美一区二区在线看| 亚洲国产精品精华液网站| 91久久线看在观草草青青| 亚洲图片你懂的| 成人免费视频caoporn| 国产日韩欧美精品电影三级在线| 激情亚洲综合在线| 欧美成人aa大片| 久久精品国产澳门| 日韩欧美一区二区在线视频| 五月婷婷综合激情| 欧美精品777| 日韩和的一区二区| 欧美夫妻性生活| 全部av―极品视觉盛宴亚洲| 欧美一区二区国产| 美国精品在线观看| 精品理论电影在线| 国产一区二区精品在线观看| 久久久精品2019中文字幕之3|