summaryrefslogtreecommitdiffstats
path: root/daemons/clvmd/clvmd-comms.h
diff options
context:
space:
mode:
authorPatrick Caulfield <pcaulfie@redhat.com>2005-01-13 13:24:02 +0000
committerPatrick Caulfield <pcaulfie@redhat.com>2005-01-13 13:24:02 +0000
commit5c7fc7c4f7b0d489512ccf11f3301ca50da5272a (patch)
treeeb3960b32901fceb994d73cf6683e77e5c6ca8bd /daemons/clvmd/clvmd-comms.h
parente9c761b86958a37361f76e2c16285720744130cb (diff)
downloadlvm2-5c7fc7c4f7b0d489512ccf11f3301ca50da5272a.tar.gz
lvm2-5c7fc7c4f7b0d489512ccf11f3301ca50da5272a.tar.xz
lvm2-5c7fc7c4f7b0d489512ccf11f3301ca50da5272a.zip
You can now build clvmd with cman & gulm support in the same binary.
./configure --with-clvmd wil do this by default. Or you can choose which you want with ./configure --with-clvmd=gulm or ./configure --with-clvmd=cman When clvmd with both included is run, it will automatically detect the cluster manager in use.
Diffstat (limited to 'daemons/clvmd/clvmd-comms.h')
-rw-r--r--daemons/clvmd/clvmd-comms.h52
1 files changed, 33 insertions, 19 deletions
diff --git a/daemons/clvmd/clvmd-comms.h b/daemons/clvmd/clvmd-comms.h
index 54017b33..54107e6e 100644
--- a/daemons/clvmd/clvmd-comms.h
+++ b/daemons/clvmd/clvmd-comms.h
@@ -22,33 +22,47 @@
struct local_client;
-extern int cluster_send_message(void *buf, int msglen, char *csid,
+struct cluster_ops {
+ void (*cluster_init_completed) (void);
+
+ int (*cluster_send_message) (void *buf, int msglen, char *csid,
const char *errtext);
-extern int name_from_csid(char *csid, char *name);
-extern int csid_from_name(char *csid, char *name);
-extern int get_num_nodes(void);
-extern int cluster_fd_callback(struct local_client *fd, char *buf, int len,
+ int (*name_from_csid) (char *csid, char *name);
+ int (*csid_from_name) (char *csid, char *name);
+ int (*get_num_nodes) (void);
+ int (*cluster_fd_callback) (struct local_client *fd, char *buf, int len,
char *csid, struct local_client **new_client);
-extern int init_cluster(void);
-extern int get_main_cluster_fd(void); /* gets accept FD or cman cluster socket */
-extern int cluster_do_node_callback(struct local_client *client,
+ int (*get_main_cluster_fd) (void); /* gets accept FD or cman cluster socket */
+ int (*cluster_do_node_callback) (struct local_client *client,
void (*callback) (struct local_client *,
char *csid, int node_up));
-extern int is_quorate(void);
+ int (*is_quorate) (void);
+
+ void (*get_our_csid) (char *csid);
+ void (*add_up_node) (char *csid);
+ void (*cluster_closedown) (void);
-extern void get_our_csid(char *csid);
-extern void add_up_node(char *csid);
-extern void cluster_closedown(void);
+ int (*sync_lock) (const char *resource, int mode, int flags, int *lockid);
+ int (*sync_unlock) (const char *resource, int lockid);
-extern int sync_lock(const char *resource, int mode, int flags, int *lockid);
-extern int sync_unlock(const char *resource, int lockid);
+};
#ifdef USE_GULM
-#include "tcp-comms.h"
-#else
-/* cman */
-#include "cnxman-socket.h"
-#define MAX_CSID_LEN 4
+# include "tcp-comms.h"
+struct cluster_ops *init_gulm_cluster(void);
+#define MAX_CSID_LEN GULM_MAX_CSID_LEN
+#define MAX_CLUSTER_MEMBER_NAME_LEN GULM_MAX_CLUSTER_MEMBER_NAME_LEN
+#endif
+
+#ifdef USE_CMAN
+# include "cnxman-socket.h"
+# define CMAN_MAX_CSID_LEN 4
+# ifndef MAX_CSID_LEN
+# define MAX_CSID_LEN CMAN_MAX_CSID_LEN
+# endif
+# undef MAX_CLUSTER_MEMBER_NAME_LEN
+# define MAX_CLUSTER_MEMBER_NAME_LEN CMAN_MAX_CLUSTER_MEMBER_NAME_LEN
+struct cluster_ops *init_cman_cluster(void);
#endif