[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 02/13] vmstate: support varray for vmstate_clock!
From: |
Paolo Bonzini |
Subject: |
[PULL 02/13] vmstate: support varray for vmstate_clock! |
Date: |
Sat, 3 May 2025 09:58:47 +0200 |
Make vmstate_struct and vmstate_clock more similar; they are basically the
same thing, except for the clock case having a built-in VMStateDescription.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
rust/qemu-api/src/vmstate.rs | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/rust/qemu-api/src/vmstate.rs b/rust/qemu-api/src/vmstate.rs
index 8c4a5bee3c1..9ae97c389c1 100644
--- a/rust/qemu-api/src/vmstate.rs
+++ b/rust/qemu-api/src/vmstate.rs
@@ -507,7 +507,7 @@ macro_rules! vmstate_struct {
#[doc(alias = "VMSTATE_CLOCK")]
#[macro_export]
macro_rules! vmstate_clock {
- ($struct_name:ty, $field_name:ident) => {{
+ ($struct_name:ty, $field_name:ident $([0 .. $num:ident $(*
$factor:expr)?])?) => {{
$crate::bindings::VMStateField {
name: ::core::concat!(::core::stringify!($field_name), "\0")
.as_bytes()
@@ -516,7 +516,7 @@ macro_rules! vmstate_clock {
$crate::assert_field_type!(
$struct_name,
$field_name,
- $crate::qom::Owned<$crate::qdev::Clock>
+ $crate::qom::Owned<$crate::qdev::Clock> $(, num = $num)?
);
$crate::offset_of!($struct_name, $field_name)
},
@@ -527,7 +527,14 @@ macro_rules! vmstate_clock {
),
vmsd: unsafe {
::core::ptr::addr_of!($crate::bindings::vmstate_clock) },
..$crate::zeroable::Zeroable::ZERO
- }
+ } $(.with_varray_flag_unchecked(
+ $crate::call_func_with_field!(
+ $crate::vmstate::vmstate_varray_flag,
+ $struct_name,
+ $num
+ )
+ )
+ $(.with_varray_multiply($factor))?)?
}};
}
--
2.49.0
- [PULL 00/13] Rust, i386 changes for 2025-05-03, Paolo Bonzini, 2025/05/03
- [PULL 01/13] rust/vmstate: Add support for field_exists checks, Paolo Bonzini, 2025/05/03
- [PULL 02/13] vmstate: support varray for vmstate_clock!,
Paolo Bonzini <=
- [PULL 03/13] rust: assertions: Support index field wrapped in BqlCell, Paolo Bonzini, 2025/05/03
- [PULL 04/13] rust/vmstate_test: Test varray with num field wrapped in BqlCell, Paolo Bonzini, 2025/05/03
- [PULL 05/13] rust/timer: Define NANOSECONDS_PER_SECOND binding as u64, Paolo Bonzini, 2025/05/03
- [PULL 07/13] target/i386/emulate: remove rflags leftovers, Paolo Bonzini, 2025/05/03
- [PULL 06/13] rust/hpet: Support migration, Paolo Bonzini, 2025/05/03
- [PULL 08/13] target/i386/hvf: fix a compilation error, Paolo Bonzini, 2025/05/03
- [PULL 09/13] target/i386: do not trigger IRQ shadow for LSS, Paolo Bonzini, 2025/05/03
- [PULL 11/13] hw/char/serial: Remove unused prog_if compat property, Paolo Bonzini, 2025/05/03
- [PULL 13/13] monitor: don't wake up qmp_dispatcher_co coroutine upon cleanup, Paolo Bonzini, 2025/05/03