| Name | Date | Size | #Lines | LOC | ||
|---|---|---|---|---|---|---|
| .. | - | - | ||||
| .github/workflows/ | 06-Sep-2024 | - | 81 | 76 | ||
| patches/ | 06-Sep-2024 | - | 290 | 279 | ||
| src/ | 06-Sep-2024 | - | 8,419 | 5,902 | ||
| .cargo_vcs_info.json | D | 06-Sep-2024 | 94 | 6 | 6 | |
| .gitignore | D | 06-Sep-2024 | 28 | 4 | 3 | |
| Android.bp | D | 06-Sep-2024 | 1.6 KiB | 66 | 61 | |
| Cargo.toml | D | 06-Sep-2024 | 1.2 KiB | 49 | 42 | |
| Cargo.toml.orig | D | 06-Sep-2024 | 655 | 28 | 24 | |
| LICENSE | D | 06-Sep-2024 | 1.1 KiB | 21 | 17 | |
| METADATA | D | 06-Sep-2024 | 620 | 21 | 19 | |
| MODULE_LICENSE_MIT | D | 06-Sep-2024 | 0 | |||
| OWNERS | D | 06-Sep-2024 | 45 | 2 | 1 | |
| README.md | D | 06-Sep-2024 | 2.5 KiB | 71 | 52 | |
| cargo2rulesmk.json | D | 06-Sep-2024 | 40 | 3 | 3 | |
| cargo_embargo.json | D | 06-Sep-2024 | 305 | 18 | 17 | |
| rules.mk | D | 06-Sep-2024 | 572 | 22 | 15 | |
| rust-toolchain.toml | D | 06-Sep-2024 | 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