conf: Move virDomainDeviceAddressIsValid() to device_conf

The function is called on a virDomainDeviceInfo, so it
should be declared along with it.

Moving this function requires moving and making public
virDomainDeviceCCWAddressIsValid() as well, but that's
perfectly fine since the same reasoning above also
applies to it, due to virDomainDeviceCCWAddress being
(correctly) declared in device_conf.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Andrea Bolognani 2018-08-29 18:19:15 +02:00
parent edeef77958
commit ab3f781a10
5 changed files with 43 additions and 39 deletions

View File

@ -321,6 +321,42 @@ virPCIDeviceAddressEqual(virPCIDeviceAddress *addr1,
return false; 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 int
virInterfaceLinkParseXML(xmlNodePtr node, virInterfaceLinkParseXML(xmlNodePtr node,
virNetDevIfLinkPtr lnk) virNetDevIfLinkPtr lnk)

View File

@ -188,6 +188,9 @@ bool virDomainDeviceInfoAddressIsEqual(const virDomainDeviceInfo *a,
const virDomainDeviceInfo *b) const virDomainDeviceInfo *b)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK; ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
int virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info,
int type);
int virPCIDeviceAddressIsValid(virPCIDeviceAddressPtr addr, int virPCIDeviceAddressIsValid(virPCIDeviceAddressPtr addr,
bool report); bool report);
bool virPCIDeviceAddressIsEmpty(const virPCIDeviceAddress *addr); bool virPCIDeviceAddressIsEmpty(const virPCIDeviceAddress *addr);
@ -205,6 +208,8 @@ int virPCIDeviceAddressFormat(virBufferPtr buf,
bool virPCIDeviceAddressEqual(virPCIDeviceAddress *addr1, bool virPCIDeviceAddressEqual(virPCIDeviceAddress *addr1,
virPCIDeviceAddress *addr2); virPCIDeviceAddress *addr2);
int virDomainDeviceCCWAddressIsValid(virDomainDeviceCCWAddressPtr addr);
int virInterfaceLinkParseXML(xmlNodePtr node, int virInterfaceLinkParseXML(xmlNodePtr node,
virNetDevIfLinkPtr lnk); virNetDevIfLinkPtr lnk);

View File

@ -3586,42 +3586,6 @@ virDomainObjGetOneDef(virDomainObjPtr vm,
return virDomainObjGetOneDefState(vm, flags, NULL); 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 virDomainDeviceInfoPtr
virDomainDeviceGetInfo(virDomainDeviceDefPtr device) virDomainDeviceGetInfo(virDomainDeviceDefPtr device)
{ {

View File

@ -2911,8 +2911,6 @@ virDomainDeviceDefPtr virDomainDeviceDefCopy(virDomainDeviceDefPtr src,
const virDomainDef *def, const virDomainDef *def,
virCapsPtr caps, virCapsPtr caps,
virDomainXMLOptionPtr xmlopt); virDomainXMLOptionPtr xmlopt);
int virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info,
int type);
virDomainDeviceInfoPtr virDomainDeviceGetInfo(virDomainDeviceDefPtr device); virDomainDeviceInfoPtr virDomainDeviceGetInfo(virDomainDeviceDefPtr device);
void virDomainTPMDefFree(virDomainTPMDefPtr def); void virDomainTPMDefFree(virDomainTPMDefPtr def);

View File

@ -95,7 +95,9 @@ virCPUModeTypeToString;
# conf/device_conf.h # conf/device_conf.h
virDeviceInfoPCIAddressIsPresent; virDeviceInfoPCIAddressIsPresent;
virDeviceInfoPCIAddressIsWanted; virDeviceInfoPCIAddressIsWanted;
virDomainDeviceAddressIsValid;
virDomainDeviceAddressTypeToString; virDomainDeviceAddressTypeToString;
virDomainDeviceCCWAddressIsValid;
virDomainDeviceInfoAddressIsEqual; virDomainDeviceInfoAddressIsEqual;
virDomainDeviceInfoCopy; virDomainDeviceInfoCopy;
virInterfaceLinkFormat; virInterfaceLinkFormat;
@ -291,7 +293,6 @@ virDomainDefSetVcpusMax;
virDomainDefValidate; virDomainDefValidate;
virDomainDefVcpuOrderClear; virDomainDefVcpuOrderClear;
virDomainDeleteConfig; virDomainDeleteConfig;
virDomainDeviceAddressIsValid;
virDomainDeviceAliasIsUserAlias; virDomainDeviceAliasIsUserAlias;
virDomainDeviceDefCopy; virDomainDeviceDefCopy;
virDomainDeviceDefFree; virDomainDeviceDefFree;