1use crate::prelude::*;
2
3#[derive(Clone, Copy, Debug, Default)]
4#[repr(C)]
5pub struct TextInputKey {
6 pub ScanCode: u16,
7 pub UnicodeChar: u16,
8}
9
10#[repr(C)]
11pub struct TextInput {
12 pub Reset: extern "efiapi" fn(&TextInput, bool) -> Status,
13 pub ReadKeyStroke: extern "efiapi" fn(&TextInput, &mut TextInputKey) -> Status,
14 pub WaitForKey: Event,
15}
16
17#[derive(Clone, Copy, Debug)]
18#[repr(C)]
19pub struct TextOutputMode {
20 pub MaxMode: i32,
21 pub Mode: i32,
22 pub Attribute: i32,
23 pub CursorColumn: i32,
24 pub CursorRow: i32,
25 pub CursorVisible: bool,
26}
27
28#[repr(C)]
29pub struct TextOutput {
30 pub Reset: extern "efiapi" fn(&TextOutput, bool) -> Status,
31 pub OutputString: extern "efiapi" fn(&TextOutput, *const u16) -> Status,
32 pub TestString: extern "efiapi" fn(&TextOutput, *const u16) -> Status,
33 pub QueryMode: extern "efiapi" fn(&TextOutput, usize, &mut usize, &mut usize) -> Status,
34 pub SetMode: extern "efiapi" fn(&TextOutput, usize) -> Status,
35 pub SetAttribute: extern "efiapi" fn(&TextOutput, usize) -> Status,
36 pub ClearScreen: extern "efiapi" fn(&TextOutput) -> Status,
37 pub SetCursorPosition: extern "efiapi" fn(&TextOutput, usize, usize) -> Status,
38 pub EnableCursor: extern "efiapi" fn(&TextOutput, bool) -> Status,
39 pub Mode: &'static TextOutputMode,
40}
41
42impl TextOutput {
43 pub const GUID: Guid = guid!("387477c2-69c7-11d2-8e39-00a0c969723b");
44}