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 > >
