summaryrefslogtreecommitdiffstats
path: root/vendor/r-efi/src/protocols/hii_font_ex.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/r-efi/src/protocols/hii_font_ex.rs')
-rw-r--r--vendor/r-efi/src/protocols/hii_font_ex.rs107
1 files changed, 107 insertions, 0 deletions
diff --git a/vendor/r-efi/src/protocols/hii_font_ex.rs b/vendor/r-efi/src/protocols/hii_font_ex.rs
new file mode 100644
index 000000000..92466986f
--- /dev/null
+++ b/vendor/r-efi/src/protocols/hii_font_ex.rs
@@ -0,0 +1,107 @@
+//! HII Font Ex Protocol
+
+pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields(
+ 0x849e6875,
+ 0xdb35,
+ 0x4df8,
+ 0xb4,
+ 0x1e,
+ &[0xc8, 0xf3, 0x37, 0x18, 0x07, 0x3f],
+);
+
+pub type ProtocolStringToImageEx = eficall! {fn(
+ *const Protocol,
+ super::hii_font::OutFlags,
+ super::hii_font::String,
+ *const DisplayInfo,
+ *mut *mut ImageOutput,
+ usize,
+ usize,
+ *mut *mut super::hii_font::RowInfo,
+ *mut usize,
+ *mut usize,
+) -> crate::base::Status};
+
+pub type ProtocolStringIdToImageEx = eficall! {fn(
+ *const Protocol,
+ super::hii_font::OutFlags,
+ crate::hii::Handle,
+ crate::hii::StringId,
+ *const crate::base::Char8,
+ *const DisplayInfo,
+ *mut *mut ImageOutput,
+ usize,
+ usize,
+ *mut *mut super::hii_font::RowInfo,
+ *mut usize,
+ *mut usize,
+) -> crate::base::Status};
+
+pub type ProtocolGetGlyphEx = eficall! {fn(
+ *const Protocol,
+ crate::base::Char16,
+ *const DisplayInfo,
+ *mut *mut ImageOutput,
+ usize,
+) -> crate::base::Status};
+
+pub type ProtocolGetFontInfoEx = eficall! {fn(
+ *const Protocol,
+ *mut super::hii_font::Handle,
+ *const DisplayInfo,
+ *mut *mut DisplayInfo,
+ super::hii_font::String,
+) -> crate::base::Status};
+
+pub type ProtocolGetGlyphInfo = eficall! {fn(
+ *const Protocol,
+ crate::base::Char16,
+ *const DisplayInfo,
+ *mut crate::hii::GlyphInfo,
+) -> crate::base::Status};
+
+#[repr(C)]
+pub struct Protocol {
+ pub string_to_image_ex: ProtocolStringToImageEx,
+ pub string_id_to_image_ex: ProtocolStringIdToImageEx,
+ pub get_glyph_ex: ProtocolGetGlyphEx,
+ pub get_font_info_ex: ProtocolGetFontInfoEx,
+ pub get_glyph_info: ProtocolGetGlyphInfo,
+}
+
+#[repr(C)]
+#[derive(Clone, Copy, Debug)]
+pub struct DisplayInfo {
+ pub foreground_color: super::graphics_output::BltPixel,
+ pub background_color: super::graphics_output::BltPixel,
+ pub font_info_mask: InfoMask,
+ pub font_info: super::hii_string::Info,
+}
+
+pub type InfoMask = u32;
+
+pub const INFO_SYS_FONT: InfoMask = 0x00000001;
+pub const INFO_SYS_SIZE: InfoMask = 0x00000002;
+pub const INFO_SYS_STYLE: InfoMask = 0x00000004;
+pub const INFO_SYS_FORE_COLOR: InfoMask = 0x00000010;
+pub const INFO_SYS_BACK_COLOR: InfoMask = 0x00000020;
+pub const INFO_RESIZE: InfoMask = 0x00001000;
+pub const INFO_RESTYLE: InfoMask = 0x00002000;
+pub const INFO_ANY_FONT: InfoMask = 0x00010000;
+pub const INFO_ANY_SIZE: InfoMask = 0x00020000;
+pub const INFO_ANY_STYLE: InfoMask = 0x00040000;
+
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub union ImageOutputImage {
+ pub bitmap: *mut super::graphics_output::BltPixel,
+ pub screen: *mut super::graphics_output::Protocol,
+}
+
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub struct ImageOutput {
+ pub width: u16,
+ pub height: u16,
+ pub image: ImageOutputImage,
+}