<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 13, 2018 at 4:38 PM, Andrea Bolognani <span dir="ltr"><<a href="mailto:abologna@redhat.com" target="_blank">abologna@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Functions that deal with virPCIDeviceAddress exclusively<br>
belong to util/virpci.<br>
<br>
Signed-off-by: Andrea Bolognani <<a href="mailto:abologna@redhat.com">abologna@redhat.com</a>><br></blockquote><div><br></div><div>Reviewed-by: Fabiano Fidêncio <<a href="mailto:fidencio@redhat.com">fidencio@redhat.com</a>><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
---<br>
 src/conf/device_conf.c   | 66 ------------------------------<wbr>----------<br>
 src/conf/device_conf.h   |  7 -----<br>
 src/libvirt_private.syms |  6 ++--<br>
 src/util/virpci.c        | 65 ++++++++++++++++++++++++++++++<wbr>+++++++++<br>
 src/util/virpci.h        |  7 +++++<br>
 5 files changed, 75 insertions(+), 76 deletions(-)<br>
<br>
diff --git a/src/conf/device_conf.c b/src/conf/device_conf.c<br>
index cbdfbf6ef4..98a419f40f 100644<br>
--- a/src/conf/device_conf.c<br>
+++ b/src/conf/device_conf.c<br>
@@ -160,59 +160,6 @@ virDomainDeviceInfoAddressIsEq<wbr>ual(const virDomainDeviceInfo *a,<br>
     return true;<br>
 }<br>
