#define MSDOS_SUPER_MAGIC 0x4d44 /* MD */
#define MSDOS_MAX_EXTRA 3 /* tolerate up to that number of clusters
which are
inaccessible because the FAT is too short */
/* The following fields are
only used by FAT32 */
__u32 fat32_length;
/* sectors/FAT */
__u16 flags;
/* bit 8: fat mirroring, low 4: active fat */
__u8 version[2];
/* major, minor filesystem version */
__u32 root_cluster;
/* first cluster in root directory */
__u16 info_sector;
/* filesystem info sector */
__u16 backup_boot;
/* backup boot sector */
__u16 reserved2[6];
/* Unused */
};
struct fat_boot_fsinfo {
__u32 reserved1;
/* Nothing as far as I can tell */
__u32 signature;
/* 0x61417272L */
__u32 free_clusters;
/* Free cluster count. -1 if unknown */
__u32 next_cluster;
/* Most recently allocated cluster.
* Unused under Linux. */
__u32 reserved2[4];
};
/* Up to 13 characters of the name */
struct msdos_dir_slot {
__u8 id;
/* sequence number for slot */
__u8 name0_4[10];
/* first 5 characters in name */
__u8 attr;
/* attribute byte */
__u8 reserved;
/* always 0 */
__u8 alias_checksum;
/* checksum for 8.3 alias */
__u8 name5_10[12];
/* 6 more characters in name */
__u16 start;
/* starting cluster number, 0 in long slots */
__u8 name11_12[4];
/* last 2 characters in name */
};