mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-23 07:58:36 -07:00
Parameterize the implementation of ClassInitImpl so that it is possible to call up the chain of implementations, one superclass at a time starting at ClassInitImpl<Self::Class>. In order to avoid having to implement (for example) ClassInitImpl<PL011Class>, also remove the dummy PL011Class and PL011LuminaryClass structs and specify the same ObjectType::Class as the superclass. In the future this default behavior can be handled by a procedural macro, by looking at the first field in the struct. Note that the new trait is safe: the calls are started by rust_class_init<>(), which is not public and can convert the class pointer to a Rust reference. Since CLASS_BASE_INIT applies to the type that is being defined, and only to it, move it to ObjectImpl. Reviewed-by: Zhao Liu <zhao1.liu@intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.toml | ||
| meson.build | ||
| README.md | ||
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