Trait NetDriver
Source pub trait NetDriver {
Show 17 methods
// Required methods
fn device(&self) -> &Device;
fn device_mut(&mut self) -> &mut Device;
fn setup_rx_queue(&mut self, len: usize) -> Result<QueueHandle, TwzError>;
fn destroy_rx_queue(&mut self, queue: QueueHandle) -> Result<(), TwzError>;
fn setup_tx_queue(&mut self, len: usize) -> Result<QueueHandle, TwzError>;
fn destroy_tx_queue(&mut self, queue: QueueHandle) -> Result<(), TwzError>;
fn tx_queues(&self) -> Vec<QueueHandle> ⓘ;
fn rx_queues(&self) -> Vec<QueueHandle> ⓘ;
fn rx_packet_buffer(&self, queue: QueueHandle) -> &DmaPacketObject;
fn tx_packet_buffer(&self, queue: QueueHandle) -> &DmaPacketObject;
fn mac_address(&self, queue: QueueHandle) -> Result<[u8; 6], TwzError>;
fn recv_packets(
&mut self,
queue: QueueHandle,
packets: &mut [Packet],
) -> Result<usize, TwzError>;
fn send_packets(
&mut self,
queue: QueueHandle,
packets: &mut [Packet],
) -> Result<usize, TwzError>;
fn has_work(&self, queue: QueueHandle) -> WorkItems;
fn waitpoint(&self, queue: QueueHandle) -> ThreadSync;
// Provided methods
fn features(&self) -> Features { ... }
fn set_mac_address(
&self,
_queue: QueueHandle,
_addr: [u8; 6],
) -> Result<(), TwzError> { ... }
}