VIR_FREE(cfg->saveDir);
VIR_FREE(cfg->autoDumpDir);
VIR_FREE(cfg->lockManagerName);
+ virFirmwareFreeList(cfg->firmwares, cfg->nfirmwares);
}
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;
error:
# include "virchrdev.h"
# include "virhostdev.h"
# include "locking/lock_manager.h"
+# include "virfirmware.h"
# define LIBXL_DRIVER_NAME "xenlight"
# define LIBXL_VNC_PORT_MIN 5900
char *libDir;
char *saveDir;
char *autoDumpDir;
+
+ virFirmwarePtr *firmwares;
+ size_t nfirmwares;
};