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

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

?? fat_dir.c

?? fat16文件系統(tǒng)源碼。需要的請(qǐng)下
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
//****************************************************************
// FileName:    fat_dir.c                                        
// Description: file system control                               
// Version:     1.0                                               
// Histrory:                                                      
//            1.0   chanjl  2003.11.10    create the module    
//****************************************************************

#include "DataType.h"
#include "FTC32t.h"
#include "Define.h"
#include "ftc32t_m.h"
#include "register.h"
#include "global_variable.h"
#include "fat.h" 
#include "fat_h.h"
#include <string.h> 

/*F**************************************************************************
* NAME: fat_goto_subdir
*----------------------------------------------------------------------------
* PARAMS:
*   id: file extension to select
*
* return:
*   - OK: subdir selected
*   - KO: current entry not a directory
*   - KO: low level error
*----------------------------------------------------------------------------
* PURPOSE:
*   Go to the subdir if current is a directory
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*   Also called by goto_parentdir() with current info from parent info
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/ 
Byte fat_goto_subdir (void)
{ 

	fat_save_file_info(GOTO_CHILD);
                       
  	/* check if current file is a directory */
  	if ((fat_cache.current.attributes & ATTR_DIRECTORY) == ATTR_DIRECTORY)
 	{
    	/* computes the sector address (RELATIVE) */
     	if (fat_cache.current.attributes != ATTR_ROOT_DIR)
     	{ /* go to not root dir */ 
        	dir_is_root = FALSE;                  /* not the root dir */
	        fat_cache.parent = fat_cache.current;
	        /* get directory allocation table */
	        fat_get_clusters(&dclusters, MAX_DIR_FRAGMENT_NUMBER);
	
	        /* initialize fat pointers */
	        fat_dchain_nb_clust = 0;
	        fat_dchain_index = 0;
	        fat_dclust_byte_count = 0;
			fat_dir_sector_offset = 0;
      	}
      	else
      	{  /* go to root dir */
	    	fat_goto_rootdir();
      	}
      	return OK;
  	}
  	else
	{
     	return KO;
	}    
}


/*F**************************************************************************
* NAME: fat_goto_parent
*----------------------------------------------------------------------------
* PARAMS: 
*   id: file extension to select
*
* return:
*----------------------------------------------------------------------------
* PURPOSE:
*   Go to the parent directory
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/ 
Byte fat_goto_parent(void)
{                       
  /* goto the parent directory */
   fat_cache.current = fat_cache.parent;
   if((fat_cache.current.attributes & ATTR_DIRECTORY ) == ATTR_DIRECTORY )
   {
	   if(fat_cache.current.attributes == ATTR_ROOT_DIR)
	   {
		   dir_is_root = TRUE;
	       fat_cache.parent.attributes = 0;
	       fat_cache.parent.start_cluster.l = 0;
	       fat_goto_rootdir();
	   }
	   else
	   {
		   fat_dir_sector_offset = 0;
		   dir_is_root = FALSE;
		   fat_dclust_byte_count = 0;
	
	       /* create list of entries */
		   fat_global_id = FILE_DIR;		   	
		   fat_dir_list_index = 1;                 /* point ".." entry */
		   fat_scan_dir(FALSE);

		   if (fat_dir_seek(DIR_SIZE) == OK)
		   {
		       fat_get_dir_entry(&fat_cache.parent); /* update parent dir info */
			   if(fat_cache.parent.attributes == ATTR_ROOT_DIR)
			   {
			      dir_is_root = TRUE;
	              return OK;
			   }
			   
		   }
	
		   fat_get_clusters(&dclusters, MAX_DIR_FRAGMENT_NUMBER);
	
	       /* initialize fat pointers */
	       fat_dchain_nb_clust = 0;
	       fat_dchain_index = 0;
	       fat_dclust_byte_count = 0;
		   fat_dir_sector_offset = 0;	                         
	   }
	   return OK;
   }
   else
      return KO;
}
  
