* fields are ignored. Should be the same as the label in the boot block.
*/
{
- .MSDOS =
+ .MSDOS_Directory =
{
- .Filename = "LUFA BOO",
- .Extension = "T ",
+ .Name = "LUFA BOOT ",
.Attributes = FAT_FLAG_VOLUME_NAME,
.Reserved = {0},
.CreationTime = 0,
.CreationDate = 0,
.StartingCluster = 0,
- .FileSizeBytes = 0,
+ .Reserved2 = 0,
}
},
* prevent corruption of systems that are unable to detect the device
* as being a legacy MSDOS style FAT12 volume to prevent corruption. */
{
- .VFAT =
+ .VFAT_LongFileName =
{
.Ordinal = FAT_ORDINAL_LAST_ENTRY | 1,
.Attribute = FAT_FLAG_LONG_FILE_NAME,
/* MSDOS file entry for the virtual Firmware image. */
{
- .MSDOS =
+ .MSDOS_File =
{
.Filename = "FIRMWARE",
.Extension = "BIN",
/* uint16_t MagicSignature; */
} FATBootBlock_t;
- /** FAT legacy 8.3 style directory entry structure definition, used to
- * identify the files and folders of FAT filesystem stored on a disk.
+ /** FAT directory entry structure, for the various kinds of File and
+ * directory descriptors on a FAT disk.
*/
typedef union
{
+ /** FAT Long File Name directory entry. */
struct
{
uint8_t Ordinal;
uint16_t Reserved2;
uint16_t Unicode12;
uint16_t Unicode13;
- } VFAT;
+ } VFAT_LongFileName;
+ /** FAT MSDOS 8.3 legacy file entry. */
struct
{
uint8_t Filename[8];
uint16_t CreationDate;
uint16_t StartingCluster;
uint32_t FileSizeBytes;
- } MSDOS;
+ } MSDOS_File;
+
+ /** FAT MSDOS (sub-)directory entry. */
+ struct
+ {
+ uint8_t Name[11];
+ uint8_t Attributes;
+ uint8_t Reserved[10];
+ uint16_t CreationTime;
+ uint16_t CreationDate;
+ uint16_t StartingCluster;
+ uint32_t Reserved2;
+ } MSDOS_Directory;
} FATDirectoryEntry_t;
/* Function Prototypes: */