]> xenbits.xensource.com Git - libvirt.git/commitdiff
Change virDevicePCIAddress to virPCIDeviceAddress
authorMartin Kletzander <mkletzan@redhat.com>
Sun, 3 Apr 2016 18:16:51 +0000 (20:16 +0200)
committerMartin Kletzander <mkletzan@redhat.com>
Mon, 2 May 2016 13:46:23 +0000 (15:46 +0200)
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, use the one in virpci.h,
include that in domain_conf.h and add the multifunction member in it.

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
23 files changed:
src/bhyve/bhyve_device.c
src/conf/device_conf.c
src/conf/device_conf.h
src/conf/domain_addr.c
src/conf/domain_addr.h
src/conf/domain_conf.c
src/conf/domain_conf.h
src/conf/network_conf.c
src/conf/network_conf.h
src/conf/node_device_conf.c
src/conf/storage_conf.c
src/conf/storage_conf.h
src/libvirt_private.syms
src/network/bridge_driver.c
src/qemu/qemu_agent.c
src/qemu/qemu_domain_address.c
src/qemu/qemu_hotplug.c
src/qemu/qemu_monitor.h
src/qemu/qemu_monitor_json.h
src/storage/storage_backend_scsi.c
src/util/virpci.c
src/util/virpci.h
src/xen/xend_internal.c

