* vm0
*/
size_t i;
- bool add_lpc = false;
int nusbcontrollers = 0;
unsigned int nvcpus = virDomainDefGetVcpus(def);
if ((bhyveDriverGetCaps(conn) & BHYVE_CAP_LPC_BOOTROM)) {
virCommandAddArg(cmd, "-l");
virCommandAddArgFormat(cmd, "bootrom,%s", def->os.loader->path);
- add_lpc = true;
} else {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("Installed bhyve binary does not support "
if (bhyveBuildGraphicsArgStr(def, def->graphics[0], def->videos[0],
conn, cmd, dryRun) < 0)
goto error;
- add_lpc = true;
} else {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("Multiple graphics devices are not supported"));
}
}
- if (add_lpc || def->nserials)
+ if (bhyveDomainDefNeedsISAController(def))
bhyveBuildLPCArgStr(def, cmd);
if (bhyveBuildConsoleArgStr(def, cmd) < 0)
.free = bhyveDomainObjPrivateFree,
};
+bool
+bhyveDomainDefNeedsISAController(virDomainDefPtr def)
+{
+ if (def->os.bootloader == NULL && def->os.loader)
+ return true;
+
+ if (def->nserials)
+ return true;
+
+ if (def->ngraphics && def->nvideos)
+ return true;
+
+ return false;
+}
+
static int
bhyveDomainDefPostParse(virDomainDefPtr def,
virCapsPtr caps ATTRIBUTE_UNUSED,
extern virDomainDefParserConfig virBhyveDriverDomainDefParserConfig;
extern virDomainXMLNamespace virBhyveDriverDomainXMLNamespace;
+bool bhyveDomainDefNeedsISAController(virDomainDefPtr def);
+
#endif /* LIBVIRT_BHYVE_DOMAIN_H */