diff options
| author | Javier <dev.git@javispedro.com> | 2026-10-26 00:50:06 +0100 |
|---|---|---|
| committer | Javier <dev.git@javispedro.com> | 2026-10-26 00:50:06 +0100 |
| commit | 6b8a368c51082fdd010ef5e1b0be4eb9b5059d1a (patch) | |
| tree | e274d41a8dd5e912e20617a937a1fda5af91f8de /dos/inc/mbr.h | |
| parent | 9b1cf601360fb194047e6dcc2af75c2f38c611ec (diff) | |
| download | chu-6b8a368c51082fdd010ef5e1b0be4eb9b5059d1a.tar.gz chu-6b8a368c51082fdd010ef5e1b0be4eb9b5059d1a.zip | |
refactor common parts into inc/ch375.h and add win9x, linux drivers
Diffstat (limited to 'dos/inc/mbr.h')
| -rw-r--r-- | dos/inc/mbr.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/dos/inc/mbr.h b/dos/inc/mbr.h new file mode 100644 index 0000000..d45727d --- /dev/null +++ b/dos/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 |
