From: Pino Toscano Date: Tue, 9 Apr 2019 14:04:32 +0000 (+0200) Subject: vmx: write firmware back from autoselection X-Git-Tag: v5.3.0-rc1~83 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b4e34d1083bc769a467770454261cf7e653c27e5;p=thirdparty%2Flibvirt.git vmx: write firmware back from autoselection When writing the VMX file from the domain XML, write the firmware key according to the firmware autoselection. Though, at the moment only 'efi' is supported. Reviewed-by: Cole Robinson Signed-off-by: Pino Toscano --- diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index 2d7e827d2d..77f4579910 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -3409,6 +3409,10 @@ virVMXFormatConfig(virVMXContext *ctx, virDomainXMLOptionPtr xmlopt, virDomainDe goto cleanup; } + /* vmx:firmware */ + if (def->os.firmware == VIR_DOMAIN_OS_DEF_FIRMWARE_EFI) + virBufferAddLit(&buffer, "firmware = \"efi\"\n"); + if (virtualHW_version >= 7) { if (hasSCSI) { virBufferAddLit(&buffer, "pciBridge0.present = \"true\"\n"); diff --git a/tests/xml2vmxdata/xml2vmx-firmware-efi.vmx b/tests/xml2vmxdata/xml2vmx-firmware-efi.vmx new file mode 100644 index 0000000000..cc3ec9f34b --- /dev/null +++ b/tests/xml2vmxdata/xml2vmx-firmware-efi.vmx @@ -0,0 +1,11 @@ +.encoding = "UTF-8" +config.version = "8" +virtualHW.version = "4" +guestOS = "other" +uuid.bios = "56 4d 9b ef ac d9 b4 e0-c8 f0 ae a8 b9 10 35 15" +displayName = "firmware-efi" +memsize = "4" +numvcpus = "1" +floppy0.present = "false" +floppy1.present = "false" +firmware = "efi" diff --git a/tests/xml2vmxdata/xml2vmx-firmware-efi.xml b/tests/xml2vmxdata/xml2vmx-firmware-efi.xml new file mode 100644 index 0000000000..b91735ab63 --- /dev/null +++ b/tests/xml2vmxdata/xml2vmx-firmware-efi.xml @@ -0,0 +1,8 @@ + + firmware-efi + 564d9bef-acd9-b4e0-c8f0-aea8b9103515 + 4096 + + hvm + + diff --git a/tests/xml2vmxtest.c b/tests/xml2vmxtest.c index 0143c05b19..5d5dc0a518 100644 --- a/tests/xml2vmxtest.c +++ b/tests/xml2vmxtest.c @@ -295,6 +295,8 @@ mymain(void) DO_TEST("svga", "svga", 4); + DO_TEST("firmware-efi", "firmware-efi", 4); + DO_TEST("datacenterpath", "datacenterpath", 4); virObjectUnref(caps);