On Fri, Nov 05, 2010 at 04:46:37PM +0100, Daniel Veillard wrote: > > The patch is based on the possiblity in the QEmu command line to > add -smbios options allowing to override the default values picked > by QEmu. We need to detect this first from QEmu help output. > If the domain is defined with smbios to be inherited from host > then we pass the values coming from the Host own SMBIOS, but > if the domain is defined with smbios to come from sysinfo, we > use the ones coming from the domain definition. > > * src/qemu/qemu_conf.h: add the QEMUD_CMD_FLAG_SMBIOS_TYPE enum > value > * src/qemu/qemu_conf.c: scan the help output for the smbios support, > and if available add support based on the domain definitions, > and host data > * tests/qemuhelptest.c: add the new enum in the outputs > > Signed-off-by: Daniel Veillard <veillard@xxxxxxxxxx> > --- > src/qemu/qemu_conf.c | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++ > src/qemu/qemu_conf.h | 3 +- > tests/qemuhelptest.c | 15 ++++-- > 3 files changed, 135 insertions(+), 6 deletions(-) > @@ -4092,6 +4171,50 @@ int qemudBuildCommandLine(virConnectPtr conn, > } > } > > + if ((def->os.smbios_mode != VIR_DOMAIN_SMBIOS_NONE) && > + (def->os.smbios_mode != VIR_DOMAIN_SMBIOS_EMULATE)) { > + virSysinfoDefPtr source = NULL; > + > + if (!(qemuCmdFlags & QEMUD_CMD_FLAG_SMBIOS_TYPE)) { > + qemuReportError(VIR_ERR_CONFIG_UNSUPPORTED, > + _("the QEMU binary %s does not support smbios settings"), > + emulator); > + goto error; > + } > + > + /* should we really error out or just warn in those cases ? */ > + if (def->os.smbios_mode == VIR_DOMAIN_SMBIOS_HOST) { > + if (driver->hostsysinfo == NULL) { > + qemuReportError(VIR_ERR_INTERNAL_ERROR, > + _("Host SMBIOS informations are not available")); > + goto error; > + } This one should use VIR_ERR_CONFIG_UNSUPPORTED too, because we're just saying that this data isn't available with qemu:///session instances really. Also s/informations are not/information is not/ > + source = driver->hostsysinfo; > + } else if (def->os.smbios_mode == VIR_DOMAIN_SMBIOS_SYSINFO) { > + if (def->sysinfo == NULL) { > + qemuReportError(VIR_ERR_XML_ERROR, > + _("Domain '%s' sysinfo are not available"), > + def->name); > + goto error; > + } > + source = def->sysinfo; > + } ACK with those minor fixes Regards, Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list