From 79e7d2c60220c4e0b4de1434fe48c6ec4cc1e020 Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Fri, 20 Jan 2023 17:13:00 +0100 Subject: [PATCH] qemu: Introduce qemuDomainDefBootPostParse() Move all the boot related parts of qemuDomainDefPostParse() to a separate helper. Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik --- src/qemu/qemu_domain.c | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 6f6fb282be..9cba02dc5a 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -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;