mbox series

[v2,0/3] libxl smbios support

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

Message

Jason Andryuk Sept. 8, 2022, 7:51 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.
xl parse multiple oem strings like smbios=["oem=A,oem=B"], libxl then
iterates over them and assigned to the oem-%d entries.  Both xl and
libxl check that the 99 string limit isn't exceeded.

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   | 28 ++++++++++++
 tools/include/libxl.h                |  5 +++
 tools/libs/light/libxl_dom.c         | 32 ++++++++++++++
 tools/libs/light/libxl_types.idl     | 27 ++++++++++++
 tools/xl/xl_parse.c                  | 66 +++++++++++++++++++++++++++-
 8 files changed, 282 insertions(+), 17 deletions(-)