📄 fs_dev.h
字号:
/*
$Log: Fs_dev.h,v $
Revision 1.3 2007/12/12 02:39:04 Fangzhenfu
文件系统更新! FLASH 底层更新!
Revision 1.2 2007/10/08 02:58:13 Lingzhaojun
添加版本自动注释脚本
*/
#ifndef _FS_DEV_H_
#define _FS_DEV_H_
#include "fs_comm.h"
typedef struct tagFS_CACHE_DATA
{
int flag;
uint8* pBuffer;
uint32 SectorNo;
}FS_CACHE_DATA;
typedef struct tagFS_CACHE
{
FS_CACHE_DATA *pCacheData;
int Item;
int Count;
}FS_CACHE;
typedef struct tagFSDEVICETYPE
{
const char *name;
const char *pVolumeLable;
int (*pfGetStatus)(void);
int (*pfRead)(uint32 SecNum, uint32 SecCount, void *pBuf);
int (*pfWrite)(uint32 SecNum, uint32 SecCount, void *pBuf);
int (*pfIoCtl)(uint32 cmd, uint32 arg, void *pBuf);
int (*pfInitMedium)(void);
FS_CACHE *pFatCache;
FS_CACHE *pFdtCache;
FS_CACHE *pDataCache;
}FS_DEVICE_TYPE;
typedef __packed struct tagSubDir
{
uint32 TotalFile;
uint32 TotalSubDir;
uint32 CurDirNum;
char DirName[11]; //短目录名占用11个字符
char LongDirName[FS_MAX_FILENAME_LEN]; //长目录名
}FS_SubDir, *pFS_SubDir;
/* BIOS parameter block (FAT12/FAT16) */
typedef struct tagFS_FAT_INFO
{
uint8 Valid;
uint8 FATType;
uint8 LogSecPerClus;
uint8 NumFATs;
uint8 SecPerClus;
uint16 BytsPerSec;
uint16 ResvdSecCnt;
uint16 RootEntCnt;
uint32 RootClus;
uint32 FSInfo;
uint32 FATSz;
uint32 RootDirSectors;
uint32 FirstDataSector;
uint32 PBRSector;
uint32 PathClus;
uint32 TotClus;
uint32 TotSec;
uint32 FreeClus;
FS_SubDir DirInfo[FS_MAX_DIR_DEPTH]; //目录结构体信息
uint8 DirDeep;
}FS_FAT_INFO, *PFS_FAT_INFO;
//目录项连接结构体
typedef struct tagFDT_DATA
{
uint32 DirClus; //目录首簇
uint32 CurClus; //当前簇号
uint16 Cnt; //计数簇链
} FS_FDT_DATA;
typedef struct tagFSVOLUME
{
const FS_DEVICE_TYPE *pDev;
FS_FAT_INFO FatInfo;
FS_FDT_DATA FdtData;
uint32 PartitionStartSec;
uint8 IsMounted;
} FS_VOLUME;
typedef struct tagDISKINFO
{
const char *pVolumeLable;
uint32 DiskSizeKB; //KB 为单位的磁盘容量
uint8 DiskType; //磁盘格式 目录只支持 FS_FAT12、FS_FAT16、FS_FAT32
}FS_DISK_INFO;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -