diff options
| author | Javier <dev.git@javispedro.com> | 2026-09-29 23:40:31 +0200 |
|---|---|---|
| committer | Javier <dev.git@javispedro.com> | 2026-09-29 23:40:31 +0200 |
| commit | 0a656a4a84f920194958d339d61ed567eba9c03c (patch) | |
| tree | 0feecbddf0150e02fe7a2fa619dc232c50ced4c8 /inc/mbr.h | |
| download | chu-0a656a4a84f920194958d339d61ed567eba9c03c.tar.gz chu-0a656a4a84f920194958d339d61ed567eba9c03c.zip | |
initial import
Diffstat (limited to 'inc/mbr.h')
| -rw-r--r-- | inc/mbr.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/inc/mbr.h b/inc/mbr.h new file mode 100644 index 0000000..d45727d --- /dev/null +++ b/inc/mbr.h @@ -0,0 +1,46 @@ +#ifndef MBR_H +#define MBR_H + +#include "sassert.h" + +enum MBR_PARTTYPE +{ + MBR_EMPTY = 0, + MBR_FAT12 = 0x01, + MBR_FAT16_32MB = 0x04, + MBR_EXT = 0x05, + MBR_FAT16 = 0x06, + MBR_IFS = 0x07, + MBR_FAT32 = 0x0B, + MBR_FAT32_LBA = 0x0C, + MBR_FAT16_LBA = 0x0E, + MBR_EXT_LBA = 0x0F, + MBR_LINUX_SWAP = 0x82, + MBR_LINUX = 0x83, +}; + +typedef _Packed struct MBR_CHS +{ + uint8_t head; + unsigned sector : 6; + unsigned cyl : 10; +} MBR_CHS; + +STATIC_ASSERT(sizeof(MBR_CHS) == 3); + +typedef _Packed struct MBR_PARTENTRY +{ + uint8_t status; + MBR_CHS chsFirst; + uint8_t type; + MBR_CHS chsLast; + uint32_t lbaFirst; + uint32_t lbaLen; +} MBR_PARTENTRY; + +STATIC_ASSERT(sizeof(MBR_PARTENTRY) == 16); + +#define MBR_PARTENTRY_OFFSET_ON_DISK 446 +#define MBR_SIGNATURE_OFFSET_ON_DISK 510 + +#endif // MBR_H |
