43 #ifndef TOTEMRRP_H_DEFINED
44 #define TOTEMRRP_H_DEFINED
46 #include <sys/types.h>
47 #include <sys/socket.h>
48 #include <qb/qbloop.h>
51 #define TOTEMRRP_NOFLUSH 0
52 #define TOTEMRRP_FLUSH 1
67 qb_loop_t *poll_handle,
76 unsigned int msg_len),
78 void (*iface_change_fn) (
81 unsigned int iface_no),
83 void (*token_seqid_get) (
86 unsigned int *token_is),
88 unsigned int (*msgs_missing) (
void),
90 void (*target_set_completed) (
103 unsigned int processor_count);
108 unsigned int msg_len);
113 unsigned int msg_len);
118 unsigned int msg_len);
129 unsigned int iface_no);
138 unsigned int *iface_count);
142 const char *cipher_type,
143 const char *hash_type);
147 unsigned int iface_no);
165 const struct srp_addr *member_list,
size_t member_list_entries,
166 const struct srp_addr *left_list,
size_t left_list_entries,
167 const struct srp_addr *joined_list,
size_t joined_list_entries,
void totemrrp_membership_changed(void *rrp_context, enum totem_configuration_type configuration_type, const struct srp_addr *member_list, size_t member_list_entries, const struct srp_addr *left_list, size_t left_list_entries, const struct srp_addr *joined_list, size_t joined_list_entries, const struct memb_ring_id *ring_id)
int totemrrp_mcast_noflush_send(void *rrp_context, const void *msg, unsigned int msg_len)
int totemrrp_crypto_set(void *rrp_context, const char *cipher_type, const char *hash_type)
int totemrrp_ifaces_get(void *rrp_context, char ***status, unsigned int *iface_count)
int totemrrp_recv_flush(void *rrp_context)
int totemrrp_member_add(void *net_context, const struct totem_ip_address *member, int iface_no)
int totemrrp_member_remove(void *net_context, const struct totem_ip_address *member, int iface_no)
The totem_ip_address struct.
void * totemrrp_buffer_alloc(void *rrp_context)
totem_configuration_type
The totem_configuration_type enum.
int totemrrp_mcast_flush_send(void *rrp_context, const void *msg, unsigned int msg_len)
int totemrrp_iface_check(void *rrp_context)
int totemrrp_token_send(void *rrp_context, const void *msg, unsigned int msg_len)
int totemrrp_initialize(qb_loop_t *poll_handle, void **rrp_context, struct totem_config *totem_config, totemsrp_stats_t *stats, void *context, void(*deliver_fn)(void *context, const void *msg, unsigned int msg_len), void(*iface_change_fn)(void *context, const struct totem_ip_address *iface_addr, unsigned int iface_no), void(*token_seqid_get)(const void *msg, unsigned int *seqid, unsigned int *token_is), unsigned int(*msgs_missing)(void), void(*target_set_completed)(void *context))
Create an instance.
int totemrrp_send_flush(void *rrp_context)
int totemrrp_processor_count_set(void *rrp_context, unsigned int processor_count)
int totemrrp_finalize(void *rrp_context)
int totemrrp_token_target_set(void *rrp_context, struct totem_ip_address *target, unsigned int iface_no)
void totemrrp_buffer_release(void *rrp_context, void *ptr)
int totemrrp_mcast_recv_empty(void *rrp_context)
struct memb_ring_id ring_id
struct totem_ip_address addr[INTERFACE_MAX]
int totemrrp_ring_reenable(void *rrp_context, unsigned int iface_no)