summaryrefslogtreecommitdiffstats
path: root/vendor/r-efi/src/protocols/hii_string.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/r-efi/src/protocols/hii_string.rs')
-rw-r--r--vendor/r-efi/src/protocols/hii_string.rs71
1 files changed, 71 insertions, 0 deletions
diff --git a/vendor/r-efi/src/protocols/hii_string.rs b/vendor/r-efi/src/protocols/hii_string.rs
new file mode 100644
index 000000000..c7a1d6e33
--- /dev/null
+++ b/vendor/r-efi/src/protocols/hii_string.rs
@@ -0,0 +1,71 @@
+//! HII String Protocol
+
+pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields(
+ 0xfd96974,
+ 0x23aa,
+ 0x4cdc,
+ 0xb9,
+ 0xcb,
+ &[0x98, 0xd1, 0x77, 0x50, 0x32, 0x2a],
+);
+
+pub type ProtocolNewString = eficall! {fn(
+ *const Protocol,
+ crate::hii::Handle,
+ *mut crate::hii::StringId,
+ *const crate::base::Char8,
+ *const crate::base::Char16,
+ super::hii_font::String,
+ *const Info,
+) -> crate::base::Status};
+
+pub type ProtocolGetString = eficall! {fn(
+ *const Protocol,
+ *const crate::base::Char8,
+ crate::hii::Handle,
+ crate::hii::StringId,
+ super::hii_font::String,
+ *mut usize,
+ *mut *mut Info,
+) -> crate::base::Status};
+
+pub type ProtocolSetString = eficall! {fn(
+ *const Protocol,
+ crate::hii::Handle,
+ crate::hii::StringId,
+ *const crate::base::Char8,
+ super::hii_font::String,
+ *const Info,
+) -> crate::base::Status};
+
+pub type ProtocolGetLanguages = eficall! {fn(
+ *const Protocol,
+ crate::hii::Handle,
+ *mut crate::base::Char8,
+ *mut usize,
+) -> crate::base::Status};
+
+pub type ProtocolGetSecondaryLanguages = eficall! {fn(
+ *const Protocol,
+ crate::hii::Handle,
+ *const crate::base::Char8,
+ *mut crate::base::Char8,
+ *mut usize,
+) -> crate::base::Status};
+
+#[repr(C)]
+pub struct Protocol {
+ pub new_string: ProtocolNewString,
+ pub get_string: ProtocolGetString,
+ pub set_string: ProtocolSetString,
+ pub get_languages: ProtocolGetLanguages,
+ pub get_secondary_languages: ProtocolGetSecondaryLanguages,
+}
+
+#[repr(C)]
+#[derive(Clone, Copy, Debug)]
+pub struct Info<const N: usize = 0> {
+ pub font_style: crate::hii::FontStyle,
+ pub font_size: u16,
+ pub font_name: [crate::base::Char16; N],
+}