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

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

?? fat_dir.c

?? fat16文件系統(tǒng)源碼。需要的請(qǐng)下
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
        

       	/*computes gathered data
       	/* check if we have a LFN entry */
      	if (gl_buffer[11+j] != ATTR_LFN_ENTRY)
       	{
	      	if (!lfn_entry_found)
	      	{
		        /* true DOS 8.3 entry format */
		        for (i = 0; i < 8; i++)
		        {
		          	lfn_name[i] = gl_buffer[i+j];
		          
		          	if (lfn_name[i] == ' ')
		          	{ /* space is end of name */
		            	break;
		          	}
		        }
		        /* append extension */
				if((gl_buffer[11+j] & ATTR_DIRECTORY )!= ATTR_DIRECTORY)
				{
			        lfn_name[i++] = '.';
				}
			    lfn_name[i++] = gl_buffer[8+j];
			    lfn_name[i++] = gl_buffer[9+j];
			    lfn_name[i++] = gl_buffer[10+j];

			    lfn_name[i] = '\0';        /* end of string */				
		  	}	        
	      	else
	      	{ // LFN name treatment //

               	i = 0;
			   	while((lfn_name[i] != '\0') && (lfn_name[i] != 0xff))
			   	{
			       	i++;
			   	}
			   	lfn_name[i] = '\0';
	      	}
	
	      	/* store extension */
	      	ext[0]= gl_buffer[8+j];
	      	ext[1]= gl_buffer[9+j];
	      	ext[2]= gl_buffer[10+j];
	
	      	/* standard computing for normal entry */
	      	entry->attributes = gl_buffer[11+j];
	      	entry->start_cluster.b[3] = gl_buffer[26+j];
			entry->start_cluster.b[2] = gl_buffer[27+j];
			entry->start_cluster.b[1] = gl_buffer[20+j];
			entry->start_cluster.b[0] = gl_buffer[21+j];
	      	//entry->start_cluster += ((Uint16) gl_buffer[27+j]) << 8;
	      	entry->size.b[3] = gl_buffer[28+j];
	      	entry->size.b[2] = gl_buffer[29+j];
	      	entry->size.b[1] = gl_buffer[30+j];
	      	entry->size.b[0] = gl_buffer[31+j];
	      	/* now it's time to stop */
	      	exit_flag = TRUE;

	  	}// end  if (name_buffer[11] != ATTR_LFN_ENTRY)
      	else
	  	{
          	lfn_entry_found = TRUE;
		  	//lfn_name[0] = 'L';
		  if(count < 5)
          {	
			  if((gl_buffer[0 + j] & LFN_SEQ_MASK) <= MAX_LFN_ENTRIES)
			  {
				  for(i=0; i<5; i++)
				  {
				     lfn_name[i*2 + 26*((gl_buffer[0+j] & LFN_SEQ_MASK) - 1) + 1] = gl_buffer[2*i + 1 +j];
				     lfn_name[i*2 + 26*((gl_buffer[0+j] & LFN_SEQ_MASK) - 1)] = gl_buffer[2*i + 2 +j];
				  }
				  for(i=0; i<6; i++)
				  {
				     lfn_name[i*2 + 10 + 26*((gl_buffer[0+j] & LFN_SEQ_MASK) - 1) + 1] = gl_buffer[2*i + 14 +j];
				     lfn_name[i*2 + 10 + 26*((gl_buffer[0+j] & LFN_SEQ_MASK) - 1)] = gl_buffer[2*i + 15 +j];
				  }
				  for(i=0; i<2; i++)
				  {
				     lfn_name[i*2 + 22 + 26*((gl_buffer[0+j] & LFN_SEQ_MASK) - 1) + 1] = gl_buffer[2*i + 28 +j];
				     lfn_name[i*2 + 22 + 26*((gl_buffer[0+j] & LFN_SEQ_MASK) - 1)] = gl_buffer[2*i + 29 +j];
				  }
			 }
		 }
          	count++;
	   	}                
    }//end while
   	phy_read_close();                        /* close physical read */

}


