On 02/04/2013 09:23 AM, Hu Tao wrote:
---
src/driver.h | 4 ---
src/libvirt.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++++-
src/libvirt_internal.h | 2 --
3 files changed, 69 insertions(+), 7 deletions(-)
diff --git a/src/driver.h b/src/driver.h
index 02ddd83..dab7495 100644
--- a/src/driver.h
+++ b/src/driver.h
@@ -1512,7 +1512,6 @@ struct _virStorageDriver {
virDrvStoragePoolIsPersistent poolIsPersistent;
};
-# ifdef WITH_LIBVIRTD
typedef int (*virDrvStateInitialize) (bool privileged,
virStateInhibitCallback callback,
@@ -1531,7 +1530,6 @@ struct _virStateDriver {
virDrvStateReload reload;
virDrvStateStop stop;
};
-# endif
Even though this is a solution and it makes the calls to virState* never
fail during compilation, I see the other approach being used as well in
some files (xen _driver.c for example):
#ifdef WITH_LIBVIRTD
if (virRegisterStateDriver(&state_driver) == -1) return -1;
#endif
I like this a bit more, but that's just a subjective opinion. However,
if you go with your approach, I'd rather see it cleaning up those paths
as well.
typedef struct _virDeviceMonitor virDeviceMonitor;
@@ -1768,9 +1766,7 @@ int virRegisterStorageDriver(virStorageDriverPtr);
int virRegisterDeviceMonitor(virDeviceMonitorPtr);
int virRegisterSecretDriver(virSecretDriverPtr);
int virRegisterNWFilterDriver(virNWFilterDriverPtr);
-# ifdef WITH_LIBVIRTD
int virRegisterStateDriver(virStateDriverPtr);
-# endif
void virDriverModuleInitialize(const char *defmoddir);
void *virDriverLoadModule(const char *name);
diff --git a/src/libvirt.c b/src/libvirt.c
index f81a3de..38e4f6e 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -885,8 +885,76 @@ int virStateStop(void) {
return ret;
}
-#endif
+#else /* WITH_LIBVIRTD */
+
+/**
+ * virRegisterStateDriver:
+ * @driver: pointer to a driver block
+ *
+ * Register a virtualization driver
+ *
+ * Returns the driver priority or -1 in case of error.
+ */
+int
+virRegisterStateDriver(virStateDriverPtr driver ATTRIBUTE_UNUSED)
+{
+ return 0;
+}
+
The comment is false in this case, so I'd keep the comments to a minimum
and just mention that these are just dummy functions.
[...]
Martin