|
@@ -164,6 +164,24 @@ const VMStateDescription vmstate_gicv3_gicv4 = {
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+static bool gicv3_cpu_nmi_needed(void *opaque)
|
|
|
|
+{
|
|
|
|
+ GICv3CPUState *cs = opaque;
|
|
|
|
+
|
|
|
|
+ return cs->gic->nmi_support;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static const VMStateDescription vmstate_gicv3_cpu_nmi = {
|
|
|
|
+ .name = "arm_gicv3_cpu/nmi",
|
|
|
|
+ .version_id = 1,
|
|
|
|
+ .minimum_version_id = 1,
|
|
|
|
+ .needed = gicv3_cpu_nmi_needed,
|
|
|
|
+ .fields = (const VMStateField[]) {
|
|
|
|
+ VMSTATE_UINT32(gicr_inmir0, GICv3CPUState),
|
|
|
|
+ VMSTATE_END_OF_LIST()
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+
|
|
static const VMStateDescription vmstate_gicv3_cpu = {
|
|
static const VMStateDescription vmstate_gicv3_cpu = {
|
|
.name = "arm_gicv3_cpu",
|
|
.name = "arm_gicv3_cpu",
|
|
.version_id = 1,
|
|
.version_id = 1,
|
|
@@ -196,6 +214,7 @@ static const VMStateDescription vmstate_gicv3_cpu = {
|
|
&vmstate_gicv3_cpu_virt,
|
|
&vmstate_gicv3_cpu_virt,
|
|
&vmstate_gicv3_cpu_sre_el1,
|
|
&vmstate_gicv3_cpu_sre_el1,
|
|
&vmstate_gicv3_gicv4,
|
|
&vmstate_gicv3_gicv4,
|
|
|
|
+ &vmstate_gicv3_cpu_nmi,
|
|
NULL
|
|
NULL
|
|
}
|
|
}
|
|
};
|
|
};
|
|
@@ -238,6 +257,24 @@ const VMStateDescription vmstate_gicv3_gicd_no_migration_shift_bug = {
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+static bool gicv3_nmi_needed(void *opaque)
|
|
|
|
+{
|
|
|
|
+ GICv3State *cs = opaque;
|
|
|
|
+
|
|
|
|
+ return cs->nmi_support;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+const VMStateDescription vmstate_gicv3_gicd_nmi = {
|
|
|
|
+ .name = "arm_gicv3/gicd_nmi",
|
|
|
|
+ .version_id = 1,
|
|
|
|
+ .minimum_version_id = 1,
|
|
|
|
+ .needed = gicv3_nmi_needed,
|
|
|
|
+ .fields = (const VMStateField[]) {
|
|
|
|
+ VMSTATE_UINT32_ARRAY(nmi, GICv3State, GICV3_BMP_SIZE),
|
|
|
|
+ VMSTATE_END_OF_LIST()
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+
|
|
static const VMStateDescription vmstate_gicv3 = {
|
|
static const VMStateDescription vmstate_gicv3 = {
|
|
.name = "arm_gicv3",
|
|
.name = "arm_gicv3",
|
|
.version_id = 1,
|
|
.version_id = 1,
|
|
@@ -266,6 +303,7 @@ static const VMStateDescription vmstate_gicv3 = {
|
|
},
|
|
},
|
|
.subsections = (const VMStateDescription * const []) {
|
|
.subsections = (const VMStateDescription * const []) {
|
|
&vmstate_gicv3_gicd_no_migration_shift_bug,
|
|
&vmstate_gicv3_gicd_no_migration_shift_bug,
|
|
|
|
+ &vmstate_gicv3_gicd_nmi,
|
|
NULL
|
|
NULL
|
|
}
|
|
}
|
|
};
|
|
};
|