[libvirt] [PATCHv2 09/12] pci: virPCIDeviceListAddCopy API

Laine Stump laine at laine.org
Tue Jun 25 03:05:35 UTC 2013


Make a copy of the device and add the copy to the
list. (virPCIDeviceListAdd() adds the original object to the list
instead).
---
 src/libvirt_private.syms |  1 +
 src/util/virpci.c        | 17 +++++++++++++++++
 src/util/virpci.h        |  1 +
 3 files changed, 19 insertions(+)

diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index e906742..bf9bd12 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -1703,6 +1703,7 @@ virPCIDeviceGetUnbindFromStub;
 virPCIDeviceGetUsedBy;
 virPCIDeviceIsAssignable;
 virPCIDeviceListAdd;
+virPCIDeviceListAddCopy;
 virPCIDeviceListCount;
 virPCIDeviceListDel;
 virPCIDeviceListFind;
diff --git a/src/util/virpci.c b/src/util/virpci.c
index cbade1b..378b4f3 100644
--- a/src/util/virpci.c
+++ b/src/util/virpci.c
@@ -1705,6 +1705,23 @@ virPCIDeviceListAdd(virPCIDeviceListPtr list,
     return 0;
 }
 
+
+/* virPCIDeviceListAddCopy - add a *copy* of the device to this list */
+int
+virPCIDeviceListAddCopy(virPCIDeviceListPtr list, virPCIDevicePtr dev)
+{
+    virPCIDevicePtr copy = virPCIDeviceCopy(dev);
+
+    if (!copy)
+        return -1;
+    if (virPCIDeviceListAdd(list, copy) < 0) {
+        virPCIDeviceFree(copy);
+        return -1;
+    }
+    return 0;
+}
+
+
 virPCIDevicePtr
 virPCIDeviceListGet(virPCIDeviceListPtr list,
                     int idx)
diff --git a/src/util/virpci.h b/src/util/virpci.h
index 972f86b..5f80de3 100644
--- a/src/util/virpci.h
+++ b/src/util/virpci.h
@@ -83,6 +83,7 @@ void virPCIDeviceReattachInit(virPCIDevice *dev);
 virPCIDeviceListPtr virPCIDeviceListNew(void);
 int  virPCIDeviceListAdd(virPCIDeviceListPtr list,
                          virPCIDevicePtr dev);
+int virPCIDeviceListAddCopy(virPCIDeviceListPtr list, virPCIDevicePtr dev);
 virPCIDevicePtr virPCIDeviceListGet(virPCIDeviceListPtr list,
                                     int idx);
 int virPCIDeviceListCount(virPCIDeviceListPtr list);
-- 
1.7.11.7




More information about the libvir-list mailing list