On 31/03/2025 16.00, Shalini Chellathurai Saroja wrote:
Register Control-Program Identification data with the live
migration infrastructure.

Signed-off-by: Shalini Chellathurai Saroja <shal...@linux.ibm.com>
Reviewed-by: Nina Schoetterl-Glausch <n...@linux.ibm.com>
---
  hw/s390x/sclpcpi.c | 27 +++++++++++++++++++++++++++
  1 file changed, 27 insertions(+)

diff --git a/hw/s390x/sclpcpi.c b/hw/s390x/sclpcpi.c
index 969c15e43d..0b1b5293ea 100644
--- a/hw/s390x/sclpcpi.c
+++ b/hw/s390x/sclpcpi.c
@@ -62,6 +62,7 @@
  #include "hw/s390x/event-facility.h"
  #include "hw/s390x/ebcdic.h"
  #include "qapi/qapi-visit-machine.h"
+#include "migration/vmstate.h"
typedef struct Data {
      uint8_t id_format;
@@ -133,12 +134,38 @@ static void get_control_program_id(Object *obj, Visitor 
*v,
      visit_type_S390ControlProgramId(v, name, &cpi, errp);
  }
+static const VMStateDescription vmstate_control_program_id = {
+    .name = "s390_control_program_id",
+    .version_id = 0,
+    .minimum_version_id = 0,

Nit: As long as it is 0, I think you could simply omit the minimum_version_id field here.

+    .fields = (const VMStateField[]) {
+        VMSTATE_UINT8_ARRAY(system_type, ControlProgramId, 8),
+        VMSTATE_UINT8_ARRAY(system_name, ControlProgramId, 8),
+        VMSTATE_UINT64(system_level, ControlProgramId),
+        VMSTATE_UINT8_ARRAY(sysplex_name, ControlProgramId, 8),
+        VMSTATE_UINT64(timestamp, ControlProgramId),
+        VMSTATE_END_OF_LIST()
+    }
+};
+
+static const VMStateDescription vmstate_sclpcpi = {
+    .name = "s390_sclpcpi",
+    .version_id = 0,
+    .minimum_version_id = 0,

dito

+    .fields = (const VMStateField[]) {
+        VMSTATE_STRUCT(cpi, SCLPEvent, 0, vmstate_control_program_id,
+                       ControlProgramId),
+        VMSTATE_END_OF_LIST()
+    }
+};
 Thomas


Reply via email to