VirtIO-drivers-rs
 
 

VirtIO guest drivers in Rust. For no_std environment.
Support status
Device types
| Device | Supported | 
| Block | ✅ | 
| Net | ✅ | 
| GPU | ✅ | 
| Input | ✅ | 
| Console | ✅ | 
| Socket | ✅ | 
| ... | ❌ | 
Transports
| Transport | Supported |  | 
| Legacy MMIO | ✅ | version 1 | 
| MMIO | ✅ | version 2 | 
| PCI | ✅ | Memory-mapped CAM only, e.g. aarch64 or PCIe ECAM | 
Device-independent features
| Feature flag | Supported |  | 
| VIRTIO_F_INDIRECT_DESC | ✅ | Indirect descriptors | 
| VIRTIO_F_EVENT_IDX | ✅ | avail_eventandused_eventfields | 
| VIRTIO_F_VERSION_1 | TODO | VirtIO version 1 compliance | 
| VIRTIO_F_ACCESS_PLATFORM | ❌ | Limited device access to memory | 
| VIRTIO_F_RING_PACKED | ❌ | Packed virtqueue layout | 
| VIRTIO_F_IN_ORDER | ❌ | Optimisations for in-order buffer usage | 
| VIRTIO_F_ORDER_PLATFORM | ❌ | Platform ordering for memory access | 
| VIRTIO_F_SR_IOV | ❌ | Single root I/O virtualization | 
| VIRTIO_F_NOTIFICATION_DATA | ❌ | Extra data in device notifications | 
Examples & Tests
cd examples/x86_64
make qemu
cd examples/aarch64
make qemu
cd examples/riscv
make qemu
You will see device info & GUI Window in qemu.
