mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
qemu: Use FW descriptors to report FW image paths
Now that we have qemuFirmwareGetSupported() so that it also returns a list of FW image paths, we can use it to report them in domain capabilities instead of the old time default list. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1733940 Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Cole Robinson <crobinso@redhat.com>
This commit is contained in:
parent
5a5b8f74d4
commit
e9d51a221c
@ -5181,12 +5181,16 @@ virQEMUCapsFillDomainOSCaps(virDomainCapsOSPtr os,
|
|||||||
virDomainCapsLoaderPtr capsLoader = &os->loader;
|
virDomainCapsLoaderPtr capsLoader = &os->loader;
|
||||||
uint64_t autoFirmwares = 0;
|
uint64_t autoFirmwares = 0;
|
||||||
bool secure = false;
|
bool secure = false;
|
||||||
|
virFirmwarePtr *firmwaresAlt = NULL;
|
||||||
|
size_t nfirmwaresAlt = 0;
|
||||||
|
int ret = -1;
|
||||||
|
|
||||||
os->supported = VIR_TRISTATE_BOOL_YES;
|
os->supported = VIR_TRISTATE_BOOL_YES;
|
||||||
os->firmware.report = true;
|
os->firmware.report = true;
|
||||||
|
|
||||||
if (qemuFirmwareGetSupported(machine, arch, privileged,
|
if (qemuFirmwareGetSupported(machine, arch, privileged,
|
||||||
&autoFirmwares, &secure, NULL, NULL) < 0)
|
&autoFirmwares, &secure,
|
||||||
|
&firmwaresAlt, &nfirmwaresAlt) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (autoFirmwares & (1ULL << VIR_DOMAIN_OS_DEF_FIRMWARE_BIOS))
|
if (autoFirmwares & (1ULL << VIR_DOMAIN_OS_DEF_FIRMWARE_BIOS))
|
||||||
@ -5194,9 +5198,15 @@ virQEMUCapsFillDomainOSCaps(virDomainCapsOSPtr os,
|
|||||||
if (autoFirmwares & (1ULL << VIR_DOMAIN_OS_DEF_FIRMWARE_EFI))
|
if (autoFirmwares & (1ULL << VIR_DOMAIN_OS_DEF_FIRMWARE_EFI))
|
||||||
VIR_DOMAIN_CAPS_ENUM_SET(os->firmware, VIR_DOMAIN_OS_DEF_FIRMWARE_EFI);
|
VIR_DOMAIN_CAPS_ENUM_SET(os->firmware, VIR_DOMAIN_OS_DEF_FIRMWARE_EFI);
|
||||||
|
|
||||||
if (virQEMUCapsFillDomainLoaderCaps(capsLoader, secure, firmwares, nfirmwares) < 0)
|
if (virQEMUCapsFillDomainLoaderCaps(capsLoader, secure,
|
||||||
return -1;
|
firmwaresAlt ? firmwaresAlt : firmwares,
|
||||||
return 0;
|
firmwaresAlt ? nfirmwaresAlt : nfirmwares) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
ret = 0;
|
||||||
|
cleanup:
|
||||||
|
virFirmwareFreeList(firmwaresAlt, nfirmwaresAlt);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user