#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 */
};