On Thu, Sep 11, 2025 at 7:58 PM TANG Tiancheng <[email protected]> wrote:
>
> Add support for defining a vmstate field which is a variable-length array
> of pointers, and use this to define a VMSTATE_TIMER_PTR_VARRAY() which allows
> a variable-length array of QEMUTimer* to be used by devices.
>
> Message-id: [email protected]
> Reviewed-by: LIU Zhiwei <[email protected]>
> Reviewed-by: Peter Xu <[email protected]>
> Signed-off-by: TANG Tiancheng <[email protected]>

Reviewed-by: Alistair Francis <[email protected]>

Alistair

> ---
>  include/migration/vmstate.h | 10 ++++++++++
>  1 file changed, 10 insertions(+)
>
> diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h
> index 
> 1ff7bd9ac425ba67cd5ca7ad97bcf570f9e19abe..1cfddf31b54090f0f63380794092858b4bed8bcf
>  100644
> --- a/include/migration/vmstate.h
> +++ b/include/migration/vmstate.h
> @@ -522,6 +522,16 @@ extern const VMStateInfo vmstate_info_qlist;
>      .offset     = vmstate_offset_array(_s, _f, _type*, _n),          \
>  }
>
> +#define VMSTATE_VARRAY_OF_POINTER_UINT32(_field, _state, _field_num, 
> _version, _info, _type) { \
> +    .name       = (stringify(_field)),                                    \
> +    .version_id = (_version),                                             \
> +    .num_offset = vmstate_offset_value(_state, _field_num, uint32_t),     \
> +    .info       = &(_info),                                               \
> +    .size       = sizeof(_type),                                          \
> +    .flags      = VMS_VARRAY_UINT32 | VMS_ARRAY_OF_POINTER | VMS_POINTER, \
> +    .offset     = vmstate_offset_pointer(_state, _field, _type),          \
> +}
> +
>  #define VMSTATE_STRUCT_SUB_ARRAY(_field, _state, _start, _num, _version, 
> _vmsd, _type) { \
>      .name       = (stringify(_field)),                                     \
>      .version_id = (_version),                                              \
>
> --
> 2.43.0
>
>

Reply via email to