<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>