tree: f21f6813ead12fb46bce51af69a3f9641134d20b [search]
  1. patches/
  2. src/
  3. .android-checksum.json
  4. .cargo-checksum.json
  5. Android.bp
  6. Cargo.toml
  7. cargo_embargo.json
  8. LICENSE
  9. METADATA
  10. MODULE_LICENSE_MIT
  11. README.md
  12. rules.mk
  13. rust-toolchain.toml
  14. TEST_MAPPING
crates/virtio-drivers/README.md

VirtIO-drivers-rs

crates.io page docs.rs page CI

VirtIO guest drivers in Rust. For no_std environment.

Support status

Device types

DeviceSupported
Block✅
Net✅
GPU✅
Input✅
Console✅
Socket✅
...❌

Transports

TransportSupported
Legacy MMIO✅version 1
MMIO✅version 2
PCI✅Memory-mapped CAM only, e.g. aarch64 or PCIe ECAM

Device-independent features

Feature flagSupported
VIRTIO_F_INDIRECT_DESC✅Indirect descriptors
VIRTIO_F_EVENT_IDX✅avail_event and used_event fields
VIRTIO_F_VERSION_1TODOVirtIO 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

x86_64

cd examples/x86_64
make qemu

aarch64

cd examples/aarch64
make qemu

RISCV

cd examples/riscv
make qemu

You will see device info & GUI Window in qemu.