extern structstd.os.uefi.protocol.serial_io.SerialIo[src]

Fields

revision: u64
_reset: *const fn (*const SerialIo) callconv(cc) Status
_set_attribute: *const fn (*const SerialIo, u64, u32, u32, ParityType, u8, StopBitsType) callconv(cc) Status
_set_control: *const fn (*const SerialIo, u32) callconv(cc) Status
_get_control: *const fn (*const SerialIo, *u32) callconv(cc) Status
_write: *const fn (*const SerialIo, *usize, *anyopaque) callconv(cc) Status
_read: *const fn (*const SerialIo, *usize, *anyopaque) callconv(cc) Status
mode: *Mode
device_type_guid: ?*Guid

Values

Constantguid[src]

Source Code

Source code
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 },
}

Functions

Functionreset[src]

pub fn reset(self: *const SerialIo) Status

Resets the serial device.

Parameters

self: *const SerialIo

Source Code

Source code
pub fn reset(self: *const SerialIo) Status {
    return self._reset(self);
}

FunctionsetAttribute[src]

pub fn setAttribute(self: *const SerialIo, baud_rate: u64, receiver_fifo_depth: u32, timeout: u32, parity: ParityType, data_bits: u8, stop_bits: StopBitsType) Status

Sets the baud rate, receive FIFO depth, transmit/receive time out, parity, data bits, and stop bits on a serial device.

Parameters

self: *const SerialIo
baud_rate: u64
receiver_fifo_depth: u32
timeout: u32
parity: ParityType
data_bits: u8
stop_bits: StopBitsType

Source Code

Source code
pub fn setAttribute(self: *const SerialIo, baud_rate: u64, receiver_fifo_depth: u32, timeout: u32, parity: ParityType, data_bits: u8, stop_bits: StopBitsType) Status {
    return self._set_attribute(self, baud_rate, receiver_fifo_depth, timeout, parity, data_bits, stop_bits);
}

FunctionsetControl[src]

pub fn setControl(self: *const SerialIo, control: u32) Status

Sets the control bits on a serial device.

Parameters

self: *const SerialIo
control: u32

Source Code

Source code
pub fn setControl(self: *const SerialIo, control: u32) Status {
    return self._set_control(self, control);
}

FunctiongetControl[src]

pub fn getControl(self: *const SerialIo, control: *u32) Status

Retrieves the status of the control bits on a serial device.

Parameters

self: *const SerialIo
control: *u32

Source Code

Source code
pub fn getControl(self: *const SerialIo, control: *u32) Status {
    return self._get_control(self, control);
}

Functionwrite[src]

pub fn write(self: *const SerialIo, buffer_size: *usize, buffer: *anyopaque) Status

Writes data to a serial device.

Parameters

self: *const SerialIo
buffer_size: *usize
buffer: *anyopaque

Source Code

Source code
pub fn write(self: *const SerialIo, buffer_size: *usize, buffer: *anyopaque) Status {
    return self._write(self, buffer_size, buffer);
}

Functionread[src]

pub fn read(self: *const SerialIo, buffer_size: *usize, buffer: *anyopaque) Status

Reads data from a serial device.

Parameters

self: *const SerialIo
buffer_size: *usize
buffer: *anyopaque

Source Code

Source code
pub fn read(self: *const SerialIo, buffer_size: *usize, buffer: *anyopaque) Status {
    return self._read(self, buffer_size, buffer);
}

Source Code

Source code
pub const SerialIo = extern struct {
    revision: u64,
    _reset: *const fn (*const SerialIo) callconv(cc) Status,
    _set_attribute: *const fn (*const SerialIo, u64, u32, u32, ParityType, u8, StopBitsType) callconv(cc) Status,
    _set_control: *const fn (*const SerialIo, u32) callconv(cc) Status,
    _get_control: *const fn (*const SerialIo, *u32) callconv(cc) Status,
    _write: *const fn (*const SerialIo, *usize, *anyopaque) callconv(cc) Status,
    _read: *const fn (*const SerialIo, *usize, *anyopaque) callconv(cc) Status,
    mode: *Mode,
    device_type_guid: ?*Guid,

    /// Resets the serial device.
    pub fn reset(self: *const SerialIo) Status {
        return self._reset(self);
    }

    /// 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: *const SerialIo, baud_rate: u64, receiver_fifo_depth: u32, timeout: u32, parity: ParityType, data_bits: u8, stop_bits: StopBitsType) Status {
        return self._set_attribute(self, baud_rate, receiver_fifo_depth, timeout, parity, data_bits, stop_bits);
    }

    /// Sets the control bits on a serial device.
    pub fn setControl(self: *const SerialIo, control: u32) Status {
        return self._set_control(self, control);
    }

    /// Retrieves the status of the control bits on a serial device.
    pub fn getControl(self: *const SerialIo, control: *u32) Status {
        return self._get_control(self, control);
    }

    /// Writes data to a serial device.
    pub fn write(self: *const SerialIo, buffer_size: *usize, buffer: *anyopaque) Status {
        return self._write(self, buffer_size, buffer);
    }

    /// Reads data from a serial device.
    pub fn read(self: *const SerialIo, buffer_size: *usize, buffer: *anyopaque) Status {
        return self._read(self, buffer_size, buffer);
    }

    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 },
    };

    pub const ParityType = enum(u32) {
        default_parity,
        no_parity,
        even_parity,
        odd_parity,
        mark_parity,
        space_parity,
    };

    pub const StopBitsType = enum(u32) {
        default_stop_bits,
        one_stop_bit,
        one_five_stop_bits,
        two_stop_bits,
    };

    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,
    };
}