diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 3cd0617c0f..e2f35fe20b 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2298,8 +2298,8 @@ struct _virDomainOSEnv { typedef enum { VIR_DOMAIN_OS_DEF_FIRMWARE_NONE = 0, - VIR_DOMAIN_OS_DEF_FIRMWARE_BIOS = VIR_DOMAIN_LOADER_TYPE_ROM, - VIR_DOMAIN_OS_DEF_FIRMWARE_EFI = VIR_DOMAIN_LOADER_TYPE_PFLASH, + VIR_DOMAIN_OS_DEF_FIRMWARE_BIOS, + VIR_DOMAIN_OS_DEF_FIRMWARE_EFI, VIR_DOMAIN_OS_DEF_FIRMWARE_LAST } virDomainOsDefFirmware; diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c index 529ab8d68e..84c80eaacb 100644 --- a/src/qemu/qemu_firmware.c +++ b/src/qemu/qemu_firmware.c @@ -899,7 +899,7 @@ qemuFirmwareMatchesMachineArch(const qemuFirmware *fw, static qemuFirmwareOSInterface -qemuFirmwareOSInterfaceTypeFromOsDefFirmware(int fw) +qemuFirmwareOSInterfaceTypeFromOsDefFirmware(virDomainOsDefFirmware fw) { switch (fw) { case VIR_DOMAIN_OS_DEF_FIRMWARE_BIOS: @@ -915,6 +915,23 @@ qemuFirmwareOSInterfaceTypeFromOsDefFirmware(int fw) } +static qemuFirmwareOSInterface +qemuFirmwareOSInterfaceTypeFromOsDefLoaderType(virDomainLoader type) +{ + switch (type) { + case VIR_DOMAIN_LOADER_TYPE_ROM: + return QEMU_FIRMWARE_OS_INTERFACE_BIOS; + case VIR_DOMAIN_LOADER_TYPE_PFLASH: + return QEMU_FIRMWARE_OS_INTERFACE_UEFI; + case VIR_DOMAIN_LOADER_TYPE_NONE: + case VIR_DOMAIN_LOADER_TYPE_LAST: + break; + } + + return QEMU_FIRMWARE_OS_INTERFACE_NONE; +} + + #define VIR_QEMU_FIRMWARE_AMD_SEV_ES_POLICY (1 << 2) @@ -939,7 +956,7 @@ qemuFirmwareMatchDomain(const virDomainDef *def, if (want == QEMU_FIRMWARE_OS_INTERFACE_NONE && def->os.loader) { - want = qemuFirmwareOSInterfaceTypeFromOsDefFirmware(def->os.loader->type); + want = qemuFirmwareOSInterfaceTypeFromOsDefLoaderType(def->os.loader->type); if (fw->mapping.device != QEMU_FIRMWARE_DEVICE_FLASH || STRNEQ(def->os.loader->path, fw->mapping.data.flash.executable.filename)) {