On Tue, 11 Jun 2024 11:22, "Daniel P. Berrangé" <berra...@redhat.com> wrote:
On Mon, Jun 10, 2024 at 09:22:35PM +0300, Manos Pitsidianakis wrote:
Hello everyone,
This is an early draft of my work on implementing a very simple device,
in this case the ARM PL011 (which in C code resides in hw/char/pl011.c
and is used in hw/arm/virt.c).
looking at the diffstat:
.gitignore | 2 +
.gitlab-ci.d/buildtest.yml | 64 ++--
configure | 12 +
hw/arm/virt.c | 2 +-
meson.build | 99 ++++++
meson_options.txt | 4 +
rust/meson.build | 93 ++++++
rust/pl011/.cargo/config.toml | 2 +
rust/pl011/.gitignore | 2 +
rust/pl011/Cargo.lock | 120 +++++++
rust/pl011/Cargo.toml | 26 ++
rust/pl011/README.md | 42 +++
rust/pl011/build.rs | 44 +++
rust/pl011/meson.build | 7 +
rust/pl011/rustfmt.toml | 10 +
rust/pl011/src/definitions.rs | 95 ++++++
rust/pl011/src/device.rs | 531 ++++++++++++++++++++++++++++++
rust/pl011/src/device_class.rs | 95 ++++++
rust/pl011/src/generated.rs | 5 +
rust/pl011/src/lib.rs | 575 +++++++++++++++++++++++++++++++++
rust/pl011/src/memory_ops.rs | 38 +++
My thought is that if we're going to start implementing devices
or other parts of QEMU, in Rust, then I do not want to see it
placed in a completely separate directory sub-tree.
In this example, I would expect to have hw/arm/pl011.rs, or hw/arm/pl011/*.rs
so that the device is part of the normal Arm hardware directory structure
and maintainer assignments.
I agree 100%, but I thought it was not my place to decide that, it's
part of the "request for comments" side of this series.