Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | - | - | ||||
patches/ | 04-Jul-2025 | - | 194 | 185 | ||
src/ | 04-Jul-2025 | - | 11,854 | 8,589 | ||
.android-checksum.json | D | 04-Jul-2025 | 4.2 KiB | 1 | 1 | |
.cargo-checksum.json | D | 04-Jul-2025 | 3.5 KiB | 1 | 1 | |
Android.bp | D | 04-Jul-2025 | 1.7 KiB | 68 | 62 | |
Cargo.toml | D | 04-Jul-2025 | 1.6 KiB | 74 | 63 | |
LICENSE | D | 04-Jul-2025 | 1.1 KiB | 21 | 17 | |
METADATA | D | 04-Jul-2025 | 385 | 18 | 17 | |
MODULE_LICENSE_MIT | D | 04-Jul-2025 | 0 | |||
README.md | D | 04-Jul-2025 | 2.5 KiB | 72 | 53 | |
TEST_MAPPING | D | 04-Jul-2025 | 82 | 8 | 7 | |
cargo_embargo.json | D | 04-Jul-2025 | 639 | 32 | 32 | |
rules.mk | D | 04-Jul-2025 | 809 | 27 | 19 | |
rust-toolchain.toml | D | 04-Jul-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| Sound | ✅ | 22| ... | ❌ | 23 24### Transports 25 26| Transport | Supported | | 27| ----------- | --------- | ------------------------------------------------- | 28| Legacy MMIO | ✅ | version 1 | 29| MMIO | ✅ | version 2 | 30| PCI | ✅ | Memory-mapped CAM only, e.g. aarch64 or PCIe ECAM | 31 32### Device-independent features 33 34| Feature flag | Supported | | 35| ---------------------------- | --------- | --------------------------------------- | 36| `VIRTIO_F_INDIRECT_DESC` | ✅ | Indirect descriptors | 37| `VIRTIO_F_EVENT_IDX` | ✅ | `avail_event` and `used_event` fields | 38| `VIRTIO_F_VERSION_1` | TODO | VirtIO version 1 compliance | 39| `VIRTIO_F_ACCESS_PLATFORM` | ❌ | Limited device access to memory | 40| `VIRTIO_F_RING_PACKED` | ❌ | Packed virtqueue layout | 41| `VIRTIO_F_IN_ORDER` | ❌ | Optimisations for in-order buffer usage | 42| `VIRTIO_F_ORDER_PLATFORM` | ❌ | Platform ordering for memory access | 43| `VIRTIO_F_SR_IOV` | ❌ | Single root I/O virtualization | 44| `VIRTIO_F_NOTIFICATION_DATA` | ❌ | Extra data in device notifications | 45 46## Examples & Tests 47 48### [x86_64](./examples/x86_64) 49 50```bash 51cd examples/x86_64 52make qemu 53``` 54 55### [aarch64](./examples/aarch64) 56 57```bash 58cd examples/aarch64 59make qemu 60``` 61 62### [RISCV](./examples/riscv) 63 64```bash 65cd examples/riscv 66make qemu 67``` 68 69You will see device info & GUI Window in qemu. 70 71<img decoding="async" src="https://github.com/rcore-os/virtio-drivers/raw/master/examples/riscv/virtio-test-gpu.png" width="50%"> 72