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

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

?? fat.h

?? zlg nand flash 寫平衡 在LINUX XIA
?? H
?? 第 1 頁 / 共 3 頁
字號:
/****************************************Copyright (c)**************************************************
**                               廣州周立功單片機發展有限公司
**                                     研    究    所
**                                        ARM開發組
**
**                                 http://www.zlgmcu.com
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: fat.h
**創   建   人: 陳明計
**最后修改日期: 2003年9月3日
**描        述: FAT文件系統總頭文件
**              
**--------------歷史版本信息----------------------------------------------------------------------------
** 創建人: 陳明計
** 版  本: V1.0
** 日 期: 2003年9月3日
** 描 述: 原始版本
**
**--------------當前版本修訂------------------------------------------------------------------------------
** 修改人: 陳明計
** 日 期: 2004年4月10日
** 描 述: 修改注釋
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef MAX_OPEN_FILES
#define MAX_OPEN_FILES              10          /* 可以同時打開的文件數目 */
#endif

#ifndef DISK_CACHE_SIZE
#define DISK_CACHE_SIZE             512         /* 文件系統Cache大小(字節),應當是最大的扇區所占字節數 */
#endif

#ifndef MAX_DISK_CACHES
#define MAX_DISK_CACHES             256         /* 文件系統Cache數目,必須為16的整數倍 */
#endif

#define BASE_CACHE_NUM              4

#ifndef MAX_DRIVES
#define MAX_DRIVES                  1           /* 可以同時加載的邏輯驅動器數目 */
#endif

#ifndef MAX_PATHFILE_LENGTHS
#define MAX_PATHFILE_LENGTHS        512         /* 字符串的長度 */
#endif

#ifndef RW_ID_BASE
#define RW_ID_BASE                  0x20        /* 用于cache分配策略,越大cache越不易寫回磁盤 */
#endif

#if MAX_OPEN_FILES < 0x100
typedef uint8 HANDLE;
#define Not_Open_FILE               0xff
#else
#if MAX_OPEN_FILES < 0x10000
typedef uint16 HANDLE;
#define Not_Open_FILE               0xffff
#else
typedef uint32 HANDLE;
#define Not_Open_FILE               0xffffffff
#endif
#endif

#define ZLG_FS_VER                  110

/* 底層驅動命令 */
#define DISK_INIT                   0       /* 初始化,必須實現             */
#define DISK_CLOSE                  1       /* 關閉,必須實現               */
#define DISK_READ_SECTOR            2       /* 讀扇區,必須實現             */
#define DISK_WRITE_SECTOR           3       /* 寫扇區,必須實現             */
#define DISK_DRIVER_VER             4       /* 查看驅動程序版本號,必須實現 */
#define DISK_CHECK_CMD              5       /* 查看命令是否實現,必須實現   */
#define DISK_LOW_FORMAT             6       /* 低級格式化,可選命令         */
#define DISK_FREE_SECTOR            7       /* 釋放扇區,可選命令           */
#define DISK_GET_SECTOR_NUMBER      8       /* 獲得設備總扇區數,可選命令   */
#define DISK_GET_BYTES_PER_SECTOR   9       /* 獲得每扇區字節數,可選命令   */
#define DISK_CHECK_CHANGE           10      /* 查看介質是否改變,可選命令   */
#define DISK_GET_SECTORS_PER_BLOCK  11      /* 獲取每塊扇區數,可選命令     */
#define DISK_READ_BLOCK             12      /* 讀數據塊,可選命令           */
#define DISK_WRITE_BLOCK            13      /* 寫數據塊,可選命令           */

/* 底層驅動返回值 */
#define DISK_RETURN_OK              0x00
#define DISK_READ_OK                0x01
#define DISK_READ_NOT_OK            0x80
#define DISK_WRITE_OK               0x02
#define DISK_WRITE_NOT_OK           0x82
#define DISK_INIT_OK                0x03
#define DISK_INIT_NOT_OK            0x83
#define DISK_TRUE                   0x04
#define DISK_FALSE                  0x84
#define BAD_DISK_COMMAND            0xffff