index fe1c567be37f7f8f203c5da83c8651e1c35ebe91..3eb2956580163ae65712bd781783b0bf6eab4bef 100644 (file)
@@ -40,7 +40,7 @@ bhyveCollectPCIAddress(virDomainDefPtr def ATTRIBUTE_UNUSED,
 {
     int ret = -1;
     virDomainPCIAddressSetPtr addrs = opaque;
-    virDevicePCIAddressPtr addr = &info->addr.pci;
+    virPCIDeviceAddressPtr addr = &info->addr.pci;
 
     if (addr->domain == 0 && addr->bus == 0) {
         if (addr->slot == 0) {
@@ -88,7 +88,7 @@ bhyveAssignDevicePCISlots(virDomainDefPtr def,
                           virDomainPCIAddressSetPtr addrs)
 {
     size_t i;
-    virDevicePCIAddress lpc_addr;
+    virPCIDeviceAddress lpc_addr;
 
     /* explicitly reserve slot 1 for LPC-ISA bridge */
     memset(&lpc_addr, 0, sizeof(lpc_addr));
index 4e15d38463fe6a83ad31876f5fbdcc6206d26721..9d9f6a79151a39e184f9cae69fe140c2f1712ed5 100644 (file)
@@ -55,7 +55,7 @@ VIR_ENUM_IMPL(virNetDevFeature,
               "rdma",
               "txudptnl")
 
-int virDevicePCIAddressIsValid(virDevicePCIAddressPtr addr,
+int virPCIDeviceAddressIsValid(virPCIDeviceAddressPtr addr,
                                bool report)
 {
     if (addr->domain > 0xFFFF) {
@@ -102,8 +102,8 @@ int virDevicePCIAddressIsValid(virDevicePCIAddressPtr addr,
 
 
 int
-virDevicePCIAddressParseXML(xmlNodePtr node,
-                            virDevicePCIAddressPtr addr)
+virPCIDeviceAddressParseXML(xmlNodePtr node,
+                            virPCIDeviceAddressPtr addr)
 {
     char *domain, *slot, *bus, *function, *multi;
     int ret = -1;
@@ -152,7 +152,7 @@ virDevicePCIAddressParseXML(xmlNodePtr node,
         goto cleanup;
 
     }
-    if (!virDevicePCIAddressIsValid(addr, true))
+    if (!virPCIDeviceAddressIsValid(addr, true))
         goto cleanup;
 
     ret = 0;
@@ -167,8 +167,8 @@ virDevicePCIAddressParseXML(xmlNodePtr node,
 }
 
 int
-virDevicePCIAddressFormat(virBufferPtr buf,
-                          virDevicePCIAddress addr,
+virPCIDeviceAddressFormat(virBufferPtr buf,
+                          virPCIDeviceAddress addr,
                           bool includeTypeInAddr)
 {
     virBufferAsprintf(buf, "<address %sdomain='0x%.4x' bus='0x%.2x' "
@@ -182,8 +182,8 @@ virDevicePCIAddressFormat(virBufferPtr buf,
 }
 
 bool
-virDevicePCIAddressEqual(virDevicePCIAddress *addr1,
-                         virDevicePCIAddress *addr2)
+virPCIDeviceAddressEqual(virPCIDeviceAddress *addr1,
+                         virPCIDeviceAddress *addr2)
 {
     if (addr1->domain == addr2->domain &&
         addr1->bus == addr2->bus &&
index 85ce40f6831e766c8457bcc420de8d7b39c10d34..fc0f4abb36cd2fe2d55060df669ecab90e0c2ba8 100644 (file)
@@ -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 {
@@ -81,18 +72,18 @@ typedef enum {
 
 VIR_ENUM_DECL(virNetDevFeature)
 
-int virDevicePCIAddressIsValid(virDevicePCIAddressPtr addr,
+int virPCIDeviceAddressIsValid(virPCIDeviceAddressPtr addr,
                                bool report);
 
-int virDevicePCIAddressParseXML(xmlNodePtr node,
-                                virDevicePCIAddressPtr addr);
+int virPCIDeviceAddressParseXML(xmlNodePtr node,
+                                virPCIDeviceAddressPtr addr);
 
-int virDevicePCIAddressFormat(virBufferPtr buf,
-                              virDevicePCIAddress addr,
+int virPCIDeviceAddressFormat(virBufferPtr buf,
+                              virPCIDeviceAddress addr,
                               bool includeTypeInAddr);
 
-bool virDevicePCIAddressEqual(virDevicePCIAddress *addr1,
-                              virDevicePCIAddress *addr2);
+bool virPCIDeviceAddressEqual(virPCIDeviceAddress *addr1,
+                              virPCIDeviceAddress *addr2);
 
 int virInterfaceLinkParseXML(xmlNodePtr node,
                              virInterfaceLinkPtr lnk);
index c0afa21e0564570279c1190dc49edccbf279536f..acd8ce6ed33b391abc3a226366b6e601a6549258 100644 (file)
@@ -88,7 +88,7 @@ virDomainPCIControllerModelToConnectType(virDomainControllerModelPCI model)
 }
 
 bool
-virDomainPCIAddressFlagsCompatible(virDevicePCIAddressPtr addr,
+virDomainPCIAddressFlagsCompatible(virPCIDeviceAddressPtr addr,
                                    const char *addrStr,
                                    virDomainPCIConnectFlags busFlags,
                                    virDomainPCIConnectFlags devFlags,
@@ -163,7 +163,7 @@ virDomainPCIAddressFlagsCompatible(virDevicePCIAddressPtr addr,
  */
 bool
 virDomainPCIAddressValidate(virDomainPCIAddressSetPtr addrs,
-                            virDevicePCIAddressPtr addr,
+                            virPCIDeviceAddressPtr addr,
                             const char *addrStr,
                             virDomainPCIConnectFlags flags,
                             bool fromConfig)
@@ -315,7 +315,7 @@ virDomainPCIAddressBusSetModel(virDomainPCIAddressBusPtr bus,
  */
 int
 virDomainPCIAddressSetGrow(virDomainPCIAddressSetPtr addrs,
-                           virDevicePCIAddressPtr addr,
+                           virPCIDeviceAddressPtr addr,
                            virDomainPCIConnectFlags flags)
 {
     int add;
@@ -351,7 +351,7 @@ virDomainPCIAddressSetGrow(virDomainPCIAddressSetPtr addrs,
 
 
 char *
-virDomainPCIAddressAsString(virDevicePCIAddressPtr addr)
+virDomainPCIAddressAsString(virPCIDeviceAddressPtr addr)
 {
     char *str;
 
@@ -369,7 +369,7 @@ virDomainPCIAddressAsString(virDevicePCIAddressPtr addr)
  */
 bool
 virDomainPCIAddressSlotInUse(virDomainPCIAddressSetPtr addrs,
-                             virDevicePCIAddressPtr addr)
+                             virPCIDeviceAddressPtr addr)
 {
     return !!addrs->buses[addr->bus].slots[addr->slot];
 }
@@ -386,7 +386,7 @@ virDomainPCIAddressSlotInUse(virDomainPCIAddressSetPtr addrs,
  */
 int
 virDomainPCIAddressReserveAddr(virDomainPCIAddressSetPtr addrs,
-                               virDevicePCIAddressPtr addr,
+                               virPCIDeviceAddressPtr addr,
                                virDomainPCIConnectFlags flags,
                                bool reserveEntireSlot,
                                bool fromConfig)
@@ -448,7 +448,7 @@ virDomainPCIAddressReserveAddr(virDomainPCIAddressSetPtr addrs,
 
 int
 virDomainPCIAddressReserveSlot(virDomainPCIAddressSetPtr addrs,
-                               virDevicePCIAddressPtr addr,
+                               virPCIDeviceAddressPtr addr,
                                virDomainPCIConnectFlags flags)
 {
     return virDomainPCIAddressReserveAddr(addrs, addr, flags, true, false);
@@ -499,7 +499,7 @@ virDomainPCIAddressEnsureAddr(virDomainPCIAddressSetPtr addrs,
 
 int
 virDomainPCIAddressReleaseAddr(virDomainPCIAddressSetPtr addrs,
-                               virDevicePCIAddressPtr addr)
+                               virPCIDeviceAddressPtr addr)
 {
     addrs->buses[addr->bus].slots[addr->slot] &= ~(1 << addr->function);
     return 0;
@@ -507,7 +507,7 @@ virDomainPCIAddressReleaseAddr(virDomainPCIAddressSetPtr addrs,
 
 int
 virDomainPCIAddressReleaseSlot(virDomainPCIAddressSetPtr addrs,
-                               virDevicePCIAddressPtr addr)
+                               virPCIDeviceAddressPtr addr)
 {
     /* permit any kind of connection type in validation, since we
      * already had it, and are giving it back.
@@ -563,13 +563,13 @@ virDomainPCIAddressSetFree(virDomainPCIAddressSetPtr addrs)
 
 int
 virDomainPCIAddressGetNextSlot(virDomainPCIAddressSetPtr addrs,
-                               virDevicePCIAddressPtr next_addr,
+                               virPCIDeviceAddressPtr next_addr,
                                virDomainPCIConnectFlags flags)
 {
     /* default to starting the search for a free slot from
      * the first slot of domain 0 bus 0...
      */
-    virDevicePCIAddress a = { 0, 0, 0, 0, false };
+    virPCIDeviceAddress a = { 0, 0, 0, 0, false };
     char *addrStr = NULL;
 
     if (addrs->nbuses == 0) {
@@ -666,7 +666,7 @@ virDomainPCIAddressReserveNextSlot(virDomainPCIAddressSetPtr addrs,
                                    virDomainDeviceInfoPtr dev,
                                    virDomainPCIConnectFlags flags)
 {
-    virDevicePCIAddress addr;
+    virPCIDeviceAddress addr;
     if (virDomainPCIAddressGetNextSlot(addrs, &addr, flags) < 0)
         return -1;
 
index 5b5de8a31ca78862f086f0f225a0331c0a15863b..f3eda89d5c1a038d1c1b56d286d46635b0aac619 100644 (file)
@@ -79,7 +79,7 @@ typedef virDomainPCIAddressBus *virDomainPCIAddressBusPtr;
 struct _virDomainPCIAddressSet {
     virDomainPCIAddressBus *buses;
     size_t nbuses;
-    virDevicePCIAddress lastaddr;
+    virPCIDeviceAddress lastaddr;
     virDomainPCIConnectFlags lastFlags;
     bool dryRun;          /* on a dry run, new buses are auto-added
                              and addresses aren't saved in device infos */
@@ -87,14 +87,14 @@ struct _virDomainPCIAddressSet {
 typedef struct _virDomainPCIAddressSet virDomainPCIAddressSet;
 typedef virDomainPCIAddressSet *virDomainPCIAddressSetPtr;
 
-char *virDomainPCIAddressAsString(virDevicePCIAddressPtr addr)
+char *virDomainPCIAddressAsString(virPCIDeviceAddressPtr addr)
       ATTRIBUTE_NONNULL(1);
 
 virDomainPCIAddressSetPtr virDomainPCIAddressSetAlloc(unsigned int nbuses);
 
 void virDomainPCIAddressSetFree(virDomainPCIAddressSetPtr addrs);
 
-bool virDomainPCIAddressFlagsCompatible(virDevicePCIAddressPtr addr,
+bool virDomainPCIAddressFlagsCompatible(virPCIDeviceAddressPtr addr,
                                         const char *addrStr,
                                         virDomainPCIConnectFlags busFlags,
                                         virDomainPCIConnectFlags devFlags,
@@ -103,7 +103,7 @@ bool virDomainPCIAddressFlagsCompatible(virDevicePCIAddressPtr addr,
      ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
 
 bool virDomainPCIAddressValidate(virDomainPCIAddressSetPtr addrs,
-                                 virDevicePCIAddressPtr addr,
+                                 virPCIDeviceAddressPtr addr,
                                  const char *addrStr,
                                  virDomainPCIConnectFlags flags,
                                  bool fromConfig)
@@ -115,23 +115,23 @@ int virDomainPCIAddressBusSetModel(virDomainPCIAddressBusPtr bus,
     ATTRIBUTE_NONNULL(1);
 
 bool virDomainPCIAddressSlotInUse(virDomainPCIAddressSetPtr addrs,
-                                  virDevicePCIAddressPtr addr)
+                                  virPCIDeviceAddressPtr addr)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
 
 int virDomainPCIAddressSetGrow(virDomainPCIAddressSetPtr addrs,
-                               virDevicePCIAddressPtr addr,
+                               virPCIDeviceAddressPtr addr,
                                virDomainPCIConnectFlags flags)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
 
 int virDomainPCIAddressReserveAddr(virDomainPCIAddressSetPtr addrs,
-                                   virDevicePCIAddressPtr addr,
+                                   virPCIDeviceAddressPtr addr,
                                    virDomainPCIConnectFlags flags,
                                    bool reserveEntireSlot,
                                    bool fromConfig)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
 
 int virDomainPCIAddressReserveSlot(virDomainPCIAddressSetPtr addrs,
-                                   virDevicePCIAddressPtr addr,
+                                   virPCIDeviceAddressPtr addr,
                                    virDomainPCIConnectFlags flags)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
 
@@ -140,15 +140,15 @@ int virDomainPCIAddressEnsureAddr(virDomainPCIAddressSetPtr addrs,
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
 
 int virDomainPCIAddressReleaseAddr(virDomainPCIAddressSetPtr addrs,
-                                   virDevicePCIAddressPtr addr)
+                                   virPCIDeviceAddressPtr addr)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
 
 int virDomainPCIAddressReleaseSlot(virDomainPCIAddressSetPtr addrs,
-                                   virDevicePCIAddressPtr addr)
+                                   virPCIDeviceAddressPtr addr)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
 
 int virDomainPCIAddressGetNextSlot(virDomainPCIAddressSetPtr addrs,
-                                   virDevicePCIAddressPtr next_addr,
+                                   virPCIDeviceAddressPtr next_addr,
                                    virDomainPCIConnectFlags flags)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
 
index 23ff88712971da9f07dbd642030a5188ba250ed7..4853f741890e5c1a0688d20771f72e6383e60858 100644 (file)
@@ -3113,7 +3113,7 @@ int virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info,
 
     switch (info->type) {
     case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI:
-        return virDevicePCIAddressIsValid(&info->addr.pci, false);
+        return virPCIDeviceAddressIsValid(&info->addr.pci, false);
 
     case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE:
         return 1;
@@ -5043,7 +5043,7 @@ virDomainDeviceInfoParseXML(xmlNodePtr node,
 
     switch ((virDomainDeviceAddressType) info->type) {
     case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI:
-        if (virDevicePCIAddressParseXML(address, &info->addr.pci) < 0)
+        if (virPCIDeviceAddressParseXML(address, &info->addr.pci) < 0)
             goto cleanup;
         break;
 
@@ -5113,7 +5113,7 @@ virDomainDeviceInfoParseXML(xmlNodePtr node,
 
 static int
 virDomainParseLegacyDeviceAddress(char *devaddr,
-                                  virDevicePCIAddressPtr pci)
+                                  virPCIDeviceAddressPtr pci)
 {
     char *tmp;
 
@@ -5317,10 +5317,10 @@ virDomainHostdevSubsysPCIDefParseXML(xmlNodePtr node,
     while (cur != NULL) {
         if (cur->type == XML_ELEMENT_NODE) {
             if (xmlStrEqual(cur->name, BAD_CAST "address")) {
-                virDevicePCIAddressPtr addr =
+                virPCIDeviceAddressPtr addr =
                     &def->source.subsys.u.pci.addr;
 
-                if (virDevicePCIAddressParseXML(cur, addr) < 0)
+                if (virPCIDeviceAddressParseXML(cur, addr) < 0)
                     goto out;
             } else if ((flags & VIR_DOMAIN_DEF_PARSE_STATUS) &&
                        xmlStrEqual(cur->name, BAD_CAST "state")) {
@@ -13263,7 +13263,7 @@ virDomainDiskControllerMatch(int controller_type, int disk_bus)
 
 int
 virDomainDiskIndexByAddress(virDomainDefPtr def,
-                            virDevicePCIAddressPtr pci_address,
+                            virPCIDeviceAddressPtr pci_address,
                             unsigned int bus, unsigned int target,
                             unsigned int unit)
 {
@@ -13278,7 +13278,7 @@ virDomainDiskIndexByAddress(virDomainDefPtr def,
     for (i = 0; i < def->ndisks; i++) {
         vdisk = def->disks[i];
         if (vdisk->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI &&
-            virDevicePCIAddressEqual(&vdisk->info.addr.pci, pci_address))
+            virPCIDeviceAddressEqual(&vdisk->info.addr.pci, pci_address))
             return i;
         if (vdisk->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE) {
             virDomainDeviceDriveAddressPtr drive = &vdisk->info.addr.drive;
@@ -13295,7 +13295,7 @@ virDomainDiskIndexByAddress(virDomainDefPtr def,
 
 virDomainDiskDefPtr
 virDomainDiskByAddress(virDomainDefPtr def,
-                       virDevicePCIAddressPtr pci_address,
+                       virPCIDeviceAddressPtr pci_address,
                        unsigned int bus,
                        unsigned int target,
                        unsigned int unit)
@@ -13465,7 +13465,7 @@ virDomainNetFindIdx(virDomainDefPtr def, virDomainNetDefPtr net)
             return -1;
         }
         if (PCIAddrSpecified) {
-            if (virDevicePCIAddressEqual(&def->nets[i]->info.addr.pci,
+            if (virPCIDeviceAddressEqual(&def->nets[i]->info.addr.pci,
                                          &net->info.addr.pci)) {
                 /* exit early if the pci address was specified and
                  * it matches, as this guarantees no duplicates.
@@ -13509,7 +13509,7 @@ virDomainHasNet(virDomainDefPtr def, virDomainNetDefPtr net)
             continue;
 
         if (PCIAddrSpecified) {
-            if (virDevicePCIAddressEqual(&def->nets[i]->info.addr.pci,
+            if (virPCIDeviceAddressEqual(&def->nets[i]->info.addr.pci,
                                          &net->info.addr.pci))
                 return true;
         } else {
@@ -13686,7 +13686,7 @@ virDomainControllerFindByType(virDomainDefPtr def,
 
 int
 virDomainControllerFindByPCIAddress(virDomainDefPtr def,
-                                    virDevicePCIAddressPtr addr)
+                                    virPCIDeviceAddressPtr addr)
 {
     size_t i;
 
@@ -13694,7 +13694,7 @@ virDomainControllerFindByPCIAddress(virDomainDefPtr def,
         virDomainDeviceInfoPtr info = &def->controllers[i]->info;
 
         if (info->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI &&
-            virDevicePCIAddressEqual(&info->addr.pci, addr))
+            virPCIDeviceAddressEqual(&info->addr.pci, addr))
             return i;
     }
 
@@ -19747,7 +19747,7 @@ virDomainHostdevDefFormatSubsys(virBufferPtr buf,
         }
         break;
     case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI:
-        if (virDevicePCIAddressFormat(buf, pcisrc->addr,
+        if (virPCIDeviceAddressFormat(buf, pcisrc->addr,
                                       includeTypeInAddr) != 0)
             virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
                            _("PCI address Formatting failed"));
index b9fe10956210a322855671cbdb042b90647f6738..2cb9fa305d1e1606970504c8cf7b56d1300e255a 100644 (file)
@@ -348,7 +348,7 @@ struct _virDomainDeviceInfo {
     char *alias;
     int type; /* virDomainDeviceAddressType */
     union {
-        virDevicePCIAddress pci;
+        virPCIDeviceAddress pci;
         virDomainDeviceDriveAddress drive;
         virDomainDeviceVirtioSerialAddress vioserial;
         virDomainDeviceCcidAddress ccid;
@@ -456,7 +456,7 @@ struct _virDomainHostdevSubsysUSB {
 typedef struct _virDomainHostdevSubsysPCI virDomainHostdevSubsysPCI;
 typedef virDomainHostdevSubsysPCI *virDomainHostdevSubsysPCIPtr;
 struct _virDomainHostdevSubsysPCI {
-    virDevicePCIAddress addr; /* host address */
+    virPCIDeviceAddress addr; /* host address */
     int backend; /* enum virDomainHostdevSubsysPCIBackendType */
 };
 
@@ -2780,11 +2780,11 @@ int virDomainDefCompatibleDevice(virDomainDefPtr def,
 void virDomainRNGDefFree(virDomainRNGDefPtr def);
 
 int virDomainDiskIndexByAddress(virDomainDefPtr def,
-                                virDevicePCIAddressPtr pci_controller,
+                                virPCIDeviceAddressPtr pci_controller,
                                 unsigned int bus, unsigned int target,
                                 unsigned int unit);
 virDomainDiskDefPtr virDomainDiskByAddress(virDomainDefPtr def,
-                                           virDevicePCIAddressPtr pci_controller,
+                                           virPCIDeviceAddressPtr pci_controller,
                                            unsigned int bus,
                                            unsigned int target,
                                            unsigned int unit);
@@ -2855,7 +2855,7 @@ void virDomainControllerInsertPreAlloced(virDomainDefPtr def,
 int virDomainControllerFind(const virDomainDef *def, int type, int idx);
 int virDomainControllerFindByType(virDomainDefPtr def, int type);
 int virDomainControllerFindByPCIAddress(virDomainDefPtr def,
-                                        virDevicePCIAddressPtr addr);
+                                        virPCIDeviceAddressPtr addr);
 virDomainControllerDefPtr virDomainControllerRemove(virDomainDefPtr def, size_t i);
 const char *virDomainControllerAliasFind(const virDomainDef *def,
                                          int type, int idx)
index e6915ffde74fd842aa746031b4f54d9a97d3139e..c574b01b712b440ad87dc5cf79f45d9467265cbe 100644 (file)
@@ -1974,13 +1974,13 @@ virNetworkForwardDefParseXML(const char *networkName,
             switch (def->ifs[i].type) {
             case VIR_NETWORK_FORWARD_HOSTDEV_DEVICE_PCI:
             {
-                virDevicePCIAddressPtr addr = &def->ifs[i].device.pci;
+                virPCIDeviceAddressPtr addr = &def->ifs[i].device.pci;
 
-                if (virDevicePCIAddressParseXML(forwardAddrNodes[i], addr) < 0)
+                if (virPCIDeviceAddressParseXML(forwardAddrNodes[i], addr) < 0)
                     goto cleanup;
 
                 for (j = 0; j < i; j++) {
-                    if (virDevicePCIAddressEqual(addr, &def->ifs[j].device.pci)) {
+                    if (virPCIDeviceAddressEqual(addr, &def->ifs[j].device.pci)) {
                         virReportError(VIR_ERR_XML_ERROR,
                                        _("PCI device '%04x:%02x:%02x.%x' can "
                                          "only be listed once in network %s"),
@@ -2797,7 +2797,7 @@ virNetworkDefFormatBuf(virBufferPtr buf,
                     virBufferAddLit(buf, "/>\n");
                 } else {
                     if (def->forward.ifs[i].type ==  VIR_NETWORK_FORWARD_HOSTDEV_DEVICE_PCI) {
-                        if (virDevicePCIAddressFormat(buf,
+                        if (virPCIDeviceAddressFormat(buf,
                                                       def->forward.ifs[i].device.pci,
                                                       true) < 0)
                             goto error;
index b72257b970a8449ba4067df775d001dea915398b..0d34dfe626586acdaf1e8ddb97c10a58f470619a 100644 (file)
@@ -169,7 +169,7 @@ typedef virNetworkForwardIfDef *virNetworkForwardIfDefPtr;
 struct _virNetworkForwardIfDef {
     int type;
     union {
-        virDevicePCIAddress pci; /*PCI Address of device */
+        virPCIDeviceAddress pci; /*PCI Address of device */
         /* when USB devices are supported a new variable to be added here */
         char *dev;      /* name of device */
     }device;
index a76f785eddc0fee866f6023d2ae3fdb4dd07a056..e7e4bbd390fa31555673918f4197fd5a565e116c 100644 (file)
@@ -1164,8 +1164,8 @@ virNodeDevCapPCIDevIommuGroupParseXML(xmlXPathContextPtr ctxt,
         goto cleanup;
 
     for (i = 0; i < nAddrNodes; i++) {
-        virDevicePCIAddress addr = { 0, 0, 0, 0, 0 };
-        if (virDevicePCIAddressParseXML(addrNodes[i], &addr) < 0)
+        virPCIDeviceAddress addr = { 0, 0, 0, 0, 0 };
+        if (virPCIDeviceAddressParseXML(addrNodes[i], &addr) < 0)
             goto cleanup;
         if (VIR_ALLOC(pciAddr) < 0)
             goto cleanup;
index daf8f99285b9764cb41267d7192e332b8f083f97..3c832269125dfa582fe414027bd383c75c8410f3 100644 (file)
@@ -603,7 +603,7 @@ virStoragePoolDefParseSource(xmlXPathContextPtr ctxt,
             if (virXPathNode("./adapter/parentaddr", ctxt)) {
                 xmlNodePtr addrnode = virXPathNode("./adapter/parentaddr/address",
                                                    ctxt);
-                virDevicePCIAddressPtr addr =
+                virPCIDeviceAddressPtr addr =
                     &source->adapter.data.scsi_host.parentaddr;
 
                 if (!addrnode) {
@@ -612,7 +612,7 @@ virStoragePoolDefParseSource(xmlXPathContextPtr ctxt,
                     goto cleanup;
                 }
                 source->adapter.data.scsi_host.has_parent = true;
-                if (virDevicePCIAddressParseXML(addrnode, addr) < 0)
+                if (virPCIDeviceAddressParseXML(addrnode, addr) < 0)
                     goto cleanup;
                 if ((virXPathInt("string(./adapter/parentaddr/@unique_id)",
                                  ctxt,
@@ -1103,14 +1103,14 @@ virStoragePoolSourceFormat(virBufferPtr buf,
                 virBufferAsprintf(buf, " name='%s'/>\n",
                                   src->adapter.data.scsi_host.name);
             } else {
-                virDevicePCIAddress addr;
+                virPCIDeviceAddress addr;
                 virBufferAddLit(buf, ">\n");
                 virBufferAdjustIndent(buf, 2);
                 virBufferAsprintf(buf, "<parentaddr unique_id='%d'>\n",
                                   src->adapter.data.scsi_host.unique_id);
                 virBufferAdjustIndent(buf, 2);
                 addr = src->adapter.data.scsi_host.parentaddr;
-                ignore_value(virDevicePCIAddressFormat(buf, addr, false));
+                ignore_value(virPCIDeviceAddressFormat(buf, addr, false));
                 virBufferAdjustIndent(buf, -2);
                 virBufferAddLit(buf, "</parentaddr>\n");
                 virBufferAdjustIndent(buf, -2);
@@ -2315,7 +2315,7 @@ getSCSIHostNumber(virStoragePoolSourceAdapter adapter,
     char *name = NULL;
 
     if (adapter.data.scsi_host.has_parent) {
-        virDevicePCIAddress addr = adapter.data.scsi_host.parentaddr;
+        virPCIDeviceAddress addr = adapter.data.scsi_host.parentaddr;
         unsigned int unique_id = adapter.data.scsi_host.unique_id;
 
         if (!(name = virGetSCSIHostNameByParentaddr(addr.domain,
@@ -2419,9 +2419,9 @@ static bool
 matchSCSIAdapterParent(virStoragePoolObjPtr pool,
                        virStoragePoolDefPtr def)
 {
-    virDevicePCIAddressPtr pooladdr =
+    virPCIDeviceAddressPtr pooladdr =
         &pool->def->source.adapter.data.scsi_host.parentaddr;
-    virDevicePCIAddressPtr defaddr =
+    virPCIDeviceAddressPtr defaddr =
         &def->source.adapter.data.scsi_host.parentaddr;
     int pool_unique_id =
         pool->def->source.adapter.data.scsi_host.unique_id;
index 31b45be04f9acbadd233accea17ade75552b317e..54116a690c25556a35b16eeadda6a7a346bb8c30 100644 (file)
@@ -186,7 +186,7 @@ struct _virStoragePoolSourceAdapter {
     union {
         struct {
             char *name;
-            virDevicePCIAddress parentaddr; /* host address */
+            virPCIDeviceAddress parentaddr; /* host address */
             int unique_id;
             bool has_parent;
         } scsi_host;
index 5030ec3a1521930f15111918843d33e767848ec5..a057a1e8305c75dd9ffa35e545d515568b2888fa 100644 (file)
@@ -76,14 +76,14 @@ virCPUModeTypeToString;
 
 
 # conf/device_conf.h
-virDevicePCIAddressEqual;
-virDevicePCIAddressFormat;
-virDevicePCIAddressIsValid;
-virDevicePCIAddressParseXML;
 virInterfaceLinkFormat;
 virInterfaceLinkParseXML;
 virInterfaceStateTypeFromString;
 virInterfaceStateTypeToString;
+virPCIDeviceAddressEqual;
+virPCIDeviceAddressFormat;
+virPCIDeviceAddressIsValid;
+virPCIDeviceAddressParseXML;
 
 
 # conf/domain_addr.h
index 29c5febc76969e872734fe8125b07884765e96c2..45248d5d6ad5116bf92537089c6542b92c6ee296 100644 (file)
@@ -4457,7 +4457,7 @@ networkNotifyActualDevice(virDomainDefPtr dom,
         for (i = 0; i < netdef->forward.nifs; i++) {
             if (netdef->forward.ifs[i].type
                 == VIR_NETWORK_FORWARD_HOSTDEV_DEVICE_PCI &&
-                virDevicePCIAddressEqual(&hostdev->source.subsys.u.pci.addr,
+                virPCIDeviceAddressEqual(&hostdev->source.subsys.u.pci.addr,
                                          &netdef->forward.ifs[i].device.pci)) {
                 dev = &netdef->forward.ifs[i];
                 break;
@@ -4616,7 +4616,7 @@ networkReleaseActualDevice(virDomainDefPtr dom,
         for (i = 0; i < netdef->forward.nifs; i++) {
             if (netdef->forward.ifs[i].type
                 == VIR_NETWORK_FORWARD_HOSTDEV_DEVICE_PCI &&
-                virDevicePCIAddressEqual(&hostdev->source.subsys.u.pci.addr,
+                virPCIDeviceAddressEqual(&hostdev->source.subsys.u.pci.addr,
                                          &netdef->forward.ifs[i].device.pci)) {
                 dev = &netdef->forward.ifs[i];
                 break;
index 0610f75e52aa1f429bb2a9b195a78f5dbdfd9b9d..c55f304d5a541d482e493bfd6d8577bcd1269e22 100644 (file)
@@ -1770,7 +1770,7 @@ qemuAgentGetFSInfo(qemuAgentPtr mon, virDomainFSInfoPtr **info,
     virJSONValuePtr reply = NULL;
     virJSONValuePtr data;
     virDomainFSInfoPtr *info_ret = NULL;
-    virDevicePCIAddress pci_address;
+    virPCIDeviceAddress pci_address;
 
     cmd = qemuAgentMakeCommand("guest-get-fsinfo", NULL);
     if (!cmd)
index f4d55334efdbd109339a990b519804f20fe97123..c651dce6d78c95ef78ca9b14b58de1954bd33fb0 100644 (file)
@@ -423,7 +423,7 @@ qemuDomainCollectPCIAddress(virDomainDefPtr def ATTRIBUTE_UNUSED,
 {
     virDomainPCIAddressSetPtr addrs = opaque;
     int ret = -1;
-    virDevicePCIAddressPtr addr = &info->addr.pci;
+    virPCIDeviceAddressPtr addr = &info->addr.pci;
     bool entireSlot;
     /* flags may be changed from default below */
     virDomainPCIConnectFlags flags = (VIR_PCI_CONNECT_HOTPLUGGABLE |
@@ -620,7 +620,7 @@ qemuDomainValidateDevicePCISlotsPIIX3(virDomainDefPtr def,
 {
     int ret = -1;
     size_t i;
-    virDevicePCIAddress tmp_addr;
+    virPCIDeviceAddress tmp_addr;
     bool qemuDeviceVideoUsable = virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VIDEO_PRIMARY);
     char *addrStr = NULL;
     virDomainPCIConnectFlags flags = (VIR_PCI_CONNECT_HOTPLUGGABLE
@@ -754,7 +754,7 @@ qemuDomainValidateDevicePCISlotsQ35(virDomainDefPtr def,
 {
     int ret = -1;
     size_t i;
-    virDevicePCIAddress tmp_addr;
+    virPCIDeviceAddress tmp_addr;
     bool qemuDeviceVideoUsable = virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VIDEO_PRIMARY);
     char *addrStr = NULL;
     virDomainPCIConnectFlags flags = VIR_PCI_CONNECT_TYPE_PCIE_DEVICE;
@@ -1021,7 +1021,7 @@ qemuDomainAssignDevicePCISlots(virDomainDefPtr def,
 {
     size_t i, j;
     virDomainPCIConnectFlags flags = 0; /* initialize to quiet gcc warning */
-    virDevicePCIAddress tmp_addr;
+    virPCIDeviceAddress tmp_addr;
 
     /* PCI controllers */
     for (i = 0; i < def->ncontrollers; i++) {
@@ -1120,7 +1120,7 @@ qemuDomainAssignDevicePCISlots(virDomainDefPtr def,
 
         /* USB2 needs special handling to put all companions in the same slot */
         if (IS_USB2_CONTROLLER(def->controllers[i])) {
-            virDevicePCIAddress addr = { 0, 0, 0, 0, false };
+            virPCIDeviceAddress addr = { 0, 0, 0, 0, false };
             bool foundAddr = false;
 
             memset(&tmp_addr, 0, sizeof(tmp_addr));
@@ -1545,7 +1545,7 @@ qemuDomainAssignPCIAddresses(virDomainDefPtr def,
             for (i = 0; i < def->ncontrollers; i++) {
                 virDomainControllerDefPtr cont = def->controllers[i];
                 int idx = cont->idx;
-                virDevicePCIAddressPtr addr;
+                virPCIDeviceAddressPtr addr;
                 virDomainPCIControllerOptsPtr options;
 
                 if (cont->type != VIR_DOMAIN_CONTROLLER_TYPE_PCI)
index 3c9cd3537f96160adf212e95e266b46c67167da0..03e5309507e50f131da88556d967f5a1be02116a 100644 (file)
@@ -2309,7 +2309,7 @@ qemuDomainChangeNet(virQEMUDriverPtr driver,
         virDomainDeviceInfoCopy(&newdev->info, &olddev->info) < 0) {
         goto cleanup;
     }
-    if (!virDevicePCIAddressEqual(&olddev->info.addr.pci,
+    if (!virPCIDeviceAddressEqual(&olddev->info.addr.pci,
                                   &newdev->info.addr.pci)) {
         virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
                        _("cannot modify network device guest PCI address"));
index d4909d8188dbd5a1efd92439ba09eb097abcef3e..871ebe0bb429a24390e394b9e4f279a9c020ec9b 100644 (file)
@@ -675,13 +675,13 @@ int qemuMonitorGetChardevInfo(qemuMonitorPtr mon,
 
 int qemuMonitorAttachPCIDiskController(qemuMonitorPtr mon,
                                        const char *bus,
-                                       virDevicePCIAddress *guestAddr);
+                                       virPCIDeviceAddress *guestAddr);
 
 typedef struct _qemuMonitorPCIAddress qemuMonitorPCIAddress;
 struct _qemuMonitorPCIAddress {
     unsigned int vendor;
     unsigned int product;
-    virDevicePCIAddress addr;
+    virPCIDeviceAddress addr;
 };
 
 int qemuMonitorGetAllPCIAddresses(qemuMonitorPtr mon,
index 81247f4cf9ed58983643094928abbb7feb64c1d7..1587a036f629955fab84d00249299c41c6064186 100644 (file)
@@ -170,20 +170,20 @@ int qemuMonitorJSONGraphicsRelocate(qemuMonitorPtr mon,
                                     const char *tlsSubject);
 
 int qemuMonitorJSONAddPCIHostDevice(qemuMonitorPtr mon,
-                                    virDevicePCIAddress *hostAddr,
-                                    virDevicePCIAddress *guestAddr);
+                                    virPCIDeviceAddress *hostAddr,
+                                    virPCIDeviceAddress *guestAddr);
 
 int qemuMonitorJSONAddPCIDisk(qemuMonitorPtr mon,
                               const char *path,
                               const char *bus,
-                              virDevicePCIAddress *guestAddr);
+                              virPCIDeviceAddress *guestAddr);
 
 int qemuMonitorJSONAddPCINetwork(qemuMonitorPtr mon,
                                  const char *nicstr,
-                                 virDevicePCIAddress *guestAddr);
+                                 virPCIDeviceAddress *guestAddr);
 
 int qemuMonitorJSONRemovePCIDevice(qemuMonitorPtr mon,
-                                   virDevicePCIAddress *guestAddr);
+                                   virPCIDeviceAddress *guestAddr);
 
 int qemuMonitorJSONSendFileHandle(qemuMonitorPtr mon,
                                   const char *fdname,
@@ -209,7 +209,7 @@ int qemuMonitorJSONGetChardevInfo(qemuMonitorPtr mon,
 
 int qemuMonitorJSONAttachPCIDiskController(qemuMonitorPtr mon,
                                            const char *bus,
-                                           virDevicePCIAddress *guestAddr);
+                                           virPCIDeviceAddress *guestAddr);
 
 int qemuMonitorJSONGetAllPCIAddresses(qemuMonitorPtr mon,
                                       qemuMonitorPCIAddress **addrs);
index 7c7d7d0da92efa856c1868c371d6f40206c86603..be993f19d49cfc06b5dda2f5a06c26ecd1d2dc02 100644 (file)
@@ -640,7 +640,7 @@ getAdapterName(virStoragePoolSourceAdapter adapter)
 
     if (adapter.type == VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_SCSI_HOST) {
         if (adapter.data.scsi_host.has_parent) {
-            virDevicePCIAddress addr = adapter.data.scsi_host.parentaddr;
+            virPCIDeviceAddress addr = adapter.data.scsi_host.parentaddr;
             unsigned int unique_id = adapter.data.scsi_host.unique_id;
 
             if (!(name = virGetSCSIHostNameByParentaddr(addr.domain,
index f7921f86d6debc8a99ef3167dff1cb940375ffc6..3f1252d42bbc59133d2890b3c73e1f0ecabc120f 100644 (file)
@@ -2517,7 +2517,7 @@ virPCIGetVirtualFunctions(const char *sysfs_path,
     int ret = -1;
     size_t i;
     char *device_link = NULL;
-    virPCIDeviceAddress *config_addr = NULL;
+    virPCIDeviceAddressPtr config_addr = NULL;
     char *totalvfs_file = NULL, *totalvfs_str = NULL;
 
     *virtual_functions = NULL;
index 82f45ec4175fb68b781dc80b60cac69d53d6f80f..5c63eab73615b322c5e1a81207136ad2ddc7cbd9 100644 (file)
@@ -40,6 +40,7 @@ struct _virPCIDeviceAddress {
     unsigned int bus;
     unsigned int slot;
     unsigned int function;
+    int multi; /* virTristateSwitch */
 };
 
 typedef enum {
@@ -168,7 +169,7 @@ int virPCIDeviceFileIterate(virPCIDevicePtr dev,
                             virPCIDeviceFileActor actor,
                             void *opaque);
 
-typedef int (*virPCIDeviceAddressActor)(virPCIDeviceAddress *addr,
+typedef int (*virPCIDeviceAddressActor)(virPCIDeviceAddressPtr addr,
                                         void *opaque);
 int virPCIDeviceAddressIOMMUGroupIterate(virPCIDeviceAddressPtr orig,
                                          virPCIDeviceAddressActor actor,
index cf7cdd034c8b86b6b4e1e3da8931c39283445831..4dd6b417f7677fd6c84aeb9c5de7b66298d69db8 100644 (file)
@@ -2167,7 +2167,7 @@ xenDaemonAttachDeviceFlags(virConnectPtr conn,
             if (xenFormatSxprOnePCI(dev->data.hostdev, &buf, 0) < 0)
                 goto cleanup;
 
-            virDevicePCIAddress PCIAddr;
+            virPCIDeviceAddress PCIAddr;
 
             PCIAddr = dev->data.hostdev->source.subsys.u.pci.addr;
             if (virAsprintf(&target, "PCI device: %.4x:%.2x:%.2x",