]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
Fix use of dlopen modules
authorDaniel P. Berrange <berrange@redhat.com>
Thu, 10 Sep 2009 13:21:10 +0000 (14:21 +0100)
committerDaniel P. Berrange <berrange@redhat.com>
Thu, 10 Sep 2009 14:42:08 +0000 (15:42 +0100)
Remove the bogus dependancy between node_device.c & storage_backend.c
by moving the virWaitForDevices into util.h where it can be shared
safely

* src/storage_backend_disk.c, src/storage_backend_logical.c,
  src/storage_backend_mpath.c, src/storage_backend_scsi.c: Replace
  virStorageBackendWaitForDevices with virFileWaitForDevices
* src/storage_backend.c, src/storage_backend.h: Remove
  virStorageBackendWaitForDevices, virWaitForDevices
* src/util.h, src/util.c: Add virFileWaitForDevices
* configure.in: Move xmlrpc check further down after pkgconfig
  is detected
* src/Makefile.am: Add missing XMLRPC_CFLAGS/LIBS to opennebula
* src/libvirt_private.syms: Add many missing exports

12 files changed:
configure.in
src/Makefile.am
src/libvirt_private.syms
src/node_device.c
src/storage_backend.c
src/storage_backend.h
src/storage_backend_disk.c
src/storage_backend_logical.c
src/storage_backend_mpath.c
src/storage_backend_scsi.c
src/util.c
src/util.h

index 060eb50a190531b31f7dba684e724f5a9c06a5e1..120f7e7ea2896f026c66d0546820be02727ec890 100644 (file)
@@ -463,6 +463,9 @@ if test "$with_qemu" = "yes" -o "$with_lxc" = "yes" ; then
 fi
 
 
+dnl Need to test if pkg-config exists
+PKG_PROG_PKG_CONFIG
+
 dnl OpenNebula driver Compilation setting
 dnl
 
@@ -491,9 +494,6 @@ AC_SUBST([XMLRPC_CFLAGS])
 AC_SUBST([XMLRPC_LIBS])
 
 
-dnl Need to test if pkg-config exists
-PKG_PROG_PKG_CONFIG
-
 dnl ==========================================================================
 dnl find libxml2 library, borrowed from xmlsec
 dnl ==========================================================================
index 8bdfe3cf78fd54bdb626b0c7a9e024de3227560e..2a047cda1320362e1c59772c0cea4819d18b1d6d 100644 (file)
@@ -397,8 +397,8 @@ noinst_LTLIBRARIES += libvirt_driver_one.la
 # Stateful, so linked to daemon instead
 #libvirt_la_LIBADD  += libvirt_driver_one.la
 endif
-libvirt_driver_one_la_CFLAGS = $(ONE_LIBS)
-libvirt_driver_one_la_LDFLAGS = $(ONE_LIBS)
+libvirt_driver_one_la_CFLAGS = $(XMLRPC_CFLAGS)
+libvirt_driver_one_la_LDFLAGS = $(XMLRPC_LIBS)
 #libvirt_driver_one_la_CFLAGS  = "-DWITH_ONE"
 if WITH_DRIVER_MODULES
 libvirt_driver_one_la_LDFLAGS += -module -avoid-version
index 16bdc3f89c472c25b416de6e506fdddc5c2e5036..a238652951b725b3f26a37636bad4f5fc44b3262 100644 (file)
@@ -10,6 +10,7 @@ virBufferAdd;
 virBufferAddChar;
 virBufferContentAndReset;
 virBufferError;
+virBufferURIEncodeString;
 
 
 # caps.h
@@ -167,7 +168,16 @@ virHashSize;
 virInterfaceDefFormat;
 virInterfaceDefParseFile;
 virInterfaceDefParseString;
+virInterfaceDefParseNode;
 virInterfaceDefFree;
+virInterfaceFindByName;
+virInterfaceFindByMACString;
+virInterfaceAssignDef;
+virInterfaceRemove;
+virInterfaceObjLock;
+virInterfaceObjUnlock;
+virInterfaceObjListFree;
+
 
 # interface_driver.h
 interfaceRegister;
@@ -214,6 +224,7 @@ virRegisterNetworkDriver;
 virRegisterStateDriver;
 virRegisterStorageDriver;
 virRegisterDeviceMonitor;