/*F**************************************************************************
* NAME: fat_scan_dir
*----------------------------------------------------------------------------
* PARAMS:
*   id: file extension to select
* return: none
*----------------------------------------------------------------------------
* PURPOSE:
*   Construct the file directory list
*----------------------------------------------------------------------------
* NOTE:
*   The value are relative position with the previous file.
*   Call to this function assume that the dir fragment chain has been created
*----------------------------------------------------------------------------
* REQUIREMENTS:
*   Maximum of 256 entries between 2 authorized file (id extension)
*   because the relative position is stored on one byte.
*   To allow more than 256 entries (-> 32768), change type of
*   fat_dir_entry_list[] from Byte to Uint16 (no overflow management)
*   and change MAX_DIRECTORY_GAP_FILE from 255 to 32767
*****************************************************************************/
void fat_scan_dir(Byte flag)
{
	Uint16 counter_entry;                       /* entry counter: 0..MAX_DIRECTORY_FILE */
	//data Uint16 entry_pos;                    /* relative entry position */
	//data Uint16 entry_pos_saved;              /* used when the file is not the id extension */
 	Byte   i;
 	Uint16 num=0;
 	Uint16 nb_cluster;
 	Uint16 counter_dir;
 	Byte ready;
	// bit del_exist;
 	Uint16 j;
 	Uint16 dir_count;
 	Uint16 dir_offset;
	
	// del_exist = 0;
	//  index = 0;
  	ready = 0;
  	counter_entry = 0;
  	dir_count = 0;
		
	if((dir_is_root == TRUE) && (fat_type_id != FAT_IS_32))
	{
	    phy_read_open(fat_ptr_rdir);
	    counter_dir = fat_root_entries;
	}
	else
	{
		nb_cluster = 0;
		fat_dclust_byte_count = 0;
		fat_dchain_nb_clust = 0;
		fat_dchain_index = 0;
	    for(i=0;i<MAX_DIR_FRAGMENT_NUMBER;i++)
		{
			if(dclusters[i].number == 0)
			{
				nb_cluster++;
			   	break;
			}
			else
			{
			   	nb_cluster = nb_cluster + dclusters[i].number;
			}
		}
		counter_dir = ((Uint32)nb_cluster * fat_cluster_size * fat_sector_size) / 32;
	}

   	do /* scan all entries */
   	{
	    if ((dir_is_root == TRUE) && (fat_type_id != FAT_IS_32))
	    { 
			if(num%fat_sector_size==0)
			{
				phy_read_sector();
				num=0;
			}	
		}
	    else
	    { /* subdir can be fragmented -> dgetc() */
			if(num % fat_sector_size == 0 )
			{
		         fat_dgetsector();
				 num=0;
			}
	    } 
  		j = num;
		num += DIR_SIZE;
		
		if((gl_buffer[0+j] != FILE_DELETED) && (gl_buffer[0+j] != FILE_NOT_EXIST))
		{	
			dir_count++;
//			index++;
            dir_offset = counter_entry;
			while (gl_buffer[11+j] == ATTR_LFN_ENTRY) /* LFN entry ?                  */
		    {	                                       /* then read all the LFN entry  */
		        if (dir_is_root == TRUE)
		        { /* root dir is linear */
					if(num%fat_sector_size==0)
					{
						phy_read_sector();
						num = 0;
					}
		        }
		        else
		        { /* subdir can be fragmented -> dgetc() */
					if(num % fat_sector_size == 0 )
					{
				        fat_dgetsector();
						num=0;
					}
		        }
				j=num;
		        num += DIR_SIZE;
				counter_entry++;
            }
			/* filter on the file type */
			fat_cache.current.attributes = gl_buffer[11+j];
			ext[0] = gl_buffer[8+j];
			ext[1] = gl_buffer[9+j];
			ext[2] = gl_buffer[10+j];

			if ((fat_check_ext() & fat_global_id) == FILE_XXX)
			{                                     /* Don't valid the entry */
			    dir_count--;                                              			          
			}
		      
			if((flag == 0)&&(ready == 0))
			{
			   	if(dir_count == (fat_dir_list_index + 1))
				{
					fat_dir_all_count = dir_offset;//counter_entry;
 					ready = 1;
				}
			}
		}
	    counter_entry++;
				
		if ((gl_buffer[0+j] == FILE_NOT_EXIST) || (counter_dir == counter_entry)) 
			break;

	}while(1);

	fat_dir_list_last = dir_count;
	if(flag == 1)
	{
		fat_dir_all_count = counter_entry;
			
		if(gl_buffer[0+j] == FILE_NOT_EXIST)
	        fat_dir_all_count--;

		if(fat_dir_list_last == 0)
	      fat_no_file = 1;
	    else
	      fat_no_file = 0; 
	}
  	phy_read_close();						
}

