r_efi/protocols/
hii_string.rs

1//! HII String Protocol
2
3pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields(
4    0xfd96974,
5    0x23aa,
6    0x4cdc,
7    0xb9,
8    0xcb,
9    &[0x98, 0xd1, 0x77, 0x50, 0x32, 0x2a],
10);
11
12pub type ProtocolNewString = eficall! {fn(
13    *const Protocol,
14    crate::hii::Handle,
15    *mut crate::hii::StringId,
16    *const crate::base::Char8,
17    *const crate::base::Char16,
18    super::hii_font::String,
19    *const Info,
20) -> crate::base::Status};
21
22pub type ProtocolGetString = eficall! {fn(
23    *const Protocol,
24    *const crate::base::Char8,
25    crate::hii::Handle,
26    crate::hii::StringId,
27    super::hii_font::String,
28    *mut usize,
29    *mut *mut Info,
30) -> crate::base::Status};
31
32pub type ProtocolSetString = eficall! {fn(
33    *const Protocol,
34    crate::hii::Handle,
35    crate::hii::StringId,
36    *const crate::base::Char8,
37    super::hii_font::String,
38    *const Info,
39) -> crate::base::Status};
40
41pub type ProtocolGetLanguages = eficall! {fn(
42    *const Protocol,
43    crate::hii::Handle,
44    *mut crate::base::Char8,
45    *mut usize,
46) -> crate::base::Status};
47
48pub type ProtocolGetSecondaryLanguages = eficall! {fn(
49    *const Protocol,
50    crate::hii::Handle,
51    *const crate::base::Char8,
52    *mut crate::base::Char8,
53    *mut usize,
54) -> crate::base::Status};
55
56#[repr(C)]
57pub struct Protocol {
58    pub new_string: ProtocolNewString,
59    pub get_string: ProtocolGetString,
60    pub set_string: ProtocolSetString,
61    pub get_languages: ProtocolGetLanguages,
62    pub get_secondary_languages: ProtocolGetSecondaryLanguages,
63}
64
65#[repr(C)]
66#[derive(Clone, Copy, Debug)]
67pub struct Info<const N: usize = 0> {
68    pub font_style: crate::hii::FontStyle,
69    pub font_size: u16,
70    pub font_name: [crate::base::Char16; N],
71}