+virRegisterSecretDriver;
 
 
 # logging.h
@@ -412,6 +423,7 @@ virGetUserName;
 virGetUserID;
 virGetGroupID;
 virFileFindMountPoint;
+virFileWaitForDevices;
 
 # usb.h
 usbGetDevice;
@@ -427,7 +439,7 @@ virUUIDParse;
 # virterror_internal.h
 virReportErrorHelper;
 virErrorMsg;
-virRaiseError;
+virRaiseErrorFull;
 virReportSystemErrorFull;
 virReportOOMErrorFull;
 virStrerror;
index ded203f5576ccc8a7e0a65bff2caa9d9ecc3be3c..69e15b66a2840a9a6ab60c9d778bcab2c3dec950 100644 (file)
@@ -35,7 +35,7 @@
 #include "node_device_conf.h"
 #include "node_device_hal.h"
 #include "node_device.h"
-#include "storage_backend.h" /* For virWaitForDevices */
+#include "util.h"
 
 #define VIR_FROM_THIS VIR_FROM_NODEDEV
 
@@ -599,7 +599,7 @@ find_new_device(virConnectPtr conn, const char *wwnn, const char *wwpn)
 
     while ((now - start) < LINUX_NEW_DEVICE_WAIT_TIME) {
 
-        virWaitForDevices(conn);
+        virFileWaitForDevices(conn);
 
         dev = nodeDeviceLookupByWWN(conn, wwnn, wwpn);
 
index 5e04f35c147a907987040ca8c7af1cbe668bb804..0a20255a573a6c5e53c03259362e3ad46441b076 100644 (file)
@@ -630,31 +630,6 @@ virStorageBackendGetBuildVolFromFunction(virConnectPtr conn,
         return virStorageBackendCreateRaw;
 }
 
-#if defined(UDEVADM) || defined(UDEVSETTLE)
-void virWaitForDevices(virConnectPtr conn)
-{
-#ifdef UDEVADM
-    const char *const settleprog[] = { UDEVADM, "settle", NULL };
-#else
-    const char *const settleprog[] = { UDEVSETTLE, NULL };
-#endif
-    int exitstatus;
-
-    if (access(settleprog[0], X_OK) != 0)
-        return;
-
-    /*
-     * NOTE: we ignore errors here; this is just to make sure that any device
-     * nodes that are being created finish before we try to scan them.
-     * If this fails for any reason, we still have the backup of polling for
-     * 5 seconds for device nodes.
-     */
-    virRun(conn, settleprog, &exitstatus);
-}
-#else
-void virWaitForDevices(virConnectPtr conn ATTRIBUTE_UNUSED) {}
-#endif
-
 
 virStorageBackendPtr
 virStorageBackendForType(int type) {
@@ -893,12 +868,6 @@ virStorageBackendUpdateVolTargetFormatFD(virConnectPtr conn,
 }
 
 
-void virStorageBackendWaitForDevices(virConnectPtr conn)
-{
-    virWaitForDevices(conn);
-    return;
-}
-
 /*
  * Given a volume path directly in /dev/XXX, iterate over the
  * entries in the directory pool->def->target.path and find the
index eb5bf87f19e21d32fb0220946b7733c0c1d3e613..88c6161371b66d34e9f036cf9bf07295e091c683 100644 (file)
@@ -95,7 +95,6 @@ int
 virStorageBackendUpdateVolTargetFormatFD(virConnectPtr conn,
                                          virStorageVolTargetPtr target,
                                          int fd);
-void virStorageBackendWaitForDevices(virConnectPtr conn);
 
 char *virStorageBackendStablePath(virConnectPtr conn,
                                   virStoragePoolObjPtr pool,
@@ -128,6 +127,5 @@ int virStorageBackendRunProgNul(virConnectPtr conn,
                                 virStorageBackendListVolNulFunc func,
                                 void *data);
 
-void virWaitForDevices(virConnectPtr conn);
 
 #endif /* __VIR_STORAGE_BACKEND_H__ */
index 6fdb56647c63a9e33701bf681ac281a7767a4e23..e82959cca6ea55b331e2ab911f8dea8a65be4da7 100644 (file)
@@ -325,7 +325,7 @@ virStorageBackendDiskRefreshPool(virConnectPtr conn,
     VIR_FREE(pool->def->source.devices[0].freeExtents);
     pool->def->source.devices[0].nfreeExtent = 0;
 
-    virStorageBackendWaitForDevices(conn);
+    virFileWaitForDevices(conn);
 
     if (virStorageBackendDiskReadGeometry(conn, pool) != 0) {
         return -1;
@@ -583,7 +583,7 @@ virStorageBackendDiskCreateVol(virConnectPtr conn,
         return -1;
 
     /* wait for device node to show up */
-    virStorageBackendWaitForDevices(conn);
+    virFileWaitForDevices(conn);
 
     /* Blow away free extent info, as we're about to re-populate it */
     VIR_FREE(pool->def->source.devices[0].freeExtents);
index 43117e856725cd75dd35532f8e151b1269df88cf..4389120815639a804f42b650edea55ee9ab3e6f5 100644 (file)
@@ -478,7 +478,7 @@ virStorageBackendLogicalRefreshPool(virConnectPtr conn,
     };
     int exitstatus;
 
-    virStorageBackendWaitForDevices(conn);
+    virFileWaitForDevices(conn);
 
     /* Get list of all logical volumes */
     if (virStorageBackendLogicalFindLVs(conn, pool, NULL) < 0) {
index ae02aacc0ebe52e087d8eaa9e4ba5aae346bc548..fcc38bad8683fa0511a9ba80d232645d78352c7c 100644 (file)
@@ -332,7 +332,7 @@ virStorageBackendMpathRefreshPool(virConnectPtr conn,
 
     pool->def->allocation = pool->def->capacity = pool->def->available = 0;
 
-    virStorageBackendWaitForDevices(conn);
+    virFileWaitForDevices(conn);
 
     virStorageBackendGetMaps(conn, pool);
 
index a09103fd292a90d98f1534ce4cd5e9ddb307b97c..c70b1edb57f86cbe3293080894e2b34c0e9b9450 100644 (file)
@@ -494,7 +494,7 @@ virStorageBackendSCSIFindLUs(virConnectPtr conn,
 
     VIR_DEBUG(_("Discovering LUs on host %u"), scanhost);
 
-    virStorageBackendWaitForDevices(conn);
+    virFileWaitForDevices(conn);
 
     if (virAsprintf(&device_path, "/sys/bus/scsi/devices") < 0) {
         virReportOOMError(conn);
@@ -542,7 +542,7 @@ virStorageBackendSCSIGetHostNumber(virConnectPtr conn,
 
     VIR_DEBUG(_("Finding host number from '%s'"), sysfs_path);
 
-    virStorageBackendWaitForDevices(conn);
+    virFileWaitForDevices(conn);
 
     sysdir = opendir(sysfs_path);
 
index af50028c1db050b4e6713ebcd67a3cd1d85b42e5..1878e33cac6099e880d6f1dcc5ac26b3229d69a0 100644 (file)
@@ -2019,3 +2019,30 @@ cleanup:
     return ret;
 }
 #endif
+
+#ifndef PROXY
+#if defined(UDEVADM) || defined(UDEVSETTLE)
+void virFileWaitForDevices(virConnectPtr conn)
+{
+#ifdef UDEVADM
+    const char *const settleprog[] = { UDEVADM, "settle", NULL };
+#else
+    const char *const settleprog[] = { UDEVSETTLE, NULL };
+#endif
+    int exitstatus;
+
+    if (access(settleprog[0], X_OK) != 0)
+        return;
+
+    /*
+     * NOTE: we ignore errors here; this is just to make sure that any device
+     * nodes that are being created finish before we try to scan them.
+     * If this fails for any reason, we still have the backup of polling for
+     * 5 seconds for device nodes.
+     */
+    virRun(conn, settleprog, &exitstatus);
+}
+#else
+void virFileWaitForDevices(virConnectPtr conn ATTRIBUTE_UNUSED) {}
+#endif
+#endif
index 896e1b4af86bc519e206792d6350034a34dabdd5..f9715ab52bb1a3bb47e8d6ce615720874a60edfd 100644 (file)
@@ -237,4 +237,6 @@ int virRandom(int max);
 char *virFileFindMountPoint(const char *type);
 #endif
 
+void virFileWaitForDevices(virConnectPtr conn);
+
 #endif /* __VIR_UTIL_H__ */