34 #ifndef COROAPI_H_DEFINED
35 #define COROAPI_H_DEFINED
44 #include <qb/qbloop.h>
63 #ifndef TIMER_HANDLE_T
65 #define TIMER_HANDLE_T 1
73 #define TOTEMIP_ADDRLEN (sizeof(struct in6_addr))
75 #define INTERFACE_MAX 2
77 #ifndef MESSAGE_QUEUE_MAX
78 #ifdef HAVE_SMALL_MEMORY_FOOTPRINT
79 #define PROCESSOR_COUNT_MAX 16
80 #define MESSAGE_SIZE_MAX 1024*64
81 #define MESSAGE_QUEUE_MAX 512
83 #define PROCESSOR_COUNT_MAX 384
84 #define MESSAGE_SIZE_MAX 1024*1024
85 #define MESSAGE_QUEUE_MAX ((4 * MESSAGE_SIZE_MAX) / totem_config->net_mtu)
89 #define TOTEM_AGREED 0
92 #define MILLI_2_NANO_SECONDS 1000000ULL
94 #if !defined(TOTEM_IP_ADDRESS)
102 #if !defined(MEMB_RING_ID)
109 #if !defined(TOTEM_CONFIGURATION_TYPE)
116 #if !defined(TOTEM_CALLBACK_TOKEN_TYPE)
127 #define corosync_lib_flow_control cs_lib_flow_control
128 #define COROSYNC_LIB_FLOW_CONTROL_REQUIRED CS_LIB_FLOW_CONTROL_REQUIRED
129 #define COROSYNC_LIB_FLOW_CONTROL_NOT_REQUIRED CS_LIB_FLOW_CONTROL_NOT_REQUIRED
136 #if !defined (COROSYNC_FLOW_CONTROL_STATE)
141 #define corosync_flow_control_state cs_flow_control_state
142 #define CS_FLOW_CONTROL_STATE_DISABLED CS_FLOW_CONTROL_STATE_DISABLED
143 #define CS_FLOW_CONTROL_STATE_ENABLED CS_FLOW_CONTROL_STATE_ENABLED
157 #define corosync_fatal_error_t cs_fatal_error_t;
159 #ifndef QUORUM_H_DEFINED
163 int (*quorate) (void);
169 const unsigned int *view_list,
170 size_t view_list_entries,
171 int primary_designated,
182 unsigned long long nanoseconds_in_future,
184 void (*timer_nf) (
void *data),
185 corosync_timer_handle_t *handle);
188 unsigned long long nanoseconds_from_epoch,
190 void (*timer_fn) (
void *data),
191 corosync_timer_handle_t *handle);
194 corosync_timer_handle_t timer_handle);
199 corosync_timer_handle_t timer_handle);
208 void *(*ipc_private_data_get) (
void *conn);
213 const struct iovec *iov,
unsigned int iov_len);
218 const struct iovec *iov,
unsigned int iov_len);
234 unsigned int iov_len,
unsigned int guarantee);
239 unsigned int interfaces_size,
241 unsigned int *iface_count);
243 const char *(*totem_ifaces_print) (
unsigned int nodeid);
267 unsigned int msg_len,
268 int endian_conversion_required),
272 const unsigned int *member_list,
273 size_t member_list_entries,
274 const unsigned int *left_list,
275 size_t left_list_entries,
276 const unsigned int *joined_list,
277 size_t joined_list_entries,
294 void *totempg_groups_instance,
295 const struct iovec *iovec,
296 unsigned int iov_len,
300 void *totempg_groups_instance,
301 const struct iovec *iovec,
302 unsigned int iov_len);
312 const struct iovec *iovec,
313 unsigned int iov_len);
319 const struct iovec *iovec,
320 unsigned int iov_len);
327 int (schedwrk_fn) (
const void *),
328 const void *context);
333 const char *service_name);
352 const char *iface_name,
364 const char *service_name,
365 unsigned int service_ver);
369 const char *service_name,
370 unsigned int service_ver);
377 #define corosync_fatal_error(err) api->fatal_error ((err), __FILE__, __LINE__)
386 qb_loop_t *(*poll_handle_get) (void);
388 void *(*totem_get_stats)(void);
392 int (schedwrk_fn) (
const void *),
393 const void *context);
400 int (*dispatch_fn) (
int fd,
411 #define SERVICE_ID_MAKE(a,b) ( ((a)<<16) | (b) )
413 #define SERVICE_HANDLER_MAXIMUM_COUNT 64
415 #define SERVICES_COUNT_MAX 64
452 const unsigned int *member_list,
size_t member_list_entries,
453 const unsigned int *left_list,
size_t left_list_entries,
454 const unsigned int *joined_list,
size_t joined_list_entries,
457 const unsigned int *trans_list,
458 size_t trans_list_entries,
459 const unsigned int *member_list,
460 size_t member_list_entries,