<br>
-bool<br>
-virPCIDeviceAddressIsValid(<wbr>virPCIDeviceAddressPtr addr,<br>
-                           bool report)<br>
-{<br>
-    if (addr->domain > 0xFFFF) {<br>
-        if (report)<br>
-            virReportError(VIR_ERR_XML_<wbr>ERROR,<br>
-                           _("Invalid PCI address domain='0x%x', "<br>
-                             "must be <= 0xFFFF"),<br>
-                           addr->domain);<br>
-        return false;<br>
-    }<br>
-    if (addr->bus > 0xFF) {<br>
-        if (report)<br>
-            virReportError(VIR_ERR_XML_<wbr>ERROR,<br>
-                           _("Invalid PCI address bus='0x%x', "<br>
-                             "must be <= 0xFF"),<br>
-                           addr->bus);<br>
-        return false;<br>
-    }<br>
-    if (addr->slot > 0x1F) {<br>
-        if (report)<br>
-            virReportError(VIR_ERR_XML_<wbr>ERROR,<br>
-                           _("Invalid PCI address slot='0x%x', "<br>
-                             "must be <= 0x1F"),<br>
-                           addr->slot);<br>
-        return false;<br>
-    }<br>
-    if (addr->function > 7) {<br>
-        if (report)<br>
-            virReportError(VIR_ERR_XML_<wbr>ERROR,<br>
-                           _("Invalid PCI address function=0x%x, "<br>
-                             "must be <= 7"),<br>
-                           addr->function);<br>
-        return false;<br>
-    }<br>
-    if (virPCIDeviceAddressIsEmpty(<wbr>addr)) {<br>
-        if (report)<br>
-            virReportError(VIR_ERR_XML_<wbr>ERROR, "%s",<br>
-                           _("Invalid PCI address 0000:00:00, at least "<br>
-                             "one of domain, bus, or slot must be > 0"));<br>
-        return false;<br>
-    }<br>
-    return true;<br>
-}<br>
-<br>
-<br>
-bool<br>
-virPCIDeviceAddressIsEmpty(<wbr>const virPCIDeviceAddress *addr)<br>
-{<br>
-    return !(addr->domain || addr->bus || addr->slot);<br>
-}<br>
-<br>
 bool<br>
 virDeviceInfoPCIAddressIsWante<wbr>d(const virDomainDeviceInfo *info)<br>
 {<br>
@@ -309,19 +256,6 @@ virPCIDeviceAddressFormat(<wbr>virBufferPtr buf,<br>
     return 0;<br>
 }<br>
<br>
-bool<br>
-virPCIDeviceAddressEqual(<wbr>virPCIDeviceAddress *addr1,<br>
-                         virPCIDeviceAddress *addr2)<br>
-{<br>
-    if (addr1->domain == addr2->domain &&<br>
-        addr1->bus == addr2->bus &&<br>
-        addr1->slot == addr2->slot &&<br>
-        addr1->function == addr2->function) {<br>
-        return true;<br>
-    }<br>
-    return false;<br>
-}<br>
-<br>
 bool<br>
 virDomainDeviceCCWAddressIsVal<wbr>id(<wbr>virDomainDeviceCCWAddressPtr addr)<br>
 {<br>
diff --git a/src/conf/device_conf.h b/src/conf/device_conf.h<br>
index 9f51118e29..407956bd02 100644<br>
--- a/src/conf/device_conf.h<br>
+++ b/src/conf/device_conf.h<br>
@@ -191,10 +191,6 @@ bool virDomainDeviceInfoAddressIsEq<wbr>ual(const virDomainDeviceInfo *a,<br>
 bool virDomainDeviceAddressIsValid(<wbr>virDomainDeviceInfoPtr info,<br>
                                    int type);<br>
<br>
-bool virPCIDeviceAddressIsValid(<wbr>virPCIDeviceAddressPtr addr,<br>
-                                bool report);<br>
-bool virPCIDeviceAddressIsEmpty(<wbr>const virPCIDeviceAddress *addr);<br>
-<br>
 bool virDeviceInfoPCIAddressIsWante<wbr>d(const virDomainDeviceInfo *info);<br>
 bool virDeviceInfoPCIAddressIsPrese<wbr>nt(const virDomainDeviceInfo *info);<br>
<br>
@@ -205,9 +201,6 @@ int virPCIDeviceAddressFormat(<wbr>virBufferPtr buf,<br>
                               virPCIDeviceAddress addr,<br>
                               bool includeTypeInAddr);<br>
<br>
-bool virPCIDeviceAddressEqual(<wbr>virPCIDeviceAddress *addr1,<br>
-                              virPCIDeviceAddress *addr2);<br>
-<br>
 bool virDomainDeviceCCWAddressIsVal<wbr>id(<wbr>virDomainDeviceCCWAddressPtr addr);<br>
 int virDomainDeviceCCWAddressParse<wbr>XML(xmlNodePtr node,<br>
                                       virDomainDeviceCCWAddressPtr addr);<br>
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms<br>
index a0d229a79f..d6662d691d 100644<br>
--- a/src/libvirt_private.syms<br>
+++ b/src/libvirt_private.syms<br>
@@ -108,10 +108,7 @@ virDomainDeviceUSBAddressParse<wbr>XML;<br>
 virDomainDeviceVirtioSerialAdd<wbr>ressParseXML;<br>
 virInterfaceLinkFormat;<br>
 virInterfaceLinkParseXML;<br>
-virPCIDeviceAddressEqual;<br>
 virPCIDeviceAddressFormat;<br>
-virPCIDeviceAddressIsEmpty;<br>
-virPCIDeviceAddressIsValid;<br>
 virPCIDeviceAddressParseXML;<br>
<br>
<br>
@@ -2498,10 +2495,13 @@ virObjectUnref;<br>
<br>
 # util/virpci.h<br>
 virPCIDeviceAddressAsString;<br>
+virPCIDeviceAddressEqual;<br>
 virPCIDeviceAddressGetIOMMUGro<wbr>upAddresses;<br>
 virPCIDeviceAddressGetIOMMUGro<wbr>upNum;<br>
 virPCIDeviceAddressGetSysfsFil<wbr>e;<br>
 virPCIDeviceAddressIOMMUGroupI<wbr>terate;<br>
+virPCIDeviceAddressIsEmpty;<br>
+virPCIDeviceAddressIsValid;<br>
 virPCIDeviceAddressParse;<br>
 virPCIDeviceCopy;<br>
 virPCIDeviceDetach;<br>
diff --git a/src/util/virpci.c b/src/util/virpci.c<br>
index 1730d888f7..fb3f04fac3 100644<br>
--- a/src/util/virpci.c<br>
+++ b/src/util/virpci.c<br>
@@ -1668,6 +1668,71 @@ virPCIDeviceReadID(<wbr>virPCIDevicePtr dev, const char *id_name)<br>
     return id_str;<br>
 }<br>
<br>
+bool<br>
+virPCIDeviceAddressIsValid(<wbr>virPCIDeviceAddressPtr addr,<br>
+                           bool report)<br>
+{<br>
+    if (addr->domain > 0xFFFF) {<br>
+        if (report)<br>
+            virReportError(VIR_ERR_XML_<wbr>ERROR,<br>
+                           _("Invalid PCI address domain='0x%x', "<br>
+                             "must be <= 0xFFFF"),<br>
+                           addr->domain);<br>
+        return false;<br>
+    }<br>
+    if (addr->bus > 0xFF) {<br>
+        if (report)<br>
+            virReportError(VIR_ERR_XML_<wbr>ERROR,<br>
+                           _("Invalid PCI address bus='0x%x', "<br>
+                             "must be <= 0xFF"),<br>
+                           addr->bus);<br>
+        return false;<br>
+    }<br>
+    if (addr->slot > 0x1F) {<br>
+        if (report)<br>
+            virReportError(VIR_ERR_XML_<wbr>ERROR,<br>
+                           _("Invalid PCI address slot='0x%x', "<br>
+                             "must be <= 0x1F"),<br>
+                           addr->slot);<br>
+        return false;<br>
+    }<br>
+    if (addr->function > 7) {<br>
+        if (report)<br>
+            virReportError(VIR_ERR_XML_<wbr>ERROR,<br>
+                           _("Invalid PCI address function=0x%x, "<br>
+                             "must be <= 7"),<br>
+                           addr->function);<br>
+        return false;<br>
+    }<br>
+    if (virPCIDeviceAddressIsEmpty(<wbr>addr)) {<br>
+        if (report)<br>
+            virReportError(VIR_ERR_XML_<wbr>ERROR, "%s",<br>
+                           _("Invalid PCI address 0000:00:00, at least "<br>
+                             "one of domain, bus, or slot must be > 0"));<br>
+        return false;<br>
+    }<br>
+    return true;<br>
+}<br>
+<br>
+bool<br>
+virPCIDeviceAddressIsEmpty(<wbr>const virPCIDeviceAddress *addr)<br>
+{<br>
+    return !(addr->domain || addr->bus || addr->slot);<br>
+}<br>
+<br>
+bool<br>
+virPCIDeviceAddressEqual(<wbr>virPCIDeviceAddress *addr1,<br>
+                         virPCIDeviceAddress *addr2)<br>
+{<br>
+    if (addr1->domain == addr2->domain &&<br>
+        addr1->bus == addr2->bus &&<br>
+        addr1->slot == addr2->slot &&<br>
+        addr1->function == addr2->function) {<br>
+        return true;<br>
+    }<br>
+    return false;<br>
+}<br>
+<br>
 char *<br>
 virPCIDeviceAddressAsString(<wbr>virPCIDeviceAddressPtr addr)<br>
 {<br>
diff --git a/src/util/virpci.h b/src/util/virpci.h<br>
index b4f72f8f06..16c2eded5e 100644<br>
--- a/src/util/virpci.h<br>
+++ b/src/util/virpci.h<br>
@@ -218,6 +218,13 @@ int virPCIGetSysfsFile(char *virPCIDeviceName,<br>
                              char **pci_sysfs_device_link)<br>
     ATTRIBUTE_RETURN_CHECK;<br>
<br>
+bool virPCIDeviceAddressIsValid(<wbr>virPCIDeviceAddressPtr addr,<br>
+                                bool report);<br>
+bool virPCIDeviceAddressIsEmpty(<wbr>const virPCIDeviceAddress *addr);<br>
+<br>
+bool virPCIDeviceAddressEqual(<wbr>virPCIDeviceAddress *addr1,<br>
+                              virPCIDeviceAddress *addr2);<br>
+<br>
 char *virPCIDeviceAddressAsString(<wbr>virPCIDeviceAddressPtr addr)<br>
       ATTRIBUTE_NONNULL(1);<br>
<span class="HOEnZb"><font color="#888888"> <br>
-- <br>
2.17.1<br>
<br>
--<br>
libvir-list mailing list<br>
<a href="mailto:libvir-list@redhat.com">libvir-list@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/libvir-list" rel="noreferrer" target="_blank">https://www.redhat.com/<wbr>mailman/listinfo/libvir-list</a><br>
</font></span></blockquote></div><br></div></div>