r_efi/protocols/
device_path.rs1pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields(
7 0x09576e91,
8 0x6d3f,
9 0x11d2,
10 0x8e,
11 0x39,
12 &[0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b],
13);
14
15pub const TYPE_HARDWARE: u8 = 0x01;
16pub const TYPE_ACPI: u8 = 0x02;
17pub const TYPE_MESSAGING: u8 = 0x03;
18pub const TYPE_MEDIA: u8 = 0x04;
19pub const TYPE_BIOS: u8 = 0x05;
20pub const TYPE_END: u8 = 0x7f;
21
22#[repr(C)]
23#[derive(Clone, Copy, Debug)]
24pub struct Protocol {
25 pub r#type: u8,
26 pub sub_type: u8,
27 pub length: [u8; 2],
28}
29
30#[repr(C)]
31#[derive(Clone, Copy, Debug)]
32pub struct End {
33 pub header: Protocol,
34}
35
36impl End {
37 pub const SUBTYPE_INSTANCE: u8 = 0x01;
38 pub const SUBTYPE_ENTIRE: u8 = 0xff;
39}
40
41#[repr(C)]
42#[derive(Clone, Copy, Debug)]
43pub struct Hardware {
44 pub header: Protocol,
45}
46
47impl Hardware {
48 pub const SUBTYPE_PCI: u8 = 0x01;
49 pub const SUBTYPE_PCCARD: u8 = 0x02;
50 pub const SUBTYPE_MMAP: u8 = 0x03;
51 pub const SUBTYPE_VENDOR: u8 = 0x04;
52 pub const SUBTYPE_CONTROLLER: u8 = 0x05;
53 pub const SUBTYPE_BMC: u8 = 0x06;
54}
55
56#[repr(C, packed)]
57#[derive(Clone, Copy, Debug)]
58pub struct HardDriveMedia {
59 pub header: Protocol,
60 pub partition_number: u32,
61 pub partition_start: u64,
62 pub partition_size: u64,
63 pub partition_signature: [u8; 16],
64 pub partition_format: u8,
65 pub signature_type: u8,
66}
67
68pub struct Media {
69 pub header: Protocol,
70}
71
72impl Media {
73 pub const SUBTYPE_HARDDRIVE: u8 = 0x01;
74 pub const SUBTYPE_CDROM: u8 = 0x02;
75 pub const SUBTYPE_VENDOR: u8 = 0x03;
76 pub const SUBTYPE_FILE_PATH: u8 = 0x04;
77 pub const SUBTYPE_MEDIA_PROTOCOL: u8 = 0x05;
78 pub const SUBTYPE_PIWG_FIRMWARE_FILE: u8 = 0x06;
79 pub const SUBTYPE_PIWG_FIRMWARE_VOLUME: u8 = 0x07;
80 pub const SUBTYPE_RELATIVE_OFFSET_RANGE: u8 = 0x08;
81 pub const SUBTYPE_RAM_DISK: u8 = 0x09;
82}