Use it instead of hard-ecoding it on ich9 for GPE. Signed-off-by: Juan Quintela <quint...@redhat.com> --- hw/acpi/ich9.c | 11 ++--------- include/migration/vmstate.h | 10 ++++++++++ 2 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c index 407ae89..f4801d1 100644 --- a/hw/acpi/ich9.c +++ b/hw/acpi/ich9.c @@ -129,15 +129,8 @@ static int ich9_pm_post_load(void *opaque, int version_id) } #define VMSTATE_GPE_ARRAY(_field, _state) \ - { \ - .name = (stringify(_field)), \ - .version_id = 0, \ - .num = ICH9_PMIO_GPE0_LEN, \ - .info = &vmstate_info_uint8, \ - .size = sizeof(uint8_t), \ - .flags = VMS_ARRAY | VMS_POINTER, \ - .offset = vmstate_offset_pointer(_state, _field, uint8_t), \ - } + VMSTATE_VARRAY(_field, _state, ICH9_PMIO_GPE0_LEN, NULL, \ + vmstate_info_uint8, uint8) const VMStateDescription vmstate_ich9_pm = { .name = "ich9_pm", diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h index 8602536..d0115e6 100644 --- a/include/migration/vmstate.h +++ b/include/migration/vmstate.h @@ -230,6 +230,16 @@ extern const VMStateInfo vmstate_info_bitmap; .offset = vmstate_offset_array(_state, _field, _type, _num),\ } +#define VMSTATE_VARRAY(_field, _state, _num, _test, _info, _type) { \ + .name = (stringify(_field)), \ + .field_exists = (_test), \ + .num = (_num), \ + .info = &(_info), \ + .size = sizeof(_type), \ + .flags = VMS_ARRAY | VMS_POINTER, \ + .offset = vmstate_offset_pointer(_state, _field, _type),\ +} + #define VMSTATE_SUB_ARRAY(_field, _state, _start, _num, _info, _type) { \ .name = (stringify(_field)), \ .num = (_num), \ -- 1.9.0