qemu/rust/hw/char/pl011
Paolo Bonzini 7bd8e3ef63 rust: qom: split ObjectType from ObjectImpl trait
Define a separate trait for fields that also applies to classes that are
defined by C code.  This makes it possible to add metadata to core classes,
which has multiple uses:

- it makes it possible to access the parent struct's TYPE_* for types
  that are defined in Rust code, and to avoid repeating it in every subclass

- implementors of ObjectType will be allowed to implement the IsA<> trait and
  therefore to perform typesafe casts from one class to another.

- in the future, an ObjectType could be created with Foo::new() in a type-safe
  manner, without having to pass a TYPE_* constant.

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2024-12-11 15:56:54 +01:00
..
src rust: qom: split ObjectType from ObjectImpl trait 2024-12-11 15:56:54 +01:00
Cargo.toml rust: cargo: store desired warning levels in workspace Cargo.toml 2024-12-10 18:44:06 +01:00
meson.build rust: add PL011 device model 2024-11-05 14:18:15 +01:00
README.md rust: add PL011 device model 2024-11-05 14:18:15 +01:00

PL011 QEMU Device Model

This library implements a device model for the PrimeCell® UART (PL011) device in QEMU.

Build static lib

Host build target must be explicitly specified:

cargo build --target x86_64-unknown-linux-gnu

Replace host target triplet if necessary.

Generate Rust documentation

To generate docs for this crate, including private items:

cargo doc --no-deps --document-private-items --target x86_64-unknown-linux-gnu

To include direct dependencies like bilge (bitmaps for register types):

cargo tree --depth 1 -e normal --prefix none \
 | cut -d' ' -f1 \
 | xargs printf -- '-p %s\n' \
 | xargs cargo doc --no-deps --document-private-items --target x86_64-unknown-linux-gnu