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
47
48
49
50
51
52
53
54
55
56
57
58
#[derive(Clone, Debug)]
#[repr(u32)]
pub enum RecordKind {
    Unused = 0x0,
    Memory = 0x1,
    Hwrpb = 0x2,
    Mainboard = 0x3,
    Version = 0x4,
    ExtraVersion = 0x5,
    Build = 0x6,
    CompileTime = 0x7,
    CompileBy = 0x8,
    CompileHost = 0x9,
    CompileDomain = 0xa,
    Compiler = 0xb,
    Linker = 0xc,
    Assembler = 0xd,
    Serial = 0xf,
    Console = 0x10,
    Forward = 0x11,
    Framebuffer = 0x12,
    Gpio = 0x13,
    Timestamps = 0x16,
    CbMemConsole = 0x17,
    MrcCache = 0x18,
    Vbnv = 0x19,
    VbootHandoff = 0x20,
    X86RomMtrr = 0x21,
    Dma = 0x22,
    RamOops = 0x23,
    AcpiGnvs = 0x24,
    BoardId = 0x25,
    WifiCalibration = 0x27,
    RamCode = 0x28,
    SpiFlash = 0x29,
    SerialNo = 0x2a,
    Mtc = 0x2b,
    Vpd = 0x2c,
    SkuId = 0x2d,
    BootMediaParams = 0x30,
    CbMemEntry = 0x31,
    TscInfo = 0x32,
    MacAddrs = 0x33,
    TcpaLog = 0x34,
    VersionTimestamp = 0x26,
    CmosOptionTable = 200,
    Option = 201,
    OptionEnum = 202,
    OptionDefaults = 203,
    OptionChecksum = 204,
}

#[derive(Clone, Debug)]
#[repr(packed)]
pub struct Record {
    pub kind: RecordKind,
    pub size: u32,
}