On Thu, 2025-03-06 at 15:55 +0100, Thomas Huth wrote: > On 06/03/2025 13.23, shalini wrote: > > On 2025-03-05 16:56, 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 @@
[...] > > > > +## > > > > +{ 'struct': 'S390ControlProgramId', 'data': { > > > > + 'system-type': 'str', > > > > + 'system-name': 'str', > > > > + 'system-level': 'str', > > > > > > Not sure, but would it make sense to use a number for the system-level > > > instead? At least it's a number in ControlProgramId, not a string. > > > > > > > The system-level, when interpreted as an int provides the output below > > > > 'system-level': 74872343805430528 > > > > But the desired output below is obtained only when interpreted as a str. > > please refer https://www.ibm.com/docs/en/linux-on-systems? > > topic=identification-system-level for details on system-level. I will also > > document this in the description of system-level as suggested by Daniel. > > Thank you. > > > > 'system-level': '0x10a000000060b00' > > Well, the idea of QOM/QAPI is: It's an *API* for machines, not meant for > direct consumption by the end user. So passing an integer as a string is not > the right way here. For the user, you'd require some upper level instead > that renders the integer in the right shape for the user. So please don't > use a string for this at the QOM/QAPI level. In a sense the system level is a bitfield. So this could become a struct { 'hypervisor-use' : true, 'distribution-id': 3, // or an enum? 'distribution-version-major: 24, ... } Not sure how to handle the 3 undefined bits in the highest byte. > > Thanks, > Thomas > -- IBM Deutschland Research & Development GmbH Vorsitzender des Aufsichtsrats: Wolfgang Wendt Geschäftsführung: David Faller Sitz der Gesellschaft: Böblingen / Registergericht: Amtsgericht Stuttgart, HRB 243294