37 lines
1.7 KiB
C
37 lines
1.7 KiB
C
#ifndef EMBPART_FAT32_H
|
|
#define EMBPART_FAT32_H
|
|
|
|
#include <stdint.h>
|
|
|
|
typedef struct {
|
|
uint8_t boot_jump[3]; // jump instruction used for bootable volume
|
|
uint8_t formatter_name[8]; // identification of application or OS formatted this device
|
|
uint16_t bytes_per_sector; // number of bytes per sector
|
|
uint8_t sectors_per_cluster; // number of sectors per cluster
|
|
uint16_t n_reserved_sectors; // number of reserved sectors
|
|
uint8_t n_fats; // number of FAT copies
|
|
uint8_t _unused0[2];
|
|
uint8_t _unused1[2];
|
|
uint8_t media_descriptor; // media descriptor differentiating between removable and non-removable devices
|
|
uint8_t _unused2[2];
|
|
uint16_t sectors_per_track; // number of sectors per track
|
|
uint16_t n_heads; // number of heads
|
|
uint32_t n_hidden_sectors; // number of hidden sectors preceding this volume
|
|
uint32_t n_total_sectors; // total number of sectors in this volume
|
|
uint32_t n_sectors_per_fat; // number of sectors per FAT
|
|
uint16_t flags; // flags, see docs.
|
|
uint16_t version; // FAT version number
|
|
uint32_t root_first_cluster; // first cluster of the root directory
|
|
uint16_t fsinfo_sector; // sector of the FSINFO structure
|
|
uint16_t boot_backup_sector; // sector of backup boot code in the reserved region
|
|
uint8_t _reserved0[12];
|
|
uint8_t logical_driver_number; // logical drive number of the partition
|
|
uint8_t _reserved1;
|
|
uint8_t extended_boot_signature; // extended boot signature
|
|
uint32_t volume_serial_number; // volume serial number
|
|
uint8_t volume_label[11]; // volume label string
|
|
uint8_t fs_type[8]; // file system type ("FAT32")
|
|
} __attribute__((packed)) Bpb_Fat32;
|
|
|
|
#endif //EMBPART_FAT32_H
|