corosync  3.1.0
ipc_cpg.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2006-2015 Red Hat, Inc.
3  *
4  * All rights reserved.
5  *
6  * Author: Christine Caulfield (ccaulfie@redhat.com)
7  * Author: Jan Friesse (jfriesse@redhat.com)
8  *
9  * This software licensed under BSD license, the text of which follows:
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions are met:
13  *
14  * - Redistributions of source code must retain the above copyright notice,
15  * this list of conditions and the following disclaimer.
16  * - Redistributions in binary form must reproduce the above copyright notice,
17  * this list of conditions and the following disclaimer in the documentation
18  * and/or other materials provided with the distribution.
19  * - Neither the name of the MontaVista Software, Inc. nor the names of its
20  * contributors may be used to endorse or promote products derived from this
21  * software without specific prior written permission.
22  *
23  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
24  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
27  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
33  * THE POSSIBILITY OF SUCH DAMAGE.
34  */
35 #ifndef IPC_CPG_H_DEFINED
36 #define IPC_CPG_H_DEFINED
37 
38 #include <netinet/in.h>
39 #include <qb/qbipc_common.h>
40 #include <corosync/corotypes.h>
41 #include <corosync/mar_gen.h>
42 
43 #define CPG_ZC_PATH_LEN 128
44 
62 };
63 
87 };
88 
98 };
99 
107 };
108 
112 typedef struct {
113  uint32_t length __attribute__((aligned(8)));
116 
121 static inline void swab_mar_cpg_name_t (mar_cpg_name_t *to_swab)
122 {
123  swab_mar_uint32_t (&to_swab->length);
124 }
125 
131 static inline void marshall_from_mar_cpg_name_t (
132  struct cpg_name *dest,
133  const mar_cpg_name_t *src)
134 {
135  dest->length = src->length;
136  memcpy (&dest->value, &src->value, CPG_MAX_NAME_LENGTH);
137 }
138 
144 static inline void marshall_to_mar_cpg_name_t (
145  mar_cpg_name_t *dest,
146  const struct cpg_name *src)
147 {
148  dest->length = src->length;
149  memcpy (&dest->value, &src->value, CPG_MAX_NAME_LENGTH);
150 }
151 
155 typedef struct {
157  mar_uint32_t pid __attribute__((aligned(8)));
158  mar_uint32_t reason __attribute__((aligned(8)));
160 
166 static inline void marshall_from_mar_cpg_address_t (
167  struct cpg_address *dest,
168  const mar_cpg_address_t *src)
169 {
170  dest->nodeid = src->nodeid;
171  dest->pid = src->pid;
172  dest->reason = src->reason;
173 }
174 
180 static inline void marshall_to_mar_cpg_address_t (
181  mar_cpg_address_t *dest,
182  const struct cpg_address *src)
183 {
184  dest->nodeid = src->nodeid;
185  dest->pid = src->pid;
186  dest->reason = src->reason;
187 }
188 
195 static inline int mar_name_compare (
196  const mar_cpg_name_t *g1,
197  const mar_cpg_name_t *g2)
198 {
199  return (g1->length == g2->length?
200  memcmp (g1->value, g2->value, g1->length):
201  g1->length - g2->length);
202 }
203 
207 typedef struct {
212 
218 static inline void marshall_from_mar_cpg_iteration_description_t(
219  struct cpg_iteration_description_t *dest,
221 {
222  dest->nodeid = src->nodeid;
223  dest->pid = src->pid;
224  marshall_from_mar_cpg_name_t (&dest->group, &src->group);
225 };
226 
230 typedef struct {
234 
240 static inline void marshall_from_mar_cpg_ring_id_t (
241  struct cpg_ring_id *dest,
242  const mar_cpg_ring_id_t *src)
243 {
244  dest->nodeid = src->nodeid;
245  dest->seq = src->seq;
246 }
247 
252  struct qb_ipc_request_header header __attribute__((aligned(8)));
253  mar_cpg_name_t group_name __attribute__((aligned(8)));
254  mar_uint32_t pid __attribute__((aligned(8)));
256 };
257 
262  struct qb_ipc_response_header header __attribute__((aligned(8)));
263 };
264 
269  struct qb_ipc_request_header header __attribute__((aligned(8)));
270 };
271 
276  struct qb_ipc_response_header header __attribute__((aligned(8)));
277 };
278 
283  struct qb_ipc_request_header header __attribute__((aligned(8)));
284 };
285 
290  struct qb_ipc_response_header header __attribute__((aligned(8)));
291  mar_uint32_t local_nodeid __attribute__((aligned(8)));
292 };
293 
298  struct qb_ipc_response_header header __attribute__((aligned(8)));
299 };
300 
305  struct qb_ipc_response_header header __attribute__((aligned(8)));
307  mar_uint32_t msglen __attribute__((aligned(8)));
308  mar_uint8_t message[] __attribute__((aligned(8)));
309 };
310 
315  struct qb_ipc_response_header header __attribute__((aligned(8)));
317  mar_uint32_t msglen __attribute__((aligned(8)));
318  mar_uint32_t fraglen __attribute__((aligned(8)));
320  mar_uint8_t message[] __attribute__((aligned(8)));
321 };
322 
327  struct qb_ipc_response_header header __attribute__((aligned(8)));
328 };
329 
334  struct qb_ipc_response_header header __attribute__((aligned(8)));
335  mar_cpg_name_t group_name __attribute__((aligned(8)));
336  mar_uint32_t msglen __attribute__((aligned(8)));
338  mar_uint32_t pid __attribute__((aligned(8)));
339  mar_uint8_t message[] __attribute__((aligned(8)));
340 };
341 
346  struct qb_ipc_response_header header __attribute__((aligned(8)));
347  mar_cpg_name_t group_name __attribute__((aligned(8)));
348  mar_uint32_t msglen __attribute__((aligned(8)));
349  mar_uint32_t fraglen __attribute__((aligned(8)));
351  mar_uint32_t pid __attribute__((aligned(8)));
353  mar_uint8_t message[] __attribute__((aligned(8)));
354 };
355 
360  struct qb_ipc_response_header header __attribute__((aligned(8)));
361  mar_uint32_t flow_control_state __attribute__((aligned(8)));
362 };
363 
368  struct qb_ipc_request_header header __attribute__((aligned(8)));
369  mar_cpg_name_t group_name __attribute__((aligned(8)));
370 };
371 
376  struct qb_ipc_response_header header __attribute__((aligned(8)));
377  mar_uint32_t member_count __attribute__((aligned(8)));
379 };
380 
385  struct qb_ipc_response_header header __attribute__((aligned(8)));
386  mar_cpg_name_t group_name __attribute__((aligned(8)));
387  mar_uint32_t member_list_entries __attribute__((aligned(8)));
388  mar_uint32_t joined_list_entries __attribute__((aligned(8)));
389  mar_uint32_t left_list_entries __attribute__((aligned(8)));
391 // struct cpg_address left_list[];
392 // struct cpg_address joined_list[];
393 };
394 
399  struct qb_ipc_response_header header __attribute__((aligned(8)));
401  mar_uint32_t member_list_entries __attribute__((aligned(8)));
403 };
404 
409  struct qb_ipc_request_header header __attribute__((aligned(8)));
410  mar_cpg_name_t group_name __attribute__((aligned(8)));
411  mar_uint32_t pid __attribute__((aligned(8)));
412 };
413 
418  struct qb_ipc_response_header header __attribute__((aligned(8)));
419 };
420 
425  struct qb_ipc_request_header header __attribute__((aligned(8)));
426  mar_cpg_name_t group_name __attribute__((aligned(8)));
427  mar_uint32_t iteration_type __attribute__((aligned(8)));
428 };
429 
434  struct qb_ipc_response_header header __attribute__((aligned(8)));
435  hdb_handle_t iteration_handle __attribute__((aligned(8)));
436 };
437 
442  struct qb_ipc_request_header header __attribute__((aligned(8)));
443  hdb_handle_t iteration_handle __attribute__((aligned(8)));
444 };
445 
450  struct qb_ipc_response_header header __attribute__((aligned(8)));
452 };
453 
458  struct qb_ipc_request_header header __attribute__((aligned(8)));
459  hdb_handle_t iteration_handle __attribute__((aligned(8)));
460 };
461 
466  struct qb_ipc_response_header header __attribute__((aligned(8)));
467 };
468 
472 typedef struct {
473  struct qb_ipc_request_header header __attribute__((aligned(8)));
474  size_t map_size __attribute__((aligned(8)));
475  char path_to_file[CPG_ZC_PATH_LEN] __attribute__((aligned(8)));
477 
481 typedef struct {
482  struct qb_ipc_request_header header __attribute__((aligned(8)));
483  size_t map_size __attribute__((aligned(8)));
484  uint64_t server_address __attribute__((aligned(8)));
486 
490 typedef struct {
491  struct qb_ipc_request_header header __attribute__((aligned(8)));
492  uint64_t server_address __attribute__((aligned(8)));
494 
499  int map_size;
500  uint64_t server_address;
501 };
502 #endif /* IPC_CPG_H_DEFINED */
res_lib_cpg_confchg_callback::__attribute__
mar_uint32_t left_list_entries __attribute__((aligned(8)))
req_lib_cpg_leave
The req_lib_cpg_leave struct.
Definition: ipc_cpg.h:408
mar_cpg_iteration_description_t::pid
mar_uint32_t pid
Definition: ipc_cpg.h:210
mar_cpg_name_t
mar_cpg_name_t struct
Definition: ipc_cpg.h:112
cpg_ring_id::seq
uint64_t seq
Definition: cpg.h:141
CONFCHG_CPG_REASON_NODEUP
@ CONFCHG_CPG_REASON_NODEUP
Definition: ipc_cpg.h:96
res_lib_cpg_deliver_callback::__attribute__
mar_cpg_name_t group_name __attribute__((aligned(8)))
res_lib_cpg_confchg_callback::__attribute__
mar_uint32_t member_list_entries __attribute__((aligned(8)))
MESSAGE_RES_CPG_FLOW_CONTROL_STATE_SET
@ MESSAGE_RES_CPG_FLOW_CONTROL_STATE_SET
Definition: ipc_cpg.h:74
value
uint32_t value
Definition: exec/votequorum.c:2
MESSAGE_RES_CPG_ITERATIONINITIALIZE
@ MESSAGE_RES_CPG_ITERATIONINITIALIZE
Definition: ipc_cpg.h:77
mar_cpg_ring_id_t::__attribute__
mar_uint32_t nodeid __attribute__((aligned(8)))
res_lib_cpg_partial_deliver_callback::__attribute__
mar_uint32_t msglen __attribute__((aligned(8)))
MESSAGE_RES_CPG_ZC_EXECUTE
@ MESSAGE_RES_CPG_ZC_EXECUTE
Definition: ipc_cpg.h:84
MESSAGE_RES_CPG_CONFCHG_CALLBACK
@ MESSAGE_RES_CPG_CONFCHG_CALLBACK
Definition: ipc_cpg.h:72
res_lib_cpg_confchg_callback
The res_lib_cpg_confchg_callback struct.
Definition: ipc_cpg.h:384
req_lib_cpg_join::__attribute__
mar_cpg_name_t group_name __attribute__((aligned(8)))
cpg_iteration_description_t
The cpg_iteration_description_t struct.
Definition: cpg.h:130
req_lib_cpg_partial_mcast
The req_lib_cpg_partial_mcast struct.
Definition: ipc_cpg.h:314
req_lib_cpg_partial_mcast::__attribute__
mar_uint32_t guarantee __attribute__((aligned(8)))
res_lib_cpg_join::__attribute__
struct qb_ipc_response_header header __attribute__((aligned(8)))
mar_cpg_address_t
mar_cpg_address_t struct
Definition: ipc_cpg.h:155
coroipcs_zc_header::server_address
uint64_t server_address
Definition: ipc_cpg.h:500
mar_uint8_t
uint8_t mar_uint8_t
Definition: mar_gen.h:51
MESSAGE_REQ_CPG_ZC_FREE
@ MESSAGE_REQ_CPG_ZC_FREE
Definition: ipc_cpg.h:59
mar_req_coroipcc_zc_free_t::__attribute__
size_t map_size __attribute__((aligned(8)))
coroipcs_zc_header
coroipcs_zc_header struct
Definition: ipc_cpg.h:498
mar_cpg_iteration_description_t::group
mar_cpg_name_t group
Definition: ipc_cpg.h:208
res_lib_cpg_totem_confchg_callback::member_list
mar_uint32_t member_list[]
Definition: ipc_cpg.h:402
MESSAGE_RES_CPG_PARTIAL_SEND
@ MESSAGE_RES_CPG_PARTIAL_SEND
Definition: ipc_cpg.h:86
req_lib_cpg_membership_get
The req_lib_cpg_membership_get struct.
Definition: ipc_cpg.h:367
mar_req_coroipcc_zc_execute_t
mar_req_coroipcc_zc_execute_t struct
Definition: ipc_cpg.h:490
req_lib_cpg_local_get::__attribute__
struct qb_ipc_request_header header __attribute__((aligned(8)))
CONFCHG_CPG_REASON_LEAVE
@ CONFCHG_CPG_REASON_LEAVE
Definition: ipc_cpg.h:94
req_lib_cpg_mcast::__attribute__
struct qb_ipc_response_header header __attribute__((aligned(8)))
res_lib_cpg_deliver_callback::__attribute__
struct qb_ipc_response_header header __attribute__((aligned(8)))
MESSAGE_REQ_CPG_ITERATIONFINALIZE
@ MESSAGE_REQ_CPG_ITERATIONFINALIZE
Definition: ipc_cpg.h:56
mar_req_coroipcc_zc_execute_t::__attribute__
uint64_t server_address __attribute__((aligned(8)))
res_lib_cpg_iterationinitialize::__attribute__
struct qb_ipc_response_header header __attribute__((aligned(8)))
res_lib_cpg_iterationnext
The res_lib_cpg_iterationnext struct.
Definition: ipc_cpg.h:449
req_lib_cpg_partial_mcast::__attribute__
struct qb_ipc_response_header header __attribute__((aligned(8)))
LIBCPG_PARTIAL_CONTINUED
@ LIBCPG_PARTIAL_CONTINUED
Definition: ipc_cpg.h:105
type
char type
Definition: totem.h:2
res_lib_cpg_confchg_callback::member_list
mar_cpg_address_t member_list[]
Definition: ipc_cpg.h:390
req_lib_cpg_partial_mcast::__attribute__
mar_uint32_t msglen __attribute__((aligned(8)))
req_lib_cpg_membership_get::__attribute__
struct qb_ipc_request_header header __attribute__((aligned(8)))
mar_uint32_t
uint32_t mar_uint32_t
Definition: mar_gen.h:53
res_lib_cpg_confchg_callback::__attribute__
mar_uint32_t joined_list_entries __attribute__((aligned(8)))
CONFCHG_CPG_REASON_NODEDOWN
@ CONFCHG_CPG_REASON_NODEDOWN
Definition: ipc_cpg.h:95
req_lib_cpg_local_get
The req_lib_cpg_local_get struct.
Definition: ipc_cpg.h:282
res_lib_cpg_leave
The res_lib_cpg_leave struct.
Definition: ipc_cpg.h:417
res_cpg_types
res_cpg_types
The res_cpg_types enum.
Definition: ipc_cpg.h:67
MESSAGE_RES_CPG_PARTIAL_DELIVER_CALLBACK
@ MESSAGE_RES_CPG_PARTIAL_DELIVER_CALLBACK
Definition: ipc_cpg.h:85
res_lib_cpg_leave::__attribute__
struct qb_ipc_response_header header __attribute__((aligned(8)))
cpg_ring_id
The cpg_ring_id struct.
Definition: cpg.h:139
res_lib_cpg_deliver_callback::__attribute__
mar_uint32_t msglen __attribute__((aligned(8)))
req_lib_cpg_iterationfinalize::__attribute__
struct qb_ipc_request_header header __attribute__((aligned(8)))
mar_req_coroipcc_zc_free_t
mar_req_coroipcc_zc_free_t struct
Definition: ipc_cpg.h:481
res_lib_cpg_deliver_callback::__attribute__
mar_uint32_t nodeid __attribute__((aligned(8)))
res_lib_cpg_partial_deliver_callback::__attribute__
mar_uint32_t type __attribute__((aligned(8)))
MESSAGE_REQ_CPG_LOCAL_GET
@ MESSAGE_REQ_CPG_LOCAL_GET
Definition: ipc_cpg.h:53
MESSAGE_REQ_CPG_MCAST
@ MESSAGE_REQ_CPG_MCAST
Definition: ipc_cpg.h:51
MESSAGE_REQ_CPG_FINALIZE
@ MESSAGE_REQ_CPG_FINALIZE
Definition: ipc_cpg.h:57
res_lib_cpg_mcast::__attribute__
struct qb_ipc_response_header header __attribute__((aligned(8)))
cpg_name::value
char value[CPG_MAX_NAME_LENGTH]
Definition: cpg.h:122
res_lib_cpg_totem_confchg_callback::__attribute__
mar_uint32_t member_list_entries __attribute__((aligned(8)))
MESSAGE_RES_CPG_ITERATIONNEXT
@ MESSAGE_RES_CPG_ITERATIONNEXT
Definition: ipc_cpg.h:78
res_lib_cpg_totem_confchg_callback::__attribute__
struct qb_ipc_response_header header __attribute__((aligned(8)))
CPG_ZC_PATH_LEN
#define CPG_ZC_PATH_LEN
Definition: ipc_cpg.h:43
MESSAGE_RES_CPG_FLOWCONTROL_CALLBACK
@ MESSAGE_RES_CPG_FLOWCONTROL_CALLBACK
Definition: ipc_cpg.h:76
header
struct totem_message_header header
Definition: totemsrp.c:0
cpg_address::reason
uint32_t reason
Definition: cpg.h:113
res_lib_cpg_membership_get
The res_lib_cpg_membership_get struct.
Definition: ipc_cpg.h:375
MESSAGE_RES_CPG_ITERATIONFINALIZE
@ MESSAGE_RES_CPG_ITERATIONFINALIZE
Definition: ipc_cpg.h:79
cpg_iteration_description_t::pid
uint32_t pid
Definition: cpg.h:133
__attribute__
typedef __attribute__
res_lib_cpg_flowcontrol_callback
The res_lib_cpg_flowcontrol_callback struct.
Definition: ipc_cpg.h:359
CPG_MAX_NAME_LENGTH
#define CPG_MAX_NAME_LENGTH
Definition: cpg.h:116
seq
unsigned long long seq
Definition: coroapi.h:1
res_lib_cpg_confchg_callback::__attribute__
mar_cpg_name_t group_name __attribute__((aligned(8)))
mar_cpg_address_t::__attribute__
mar_uint32_t pid __attribute__((aligned(8)))
mar_req_coroipcc_zc_free_t::__attribute__
struct qb_ipc_request_header header __attribute__((aligned(8)))
lib_cpg_confchg_reason
lib_cpg_confchg_reason
The lib_cpg_confchg_reason enum.
Definition: ipc_cpg.h:92
MESSAGE_REQ_CPG_JOIN
@ MESSAGE_REQ_CPG_JOIN
Definition: ipc_cpg.h:49
hdb_handle_t
qb_handle_t hdb_handle_t
Definition: hdb.h:52
res_lib_cpg_confchg_callback::__attribute__
struct qb_ipc_response_header header __attribute__((aligned(8)))
mar_gen.h
res_lib_cpg_membership_get::__attribute__
struct qb_ipc_response_header header __attribute__((aligned(8)))
res_lib_cpg_iterationfinalize::__attribute__
struct qb_ipc_response_header header __attribute__((aligned(8)))
res_lib_cpg_flowcontrol_callback::__attribute__
struct qb_ipc_response_header header __attribute__((aligned(8)))
req_lib_cpg_partial_mcast::__attribute__
mar_uint32_t type __attribute__((aligned(8)))
res_lib_cpg_partial_send::__attribute__
struct qb_ipc_response_header header __attribute__((aligned(8)))
mar_uint64_t
uint64_t mar_uint64_t
Definition: mar_gen.h:54
req_lib_cpg_mcast
The req_lib_cpg_mcast struct.
Definition: ipc_cpg.h:304
res_lib_cpg_finalize
The res_lib_cpg_finalize struct.
Definition: ipc_cpg.h:275
lib_cpg_partial_types
lib_cpg_partial_types
The lib_cpg_partial_types enum.
Definition: ipc_cpg.h:103
res_lib_cpg_partial_deliver_callback::__attribute__
mar_uint32_t nodeid __attribute__((aligned(8)))
mar_req_coroipcc_zc_alloc_t::__attribute__
size_t map_size __attribute__((aligned(8)))
req_lib_cpg_iterationfinalize
The req_lib_cpg_iterationfinalize struct.
Definition: ipc_cpg.h:457
req_lib_cpg_finalize::__attribute__
struct qb_ipc_request_header header __attribute__((aligned(8)))
mar_req_coroipcc_zc_alloc_t::__attribute__
struct qb_ipc_request_header header __attribute__((aligned(8)))
MESSAGE_RES_CPG_TOTEM_CONFCHG_CALLBACK
@ MESSAGE_RES_CPG_TOTEM_CONFCHG_CALLBACK
Definition: ipc_cpg.h:81
mar_req_coroipcc_zc_execute_t::__attribute__
struct qb_ipc_request_header header __attribute__((aligned(8)))
req_lib_cpg_join
The req_lib_cpg_join struct.
Definition: ipc_cpg.h:251
res_lib_cpg_totem_confchg_callback::__attribute__
mar_cpg_ring_id_t ring_id __attribute__((aligned(8)))
req_lib_cpg_leave::__attribute__
mar_cpg_name_t group_name __attribute__((aligned(8)))
flags
uint32_t flags
Definition: exec/votequorum.c:4
MESSAGE_RES_CPG_JOIN
@ MESSAGE_RES_CPG_JOIN
Definition: ipc_cpg.h:68
res_lib_cpg_membership_get::__attribute__
mar_uint32_t member_count __attribute__((aligned(8)))
req_lib_cpg_finalize
The req_lib_cpg_finalize struct.
Definition: ipc_cpg.h:268
MESSAGE_REQ_CPG_ZC_ALLOC
@ MESSAGE_REQ_CPG_ZC_ALLOC
Definition: ipc_cpg.h:58
LIBCPG_PARTIAL_FIRST
@ LIBCPG_PARTIAL_FIRST
Definition: ipc_cpg.h:104
MESSAGE_REQ_CPG_MEMBERSHIP
@ MESSAGE_REQ_CPG_MEMBERSHIP
Definition: ipc_cpg.h:52
req_lib_cpg_iterationnext::__attribute__
struct qb_ipc_request_header header __attribute__((aligned(8)))
res_lib_cpg_local_get
The res_lib_cpg_local_get struct.
Definition: ipc_cpg.h:289
res_lib_cpg_local_get::__attribute__
struct qb_ipc_response_header header __attribute__((aligned(8)))
mar_cpg_address_t::__attribute__
mar_uint32_t reason __attribute__((aligned(8)))
MESSAGE_RES_CPG_FINALIZE
@ MESSAGE_RES_CPG_FINALIZE
Definition: ipc_cpg.h:80
MESSAGE_REQ_CPG_ZC_EXECUTE
@ MESSAGE_REQ_CPG_ZC_EXECUTE
Definition: ipc_cpg.h:60
res_lib_cpg_totem_confchg_callback
The res_lib_cpg_totem_confchg_callback struct.
Definition: ipc_cpg.h:398
cpg_address::pid
uint32_t pid
Definition: cpg.h:112
req_lib_cpg_iterationinitialize::__attribute__
struct qb_ipc_request_header header __attribute__((aligned(8)))
MESSAGE_RES_CPG_LOCAL_GET
@ MESSAGE_RES_CPG_LOCAL_GET
Definition: ipc_cpg.h:75
LIBCPG_PARTIAL_LAST
@ LIBCPG_PARTIAL_LAST
Definition: ipc_cpg.h:106
MESSAGE_REQ_CPG_PARTIAL_MCAST
@ MESSAGE_REQ_CPG_PARTIAL_MCAST
Definition: ipc_cpg.h:61
res_lib_cpg_iterationfinalize
The res_lib_cpg_iterationfinalize struct.
Definition: ipc_cpg.h:465
MESSAGE_RES_CPG_ZC_ALLOC
@ MESSAGE_RES_CPG_ZC_ALLOC
Definition: ipc_cpg.h:82
cpg_address
The cpg_address struct.
Definition: cpg.h:110
res_lib_cpg_deliver_callback::__attribute__
mar_uint32_t pid __attribute__((aligned(8)))
res_lib_cpg_partial_deliver_callback::__attribute__
mar_uint32_t fraglen __attribute__((aligned(8)))
req_lib_cpg_iterationnext
The req_lib_cpg_iterationnext struct.
Definition: ipc_cpg.h:441
res_lib_cpg_iterationnext::__attribute__
struct qb_ipc_response_header header __attribute__((aligned(8)))
MESSAGE_RES_CPG_ZC_FREE
@ MESSAGE_RES_CPG_ZC_FREE
Definition: ipc_cpg.h:83
MESSAGE_REQ_CPG_ITERATIONINITIALIZE
@ MESSAGE_REQ_CPG_ITERATIONINITIALIZE
Definition: ipc_cpg.h:54
mar_cpg_name_t::__attribute__
uint32_t length __attribute__((aligned(8)))
res_lib_cpg_iterationinitialize
The res_lib_cpg_iterationinitialize struct.
Definition: ipc_cpg.h:433
nodeid
unsigned int nodeid
Definition: coroapi.h:0
req_lib_cpg_iterationinitialize::__attribute__
mar_cpg_name_t group_name __attribute__((aligned(8)))
res_lib_cpg_mcast
The res_lib_cpg_mcast struct.
Definition: ipc_cpg.h:326
req_lib_cpg_join::__attribute__
struct qb_ipc_request_header header __attribute__((aligned(8)))
MESSAGE_RES_CPG_LEAVE
@ MESSAGE_RES_CPG_LEAVE
Definition: ipc_cpg.h:69
cpg_name
The cpg_name struct.
Definition: cpg.h:120
req_lib_cpg_mcast::__attribute__
mar_uint32_t msglen __attribute__((aligned(8)))
MESSAGE_RES_CPG_DELIVER_CALLBACK
@ MESSAGE_RES_CPG_DELIVER_CALLBACK
Definition: ipc_cpg.h:73
MESSAGE_REQ_CPG_LEAVE
@ MESSAGE_REQ_CPG_LEAVE
Definition: ipc_cpg.h:50
ring_id
struct memb_ring_id ring_id
Definition: totemsrp.c:4
PROCESSOR_COUNT_MAX
#define PROCESSOR_COUNT_MAX
Definition: coroapi.h:96
mar_cpg_iteration_description_t::nodeid
mar_uint32_t nodeid
Definition: ipc_cpg.h:209
cpg_address::nodeid
uint32_t nodeid
Definition: cpg.h:111
cpg_name::length
uint32_t length
Definition: cpg.h:121
req_lib_cpg_leave::__attribute__
struct qb_ipc_request_header header __attribute__((aligned(8)))
CONFCHG_CPG_REASON_JOIN
@ CONFCHG_CPG_REASON_JOIN
Definition: ipc_cpg.h:93
res_lib_cpg_partial_deliver_callback::__attribute__
mar_uint32_t pid __attribute__((aligned(8)))
corotypes.h
res_lib_cpg_partial_send
The res_lib_cpg_partial_send struct.
Definition: ipc_cpg.h:297
res_lib_cpg_finalize::__attribute__
struct qb_ipc_response_header header __attribute__((aligned(8)))
MESSAGE_REQ_CPG_ITERATIONNEXT
@ MESSAGE_REQ_CPG_ITERATIONNEXT
Definition: ipc_cpg.h:55
coroipcs_zc_header::map_size
int map_size
Definition: ipc_cpg.h:499
req_cpg_types
req_cpg_types
The req_cpg_types enum.
Definition: ipc_cpg.h:48
req_lib_cpg_mcast::__attribute__
mar_uint32_t guarantee __attribute__((aligned(8)))
res_lib_cpg_join
The res_lib_cpg_join struct.
Definition: ipc_cpg.h:261
res_lib_cpg_partial_deliver_callback::__attribute__
struct qb_ipc_response_header header __attribute__((aligned(8)))
req_lib_cpg_iterationinitialize
The req_lib_cpg_iterationinitialize struct.
Definition: ipc_cpg.h:424
req_lib_cpg_partial_mcast::__attribute__
mar_uint32_t fraglen __attribute__((aligned(8)))
res_lib_cpg_partial_deliver_callback
The res_lib_cpg_partial_deliver_callback struct.
Definition: ipc_cpg.h:345
res_lib_cpg_deliver_callback
Message from another node.
Definition: ipc_cpg.h:333
CONFCHG_CPG_REASON_PROCDOWN
@ CONFCHG_CPG_REASON_PROCDOWN
Definition: ipc_cpg.h:97
mar_cpg_name_t::__attribute__
char value[CPG_MAX_NAME_LENGTH] __attribute__((aligned(8)))
res_lib_cpg_membership_get::member_list
mar_cpg_address_t member_list[PROCESSOR_COUNT_MAX]
Definition: ipc_cpg.h:378
mar_cpg_address_t::__attribute__
mar_uint32_t nodeid __attribute__((aligned(8)))
guarantee
int guarantee
Definition: totemsrp.c:6
MESSAGE_RES_CPG_MCAST
@ MESSAGE_RES_CPG_MCAST
Definition: ipc_cpg.h:70
mar_req_coroipcc_zc_alloc_t
mar_req_coroipcc_zc_alloc_t struct
Definition: ipc_cpg.h:472
MESSAGE_RES_CPG_MEMBERSHIP
@ MESSAGE_RES_CPG_MEMBERSHIP
Definition: ipc_cpg.h:71
res_lib_cpg_partial_deliver_callback::__attribute__
mar_cpg_name_t group_name __attribute__((aligned(8)))
mar_cpg_iteration_description_t
mar_cpg_iteration_description_t struct
Definition: ipc_cpg.h:207
cpg_iteration_description_t::group
struct cpg_name group
Definition: cpg.h:131
cpg_ring_id::nodeid
uint32_t nodeid
Definition: cpg.h:140
req_lib_cpg_join::__attribute__
mar_uint32_t pid __attribute__((aligned(8)))
cpg_iteration_description_t::nodeid
uint32_t nodeid
Definition: cpg.h:132
mar_cpg_ring_id_t
mar_cpg_ring_id_t struct
Definition: ipc_cpg.h:230