[libvirt] [PATCH 3/4] Move virDomainPCIAddressSetFree from domain_addr to domain_conf

Tomasz Flendrich t.flendrich at gmail.com
Mon Jun 20 00:18:39 UTC 2016


pciaddrs will be moved from hypervisors' private data to
domainDef, so domain_conf has to be able to free it.
---
 src/conf/domain_addr.c   | 11 -----------
 src/conf/domain_addr.h   | 41 -----------------------------------------
 src/conf/domain_conf.c   | 10 ++++++++++
 src/conf/domain_conf.h   | 41 +++++++++++++++++++++++++++++++++++++++++
 src/libvirt_private.syms |  2 +-
 5 files changed, 52 insertions(+), 53 deletions(-)

diff --git a/src/conf/domain_addr.c b/src/conf/domain_addr.c
index 93eebf2..09cbc73 100644
--- a/src/conf/domain_addr.c
+++ b/src/conf/domain_addr.c
@@ -550,17 +550,6 @@ virDomainPCIAddressSetAlloc(unsigned int nbuses)
 }
 
 
-void
-virDomainPCIAddressSetFree(virDomainPCIAddressSetPtr addrs)
-{
-    if (!addrs)
-        return;
-
-    VIR_FREE(addrs->buses);
-    VIR_FREE(addrs);
-}
-
-
 int
 virDomainPCIAddressGetNextSlot(virDomainPCIAddressSetPtr addrs,
                                virPCIDeviceAddressPtr next_addr,
diff --git a/src/conf/domain_addr.h b/src/conf/domain_addr.h
index cda1e3f..e767f34 100644
--- a/src/conf/domain_addr.h
+++ b/src/conf/domain_addr.h
@@ -26,22 +26,8 @@
 
 # include "domain_conf.h"
 
-# define VIR_PCI_ADDRESS_SLOT_LAST 31
 # define VIR_PCI_ADDRESS_FUNCTION_LAST 7
 
-typedef enum {
-   VIR_PCI_CONNECT_HOTPLUGGABLE = 1 << 0, /* is hotplug needed/supported */
-
-   /* kinds of devices as a bitmap so they can be combined (some PCI
-    * controllers permit connecting multiple types of devices)
-    */
-   VIR_PCI_CONNECT_TYPE_PCI_DEVICE = 1 << 1,
-   VIR_PCI_CONNECT_TYPE_PCIE_DEVICE = 1 << 2,
-   VIR_PCI_CONNECT_TYPE_PCIE_ROOT_PORT = 1 << 3,
-   VIR_PCI_CONNECT_TYPE_PCIE_SWITCH_UPSTREAM_PORT = 1 << 4,
-   VIR_PCI_CONNECT_TYPE_PCIE_SWITCH_DOWNSTREAM_PORT = 1 << 5,
-} virDomainPCIConnectFlags;
-
 /* a combination of all bits that describe the type of connections
  * allowed, e.g. PCI, PCIe, switch
  */
@@ -62,38 +48,11 @@ typedef enum {
 virDomainPCIConnectFlags
 virDomainPCIControllerModelToConnectType(virDomainControllerModelPCI model);
 
-typedef struct {
-    virDomainControllerModelPCI model;
-    /* flags and min/max can be computed from model, but
-     * having them ready makes life easier.
-     */
-    virDomainPCIConnectFlags flags;
-    size_t minSlot, maxSlot; /* usually 0,0 or 0,31, or 1,31 */
-    /* Each bit in a slot represents one function on that slot. If the
-     * bit is set, that function is in use by a device.
-     */
-    uint8_t slots[VIR_PCI_ADDRESS_SLOT_LAST + 1];
-} virDomainPCIAddressBus;
-typedef virDomainPCIAddressBus *virDomainPCIAddressBusPtr;
-
-struct _virDomainPCIAddressSet {
-    virDomainPCIAddressBus *buses;
-    size_t nbuses;
-    virPCIDeviceAddress lastaddr;
-    virDomainPCIConnectFlags lastFlags;
-    bool dryRun;          /* on a dry run, new buses are auto-added
-                             and addresses aren't saved in device infos */
-};
-typedef struct _virDomainPCIAddressSet virDomainPCIAddressSet;
-typedef virDomainPCIAddressSet *virDomainPCIAddressSetPtr;
-
 char *virDomainPCIAddressAsString(virPCIDeviceAddressPtr addr)
       ATTRIBUTE_NONNULL(1);
 
 virDomainPCIAddressSetPtr virDomainPCIAddressSetAlloc(unsigned int nbuses);
 
-void virDomainPCIAddressSetFree(virDomainPCIAddressSetPtr addrs);
-
 bool virDomainPCIAddressFlagsCompatible(virPCIDeviceAddressPtr addr,
                                         const char *addrStr,
                                         virDomainPCIConnectFlags busFlags,
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 12448dd..5f31a97 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -2544,6 +2544,16 @@ void virDomainCCWAddressSetFree(virDomainCCWAddressSetPtr addrs)
     VIR_FREE(addrs);
 }
 
+void
+virDomainPCIAddressSetFree(virDomainPCIAddressSetPtr addrs)
+{
+    if (!addrs)
+        return;
+
+    VIR_FREE(addrs->buses);
+    VIR_FREE(addrs);
+}
+
 void virDomainDefFree(virDomainDefPtr def)
 {
     size_t i;
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 28fdb98..887e061 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -2111,6 +2111,46 @@ struct _virDomainCCWAddressSet {
 typedef struct _virDomainCCWAddressSet virDomainCCWAddressSet;
 typedef virDomainCCWAddressSet *virDomainCCWAddressSetPtr;
 
+typedef enum {
+   VIR_PCI_CONNECT_HOTPLUGGABLE = 1 << 0, /* is hotplug needed/supported */
+
+   /* kinds of devices as a bitmap so they can be combined (some PCI
+    * controllers permit connecting multiple types of devices)
+    */
+   VIR_PCI_CONNECT_TYPE_PCI_DEVICE = 1 << 1,
+   VIR_PCI_CONNECT_TYPE_PCIE_DEVICE = 1 << 2,
+   VIR_PCI_CONNECT_TYPE_PCIE_ROOT_PORT = 1 << 3,
+   VIR_PCI_CONNECT_TYPE_PCIE_SWITCH_UPSTREAM_PORT = 1 << 4,
+   VIR_PCI_CONNECT_TYPE_PCIE_SWITCH_DOWNSTREAM_PORT = 1 << 5,
+} virDomainPCIConnectFlags;
+
+# define VIR_PCI_ADDRESS_SLOT_LAST 31
+
+typedef struct {
+    virDomainControllerModelPCI model;
+    /* flags and min/max can be computed from model, but
+     * having them ready makes life easier.
+     */
+    virDomainPCIConnectFlags flags;
+    size_t minSlot, maxSlot; /* usually 0,0 or 0,31, or 1,31 */
+    /* Each bit in a slot represents one function on that slot. If the
+     * bit is set, that function is in use by a device.
+     */
+    uint8_t slots[VIR_PCI_ADDRESS_SLOT_LAST + 1];
+} virDomainPCIAddressBus;
+typedef virDomainPCIAddressBus *virDomainPCIAddressBusPtr;
+
+struct _virDomainPCIAddressSet {
+    virDomainPCIAddressBus *buses;
+    size_t nbuses;
+    virPCIDeviceAddress lastaddr;
+    virDomainPCIConnectFlags lastFlags;
+    bool dryRun;          /* on a dry run, new buses are auto-added
+                             and addresses aren't saved in device infos */
+};
+typedef struct _virDomainPCIAddressSet virDomainPCIAddressSet;
+typedef virDomainPCIAddressSet *virDomainPCIAddressSetPtr;
+
 typedef struct _virDomainPowerManagement virDomainPowerManagement;
 typedef virDomainPowerManagement *virDomainPowerManagementPtr;
 
@@ -2554,6 +2594,7 @@ void virDomainTPMDefFree(virDomainTPMDefPtr def);
 void virDomainVirtioSerialControllerFree(virDomainVirtioSerialControllerPtr cont);
 void virDomainVirtioSerialAddrSetFree(virDomainVirtioSerialAddrSetPtr addrs);
 void virDomainCCWAddressSetFree(virDomainCCWAddressSetPtr addrs);
+void virDomainPCIAddressSetFree(virDomainPCIAddressSetPtr addrs);
 
 typedef int (*virDomainDeviceInfoCallback)(virDomainDefPtr def,
                                            virDomainDeviceDefPtr dev,
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 75c8f70..a8109d7 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -107,7 +107,6 @@ virDomainPCIAddressReserveNextSlot;
 virDomainPCIAddressReserveSlot;
 virDomainPCIAddressSetAlloc;
 virDomainPCIAddressSetCreate;
-virDomainPCIAddressSetFree;
 virDomainPCIAddressSetGrow;
 virDomainPCIAddressSlotInUse;
 virDomainPCIAddressValidate;
@@ -427,6 +426,7 @@ virDomainOSTypeToString;
 virDomainParseMemory;
 virDomainPausedReasonTypeFromString;
 virDomainPausedReasonTypeToString;
+virDomainPCIAddressSetFree;
 virDomainPMSuspendedReasonTypeFromString;
 virDomainPMSuspendedReasonTypeToString;
 virDomainRedirdevBusTypeFromString;
-- 
2.7.4 (Apple Git-66)




More information about the libvir-list mailing list