Alexey Kardashevskiy <a...@ozlabs.ru> writes: > From: David Gibson <da...@gibson.dropbear.id.au> > > This patch adds helpers to allow PAPR VIO devices to save state common > to all VIO devices during savevm. > > Signed-off-by: David Gibson <da...@gibson.dropbear.id.au> > Signed-off-by: Alexey Kardashevskiy <a...@ozlabs.ru>
Reviewed-by: Anthony Liguori <aligu...@us.ibm.com> Regards, Anthony Liguori > --- > hw/ppc/spapr_vio.c | 20 ++++++++++++++++++++ > include/hw/ppc/spapr_vio.h | 5 +++++ > 2 files changed, 25 insertions(+) > > diff --git a/hw/ppc/spapr_vio.c b/hw/ppc/spapr_vio.c > index 9c18741..565d883 100644 > --- a/hw/ppc/spapr_vio.c > +++ b/hw/ppc/spapr_vio.c > @@ -542,6 +542,26 @@ static const TypeInfo spapr_vio_bridge_info = { > .class_init = spapr_vio_bridge_class_init, > }; > > +const VMStateDescription vmstate_spapr_vio = { > + .name = "spapr_vio", > + .version_id = 1, > + .minimum_version_id = 1, > + .minimum_version_id_old = 1, > + .fields = (VMStateField []) { > + /* Sanity check */ > + VMSTATE_UINT32_EQUAL(reg, VIOsPAPRDevice), > + VMSTATE_UINT32_EQUAL(irq, VIOsPAPRDevice), > + > + /* General VIO device state */ > + VMSTATE_UINTTL(signal_state, VIOsPAPRDevice), > + VMSTATE_UINT64(crq.qladdr, VIOsPAPRDevice), > + VMSTATE_UINT32(crq.qsize, VIOsPAPRDevice), > + VMSTATE_UINT32(crq.qnext, VIOsPAPRDevice), > + > + VMSTATE_END_OF_LIST() > + }, > +}; > + > static void vio_spapr_device_class_init(ObjectClass *klass, void *data) > { > DeviceClass *k = DEVICE_CLASS(klass); > diff --git a/include/hw/ppc/spapr_vio.h b/include/hw/ppc/spapr_vio.h > index 3609327..46edc2a 100644 > --- a/include/hw/ppc/spapr_vio.h > +++ b/include/hw/ppc/spapr_vio.h > @@ -134,4 +134,9 @@ VIOsPAPRDevice *spapr_vty_get_default(VIOsPAPRBus *bus); > > void spapr_vio_quiesce(void); > > +extern const VMStateDescription vmstate_spapr_vio; > + > +#define VMSTATE_SPAPR_VIO(_f, _s) \ > + VMSTATE_STRUCT(_f, _s, 0, vmstate_spapr_vio, VIOsPAPRDevice) > + > #endif /* _HW_SPAPR_VIO_H */ > -- > 1.7.10.4