//\r
// Definitions\r
//\r
-#define FAT_ATTR_READ_ONLY 0x01\r
-#define FAT_ATTR_HIDDEN 0x02\r
-#define FAT_ATTR_SYSTEM 0x04\r
-#define FAT_ATTR_VOLUME_ID 0x08\r
-#define FAT_ATTR_DIRECTORY 0x10\r
-#define FAT_ATTR_ARCHIVE 0x20\r
-#define FAT_ATTR_LFN (FAT_ATTR_READ_ONLY | FAT_ATTR_HIDDEN | FAT_ATTR_SYSTEM | FAT_ATTR_VOLUME_ID)\r
-\r
-#define FAT_CLUSTER_SPECIAL ((MAX_UINT32 &~0xF) | 0x7)\r
-#define FAT_CLUSTER_FREE 0\r
-#define FAT_CLUSTER_RESERVED (FAT_CLUSTER_SPECIAL)\r
-#define FAT_CLUSTER_BAD (FAT_CLUSTER_SPECIAL)\r
-#define FAT_CLUSTER_LAST (-1)\r
-\r
-#define DELETE_ENTRY_MARK 0xE5\r
-#define EMPTY_ENTRY_MARK 0x00\r
-\r
-#define FAT_CLUSTER_FUNCTIONAL(Cluster) (((Cluster) == 0) || ((Cluster) >= FAT_CLUSTER_SPECIAL))\r
-#define FAT_CLUSTER_END_OF_CHAIN(Cluster) ((Cluster) > (FAT_CLUSTER_SPECIAL))\r
+#define FAT_ATTR_READ_ONLY 0x01\r
+#define FAT_ATTR_HIDDEN 0x02\r
+#define FAT_ATTR_SYSTEM 0x04\r
+#define FAT_ATTR_VOLUME_ID 0x08\r
+#define FAT_ATTR_DIRECTORY 0x10\r
+#define FAT_ATTR_ARCHIVE 0x20\r
+#define FAT_ATTR_LFN (FAT_ATTR_READ_ONLY | FAT_ATTR_HIDDEN | FAT_ATTR_SYSTEM | FAT_ATTR_VOLUME_ID)\r
+\r
+#define FAT_CLUSTER_SPECIAL ((MAX_UINT32 &~0xF) | 0x7)\r
+#define FAT_CLUSTER_FREE 0\r
+#define FAT_CLUSTER_RESERVED (FAT_CLUSTER_SPECIAL)\r
+#define FAT_CLUSTER_BAD (FAT_CLUSTER_SPECIAL)\r
+#define FAT_CLUSTER_LAST (-1)\r
+\r
+#define DELETE_ENTRY_MARK 0xE5\r
+#define EMPTY_ENTRY_MARK 0x00\r
+\r
+#define FAT_CLUSTER_FUNCTIONAL(Cluster) (((Cluster) == 0) || ((Cluster) >= FAT_CLUSTER_SPECIAL))\r
+#define FAT_CLUSTER_END_OF_CHAIN(Cluster) ((Cluster) > (FAT_CLUSTER_SPECIAL))\r
\r
//\r
// Directory Entry\r
#pragma pack(1)\r
\r
typedef struct {\r
- UINT16 Day : 5;\r
- UINT16 Month : 4;\r
- UINT16 Year : 7; // From 1980\r
+ UINT16 Day : 5;\r
+ UINT16 Month : 4;\r
+ UINT16 Year : 7; // From 1980\r
} FAT_DATE;\r
\r
typedef struct {\r
- UINT16 DoubleSecond : 5;\r
- UINT16 Minute : 6;\r
- UINT16 Hour : 5;\r
+ UINT16 DoubleSecond : 5;\r
+ UINT16 Minute : 6;\r
+ UINT16 Hour : 5;\r
} FAT_TIME;\r
\r
typedef struct {\r
- FAT_TIME Time;\r
- FAT_DATE Date;\r
+ FAT_TIME Time;\r
+ FAT_DATE Date;\r
} FAT_DATE_TIME;\r
\r
typedef struct {\r
- CHAR8 FileName[11]; // 8.3 filename\r
- UINT8 Attributes;\r
- UINT8 CaseFlag;\r
- UINT8 CreateMillisecond; // (creation milliseconds - ignored)\r
- FAT_DATE_TIME FileCreateTime;\r
- FAT_DATE FileLastAccess;\r
- UINT16 FileClusterHigh; // >= FAT32\r
- FAT_DATE_TIME FileModificationTime;\r
- UINT16 FileCluster;\r
- UINT32 FileSize;\r
+ CHAR8 FileName[11]; // 8.3 filename\r
+ UINT8 Attributes;\r
+ UINT8 CaseFlag;\r
+ UINT8 CreateMillisecond; // (creation milliseconds - ignored)\r
+ FAT_DATE_TIME FileCreateTime;\r
+ FAT_DATE FileLastAccess;\r
+ UINT16 FileClusterHigh; // >= FAT32\r
+ FAT_DATE_TIME FileModificationTime;\r
+ UINT16 FileCluster;\r
+ UINT32 FileSize;\r
} FAT_DIRECTORY_ENTRY;\r
\r
#pragma pack()\r
#pragma pack(1)\r
\r
typedef struct {\r
-\r
- UINT8 Ia32Jump[3];\r
- CHAR8 OemId[8];\r
-\r
- UINT16 SectorSize;\r
- UINT8 SectorsPerCluster;\r
- UINT16 ReservedSectors;\r
- UINT8 NoFats;\r
- UINT16 RootEntries; // < FAT32, root dir is fixed size\r
- UINT16 Sectors;\r
- UINT8 Media; // (ignored)\r
- UINT16 SectorsPerFat; // < FAT32\r
- UINT16 SectorsPerTrack; // (ignored)\r
- UINT16 Heads; // (ignored)\r
- UINT32 HiddenSectors; // (ignored)\r
- UINT32 LargeSectors; // => FAT32\r
- UINT8 PhysicalDriveNumber; // (ignored)\r
- UINT8 CurrentHead; // holds boot_sector_dirty bit\r
- UINT8 Signature; // (ignored)\r
- CHAR8 Id[4];\r
- CHAR8 FatLabel[11];\r
- CHAR8 SystemId[8];\r
-\r
+ UINT8 Ia32Jump[3];\r
+ CHAR8 OemId[8];\r
+\r
+ UINT16 SectorSize;\r
+ UINT8 SectorsPerCluster;\r
+ UINT16 ReservedSectors;\r
+ UINT8 NoFats;\r
+ UINT16 RootEntries; // < FAT32, root dir is fixed size\r
+ UINT16 Sectors;\r
+ UINT8 Media; // (ignored)\r
+ UINT16 SectorsPerFat; // < FAT32\r
+ UINT16 SectorsPerTrack; // (ignored)\r
+ UINT16 Heads; // (ignored)\r
+ UINT32 HiddenSectors; // (ignored)\r
+ UINT32 LargeSectors; // => FAT32\r
+ UINT8 PhysicalDriveNumber; // (ignored)\r
+ UINT8 CurrentHead; // holds boot_sector_dirty bit\r
+ UINT8 Signature; // (ignored)\r
+ CHAR8 Id[4];\r
+ CHAR8 FatLabel[11];\r
+ CHAR8 SystemId[8];\r
} PEI_FAT_BOOT_SECTOR;\r
\r
typedef struct {\r
-\r
- UINT8 Ia32Jump[3];\r
- CHAR8 OemId[8];\r
-\r
- UINT16 SectorSize;\r
- UINT8 SectorsPerCluster;\r
- UINT16 ReservedSectors;\r
- UINT8 NoFats;\r
- UINT16 RootEntries; // < FAT32, root dir is fixed size\r
- UINT16 Sectors;\r
- UINT8 Media; // (ignored)\r
- UINT16 SectorsPerFat; // < FAT32\r
- UINT16 SectorsPerTrack; // (ignored)\r
- UINT16 Heads; // (ignored)\r
- UINT32 HiddenSectors; // (ignored)\r
- UINT32 LargeSectors; // Used if Sectors==0\r
- UINT32 LargeSectorsPerFat; // FAT32\r
- UINT16 ExtendedFlags; // FAT32 (ignored)\r
- UINT16 FsVersion; // FAT32 (ignored)\r
- UINT32 RootDirFirstCluster; // FAT32\r
- UINT16 FsInfoSector; // FAT32\r
- UINT16 BackupBootSector; // FAT32\r
- UINT8 Reserved[12]; // FAT32 (ignored)\r
- UINT8 PhysicalDriveNumber; // (ignored)\r
- UINT8 CurrentHead; // holds boot_sector_dirty bit\r
- UINT8 Signature; // (ignored)\r
- CHAR8 Id[4];\r
- CHAR8 FatLabel[11];\r
- CHAR8 SystemId[8];\r
-\r
+ UINT8 Ia32Jump[3];\r
+ CHAR8 OemId[8];\r
+\r
+ UINT16 SectorSize;\r
+ UINT8 SectorsPerCluster;\r
+ UINT16 ReservedSectors;\r
+ UINT8 NoFats;\r
+ UINT16 RootEntries; // < FAT32, root dir is fixed size\r
+ UINT16 Sectors;\r
+ UINT8 Media; // (ignored)\r
+ UINT16 SectorsPerFat; // < FAT32\r
+ UINT16 SectorsPerTrack; // (ignored)\r
+ UINT16 Heads; // (ignored)\r
+ UINT32 HiddenSectors; // (ignored)\r
+ UINT32 LargeSectors; // Used if Sectors==0\r
+ UINT32 LargeSectorsPerFat; // FAT32\r
+ UINT16 ExtendedFlags; // FAT32 (ignored)\r
+ UINT16 FsVersion; // FAT32 (ignored)\r
+ UINT32 RootDirFirstCluster; // FAT32\r
+ UINT16 FsInfoSector; // FAT32\r
+ UINT16 BackupBootSector; // FAT32\r
+ UINT8 Reserved[12]; // FAT32 (ignored)\r
+ UINT8 PhysicalDriveNumber; // (ignored)\r
+ UINT8 CurrentHead; // holds boot_sector_dirty bit\r
+ UINT8 Signature; // (ignored)\r
+ CHAR8 Id[4];\r
+ CHAR8 FatLabel[11];\r
+ CHAR8 SystemId[8];\r
} PEI_FAT_BOOT_SECTOR_EX;\r
\r
#pragma pack()\r