@samitouri / QOSamiQemu / commits / f555338df7

vmstate: Introduce VMSTATE_VARRAY_INT32_ALLOC

Already existing VMSTATE_VARRAY_INT32 requires an array to be pre-allocated, however there are cases when the size is not known in advance and there is no real need to enforce it. Introduce VMSTATE_VARRAY_INT32_ALLOC as we currently have for UINT32 and UINT16. The first user of this variant will be the target/arm/machine.c cpreg indexes/values arrays. Signed-off-by: Eric Auger <eric.auger@redhat.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Peter Xu <peterx@redhat.com> Message-id: 20260304101625.1962633-2-eric.auger@redhat.com Suggested-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Eric Auger committed Mar 6, 2026 at 09:01 UTC f555338df754b37e042d5b88610c34b1d1845383
1 file changed +10
include/migration/vmstate.h
+10
@@ -447,6 +447,16 @@ extern const VMStateInfo vmstate_info_qlist;
447 .offset = vmstate_offset_pointer(_state, _field, _type), \
448 }
449
450 +#define VMSTATE_VARRAY_INT32_ALLOC(_field, _state, _field_num, _version, _info, _type) {\
451 + .name = (stringify(_field)), \
452 + .version_id = (_version), \
453 + .num_offset = vmstate_offset_value(_state, _field_num, int32_t), \
454 + .info = &(_info), \
455 + .size = sizeof(_type), \
456 + .flags = VMS_VARRAY_INT32 | VMS_POINTER | VMS_ALLOC, \
457 + .offset = vmstate_offset_pointer(_state, _field, _type), \
458 +}
459 +
460 #define VMSTATE_VARRAY_UINT32_ALLOC(_field, _state, _field_num, _version, _info, _type) {\
461 .name = (stringify(_field)), \
462 .version_id = (_version), \