/*F**************************************************************************
* NAME: fat_check_ext
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE:
*   Return the type of the file
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
Uint32 fat_check_ext (void)
{
//  char ext_bak[3];
   if ((fat_cache.current.attributes & ATTR_DIRECTORY) == ATTR_DIRECTORY)
   {
      return FILE_DIR;
   }

   if ((ext[0] == 'M') &&
       (ext[1] == 'P') &&
       (ext[2] == '3'))
   {
      return FILE_MP3;
   }
  
   if ((ext[0] == 'A') &&
       (ext[1] == 'V') &&
       (ext[2] == '6'))
   {
      return FILE_AV6;
   }

   if(((ext[0] == 'W')&&
       (ext[1] == 'M')&& 
	   (ext[2] == 'A'))||
      ((ext[0] == 'A')&&
      (ext[1] == 'S')&& 
	  (ext[2] == 'F'))||
	  ((ext[0] == 'W')&&
      (ext[1] == 'M')&& 
	  (ext[2] == 'V')))
	  
   {
       return FILE_WMA;
   }

   if((ext[0] == 'W')&&
      (ext[1] == 'A')&& 
      (ext[2] == 'V'))
   {
   		return FILE_WAV;
   }  
 
   if((ext[0] == 'L')&&
      (ext[1] == 'R')&& 
      (ext[2] == 'C'))
   {
        return FILE_LRC;
   }

    if ((ext[0] == 'I') &&
        (ext[1] == 'M') &&
        (ext[2] == 'V'))
    {
      return FILE_IMV;
    }

    if ((ext[0] == 'B') &&
        (ext[1] == 'M') &&
        (ext[2] == 'P'))
    {
      return FILE_BMP;
    }

    if ((ext[0] == 'J') &&
        (ext[1] == 'P') &&
        (ext[2] == 'G'))
    {
      return FILE_JPG;
    }

    if ((ext[0] == 'T') &&
        (ext[1] == 'X') &&
        (ext[2] == 'T'))
    {
      return FILE_TXT;
    }

	if ((ext[0] == 'A') &&
        (ext[1] == 'A') &&
        (ext[2] == 'C'))
    {
      return FILE_AAC;
    }


	if ((ext[0] == 'O') &&
        (ext[1] == 'G') &&
        (ext[2] == 'G'))
    {
      return FILE_OGG;
    }

	if ((ext[0] == 'I') &&
        (ext[1] == 'M') &&
        (ext[2] == 'A'))
    {
      return FILE_IMA;
    }
    return FILE_XXX;
}




?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性一二三区| 亚洲欧洲av另类| 国产不卡在线视频| 国产女主播视频一区二区| 成人av电影在线网| 亚洲欧美成人一区二区三区| 日本久久一区二区| 亚洲成人777| 精品欧美乱码久久久久久| 国产精品一二三| 中文字幕一区三区| 在线观看一区二区视频| 日韩—二三区免费观看av| 精品99一区二区| 成人午夜视频免费看| 亚洲激情综合网| 欧美一级艳片视频免费观看| 国产成人免费9x9x人网站视频| 中文字幕一区二区三区四区| 欧美日韩高清影院| 韩国一区二区在线观看| 国产精品第四页| 欧美欧美午夜aⅴ在线观看| 精品一区二区三区在线播放| 国产精品久久久久四虎| 欧美日韩在线播| 国产最新精品免费| 亚洲精品综合在线| 欧美成人精品福利| 99re这里只有精品6| 日韩国产精品久久久久久亚洲| 久久九九久精品国产免费直播| 91色在线porny| 日本免费新一区视频| 中文字幕欧美国产| 欧美精品九九99久久| 国产精品一二一区| 偷窥少妇高潮呻吟av久久免费| 精品国产一区a| 色一区在线观看| 精油按摩中文字幕久久| 亚洲女同ⅹxx女同tv| xvideos.蜜桃一区二区| 色综合久久中文综合久久牛| 免费观看久久久4p| 亚洲天堂福利av| 日韩欧美久久久| 在线观看91精品国产入口| 国产麻豆午夜三级精品| 亚洲成人一区在线| 国产精品美女久久久久av爽李琼| 69成人精品免费视频| www.亚洲激情.com| 久久99久久99小草精品免视看| 亚洲精品成人天堂一二三| 激情文学综合插| 色妞www精品视频| 国产日韩精品一区二区三区 | 色偷偷久久人人79超碰人人澡| 国产精品天美传媒| 欧美一区二区三区在线| 99久久精品免费看国产免费软件| 免费在线看成人av| 亚洲国产你懂的| 国产精品麻豆网站| 精品卡一卡二卡三卡四在线| 欧洲av在线精品| 成人av网站在线| 精品亚洲免费视频| 偷偷要91色婷婷| 一区二区欧美国产| 国产欧美日韩一区二区三区在线观看| 91精品免费观看| 欧美在线三级电影| 波多野洁衣一区| 国产一区二区三区免费看 | 国产麻豆午夜三级精品| 日韩在线播放一区二区| 亚洲乱码精品一二三四区日韩在线| 久久亚洲综合av| 日韩午夜中文字幕| 制服丝袜在线91| 欧美性色欧美a在线播放| 91小视频在线观看| 丰满放荡岳乱妇91ww| 精品综合久久久久久8888| 日韩主播视频在线| 亚洲午夜精品17c| 亚洲人成网站色在线观看| 亚洲国产精品99久久久久久久久 | 日韩一区二区三区在线观看| 欧美日韩高清不卡| 欧美无乱码久久久免费午夜一区| 91在线观看污| 成人免费看黄yyy456| 国产传媒久久文化传媒| 极品少妇一区二区| 久久99精品久久久久久久久久久久| 日韩精品乱码免费| 日韩福利视频网| 日本美女视频一区二区| 日本免费在线视频不卡一不卡二| 首页亚洲欧美制服丝腿| 日日欢夜夜爽一区| 日韩电影免费在线看| 奇米影视7777精品一区二区| 免费亚洲电影在线| 久久丁香综合五月国产三级网站| 三级在线观看一区二区| 日韩精品久久久久久| 日本怡春院一区二区| 美女一区二区三区| 久久69国产一区二区蜜臀| 国产综合久久久久久久久久久久| 老司机午夜精品| 国产在线播放一区| 国产精品一级黄| av高清不卡在线| 91在线云播放| 在线观看日韩精品| 欧美精选午夜久久久乱码6080| 欧美一区2区视频在线观看| 欧美大片日本大片免费观看| 精品黑人一区二区三区久久| 久久理论电影网| 国产精品黄色在线观看| 亚洲女人****多毛耸耸8| 亚洲第一福利视频在线| 日本大胆欧美人术艺术动态| 国产真实乱偷精品视频免| 国产白丝网站精品污在线入口| 不卡大黄网站免费看| 色婷婷激情综合| 欧美福利视频一区| 精品少妇一区二区三区免费观看 | 亚洲不卡一区二区三区| 日本免费新一区视频| 国产精品一区二区不卡| 99久久综合99久久综合网站| 91官网在线观看| 欧美高清精品3d| 久久影院午夜论| 国产精品久久久久一区二区三区 | 成人永久aaa| 色婷婷av久久久久久久| 欧美精品v日韩精品v韩国精品v| 日韩欧美亚洲一区二区| 中文字幕高清不卡| 亚洲午夜视频在线观看| 美女在线观看视频一区二区| 高清shemale亚洲人妖| 日本福利一区二区| 日韩欧美激情在线| 国产精品福利一区| 婷婷一区二区三区| 国产一二三精品| 色视频欧美一区二区三区| 欧美一区二区三区不卡| 国产精品每日更新在线播放网址| 亚洲成在线观看| 国产成人精品一区二 | 在线亚洲高清视频| 日韩欧美中文字幕一区| 欧美国产成人精品| 午夜精品一区二区三区三上悠亚 | 成人在线一区二区三区| 欧美日韩你懂的| 久久久久国产一区二区三区四区| 亚洲女人小视频在线观看| 精品在线播放午夜| 91福利区一区二区三区| 2024国产精品| 亚洲国产成人av| 国产白丝网站精品污在线入口| 欧美日韩国产影片| 中文字幕不卡在线观看| 日韩精品午夜视频| 91热门视频在线观看| 欧美大肚乱孕交hd孕妇| 亚洲自拍偷拍av| 国产乱码精品一区二区三区忘忧草 | 国产拍欧美日韩视频二区| 亚洲www啪成人一区二区麻豆| 成人亚洲精品久久久久软件| 91精品国产综合久久精品图片 | 午夜欧美2019年伦理| 99久久er热在这里只有精品66| 日韩欧美你懂的| 亚洲狠狠爱一区二区三区| 国产成都精品91一区二区三| 欧美精品一级二级| 亚洲日本在线a| 国产精品综合二区| 6080午夜不卡| 一区二区三区精品视频在线| 国产在线视频一区二区三区| 欧美日韩一区成人| 悠悠色在线精品| 成人av片在线观看| 久久婷婷色综合|