mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-25 04:42:20 +00:00
conf: introduce virDomainDefParseBootFirmwareOptions
Extract the code to it's own function. Signed-off-by: Pavel Hrdina <phrdina@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
bf9b3f8e57
commit
bcf97abfc6
@ -19577,6 +19577,31 @@ virDomainDefParseBootKernelOptions(virDomainDefPtr def,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
virDomainDefParseBootFirmwareOptions(virDomainDefPtr def,
|
||||||
|
xmlXPathContextPtr ctxt)
|
||||||
|
{
|
||||||
|
g_autofree char *firmware = virXPathString("string(./os/@firmware)", ctxt);
|
||||||
|
int fw = 0;
|
||||||
|
|
||||||
|
if (!firmware)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
fw = virDomainOsDefFirmwareTypeFromString(firmware);
|
||||||
|
|
||||||
|
if (fw <= 0) {
|
||||||
|
virReportError(VIR_ERR_XML_ERROR,
|
||||||
|
_("unknown firmware value %s"),
|
||||||
|
firmware);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
def->os.firmware = fw;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virDomainDefParseBootOptions(virDomainDefPtr def,
|
virDomainDefParseBootOptions(virDomainDefPtr def,
|
||||||
xmlXPathContextPtr ctxt)
|
xmlXPathContextPtr ctxt)
|
||||||
@ -19603,25 +19628,15 @@ virDomainDefParseBootOptions(virDomainDefPtr def,
|
|||||||
def->os.type == VIR_DOMAIN_OSTYPE_XENPVH ||
|
def->os.type == VIR_DOMAIN_OSTYPE_XENPVH ||
|
||||||
def->os.type == VIR_DOMAIN_OSTYPE_HVM ||
|
def->os.type == VIR_DOMAIN_OSTYPE_HVM ||
|
||||||
def->os.type == VIR_DOMAIN_OSTYPE_UML) {
|
def->os.type == VIR_DOMAIN_OSTYPE_UML) {
|
||||||
g_autofree char *firmware = NULL;
|
|
||||||
xmlNodePtr loader_node;
|
xmlNodePtr loader_node;
|
||||||
|
|
||||||
virDomainDefParseBootKernelOptions(def, ctxt);
|
virDomainDefParseBootKernelOptions(def, ctxt);
|
||||||
|
|
||||||
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM &&
|
if (def->os.type == VIR_DOMAIN_OSTYPE_HVM) {
|
||||||
(firmware = virXPathString("string(./os/@firmware)", ctxt))) {
|
if (virDomainDefParseBootFirmwareOptions(def, ctxt) < 0)
|
||||||
int fw = virDomainOsDefFirmwareTypeFromString(firmware);
|
|
||||||
|
|
||||||
if (fw <= 0) {
|
|
||||||
virReportError(VIR_ERR_XML_ERROR,
|
|
||||||
_("unknown firmware value %s"),
|
|
||||||
firmware);
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
def->os.firmware = fw;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((loader_node = virXPathNode("./os/loader[1]", ctxt))) {
|
if ((loader_node = virXPathNode("./os/loader[1]", ctxt))) {
|
||||||
const bool fwAutoSelect = def->os.firmware != VIR_DOMAIN_OS_DEF_FIRMWARE_NONE;
|
const bool fwAutoSelect = def->os.firmware != VIR_DOMAIN_OS_DEF_FIRMWARE_NONE;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user