27 #ifndef MCA_RML_TYPES_H_
28 #define MCA_RML_TYPES_H_
30 #include "orte_config.h"
31 #include "orte/constants.h"
59 #define ORTE_PROCESS_MESSAGE(rlist, lck, flg, fd, crt, sndr, buf) \
61 orte_msg_packet_t *pkt; \
63 pkt = OBJ_NEW(orte_msg_packet_t); \
64 pkt->sender.jobid = (sndr)->jobid; \
65 pkt->sender.vpid = (sndr)->vpid; \
66 ORTE_EPOCH_SET(pkt->sender.epoch,(sndr)->epoch); \
68 pkt->buffer = OBJ_NEW(opal_buffer_t); \
69 opal_dss.copy_payload(pkt->buffer, *(buf)); \
71 pkt->buffer = *(buf); \
74 OPAL_THREAD_LOCK((lck)); \
75 opal_list_append((rlist), &pkt->super); \
77 write((fd), &data, sizeof(data)); \
79 OPAL_THREAD_UNLOCK((lck)); \
82 #define ORTE_PROCESS_MESSAGE(rlist, lck, flg, fd, crt, sndr, buf) \
84 orte_msg_packet_t *pkt; \
86 pkt = OBJ_NEW(orte_msg_packet_t); \
87 pkt->sender.jobid = (sndr)->jobid; \
88 pkt->sender.vpid = (sndr)->vpid; \
89 ORTE_EPOCH_SET(pkt->sender.epoch,(sndr)->epoch); \
91 pkt->buffer = OBJ_NEW(opal_buffer_t); \
92 opal_dss.copy_payload(pkt->buffer, *(buf)); \
94 pkt->buffer = *(buf); \
97 OPAL_THREAD_LOCK((lck)); \
98 opal_list_append((rlist), &pkt->super); \
100 send((fd), (const char*) &data, sizeof(data), 0); \
102 OPAL_THREAD_UNLOCK((lck)); \
111 #define ORTE_RML_TAG_T OPAL_UINT32
113 #define ORTE_RML_TAG_INVALID 0
114 #define ORTE_RML_TAG_DAEMON 1
115 #define ORTE_RML_TAG_IOF_HNP 2
116 #define ORTE_RML_TAG_IOF_PROXY 3
117 #define ORTE_RML_TAG_XCAST_BARRIER 4
118 #define ORTE_RML_TAG_PLM 5
119 #define ORTE_RML_TAG_PLM_PROXY 6
120 #define ORTE_RML_TAG_ERRMGR 7
121 #define ORTE_RML_TAG_WIREUP 8
122 #define ORTE_RML_TAG_RML_INFO_UPDATE 9
123 #define ORTE_RML_TAG_ORTED_CALLBACK 10
124 #define ORTE_RML_TAG_REPORT_REMOTE_LAUNCH 12
126 #define ORTE_RML_TAG_CKPT 13
128 #define ORTE_RML_TAG_RML_ROUTE 14
130 #define ORTE_RML_TAG_ALLGATHER 15
131 #define ORTE_RML_TAG_ALLGATHER_LIST 16
132 #define ORTE_RML_TAG_BARRIER 17
134 #define ORTE_RML_TAG_UPDATE_ROUTE_ACK 19
135 #define ORTE_RML_TAG_SYNC 20
138 #define ORTE_RML_TAG_FILEM_BASE 21
139 #define ORTE_RML_TAG_FILEM_BASE_RESP 22
142 #define ORTE_RML_TAG_FILEM_RSH 23
145 #define ORTE_RML_TAG_SNAPC 24
146 #define ORTE_RML_TAG_SNAPC_FULL 25
149 #define ORTE_RML_TAG_TOOL 26
152 #define ORTE_RML_TAG_DATA_SERVER 27
153 #define ORTE_RML_TAG_DATA_CLIENT 28
156 #define ORTE_RML_TAG_COLLECTIVE_TIMER 29
159 #define ORTE_RML_TAG_DAEMON_COLLECTIVE 30
162 #define ORTE_RML_TAG_SHOW_HELP 31
165 #define ORTE_RML_TAG_DEBUGGER_RELEASE 32
168 #define ORTE_RML_TAG_BOOTSTRAP 34
171 #define ORTE_RML_TAG_MULTICAST 35
173 #define ORTE_RML_TAG_MULTICAST_DIRECT 36
175 #define ORTE_RML_TAG_MISSED_MSG 37
178 #define ORTE_RML_TAG_ABORT 38
181 #define ORTE_RML_TAG_HEARTBEAT 39
184 #define ORTE_RML_TAG_NOTIFIER_HNP 40
187 #define ORTE_RML_TAG_MIGRATE 43
190 #define ORTE_RML_TAG_SSTORE 44
191 #define ORTE_RML_TAG_SSTORE_INTERNAL 45
193 #define ORTE_RML_TAG_SUBSCRIBE 46
195 #if ORTE_ENABLE_EPOCH
197 #define ORTE_RML_TAG_EPOCH_CHANGE 47
201 #define ORTE_RML_TAG_FAILURE_NOTICE 48
204 #define ORTE_RML_TAG_REVOKE_NOTICE 49
207 #define ORTE_RML_TAG_COLL_AGREE_TERM 50
209 #define ORTE_RML_TAG_MAX 100
229 typedef uint8_t orte_rml_cmd_flag_t;
230 #define ORTE_RML_CMD OPAL_UINT8
231 #define ORTE_RML_UPDATE_CMD 1
241 #define ORTE_RML_NON_PERSISTENT 0x00000000
247 #define ORTE_RML_PEEK 0x00000001
253 #define ORTE_RML_TRUNC 0x00000002
260 #define ORTE_RML_ALLOC 0x00000004
265 #define ORTE_RML_PERSISTENT 0x00000008
272 #define ORTE_RML_FLAG_RECURSIVE_CALLBACK 0x00000010
276 ORTE_RML_PEER_UNREACH,
277 ORTE_RML_PEER_DISCONNECTED
278 } orte_rml_exception_t;
The opal_list_t interface is used to provide a generic doubly-linked list container for Open MPI...
Definition: opal_list.h:98
Definition: rml_types.h:51
uint32_t orte_rml_tag_t
Message matching tag.
Definition: rml_types.h:220
Structure for holding a buffer to be used with the RML or OOB subsystems.
Definition: dss_types.h:159
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236