On Thu, May 15, 2008 at 11:09:13AM -0400, Daniel Veillard wrote:
On Tue, May 13, 2008 at 12:31:36AM +0100, Daniel P. Berrange wrote:
> The QEMU driver supports booting Xen guests via the Xenner hypervisor. For
> such paravirtualized guests there is no regular BIOS, so the bootloader has
> to be run on the host. Xenner defaults to pygrub, but since libvirt has a
> generic syntax for bootloaders, we should use it. So this patch adds support
> for the <bootloader> syntax in the QEMU drive, and passes this to Xenner via
> the -bootloader arg.
>
> The patch is overly large, because when we have a bootloader we need to skip
> the kernel/initrd/cmdline/boot elements & thus caused alot of intrusive code
> re-indentation .
[...]
>
> /* Extract OS type info */
> obj = xmlXPathEval(BAD_CAST "string(/domain/os/type[1])", ctxt);
> if ((obj == NULL) || (obj->type != XPATH_STRING) ||
> (obj->stringval == NULL) || (obj->stringval[0] == 0)) {
> + if (!def->os.type[0]) {
> + qemudReportError(conn, NULL, NULL, VIR_ERR_OS_TYPE,
> + "%s", _("no OS type"));
> + goto error;
> + }
> + } else {
> + strcpy(def->os.type, (const char *)obj->stringval);
> + xmlXPathFreeObject(obj);
> + }
Argh, that part of the code has not been cleaned up, using virXPathString
there would make this way easier to read and check.
Yes, that's something that needs to be sorted out.
The big indentation block change inflated the patch size a bit. it
still
look fine.
This is applied too now.
Regards,
Dan
--
|: Red Hat, Engineering, Boston -o-
http://people.redhat.com/berrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org -o-
http://ovirt.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|