📄 fattypes.h
字号:
/************************************************** * * fattypes.h * * CVS ID: $Id: * Author: Michal Chlapik [ MCH ] - STM * Date: $Date: 2006/09/18 09:55:22 $ * Revision: $Revision: 1.5 $ * * Description: * * <...> * *************************************************** * * COPYRIGHT (C) ST Microelectronics 2005 * All Rights Reserved * **************************************************** * * STM CVS Log: * * $Log: FATtypes.h,v $ * Revision 1.5 2006/09/18 09:55:22 belardi * Corrected CVS keyword usage * * Revision 1.4 2006/09/18 09:24:02 belardi * Added Log CVS keyword into file header * * ***************************************************/#ifndef FATTYPES_H#define FATTYPES_H#include "OS20i.h"typedef struct{ uint32 Cluster; uint32 Byte;} ENTRY_ADDRESS;typedef struct BPB_boot_common_s{ uint8 jmpBoot0; // 00h : Jump code uint8 jmpBoot1; // 01h : Jump code uint8 jmpBoot2; // 02h : Jump code char OEMName[9]; // 03h : OEM name [8+1] uint16 BytesPerSec; // 0Bh : Bytes per sector uint8 SecPerClust; // 0Dh : Sectors per cluster uint16 RsvdSecCnt; // 0Eh : Number of reserved sectors uint8 NumFATs; // 10h : Number of copies of fat uint16 RootEntCnt; // 11h : Maximum number of root dir entries uint16 TotSec16; // 13h : Number of sectors in partition < 32MB uint8 Media; // 15h : Media descriptor uint16 FATSz16; // 16h : Sectors per FAT uint16 SecPerTrk; // 18h : Sectors per track uint16 NumHeads; // 1Ah : Number of heads uint32 HiddSec; // 1Ch : Number of hidden sectors uint32 TotSec32; // 20h : Number of sectors in partition //information not in file, but our own uint8 FATType; // FAT type uint32 FATSz32Estim; // 4 bytes at position 36, mess in FAT type determination} BPB_boot_common_t;typedef struct BPB_boot_rest_FAT_12_16_s{ uint8 DrvNum; // 24h : Logical drive number of partition uint8 BootSig; // 26h : Extended signature uint32 VolID; // 27h : Serial number of partition //char VolLab[12]; // 2Bh : Volume name of partition [11+1] char FilSysType[9]; // 36h : FAT name [8+1]} BPB_boot_rest_FAT_12_16_t;typedef struct BPB_boot_rest_FAT_32_s{ uint32 FATSz32; // 24h : Sectors per FAT uint16 ExtFlags; // 28h : number of active FAT uint16 FSVer; // 2Ah : Version number of the FAT32 volume uint32 RootClus; // 2Ch : First cluster of the root directory (2) uint16 FSInfo; // 30h : Sector number of FSINFO structure in the reserved area uint16 BkBootSec; // 32h : Sector number in the reserved area of a copy of the boot record uint8 DrvNum; // 40h : Logical drive number of partition uint8 BootSig; // 42h : Extended signature uint32 VolID; // 43h : Serial number of partition //char VolLab[12]; // 47h : Volume name of partition [11+1] char FilSysType[9]; // 52h : FAT name [8+1]} BPB_boot_rest_FAT_32_t;typedef union{ BPB_boot_rest_FAT_12_16_t BPB_boot_rest_FAT_12_16; BPB_boot_rest_FAT_32_t BPB_boot_rest_FAT_32;} BPB_boot_rest_union;typedef struct{ BPB_boot_common_t BPB_boot_common; BPB_boot_rest_union BPB_boot_rest; uint32 RootRecordLba; uint32 RootDirSec; uint32 FirstDataSector; //for Get_SectorRel uint32 LastRequiredSector_rel; boolean FirstPassGetSector_FAT; //for Get_SectorAbs uint32 LastRequiredSector_abs; boolean FirstPassGetSectorAbs_FAT; //ext filter // uint8 ExtTbl[10][3]; //M.Ch. uint32 ExtTblLen; //M.Ch.} PRIVATE_DATA_FAT;#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -