]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
extract general code from qemuPrepareHostdevPCIDevices
authorChunyan Liu <cyliu@suse.com>
Wed, 5 Mar 2014 11:37:51 +0000 (19:37 +0800)
committerDaniel P. Berrange <berrange@redhat.com>
Wed, 12 Mar 2014 16:03:04 +0000 (16:03 +0000)
Extract general code from qemuPrepareHostdevPCIDevices to
virHostdevPrepareHostdevPCIDevices.

src/qemu/qemu_hostdev.c

index a95fbb6f86f1874d7df4f22901c4bcd5f18f2aa5..5dc68a6048792252a3883b913ec5dda558cbb9ec 100644 (file)
@@ -656,24 +656,18 @@ qemuPrepareHostdevPCICheckSupport(virDomainHostdevDefPtr *hostdevs,
     return true;
 }
 
-
-int
-qemuPrepareHostdevPCIDevices(virQEMUDriverPtr driver,
-                             const char *name,
-                             const unsigned char *uuid,
-                             virDomainHostdevDefPtr *hostdevs,
-                             int nhostdevs,
-                             virQEMUCapsPtr qemuCaps,
-                             unsigned int flags)
+static int
+virHostdevPreparePCIDevices(virHostdevManagerPtr hostdev_mgr,
+                            const char *name,
+                            const unsigned char *uuid,
+                            virDomainHostdevDefPtr *hostdevs,
+                            int nhostdevs,
+                            unsigned int flags)
 {
     virPCIDeviceListPtr pcidevs = NULL;
     int last_processed_hostdev_vf = -1;
     size_t i;
     int ret = -1;
-    virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr;
-
-    if (!qemuPrepareHostdevPCICheckSupport(hostdevs, nhostdevs, qemuCaps))
-        goto out;
 
     virObjectLock(hostdev_mgr->activePciHostdevs);
     virObjectLock(hostdev_mgr->inactivePciHostdevs);
@@ -857,6 +851,26 @@ cleanup:
     virObjectUnlock(hostdev_mgr->activePciHostdevs);
     virObjectUnlock(hostdev_mgr->inactivePciHostdevs);
     virObjectUnref(pcidevs);
+    return ret;
+}
+
+int
+qemuPrepareHostdevPCIDevices(virQEMUDriverPtr driver,
+                             const char *name,
+                             const unsigned char *uuid,
+                             virDomainHostdevDefPtr *hostdevs,
+                             int nhostdevs,
+                             virQEMUCapsPtr qemuCaps,
+                             unsigned int flags)
+{
+    int ret = -1;
+    virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr;
+
+    if (!qemuPrepareHostdevPCICheckSupport(hostdevs, nhostdevs, qemuCaps))
+        goto out;
+
+    ret = virHostdevPreparePCIDevices(hostdev_mgr, name, uuid, hostdevs,
+                                      nhostdevs, flags);
 out:
     return ret;
 }
@@ -1024,7 +1038,7 @@ qemuPrepareHostUSBDevices(virQEMUDriverPtr driver,
     /* To prevent situation where USB device is assigned to two domains
      * we need to keep a list of currently assigned USB devices.
      * This is done in several loops which cannot be joined into one big
-     * loop. See qemuPrepareHostdevPCIDevices()
+     * loop. See virHostdevPreparePCIDevices()
      */
     if (!(list = virUSBDeviceListNew()))
         goto cleanup;
@@ -1110,7 +1124,7 @@ qemuPrepareHostdevSCSIDevices(virQEMUDriverPtr driver,
     /* To prevent situation where SCSI device is assigned to two domains
      * we need to keep a list of currently assigned SCSI devices.
      * This is done in several loops which cannot be joined into one big
-     * loop. See qemuPrepareHostdevPCIDevices()
+     * loop. See virHostdevPreparePCIDevices()
      */
     if (!(list = virSCSIDeviceListNew()))
         goto cleanup;