summaryrefslogtreecommitdiffstats
path: root/vendor/r-efi/src/protocols/device_path_utilities.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/r-efi/src/protocols/device_path_utilities.rs')
-rw-r--r--vendor/r-efi/src/protocols/device_path_utilities.rs63
1 files changed, 63 insertions, 0 deletions
diff --git a/vendor/r-efi/src/protocols/device_path_utilities.rs b/vendor/r-efi/src/protocols/device_path_utilities.rs
new file mode 100644
index 000000000..d34aea819
--- /dev/null
+++ b/vendor/r-efi/src/protocols/device_path_utilities.rs
@@ -0,0 +1,63 @@
+//! Device Path Utilities Protocol
+//!
+//! The device-path utilities protocol provides common utilities for creating and manipulating
+//! device paths and device nodes.
+
+pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields(
+ 0x379be4e,
+ 0xd706,
+ 0x437d,
+ 0xb0,
+ 0x37,
+ &[0xed, 0xb8, 0x2f, 0xb7, 0x72, 0xa4],
+);
+
+pub type ProtocolGetDevicePathSize = eficall! {fn(
+ *const crate::protocols::device_path::Protocol,
+) -> usize};
+
+pub type ProtocolDuplicateDevicePath = eficall! {fn(
+ *const crate::protocols::device_path::Protocol,
+) -> *mut crate::protocols::device_path::Protocol};
+
+pub type ProtocolAppendDevicePath = eficall! {fn(
+ *const crate::protocols::device_path::Protocol,
+ *const crate::protocols::device_path::Protocol,
+) -> *mut crate::protocols::device_path::Protocol};
+
+pub type ProtocolAppendDeviceNode = eficall! {fn(
+ *const crate::protocols::device_path::Protocol,
+ *const crate::protocols::device_path::Protocol,
+) -> *mut crate::protocols::device_path::Protocol};
+
+pub type ProtocolAppendDevicePathInstance = eficall! {fn(
+ *const crate::protocols::device_path::Protocol,
+ *const crate::protocols::device_path::Protocol,
+) -> *mut crate::protocols::device_path::Protocol};
+
+pub type ProtocolGetNextDevicePathInstance = eficall! {fn(
+ *mut *mut crate::protocols::device_path::Protocol,
+ *mut usize,
+) -> *mut crate::protocols::device_path::Protocol};
+
+pub type ProtocolIsDevicePathMultiInstance = eficall! {fn(
+ *const crate::protocols::device_path::Protocol,
+) -> crate::base::Boolean};
+
+pub type ProtocolCreateDeviceNode = eficall! {fn(
+ u8,
+ u8,
+ u16,
+) -> *mut crate::protocols::device_path::Protocol};
+
+#[repr(C)]
+pub struct Protocol {
+ pub get_device_path_size: ProtocolGetDevicePathSize,
+ pub duplicate_device_path: ProtocolDuplicateDevicePath,
+ pub append_device_path: ProtocolAppendDevicePath,
+ pub append_device_node: ProtocolAppendDeviceNode,
+ pub append_device_path_instance: ProtocolAppendDevicePathInstance,
+ pub get_next_device_path_instance: ProtocolGetNextDevicePathInstance,
+ pub is_device_path_multi_instance: ProtocolIsDevicePathMultiInstance,
+ pub create_device_node: ProtocolCreateDeviceNode,
+}