On Fri, Jan 17, 2025 at 08:40:02PM +0100, Paolo Bonzini wrote:
> Date: Fri, 17 Jan 2025 20:40:02 +0100
> From: Paolo Bonzini <pbonzini@redhat.com>
> Subject: [PATCH 09/10] rust: bindings: add Sync markers to types referred
> to by MemoryRegionOps
> X-Mailer: git-send-email 2.47.1
>
> This is needed for the MemoryRegionOps<T> to be declared as static;
> Rust requires static elements to be Sync.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> rust/qemu-api/src/bindings.rs | 19 ++++++++++++++++++-
> rust/qemu-api/src/irq.rs | 3 +++
> 2 files changed, 21 insertions(+), 1 deletion(-)
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
> diff --git a/rust/qemu-api/src/bindings.rs b/rust/qemu-api/src/bindings.rs
> index 8a9b821bb91..3f61264ab80 100644
> --- a/rust/qemu-api/src/bindings.rs
> +++ b/rust/qemu-api/src/bindings.rs
> @@ -21,7 +21,24 @@
> #[cfg(not(MESON))]
> include!(concat!(env!("OUT_DIR"), "/bindings.inc.rs"));
>
> -unsafe impl Send for Property {}
I guess this is a rebase mistake since latest rust-next drops this
change :-).
> +// SAFETY: these are implemented in C; the bindings need to assert that the
> +// BQL is taken, either directly or via `BqlCell` and `BqlRefCell`.
> +unsafe impl Sync for BusState {}
We haven't used BusState but it's fine, as the basic support, and after
all bindings file has this type.