|
@@ -120,14 +120,34 @@ struct fat_boot_sector {
|
|
|
__le32 hidden; /* hidden sectors (unused) */
|
|
|
__le32 total_sect; /* number of sectors (if sectors == 0) */
|
|
|
|
|
|
- /* The following fields are only used by FAT32 */
|
|
|
- __le32 fat32_length; /* sectors/FAT */
|
|
|
- __le16 flags; /* bit 8: fat mirroring, low 4: active fat */
|
|
|
- __u8 version[2]; /* major, minor filesystem version */
|
|
|
- __le32 root_cluster; /* first cluster in root directory */
|
|
|
- __le16 info_sector; /* filesystem info sector */
|
|
|
- __le16 backup_boot; /* backup boot sector */
|
|
|
- __le16 reserved2[6]; /* Unused */
|
|
|
+ union {
|
|
|
+ struct {
|
|
|
+ /* Extended BPB Fields for FAT16 */
|
|
|
+ __u8 drive_number; /* Physical drive number */
|
|
|
+ __u8 state; /* undocumented, but used
|
|
|
+ for mount state. */
|
|
|
+ /* other fiealds are not added here */
|
|
|
+ } fat16;
|
|
|
+
|
|
|
+ struct {
|
|
|
+ /* only used by FAT32 */
|
|
|
+ __le32 length; /* sectors/FAT */
|
|
|
+ __le16 flags; /* bit 8: fat mirroring,
|
|
|
+ low 4: active fat */
|
|
|
+ __u8 version[2]; /* major, minor filesystem
|
|
|
+ version */
|
|
|
+ __le32 root_cluster; /* first cluster in
|
|
|
+ root directory */
|
|
|
+ __le16 info_sector; /* filesystem info sector */
|
|
|
+ __le16 backup_boot; /* backup boot sector */
|
|
|
+ __le16 reserved2[6]; /* Unused */
|
|
|
+ /* Extended BPB Fields for FAT32 */
|
|
|
+ __u8 drive_number; /* Physical drive number */
|
|
|
+ __u8 state; /* undocumented, but used
|
|
|
+ for mount state. */
|
|
|
+ /* other fiealds are not added here */
|
|
|
+ } fat32;
|
|
|
+ };
|
|
|
};
|
|
|
|
|
|
struct fat_boot_fsinfo {
|