summaryrefslogtreecommitdiffstats
path: root/vendor/r-efi/src/protocols/hii_font.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/r-efi/src/protocols/hii_font.rs')
-rw-r--r--vendor/r-efi/src/protocols/hii_font.rs87
1 files changed, 87 insertions, 0 deletions
diff --git a/vendor/r-efi/src/protocols/hii_font.rs b/vendor/r-efi/src/protocols/hii_font.rs
new file mode 100644
index 000000000..4ca7bf7b3
--- /dev/null
+++ b/vendor/r-efi/src/protocols/hii_font.rs
@@ -0,0 +1,87 @@
+//! HII Font Protocol
+
+pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields(
+ 0xe9ca4775,
+ 0x8657,
+ 0x47fc,
+ 0x97,
+ 0xe7,
+ &[0x7e, 0xd6, 0x5a, 0x08, 0x43, 0x24],
+);
+
+pub type ProtocolStringToImage = eficall! {fn(
+ *const Protocol,
+ OutFlags,
+ String,
+ *const super::hii_font_ex::DisplayInfo,
+ *mut *mut super::hii_font_ex::ImageOutput,
+ usize,
+ usize,
+ *mut *mut RowInfo,
+ *mut usize,
+ *mut usize,
+) -> crate::base::Status};
+
+pub type ProtocolStringIdToImage = eficall! {fn(
+ *const Protocol,
+ OutFlags,
+ crate::hii::Handle,
+ crate::hii::StringId,
+ *const crate::base::Char8,
+ *const super::hii_font_ex::DisplayInfo,
+ *mut *mut super::hii_font_ex::ImageOutput,
+ usize,
+ usize,
+ *mut *mut RowInfo,
+ *mut usize,
+ *mut usize,
+) -> crate::base::Status};
+
+pub type ProtocolGetGlyph = eficall! {fn(
+ *const Protocol,
+ crate::base::Char16,
+ *const super::hii_font_ex::DisplayInfo,
+ *mut *mut super::hii_font_ex::ImageOutput,
+ *mut usize,
+) -> crate::base::Status};
+
+pub type ProtocolGetFontInfo = eficall! {fn(
+ *const Protocol,
+ *mut Handle,
+ *const super::hii_font_ex::DisplayInfo,
+ *mut *mut super::hii_font_ex::DisplayInfo,
+ String,
+) -> crate::base::Status};
+
+#[repr(C)]
+pub struct Protocol {
+ pub string_to_image: ProtocolStringToImage,
+ pub string_id_to_image: ProtocolStringIdToImage,
+ pub get_glyph: ProtocolGetGlyph,
+ pub get_font_info: ProtocolGetFontInfo,
+}
+
+pub type OutFlags = u32;
+
+pub const OUT_FLAG_CLIP: OutFlags = 0x00000001;
+pub const OUT_FLAG_WRAP: OutFlags = 0x00000002;
+pub const OUT_FLAG_CLIP_CLEAN_Y: OutFlags = 0x00000004;
+pub const OUT_FLAG_CLIP_CLEAN_X: OutFlags = 0x00000008;
+pub const OUT_FLAG_TRANSPARENT: OutFlags = 0x00000010;
+pub const IGNORE_IF_NO_GLYPH: OutFlags = 0x00000020;
+pub const IGNORE_LINE_BREAK: OutFlags = 0x00000040;
+pub const DIRECT_TO_SCREEN: OutFlags = 0x00000080;
+
+pub type String = *mut crate::base::Char16;
+
+#[repr(C)]
+#[derive(Clone, Copy, Debug)]
+pub struct RowInfo {
+ pub start_index: usize,
+ pub end_index: usize,
+ pub line_height: usize,
+ pub line_width: usize,
+ pub baseline_offset: usize,
+}
+
+pub type Handle = *mut core::ffi::c_void;