mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
virDomainDeviceCCWAddressParseXML: Use virXMLProp*
Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
parent
e1e2e7ec46
commit
9861ae57b7
@ -267,43 +267,36 @@ int
|
|||||||
virDomainDeviceCCWAddressParseXML(xmlNodePtr node,
|
virDomainDeviceCCWAddressParseXML(xmlNodePtr node,
|
||||||
virDomainDeviceCCWAddress *addr)
|
virDomainDeviceCCWAddress *addr)
|
||||||
{
|
{
|
||||||
g_autofree char *cssid = virXMLPropString(node, "cssid");
|
int cssid;
|
||||||
g_autofree char *ssid = virXMLPropString(node, "ssid");
|
int ssid;
|
||||||
g_autofree char *devno = virXMLPropString(node, "devno");
|
int devno;
|
||||||
|
|
||||||
memset(addr, 0, sizeof(*addr));
|
memset(addr, 0, sizeof(*addr));
|
||||||
|
|
||||||
if (cssid && ssid && devno) {
|
if ((cssid = virXMLPropUInt(node, "cssid", 0, VIR_XML_PROP_NONE,
|
||||||
if (cssid &&
|
&addr->cssid)) < 0)
|
||||||
virStrToLong_uip(cssid, NULL, 0, &addr->cssid) < 0) {
|
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
|
||||||
_("Cannot parse <address> 'cssid' attribute"));
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
|
||||||
if (ssid &&
|
if ((ssid = virXMLPropUInt(node, "ssid", 0, VIR_XML_PROP_NONE,
|
||||||
virStrToLong_uip(ssid, NULL, 0, &addr->ssid) < 0) {
|
&addr->ssid)) < 0)
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
|
||||||
_("Cannot parse <address> 'ssid' attribute"));
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
|
||||||
if (devno &&
|
if ((devno = virXMLPropUInt(node, "devno", 0, VIR_XML_PROP_NONE,
|
||||||
virStrToLong_uip(devno, NULL, 0, &addr->devno) < 0) {
|
&addr->devno)) < 0)
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
|
||||||
_("Cannot parse <address> 'devno' attribute"));
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
|
||||||
if (!virDomainDeviceCCWAddressIsValid(addr)) {
|
if (!virDomainDeviceCCWAddressIsValid(addr)) {
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
_("Invalid specification for virtio ccw"
|
_("Invalid specification for virtio ccw address: cssid='0x%x' ssid='0x%x' devno='0x%04x'"),
|
||||||
" address: cssid='%s' ssid='%s' devno='%s'"),
|
addr->cssid, addr->ssid, addr->devno);
|
||||||
cssid, ssid, devno);
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (cssid && ssid && devno) {
|
||||||
addr->assigned = true;
|
addr->assigned = true;
|
||||||
} else if (cssid || ssid || devno) {
|
} else if (cssid || ssid || devno) {
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
_("Invalid partial specification for virtio ccw"
|
_("Invalid partial specification for virtio ccw address"));
|
||||||
" address"));
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user