VirtIO guest drivers in Rust. For no_std environment. fork from rcore-os

LoGin f91c807965 feat(virtio-blk): add interrupt enable and disable function for virtio-blk (#4) 6 months ago
.github 172b19bdde chore: set toolchain in toml & simplify CI config 11 months ago
examples a4b236f55d fix: stable for aarch 11 months ago
src f91c807965 feat(virtio-blk): add interrupt enable and disable function for virtio-blk (#4) 6 months ago
.gitignore 79ac8bf5fd Ignore all target directories in one .gitignore. 2 years ago
Cargo.toml 2f12110205 Prepare for 0.7.2 release. (#129) 6 months ago
LICENSE 6c88bcf3ed add simple README and LICENSE 4 years ago
README.md 7385d61153 Add support for VIRTIO_F_EVENT_IDX buffer notification suppression. 1 year ago
rust-toolchain.toml 172b19bdde chore: set toolchain in toml & simplify CI config 11 months ago

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

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_event and used_event fields
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

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.