r_efi/protocols/
loaded_image.rs

1//! Loaded Image Protocol
2//!
3//! The loaded image protocol defines how to obtain information about a loaded image from an
4//! image handle.
5
6pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields(
7    0x5b1b31a1,
8    0x9562,
9    0x11d2,
10    0x8e,
11    0x3f,
12    &[0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b],
13);
14
15pub const REVISION: u32 = 0x00001000u32;
16
17pub type ProtocolUnload = eficall! {fn(
18    crate::base::Handle,
19) -> crate::base::Status};
20
21#[repr(C)]
22pub struct Protocol {
23    pub revision: u32,
24    pub parent_handle: crate::base::Handle,
25    pub system_table: *mut crate::system::SystemTable,
26
27    pub device_handle: crate::base::Handle,
28    pub file_path: *mut crate::protocols::device_path::Protocol,
29    pub reserved: *mut core::ffi::c_void,
30
31    pub load_options_size: u32,
32    pub load_options: *mut core::ffi::c_void,
33
34    pub image_base: *mut core::ffi::c_void,
35    pub image_size: u64,
36    pub image_code_type: crate::system::MemoryType,
37    pub image_data_type: crate::system::MemoryType,
38    pub unload: Option<ProtocolUnload>,
39}