⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fs_dev.h

📁 瑞星微公司RK27XX系列芯片的SDK开发包
💻 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 + -