Paolo Bonzini 6b4f7b0705 rust: pl011: fix migration stream
The Rust vmstate macros lack the type-safety of their C equivalents (so
safe, much abstraction), and therefore they were predictably wrong.

The registers have already been changed to 32-bits in the previous patch,
but read_pos/read_count/read_trigger also have to be u32 instead of usize.
The easiest way to do so is to let the FIFO use u32 indices instead
of usize.

My plan for making VMStateField typesafe is to have a trait to retrieve
a basic VMStateField; for example something like vmstate_uint32 would
become an implementation of the VMState trait on u32.  Then you'd write
something like "vmstate_of!(Type, field).with_version_id(2)".  That is,
vmstate_of retrieves the basic VMStateField and fills in the offset,
and then more changes can be applied on top.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2024-12-19 19:36:38 +01:00
..
2024-12-19 19:36:38 +01:00
2024-11-05 14:18:15 +01:00
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