Skip to main content

Interface

Trait Interface 

Source
pub trait Interface: DriverGeneric {
    // Required methods
    fn mac_address(&self) -> [u8; 6];
    fn create_tx_queue(&mut self) -> Option<Box<dyn ITxQueue>>;
    fn create_rx_queue(&mut self) -> Option<Box<dyn IRxQueue>>;
    fn enable_irq(&mut self);
    fn disable_irq(&mut self);
    fn is_irq_enabled(&self) -> bool;
    fn handle_irq(&mut self) -> Event;
}
Expand description

Core interface that network device drivers must implement.

Provides device-level operations: queue creation, interrupt management, and MAC address retrieval. Individual packet I/O goes through the queue traits (ITxQueue / IRxQueue).

Required Methods§

Source

fn mac_address(&self) -> [u8; 6]

Returns the device’s 6-byte MAC address.

Source

fn create_tx_queue(&mut self) -> Option<Box<dyn ITxQueue>>

Create a new transmit queue. Returns None if no more queues are available.

Source

fn create_rx_queue(&mut self) -> Option<Box<dyn IRxQueue>>

Create a new receive queue. Returns None if no more queues are available.

Source

fn enable_irq(&mut self)

Enable device interrupts.

Source

fn disable_irq(&mut self)

Disable device interrupts.

Source

fn is_irq_enabled(&self) -> bool

Check whether device interrupts are currently enabled.

Source

fn handle_irq(&mut self) -> Event

Handle a device interrupt, returning which queues have events.

Implementors§