|
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; |
SerialIoSets the baud rate, receive FIFO depth, transmit/receive time out, parity, data bits, and stop bits on a serial device. |
pub const SerialIo = extern struct { revision: u64, _reset: *const fn (*SerialIo) callconv(cc) Status, _set_attribute: *const fn (*SerialIo, u64, u32, u32, ParityType, u8, StopBitsType) callconv(cc) Status, _set_control: *const fn (*SerialIo, u32) callconv(cc) Status, _get_control: *const fn (*const SerialIo, *u32) callconv(cc) Status, _write: *const fn (*SerialIo, *usize, *const anyopaque) callconv(cc) Status, _read: *const fn (*SerialIo, *usize, *anyopaque) callconv(cc) Status, mode: *Mode, device_type_guid: ?*Guid, |
ResetErrorSets the control bits on a serial device. |
pub const ResetError = uefi.UnexpectedError || error{DeviceError}; |
SetAttributeErrorRetrieves the status of the control bits on a serial device. |
pub const SetAttributeError = uefi.UnexpectedError || error{ InvalidParameter, DeviceError, }; |
SetControlErrorWrites data to a serial device. |
pub const SetControlError = uefi.UnexpectedError || error{ Unsupported, DeviceError, }; |
GetControlErrorReads data from a serial device. |
pub const GetControlError = uefi.UnexpectedError || error{DeviceError}; |
WriteError |
pub const WriteError = uefi.UnexpectedError || error{ DeviceError, Timeout, }; |
ReadError |
pub const ReadError = uefi.UnexpectedError || error{ DeviceError, Timeout, }; |
reset() |
/// Resets the serial device. pub fn reset(self: *SerialIo) ResetError!void { switch (self._reset(self)) { .success => {}, .device_error => return Error.DeviceError, else => |status| return uefi.unexpectedStatus(status), } } |
setAttribute() |
/// Sets the baud rate, receive FIFO depth, transmit/receive time out, parity, data bits, and stop bits on a serial device. pub fn setAttribute( self: *SerialIo, baud_rate: u64, receiver_fifo_depth: u32, timeout: u32, parity: ParityType, data_bits: u8, stop_bits: StopBitsType, ) SetAttributeError!void { switch (self._set_attribute( self, baud_rate, receiver_fifo_depth, timeout, parity, data_bits, stop_bits, )) { .success => {}, .invalid_parameter => return Error.InvalidParameter, .device_error => return Error.DeviceError, else => |status| return uefi.unexpectedStatus(status), } } |
setControl() |
/// Sets the control bits on a serial device. pub fn setControl(self: *SerialIo, control: u32) SetControlError!void { switch (self._set_control(self, control)) { .success => {}, .unsupported => return Error.Unsupported, .device_error => return Error.DeviceError, else => |status| return uefi.unexpectedStatus(status), } } |
getControl() |
/// Retrieves the status of the control bits on a serial device. pub fn getControl(self: *SerialIo) GetControlError!u32 { var control: u32 = undefined; switch (self._get_control(self, &control)) { .success => return control, .device_error => return Error.DeviceError, else => |status| return uefi.unexpectedStatus(status), } } |
write() |
/// Writes data to a serial device. pub fn write(self: *SerialIo, buffer: []const u8) WriteError!usize { var len: usize = buffer.len; switch (self._write(self, &len, buffer.ptr)) { .success => return len, .device_error => return Error.DeviceError, .timeout => return Error.Timeout, else => |status| return uefi.unexpectedStatus(status), } } |
read() |
/// Reads data from a serial device. pub fn read(self: *SerialIo, buffer: []u8) ReadError!usize { var len: usize = buffer.len; switch (self._read(self, &len, buffer.ptr)) { .success => return len, .device_error => return Error.DeviceError, .timeout => return Error.Timeout, else => |status| return uefi.unexpectedStatus(status), } } |
guid |
pub const guid align(8) = Guid{ .time_low = 0xBB25CF6F, .time_mid = 0xF1D4, .time_high_and_version = 0x11D2, .clock_seq_high_and_reserved = 0x9a, .clock_seq_low = 0x0c, .node = [_]u8{ 0x00, 0x90, 0x27, 0x3f, 0xc1, 0xfd }, }; |
ParityType |
pub const ParityType = enum(u32) { default_parity, no_parity, even_parity, odd_parity, mark_parity, space_parity, }; |
StopBitsType |
pub const StopBitsType = enum(u32) { default_stop_bits, one_stop_bit, one_five_stop_bits, two_stop_bits, }; |
Mode |
pub const Mode = extern struct { control_mask: u32, timeout: u32, baud_rate: u64, receive_fifo_depth: u32, data_bits: u32, parity: u32, stop_bits: u32, }; }; |
Generated by zstd-live on 2025-08-13 02:35:12 UTC. |