/*F**************************************************************************
* NAME: fat_goto_parent
*----------------------------------------------------------------------------
* PARAMS: 
*   id: file extension to select
*
* return:
*----------------------------------------------------------------------------
* PURPOSE:
*   Go to the parent directory
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
Byte fat_goto_parentdir(void)
{
	fat_save_file_info(GOTO_PARENT);

	if((fat_cache.current.attributes & ATTR_DIRECTORY ) == ATTR_DIRECTORY)
    {
	    if(fat_goto_parent() == OK)
            return OK;
    }
    else
    {
        if(fat_goto_parent() == OK)
	    {
			if(fat_goto_parent() == OK)
                 return OK;
        }
    }  
    
    return KO;   
}

#if COMPILE_FAT_DIR_CREATE == TRUE
/*F**************************************************************************
* NAME: fat_dircreate
*----------------------------------------------------------------------------
* NOTE:
*   This function creates first the free cluster chain from fat1 and then
*   creates an entry in current directory
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
Byte fat_dircreate (char chDirName[8])
{  
  	Byte flag;
  	Uint32 sectorNum;
  	Union32 clusterNum;
  	Union32 cluster;
  	Uint32 cluster_number;
  	Byte   j;
  	Uint16 i;

  	flag = FALSE; 

  	if(dir_is_root == FALSE)
  	{
  		cluster.l = fat_cache.parent.start_cluster.l; //dclusters[0].cluster + 2;//2004.3.30modify
		fat_cache.current = fat_cache.parent;
		fat_get_clusters(&dclusters,MAX_DIR_FRAGMENT_NUMBER);
  	}
	else
	{
		if(fat_type_id == FAT_IS_32)
		{
			fat_cache.current.start_cluster.l = fat32_root_cluster;
			cluster.l = fat32_root_cluster;
			fat_get_clusters(&dclusters,MAX_DIR_FRAGMENT_NUMBER);
		}
	}

////////////////////////////////////////////////////////////////////////////////////////////
    fat_global_id = FILE_DIR;
    fat_scan_dir(TRUE);

  	/* get free clusters list */
  	if ( fat_set_clusters(&dclusters,2) == KO )
    	return   KO;


    if((dir_is_root == TRUE) && (fat_type_id != FAT_IS_32))          //&&(fat_cache.current.attributes != ATTR_DIRECTORY))
	{
	    if(fat_dir_all_count == ((fat_ptr_data - fat_ptr_rdir)*fat_sector_size/32))
		    return KO;
	}
	else
	{
		if(((fat_dir_all_count%(fat_cluster_size * (fat_sector_size/32))) == 0) && (fat_dir_all_count != 0))
		{ 		
		    //fat_set_clusters(&dclusters,1);
			if(fat_type_id != FAT_IS_32)
				dclusters[0].cluster.w[0] = 0;

			cluster_number = dclusters[0].cluster.l;
			
			if(dclusters[0].number == 1)
			{
			      dclusters[0] = dclusters[1];
			}
			else
			{
			   dclusters[0].cluster.l++;
			   dclusters[0].number--;
			}
			flag = TRUE;

			phy_write_open(cluster_number * fat_cluster_size + fat_ptr_data,fat_cluster_size);
			for(j=0;j<fat_cluster_size;j++)
			{
				for(i=0;i<fat_sector_size;i++)
					gl_buffer[i]=0x00;
				phy_write_sector();
			}
	        phy_write_close();
		}
	}
	if(fat_type_id == FAT_IS_32)
	{
		clusterNum.l = dclusters[0].cluster.l + 2 ;
	}
	else
	{
		clusterNum.l = dclusters[0].cluster.w[1] + 2 ;
	}

    sectorNum = (clusterNum.l - 2) * fat_cluster_size + fat_ptr_data;
	 
	phy_write_open(sectorNum,fat_cluster_size);
	gl_buffer[0] = '.';
	for(i=1;i<11;i++)
		gl_buffer[i] = 0x20;
    gl_buffer[11] = ATTR_DIRECTORY;       /* Attribute : directory */

	for(i=12;i<32;i++)
	    gl_buffer[i] = 0x00;

	gl_buffer[20] = clusterNum.b[1];//(Byte)(clusterNum >> 16);    /* Low word first cluster number */
	gl_buffer[21] = clusterNum.b[0];//(Byte)((clusterNum) >> 24);
	gl_buffer[26] = clusterNum.b[3];//(Byte)(clusterNum);    /* Low word first cluster number */
	gl_buffer[27] = clusterNum.b[2];//(Byte)((clusterNum) >> 8);

	gl_buffer[32] = '.';
	gl_buffer[33] = '.';
    for(i=34;i<43;i++)
	    gl_buffer[i] = 0x20;
	if(dir_is_root==TRUE)
	{
	 	gl_buffer[43] = ATTR_ROOT_DIR;
	}
	else
	{		
	 	gl_buffer[43] = ATTR_DIRECTORY;       /* Attribute : directory */
	}
    for(i=44;i<64;i++)
	    gl_buffer[i] = 0x00;

	if(dir_is_root)
	{
		if(fat_type_id != FAT_IS_32)
		{
	        gl_buffer[58] = 0x00;    /* Low word first cluster number */
	        gl_buffer[59] = 0x00;
		}
		else
		{
	        gl_buffer[58] = 0x02;    /* Low word first cluster number */
	        gl_buffer[59] = 0x00;
		}
	}
	else
	{
        gl_buffer[52] = cluster.b[1]; //(Byte)(cluster>>16);    /* Low word first cluster number */
        gl_buffer[53] = cluster.b[0]; //(Byte)(cluster>>24);
        gl_buffer[58] = cluster.b[3]; //(Byte)(cluster);    /* Low word first cluster number */
        gl_buffer[59] = cluster.b[2]; //(Byte)(cluster>>8);
    }

    for(i=64;i<fat_sector_size;i++)
	    gl_buffer[i]=0x00;
	    	
	phy_write_sector();

	for(j=1;j<fat_cluster_size;j++)
	{
		for(i=0;i<fat_sector_size;i++)
			gl_buffer[i]=0x00;
		phy_write_sector();
	}
	phy_write_close();

    dclusters[0].number = 0;
	fat_dir_update_fats(FALSE,&dclusters);

