On 2025-03-05 19:05, Thomas Huth wrote:
On 24/02/2025 13.04, Shalini Chellathurai Saroja wrote:
Add Control-Program Identification (CPI) to the QEMU Object
Model (QOM). The CPI identifiers provide information about
the guest operating system. The CPI identifiers are:
system type, system name, system level and sysplex name.

The system type provides the OS type of the guest (e.g. LINUX).
The system name provides the name of the guest (e.g. TESTVM).
The system level provides the distribution and kernel version
of the guest OS (e.g. 0x50e00).
The sysplex name provides the sysplex name of the guest
(e.g. SYSPLEX).

Signed-off-by: Shalini Chellathurai Saroja <shal...@linux.ibm.com>
---
hw/s390x/s390-virtio-ccw.c | 29 +++++++++++++++++++++++++++++
  include/hw/s390x/s390-virtio-ccw.h |  8 ++++++++
  qapi/machine.json                  | 24 ++++++++++++++++++++++++
  3 files changed, 61 insertions(+)

diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 51ae0c133d..13ea8db1b0 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -50,6 +50,7 @@
  #include "hw/s390x/virtio-ccw-md.h"
  #include "system/replay.h"
  #include CONFIG_DEVICES
+#include "qapi/qapi-visit-machine.h"
    static Error *pv_mig_blocker;
@@ -803,6 +804,26 @@ static void machine_set_loadparm(Object *obj, Visitor *v,
      s390_ipl_fmt_loadparm(ms->loadparm, val, errp);
  }
  +static void machine_get_control_program_id(Object *obj, Visitor *v,
+ const char *name, void *opaque,
+                                           Error **errp)
+{
+    S390CcwMachineState *ms = S390_CCW_MACHINE(obj);
+    S390ControlProgramId *cpi;
+    cpi = &(S390ControlProgramId){
+        .system_type = g_strndup((char *) ms->cpi.system_type,
+                       sizeof(ms->cpi.system_type)),
+        .system_name = g_strndup((char *) ms->cpi.system_name,
+                       sizeof(ms->cpi.system_name)),
+ .system_level = g_strdup_printf("0x%lx", ms->cpi.system_level),
+        .sysplex_name = g_strndup((char *) ms->cpi.sysplex_name,
+                        sizeof(ms->cpi.sysplex_name)),
+        .timestamp = ms->cpi.timestamp
+    };
+
+    visit_type_S390ControlProgramId(v, name, &cpi, &error_abort);

Forgot to say: Please use errp here instead -----------^


Hello Thomas,

ok. Thank you.

 Thanks!
  Thomas

--
Mit freundlichen Grüßen / Kind regards
Shalini Chellathurai Saroja
Software Developer
Linux on IBM Z & KVM Development
IBM Deutschland Research & Development GmbH
Dept 1419, Schoenaicher Str. 220, 71032 Boeblingen
Vorsitzender des Aufsichtsrats: Wolfgang Wendt
Geschäftsführung: David Faller
Sitz der Gesellschaft: Böblingen / Registergericht: Amtsgericht Stuttgart, HRB 243294

Reply via email to