We have an array of structs whose size is an int32 in the same struct that depends on a test value to know if it is there or not.
Signed-off-by: Juan Quintela <quint...@redhat.com> --- vmstate.h | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/vmstate.h b/vmstate.h index 5c56f25..b8ac2d0 100644 --- a/vmstate.h +++ b/vmstate.h @@ -309,6 +309,16 @@ extern const VMStateDescription vmstate_cpu; .offset = offsetof(_state, _field), \ } +#define VMSTATE_STRUCT_VARRAY_INT32_TEST(_field, _state, _field_num, _test, _vmsd, _type) { \ + .name = (stringify(_field)), \ + .num_offset = vmstate_offset_value(_state, _field_num, int32_t), \ + .vmsd = &(_vmsd), \ + .field_exists = (_test), \ + .size = sizeof(_type), \ + .flags = VMS_STRUCT|VMS_VARRAY_INT32, \ + .offset = offsetof(_state, _field), \ +} + #define VMSTATE_STRUCT_VARRAY_POINTER_INT32(_field, _state, _field_num, _vmsd, _type) { \ .name = (stringify(_field)), \ .version_id = 0, \ -- 1.7.7.6