//////////////////////////////////////
	if(dir_is_root == FALSE)
	{
		fat_cache.current = fat_cache.parent;
		fat_get_clusters(&dclusters,MAX_DIR_FRAGMENT_NUMBER);
	}
	else
	{
		if(fat_type_id == FAT_IS_32)
		{
			fat_cache.current.start_cluster.l = 2;
			fat_get_clusters(&dclusters,MAX_DIR_FRAGMENT_NUMBER);	
		}
	}
	 

    /* no more place in file list */
    if(flag == TRUE)
    {
		dclusters[fat_last_clust_index].number = 1;
		fat_last_clust_index++;
		dclusters[fat_last_clust_index].cluster.l = cluster_number;
		dclusters[fat_last_clust_index].number = 0;
		fat_dir_update_fats(FALSE,&dclusters);
    }


    fat_dchain_nb_clust = 0;
	fat_dchain_index = 0;
	fat_global_id = FILE_DIR;

    //dir name save to lfn_name
	memcpy(lfn_name,chDirName,8);

	fat_create_entry(clusterNum.l);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美人与z0zoxxxx视频| 中文字幕久久午夜不卡| 国产精品一区2区| 一区二区不卡在线播放 | 欧美视频自拍偷拍| 国产乱人伦精品一区二区在线观看 | 欧美午夜精品久久久| 国产一区二区三区精品视频| 亚洲欧美日韩中文字幕一区二区三区| 欧美一区二区三区色| 亚洲电影第三页| 久久婷婷国产综合精品青草| 欧美日本免费一区二区三区| 白白色 亚洲乱淫| 国产精品影视在线观看| 轻轻草成人在线| 一区二区三区欧美激情| 国产精品国产成人国产三级 | 国产麻豆成人传媒免费观看| 亚洲国产美国国产综合一区二区| 国产精品国产自产拍高清av| 国产亚洲精品精华液| 欧美刺激脚交jootjob| 欧美日韩国产123区| 99re热这里只有精品视频| 国产经典欧美精品| 国产在线视频一区二区三区| 美女精品一区二区| 日日噜噜夜夜狠狠视频欧美人| 一区二区三区四区不卡在线| 亚洲欧洲制服丝袜| 中文字幕在线一区二区三区| 国产精品女人毛片| 国产精品热久久久久夜色精品三区 | 一区二区久久久久久| 美女视频黄久久| 欧美xingq一区二区| 日韩欧美在线不卡| 日韩欧美国产综合| 日韩午夜av电影| 日韩一级完整毛片| 精品免费一区二区三区| 精品久久久久久久一区二区蜜臀| 欧美一区三区四区| 欧美一二三区精品| 日韩一卡二卡三卡| 久久久综合精品| 国产欧美精品区一区二区三区| 中文字幕欧美日本乱码一线二线 | 亚洲欧美在线高清| 亚洲码国产岛国毛片在线| 亚洲欧美色图小说| 亚洲国产毛片aaaaa无费看| 天天综合网天天综合色| 人人精品人人爱| 久久66热re国产| 国产91精品欧美| 色婷婷精品大在线视频 | 国产日产精品一区| 最新热久久免费视频| 亚洲一区中文在线| 奇米影视7777精品一区二区| 国产一区二区在线观看免费| 国产精品一区二区x88av| 99久久亚洲一区二区三区青草| 国产成人精品一区二区三区四区| 不卡视频一二三| 欧洲精品在线观看| 日韩三级.com| 国产精品国产三级国产| 日韩高清欧美激情| 国产成人午夜精品影院观看视频| 91在线观看污| 91精品国产高清一区二区三区| 久久久国产精品午夜一区ai换脸| 亚洲乱码国产乱码精品精小说| 天天色综合成人网| 国产成人a级片| 欧美日韩国产一级二级| 精品国产污污免费网站入口| 国产精品美女久久福利网站| 午夜视频在线观看一区| 国产福利精品一区二区| 欧美日韩成人激情| 国产精品视频观看| 日韩—二三区免费观看av| 成人午夜电影久久影院| 欧美精品久久久久久久多人混战| 国产欧美日韩综合| 五月婷婷另类国产| 91在线云播放| 久久综合九色欧美综合狠狠| 亚洲久草在线视频| 久久er精品视频| 在线看国产一区二区| 国产日韩欧美精品综合| 亚洲va天堂va国产va久| 国产精品99久| 欧美在线|欧美| 久久精品男人的天堂| 91视视频在线直接观看在线看网页在线看| 久久久久久久久久久黄色| 亚洲一区二区三区不卡国产欧美 | 国产电影一区在线| 亚洲精品一区二区三区影院| 一区二区三区在线不卡| 激情深爱一区二区| 欧美一区二区三区视频| 五月天一区二区| 欧美视频在线观看一区| 中文子幕无线码一区tr| 成人免费av网站| 一个色综合网站| 91精品国产综合久久久蜜臀粉嫩 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 色88888久久久久久影院按摩| 日韩欧美在线网站| 国产日产欧美一区二区视频| 一区二区三区中文免费| 韩国av一区二区三区四区| 欧美成人综合网站| 久久99久久99| 欧美日本在线播放| 亚洲电影视频在线| 欧美美女黄视频| 亚洲国产日韩在线一区模特| 在线成人午夜影院| 成人丝袜视频网| 综合欧美亚洲日本| 在线看国产一区二区| 粉嫩aⅴ一区二区三区四区| 国产色一区二区| 18涩涩午夜精品.www| 国产成人亚洲综合色影视| 自拍偷拍国产精品| 久久婷婷色综合| 久久综合色一综合色88| 国产成人三级在线观看| 成人av在线资源网站| 成人高清视频免费观看| 天天综合天天综合色| 久久爱www久久做| 国产91丝袜在线18| 久久精品亚洲乱码伦伦中文| 国内久久精品视频| 欧美不卡激情三级在线观看| 日本亚洲电影天堂| 欧美一级一级性生活免费录像| 午夜电影网亚洲视频| 欧美一级欧美一级在线播放| 蜜臀av亚洲一区中文字幕| 精品美女一区二区| 久久99国产乱子伦精品免费| 久久色成人在线| 成人av资源站| 亚洲一区二区三区激情| 91精品国产综合久久久久久漫画| 亚洲美女电影在线| 欧美曰成人黄网| 免费成人在线观看| 久久久精品日韩欧美| 不卡一卡二卡三乱码免费网站| 亚洲精品乱码久久久久| 欧美精品丝袜中出| 日本美女视频一区二区| 欧美精品一区二区在线观看| 91国产免费观看| 在线亚洲一区二区| 欧美96一区二区免费视频| 久久久午夜精品| 91视频你懂的| 日本aⅴ免费视频一区二区三区| 日韩欧美亚洲一区二区| 成人免费看片app下载| 亚洲在线免费播放| 精品日韩一区二区三区| 成人午夜电影网站| 亚洲大型综合色站| 久久精品男人天堂av| 欧美性色综合网| 国产乱码精品一区二区三区五月婷| 亚洲三级在线看| 欧美一卡2卡三卡4卡5免费| 国产成人aaa| 亚洲国产精品影院| 国产欧美日产一区| 欧美精品黑人性xxxx| 成人av网站在线观看免费| 五月天久久比比资源色| 国产亚洲福利社区一区| 欧美久久久一区| 成人免费av网站| 麻豆91免费看| 亚洲男人的天堂在线观看| 精品国精品自拍自在线| 欧美在线影院一区二区| 国产真实乱子伦精品视频| 亚洲 欧美综合在线网络| 国产精品青草久久| 精品剧情在线观看|