r_efi/protocols/
device_path_utilities.rs

1//! Device Path Utilities Protocol
2//!
3//! The device-path utilities protocol provides common utilities for creating and manipulating
4//! device paths and device nodes.
5
6pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields(
7    0x379be4e,
8    0xd706,
9    0x437d,
10    0xb0,
11    0x37,
12    &[0xed, 0xb8, 0x2f, 0xb7, 0x72, 0xa4],
13);
14
15pub type ProtocolGetDevicePathSize = eficall! {fn(
16    *const crate::protocols::device_path::Protocol,
17) -> usize};
18
19pub type ProtocolDuplicateDevicePath = eficall! {fn(
20    *const crate::protocols::device_path::Protocol,
21) -> *mut crate::protocols::device_path::Protocol};
22
23pub type ProtocolAppendDevicePath = eficall! {fn(
24    *const crate::protocols::device_path::Protocol,
25    *const crate::protocols::device_path::Protocol,
26) -> *mut crate::protocols::device_path::Protocol};
27
28pub type ProtocolAppendDeviceNode = eficall! {fn(
29    *const crate::protocols::device_path::Protocol,
30    *const crate::protocols::device_path::Protocol,
31) -> *mut crate::protocols::device_path::Protocol};
32
33pub type ProtocolAppendDevicePathInstance = eficall! {fn(
34    *const crate::protocols::device_path::Protocol,
35    *const crate::protocols::device_path::Protocol,
36) -> *mut crate::protocols::device_path::Protocol};
37
38pub type ProtocolGetNextDevicePathInstance = eficall! {fn(
39    *mut *mut crate::protocols::device_path::Protocol,
40    *mut usize,
41) -> *mut crate::protocols::device_path::Protocol};
42
43pub type ProtocolIsDevicePathMultiInstance = eficall! {fn(
44    *const crate::protocols::device_path::Protocol,
45) -> crate::base::Boolean};
46
47pub type ProtocolCreateDeviceNode = eficall! {fn(
48    u8,
49    u8,
50    u16,
51) -> *mut crate::protocols::device_path::Protocol};
52
53#[repr(C)]
54pub struct Protocol {
55    pub get_device_path_size: ProtocolGetDevicePathSize,
56    pub duplicate_device_path: ProtocolDuplicateDevicePath,
57    pub append_device_path: ProtocolAppendDevicePath,
58    pub append_device_node: ProtocolAppendDeviceNode,
59    pub append_device_path_instance: ProtocolAppendDevicePathInstance,
60    pub get_next_device_path_instance: ProtocolGetNextDevicePathInstance,
61    pub is_device_path_multi_instance: ProtocolIsDevicePathMultiInstance,
62    pub create_device_node: ProtocolCreateDeviceNode,
63}