/* 函數返回值 */
#define RETURN_OK                   0x00    /* 操作成功         */
#define NOT_FIND_DISK               0x01    /* 邏輯盤不存在     */
#define DISK_FULL                   0x02    /* 邏輯盤滿         */
#define SECTOR_NOT_IN_CACHE         0x03    /* 扇區沒有被cache  */
#define NOT_EMPTY_CACHE             0x04    /* 沒有空閑cache    */
#define SECTOR_READ_ERR             0x05    /* 讀扇區錯誤       */
#define CLUSTER_NOT_IN_DISK         0x06    /* 邏輯盤中沒有此簇  */
#define NOT_FIND_FDT                0x07    /* 沒有發現文件(目錄)*/
#define NOT_FAT_DISK                0x08    /* 非FAT文件系統    */
#define FDT_OVER                    0x09    /* FDT索引超出范圍  */
#define FDT_EXISTS                  0x0a    /* 文件(目錄)已經存在*/
#define ROOT_FDT_FULL               0x0b    /* 根目錄滿         */
#define DIR_EMPTY                   0x0C    /* 目錄空           */
#define DIR_NOT_EMPTY               0x0d    /* 目錄不空         */
#define PATH_NOT_FIND               0x0e    /* 路徑未找到       */
#define FAT_ERR                     0x0f    /* FAT表錯誤       */
#define FILE_NAME_ERR               0x10    /* 文件(目錄)名錯誤 */
#define FILE_EOF                    0x11    /* 文件結束        */
#define FILE_LOCK                   0x12    /* 文件被鎖定       */
#define NOT_FIND_FILE               0x13    /* 沒有發現指定文件 */
#define NOT_FIND_DIR                0x14    /* 沒有發現指定目錄 */
#define GET_TIME_ERR                0x15    /* 獲取時間錯誤 */
#define DISK_NO_FORMAT              0x16    /* 邏輯盤沒有格式化 */
#define NOT_RUN                     0xfd    /* 命令未執行       */
#define BAD_COMMAND                 0xfe    /* 錯誤命令       */
#define PARAMETER_ERR               0xff    /* 非法參數        */

/* 未使用的邏輯盤  */
#define EMPTY_DRIVE                 0xff
#define UN_MOUNT_DRIVE              0xfe

/* FAT類型 */
#define FAT12                       0
#define FAT16                       1
#define FAT32                       2

/* FDT文件屬性 */
#define ATTR_READ_ONLY              0x01
#define ATTR_HIDDEN                 0x02
#define ATTR_SYSTEM                 0x04
#define ATTR_VOLUME_ID              0x08
#define ATTR_DIRECTORY              0x10
#define ATTR_ARCHIVE                0x20

/* 簇類型 */
#define EMPTY_CLUS                  0
#define EMPTY_CLUS_1                1
#define BAD_CLUS                    0x0ffffff7L
#define EOF_CLUS_1                  0x0ffffff8L
#define EOF_CLUS_END                0x0fffffffL

/* FDT類型 */
#define EMPTY_FDT                   0
#define DEL_FDT                     ((char)(0xe5))
#define ESC_FDT                     0x05

/* Cache狀態 */
#define CACHE_READED                0x02
#define CACHE_WRITED                0x01

/* 文件指針狀態 */
#define FILE_FLAGS_READ             1 << 0          /* 可讀 */
#define FILE_FLAGS_WRITE            1 << 1          /* 可寫 */

/* 文件指針調整方式 */
#define SEEK_SET    0               /* 從文件開始處移動文件指針 */
#define SEEK_CUR    1               /* 從文件當前位置移動文件指針 */
#define SEEK_END    2               /* 從文件尾移動文件指針 */


/* 給底層驅動讀寫命令的參數結構體 */
typedef struct _Disk_RW_Parameter
{
    uint32      SectorIndex;    /* 操作的扇區 */
    void        *RsvdForLow;    /* 保留給底層驅動程序,由_Disk_Info中拷貝過來 */
    uint8       *Buf;           /* 數據存儲位置 */
}Disk_RW_Parameter;

/* 文件系統cache數據結構 */
typedef struct _Disk_Cache
{
    uint8       Drive;          /* 驅動器號,EMPTY_DRIVE為空閑 */
    uint8       Flag;           /* 狀態 */
    uint16      RW_ID;          /* 讀寫ID,用于釋放Cache */
    uint32      SecIndex;       /* 緩沖的扇區索引 */
    uint8       buf[DISK_CACHE_SIZE];
                                /* 緩沖區 */
}Disk_cache;

