diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 94236dd4ba..757035af1f 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -102,7 +102,8 @@
...
<os>
<type>hvm</type>
- <loader>/usr/lib/xen/boot/hvmloader</loader>
+ <loader readonly='on' type='rom'>/usr/lib/xen/boot/hvmloader</loader>
+ <nvram>/var/lib/libvirt/nvram/guest_VARS.fd</nvram>
<boot dev='hd'/>
<boot dev='cdrom'/>
<bootmenu enable='yes' timeout='3000'/>
@@ -129,7 +130,21 @@
used to assist the domain creation process. It is used by Xen
fully virtualized domains as well as setting the QEMU BIOS file
path for QEMU/KVM domains. Xen since 0.1.0,
- QEMU/KVM since 0.9.12
+ QEMU/KVM since 0.9.12 Then, since
+ 1.2.8 it's possible for the element to have two
+ optional attributes: readonly
(accepted values are
+ yes
and no
) to reflect the fact that the
+ image should be writable or read-only. The second attribute
+ type
accepts values rom
and
+ pflash
. It tells the hypervisor where in the guest
+ memory the file should be mapped. For instance, if the loader
+ path points to an UEFI image, type
should be
+ pflash
.
+
nvram
+ Some UEFI firmwares may want to use a non-volatile memory to store
+ some variables. In the host, this is represented as a file and the
+ path to the file is stored in this element. Since
+ 1.2.8
boot
The dev
attribute takes one of the values "fd", "hd",
"cdrom" or "network" and is used to specify the next boot device
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index cedceae1f6..5d9c21c245 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -242,6 +242,27 @@
+
+
+
+ yes
+ no
+
+
+
+
+
+
+ rom
+ pflash
+
+
+
+
+
+
+
+
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index aac78a6189..989f2dc63c 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -780,6 +780,11 @@ VIR_ENUM_IMPL(virDomainDiskMirrorState, VIR_DOMAIN_DISK_MIRROR_STATE_LAST,
"abort",
"pivot")
+VIR_ENUM_IMPL(virDomainLoader,
+ VIR_DOMAIN_LOADER_TYPE_LAST,
+ "rom",
+ "pflash")
+
/* Internal mapping: subset of block job types that can be present in
* XML (remaining types are not two-phase). */
VIR_ENUM_DECL(virDomainBlockJob)
@@ -2013,6 +2018,17 @@ virDomainPanicDefFree(virDomainPanicDefPtr panic)
VIR_FREE(panic);
}
+void
+virDomainLoaderDefFree(virDomainLoaderDefPtr loader)
+{
+ if (!loader)
+ return;
+
+ VIR_FREE(loader->path);
+ VIR_FREE(loader->nvram);
+ VIR_FREE(loader);
+}
+
void virDomainDefFree(virDomainDefPtr def)
{
size_t i;
@@ -2118,7 +2134,7 @@ void virDomainDefFree(virDomainDefPtr def)
VIR_FREE(def->os.cmdline);
VIR_FREE(def->os.dtb);
VIR_FREE(def->os.root);
- VIR_FREE(def->os.loader);
+ virDomainLoaderDefFree(def->os.loader);
VIR_FREE(def->os.bootloader);
VIR_FREE(def->os.bootloaderArgs);
@@ -11715,6 +11731,42 @@ virDomainDefMaybeAddHostdevSCSIcontroller(virDomainDefPtr def)
return 0;
}
+static int
+virDomainLoaderDefParseXML(xmlNodePtr node,
+ virDomainLoaderDefPtr loader)
+{
+ int ret = -1;
+ char *readonly_str = NULL;
+ char *type_str = NULL;
+
+ readonly_str = virXMLPropString(node, "readonly");
+ type_str = virXMLPropString(node, "type");
+ loader->path = (char *) xmlNodeGetContent(node);
+
+ if (readonly_str &&
+ (loader->readonly = virTristateBoolTypeFromString(readonly_str)) <= 0) {
+ virReportError(VIR_ERR_XML_DETAIL,
+ _("unknown readonly value: %s"), readonly_str);
+ goto cleanup;
+ }
+
+ if (type_str) {
+ int type;
+ if ((type = virDomainLoaderTypeFromString(type_str)) < 0) {
+ virReportError(VIR_ERR_XML_DETAIL,
+ _("unknown type value: %s"), type_str);
+ goto cleanup;
+ }
+ loader->type = type;
+ }
+
+ ret = 0;
+ cleanup:
+ VIR_FREE(readonly_str);
+ VIR_FREE(type_str);
+ return ret;
+}
+
static virDomainDefPtr
virDomainDefParseXML(xmlDocPtr xml,
xmlNodePtr root,
@@ -12755,12 +12807,22 @@ virDomainDefParseXML(xmlDocPtr xml,
if (STREQ(def->os.type, "xen") ||
STREQ(def->os.type, "hvm") ||
STREQ(def->os.type, "uml")) {
+ xmlNodePtr loader_node;
+
def->os.kernel = virXPathString("string(./os/kernel[1])", ctxt);
def->os.initrd = virXPathString("string(./os/initrd[1])", ctxt);
def->os.cmdline = virXPathString("string(./os/cmdline[1])", ctxt);
def->os.dtb = virXPathString("string(./os/dtb[1])", ctxt);
def->os.root = virXPathString("string(./os/root[1])", ctxt);
- def->os.loader = virXPathString("string(./os/loader[1])", ctxt);
+ if ((loader_node = virXPathNode("./os/loader[1]", ctxt))) {
+ if (VIR_ALLOC(def->os.loader) < 0)
+ goto error;
+
+ if (virDomainLoaderDefParseXML(loader_node, def->os.loader) < 0)
+ goto error;
+
+ def->os.loader->nvram = virXPathString("string(./os/nvram[1])", ctxt);
+ }
}
if (STREQ(def->os.type, "hvm")) {
@@ -17841,6 +17903,23 @@ virDomainHugepagesFormat(virBufferPtr buf,
virBufferAddLit(buf, "\n");
}
+static void
+virDomainLoaderDefFormat(virBufferPtr buf,
+ virDomainLoaderDefPtr loader)
+{
+ const char *readonly = virTristateBoolTypeToString(loader->readonly);
+ const char *type = virDomainLoaderTypeToString(loader->type);
+
+ virBufferAddLit(buf, "readonly)
+ virBufferAsprintf(buf, " readonly='%s'", readonly);
+
+ virBufferAsprintf(buf, " type='%s'>", type);
+
+ virBufferEscapeString(buf, "%s \n", loader->path);
+ virBufferEscapeString(buf, "%s \n", loader->nvram);
+}
static bool
virDomainDefHasCapabilitiesFeatures(virDomainDefPtr def)
@@ -18161,8 +18240,8 @@ virDomainDefFormatInternal(virDomainDefPtr def,
for (i = 0; def->os.initargv && def->os.initargv[i]; i++)
virBufferEscapeString(buf, "%s \n",
def->os.initargv[i]);
- virBufferEscapeString(buf, "%s \n",
- def->os.loader);
+ if (def->os.loader)
+ virDomainLoaderDefFormat(buf, def->os.loader);
virBufferEscapeString(buf, "%s \n",
def->os.kernel);
virBufferEscapeString(buf, "%s \n",
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 1107fa8021..b5b4c675c5 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -1628,6 +1628,26 @@ struct _virDomainBIOSDef {
int rt_delay;
};
+typedef enum {
+ VIR_DOMAIN_LOADER_TYPE_ROM = 0,
+ VIR_DOMAIN_LOADER_TYPE_PFLASH,
+
+ VIR_DOMAIN_LOADER_TYPE_LAST
+} virDomainLoader;
+
+VIR_ENUM_DECL(virDomainLoader)
+
+typedef struct _virDomainLoaderDef virDomainLoaderDef;
+typedef virDomainLoaderDef *virDomainLoaderDefPtr;
+struct _virDomainLoaderDef {
+ char *path;
+ int readonly; /* enum virTristateBool */
+ virDomainLoader type;
+ char *nvram; /* path to non-volatile RAM */
+};
+
+void virDomainLoaderDefFree(virDomainLoaderDefPtr loader);
+
/* Operating system configuration data & machine / arch */
typedef struct _virDomainOSDef virDomainOSDef;
typedef virDomainOSDef *virDomainOSDefPtr;
@@ -1647,7 +1667,7 @@ struct _virDomainOSDef {
char *cmdline;
char *dtb;
char *root;
- char *loader;
+ virDomainLoaderDefPtr loader;
char *bootloader;
char *bootloaderArgs;
int smbios_mode;
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 10ebd121b9..fdf4548700 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -314,6 +314,9 @@ virDomainLifecycleTypeFromString;
virDomainLifecycleTypeToString;
virDomainListFree;
virDomainLiveConfigHelperMethod;
+virDomainLoaderDefFree;
+virDomainLoaderTypeFromString;
+virDomainLoaderTypeToString;
virDomainLockFailureTypeFromString;
virDomainLockFailureTypeToString;
virDomainMemballoonModelTypeFromString;
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 7b87a31bb4..c67b3ad368 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -7528,7 +7528,7 @@ qemuBuildCommandLine(virConnectPtr conn,
if (def->os.loader) {
virCommandAddArg(cmd, "-bios");
- virCommandAddArg(cmd, def->os.loader);
+ virCommandAddArg(cmd, def->os.loader->path);
}
/* Set '-m MB' based on maxmem, because the lower 'memory' limit
@@ -11359,7 +11359,8 @@ qemuParseCommandLine(virCapsPtr qemuCaps,
goto error;
} else if (STREQ(arg, "-bios")) {
WANT_VALUE();
- if (VIR_STRDUP(def->os.loader, val) < 0)
+ if (VIR_ALLOC(def->os.loader) < 0 ||
+ VIR_STRDUP(def->os.loader->path, val) < 0)
goto error;
} else if (STREQ(arg, "-initrd")) {
WANT_VALUE();
diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c
index 9c3860be6f..a06ba4425b 100644
--- a/src/security/virt-aa-helper.c
+++ b/src/security/virt-aa-helper.c
@@ -1006,8 +1006,8 @@ get_files(vahControl * ctl)
if (vah_add_file(&buf, ctl->def->os.dtb, "r") != 0)
goto cleanup;
- if (ctl->def->os.loader && ctl->def->os.loader)
- if (vah_add_file(&buf, ctl->def->os.loader, "r") != 0)
+ if (ctl->def->os.loader && ctl->def->os.loader->path)
+ if (vah_add_file(&buf, ctl->def->os.loader->path, "r") != 0)
goto cleanup;
for (i = 0; i < ctl->def->ngraphics; i++) {
diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c
index b9858ee0e8..684108d4b8 100644
--- a/src/vbox/vbox_common.c
+++ b/src/vbox/vbox_common.c
@@ -988,7 +988,12 @@ vboxSetBootDeviceOrder(virDomainDefPtr def, vboxGlobalData *data,
VIR_DEBUG("def->os.initrd %s", def->os.initrd);
VIR_DEBUG("def->os.cmdline %s", def->os.cmdline);
VIR_DEBUG("def->os.root %s", def->os.root);
- VIR_DEBUG("def->os.loader %s", def->os.loader);
+ if (def->os.loader) {
+ VIR_DEBUG("def->os.loader->path %s", def->os.loader->path);
+ VIR_DEBUG("def->os.loader->readonly %d", def->os.loader->readonly);
+ VIR_DEBUG("def->os.loader->type %d", def->os.loader->type);
+ VIR_DEBUG("def->os.loader->nvram %s", def->os.loader->nvram);
+ }
VIR_DEBUG("def->os.bootloader %s", def->os.bootloader);
VIR_DEBUG("def->os.bootloaderArgs %s", def->os.bootloaderArgs);
diff --git a/src/xenapi/xenapi_driver.c b/src/xenapi/xenapi_driver.c
index 723544aed9..e4fa7cde68 100644
--- a/src/xenapi/xenapi_driver.c
+++ b/src/xenapi/xenapi_driver.c
@@ -1430,7 +1430,8 @@ xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags)
VIR_FREE(boot_policy);
goto error;
}
- if (VIR_STRDUP(defPtr->os.loader, "pygrub") < 0) {
+ if (VIR_ALLOC(defPtr->os.loader) < 0 ||
+ VIR_STRDUP(defPtr->os.loader->path, "pygrub") < 0) {
VIR_FREE(boot_policy);
goto error;
}
diff --git a/src/xenconfig/xen_common.c b/src/xenconfig/xen_common.c
index bab67de59d..32954f3638 100644
--- a/src/xenconfig/xen_common.c
+++ b/src/xenconfig/xen_common.c
@@ -1065,7 +1065,8 @@ xenParseOS(virConfPtr conf, virDomainDefPtr def)
if (STREQ(def->os.type, "hvm")) {
const char *boot;
- if (xenConfigCopyString(conf, "kernel", &def->os.loader) < 0)
+ if (VIR_ALLOC(def->os.loader) < 0 ||
+ xenConfigCopyString(conf, "kernel", &def->os.loader->path) < 0)
return -1;
if (xenConfigGetString(conf, "boot", &boot, "c") < 0)
@@ -1738,8 +1739,8 @@ xenFormatOS(virConfPtr conf, virDomainDefPtr def)
if (xenXMConfigSetString(conf, "builder", "hvm") < 0)
return -1;
- if (def->os.loader &&
- xenXMConfigSetString(conf, "kernel", def->os.loader) < 0)
+ if (def->os.loader && def->os.loader->path &&
+ xenXMConfigSetString(conf, "kernel", def->os.loader->path) < 0)
return -1;
for (i = 0; i < def->os.nBootDevs; i++) {
diff --git a/src/xenconfig/xen_sxpr.c b/src/xenconfig/xen_sxpr.c
index 6c48e970cc..6623ea82d9 100644
--- a/src/xenconfig/xen_sxpr.c
+++ b/src/xenconfig/xen_sxpr.c
@@ -93,13 +93,15 @@ xenParseSxprOS(const struct sexpr *node,
int hvm)
{
if (hvm) {
- if (sexpr_node_copy(node, "domain/image/hvm/loader", &def->os.loader) < 0)
+ if (VIR_ALLOC(def->os.loader) < 0)
goto error;
- if (def->os.loader == NULL) {
- if (sexpr_node_copy(node, "domain/image/hvm/kernel", &def->os.loader) < 0)
+ if (sexpr_node_copy(node, "domain/image/hvm/loader", &def->os.loader->path) < 0)
+ goto error;
+ if (def->os.loader->path == NULL) {
+ if (sexpr_node_copy(node, "domain/image/hvm/kernel", &def->os.loader->path) < 0)
goto error;
- if (def->os.loader == NULL) {
+ if (def->os.loader->path == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("domain information incomplete, missing HVM loader"));
return -1;
@@ -128,7 +130,7 @@ xenParseSxprOS(const struct sexpr *node,
/* If HVM kenrel == loader, then old xend, so kill off kernel */
if (hvm &&
def->os.kernel &&
- STREQ(def->os.kernel, def->os.loader)) {
+ STREQ(def->os.kernel, def->os.loader->path)) {
VIR_FREE(def->os.kernel);
}
/* Drop kernel argument that has no value */
@@ -2280,9 +2282,9 @@ xenFormatSxpr(virConnectPtr conn,
if (hvm) {
char bootorder[VIR_DOMAIN_BOOT_LAST+1];
if (def->os.kernel)
- virBufferEscapeSexpr(&buf, "(loader '%s')", def->os.loader);
+ virBufferEscapeSexpr(&buf, "(loader '%s')", def->os.loader->path);
else
- virBufferEscapeSexpr(&buf, "(kernel '%s')", def->os.loader);
+ virBufferEscapeSexpr(&buf, "(kernel '%s')", def->os.loader->path);
virBufferAsprintf(&buf, "(vcpus %u)", def->maxvcpus);
if (def->vcpus < def->maxvcpus)
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-bios-nvram.xml b/tests/qemuxml2argvdata/qemuxml2argv-bios-nvram.xml
new file mode 100644
index 0000000000..d8270b1ee1
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-bios-nvram.xml
@@ -0,0 +1,40 @@
+
+ test-bios
+ 362d1fc1-df7d-193e-5c18-49a71bd1da66
+ 1048576
+ 1048576
+ 1
+
+ hvm
+ /usr/share/OVMF/OVMF_CODE.fd
+ /usr/share/OVMF/OVMF_VARS.fd
+
+
+
+
+
+
+
+ destroy
+ restart
+ restart
+
+ /usr/bin/qemu
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pci-bridge-many-disks.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pci-bridge-many-disks.xml
index d469b8b568..d49f5f4d07 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pci-bridge-many-disks.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pci-bridge-many-disks.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/share/seabios/bios.bin
+ /usr/share/seabios/bios.bin
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index 03c05daf74..34cdb97841 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -396,6 +396,8 @@ mymain(void)
DO_TEST_DIFFERENT("numatune-memnode");
DO_TEST("numatune-memnode-no-memory");
+ DO_TEST("bios-nvram");
+
virObjectUnref(driver.caps);
virObjectUnref(driver.xmlopt);
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-autoport.xml b/tests/sexpr2xmldata/sexpr2xml-fv-autoport.xml
index 69fe9ef8b8..761952cecb 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-autoport.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-autoport.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.xml b/tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.xml
index 3c3147d725..2898098db2 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.xml b/tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.xml
index 716f16b4c2..a0fe30dd01 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.xml b/tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.xml
index 3dd648b894..851797da67 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-kernel.xml b/tests/sexpr2xmldata/sexpr2xml-fv-kernel.xml
index 29c1335bad..09cfe19e81 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-kernel.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-kernel.xml
@@ -6,7 +6,7 @@
2
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
/var/lib/xen/vmlinuz.2Dn2YT
/var/lib/xen/initrd.img.0u-Vhq
method=http://download.fedora.devel.redhat.com/pub/fedora/linux/core/test/5.91/x86_64/os
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-legacy-vfb.xml b/tests/sexpr2xmldata/sexpr2xml-fv-legacy-vfb.xml
index 9c596448a4..44c0f61622 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-legacy-vfb.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-legacy-vfb.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-localtime.xml b/tests/sexpr2xmldata/sexpr2xml-fv-localtime.xml
index 67b0b95cac..29007f0387 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-localtime.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-localtime.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-net-ioemu.xml b/tests/sexpr2xmldata/sexpr2xml-fv-net-ioemu.xml
index 86b32e9257..3dbc999ce1 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-net-ioemu.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-net-ioemu.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-net-netfront.xml b/tests/sexpr2xmldata/sexpr2xml-fv-net-netfront.xml
index ed7da80d77..d96350ebe2 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-net-netfront.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-net-netfront.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-parallel-tcp.xml b/tests/sexpr2xmldata/sexpr2xml-fv-parallel-tcp.xml
index ed3fde64e3..7ad377c051 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-parallel-tcp.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-parallel-tcp.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2-ports.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2-ports.xml
index 7f5a729b5c..adba6cba31 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2-ports.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2-ports.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2nd-port.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2nd-port.xml
index 10f84dc882..b6c36018db 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2nd-port.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2nd-port.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-file.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-file.xml
index a3fd2311da..dabe679d7b 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-file.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-file.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-null.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-null.xml
index b3f77c97dc..fb19d740de 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-null.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-null.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-pipe.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-pipe.xml
index e2171613e7..5aa425b321 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-pipe.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-pipe.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-pty.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-pty.xml
index 3ad22649c4..3c2ca21097 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-pty.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-pty.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-stdio.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-stdio.xml
index 001df567e8..160edbdb6c 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-stdio.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-stdio.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp-telnet.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp-telnet.xml
index c2496fde63..4396efc426 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp-telnet.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp-telnet.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp.xml
index 6dc047ecd9..3d17b58657 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-udp.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-udp.xml
index 7ccaeacf7f..fc3d457f3c 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-udp.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-udp.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-unix.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-unix.xml
index b5ad4134e1..14b54f1b0e 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-unix.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-unix.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-sound-all.xml b/tests/sexpr2xmldata/sexpr2xml-fv-sound-all.xml
index 7183e792c8..912df564bb 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-sound-all.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-sound-all.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-sound.xml b/tests/sexpr2xmldata/sexpr2xml-fv-sound.xml
index 7183e792c8..912df564bb 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-sound.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-sound.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-usbmouse.xml b/tests/sexpr2xmldata/sexpr2xml-fv-usbmouse.xml
index ae90e339ec..19eac3b068 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-usbmouse.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-usbmouse.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-usbtablet.xml b/tests/sexpr2xmldata/sexpr2xml-fv-usbtablet.xml
index f81c47a6e9..40ac8a97f0 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-usbtablet.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-usbtablet.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-utc.xml b/tests/sexpr2xmldata/sexpr2xml-fv-utc.xml
index c783d930b1..97f2bebdb3 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-utc.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-utc.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-v2.xml b/tests/sexpr2xmldata/sexpr2xml-fv-v2.xml
index bd3b107d2b..493d1b597e 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-v2.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-v2.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv.xml b/tests/sexpr2xmldata/sexpr2xml-fv.xml
index c783d930b1..97f2bebdb3 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/sexpr2xmldata/sexpr2xml-no-source-cdrom.xml b/tests/sexpr2xmldata/sexpr2xml-no-source-cdrom.xml
index 00d18ce52f..a3cd7be711 100644
--- a/tests/sexpr2xmldata/sexpr2xml-no-source-cdrom.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-no-source-cdrom.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-escape-paths.xml b/tests/xmconfigdata/test-escape-paths.xml
index de3a7e20f5..623eaa121a 100644
--- a/tests/xmconfigdata/test-escape-paths.xml
+++ b/tests/xmconfigdata/test-escape-paths.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader&test
+ /usr/lib/xen/boot/hvmloader&test
diff --git a/tests/xmconfigdata/test-fullvirt-force-hpet.xml b/tests/xmconfigdata/test-fullvirt-force-hpet.xml
index 75f872423a..57a6531c45 100644
--- a/tests/xmconfigdata/test-fullvirt-force-hpet.xml
+++ b/tests/xmconfigdata/test-fullvirt-force-hpet.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-fullvirt-force-nohpet.xml b/tests/xmconfigdata/test-fullvirt-force-nohpet.xml
index e5741b6e1e..f6ebcf6dc3 100644
--- a/tests/xmconfigdata/test-fullvirt-force-nohpet.xml
+++ b/tests/xmconfigdata/test-fullvirt-force-nohpet.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-fullvirt-localtime.xml b/tests/xmconfigdata/test-fullvirt-localtime.xml
index 8b97e5bae8..36ab389ca5 100644
--- a/tests/xmconfigdata/test-fullvirt-localtime.xml
+++ b/tests/xmconfigdata/test-fullvirt-localtime.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-fullvirt-net-ioemu.xml b/tests/xmconfigdata/test-fullvirt-net-ioemu.xml
index f22c0853f8..3618baeb40 100644
--- a/tests/xmconfigdata/test-fullvirt-net-ioemu.xml
+++ b/tests/xmconfigdata/test-fullvirt-net-ioemu.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-fullvirt-net-netfront.xml b/tests/xmconfigdata/test-fullvirt-net-netfront.xml
index 177bb6ae70..6a2a439017 100644
--- a/tests/xmconfigdata/test-fullvirt-net-netfront.xml
+++ b/tests/xmconfigdata/test-fullvirt-net-netfront.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-fullvirt-new-cdrom.xml b/tests/xmconfigdata/test-fullvirt-new-cdrom.xml
index f22c0853f8..3618baeb40 100644
--- a/tests/xmconfigdata/test-fullvirt-new-cdrom.xml
+++ b/tests/xmconfigdata/test-fullvirt-new-cdrom.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-fullvirt-old-cdrom.xml b/tests/xmconfigdata/test-fullvirt-old-cdrom.xml
index a5926309ba..7d6014d016 100644
--- a/tests/xmconfigdata/test-fullvirt-old-cdrom.xml
+++ b/tests/xmconfigdata/test-fullvirt-old-cdrom.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-fullvirt-parallel-tcp.xml b/tests/xmconfigdata/test-fullvirt-parallel-tcp.xml
index 738e5ab4dc..9b1fd268cc 100644
--- a/tests/xmconfigdata/test-fullvirt-parallel-tcp.xml
+++ b/tests/xmconfigdata/test-fullvirt-parallel-tcp.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-fullvirt-serial-dev-2-ports.xml b/tests/xmconfigdata/test-fullvirt-serial-dev-2-ports.xml
index 753831aee3..a64d40baac 100644
--- a/tests/xmconfigdata/test-fullvirt-serial-dev-2-ports.xml
+++ b/tests/xmconfigdata/test-fullvirt-serial-dev-2-ports.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-fullvirt-serial-dev-2nd-port.xml b/tests/xmconfigdata/test-fullvirt-serial-dev-2nd-port.xml
index 1a55080641..ce2cddb7a2 100644
--- a/tests/xmconfigdata/test-fullvirt-serial-dev-2nd-port.xml
+++ b/tests/xmconfigdata/test-fullvirt-serial-dev-2nd-port.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-fullvirt-serial-file.xml b/tests/xmconfigdata/test-fullvirt-serial-file.xml
index 0d2ac79bd1..36883def00 100644
--- a/tests/xmconfigdata/test-fullvirt-serial-file.xml
+++ b/tests/xmconfigdata/test-fullvirt-serial-file.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-fullvirt-serial-null.xml b/tests/xmconfigdata/test-fullvirt-serial-null.xml
index d4b4ae97f3..982f9d60b9 100644
--- a/tests/xmconfigdata/test-fullvirt-serial-null.xml
+++ b/tests/xmconfigdata/test-fullvirt-serial-null.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-fullvirt-serial-pipe.xml b/tests/xmconfigdata/test-fullvirt-serial-pipe.xml
index 6596dfc0a4..82a1d9b1ec 100644
--- a/tests/xmconfigdata/test-fullvirt-serial-pipe.xml
+++ b/tests/xmconfigdata/test-fullvirt-serial-pipe.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-fullvirt-serial-pty.xml b/tests/xmconfigdata/test-fullvirt-serial-pty.xml
index 6c55abba31..56ccbeae34 100644
--- a/tests/xmconfigdata/test-fullvirt-serial-pty.xml
+++ b/tests/xmconfigdata/test-fullvirt-serial-pty.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-fullvirt-serial-stdio.xml b/tests/xmconfigdata/test-fullvirt-serial-stdio.xml
index 461f143087..e2e9330317 100644
--- a/tests/xmconfigdata/test-fullvirt-serial-stdio.xml
+++ b/tests/xmconfigdata/test-fullvirt-serial-stdio.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-fullvirt-serial-tcp-telnet.xml b/tests/xmconfigdata/test-fullvirt-serial-tcp-telnet.xml
index d2fa7bf4fd..d68d77c06a 100644
--- a/tests/xmconfigdata/test-fullvirt-serial-tcp-telnet.xml
+++ b/tests/xmconfigdata/test-fullvirt-serial-tcp-telnet.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-fullvirt-serial-tcp.xml b/tests/xmconfigdata/test-fullvirt-serial-tcp.xml
index 60ab8bdd14..aa3ed5c4d6 100644
--- a/tests/xmconfigdata/test-fullvirt-serial-tcp.xml
+++ b/tests/xmconfigdata/test-fullvirt-serial-tcp.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-fullvirt-serial-udp.xml b/tests/xmconfigdata/test-fullvirt-serial-udp.xml
index 6c21cd2593..256c7227f3 100644
--- a/tests/xmconfigdata/test-fullvirt-serial-udp.xml
+++ b/tests/xmconfigdata/test-fullvirt-serial-udp.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-fullvirt-serial-unix.xml b/tests/xmconfigdata/test-fullvirt-serial-unix.xml
index f21534e879..235c8d4444 100644
--- a/tests/xmconfigdata/test-fullvirt-serial-unix.xml
+++ b/tests/xmconfigdata/test-fullvirt-serial-unix.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-fullvirt-sound.xml b/tests/xmconfigdata/test-fullvirt-sound.xml
index f09c16d928..1429d10533 100644
--- a/tests/xmconfigdata/test-fullvirt-sound.xml
+++ b/tests/xmconfigdata/test-fullvirt-sound.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-fullvirt-usbmouse.xml b/tests/xmconfigdata/test-fullvirt-usbmouse.xml
index 18a7ff0860..25857f1d21 100644
--- a/tests/xmconfigdata/test-fullvirt-usbmouse.xml
+++ b/tests/xmconfigdata/test-fullvirt-usbmouse.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-fullvirt-usbtablet.xml b/tests/xmconfigdata/test-fullvirt-usbtablet.xml
index 5cbb0079fd..31b11760b1 100644
--- a/tests/xmconfigdata/test-fullvirt-usbtablet.xml
+++ b/tests/xmconfigdata/test-fullvirt-usbtablet.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-fullvirt-utc.xml b/tests/xmconfigdata/test-fullvirt-utc.xml
index f22c0853f8..3618baeb40 100644
--- a/tests/xmconfigdata/test-fullvirt-utc.xml
+++ b/tests/xmconfigdata/test-fullvirt-utc.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-no-source-cdrom.xml b/tests/xmconfigdata/test-no-source-cdrom.xml
index 2a457b25fd..74f1be18d8 100644
--- a/tests/xmconfigdata/test-no-source-cdrom.xml
+++ b/tests/xmconfigdata/test-no-source-cdrom.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader
diff --git a/tests/xmconfigdata/test-pci-devs.xml b/tests/xmconfigdata/test-pci-devs.xml
index f82805666d..1911734224 100644
--- a/tests/xmconfigdata/test-pci-devs.xml
+++ b/tests/xmconfigdata/test-pci-devs.xml
@@ -6,7 +6,7 @@
1
hvm
- /usr/lib/xen/boot/hvmloader
+ /usr/lib/xen/boot/hvmloader