OpenMPI 0.1.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

rml_ftrm.h
Go to the documentation of this file.
1 /*
2 * Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana
3 * University Research and Technology
4 * Corporation. All rights reserved.
5 * Copyright (c) 2004-2006 The University of Tennessee and The University
6 * of Tennessee Research Foundation. All rights
7 * reserved.
8 * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
9 * University of Stuttgart. All rights reserved.
10 * Copyright (c) 2004-2005 The Regents of the University of California.
11 * All rights reserved.
12 * $COPYRIGHT$
13 *
14 * Additional copyrights may follow
15 *
16 * $HEADER$
17 */
18 /**
19 * ORTE RML Fault Tolerance Wrapper - Ready Message Protocol (FTRM)
20 *
21 * @file
22 */
23 #ifndef MCA_RML_FTRM_H
24 #define MCA_RML_FTRM_H
25
26 #include "orte_config.h"
27 #include "orte/mca/rml/rml.h"
28 #include "orte/mca/rml/rml_types.h"
29
30 BEGIN_C_DECLS
31
32 extern int rml_ftrm_output_handle;
33
34 /*
35 * Component Information
36 */
37 ORTE_MODULE_DECLSPEC extern orte_rml_component_t mca_rml_ftrm_component;
38 ORTE_MODULE_DECLSPEC extern orte_rml_module_t orte_rml_ftrm_module;
39
40 ORTE_MODULE_DECLSPEC extern orte_rml_component_t mca_rml_ftrm_wrapped_component;
41 ORTE_MODULE_DECLSPEC extern orte_rml_module_t orte_rml_ftrm_wrapped_module;
42
43 /*
44 * Init (Component)
45 */
46 orte_rml_module_t* orte_rml_ftrm_component_init(int *priority);
47
48 /*
49 * Init (Module)
50 */
51 int orte_rml_ftrm_module_enable_comm(void);
52
53 /*
54 * Finalize (Module)
55 */
56 int orte_rml_ftrm_module_finalize(void);
57
58 /*
59 * Get URI
60 */
61 char * orte_rml_ftrm_get_contact_info(void);
62
63 /*
64 * Set URI
65 */
66 int orte_rml_ftrm_set_contact_info(const char* uri);
67
68 /*
69 * Ping
70 */
71 int orte_rml_ftrm_ping(const char* uri, const struct timeval* tv);
72
73 /*
74 * Send
75 */
76 int orte_rml_ftrm_send(orte_process_name_t* peer,
77 struct iovec *msg,
78 int count,
79 int tag,
80 int flags);
81
82 /*
83 * Send Non-blocking
84 */
85 int orte_rml_ftrm_send_nb(orte_process_name_t* peer,
86 struct iovec* msg,
87 int count,
88 orte_rml_tag_t tag,
89 int flags,
90 orte_rml_callback_fn_t cbfunc,
91 void* cbdata);
92
93 /*
94 * Send Buffer
95 */
96 int orte_rml_ftrm_send_buffer(orte_process_name_t* peer,
97 opal_buffer_t* buffer,
98 orte_rml_tag_t tag,
99 int flags);
100
101 /*
102 * Send Buffer Non-blocking
103 */
104 int orte_rml_ftrm_send_buffer_nb(orte_process_name_t* peer,
105 opal_buffer_t* buffer,
106 orte_rml_tag_t tag,
107 int flags,
108 orte_rml_buffer_callback_fn_t cbfunc,
109 void* cbdata);
110
111 /*
112 * Recv
113 */
114 int orte_rml_ftrm_recv(orte_process_name_t* peer,
115 struct iovec *msg,
116 int count,
117 orte_rml_tag_t tag,
118 int flags);
119
120 /*
121 * Recv Non-blocking
122 */
123 int orte_rml_ftrm_recv_nb(orte_process_name_t* peer,
124 struct iovec* msg,
125 int count,
126 orte_rml_tag_t tag,
127 int flags,
128 orte_rml_callback_fn_t cbfunc,
129 void* cbdata);
130
131 /*
132 * Recv Buffer
133 */
134 int orte_rml_ftrm_recv_buffer(orte_process_name_t* peer,
135 opal_buffer_t *buf,
136 orte_rml_tag_t tag,
137 int flags);
138
139 /*
140 * Recv Buffer Non-blocking
141 */
142 int orte_rml_ftrm_recv_buffer_nb(orte_process_name_t* peer,
143 orte_rml_tag_t tag,
144 int flags,
145 orte_rml_buffer_callback_fn_t cbfunc,
146 void* cbdata);
147
148 /*
149 * Recv Cancel
150 */
151 int orte_rml_ftrm_recv_cancel(orte_process_name_t* peer, orte_rml_tag_t tag);
152
153 /*
154 * Register a callback on loss of connection
155 */
156 int orte_rml_ftrm_add_exception_handler(orte_rml_exception_callback_t cbfunc);
157 int orte_rml_ftrm_del_exception_handler(orte_rml_exception_callback_t cbfunc);
158
159 /*
160 * FT Event
161 */
162 int orte_rml_ftrm_ft_event(int state);
163
164 int orte_rml_ftrm_purge(orte_process_name_t *peer);
165
166 END_C_DECLS
167
168 #endif
orte_rml_module_t
RML module interface.
Definition: rml.h:577
orte_rml_component_2_0_0_t
RML component interface.
Definition: rml.h:89
orte_process_name_t
Definition: types.h:146
orte_rml_callback_fn_t
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
rml.h
Runtime Messaging Layer (RML) Communication Interface.
iovec
Definition: ompi_uio.h:29
mca_rml_ftrm_component
ORTE_MODULE_DECLSPEC orte_rml_component_t mca_rml_ftrm_component
Component definition.
Definition: rml_ftrm_component.c:38
orte_rml_tag_t
uint32_t orte_rml_tag_t
Message matching tag.
Definition: rml_types.h:220
orte_rml_buffer_callback_fn_t
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
opal_buffer_t
Structure for holding a buffer to be used with the RML or OOB subsystems.
Definition: dss_types.h:159
orte_rml_exception_callback_t
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
rml_types.h
Contains the typedefs for the use of the rml.