34 #ifndef COROAPI_H_DEFINED
35 #define COROAPI_H_DEFINED
44 #include <qb/qbloop.h>
70 #ifndef TIMER_HANDLE_T
75 #define TIMER_HANDLE_T 1
86 #define TOTEMIP_ADDRLEN (sizeof(struct in6_addr))
88 #define INTERFACE_MAX 2
90 #ifndef MESSAGE_QUEUE_MAX
91 #ifdef HAVE_SMALL_MEMORY_FOOTPRINT
92 #define PROCESSOR_COUNT_MAX 16
93 #define MESSAGE_SIZE_MAX 1024*64
94 #define MESSAGE_QUEUE_MAX 512
96 #define PROCESSOR_COUNT_MAX 384
97 #define MESSAGE_SIZE_MAX 1024*1024
98 #define MESSAGE_QUEUE_MAX ((4 * MESSAGE_SIZE_MAX) / totem_config->net_mtu)
102 #define TOTEM_AGREED 0
105 #define MILLI_2_NANO_SECONDS 1000000ULL
107 #if !defined(TOTEM_IP_ADDRESS)
118 #if !defined(MEMB_RING_ID)
128 #if !defined(TOTEM_CONFIGURATION_TYPE)
138 #if !defined(TOTEM_CALLBACK_TOKEN_TYPE)
155 #define corosync_lib_flow_control cs_lib_flow_control
156 #define COROSYNC_LIB_FLOW_CONTROL_REQUIRED CS_LIB_FLOW_CONTROL_REQUIRED
157 #define COROSYNC_LIB_FLOW_CONTROL_NOT_REQUIRED CS_LIB_FLOW_CONTROL_NOT_REQUIRED
167 #if !defined (COROSYNC_FLOW_CONTROL_STATE)
175 #define corosync_flow_control_state cs_flow_control_state
176 #define CS_FLOW_CONTROL_STATE_DISABLED CS_FLOW_CONTROL_STATE_DISABLED
177 #define CS_FLOW_CONTROL_STATE_ENABLED CS_FLOW_CONTROL_STATE_ENABLED
193 #define corosync_fatal_error_t cs_fatal_error_t;
195 #ifndef QUORUM_H_DEFINED
205 int (*quorate) (void);
214 const unsigned int *view_list,
215 size_t view_list_entries,
216 int primary_designated,
230 unsigned long long nanoseconds_in_future,
232 void (*timer_nf) (
void *data),
233 corosync_timer_handle_t *handle);
236 unsigned long long nanoseconds_from_epoch,
238 void (*timer_fn) (
void *data),
239 corosync_timer_handle_t *handle);
242 corosync_timer_handle_t timer_handle);
247 corosync_timer_handle_t timer_handle);
256 void *(*ipc_private_data_get) (
void *conn);
261 const struct iovec *iov,
unsigned int iov_len);
266 const struct iovec *iov,
unsigned int iov_len);
282 unsigned int iov_len,
unsigned int guarantee);
287 unsigned int interfaces_size,
289 unsigned int *iface_count);
291 const char *(*totem_ifaces_print) (
unsigned int nodeid);
315 unsigned int msg_len,
316 int endian_conversion_required),
320 const unsigned int *member_list,
321 size_t member_list_entries,
322 const unsigned int *left_list,
323 size_t left_list_entries,
324 const unsigned int *joined_list,
325 size_t joined_list_entries,
342 void *totempg_groups_instance,
343 const struct iovec *iovec,
344 unsigned int iov_len,
348 void *totempg_groups_instance,
349 const struct iovec *iovec,
350 unsigned int iov_len);
360 const struct iovec *iovec,
361 unsigned int iov_len);
367 const struct iovec *iovec,
368 unsigned int iov_len);
375 int (schedwrk_fn) (
const void *),
376 const void *context);
381 const char *service_name);
400 const char *iface_name,
412 const char *service_name,
413 unsigned int service_ver);
417 const char *service_name,
418 unsigned int service_ver);
425 #define corosync_fatal_error(err) api->fatal_error ((err), __FILE__, __LINE__)
434 qb_loop_t *(*poll_handle_get) (void);
436 void *(*totem_get_stats)(void);
440 int (schedwrk_fn) (
const void *),
441 const void *context);
448 int (*dispatch_fn) (
int fd,
459 #define SERVICE_ID_MAKE(a,b) ( ((a)<<16) | (b) )
461 #define SERVICE_HANDLER_MAXIMUM_COUNT 64
463 #define SERVICES_COUNT_MAX 64
512 const unsigned int *member_list,
size_t member_list_entries,
513 const unsigned int *left_list,
size_t left_list_entries,
514 const unsigned int *joined_list,
size_t joined_list_entries,
517 const unsigned int *trans_list,
518 size_t trans_list_entries,
519 const unsigned int *member_list,
520 size_t member_list_entries,