blob: d45727d609750832d9a4cde9a6ff57b9c771d929 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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
|