35#ifndef IPC_CPG_H_DEFINED
36#define IPC_CPG_H_DEFINED
38#include <netinet/in.h>
39#include <qb/qbipc_common.h>
43#define CPG_ZC_PATH_LEN 128
123 swab_mar_uint32_t (&to_swab->length);
131static inline void marshall_from_mar_cpg_name_t (
135 dest->
length = src->length;
144static inline void marshall_to_mar_cpg_name_t (
148 dest->length = src->
length;
166static inline void marshall_from_mar_cpg_address_t (
170 dest->
nodeid = src->nodeid;
171 dest->
pid = src->pid;
172 dest->
reason = src->reason;
180static inline void marshall_to_mar_cpg_address_t (
184 dest->nodeid = src->
nodeid;
185 dest->pid = src->
pid;
186 dest->reason = src->
reason;
195static inline int mar_name_compare (
199 return (g1->length == g2->length?
200 memcmp (g1->value, g2->value, g1->length):
201 g1->length - g2->length);
218static inline void marshall_from_mar_cpg_iteration_description_t(
224 marshall_from_mar_cpg_name_t (&dest->
group, &src->
group);
240static inline void marshall_from_mar_cpg_ring_id_t (
244 dest->
nodeid = src->nodeid;
245 dest->
seq = src->seq;
#define PROCESSOR_COUNT_MAX
#define CPG_MAX_NAME_LENGTH
lib_cpg_partial_types
The lib_cpg_partial_types enum.
@ LIBCPG_PARTIAL_CONTINUED
req_cpg_types
The req_cpg_types enum.
@ MESSAGE_REQ_CPG_ZC_EXECUTE
@ MESSAGE_REQ_CPG_LOCAL_GET
@ MESSAGE_REQ_CPG_ITERATIONFINALIZE
@ MESSAGE_REQ_CPG_PARTIAL_MCAST
@ MESSAGE_REQ_CPG_ZC_ALLOC
@ MESSAGE_REQ_CPG_ZC_FREE
@ MESSAGE_REQ_CPG_ITERATIONINITIALIZE
@ MESSAGE_REQ_CPG_FINALIZE
@ MESSAGE_REQ_CPG_MEMBERSHIP
@ MESSAGE_REQ_CPG_ITERATIONNEXT
res_cpg_types
The res_cpg_types enum.
@ MESSAGE_RES_CPG_ITERATIONFINALIZE
@ MESSAGE_RES_CPG_MEMBERSHIP
@ MESSAGE_RES_CPG_ZC_ALLOC
@ MESSAGE_RES_CPG_PARTIAL_DELIVER_CALLBACK
@ MESSAGE_RES_CPG_ZC_EXECUTE
@ MESSAGE_RES_CPG_FINALIZE
@ MESSAGE_RES_CPG_DELIVER_CALLBACK
@ MESSAGE_RES_CPG_TOTEM_CONFCHG_CALLBACK
@ MESSAGE_RES_CPG_ZC_FREE
@ MESSAGE_RES_CPG_ITERATIONNEXT
@ MESSAGE_RES_CPG_CONFCHG_CALLBACK
@ MESSAGE_RES_CPG_FLOWCONTROL_CALLBACK
@ MESSAGE_RES_CPG_PARTIAL_SEND
@ MESSAGE_RES_CPG_ITERATIONINITIALIZE
@ MESSAGE_RES_CPG_LOCAL_GET
@ MESSAGE_RES_CPG_FLOW_CONTROL_STATE_SET
lib_cpg_confchg_reason
The lib_cpg_confchg_reason enum.
@ CONFCHG_CPG_REASON_LEAVE
@ CONFCHG_CPG_REASON_PROCDOWN
@ CONFCHG_CPG_REASON_NODEUP
@ CONFCHG_CPG_REASON_JOIN
@ CONFCHG_CPG_REASON_NODEDOWN
The cpg_iteration_description_t struct.
char value[CPG_MAX_NAME_LENGTH]
mar_uint32_t nodeid __attribute__((aligned(8)))
mar_uint32_t pid __attribute__((aligned(8)))
mar_uint32_t reason __attribute__((aligned(8)))
mar_cpg_iteration_description_t struct
char value[CPG_MAX_NAME_LENGTH] __attribute__((aligned(8)))
uint32_t length __attribute__((aligned(8)))
mar_uint64_t seq __attribute__((aligned(8)))
mar_uint32_t nodeid __attribute__((aligned(8)))
mar_req_coroipcc_zc_alloc_t struct
size_t map_size __attribute__((aligned(8)))
char path_to_file[CPG_ZC_PATH_LEN] __attribute__((aligned(8)))
mar_req_coroipcc_zc_execute_t struct
uint64_t server_address __attribute__((aligned(8)))
mar_req_coroipcc_zc_free_t struct
uint64_t server_address __attribute__((aligned(8)))
size_t map_size __attribute__((aligned(8)))
The req_lib_cpg_finalize struct.
struct qb_ipc_request_header header __attribute__((aligned(8)))
The req_lib_cpg_iterationfinalize struct.
hdb_handle_t iteration_handle __attribute__((aligned(8)))
struct qb_ipc_request_header header __attribute__((aligned(8)))
The req_lib_cpg_iterationinitialize struct.
mar_cpg_name_t group_name __attribute__((aligned(8)))
mar_uint32_t iteration_type __attribute__((aligned(8)))
struct qb_ipc_request_header header __attribute__((aligned(8)))
The req_lib_cpg_iterationnext struct.
struct qb_ipc_request_header header __attribute__((aligned(8)))
hdb_handle_t iteration_handle __attribute__((aligned(8)))
The req_lib_cpg_join struct.
mar_cpg_name_t group_name __attribute__((aligned(8)))
mar_uint32_t pid __attribute__((aligned(8)))
mar_uint32_t flags __attribute__((aligned(8)))
struct qb_ipc_request_header header __attribute__((aligned(8)))
The req_lib_cpg_leave struct.
mar_uint32_t pid __attribute__((aligned(8)))
mar_cpg_name_t group_name __attribute__((aligned(8)))
struct qb_ipc_request_header header __attribute__((aligned(8)))
The req_lib_cpg_local_get struct.
struct qb_ipc_request_header header __attribute__((aligned(8)))
The req_lib_cpg_mcast struct.
mar_uint32_t guarantee __attribute__((aligned(8)))
struct qb_ipc_response_header header __attribute__((aligned(8)))
mar_uint32_t msglen __attribute__((aligned(8)))
mar_uint8_t message[] __attribute__((aligned(8)))
The req_lib_cpg_membership_get struct.
struct qb_ipc_request_header header __attribute__((aligned(8)))
mar_cpg_name_t group_name __attribute__((aligned(8)))
The req_lib_cpg_partial_mcast struct.
mar_uint32_t msglen __attribute__((aligned(8)))
mar_uint32_t guarantee __attribute__((aligned(8)))
struct qb_ipc_response_header header __attribute__((aligned(8)))
mar_uint8_t message[] __attribute__((aligned(8)))
mar_uint32_t type __attribute__((aligned(8)))
mar_uint32_t fraglen __attribute__((aligned(8)))
The res_lib_cpg_confchg_callback struct.
struct qb_ipc_response_header header __attribute__((aligned(8)))
mar_cpg_address_t member_list[]
mar_cpg_name_t group_name __attribute__((aligned(8)))
mar_uint32_t member_list_entries __attribute__((aligned(8)))
mar_uint32_t left_list_entries __attribute__((aligned(8)))
mar_uint32_t joined_list_entries __attribute__((aligned(8)))
Message from another node.
struct qb_ipc_response_header header __attribute__((aligned(8)))
mar_uint32_t nodeid __attribute__((aligned(8)))
mar_cpg_name_t group_name __attribute__((aligned(8)))
mar_uint32_t msglen __attribute__((aligned(8)))
mar_uint32_t pid __attribute__((aligned(8)))
mar_uint8_t message[] __attribute__((aligned(8)))
The res_lib_cpg_finalize struct.
struct qb_ipc_response_header header __attribute__((aligned(8)))
The res_lib_cpg_flowcontrol_callback struct.
mar_uint32_t flow_control_state __attribute__((aligned(8)))
struct qb_ipc_response_header header __attribute__((aligned(8)))
The res_lib_cpg_iterationfinalize struct.
struct qb_ipc_response_header header __attribute__((aligned(8)))
The res_lib_cpg_iterationinitialize struct.
hdb_handle_t iteration_handle __attribute__((aligned(8)))
struct qb_ipc_response_header header __attribute__((aligned(8)))
The res_lib_cpg_iterationnext struct.
struct qb_ipc_response_header header __attribute__((aligned(8)))
mar_cpg_iteration_description_t description __attribute__((aligned(8)))
The res_lib_cpg_join struct.
struct qb_ipc_response_header header __attribute__((aligned(8)))
The res_lib_cpg_leave struct.
struct qb_ipc_response_header header __attribute__((aligned(8)))
The res_lib_cpg_local_get struct.
mar_uint32_t local_nodeid __attribute__((aligned(8)))
struct qb_ipc_response_header header __attribute__((aligned(8)))
The res_lib_cpg_mcast struct.
struct qb_ipc_response_header header __attribute__((aligned(8)))
The res_lib_cpg_membership_get struct.
struct qb_ipc_response_header header __attribute__((aligned(8)))
mar_uint32_t member_count __attribute__((aligned(8)))
mar_cpg_address_t member_list[PROCESSOR_COUNT_MAX]
The res_lib_cpg_partial_deliver_callback struct.
mar_uint32_t pid __attribute__((aligned(8)))
mar_uint32_t nodeid __attribute__((aligned(8)))
struct qb_ipc_response_header header __attribute__((aligned(8)))
mar_uint32_t fraglen __attribute__((aligned(8)))
mar_uint32_t type __attribute__((aligned(8)))
mar_cpg_name_t group_name __attribute__((aligned(8)))
mar_uint32_t msglen __attribute__((aligned(8)))
mar_uint8_t message[] __attribute__((aligned(8)))
The res_lib_cpg_partial_send struct.
struct qb_ipc_response_header header __attribute__((aligned(8)))
The res_lib_cpg_totem_confchg_callback struct.
mar_uint32_t member_list[]
mar_cpg_ring_id_t ring_id __attribute__((aligned(8)))
mar_uint32_t member_list_entries __attribute__((aligned(8)))
struct qb_ipc_response_header header __attribute__((aligned(8)))
struct memb_ring_id ring_id
struct totem_message_header header