mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-23 03:42:19 +00:00
libxl: add default firmwares to driver config object
Prefer firmwares specified via --with-loader-nvram configure option. If none are specified, use the Xen-provided default firmwares found in LIBXL_FIRMWARE_DIR. Signed-off-by: Jim Fehlig <jfehlig@suse.com>
This commit is contained in:
parent
fda5a98e9e
commit
cb5d3e9b02
@ -104,6 +104,7 @@ libxlDriverConfigDispose(void *obj)
|
|||||||
VIR_FREE(cfg->saveDir);
|
VIR_FREE(cfg->saveDir);
|
||||||
VIR_FREE(cfg->autoDumpDir);
|
VIR_FREE(cfg->autoDumpDir);
|
||||||
VIR_FREE(cfg->lockManagerName);
|
VIR_FREE(cfg->lockManagerName);
|
||||||
|
virFirmwareFreeList(cfg->firmwares, cfg->nfirmwares);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1777,6 +1778,33 @@ libxlDriverConfigNew(void)
|
|||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef DEFAULT_LOADER_NVRAM
|
||||||
|
if (virFirmwareParseList(DEFAULT_LOADER_NVRAM,
|
||||||
|
&cfg->firmwares,
|
||||||
|
&cfg->nfirmwares) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
#else
|
||||||
|
if (VIR_ALLOC_N(cfg->firmwares, 1) < 0)
|
||||||
|
goto error;
|
||||||
|
cfg->nfirmwares = 1;
|
||||||
|
if (VIR_ALLOC(cfg->firmwares[0]) < 0)
|
||||||
|
goto error;
|
||||||
|
if (VIR_STRDUP(cfg->firmwares[0]->name,
|
||||||
|
LIBXL_FIRMWARE_DIR "/ovmf.bin") < 0)
|
||||||
|
goto error;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Always add hvmloader to firmwares */
|
||||||
|
if (VIR_REALLOC_N(cfg->firmwares, cfg->nfirmwares + 1) < 0)
|
||||||
|
goto error;
|
||||||
|
cfg->nfirmwares++;
|
||||||
|
if (VIR_ALLOC(cfg->firmwares[cfg->nfirmwares - 1]) < 0)
|
||||||
|
goto error;
|
||||||
|
if (VIR_STRDUP(cfg->firmwares[cfg->nfirmwares - 1]->name,
|
||||||
|
LIBXL_FIRMWARE_DIR "/hvmloader") < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
return cfg;
|
return cfg;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
# include "virchrdev.h"
|
# include "virchrdev.h"
|
||||||
# include "virhostdev.h"
|
# include "virhostdev.h"
|
||||||
# include "locking/lock_manager.h"
|
# include "locking/lock_manager.h"
|
||||||
|
# include "virfirmware.h"
|
||||||
|
|
||||||
# define LIBXL_DRIVER_NAME "xenlight"
|
# define LIBXL_DRIVER_NAME "xenlight"
|
||||||
# define LIBXL_VNC_PORT_MIN 5900
|
# define LIBXL_VNC_PORT_MIN 5900
|
||||||
@ -107,6 +108,9 @@ struct _libxlDriverConfig {
|
|||||||
char *libDir;
|
char *libDir;
|
||||||
char *saveDir;
|
char *saveDir;
|
||||||
char *autoDumpDir;
|
char *autoDumpDir;
|
||||||
|
|
||||||
|
virFirmwarePtr *firmwares;
|
||||||
|
size_t nfirmwares;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user