mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-14 10:09:22 +00:00
804d2003e6
And finally the last missing piece. This is what puts it all together. At the beginning, qemuFirmwareFillDomain() loads all possible firmware description files based on algorithm described earlier. Then it tries to find description which matches given domain. The criteria are: - firmware is the right type (e.g. it's bios when bios was requested in domain XML) - firmware is suitable for guest architecture/machine type - firmware allows desired guest features to stay enabled (e.g. if s3/s4 is enabled for guest then firmware has to support it too) Once the desired description has been found it is then used to set various bits of virDomainDef so that proper qemu cmd line is constructed as demanded by the description file. For instance, secure boot enabled firmware might request SMM -> it will be enabled if needed. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com>
52 lines
1.4 KiB
C
52 lines
1.4 KiB
C
/*
|
|
* qemu_firmware.h: QEMU firmware
|
|
*
|
|
* Copyright (C) 2019 Red Hat, Inc.
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library. If not, see
|
|
* <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#ifndef LIBVIRT_QEMU_FIRMWARE_H
|
|
# define LIBVIRT_QEMU_FIRMWARE_H
|
|
|
|
# include "domain_conf.h"
|
|
# include "viralloc.h"
|
|
# include "qemu_conf.h"
|
|
|
|
typedef struct _qemuFirmware qemuFirmware;
|
|
typedef qemuFirmware *qemuFirmwarePtr;
|
|
|
|
void
|
|
qemuFirmwareFree(qemuFirmwarePtr fw);
|
|
|
|
VIR_DEFINE_AUTOPTR_FUNC(qemuFirmware, qemuFirmwareFree);
|
|
|
|
qemuFirmwarePtr
|
|
qemuFirmwareParse(const char *path);
|
|
|
|
char *
|
|
qemuFirmwareFormat(qemuFirmwarePtr fw);
|
|
|
|
int
|
|
qemuFirmwareFetchConfigs(char ***firmwares,
|
|
bool privileged);
|
|
|
|
int
|
|
qemuFirmwareFillDomain(virQEMUDriverPtr driver,
|
|
virDomainObjPtr vm,
|
|
unsigned int flags);
|
|
|
|
#endif /* LIBVIRT_QEMU_FIRMWARE_H */
|