Am 15.05.2017 um 22:31 hat Hervé Poussineau geschrieben:
> Specification: "FAT: General overview of on-disk format" v1.03, page 11
> Signed-off-by: Hervé Poussineau <hpous...@reactos.org>
> ---
>  block/vvfat.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/block/vvfat.c b/block/vvfat.c
> index f60d2a3889..348cffe1c4 100644
> --- a/block/vvfat.c
> +++ b/block/vvfat.c
> @@ -218,10 +218,12 @@ typedef struct bootsector_t {
>      union {
>          struct {
>              uint8_t drive_number;
> -            uint8_t current_head;
> +            uint8_t reserved1;
>              uint8_t signature;
>              uint32_t id;
>              uint8_t volume_label[11];
> +            uint8_t fat_type[8];
> +            uint8_t ignored[0x1c0];
>          } QEMU_PACKED fat16;
>          struct {
>              uint32_t sectors_per_fat;
> @@ -233,8 +235,6 @@ typedef struct bootsector_t {
>              uint16_t ignored;
>          } QEMU_PACKED fat32;
>      } u;
> -    uint8_t fat_type[8];
> -    uint8_t ignored[0x1c0];
>      uint8_t magic[2];
>  } QEMU_PACKED bootsector_t;

At least, this makes it clear that .fat16 and .fat32 aren't the same
length. But maybe it would be cleaner to have a third union member
uint8_t bytes[0x1da] (if I calculated correctly) instead of relying on
the .fat16 branch to extend the space for .fat32?

Kevin

Reply via email to