Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | - | - | ||||
patches/ | 25-Apr-2025 | - | 269 | 258 | ||
src/ | 25-Apr-2025 | - | 8,622 | 6,054 | ||
.cargo-checksum.json | D | 25-Apr-2025 | 2.6 KiB | 1 | 1 | |
Android.bp | D | 25-Apr-2025 | 1.5 KiB | 63 | 57 | |
Cargo.toml | D | 25-Apr-2025 | 1.2 KiB | 49 | 42 | |
LICENSE | D | 25-Apr-2025 | 1.1 KiB | 21 | 17 | |
METADATA | D | 25-Apr-2025 | 385 | 18 | 17 | |
MODULE_LICENSE_MIT | D | 25-Apr-2025 | 0 | |||
README.md | D | 25-Apr-2025 | 2.5 KiB | 71 | 52 | |
TEST_MAPPING | D | 25-Apr-2025 | 82 | 8 | 7 | |
cargo_embargo.json | D | 25-Apr-2025 | 482 | 27 | 26 | |
rules.mk | D | 25-Apr-2025 | 749 | 25 | 17 | |
rust-toolchain.toml | D | 25-Apr-2025 | 86 | 5 | 4 |
README.md
1# VirtIO-drivers-rs 2 3[](https://crates.io/crates/virtio-drivers) 4[](https://docs.rs/virtio-drivers) 5[](https://github.com/rcore-os/virtio-drivers/actions) 6 7VirtIO guest drivers in Rust. For **no_std** environment. 8 9## Support status 10 11### Device types 12 13| Device | Supported | 14| ------- | --------- | 15| Block | ✅ | 16| Net | ✅ | 17| GPU | ✅ | 18| Input | ✅ | 19| Console | ✅ | 20| Socket | ✅ | 21| ... | ❌ | 22 23### Transports 24 25| Transport | Supported | | 26| ----------- | --------- | ------------------------------------------------- | 27| Legacy MMIO | ✅ | version 1 | 28| MMIO | ✅ | version 2 | 29| PCI | ✅ | Memory-mapped CAM only, e.g. aarch64 or PCIe ECAM | 30 31### Device-independent features 32 33| Feature flag | Supported | | 34| ---------------------------- | --------- | --------------------------------------- | 35| `VIRTIO_F_INDIRECT_DESC` | ✅ | Indirect descriptors | 36| `VIRTIO_F_EVENT_IDX` | ✅ | `avail_event` and `used_event` fields | 37| `VIRTIO_F_VERSION_1` | TODO | VirtIO version 1 compliance | 38| `VIRTIO_F_ACCESS_PLATFORM` | ❌ | Limited device access to memory | 39| `VIRTIO_F_RING_PACKED` | ❌ | Packed virtqueue layout | 40| `VIRTIO_F_IN_ORDER` | ❌ | Optimisations for in-order buffer usage | 41| `VIRTIO_F_ORDER_PLATFORM` | ❌ | Platform ordering for memory access | 42| `VIRTIO_F_SR_IOV` | ❌ | Single root I/O virtualization | 43| `VIRTIO_F_NOTIFICATION_DATA` | ❌ | Extra data in device notifications | 44 45## Examples & Tests 46 47### [x86_64](./examples/x86_64) 48 49```bash 50cd examples/x86_64 51make qemu 52``` 53 54### [aarch64](./examples/aarch64) 55 56```bash 57cd examples/aarch64 58make qemu 59``` 60 61### [RISCV](./examples/riscv) 62 63```bash 64cd examples/riscv 65make qemu 66``` 67 68You will see device info & GUI Window in qemu. 69 70<img decoding="async" src="https://github.com/rcore-os/virtio-drivers/raw/master/examples/riscv/virtio-test-gpu.png" width="50%"> 71