提交 76977061 编写于 作者: D Daniel P. Berrange 提交者: Daniel P. Berrangé

qemu: add support for generating SMBIOS OEM strings command line

This wires up the previously added OEM strings XML schema to be able to
generate comamnd line args for QEMU. This requires QEMU >= 2.12 release
containing this patch:

  commit 2d6dcbf93fb01b4a7f45a93d276d4d74b16392dd
  Author: Daniel P. Berrange <berrange@redhat.com>
  Date:   Sat Oct 28 21:51:36 2017 +0100

    smbios: support setting OEM strings table
Reviewed-by: NJohn Ferlan <jferlan@redhat.com>
Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
上级 68eed56b
...@@ -6142,6 +6142,26 @@ qemuBuildSmbiosBaseBoardStr(virSysinfoBaseBoardDefPtr def) ...@@ -6142,6 +6142,26 @@ qemuBuildSmbiosBaseBoardStr(virSysinfoBaseBoardDefPtr def)
} }
static char *
qemuBuildSmbiosOEMStringsStr(virSysinfoOEMStringsDefPtr def)
{
virBuffer buf = VIR_BUFFER_INITIALIZER;
size_t i;
if (!def)
return NULL;
virBufferAddLit(&buf, "type=11");
for (i = 0; i < def->nvalues; i++) {
virBufferAddLit(&buf, ",value=");
virQEMUBuildBufferEscapeComma(&buf, def->values[i]);
}
return virBufferContentAndReset(&buf);
}
static int static int
qemuBuildSmbiosCommandLine(virCommandPtr cmd, qemuBuildSmbiosCommandLine(virCommandPtr cmd,
virQEMUDriverPtr driver, virQEMUDriverPtr driver,
...@@ -6212,6 +6232,14 @@ qemuBuildSmbiosCommandLine(virCommandPtr cmd, ...@@ -6212,6 +6232,14 @@ qemuBuildSmbiosCommandLine(virCommandPtr cmd,
virCommandAddArgList(cmd, "-smbios", smbioscmd, NULL); virCommandAddArgList(cmd, "-smbios", smbioscmd, NULL);
VIR_FREE(smbioscmd); VIR_FREE(smbioscmd);
} }
if (source->oemStrings) {
if (!(smbioscmd = qemuBuildSmbiosOEMStringsStr(source->oemStrings)))
return -1;
virCommandAddArgList(cmd, "-smbios", smbioscmd, NULL);
VIR_FREE(smbioscmd);
}
} }
return 0; return 0;
......
...@@ -17,6 +17,8 @@ serial=32dfcb37-5af1-552b-357c-be8c3aa38310,\ ...@@ -17,6 +17,8 @@ serial=32dfcb37-5af1-552b-357c-be8c3aa38310,\
uuid=c7a5fdbd-edaf-9455-926a-d65c16db1809,sku=1234567890,family=Red Hat' \ uuid=c7a5fdbd-edaf-9455-926a-d65c16db1809,sku=1234567890,family=Red Hat' \
-smbios 'type=2,manufacturer=Hewlett-Packard,product=0B4Ch,version=D,\ -smbios 'type=2,manufacturer=Hewlett-Packard,product=0B4Ch,version=D,\
serial=CZC1065993,asset=CZC1065993,location=Upside down' \ serial=CZC1065993,asset=CZC1065993,location=Upside down' \
-smbios 'type=11,value=Hello,value=World,value=This is,,\
more tricky value=escaped' \
-nographic \ -nographic \
-nodefaults \ -nodefaults \
-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\ -chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\
......
...@@ -26,6 +26,11 @@ ...@@ -26,6 +26,11 @@
<entry name='asset'>CZC1065993</entry> <entry name='asset'>CZC1065993</entry>
<entry name='location'>Upside down</entry> <entry name='location'>Upside down</entry>
</baseBoard> </baseBoard>
<oemStrings>
<entry>Hello</entry>
<entry>World</entry>
<entry>This is, more tricky value=escaped</entry>
</oemStrings>
</sysinfo> </sysinfo>
<os> <os>
<type arch='i686' machine='pc'>hvm</type> <type arch='i686' machine='pc'>hvm</type>
......
...@@ -26,6 +26,11 @@ ...@@ -26,6 +26,11 @@
<entry name='asset'>CZC1065993</entry> <entry name='asset'>CZC1065993</entry>
<entry name='location'>Upside down</entry> <entry name='location'>Upside down</entry>
</baseBoard> </baseBoard>
<oemStrings>
<entry>Hello</entry>
<entry>World</entry>
<entry>This is, more tricky value=escaped</entry>
</oemStrings>
</sysinfo> </sysinfo>
<os> <os>
<type arch='i686' machine='pc'>hvm</type> <type arch='i686' machine='pc'>hvm</type>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册