pub struct VirtioNetDevice<T: Transport + Send + Sync> {
virtio_net: SpinLock<Option<Box<VirtIONet<VirtIOHal, T, 256>>>>,
device_id: usize,
name: &'static str,
mac: [u8; 6],
mtu: usize,
}Expand description
使用 virtio-drivers 0.12.0 实现的 Virtio 网络设备
Fields§
§virtio_net: SpinLock<Option<Box<VirtIONet<VirtIOHal, T, 256>>>>§device_id: usize§name: &'static str§mac: [u8; 6]§mtu: usizeImplementations§
Source§impl<T: Transport + Send + Sync> VirtioNetDevice<T>
impl<T: Transport + Send + Sync> VirtioNetDevice<T>
Sourcepub fn new(transport: T, device_id: usize) -> Result<Arc<Self>, NetDeviceError>
pub fn new(transport: T, device_id: usize) -> Result<Arc<Self>, NetDeviceError>
Trait Implementations§
Source§impl<T: Transport + Send + Sync> NetDevice for VirtioNetDevice<T>
impl<T: Transport + Send + Sync> NetDevice for VirtioNetDevice<T>
Source§fn send(&self, packet: &[u8]) -> Result<(), NetDeviceError>
fn send(&self, packet: &[u8]) -> Result<(), NetDeviceError>
发送数据包
Source§fn receive(&self, buf: &mut [u8]) -> Result<usize, NetDeviceError>
fn receive(&self, buf: &mut [u8]) -> Result<usize, NetDeviceError>
接收数据包
Source§fn mac_address(&self) -> [u8; 6]
fn mac_address(&self) -> [u8; 6]
获取MAC地址