]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Introduce qemuDomainDefBootPostParse()
authorAndrea Bolognani <abologna@redhat.com>
Fri, 20 Jan 2023 16:13:00 +0000 (17:13 +0100)
committerAndrea Bolognani <abologna@redhat.com>
Fri, 3 Mar 2023 12:41:04 +0000 (13:41 +0100)
Move all the boot related parts of qemuDomainDefPostParse()
to a separate helper.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/qemu/qemu_domain.c

index 6f6fb282bee3f7e28b1ebe210025df13f15259de..9cba02dc5a6b1cc2082da4b0072ea5c905ec6916 100644 (file)
@@ -4425,6 +4425,29 @@ qemuDomainRecheckInternalPaths(virDomainDef *def,
 }
 
 
+static int
+qemuDomainDefBootPostParse(virDomainDef *def,
+                           virQEMUDriverConfig *cfg)
+{
+    if (def->os.bootloader || def->os.bootloaderArgs) {
+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                       _("bootloader is not supported by QEMU"));
+        return -1;
+    }
+
+    if (virDomainDefHasOldStyleROUEFI(def) &&
+        !def->os.loader->nvram &&
+        def->os.loader->stateless != VIR_TRISTATE_BOOL_YES) {
+        def->os.loader->nvram = virStorageSourceNew();
+        def->os.loader->nvram->type = VIR_STORAGE_TYPE_FILE;
+        def->os.loader->nvram->format = VIR_STORAGE_FILE_RAW;
+        qemuDomainNVRAMPathFormat(cfg, def, &def->os.loader->nvram->path);
+    }
+
+    return 0;
+}
+
+
 static int
 qemuDomainDefMachinePostParse(virDomainDef *def,
                               virQEMUCaps *qemuCaps)
@@ -4795,20 +4818,8 @@ qemuDomainDefPostParse(virDomainDef *def,
     if (qemuDomainDefMachinePostParse(def, qemuCaps) < 0)
         return -1;
 
-    if (def->os.bootloader || def->os.bootloaderArgs) {
-        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-                       _("bootloader is not supported by QEMU"));
+    if (qemuDomainDefBootPostParse(def, cfg) < 0)
         return -1;
-    }
-
-    if (virDomainDefHasOldStyleROUEFI(def) &&
-        !def->os.loader->nvram &&
-        def->os.loader->stateless != VIR_TRISTATE_BOOL_YES) {
-        def->os.loader->nvram = virStorageSourceNew();
-        def->os.loader->nvram->type = VIR_STORAGE_TYPE_FILE;
-        def->os.loader->nvram->format = VIR_STORAGE_FILE_RAW;
-        qemuDomainNVRAMPathFormat(cfg, def, &def->os.loader->nvram->path);
-    }
 
     if (qemuDomainDefAddDefaultDevices(driver, def, qemuCaps) < 0)
         return -1;