20#ifndef PED_FAT_BOOTSECTOR_H
21#define PED_FAT_BOOTSECTOR_H
28#define FAT32_INFO_MAGIC1 0x41615252
29#define FAT32_INFO_MAGIC2 0x61417272
30#define FAT32_INFO_MAGIC3 0xaa55
34#define FAT_BOOT_MESSAGE \
35"This partition does not have an operating system loader installed on it.\n\r"\
36"Press a key to reboot..."
38#define FAT_BOOT_JUMP "\xeb\x58\x90"
40#define FAT_BOOT_CODE "\x0e" \
60struct __attribute__ ((packed)) _FatBootSector {
74 uint32_t sector_count;
76 union __attribute__ ((packed)) {
78 struct __attribute__ ((packed)) {
81 uint8_t ext_signature;
82 uint32_t serial_number;
88 struct __attribute__ ((packed)) {
92 uint32_t root_dir_cluster;
94 uint16_t backup_sector;
97 uint8_t ext_signature;
98 uint32_t serial_number;
100 uint8_t fat_name [8];
108struct __attribute__ ((packed)) _FatInfoSector {
109 uint32_t signature_1;
111 uint32_t signature_2;
112 uint32_t free_clusters;
113 uint32_t next_cluster;
114 uint8_t unused2 [0xe];
115 uint16_t signature_3;
char unused[172]
Definition bsd.c:2
char boot_code[64]
Definition bsd.c:0
uint16_t volume_name[F2FS_MAX_VOLUME_NAME]
Definition f2fs.h:28
struct _FatInfoSector FatInfoSector
Definition bootsector.h:24
struct _FatBootSector FatBootSector
Definition bootsector.h:23
int fat_boot_sector_read(FatBootSector **bs, const PedGeometry *geom)
Definition bootsector.c:39
FatType fat_boot_sector_probe_type(const FatBootSector *bs, const PedGeometry *geom)
Definition bootsector.c:90
int fat_boot_sector_analyse(FatBootSector *bs, PedFileSystem *fs)
Definition bootsector.c:139
enum _FatType FatType
Definition fat.h:49
unsigned char reserved
Definition fdasd.h:2
struct _PedFileSystem PedFileSystem
Definition filesys.h:30
struct _PedGeometry PedGeometry
Definition geom.h:30
int fat_boot_sector_set_boot_code(FatBootSector **bs, const PedFileSystem *fs)
Definition bootsector.c:272
int fat_boot_sector_write(const FatBootSector *bs, PedFileSystem *fs)
Definition bootsector.c:368
int fat_info_sector_write(const FatInfoSector *is, PedFileSystem *fs)
Definition bootsector.c:431
int fat_boot_sector_generate(FatBootSector **bs, const PedFileSystem *fs)
Definition bootsector.c:287
int fat_info_sector_generate(FatInfoSector **is, const PedFileSystem *fs)
Definition bootsector.c:409
int fat_info_sector_read(FatInfoSector **is, const PedFileSystem *fs)
Definition bootsector.c:385