diff --git a/src/conf/device_conf.c b/src/conf/device_conf.c index dd381f303e..1db92aba4a 100644 --- a/src/conf/device_conf.c +++ b/src/conf/device_conf.c @@ -321,6 +321,42 @@ virPCIDeviceAddressEqual(virPCIDeviceAddress *addr1, return false; } +int +virDomainDeviceCCWAddressIsValid(virDomainDeviceCCWAddressPtr addr) +{ + return addr->cssid <= VIR_DOMAIN_DEVICE_CCW_MAX_CSSID && + addr->ssid <= VIR_DOMAIN_DEVICE_CCW_MAX_SSID && + addr->devno <= VIR_DOMAIN_DEVICE_CCW_MAX_DEVNO; +} + +int +virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info, + int type) +{ + if (info->type != type) + return 0; + + switch (info->type) { + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI: + return virPCIDeviceAddressIsValid(&info->addr.pci, false); + + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE: + return 1; + + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390: + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_MMIO: + return 1; + + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW: + return virDomainDeviceCCWAddressIsValid(&info->addr.ccw); + + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_USB: + return 1; + } + + return 0; +} + int virInterfaceLinkParseXML(xmlNodePtr node, virNetDevIfLinkPtr lnk) diff --git a/src/conf/device_conf.h b/src/conf/device_conf.h index 66a999760c..4a50c3183e 100644 --- a/src/conf/device_conf.h +++ b/src/conf/device_conf.h @@ -188,6 +188,9 @@ bool virDomainDeviceInfoAddressIsEqual(const virDomainDeviceInfo *a, const virDomainDeviceInfo *b) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK; +int virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info, + int type); + int virPCIDeviceAddressIsValid(virPCIDeviceAddressPtr addr, bool report); bool virPCIDeviceAddressIsEmpty(const virPCIDeviceAddress *addr); @@ -205,6 +208,8 @@ int virPCIDeviceAddressFormat(virBufferPtr buf, bool virPCIDeviceAddressEqual(virPCIDeviceAddress *addr1, virPCIDeviceAddress *addr2); +int virDomainDeviceCCWAddressIsValid(virDomainDeviceCCWAddressPtr addr); + int virInterfaceLinkParseXML(xmlNodePtr node, virNetDevIfLinkPtr lnk); diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 4c6f7b9a2c..fcb4103ad9 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -3586,42 +3586,6 @@ virDomainObjGetOneDef(virDomainObjPtr vm, return virDomainObjGetOneDefState(vm, flags, NULL); } - -static int -virDomainDeviceCCWAddressIsValid(virDomainDeviceCCWAddressPtr addr) -{ - return addr->cssid <= VIR_DOMAIN_DEVICE_CCW_MAX_CSSID && - addr->ssid <= VIR_DOMAIN_DEVICE_CCW_MAX_SSID && - addr->devno <= VIR_DOMAIN_DEVICE_CCW_MAX_DEVNO; -} - -int virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info, - int type) -{ - if (info->type != type) - return 0; - - switch (info->type) { - case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI: - return virPCIDeviceAddressIsValid(&info->addr.pci, false); - - case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE: - return 1; - - case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390: - case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_MMIO: - return 1; - - case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW: - return virDomainDeviceCCWAddressIsValid(&info->addr.ccw); - - case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_USB: - return 1; - } - - return 0; -} - virDomainDeviceInfoPtr virDomainDeviceGetInfo(virDomainDeviceDefPtr device) { diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 2a827a093f..3ff6eea117 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2911,8 +2911,6 @@ virDomainDeviceDefPtr virDomainDeviceDefCopy(virDomainDeviceDefPtr src, const virDomainDef *def, virCapsPtr caps, virDomainXMLOptionPtr xmlopt); -int virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info, - int type); virDomainDeviceInfoPtr virDomainDeviceGetInfo(virDomainDeviceDefPtr device); void virDomainTPMDefFree(virDomainTPMDefPtr def); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 0e5d05b6b8..96520958df 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -95,7 +95,9 @@ virCPUModeTypeToString; # conf/device_conf.h virDeviceInfoPCIAddressIsPresent; virDeviceInfoPCIAddressIsWanted; +virDomainDeviceAddressIsValid; virDomainDeviceAddressTypeToString; +virDomainDeviceCCWAddressIsValid; virDomainDeviceInfoAddressIsEqual; virDomainDeviceInfoCopy; virInterfaceLinkFormat; @@ -291,7 +293,6 @@ virDomainDefSetVcpusMax; virDomainDefValidate; virDomainDefVcpuOrderClear; virDomainDeleteConfig; -virDomainDeviceAddressIsValid; virDomainDeviceAliasIsUserAlias; virDomainDeviceDefCopy; virDomainDeviceDefFree;