/* 邏輯盤信息的數據結構 */
typedef struct _Disk_Info
{
    uint8       Drive;          /* 邏輯驅動器號,EMPTY_DRIVE為還未分配 */
    uint8       FATType;        /* 類型:FAT12、FAT16和FAT32 */
    uint8       SecPerClus;     /* 每簇扇區數 */
    uint8       NumFATs;        /* FAT表數目 */

    uint16      BytsPerSec;     /* 每扇區字節數 */
    uint32      SecPerDisk;     /* 邏輯驅動器包含扇區數 */
    uint32      RootDirTable;   /* 根目錄開始扇區號(FAT32為開始簇號)*/
    uint32      RootSecCnt;     /* 根目錄占用扇區數 */
    uint32      FATStartSec;    /* FAT表開始扇區號 */
    uint32      FATSecCnt;      /* 每個FAT占用扇區數 */
    uint32      DataStartSec;   /* 數據區開始扇區號 */
    uint32      ClusPerData;    /* 數據區包含簇數 */
    uint32      PathClusIndex;  /* 當前路徑的FDT表開始簇號, 0為根目錄 */

    uint32      SecOffset;      /* 分區起始位置 */

    void        *RsvdForLow;    /* 保留給底層驅動程序 */
    
    uint16      (* DiakCommand)(uint8 Cammand, void *Parameter);
                                /* 對應的驅動程序 */
}Disk_Info;

/* 目錄表數據結構 */
typedef struct _FDT
{
    char    Name[11];           /* 短文件名主文件名 */
    uint8   Attr;               /* 文件屬性 */
    uint8   NTRes;              /* 保留給NT */
    uint8   CrtTimeTenth;       /* 建立時間(fat16保留)*/
    uint16  CrtTime;            /* 建立時間(fat16保留)*/
    uint16  CrtDate;            /* 建立日期(fat16保留)*/
    uint16  LstAccDate;         /* 最后訪問日期(fat16保留)*/
    uint16  FstClusHI;          /* 起始簇號高兩個字節(fat16保留)*/
    uint16  WrtTime;            /* 最后寫時間 */
    uint16  WrtDate;            /* 最后寫日期 */
    uint16  FstClusLO;          /* 起始簇(cluster)號低兩個字節 */
    uint32  FileSize;           /* 文件大小 */
} FDT;

/* 文件信息結構體 */
typedef struct _FILE
{
    uint8       Flags;          /* 一些標志 */
    char        Name[11];       /* 文件名 */
    uint8       Drive;          /* 文件所在磁盤 */
    uint32      DirClus;        /* 所在目錄開始簇號 */
    uint32      FileSize;       /* 文件大小 */
    uint32      FstClus;        /* 起始簇號 */
    uint32      Clus;           /* 當前簇號 */
    uint32      Offset;         /* 文件指針偏移量 */
} MY_FILE;



/* 用戶設置的時間格式 */
typedef struct _DATE_TIME
{
    uint16  da_year;	        /* 公元年 */
    uint8   da_mon;	            /* 月 */ 
    uint8   da_day;	            /* 月中日期 */
    uint8   da_dow;	            /* 星期中日期 */
   
    uint8   ti_hour;	        /* 時 */
    uint8   ti_min;  	        /* 分 */
    uint8   ti_sec;	            /* 秒 */
    uint8   ti_hund;	        /* 百分之一秒 */
}DATE_TIME;


/* 與FS接口的時間格式,與FDT項匹配 */
typedef  struct _SYS_TIME
{
/* 日期:位0~4:日,有效值1~31;位5~8:月,有效值1~12;*/
/*       位9~15:年,從1980年開始的年數,有效值0~127 */
    uint16  date;

/* 時間:位0~4:2秒的數量;位5~10:分,有效值0~59;位11~15:時,有效值0~23 */
    uint16  time;

/* 十分之一秒值,有效值0~199 */
    uint8   msec;	
}SYS_TIME;


/*******************************************************************************************************/


#ifndef IN_FILE

extern void FileInit(void);
/*********************************************************************************************************
** 函數名稱: FileInit
** 功能描述: 初始化文件指針系統
**
** 輸 入: 無
**
** 輸 出: 無
**         
** 全局變量: 無
** 調用模塊: 無
********************************************************************************************************/

