[libvirt] [PATCH 2/5] Change virPCIDeviceAddress to virDevicePCIAddress
Martin Kletzander
mkletzan at redhat.com
Mon Apr 4 05:08:40 UTC 2016
On Sun, Apr 03, 2016 at 10:18:16PM -0400, Laine Stump wrote:
>On 04/03/2016 03:27 PM, Martin Kletzander wrote:
>> We had both and the only difference was that the latter also included
>> information about multifunction setting. The problem with that was that
>> we couldn't use functions made for only one of the structs (e.g.
>> parsing). To consolidate those two structs, move it to virpci.h and
>> include that in domain_conf.h.
>
>This has annoyed me for a long time, but as usual I just ignored it. I
>haven't looked further in your patches to see why you needed to do this
>now, but I think I would have preferred it to be solved by leaving
>virPCIDeviceAddress as it is, and including one as a member of
>virDevicePCIAddress (or if that was too ugly, then naming the new single
>struct as virPCIDeviceAddress instead of virDevicePCIAddress, since it's
>defined in virpci.h). (I would prefer to not have "multifunction" in the
>struct used by virpci.c etc because they don't use that, so it could
>confuse people in those usages who might mistakenly believe they should
>set it one way or the other; then eventually we would end up with a
>bunch of cargo cult settings of multifunction that nobody understood,
>but everybody thought were essential).
>
I'm totally OK with the name being virPCIDeviceAddress instead. But
about (not) having a multifunction there... I'd say if that confuses
someone, then the problem lies somewhere else.
>In the end it's eliminating a near duplicate struct, which is a net
>positive no matter what the name, so I can give it a soft ACK - ie if
>someone else objects then I would be inclined to waffle on my ACK :-)
>(But again, I really wonder if this is something needed right before a
>release...)
>
As I said in the cover letter, we don't. The first patch in the series
is enough to fix everything. And it is the version that would be in if
I didn't want to bother with test. However because someone else didn't,
then this bit me in the butt :-/
>>
>> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
>> ---
>> src/conf/device_conf.h | 11 +----
>> src/conf/node_device_conf.c | 2 +-
>> src/conf/node_device_conf.h | 6 +--
>> src/libvirt_private.syms | 10 ++--
>> src/network/bridge_driver.c | 4 +-
>> src/node_device/node_device_linux_sysfs.c | 6 +--
>> src/util/virhostdev.c | 12 ++---
>> src/util/virnetdev.c | 4 +-
>> src/util/virnetdev.h | 2 +-
>> src/util/virpci.c | 80 +++++++++++++++----------------
>> src/util/virpci.h | 29 +++++------
>> 11 files changed, 79 insertions(+), 87 deletions(-)
>>
>> diff --git a/src/conf/device_conf.h b/src/conf/device_conf.h
>> index 85ce40f6831e..3fe259cb8916 100644
>> --- a/src/conf/device_conf.h
>> +++ b/src/conf/device_conf.h
>> @@ -31,6 +31,7 @@
>> # include "virutil.h"
>> # include "virthread.h"
>> # include "virbuffer.h"
>> +# include "virpci.h"
>>
>> typedef enum {
>> VIR_INTERFACE_STATE_UNKNOWN = 1,
>> @@ -45,16 +46,6 @@ typedef enum {
>>
>> VIR_ENUM_DECL(virInterfaceState)
>>
>> -typedef struct _virDevicePCIAddress virDevicePCIAddress;
>> -typedef virDevicePCIAddress *virDevicePCIAddressPtr;
>> -struct _virDevicePCIAddress {
>> - unsigned int domain;
>> - unsigned int bus;
>> - unsigned int slot;
>> - unsigned int function;
>> - int multi; /* virTristateSwitch */
>> -};
>> -
>> typedef struct _virInterfaceLink virInterfaceLink;
>> typedef virInterfaceLink *virInterfaceLinkPtr;
>> struct _virInterfaceLink {
>> diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
>> index a76f785eddc0..3e9c821762eb 100644
>> --- a/src/conf/node_device_conf.c
>> +++ b/src/conf/node_device_conf.c
>> @@ -1142,7 +1142,7 @@ virNodeDevCapPCIDevIommuGroupParseXML(xmlXPathContextPtr ctxt,
>> char *numberStr = NULL;
>> int nAddrNodes, ret = -1;
>> size_t i;
>> - virPCIDeviceAddressPtr pciAddr = NULL;
>> + virDevicePCIAddressPtr pciAddr = NULL;
>>
>> ctxt->node = iommuGroupNode;
>>
>> diff --git a/src/conf/node_device_conf.h b/src/conf/node_device_conf.h
>> index be6dd5eb4ec1..9c9d942dd506 100644
>> --- a/src/conf/node_device_conf.h
>> +++ b/src/conf/node_device_conf.h
>> @@ -109,12 +109,12 @@ typedef struct _virNodeDevCapData {
>> unsigned int class;
>> char *product_name;
>> char *vendor_name;
>> - virPCIDeviceAddressPtr physical_function;
>> - virPCIDeviceAddressPtr *virtual_functions;
>> + virDevicePCIAddressPtr physical_function;
>> + virDevicePCIAddressPtr *virtual_functions;
>> size_t num_virtual_functions;
>> unsigned int max_virtual_functions;
>> unsigned int flags;
>> - virPCIDeviceAddressPtr *iommuGroupDevices;
>> + virDevicePCIAddressPtr *iommuGroupDevices;
>> size_t nIommuGroupDevices;
>> unsigned int iommuGroupNumber;
>> int numa_node;
>> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
>> index 684f06cd4f16..8bb901568079 100644
>> --- a/src/libvirt_private.syms
>> +++ b/src/libvirt_private.syms
>> @@ -1966,11 +1966,11 @@ virObjectUnref;
>>
>>
>> # util/virpci.h
>> -virPCIDeviceAddressGetIOMMUGroupAddresses;
>> -virPCIDeviceAddressGetIOMMUGroupNum;
>> -virPCIDeviceAddressGetSysfsFile;
>> -virPCIDeviceAddressIOMMUGroupIterate;
>> -virPCIDeviceAddressParse;
>> +virDevicePCIAddressGetIOMMUGroupAddresses;
>> +virDevicePCIAddressGetIOMMUGroupNum;
>> +virDevicePCIAddressGetSysfsFile;
>> +virDevicePCIAddressIOMMUGroupIterate;
>> +virDevicePCIAddressParse;
>> virPCIDeviceCopy;
>> virPCIDeviceDetach;
>> virPCIDeviceFileIterate;
>> diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
>> index c673cc1515e2..65a3e68868b8 100644
>> --- a/src/network/bridge_driver.c
>> +++ b/src/network/bridge_driver.c
>> @@ -2336,7 +2336,7 @@ networkCreateInterfacePool(virNetworkDefPtr netdef)
>> size_t numVirtFns = 0;
>> unsigned int maxVirtFns = 0;
>> char **vfNames = NULL;
>> - virPCIDeviceAddressPtr *virtFns;
>> + virDevicePCIAddressPtr *virtFns;
>>
>> int ret = -1;
>> size_t i;
>> @@ -2356,7 +2356,7 @@ networkCreateInterfacePool(virNetworkDefPtr netdef)
>> goto cleanup;
>>
>> for (i = 0; i < numVirtFns; i++) {
>> - virPCIDeviceAddressPtr thisVirtFn = virtFns[i];
>> + virDevicePCIAddressPtr thisVirtFn = virtFns[i];
>> const char *thisName = vfNames[i];
>> virNetworkForwardIfDefPtr thisIf
>> = &netdef->forward.ifs[netdef->forward.nifs];
>> diff --git a/src/node_device/node_device_linux_sysfs.c b/src/node_device/node_device_linux_sysfs.c
>> index 24a6a2eaa51f..0a858d31f387 100644
>> --- a/src/node_device/node_device_linux_sysfs.c
>> +++ b/src/node_device/node_device_linux_sysfs.c
>> @@ -176,7 +176,7 @@ nodeDeviceSysfsGetPCIIOMMUGroupCaps(virNodeDevCapDataPtr data)
>> {
>> size_t i;
>> int tmpGroup, ret = -1;
>> - virPCIDeviceAddress addr;
>> + virDevicePCIAddress addr;
>>
>> /* this could be a refresh, so clear out the old data */
>> for (i = 0; i < data->pci_dev.nIommuGroupDevices; i++)
>> @@ -189,7 +189,7 @@ nodeDeviceSysfsGetPCIIOMMUGroupCaps(virNodeDevCapDataPtr data)
>> addr.bus = data->pci_dev.bus;
>> addr.slot = data->pci_dev.slot;
>> addr.function = data->pci_dev.function;
>> - tmpGroup = virPCIDeviceAddressGetIOMMUGroupNum(&addr);
>> + tmpGroup = virDevicePCIAddressGetIOMMUGroupNum(&addr);
>> if (tmpGroup == -1) {
>> /* error was already reported */
>> goto cleanup;
>> @@ -200,7 +200,7 @@ nodeDeviceSysfsGetPCIIOMMUGroupCaps(virNodeDevCapDataPtr data)
>> goto cleanup;
>> }
>> if (tmpGroup >= 0) {
>> - if (virPCIDeviceAddressGetIOMMUGroupAddresses(&addr, &data->pci_dev.iommuGroupDevices,
>> + if (virDevicePCIAddressGetIOMMUGroupAddresses(&addr, &data->pci_dev.iommuGroupDevices,
>> &data->pci_dev.nIommuGroupDevices) < 0)
>> goto cleanup;
>> data->pci_dev.iommuGroupNumber = tmpGroup;
>> diff --git a/src/util/virhostdev.c b/src/util/virhostdev.c
>> index 933c94263c58..1c2475356c4a 100644
>> --- a/src/util/virhostdev.c
>> +++ b/src/util/virhostdev.c
>> @@ -68,7 +68,7 @@ struct virHostdevIsPCINodeDeviceUsedData {
>> *
>> * pci - a short-lived virPCIDevice whose purpose is usually just to look
>> * up the actual PCI device in one of the bookkeeping lists; basically
>> - * little more than a fancy virPCIDeviceAddress
>> + * little more than a fancy virDevicePCIAddress
>> *
>> * pcidevs - a list containing a bunch of the above
>> *
>> @@ -81,7 +81,7 @@ struct virHostdevIsPCINodeDeviceUsedData {
>> * module usually expect an 'actual'. Even with these conventions in place,
>> * adding comments to highlight ownership-related issues is recommended */
>>
>> -static int virHostdevIsPCINodeDeviceUsed(virPCIDeviceAddressPtr devAddr, void *opaque)
>> +static int virHostdevIsPCINodeDeviceUsed(virDevicePCIAddressPtr devAddr, void *opaque)
>> {
>> virPCIDevicePtr actual;
>> int ret = -1;
>> @@ -270,14 +270,14 @@ static int
>> virHostdevPCISysfsPath(virDomainHostdevDefPtr hostdev,
>> char **sysfs_path)
>> {
>> - virPCIDeviceAddress config_address;
>> + virDevicePCIAddress config_address;
>>
>> config_address.domain = hostdev->source.subsys.u.pci.addr.domain;
>> config_address.bus = hostdev->source.subsys.u.pci.addr.bus;
>> config_address.slot = hostdev->source.subsys.u.pci.addr.slot;
>> config_address.function = hostdev->source.subsys.u.pci.addr.function;
>>
>> - return virPCIDeviceAddressGetSysfsFile(&config_address, sysfs_path);
>> + return virDevicePCIAddressGetSysfsFile(&config_address, sysfs_path);
>> }
>>
>>
>> @@ -508,7 +508,7 @@ virHostdevPreparePCIDevices(virHostdevManagerPtr mgr,
>> int last_processed_hostdev_vf = -1;
>> size_t i;
>> int ret = -1;
>> - virPCIDeviceAddressPtr devAddr = NULL;
>> + virDevicePCIAddressPtr devAddr = NULL;
>>
>> if (!nhostdevs)
>> return 0;
>> @@ -548,7 +548,7 @@ virHostdevPreparePCIDevices(virHostdevManagerPtr mgr,
>> */
>> devAddr = virPCIDeviceGetAddress(pci);
>> if (usesVFIO) {
>> - if (virPCIDeviceAddressIOMMUGroupIterate(devAddr,
>> + if (virDevicePCIAddressIOMMUGroupIterate(devAddr,
>> virHostdevIsPCINodeDeviceUsed,
>> &data) < 0)
>> goto cleanup;
>> diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
>> index aed50f546263..2486bd7a135d 100644
>> --- a/src/util/virnetdev.c
>> +++ b/src/util/virnetdev.c
>> @@ -1808,7 +1808,7 @@ virNetDevSysfsDeviceFile(char **pf_sysfs_device_link, const char *ifname,
>> int
>> virNetDevGetVirtualFunctions(const char *pfname,
>> char ***vfname,
>> - virPCIDeviceAddressPtr **virt_fns,
>> + virDevicePCIAddressPtr **virt_fns,
>> size_t *n_vfname,
>> unsigned int *max_vfs)
>> {
>> @@ -1995,7 +1995,7 @@ virNetDevGetVirtualFunctionInfo(const char *vfname, char **pfname,
>> int
>> virNetDevGetVirtualFunctions(const char *pfname ATTRIBUTE_UNUSED,
>> char ***vfname ATTRIBUTE_UNUSED,
>> - virPCIDeviceAddressPtr **virt_fns ATTRIBUTE_UNUSED,
>> + virDevicePCIAddressPtr **virt_fns ATTRIBUTE_UNUSED,
>> size_t *n_vfname ATTRIBUTE_UNUSED,
>> unsigned int *max_vfs ATTRIBUTE_UNUSED)
>> {
>> diff --git a/src/util/virnetdev.h b/src/util/virnetdev.h
>> index e7719d58a410..e8ac3e5cff3a 100644
>> --- a/src/util/virnetdev.h
>> +++ b/src/util/virnetdev.h
>> @@ -162,7 +162,7 @@ int virNetDevGetPhysicalFunction(const char *ifname, char **pfname)
>>
>> int virNetDevGetVirtualFunctions(const char *pfname,
>> char ***vfname,
>> - virPCIDeviceAddressPtr **virt_fns,
>> + virDevicePCIAddressPtr **virt_fns,
>> size_t *n_vfname,
>> unsigned int *max_vfs)
>> ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3)
>> diff --git a/src/util/virpci.c b/src/util/virpci.c
>> index f7921f86d6de..215a03efa670 100644
>> --- a/src/util/virpci.c
>> +++ b/src/util/virpci.c
>> @@ -69,7 +69,7 @@ VIR_ENUM_IMPL(virPCIHeader, VIR_PCI_HEADER_LAST,
>> );
>>
>> struct _virPCIDevice {
>> - virPCIDeviceAddress address;
>> + virDevicePCIAddress address;
>>
>> char name[PCI_ADDR_LEN]; /* domain:bus:slot.function */
>> char id[PCI_ID_LEN]; /* product vendor */
>> @@ -1696,7 +1696,7 @@ virPCIDeviceFree(virPCIDevicePtr dev)
>> *
>> * Returns: a pointer to the address, which can never be NULL.
>> */
>> -virPCIDeviceAddressPtr
>> +virDevicePCIAddressPtr
>> virPCIDeviceGetAddress(virPCIDevicePtr dev)
>> {
>> return &(dev->address);
>> @@ -2001,14 +2001,14 @@ int virPCIDeviceFileIterate(virPCIDevicePtr dev,
>> }
>>
>>
>> -/* virPCIDeviceAddressIOMMUGroupIterate:
>> +/* virDevicePCIAddressIOMMUGroupIterate:
>> * Call @actor for all devices in the same iommu_group as orig
>> * (including orig itself) Even if there is no iommu_group for the
>> * device, call @actor once for orig.
>> */
>> int
>> -virPCIDeviceAddressIOMMUGroupIterate(virPCIDeviceAddressPtr orig,
>> - virPCIDeviceAddressActor actor,
>> +virDevicePCIAddressIOMMUGroupIterate(virDevicePCIAddressPtr orig,
>> + virDevicePCIAddressActor actor,
>> void *opaque)
>> {
>> char *groupPath = NULL;
>> @@ -2029,12 +2029,12 @@ virPCIDeviceAddressIOMMUGroupIterate(virPCIDeviceAddressPtr orig,
>> }
>>
>> while ((direrr = virDirRead(groupDir, &ent, groupPath)) > 0) {
>> - virPCIDeviceAddress newDev;
>> + virDevicePCIAddress newDev;
>>
>> if (ent->d_name[0] == '.')
>> continue;
>>
>> - if (virPCIDeviceAddressParse(ent->d_name, &newDev) < 0) {
>> + if (virDevicePCIAddressParse(ent->d_name, &newDev) < 0) {
>> virReportError(VIR_ERR_INTERNAL_ERROR,
>> _("Found invalid device link '%s' in '%s'"),
>> ent->d_name, groupPath);
>> @@ -2058,7 +2058,7 @@ virPCIDeviceAddressIOMMUGroupIterate(virPCIDeviceAddressPtr orig,
>>
>>
>> static int
>> -virPCIDeviceGetIOMMUGroupAddOne(virPCIDeviceAddressPtr newDevAddr, void *opaque)
>> +virPCIDeviceGetIOMMUGroupAddOne(virDevicePCIAddressPtr newDevAddr, void *opaque)
>> {
>> int ret = -1;
>> virPCIDeviceListPtr groupList = opaque;
>> @@ -2093,7 +2093,7 @@ virPCIDeviceGetIOMMUGroupList(virPCIDevicePtr dev)
>> if (!groupList)
>> goto error;
>>
>> - if (virPCIDeviceAddressIOMMUGroupIterate(&(dev->address),
>> + if (virDevicePCIAddressIOMMUGroupIterate(&(dev->address),
>> virPCIDeviceGetIOMMUGroupAddOne,
>> groupList) < 0)
>> goto error;
>> @@ -2107,17 +2107,17 @@ virPCIDeviceGetIOMMUGroupList(virPCIDevicePtr dev)
>>
>>
>> typedef struct {
>> - virPCIDeviceAddressPtr **iommuGroupDevices;
>> + virDevicePCIAddressPtr **iommuGroupDevices;
>> size_t *nIommuGroupDevices;
>> -} virPCIDeviceAddressList;
>> -typedef virPCIDeviceAddressList *virPCIDeviceAddressListPtr;
>> +} virDevicePCIAddressList;
>> +typedef virDevicePCIAddressList *virDevicePCIAddressListPtr;
>>
>> static int
>> -virPCIGetIOMMUGroupAddressesAddOne(virPCIDeviceAddressPtr newDevAddr, void *opaque)
>> +virPCIGetIOMMUGroupAddressesAddOne(virDevicePCIAddressPtr newDevAddr, void *opaque)
>> {
>> int ret = -1;
>> - virPCIDeviceAddressListPtr addrList = opaque;
>> - virPCIDeviceAddressPtr copyAddr;
>> + virDevicePCIAddressListPtr addrList = opaque;
>> + virDevicePCIAddressPtr copyAddr;
>>
>> /* make a copy to insert onto the list */
>> if (VIR_ALLOC(copyAddr) < 0)
>> @@ -2137,22 +2137,22 @@ virPCIGetIOMMUGroupAddressesAddOne(virPCIDeviceAddressPtr newDevAddr, void *opaq
>>
>>
>> /*
>> - * virPCIDeviceAddressGetIOMMUGroupAddresses - return a
>> + * virDevicePCIAddressGetIOMMUGroupAddresses - return a
>> * virPCIDeviceList containing all of the devices in the same
>> * iommu_group as @dev.
>> *
>> * Return the new list, or NULL on failure
>> */
>> int
>> -virPCIDeviceAddressGetIOMMUGroupAddresses(virPCIDeviceAddressPtr devAddr,
>> - virPCIDeviceAddressPtr **iommuGroupDevices,
>> +virDevicePCIAddressGetIOMMUGroupAddresses(virDevicePCIAddressPtr devAddr,
>> + virDevicePCIAddressPtr **iommuGroupDevices,
>> size_t *nIommuGroupDevices)
>> {
>> int ret = -1;
>> - virPCIDeviceAddressList addrList = { iommuGroupDevices,
>> + virDevicePCIAddressList addrList = { iommuGroupDevices,
>> nIommuGroupDevices };
>>
>> - if (virPCIDeviceAddressIOMMUGroupIterate(devAddr,
>> + if (virDevicePCIAddressIOMMUGroupIterate(devAddr,
>> virPCIGetIOMMUGroupAddressesAddOne,
>> &addrList) < 0)
>> goto cleanup;
>> @@ -2163,12 +2163,12 @@ virPCIDeviceAddressGetIOMMUGroupAddresses(virPCIDeviceAddressPtr devAddr,
>> }
>>
>>
>> -/* virPCIDeviceAddressGetIOMMUGroupNum - return the group number of
>> +/* virDevicePCIAddressGetIOMMUGroupNum - return the group number of
>> * this PCI device's iommu_group, or -2 if there is no iommu_group for
>> * the device (or -1 if there was any other error)
>> */
>> int
>> -virPCIDeviceAddressGetIOMMUGroupNum(virPCIDeviceAddressPtr addr)
>> +virDevicePCIAddressGetIOMMUGroupNum(virDevicePCIAddressPtr addr)
>> {
>> char *devName = NULL;
>> char *devPath = NULL;
>> @@ -2391,8 +2391,8 @@ logStrToLong_ui(char const *s,
>> }
>>
>> int
>> -virPCIDeviceAddressParse(char *address,
>> - virPCIDeviceAddressPtr bdf)
>> +virDevicePCIAddressParse(char *address,
>> + virDevicePCIAddressPtr bdf)
>> {
>> char *p = NULL;
>> int ret = -1;
>> @@ -2429,8 +2429,8 @@ virPCIDeviceAddressParse(char *address,
>> * returns true if equal
>> */
>> static bool
>> -virPCIDeviceAddressIsEqual(virPCIDeviceAddressPtr bdf1,
>> - virPCIDeviceAddressPtr bdf2)
>> +virDevicePCIAddressIsEqual(virDevicePCIAddressPtr bdf1,
>> + virDevicePCIAddressPtr bdf2)
>> {
>> return ((bdf1->domain == bdf2->domain) &&
>> (bdf1->bus == bdf2->bus) &&
>> @@ -2440,7 +2440,7 @@ virPCIDeviceAddressIsEqual(virPCIDeviceAddressPtr bdf1,
>>
>> static int
>> virPCIGetDeviceAddressFromSysfsLink(const char *device_link,
>> - virPCIDeviceAddressPtr *bdf)
>> + virDevicePCIAddressPtr *bdf)
>> {
>> char *config_address = NULL;
>> char *device_path = NULL;
>> @@ -2465,7 +2465,7 @@ virPCIGetDeviceAddressFromSysfsLink(const char *device_link,
>> if (VIR_ALLOC(*bdf) != 0)
>> goto out;
>>
>> - if (virPCIDeviceAddressParse(config_address, *bdf) != 0) {
>> + if (virDevicePCIAddressParse(config_address, *bdf) != 0) {
>> virReportError(VIR_ERR_INTERNAL_ERROR,
>> _("Failed to parse PCI config address '%s'"),
>> config_address);
>> @@ -2485,7 +2485,7 @@ virPCIGetDeviceAddressFromSysfsLink(const char *device_link,
>> */
>> int
>> virPCIGetPhysicalFunction(const char *vf_sysfs_path,
>> - virPCIDeviceAddressPtr *pf)
>> + virDevicePCIAddressPtr *pf)
>> {
>> int ret = -1;
>> char *device_link = NULL;
>> @@ -2510,14 +2510,14 @@ virPCIGetPhysicalFunction(const char *vf_sysfs_path,
>> */
>> int
>> virPCIGetVirtualFunctions(const char *sysfs_path,
>> - virPCIDeviceAddressPtr **virtual_functions,
>> + virDevicePCIAddressPtr **virtual_functions,
>> size_t *num_virtual_functions,
>> unsigned int *max_virtual_functions)
>> {
>> int ret = -1;
>> size_t i;
>> char *device_link = NULL;
>> - virPCIDeviceAddress *config_addr = NULL;
>> + virDevicePCIAddressPtr config_addr = NULL;
>> char *totalvfs_file = NULL, *totalvfs_str = NULL;
>>
>> *virtual_functions = NULL;
>> @@ -2609,8 +2609,8 @@ virPCIGetVirtualFunctionIndex(const char *pf_sysfs_device_link,
>> size_t i;
>> size_t num_virt_fns = 0;
>> unsigned int max_virt_fns = 0;
>> - virPCIDeviceAddressPtr vf_bdf = NULL;
>> - virPCIDeviceAddressPtr *virt_fns = NULL;
>> + virDevicePCIAddressPtr vf_bdf = NULL;
>> + virDevicePCIAddressPtr *virt_fns = NULL;
>>
>> if (virPCIGetDeviceAddressFromSysfsLink(vf_sysfs_device_link,
>> &vf_bdf) < 0)
>> @@ -2625,7 +2625,7 @@ virPCIGetVirtualFunctionIndex(const char *pf_sysfs_device_link,
>> }
>>
>> for (i = 0; i < num_virt_fns; i++) {
>> - if (virPCIDeviceAddressIsEqual(vf_bdf, virt_fns[i])) {
>> + if (virDevicePCIAddressIsEqual(vf_bdf, virt_fns[i])) {
>> *vf_index = i;
>> ret = 0;
>> break;
>> @@ -2658,7 +2658,7 @@ virPCIGetSysfsFile(char *virPCIDeviceName, char **pci_sysfs_device_link)
>> }
>>
>> int
>> -virPCIDeviceAddressGetSysfsFile(virPCIDeviceAddressPtr addr,
>> +virDevicePCIAddressGetSysfsFile(virDevicePCIAddressPtr addr,
>> char **pci_sysfs_device_link)
>> {
>> if (virAsprintf(pci_sysfs_device_link,
>> @@ -2713,14 +2713,14 @@ int
>> virPCIGetVirtualFunctionInfo(const char *vf_sysfs_device_path,
>> char **pfname, int *vf_index)
>> {
>> - virPCIDeviceAddressPtr pf_config_address = NULL;
>> + virDevicePCIAddressPtr pf_config_address = NULL;
>> char *pf_sysfs_device_path = NULL;
>> int ret = -1;
>>
>> if (virPCIGetPhysicalFunction(vf_sysfs_device_path, &pf_config_address) < 0)
>> return ret;
>>
>> - if (virPCIDeviceAddressGetSysfsFile(pf_config_address,
>> + if (virDevicePCIAddressGetSysfsFile(pf_config_address,
>> &pf_sysfs_device_path) < 0) {
>>
>> VIR_FREE(pf_config_address);
>> @@ -2745,7 +2745,7 @@ static const char *unsupported = N_("not supported on non-linux platforms");
>>
>> int
>> virPCIGetPhysicalFunction(const char *vf_sysfs_path ATTRIBUTE_UNUSED,
>> - virPCIDeviceAddressPtr *pf ATTRIBUTE_UNUSED)
>> + virDevicePCIAddressPtr *pf ATTRIBUTE_UNUSED)
>> {
>> virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _(unsupported));
>> return -1;
>> @@ -2753,7 +2753,7 @@ virPCIGetPhysicalFunction(const char *vf_sysfs_path ATTRIBUTE_UNUSED,
>>
>> int
>> virPCIGetVirtualFunctions(const char *sysfs_path ATTRIBUTE_UNUSED,
>> - virPCIDeviceAddressPtr **virtual_functions ATTRIBUTE_UNUSED,
>> + virDevicePCIAddressPtr **virtual_functions ATTRIBUTE_UNUSED,
>> size_t *num_virtual_functions ATTRIBUTE_UNUSED,
>> unsigned int *max_virtual_functions ATTRIBUTE_UNUSED)
>> {
>> @@ -2779,7 +2779,7 @@ virPCIGetVirtualFunctionIndex(const char *pf_sysfs_device_link ATTRIBUTE_UNUSED,
>> }
>>
>> int
>> -virPCIDeviceAddressGetSysfsFile(virPCIDeviceAddressPtr dev ATTRIBUTE_UNUSED,
>> +virDevicePCIAddressGetSysfsFile(virDevicePCIAddressPtr dev ATTRIBUTE_UNUSED,
>> char **pci_sysfs_device_link ATTRIBUTE_UNUSED)
>> {
>> virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _(unsupported));
>> diff --git a/src/util/virpci.h b/src/util/virpci.h
>> index 82f45ec4175f..8ae916c562d7 100644
>> --- a/src/util/virpci.h
>> +++ b/src/util/virpci.h
>> @@ -30,16 +30,17 @@
>>
>> typedef struct _virPCIDevice virPCIDevice;
>> typedef virPCIDevice *virPCIDevicePtr;
>> -typedef struct _virPCIDeviceAddress virPCIDeviceAddress;
>> -typedef virPCIDeviceAddress *virPCIDeviceAddressPtr;
>> typedef struct _virPCIDeviceList virPCIDeviceList;
>> typedef virPCIDeviceList *virPCIDeviceListPtr;
>>
>> -struct _virPCIDeviceAddress {
>> +typedef struct _virDevicePCIAddress virDevicePCIAddress;
>> +typedef virDevicePCIAddress *virDevicePCIAddressPtr ;
>> +struct _virDevicePCIAddress {
>> unsigned int domain;
>> unsigned int bus;
>> unsigned int slot;
>> unsigned int function;
>> + int multi; /* virTristateSwitch */
>> };
>>
>> typedef enum {
>> @@ -113,7 +114,7 @@ bool virPCIDeviceGetManaged(virPCIDevice *dev);
>> void virPCIDeviceSetStubDriver(virPCIDevicePtr dev,
>> virPCIStubDriver driver);
>> virPCIStubDriver virPCIDeviceGetStubDriver(virPCIDevicePtr dev);
>> -virPCIDeviceAddressPtr virPCIDeviceGetAddress(virPCIDevicePtr dev);
>> +virDevicePCIAddressPtr virPCIDeviceGetAddress(virPCIDevicePtr dev);
>> int virPCIDeviceSetUsedBy(virPCIDevice *dev,
>> const char *drv_name,
>> const char *dom_name);
>> @@ -168,16 +169,16 @@ int virPCIDeviceFileIterate(virPCIDevicePtr dev,
>> virPCIDeviceFileActor actor,
>> void *opaque);
>>
>> -typedef int (*virPCIDeviceAddressActor)(virPCIDeviceAddress *addr,
>> +typedef int (*virDevicePCIAddressActor)(virDevicePCIAddressPtr addr,
>> void *opaque);
>> -int virPCIDeviceAddressIOMMUGroupIterate(virPCIDeviceAddressPtr orig,
>> - virPCIDeviceAddressActor actor,
>> +int virDevicePCIAddressIOMMUGroupIterate(virDevicePCIAddressPtr orig,
>> + virDevicePCIAddressActor actor,
>> void *opaque);
>> virPCIDeviceListPtr virPCIDeviceGetIOMMUGroupList(virPCIDevicePtr dev);
>> -int virPCIDeviceAddressGetIOMMUGroupAddresses(virPCIDeviceAddressPtr devAddr,
>> - virPCIDeviceAddressPtr **iommuGroupDevices,
>> +int virDevicePCIAddressGetIOMMUGroupAddresses(virDevicePCIAddressPtr devAddr,
>> + virDevicePCIAddressPtr **iommuGroupDevices,
>> size_t *nIommuGroupDevices);
>> -int virPCIDeviceAddressGetIOMMUGroupNum(virPCIDeviceAddressPtr addr);
>> +int virDevicePCIAddressGetIOMMUGroupNum(virDevicePCIAddressPtr addr);
>> char *virPCIDeviceGetIOMMUGroupDev(virPCIDevicePtr dev);
>>
>> int virPCIDeviceIsAssignable(virPCIDevicePtr dev,
>> @@ -185,10 +186,10 @@ int virPCIDeviceIsAssignable(virPCIDevicePtr dev,
>> int virPCIDeviceWaitForCleanup(virPCIDevicePtr dev, const char *matcher);
>>
>> int virPCIGetPhysicalFunction(const char *vf_sysfs_path,
>> - virPCIDeviceAddressPtr *pf);
>> + virDevicePCIAddressPtr *pf);
>>
>> int virPCIGetVirtualFunctions(const char *sysfs_path,
>> - virPCIDeviceAddressPtr **virtual_functions,
>> + virDevicePCIAddressPtr **virtual_functions,
>> size_t *num_virtual_functions,
>> unsigned int *max_virtual_functions);
>>
>> @@ -198,7 +199,7 @@ int virPCIGetVirtualFunctionIndex(const char *pf_sysfs_device_link,
>> const char *vf_sysfs_device_link,
>> int *vf_index);
>>
>> -int virPCIDeviceAddressGetSysfsFile(virPCIDeviceAddressPtr addr,
>> +int virDevicePCIAddressGetSysfsFile(virDevicePCIAddressPtr addr,
>> char **pci_sysfs_device_link);
>>
>> int virPCIGetNetName(char *device_link_sysfs_path, char **netname);
>> @@ -214,7 +215,7 @@ int virPCIGetAddrString(unsigned int domain,
>> char **pciConfigAddr)
>> ATTRIBUTE_NONNULL(5) ATTRIBUTE_RETURN_CHECK;
>>
>> -int virPCIDeviceAddressParse(char *address, virPCIDeviceAddressPtr bdf);
>> +int virDevicePCIAddressParse(char *address, virDevicePCIAddressPtr bdf);
>>
>> int virPCIGetVirtualFunctionInfo(const char *vf_sysfs_device_path,
>> char **pfname, int *vf_index);
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20160404/708e8858/attachment-0001.sig>
More information about the libvir-list
mailing list