[PATCH v2 0/2] rust: virtio: add virtio support

From: Daniel Almeida
Date: Wed Apr 05 2023 - 16:14:45 EST


This used to be a single patch, but I split it into two with the
addition of struct Scatterlist.

Again a bit new with Rust submissions. I was told by Gary Guo to
rebase on top of rust-next, but it seems *very* behind?

The first patch does not build on its own due to a dead_code warning.
It is hard to not have dead code when one is adding infrastructure to be
used by others at a later opportunity. Let me know if you would like to
see the patches squashed into one to fix this.

As suggested by Bjorn, I added a small virtio-entropy based sample.
It is a very bare-bones clone of virtio-rng.c that only sends a
single request.

Changes from v1:

- Addressed review comments by Miguel and Bjorn.
- Added a scatterlist abstraction
- Added a virtio-rng based sample

Daniel Almeida (2):
rust: add scatterlist support
rust: virtio: add virtio support

rust/bindings/bindings_helper.h | 3 +
rust/helpers.c | 25 +++
rust/kernel/lib.rs | 3 +
rust/kernel/scatterlist.rs | 40 +++++
rust/kernel/virtio.rs | 261 ++++++++++++++++++++++++++++++++
rust/kernel/virtio/virtqueue.rs | 126 +++++++++++++++
samples/rust/Kconfig | 10 ++
samples/rust/Makefile | 1 +
samples/rust/rust_virtio.rs | 195 ++++++++++++++++++++++++
9 files changed, 664 insertions(+)
create mode 100644 rust/kernel/scatterlist.rs
create mode 100644 rust/kernel/virtio.rs
create mode 100644 rust/kernel/virtio/virtqueue.rs
create mode 100644 samples/rust/rust_virtio.rs

--
2.40.0