extern uint8 RemoveFile(char *DirFileName);
/*********************************************************************************************************
** 函數名稱: RemoveFile
** 功能描述: 刪除文件
**
** 輸 入: DirFileName:用戶使用的文件名
**
** 輸 出: RETURN_OK:成功
**        其它參考fat.h中關于返回值的說明
** 全局變量: 無
** 調用模塊: strupr,_GetFileInfo,GetDrive,FindFDTInfo,FATDelClusChain,DelFDT
********************************************************************************************************/

extern HANDLE FileOpen(char *DirFileName, char *Type);
/*********************************************************************************************************
** 函數名稱: FileOpen
** 功能描述: 以指定方式打開文件
**
** 輸 入: DirFileName:用戶使用的文件名
**        Type:打開方式
** 輸 出: 文件句柄,Not_Open_FILE為不能打開
**         
** 全局變量: 無
** 調用模塊: _FileOpenR,_FileOpenW,_FileOpenRW
********************************************************************************************************/

extern uint8 FileClose(HANDLE Handle);
/*********************************************************************************************************
** 函數名稱: FileClose
** 功能描述: 關閉指定文件
**
** 輸 入: Handle:文件句柄
**
** 輸 出: RETURN_OK:成功
**        其它參考fat.h中關于返回值的說明 
** 全局變量: 無
** 調用模塊: 無
********************************************************************************************************/

extern uint8 FileGetCh(uint8 *Ch, HANDLE Handle);
/*********************************************************************************************************
** 函數名稱: FileGetCh
** 功能描述: 從文件讀一個字節
**
** 輸 入: Ch:返回讀到的數據
**        Handle:文件句柄
** 輸 出: RETURN_OK:成功
**        其它參考fat.h中關于返回值的說明 
** 全局變量: 無
** 調用模塊: 無
********************************************************************************************************/

