[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PULL 010/100] vvfat: fix field names in FAT12/FAT16 and FA
From: |
Kevin Wolf |
Subject: |
[Qemu-block] [PULL 010/100] vvfat: fix field names in FAT12/FAT16 and FAT32 boot sectors |
Date: |
Fri, 7 Jul 2017 19:07:25 +0200 |
From: Hervé Poussineau <address@hidden>
Specification: "FAT: General overview of on-disk format" v1.03, pages 11-13
Signed-off-by: Hervé Poussineau <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>
---
block/vvfat.c | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)
diff --git a/block/vvfat.c b/block/vvfat.c
index 88d1879..676cacb 100644
--- a/block/vvfat.c
+++ b/block/vvfat.c
@@ -217,23 +217,30 @@ 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;
uint16_t flags;
uint8_t major,minor;
- uint32_t first_cluster_of_root_directory;
+ uint32_t first_cluster_of_root_dir;
uint16_t info_sector;
uint16_t backup_boot_sector;
- uint16_t ignored;
+ uint8_t reserved[12];
+ uint8_t drive_number;
+ uint8_t reserved1;
+ uint8_t signature;
+ uint32_t id;
+ uint8_t volume_label[11];
+ uint8_t fat_type[8];
+ uint8_t ignored[0x1a4];
} QEMU_PACKED fat32;
} u;
- uint8_t fat_type[8];
- uint8_t ignored[0x1c0];
uint8_t magic[2];
} QEMU_PACKED bootsector_t;
@@ -973,13 +980,13 @@ static int init_directories(BDRVVVFATState* s,
/* LATER TODO: if FAT32, this is wrong */
/* drive_number: fda=0, hda=0x80 */
bootsector->u.fat16.drive_number = s->offset_to_bootsector == 0 ? 0 : 0x80;
- bootsector->u.fat16.current_head=0;
bootsector->u.fat16.signature=0x29;
bootsector->u.fat16.id=cpu_to_le32(0xfabe1afd);
memcpy(bootsector->u.fat16.volume_label, s->volume_label,
sizeof(bootsector->u.fat16.volume_label));
- memcpy(bootsector->fat_type,(s->fat_type==12?"FAT12
":s->fat_type==16?"FAT16 ":"FAT32 "),8);
+ memcpy(bootsector->u.fat16.fat_type,
+ s->fat_type == 12 ? "FAT12 " : "FAT16 ", 8);
bootsector->magic[0]=0x55; bootsector->magic[1]=0xaa;
return 0;
--
1.8.3.1
- [Qemu-block] [PULL 000/100] Block layer patches, Kevin Wolf, 2017/07/07
- [Qemu-block] [PULL 003/100] block: Simplify use of BDRV_BLOCK_RAW, Kevin Wolf, 2017/07/07
- [Qemu-block] [PULL 004/100] blkdebug: Support .bdrv_co_get_block_status, Kevin Wolf, 2017/07/07
- [Qemu-block] [PULL 002/100] block: Guarantee that *file is set on bdrv_get_block_status(), Kevin Wolf, 2017/07/07
- [Qemu-block] [PULL 001/100] qemu-io: Don't die on second open, Kevin Wolf, 2017/07/07
- [Qemu-block] [PULL 005/100] vvfat: fix qemu-img map and qemu-img convert, Kevin Wolf, 2017/07/07
- [Qemu-block] [PULL 007/100] vvfat: fix typos, Kevin Wolf, 2017/07/07
- [Qemu-block] [PULL 008/100] vvfat: rename useless enumeration values, Kevin Wolf, 2017/07/07
- [Qemu-block] [PULL 010/100] vvfat: fix field names in FAT12/FAT16 and FAT32 boot sectors,
Kevin Wolf <=
- [Qemu-block] [PULL 011/100] vvfat: always create . and .. entries at first and in that order, Kevin Wolf, 2017/07/07
- [Qemu-block] [PULL 012/100] vvfat: correctly create long names for non-ASCII filenames, Kevin Wolf, 2017/07/07
- [Qemu-block] [PULL 009/100] vvfat: introduce offset_to_bootsector, offset_to_fat and offset_to_root_dir, Kevin Wolf, 2017/07/07
- [Qemu-block] [PULL 013/100] vvfat: correctly create base short names for non-ASCII filenames, Kevin Wolf, 2017/07/07
- [Qemu-block] [PULL 014/100] vvfat: correctly generate numeric-tail of short file names, Kevin Wolf, 2017/07/07
- [Qemu-block] [PULL 015/100] vvfat: limit number of entries in root directory in FAT12/FAT16, Kevin Wolf, 2017/07/07
- [Qemu-block] [PULL 016/100] vvfat: handle KANJI lead byte 0xe5, Kevin Wolf, 2017/07/07
- [Qemu-block] [PULL 006/100] vvfat: replace tabs by 8 spaces, Kevin Wolf, 2017/07/07
- [Qemu-block] [PULL 018/100] qemu-img: drop -e and -6 options from the 'create' & 'convert' commands, Kevin Wolf, 2017/07/07
- [Qemu-block] [PULL 020/100] blockjob: Track job ratelimits via bytes, not sectors, Kevin Wolf, 2017/07/07