| Name | Date | Size | #Lines | LOC | ||
|---|---|---|---|---|---|---|
| .. | - | - | ||||
| .github/workflows/ | 03-May-2024 | - | 97 | 92 | ||
| patches/ | 03-May-2024 | - | 18 | 17 | ||
| src/ | 03-May-2024 | - | 6,350 | 4,401 | ||
| .cargo_vcs_info.json | D | 03-May-2024 | 94 | 6 | 6 | |
| .gitignore | D | 03-May-2024 | 28 | 4 | 3 | |
| Android.bp | D | 03-May-2024 | 1.3 KiB | 57 | 52 | |
| Cargo.toml | D | 03-May-2024 | 1.1 KiB | 44 | 38 | |
| Cargo.toml.orig | D | 03-May-2024 | 525 | 25 | 22 | |
| LICENSE | D | 03-May-2024 | 1.1 KiB | 21 | 17 | |
| METADATA | D | 03-May-2024 | 632 | 24 | 22 | |
| MODULE_LICENSE_MIT | D | 03-May-2024 | 0 | |||
| OWNERS | D | 03-May-2024 | 47 | 2 | 1 | |
| README.md | D | 03-May-2024 | 2.4 KiB | 66 | 48 | |
| cargo2android.json | D | 03-May-2024 | 214 | 12 | 11 |
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 (TODO) 48 49### [aarch64](./examples/aarch64) 50 51```bash 52cd examples/aarch64 53make qemu 54``` 55 56### [RISCV](./examples/riscv) 57 58```bash 59cd examples/riscv 60make qemu 61``` 62 63You will see device info & GUI Window in qemu. 64 65<img decoding="async" src="https://github.com/rcore-os/virtio-drivers/raw/master/examples/riscv/virtio-test-gpu.png" width="50%"> 66