diff options
author | Patrick Caulfield <pcaulfie@redhat.com> | 2005-01-13 13:24:02 +0000 |
---|---|---|
committer | Patrick Caulfield <pcaulfie@redhat.com> | 2005-01-13 13:24:02 +0000 |
commit | 5c7fc7c4f7b0d489512ccf11f3301ca50da5272a (patch) | |
tree | eb3960b32901fceb994d73cf6683e77e5c6ca8bd /daemons/clvmd/clvmd-comms.h | |
parent | e9c761b86958a37361f76e2c16285720744130cb (diff) | |
download | lvm2-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.h | 52 |
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 |