Skip to main content

uefi_raw/protocol/hii/
string.rs

1// SPDX-License-Identifier: MIT OR Apache-2.0
2
3//! Bindings for HII String protocols and data types
4
5use super::font::FontInfo;
6use super::{HiiHandle, StringId};
7use crate::{Char8, Char16, Guid, Status, guid};
8
9/// EFI_HII_STRING_PROTOCOL
10#[derive(Debug)]
11#[repr(C)]
12pub struct HiiStringProtocol {
13    pub new_string: unsafe extern "efiapi" fn(
14        this: *const Self,
15        package_list: HiiHandle,
16        string_id: *mut StringId,
17        language: *const Char8,
18        language_name: *const Char16,
19        string: *const Char16,
20        string_font_info: *const FontInfo,
21    ) -> Status,
22    pub get_string: unsafe extern "efiapi" fn(
23        this: *const Self,
24        language: *const Char8,
25        package_list: HiiHandle,
26        string_id: StringId,
27        string: *mut *mut Char16,
28        string_size: *mut usize,
29        string_font_info: *mut *mut FontInfo,
30    ) -> Status,
31    pub set_string: unsafe extern "efiapi" fn(
32        this: *const Self,
33        package_list: HiiHandle,
34        string_id: StringId,
35        language: *const Char8,
36        string: *const Char16,
37        string_font_info: *const FontInfo,
38    ) -> Status,
39    pub get_languages: unsafe extern "efiapi" fn(
40        this: *const Self,
41        package_list: HiiHandle,
42        languages: *mut Char8,
43        languages_size: *mut usize,
44    ) -> Status,
45    pub get_secondary_languages: unsafe extern "efiapi" fn(
46        this: *const Self,
47        package_list: HiiHandle,
48        primary_language: *const Char8,
49        secondary_languages: *mut Char8,
50        secondary_languages_size: *mut usize,
51    ) -> Status,
52}
53
54impl HiiStringProtocol {
55    pub const GUID: Guid = guid!("0fd96974-23aa-4cdc-b9cb-98d17750322a");
56}