DoxigAlpha

transmit

Places a packet in the transmit queue of a network interface.

Function parameters

Parameters

#
self:*SimpleNetwork
header_size:usize
buffer:[]const u8
src_addr:?*const MacAddress
dest_addr:?*const MacAddress
protocol:?*const u16

Type definitions in this namespace

Types

#

Source

Implementation

#
pub fn transmit(
    self: *SimpleNetwork,
    header_size: usize,
    buffer: []const u8,
    src_addr: ?*const MacAddress,
    dest_addr: ?*const MacAddress,
    protocol: ?*const u16,
) TransmitError!void {
    switch (self._transmit(
        self,
        header_size,
        buffer.len,
        buffer.ptr,
        src_addr,
        dest_addr,
        protocol,
    )) {
        .success => {},
        .not_started => return Error.NotStarted,
        .not_ready => return Error.NotReady,
        .buffer_too_small => return Error.BufferTooSmall,
        .invalid_parameter => return Error.InvalidParameter,
        .device_error => return Error.DeviceError,
        .unsupported => return Error.Unsupported,
        else => |status| return uefi.unexpectedStatus(status),
    }
}