[libvirt] [PATCH] conf: Move more PCI functions out of device_conf
Fabiano Fidêncio
fidencio at redhat.com
Thu Sep 13 14:48:20 UTC 2018
On Thu, Sep 13, 2018 at 4:38 PM, Andrea Bolognani <abologna at redhat.com>
wrote:
> Functions that deal with virPCIDeviceAddress exclusively
> belong to util/virpci.
>
> Signed-off-by: Andrea Bolognani <abologna at redhat.com>
>
Reviewed-by: Fabiano Fidêncio <fidencio at redhat.com>
> ---
> 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 a0d229a79f..d6662d691d 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);
>
> --
> 2.17.1
>
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20180913/3cfa988f/attachment-0001.htm>
More information about the libvir-list
mailing list