20 #ifndef MCA_RML_OOB_RML_OOB_H
21 #define MCA_RML_OOB_RML_OOB_H
23 #include "orte_config.h"
24 #include "opal/threads/condition.h"
26 #include "opal/mca/event/event.h"
41 struct timeval timeout;
50 ORTE_RML_BLOCKING_SEND,
51 ORTE_RML_NONBLOCKING_IOV_SEND,
52 ORTE_RML_NONBLOCKING_BUFFER_SEND,
53 ORTE_RML_BLOCKING_RECV,
54 ORTE_RML_NONBLOCKING_IOV_RECV,
55 ORTE_RML_NONBLOCKING_BUFFER_RECV
56 } orte_rml_oob_msg_type_t;
65 #define ORTE_RML_OOB_MSG_HEADER_HTON(hdr) \
67 ORTE_PROCESS_NAME_HTON((hdr).origin); \
68 ORTE_PROCESS_NAME_HTON((hdr).destination); \
69 (hdr).tag = htonl((hdr).tag); \
73 #define ORTE_RML_OOB_MSG_HEADER_NTOH(hdr) \
75 ORTE_PROCESS_NAME_NTOH((hdr).origin); \
76 ORTE_PROCESS_NAME_NTOH((hdr).destination); \
77 (hdr).tag = ntohl((hdr).tag); \
87 orte_rml_oob_msg_type_t msg_type;
89 volatile bool msg_complete;
98 struct iovec *msg_data;
112 struct iovec payload[1];
117 int orte_rml_oob_init(
void);
118 int orte_rml_oob_fini(
void);
119 int orte_rml_oob_ft_event(
int state);
169 int orte_rml_oob_ping(
const char* uri,
170 const struct timeval* tv);
172 char* orte_rml_oob_get_uri(
void);
173 int orte_rml_oob_set_uri(
const char*);
178 orte_rml_exception_t exception);
RML module interface.
Definition: rml.h:577
RML component interface.
Definition: rml.h:89
Contains the internal functions and typedefs for the use of the oob.
Definition: condition.h:49
Structure to represent a single event.
Definition: event_struct.h:87
Definition: rml_oob.h:110
Definition: mutex_unix.h:53
Definition: opal_list.h:98
void(* orte_rml_callback_fn_t)(int status, struct orte_process_name_t *peer, struct iovec *msg, int count, orte_rml_tag_t tag, void *cbdata)
Funtion prototype for callback from non-blocking iovec send and receive.
Definition: rml.h:123
opal_buffer_t msg_recv_buffer
buffer for non-blocking buffer sends
Definition: rml_oob.h:101
Runtime Messaging Layer (RML) Communication Interface.
Definition: ompi_uio.h:29
Base object.
Definition: opal_object.h:182
uint32_t orte_rml_tag_t
Message matching tag.
Definition: rml_types.h:220
Definition: opal_list.h:147
OOB Module.
Definition: oob.h:161
void(* orte_rml_buffer_callback_fn_t)(int status, struct orte_process_name_t *peer, struct opal_buffer_t *buffer, orte_rml_tag_t tag, void *cbdata)
Funtion prototype for callback from non-blocking buffer send and receive.
Definition: rml.h:149
Structure for holding a buffer to be used with the RML or OOB subsystems.
Definition: dss_types.h:159
opal_buffer_t * user_buffer
pointer to user buffer for buffered sends
Definition: rml_oob.h:103
Mutual exclusion functions.
void(* orte_rml_exception_callback_t)(const orte_process_name_t *peer, orte_rml_exception_t exception)
Function prototype for exception callback.
Definition: rml.h:167
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236