|
const std = @import("std"); const uefi = std.os.uefi; const Guid = uefi.Guid; const Status = uefi.Status; const cc = uefi.cc; const Error = Status.Error; |
SimpleTextOutputResets the text output device hardware. |
/// Character output devices pub const SimpleTextOutput = extern struct { _reset: *const fn (*SimpleTextOutput, bool) callconv(cc) Status, _output_string: *const fn (*SimpleTextOutput, [*:0]const u16) callconv(cc) Status, _test_string: *const fn (*const SimpleTextOutput, [*:0]const u16) callconv(cc) Status, _query_mode: *const fn (*const SimpleTextOutput, usize, *usize, *usize) callconv(cc) Status, _set_mode: *const fn (*SimpleTextOutput, usize) callconv(cc) Status, _set_attribute: *const fn (*SimpleTextOutput, usize) callconv(cc) Status, _clear_screen: *const fn (*SimpleTextOutput) callconv(cc) Status, _set_cursor_position: *const fn (*SimpleTextOutput, usize, usize) callconv(cc) Status, _enable_cursor: *const fn (*SimpleTextOutput, bool) callconv(cc) Status, mode: *Mode, |
ResetErrorWrites a string to the output device.
Returns |
pub const ResetError = uefi.UnexpectedError || error{DeviceError}; |
OutputStringErrorVerifies that all characters in a string can be output to the target device. |
pub const OutputStringError = uefi.UnexpectedError || error{ DeviceError, Unsupported, }; |
QueryModeErrorReturns information for an available text mode that the output device(s) supports. |
pub const QueryModeError = uefi.UnexpectedError || error{ DeviceError, Unsupported, }; |
SetModeErrorSets the output device(s) to a specified mode. |
pub const SetModeError = uefi.UnexpectedError || error{ DeviceError, Unsupported, }; |
SetAttributeErrorSets the background and foreground colors for the outputString() and clearScreen() functions. |
pub const SetAttributeError = uefi.UnexpectedError || error{DeviceError}; |
ClearScreenErrorClears the output device(s) display to the currently selected background color. |
pub const ClearScreenError = uefi.UnexpectedError || error{ DeviceError, Unsupported, }; |
SetCursorPositionErrorSets the current coordinates of the cursor position. |
pub const SetCursorPositionError = uefi.UnexpectedError || error{ DeviceError, Unsupported, }; |
EnableCursorErrorMakes the cursor visible or invisible. |
pub const EnableCursorError = uefi.UnexpectedError || error{ DeviceError, Unsupported, }; |
reset() |
/// Resets the text output device hardware. pub fn reset(self: *SimpleTextOutput, verify: bool) ResetError!void { switch (self._reset(self, verify)) { .success => {}, .device_error => return Error.DeviceError, else => |status| return uefi.unexpectedStatus(status), } } |
outputString() |
/// Writes a string to the output device. /// /// Returns `true` if the string was successfully written, `false` if an unknown glyph was encountered. pub fn outputString(self: *SimpleTextOutput, msg: [*:0]const u16) OutputStringError!bool { switch (self._output_string(self, msg)) { .success => return true, .warn_unknown_glyph => return false, .device_error => return Error.DeviceError, .unsupported => return Error.Unsupported, else => |status| return uefi.unexpectedStatus(status), } } |
testString() |
/// Verifies that all characters in a string can be output to the target device. pub fn testString(self: *const SimpleTextOutput, msg: [*:0]const u16) uefi.UnexpectedError!bool { switch (self._test_string(self, msg)) { .success => return true, .unsupported => return false, else => |status| return uefi.unexpectedStatus(status), } } |
queryMode() |
/// Returns information for an available text mode that the output device(s) supports. pub fn queryMode(self: *const SimpleTextOutput, mode_number: usize) QueryModeError!Geometry { var geo: Geometry = undefined; switch (self._query_mode(self, mode_number, &geo.columns, &geo.rows)) { .success => return geo, .device_error => return Error.DeviceError, .unsupported => return Error.Unsupported, else => |status| return uefi.unexpectedStatus(status), } } |
setMode() |
/// Sets the output device(s) to a specified mode. pub fn setMode(self: *SimpleTextOutput, mode_number: usize) SetModeError!void { switch (self._set_mode(self, mode_number)) { .success => {}, .device_error => return Error.DeviceError, .unsupported => return Error.Unsupported, else => |status| return uefi.unexpectedStatus(status), } } |
setAttribute() |
/// Sets the background and foreground colors for the outputString() and clearScreen() functions. pub fn setAttribute(self: *SimpleTextOutput, attribute: Attribute) SetAttributeError!void { const attr_as_num: u8 = @bitCast(attribute); switch (self._set_attribute(self, @intCast(attr_as_num))) { .success => {}, .device_error => return Error.DeviceError, else => |status| return uefi.unexpectedStatus(status), } } |
clearScreen() |
/// Clears the output device(s) display to the currently selected background color. pub fn clearScreen(self: *SimpleTextOutput) ClearScreenError!void { switch (self._clear_screen(self)) { .success => {}, .device_error => return Error.DeviceError, .unsupported => return Error.Unsupported, else => |status| return uefi.unexpectedStatus(status), } } |
setCursorPosition() |
/// Sets the current coordinates of the cursor position. pub fn setCursorPosition( self: *SimpleTextOutput, column: usize, row: usize, ) SetCursorPositionError!void { switch (self._set_cursor_position(self, column, row)) { .success => {}, .device_error => return Error.DeviceError, .unsupported => return Error.Unsupported, else => |status| return uefi.unexpectedStatus(status), } } |
enableCursor() |
/// Makes the cursor visible or invisible. pub fn enableCursor(self: *SimpleTextOutput, visible: bool) EnableCursorError!void { switch (self._enable_cursor(self, visible)) { .success => {}, .device_error => return Error.DeviceError, .unsupported => return Error.Unsupported, else => |status| return uefi.unexpectedStatus(status), } } |
guid |
pub const guid align(8) = Guid{ .time_low = 0x387477c2, .time_mid = 0x69c7, .time_high_and_version = 0x11d2, .clock_seq_high_and_reserved = 0x8e, .clock_seq_low = 0x39, .node = [_]u8{ 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b }, }; |
boxdraw_horizontal: |
pub const boxdraw_horizontal: u16 = 0x2500; |
boxdraw_vertical: |
pub const boxdraw_vertical: u16 = 0x2502; |
boxdraw_down_right: |
pub const boxdraw_down_right: u16 = 0x250c; |
boxdraw_down_left: |
pub const boxdraw_down_left: u16 = 0x2510; |
boxdraw_up_right: |
pub const boxdraw_up_right: u16 = 0x2514; |
boxdraw_up_left: |
pub const boxdraw_up_left: u16 = 0x2518; |
boxdraw_vertical_right: |
pub const boxdraw_vertical_right: u16 = 0x251c; |
boxdraw_vertical_left: |
pub const boxdraw_vertical_left: u16 = 0x2524; |
boxdraw_down_horizontal: |
pub const boxdraw_down_horizontal: u16 = 0x252c; |
boxdraw_up_horizontal: |
pub const boxdraw_up_horizontal: u16 = 0x2534; |
boxdraw_vertical_horizontal: |
pub const boxdraw_vertical_horizontal: u16 = 0x253c; |
boxdraw_double_horizontal: |
pub const boxdraw_double_horizontal: u16 = 0x2550; |
boxdraw_double_vertical: |
pub const boxdraw_double_vertical: u16 = 0x2551; |
boxdraw_down_right_double: |
pub const boxdraw_down_right_double: u16 = 0x2552; |
boxdraw_down_double_right: |
pub const boxdraw_down_double_right: u16 = 0x2553; |
boxdraw_double_down_right: |
pub const boxdraw_double_down_right: u16 = 0x2554; |
boxdraw_down_left_double: |
pub const boxdraw_down_left_double: u16 = 0x2555; |
boxdraw_down_double_left: |
pub const boxdraw_down_double_left: u16 = 0x2556; |
boxdraw_double_down_left: |
pub const boxdraw_double_down_left: u16 = 0x2557; |
boxdraw_up_right_double: |
pub const boxdraw_up_right_double: u16 = 0x2558; |
boxdraw_up_double_right: |
pub const boxdraw_up_double_right: u16 = 0x2559; |
boxdraw_double_up_right: |
pub const boxdraw_double_up_right: u16 = 0x255a; |
boxdraw_up_left_double: |
pub const boxdraw_up_left_double: u16 = 0x255b; |
boxdraw_up_double_left: |
pub const boxdraw_up_double_left: u16 = 0x255c; |
boxdraw_double_up_left: |
pub const boxdraw_double_up_left: u16 = 0x255d; |
boxdraw_vertical_right_double: |
pub const boxdraw_vertical_right_double: u16 = 0x255e; |
boxdraw_vertical_double_right: |
pub const boxdraw_vertical_double_right: u16 = 0x255f; |
boxdraw_double_vertical_right: |
pub const boxdraw_double_vertical_right: u16 = 0x2560; |
boxdraw_vertical_left_double: |
pub const boxdraw_vertical_left_double: u16 = 0x2561; |
boxdraw_vertical_double_left: |
pub const boxdraw_vertical_double_left: u16 = 0x2562; |
boxdraw_double_vertical_left: |
pub const boxdraw_double_vertical_left: u16 = 0x2563; |
boxdraw_down_horizontal_double: |
pub const boxdraw_down_horizontal_double: u16 = 0x2564; |
boxdraw_down_double_horizontal: |
pub const boxdraw_down_double_horizontal: u16 = 0x2565; |
boxdraw_double_down_horizontal: |
pub const boxdraw_double_down_horizontal: u16 = 0x2566; |
boxdraw_up_horizontal_double: |
pub const boxdraw_up_horizontal_double: u16 = 0x2567; |
boxdraw_up_double_horizontal: |
pub const boxdraw_up_double_horizontal: u16 = 0x2568; |
boxdraw_double_up_horizontal: |
pub const boxdraw_double_up_horizontal: u16 = 0x2569; |
boxdraw_vertical_horizontal_double: |
pub const boxdraw_vertical_horizontal_double: u16 = 0x256a; |
boxdraw_vertical_double_horizontal: |
pub const boxdraw_vertical_double_horizontal: u16 = 0x256b; |
boxdraw_double_vertical_horizontal: |
pub const boxdraw_double_vertical_horizontal: u16 = 0x256c; |
blockelement_full_block: |
pub const blockelement_full_block: u16 = 0x2588; |
blockelement_light_shade: |
pub const blockelement_light_shade: u16 = 0x2591; |
geometricshape_up_triangle: |
pub const geometricshape_up_triangle: u16 = 0x25b2; |
geometricshape_right_triangle: |
pub const geometricshape_right_triangle: u16 = 0x25ba; |
geometricshape_down_triangle: |
pub const geometricshape_down_triangle: u16 = 0x25bc; |
geometricshape_left_triangle: |
pub const geometricshape_left_triangle: u16 = 0x25c4; |
arrow_up: |
pub const arrow_up: u16 = 0x2591; |
arrow_down: |
pub const arrow_down: u16 = 0x2593; |
Attribute |
pub const Attribute = packed struct(u8) { foreground: ForegroundColor = .white, background: BackgroundColor = .black, |
ForegroundColor |
pub const ForegroundColor = enum(u4) { black, blue, green, cyan, red, magenta, brown, lightgray, darkgray, lightblue, lightgreen, lightcyan, lightred, lightmagenta, yellow, white, }; |
BackgroundColor |
pub const BackgroundColor = enum(u4) { black, blue, green, cyan, red, magenta, brown, lightgray, }; }; |
Mode |
pub const Mode = extern struct { max_mode: u32, // specified as signed mode: u32, // specified as signed attribute: i32, cursor_column: i32, cursor_row: i32, cursor_visible: bool, }; |
Geometry |
pub const Geometry = struct { columns: usize, rows: usize, }; }; |
Generated by zstd-live on 2025-08-13 02:35:12 UTC. |