qemu/rust
Zhao Liu 6f8e6aed81 rust/vmstate: Add support for field_exists checks
Unfortunately, at present it's not possible to have a const
"with_exist_check" method to append test_fn after vmstate_struct (due
to error on "constant functions cannot evaluate destructors" for `F`).

Before the vmstate builder, the only way to support "test_fn" is to
extend vmstate_struct macro to add the such new optional member (and
fortunately, Rust can still parse the current expansion!).

Abstract the previous callback implementation of vmstate_validate into
a separate macro, and moves it before vmstate_struct for vmstate_struct
to call.

Note that there's no need to add any extra flag for a new test_fn added
in the VMStateField.

Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
Link: https://lore.kernel.org/r/20250414144943.1112885-2-zhao1.liu@intel.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-05-02 17:37:46 +02:00
..
hw rust/hw/char/pl011: Extract DR write logic into separate function 2025-04-23 10:35:23 +02:00
qemu-api rust/vmstate: Add support for field_exists checks 2025-05-02 17:37:46 +02:00
qemu-api-macros rust: qemu_api_macros: add Wrapper derive macro 2025-03-06 12:44:46 +01:00
.gitignore rust: add bindgen step as a meson dependency 2024-10-11 12:32:17 +02:00
Cargo.lock rust: subprojects: add libc crate 2025-02-25 10:49:23 +01:00
Cargo.toml rust: hpet: decode HPET registers into enums 2025-03-06 12:44:47 +01:00
clippy.toml rust: add clippy configuration file 2025-02-07 15:51:01 +01:00
Kconfig rust: add PL011 device model 2024-11-05 14:18:15 +01:00
meson.build rust: build: add "make clippy", "make rustfmt", "make rustdoc" 2024-12-10 18:44:06 +01:00
rustfmt.toml rust: add crate to expose bindings and interfaces 2024-10-11 12:32:17 +02:00
wrapper.h include/system: Move exec/address-spaces.h to system/address-spaces.h 2025-04-23 14:08:21 -07:00