#include "hw/ppc/xics.h"
#include "hw/core/qdev-properties.h"
#include "helper_regs.h"
+#include "migration/vmstate.h"
static const char *pnv_core_cpu_typename(PnvCore *pc)
{
pnv_core_power10_class_init(oc, data);
}
+static const VMStateDescription pnv_core_vmstate = {
+ .name = TYPE_PNV_CORE,
+ .version_id = 1,
+ .fields = (const VMStateField[]) {
+ VMSTATE_UINT64_ARRAY(scratch, PnvCore, 8),
+ VMSTATE_END_OF_LIST(),
+ },
+};
+
static void pnv_core_class_init(ObjectClass *oc, const void *data)
{
DeviceClass *dc = DEVICE_CLASS(oc);
dc->unrealize = pnv_core_unrealize;
device_class_set_props(dc, pnv_core_properties);
dc->user_creatable = false;
+ dc->vmsd = &pnv_core_vmstate;
}
#define DEFINE_PNV_CORE_TYPE(family, cpu_model) \
pnv_quad_power10_class_init(oc, data);
}
+static const VMStateDescription pnv_quad_vmstate = {
+ .name = TYPE_PNV_QUAD,
+ .version_id = 1,
+ .fields = (const VMStateField[]) {
+ VMSTATE_BOOL(special_wakeup_done, PnvQuad),
+ VMSTATE_BOOL_ARRAY(special_wakeup, PnvQuad, 4),
+ VMSTATE_END_OF_LIST(),
+ },
+};
+
static void pnv_quad_class_init(ObjectClass *oc, const void *data)
{
DeviceClass *dc = DEVICE_CLASS(oc);
device_class_set_props(dc, pnv_quad_properties);
dc->user_creatable = false;
+ dc->vmsd = &pnv_quad_vmstate;
}
static const TypeInfo pnv_quad_infos[] = {