[PATCHv2 09/12] pci: virPCIDeviceListAddCopy API

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]