return ret;
}
-static int
-virDomainParseLegacyDeviceAddress(char *devaddr,
- virPCIDeviceAddressPtr pci)
-{
- char *tmp;
-
- /* expected format: <domain>:<bus>:<slot> */
- if (/* domain */
- virStrToLong_ui(devaddr, &tmp, 16, &pci->domain) < 0 || *tmp != ':' ||
- /* bus */
- virStrToLong_ui(tmp + 1, &tmp, 16, &pci->bus) < 0 || *tmp != ':' ||
- /* slot */
- virStrToLong_ui(tmp + 1, NULL, 16, &pci->slot) < 0)
- return -1;
-
- return 0;
-}
-
static int
virDomainHostdevSubsysUSBDefParseXML(xmlNodePtr node,
virDomainHostdevDefPtr def)
if (virPCIDeviceAddressParseXML(cur, addr) < 0)
goto out;
- } else if ((flags & VIR_DOMAIN_DEF_PARSE_STATUS) &&
- virXMLNodeNameEqual(cur, "state")) {
- /* Legacy back-compat. Don't add any more attributes here */
- g_autofree char *devaddr = virXMLPropString(cur, "devaddr");
- if (devaddr &&
- virDomainParseLegacyDeviceAddress(devaddr,
- &def->info->addr.pci) < 0) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Unable to parse devaddr parameter '%s'"),
- devaddr);
- goto out;
- }
- def->info->type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI;
} else if ((flags & VIR_DOMAIN_DEF_PARSE_PCI_ORIG_STATES) &&
virXMLNodeNameEqual(cur, "origstates")) {
virDomainHostdevOrigStatesPtr states = &def->origstates;
g_autofree char *sgio = NULL;
g_autofree char *target = NULL;
g_autofree char *bus = NULL;
- g_autofree char *devaddr = NULL;
g_autofree char *serial = NULL;
g_autofree char *startupPolicy = NULL;
g_autofree char *tray = NULL;
def->src->shared = true;
} else if (virXMLNodeNameEqual(cur, "transient")) {
def->transient = true;
- } else if ((flags & VIR_DOMAIN_DEF_PARSE_STATUS) &&
- virXMLNodeNameEqual(cur, "state")) {
- /* Legacy back-compat. Don't add any more attributes here */
- devaddr = virXMLPropString(cur, "devaddr");
} else if (!encryption &&
virXMLNodeNameEqual(cur, "encryption")) {
/* If we've already parsed <source> and found an <encryption> child,
}
}
- if (devaddr) {
- if (virDomainParseLegacyDeviceAddress(devaddr,
- &def->info.addr.pci) < 0) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Unable to parse devaddr parameter '%s'"),
- devaddr);
- goto error;
- }
- def->info.type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI;
- } else {
- if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info,
- flags | VIR_DOMAIN_DEF_PARSE_ALLOW_BOOT) < 0)
- goto error;
+ if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info,
+ flags | VIR_DOMAIN_DEF_PARSE_ALLOW_BOOT) < 0) {
+ goto error;
}
if (startupPolicy) {
g_autofree char *str = NULL;
g_autofree char *filter = NULL;
g_autofree char *internal = NULL;
- g_autofree char *devaddr = NULL;
g_autofree char *mode = NULL;
g_autofree char *linkstate = NULL;
g_autofree char *addrtype = NULL;
filter = virXMLPropString(cur, "filter");
virHashFree(filterparams);
filterparams = virNWFilterParseParamAttributes(cur);
- } else if ((flags & VIR_DOMAIN_DEF_PARSE_STATUS) &&
- virXMLNodeNameEqual(cur, "state")) {
- /* Legacy back-compat. Don't add any more attributes here */
- devaddr = virXMLPropString(cur, "devaddr");
} else if (virXMLNodeNameEqual(cur, "boot")) {
/* boot is parsed as part of virDomainDeviceInfoParseXML */
} else if (!actual &&
def->mac_generated = true;
}
- if (devaddr) {
- if (virDomainParseLegacyDeviceAddress(devaddr,
- &def->info.addr.pci) < 0) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Unable to parse devaddr parameter '%s'"),
- devaddr);
- goto error;
- }
- def->info.type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI;
- } else {
- if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info,
- flags | VIR_DOMAIN_DEF_PARSE_ALLOW_BOOT
- | VIR_DOMAIN_DEF_PARSE_ALLOW_ROM) < 0)
- goto error;
+ if (virDomainDeviceInfoParseXML(xmlopt, node, &def->info,
+ flags | VIR_DOMAIN_DEF_PARSE_ALLOW_BOOT
+ | VIR_DOMAIN_DEF_PARSE_ALLOW_ROM) < 0) {
+ goto error;
}
if (model != NULL &&