1 use crate::protocol::device_path::DevicePathProtocol;
2 use crate::{guid, Guid, Status};
3 use core::ffi::c_void;
4 
5 #[derive(Debug)]
6 #[repr(C)]
7 pub struct LoadFileProtocol {
8     pub load_file: unsafe extern "efiapi" fn(
9         this: *mut LoadFileProtocol,
10         file_path: *const DevicePathProtocol,
11         boot_policy: bool,
12         buffer_size: *mut usize,
13         buffer: *mut c_void,
14     ) -> Status,
15 }
16 
17 impl LoadFileProtocol {
18     pub const GUID: Guid = guid!("56ec3091-954c-11d2-8e3f-00a0c969723b");
19 }
20 
21 #[derive(Debug)]
22 #[repr(C)]
23 pub struct LoadFile2Protocol {
24     pub load_file: unsafe extern "efiapi" fn(
25         this: *mut LoadFile2Protocol,
26         file_path: *const DevicePathProtocol,
27         boot_policy: bool,
28         buffer_size: *mut usize,
29         buffer: *mut c_void,
30     ) -> Status,
31 }
32 
33 impl LoadFile2Protocol {
34     pub const GUID: Guid = guid!("4006c0c1-fcb3-403e-996d-4a6c8724e06d");
35 }
36