mbox series

[0/3] libxl smbios support

Message ID 20220810194827.103428-1-jandryuk@gmail.com (mailing list archive)
Headers show
Series libxl smbios support | expand

Message

Jason Andryuk Aug. 10, 2022, 7:48 p.m. UTC
hvm_xs_strings.h specifies xenstore entries which can be used to set or
override smbios strings.  hvmloader has support for reading them, but
xl/libxl support is not wired up.  This patches adds a new xl.cfg option
and libxl support to write the xenstore strings.

The xl syntax looks like:
smbios=["bios_vendor=Xen Project","system_version=1.0"]

The Go binding generation needed extending to support Arrays inside a
KeyedUnion, which is what the first patch does.  The generated go code
builds, but it is otherwise untested.

There are also oem strings, oem-1..oem-99, that HVM loader supports.
The use of smbios_type Enum is a little unwieldy to defined so many
entries, but it works.  xl will internally parse smbios=["oem=A,oem=B"]
into oem_1 = "A" and oem_2 = "B".  xl still accepts oem_$N, though
hvmloader only reads sequentially from 1 up to a maximum of 99.  It's a
corner case what doesn't seem worth dealing with.

The rendered man page and html don't have a newline at then end of the
new section after patch 2.
"""
           battery_device_name=STRING
       ms_vm_genid="OPTION"
"""

however the txt format is correct:
"""
        battery_device_name=STRING

    ms_vm_genid="OPTION"
"""

It goes away after patch 3 is applied since it adds text about the "oem"
option in between the two lines above.  I'm at a loss as to why this is
happening.

Jason Andryuk (3):
  golang/xenlight: Extend KeyedUnion to support Arrays
  xl/libxl: Add ability to specify SMBIOS strings
  xl/libxl: Add OEM string support to smbios

 docs/man/xl.cfg.5.pod.in             |  49 +++++++++++
 tools/golang/xenlight/gengotypes.py  |  41 +++++----
 tools/golang/xenlight/helpers.gen.go |  51 +++++++++++
 tools/golang/xenlight/types.gen.go   | 126 +++++++++++++++++++++++++++
 tools/include/libxl.h                |   5 ++
 tools/libs/light/libxl_dom.c         |  20 +++++
 tools/libs/light/libxl_types.idl     | 125 ++++++++++++++++++++++++++
 tools/xl/xl_parse.c                  |  59 ++++++++++++-
 8 files changed, 459 insertions(+), 17 deletions(-)