From 679895eb5d456a9902cbe9be748698ec38cc6945 Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Thu, 13 Sep 2018 16:36:25 +0200 Subject: [PATCH] conf: Move more PCI functions out of device_conf MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Functions that deal with virPCIDeviceAddress exclusively belong to util/virpci. Signed-off-by: Andrea Bolognani Reviewed-by: Fabiano Fidêncio Reviewed-by: Ján Tomko --- src/conf/device_conf.c | 66 ---------------------------------------- src/conf/device_conf.h | 7 ----- src/libvirt_private.syms | 6 ++-- src/util/virpci.c | 65 +++++++++++++++++++++++++++++++++++++++ src/util/virpci.h | 7 +++++ 5 files changed, 75 insertions(+), 76 deletions(-) diff --git a/src/conf/device_conf.c b/src/conf/device_conf.c index cbdfbf6ef4..98a419f40f 100644 --- a/src/conf/device_conf.c +++ b/src/conf/device_conf.c @@ -160,59 +160,6 @@ virDomainDeviceInfoAddressIsEqual(const virDomainDeviceInfo *a, return true; } -bool -virPCIDeviceAddressIsValid(virPCIDeviceAddressPtr addr, - bool report) -{ - if (addr->domain > 0xFFFF) { - if (report) - virReportError(VIR_ERR_XML_ERROR, - _("Invalid PCI address domain='0x%x', " - "must be <= 0xFFFF"), - addr->domain); - return false; - } - if (addr->bus > 0xFF) { - if (report) - virReportError(VIR_ERR_XML_ERROR, - _("Invalid PCI address bus='0x%x', " - "must be <= 0xFF"), - addr->bus); - return false; - } - if (addr->slot > 0x1F) { - if (report) - virReportError(VIR_ERR_XML_ERROR, - _("Invalid PCI address slot='0x%x', " - "must be <= 0x1F"), - addr->slot); - return false; - } - if (addr->function > 7) { - if (report) - virReportError(VIR_ERR_XML_ERROR, - _("Invalid PCI address function=0x%x, " - "must be <= 7"), - addr->function); - return false; - } - if (virPCIDeviceAddressIsEmpty(addr)) { - if (report) - virReportError(VIR_ERR_XML_ERROR, "%s", - _("Invalid PCI address 0000:00:00, at least " - "one of domain, bus, or slot must be > 0")); - return false; - } - return true; -} - - -bool -virPCIDeviceAddressIsEmpty(const virPCIDeviceAddress *addr) -{ - return !(addr->domain || addr->bus || addr->slot); -} - bool virDeviceInfoPCIAddressIsWanted(const virDomainDeviceInfo *info) { @@ -309,19 +256,6 @@ virPCIDeviceAddressFormat(virBufferPtr buf, return 0; } -bool -virPCIDeviceAddressEqual(virPCIDeviceAddress *addr1, - virPCIDeviceAddress *addr2) -{ - if (addr1->domain == addr2->domain && - addr1->bus == addr2->bus && - addr1->slot == addr2->slot && - addr1->function == addr2->function) { - return true; - } - return false; -} - bool virDomainDeviceCCWAddressIsValid(virDomainDeviceCCWAddressPtr addr) { diff --git a/src/conf/device_conf.h b/src/conf/device_conf.h index 9f51118e29..407956bd02 100644 --- a/src/conf/device_conf.h +++ b/src/conf/device_conf.h @@ -191,10 +191,6 @@ bool virDomainDeviceInfoAddressIsEqual(const virDomainDeviceInfo *a, bool virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info, int type); -bool virPCIDeviceAddressIsValid(virPCIDeviceAddressPtr addr, - bool report); -bool virPCIDeviceAddressIsEmpty(const virPCIDeviceAddress *addr); - bool virDeviceInfoPCIAddressIsWanted(const virDomainDeviceInfo *info); bool virDeviceInfoPCIAddressIsPresent(const virDomainDeviceInfo *info); @@ -205,9 +201,6 @@ int virPCIDeviceAddressFormat(virBufferPtr buf, virPCIDeviceAddress addr, bool includeTypeInAddr); -bool virPCIDeviceAddressEqual(virPCIDeviceAddress *addr1, - virPCIDeviceAddress *addr2); - bool virDomainDeviceCCWAddressIsValid(virDomainDeviceCCWAddressPtr addr); int virDomainDeviceCCWAddressParseXML(xmlNodePtr node, virDomainDeviceCCWAddressPtr addr); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index e7a4d61f25..b9dabfef1b 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -108,10 +108,7 @@ virDomainDeviceUSBAddressParseXML; virDomainDeviceVirtioSerialAddressParseXML; virInterfaceLinkFormat; virInterfaceLinkParseXML; -virPCIDeviceAddressEqual; virPCIDeviceAddressFormat; -virPCIDeviceAddressIsEmpty; -virPCIDeviceAddressIsValid; virPCIDeviceAddressParseXML; @@ -2498,10 +2495,13 @@ virObjectUnref; # util/virpci.h virPCIDeviceAddressAsString; +virPCIDeviceAddressEqual; virPCIDeviceAddressGetIOMMUGroupAddresses; virPCIDeviceAddressGetIOMMUGroupNum; virPCIDeviceAddressGetSysfsFile; virPCIDeviceAddressIOMMUGroupIterate; +virPCIDeviceAddressIsEmpty; +virPCIDeviceAddressIsValid; virPCIDeviceAddressParse; virPCIDeviceCopy; virPCIDeviceDetach; diff --git a/src/util/virpci.c b/src/util/virpci.c index 1730d888f7..fb3f04fac3 100644 --- a/src/util/virpci.c +++ b/src/util/virpci.c @@ -1668,6 +1668,71 @@ virPCIDeviceReadID(virPCIDevicePtr dev, const char *id_name) return id_str; } +bool +virPCIDeviceAddressIsValid(virPCIDeviceAddressPtr addr, + bool report) +{ + if (addr->domain > 0xFFFF) { + if (report) + virReportError(VIR_ERR_XML_ERROR, + _("Invalid PCI address domain='0x%x', " + "must be <= 0xFFFF"), + addr->domain); + return false; + } + if (addr->bus > 0xFF) { + if (report) + virReportError(VIR_ERR_XML_ERROR, + _("Invalid PCI address bus='0x%x', " + "must be <= 0xFF"), + addr->bus); + return false; + } + if (addr->slot > 0x1F) { + if (report) + virReportError(VIR_ERR_XML_ERROR, + _("Invalid PCI address slot='0x%x', " + "must be <= 0x1F"), + addr->slot); + return false; + } + if (addr->function > 7) { + if (report) + virReportError(VIR_ERR_XML_ERROR, + _("Invalid PCI address function=0x%x, " + "must be <= 7"), + addr->function); + return false; + } + if (virPCIDeviceAddressIsEmpty(addr)) { + if (report) + virReportError(VIR_ERR_XML_ERROR, "%s", + _("Invalid PCI address 0000:00:00, at least " + "one of domain, bus, or slot must be > 0")); + return false; + } + return true; +} + +bool +virPCIDeviceAddressIsEmpty(const virPCIDeviceAddress *addr) +{ + return !(addr->domain || addr->bus || addr->slot); +} + +bool +virPCIDeviceAddressEqual(virPCIDeviceAddress *addr1, + virPCIDeviceAddress *addr2) +{ + if (addr1->domain == addr2->domain && + addr1->bus == addr2->bus && + addr1->slot == addr2->slot && + addr1->function == addr2->function) { + return true; + } + return false; +} + char * virPCIDeviceAddressAsString(virPCIDeviceAddressPtr addr) { diff --git a/src/util/virpci.h b/src/util/virpci.h index b4f72f8f06..16c2eded5e 100644 --- a/src/util/virpci.h +++ b/src/util/virpci.h @@ -218,6 +218,13 @@ int virPCIGetSysfsFile(char *virPCIDeviceName, char **pci_sysfs_device_link) ATTRIBUTE_RETURN_CHECK; +bool virPCIDeviceAddressIsValid(virPCIDeviceAddressPtr addr, + bool report); +bool virPCIDeviceAddressIsEmpty(const virPCIDeviceAddress *addr); + +bool virPCIDeviceAddressEqual(virPCIDeviceAddress *addr1, + virPCIDeviceAddress *addr2); + char *virPCIDeviceAddressAsString(virPCIDeviceAddressPtr addr) ATTRIBUTE_NONNULL(1);