extern uint32 FileRead(void *Buf, uint32 Size, HANDLE Handle);
/*********************************************************************************************************
** 函數名稱: FileRead
** 功能描述: 讀取文件
**
** 輸 入: Buf:保存讀回的數據
**        Size:要讀的字節數
**        Handle:文件句柄
** 輸 出: 實際讀到的字節數
**         
** 全局變量: 無
** 調用模塊: 無
********************************************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产v综合v亚洲欧| |精品福利一区二区三区| 欧美激情在线一区二区三区| 亚洲欧美二区三区| 经典三级视频一区| 欧美在线制服丝袜| 中文字幕精品综合| 国内精品写真在线观看| 欧美无砖专区一中文字| 中文字幕中文字幕在线一区| 久久99精品国产.久久久久久| 91福利在线看| 亚洲同性gay激情无套| 国产自产高清不卡| 在线播放国产精品二区一二区四区| 国产亚洲视频系列| 久99久精品视频免费观看| 欧美亚洲免费在线一区| 亚洲色图制服丝袜| 成人免费av在线| 久久久久九九视频| 国产真实乱对白精彩久久| 在线观看91av| 视频一区中文字幕| 欧美日产在线观看| 日本亚洲免费观看| 欧美一级欧美一级在线播放| 午夜av一区二区三区| 欧美色电影在线| 午夜精品久久久久久久久| 在线看不卡av| 性做久久久久久免费观看| 欧美日韩一区二区三区视频| 亚洲图片欧美色图| 日本久久电影网| 亚洲成人精品一区二区| 欧美三电影在线| 天堂一区二区在线免费观看| 91精品欧美综合在线观看最新| 亚洲观看高清完整版在线观看| 在线观看国产日韩| 香蕉乱码成人久久天堂爱免费| 欧美另类久久久品| 麻豆91精品视频| 久久你懂得1024| 不卡电影免费在线播放一区| 成人免费在线视频观看| 色系网站成人免费| 亚洲福利电影网| wwwwww.欧美系列| 成人性生交大片免费看中文| 最新国产精品久久精品| 91福利视频在线| 九色综合狠狠综合久久| 欧美激情综合在线| 欧洲色大大久久| 美女诱惑一区二区| 国产精品二三区| 91麻豆精品国产91| 丁香六月综合激情| 亚洲综合免费观看高清完整版| 欧美区视频在线观看| 精品午夜久久福利影院| 亚洲三级在线看| 欧美一级艳片视频免费观看| 成人18精品视频| 日韩在线一二三区| 亚洲国产激情av| 91精品欧美综合在线观看最新| 激情丁香综合五月| 亚洲一二三四在线| 国产亚洲欧美日韩在线一区| 色视频一区二区| 国产一区不卡精品| 香蕉av福利精品导航| 国产精品理伦片| 欧美一区二区三区小说| 不卡电影免费在线播放一区| 美腿丝袜亚洲色图| 洋洋av久久久久久久一区| 久久亚洲捆绑美女| 欧美日韩精品一区二区三区蜜桃| 国产精品一区二区三区99| 首页国产欧美日韩丝袜| 亚洲人成网站在线| 国产欧美1区2区3区| 日韩欧美电影在线| 欧美人xxxx| 日本韩国欧美一区| 成人av电影在线观看| 国产原创一区二区| 蜜桃精品视频在线| 性欧美大战久久久久久久久| 亚洲免费观看高清完整版在线观看 | 综合久久综合久久| 久久综合网色—综合色88| 欧美日本在线一区| 欧美日韩在线直播| 91久久免费观看| av电影在线观看一区| 成人激情免费网站| 岛国av在线一区| 国产精品综合网| 国产伦精品一区二区三区视频青涩| 视频一区欧美日韩| 亚洲福利视频导航| 亚洲成av人片在线观看无码| 亚洲精品亚洲人成人网在线播放| 国产欧美日韩另类一区| 国产午夜精品一区二区| 精品人伦一区二区色婷婷| 日韩欧美一区中文| 欧美大白屁股肥臀xxxxxx| 在线播放91灌醉迷j高跟美女| 欧美三级日韩三级| 欧美妇女性影城| 欧美一区二区三区喷汁尤物| 欧美日韩国产另类不卡| 欧美浪妇xxxx高跟鞋交| 538在线一区二区精品国产| 欧美日韩视频在线观看一区二区三区 | 国产精品毛片高清在线完整版| 久久久久久久久久久久久久久99| 日韩一级精品视频在线观看| 日韩欧美在线网站| 国产欧美精品区一区二区三区| 国产亚洲婷婷免费| 亚洲免费毛片网站| 亚洲成人tv网| 久久99精品久久久久久久久久久久| 激情综合网av| 国产91精品精华液一区二区三区 | 在线看国产一区| 欧美猛男gaygay网站| 91麻豆精品国产自产在线| 精品日本一线二线三线不卡| 欧美高清在线一区二区| 亚洲一区自拍偷拍| 麻豆精品一区二区| 99国产精品久久久久| 欧美日韩亚洲综合一区| 久久久五月婷婷| 亚洲色图另类专区| 另类的小说在线视频另类成人小视频在线| 久久国内精品视频| 99视频精品免费视频| 欧美绝品在线观看成人午夜影视| 欧美本精品男人aⅴ天堂| 中文字幕一区二区三区在线播放| 亚洲第一成年网| 国产99久久久国产精品免费看 | 亚洲高清久久久| 狠狠色综合色综合网络| 95精品视频在线| 51精品国自产在线| 亚洲欧洲另类国产综合| 日日摸夜夜添夜夜添国产精品| 国产精品88888| 欧美日韩国产片| ●精品国产综合乱码久久久久| 午夜精品影院在线观看| 99久久er热在这里只有精品15| 91精品综合久久久久久| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 国产在线精品国自产拍免费| 色视频一区二区| 欧美激情一区二区三区在线| 日韩av在线免费观看不卡| 91麻豆精东视频| 国产婷婷精品av在线| 青娱乐精品在线视频| 91丝袜国产在线播放| 久久久亚洲精华液精华液精华液| 亚洲福利视频三区| 91啪九色porn原创视频在线观看| 精品999在线播放| 午夜不卡在线视频| 欧美日韩一区小说| 亚洲欧美电影一区二区| www.在线欧美| 久久久亚洲精品石原莉奈| 久久国产乱子精品免费女| 欧美日韩久久一区| 亚洲在线视频网站| 91老师片黄在线观看| 欧美精彩视频一区二区三区| 国内精品写真在线观看| 欧美大片顶级少妇| 蜜臀久久久99精品久久久久久| 欧洲一区二区三区在线| 一片黄亚洲嫩模| 色综合视频在线观看| 欧美激情资源网| 不卡电影一区二区三区| 中文字幕中文字幕在线一区| av不卡一区二区三区| 中文字幕av一区二区三区| 国产成人精品免费| 国产精品免费aⅴ片在线观看| 粉嫩一区二区三区性色av|