This source file includes following definitions.
- ompi_errcode_intern_init
- ompi_errcode_intern_finalize
- ompi_errcode_intern_construct
- ompi_errcode_intern_destruct
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 #include "ompi_config.h"
26
27 #include <stdio.h>
28 #include <string.h>
29 #include "mpi.h"
30
31 #include "opal/util/string_copy.h"
32
33 #include "ompi/errhandler/errcode-internal.h"
34
35
36 opal_pointer_array_t ompi_errcodes_intern = {{0}};
37 int ompi_errcode_intern_lastused=0;
38
39 static ompi_errcode_intern_t ompi_success_intern;
40 static ompi_errcode_intern_t ompi_error_intern;
41 static ompi_errcode_intern_t ompi_err_out_of_resource_intern;
42 static ompi_errcode_intern_t ompi_err_temp_out_of_resource_intern;
43 static ompi_errcode_intern_t ompi_err_resource_busy_intern;
44 static ompi_errcode_intern_t ompi_err_bad_param_intern;
45 static ompi_errcode_intern_t ompi_err_fatal_intern;
46 static ompi_errcode_intern_t ompi_err_not_implemented_intern;
47 static ompi_errcode_intern_t ompi_err_not_supported_intern;
48 static ompi_errcode_intern_t ompi_err_interupted_intern;
49 static ompi_errcode_intern_t ompi_err_would_block_intern;
50 static ompi_errcode_intern_t ompi_err_in_errno_intern;
51 static ompi_errcode_intern_t ompi_err_unreach_intern;
52 static ompi_errcode_intern_t ompi_err_not_found_intern;
53 static ompi_errcode_intern_t ompi_err_request_intern;
54 static ompi_errcode_intern_t ompi_err_buffer_intern;
55 static ompi_errcode_intern_t ompi_err_rma_sync_intern;
56 static ompi_errcode_intern_t ompi_err_rma_shared_intern;
57 static ompi_errcode_intern_t ompi_err_rma_attach_intern;
58 static ompi_errcode_intern_t ompi_err_rma_range_intern;
59 static ompi_errcode_intern_t ompi_err_rma_conflict_intern;
60 static ompi_errcode_intern_t ompi_err_win_intern;
61 static ompi_errcode_intern_t ompi_err_rma_flavor_intern;
62
63 static void ompi_errcode_intern_construct(ompi_errcode_intern_t* errcode);
64 static void ompi_errcode_intern_destruct(ompi_errcode_intern_t* errcode);
65
66 OBJ_CLASS_INSTANCE(ompi_errcode_intern_t,opal_object_t,ompi_errcode_intern_construct, ompi_errcode_intern_destruct);
67
68 int ompi_errcode_intern_init (void)
69 {
70 int pos=0;
71
72
73 OBJ_CONSTRUCT(&ompi_errcodes_intern, opal_pointer_array_t);
74 if( OPAL_SUCCESS != opal_pointer_array_init(&ompi_errcodes_intern,
75 0, OMPI_FORTRAN_HANDLE_MAX, 64) ) {
76 return OMPI_ERROR;
77 }
78
79
80
81 OBJ_CONSTRUCT(&ompi_success_intern, ompi_errcode_intern_t);
82 ompi_success_intern.code = OMPI_SUCCESS;
83 ompi_success_intern.mpi_code = MPI_SUCCESS;
84 ompi_success_intern.index = pos++;
85 opal_string_copy(ompi_success_intern.errstring, "OMPI_SUCCESS",
86 OMPI_MAX_ERROR_STRING);
87 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_success_intern.index,
88 &ompi_success_intern);
89
90 OBJ_CONSTRUCT(&ompi_error_intern, ompi_errcode_intern_t);
91 ompi_error_intern.code = OMPI_ERROR;
92 ompi_error_intern.mpi_code = MPI_ERR_OTHER;
93 ompi_error_intern.index = pos++;
94 opal_string_copy(ompi_error_intern.errstring, "OMPI_ERROR",
95 OMPI_MAX_ERROR_STRING);
96 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_error_intern.index,
97 &ompi_error_intern);
98
99 OBJ_CONSTRUCT(&ompi_err_out_of_resource_intern, ompi_errcode_intern_t);
100 ompi_err_out_of_resource_intern.code = OMPI_ERR_OUT_OF_RESOURCE;
101 ompi_err_out_of_resource_intern.mpi_code = MPI_ERR_INTERN;
102 ompi_err_out_of_resource_intern.index = pos++;
103 opal_string_copy(ompi_err_out_of_resource_intern.errstring,
104 "OMPI_ERR_OUT_OF_RESOURCE", OMPI_MAX_ERROR_STRING);
105 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_out_of_resource_intern.index,
106 &ompi_err_out_of_resource_intern);
107
108 OBJ_CONSTRUCT(&ompi_err_temp_out_of_resource_intern, ompi_errcode_intern_t);
109 ompi_err_temp_out_of_resource_intern.code = OMPI_ERR_TEMP_OUT_OF_RESOURCE;
110 ompi_err_temp_out_of_resource_intern.mpi_code = MPI_ERR_INTERN;
111 ompi_err_temp_out_of_resource_intern.index = pos++;
112 opal_string_copy(ompi_err_temp_out_of_resource_intern.errstring,
113 "OMPI_ERR_TEMP_OUT_OF_RESOURCE", OMPI_MAX_ERROR_STRING);
114 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_temp_out_of_resource_intern.index,
115 &ompi_err_temp_out_of_resource_intern);
116
117 OBJ_CONSTRUCT(&ompi_err_resource_busy_intern, ompi_errcode_intern_t);
118 ompi_err_resource_busy_intern.code = OMPI_ERR_RESOURCE_BUSY;
119 ompi_err_resource_busy_intern.mpi_code = MPI_ERR_INTERN;
120 ompi_err_resource_busy_intern.index = pos++;
121 opal_string_copy(ompi_err_resource_busy_intern.errstring,
122 "OMPI_ERR_RESOURCE_BUSY", OMPI_MAX_ERROR_STRING);
123 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_resource_busy_intern.index,
124 &ompi_err_resource_busy_intern);
125
126 OBJ_CONSTRUCT(&ompi_err_bad_param_intern, ompi_errcode_intern_t);
127 ompi_err_bad_param_intern.code = OMPI_ERR_BAD_PARAM;
128 ompi_err_bad_param_intern.mpi_code = MPI_ERR_ARG;
129 ompi_err_bad_param_intern.index = pos++;
130 opal_string_copy(ompi_err_bad_param_intern.errstring,
131 "OMPI_ERR_BAD_PARAM", OMPI_MAX_ERROR_STRING);
132 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_bad_param_intern.index,
133 &ompi_err_bad_param_intern);
134
135 OBJ_CONSTRUCT(&ompi_err_fatal_intern, ompi_errcode_intern_t);
136 ompi_err_fatal_intern.code = OMPI_ERR_FATAL;
137 ompi_err_fatal_intern.mpi_code = MPI_ERR_INTERN;
138 ompi_err_fatal_intern.index = pos++;
139 opal_string_copy(ompi_err_fatal_intern.errstring, "OMPI_ERR_FATAL",
140 OMPI_MAX_ERROR_STRING);
141 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_fatal_intern.index,
142 &ompi_err_fatal_intern);
143
144 OBJ_CONSTRUCT(&ompi_err_not_implemented_intern, ompi_errcode_intern_t);
145 ompi_err_not_implemented_intern.code = OMPI_ERR_NOT_IMPLEMENTED;
146 ompi_err_not_implemented_intern.mpi_code = MPI_ERR_INTERN;
147 ompi_err_not_implemented_intern.index = pos++;
148 opal_string_copy(ompi_err_not_implemented_intern.errstring,
149 "OMPI_ERR_NOT_IMPLEMENTED", OMPI_MAX_ERROR_STRING);
150 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_not_implemented_intern.index,
151 &ompi_err_not_implemented_intern);
152
153 OBJ_CONSTRUCT(&ompi_err_not_supported_intern, ompi_errcode_intern_t);
154 ompi_err_not_supported_intern.code = OMPI_ERR_NOT_SUPPORTED;
155 ompi_err_not_supported_intern.mpi_code = MPI_ERR_INTERN;
156 ompi_err_not_supported_intern.index = pos++;
157 opal_string_copy(ompi_err_not_supported_intern.errstring,
158 "OMPI_ERR_NOT_SUPPORTED", OMPI_MAX_ERROR_STRING);
159 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_not_supported_intern.index,
160 &ompi_err_not_supported_intern);
161
162 OBJ_CONSTRUCT(&ompi_err_interupted_intern, ompi_errcode_intern_t);
163 ompi_err_interupted_intern.code = OMPI_ERR_INTERUPTED;
164 ompi_err_interupted_intern.mpi_code = MPI_ERR_INTERN;
165 ompi_err_interupted_intern.index = pos++;
166 opal_string_copy(ompi_err_interupted_intern.errstring,
167 "OMPI_ERR_INTERUPTED", OMPI_MAX_ERROR_STRING);
168 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_interupted_intern.index,
169 &ompi_err_interupted_intern);
170
171 OBJ_CONSTRUCT(&ompi_err_would_block_intern, ompi_errcode_intern_t);
172 ompi_err_would_block_intern.code = OMPI_ERR_WOULD_BLOCK;
173 ompi_err_would_block_intern.mpi_code = MPI_ERR_INTERN;
174 ompi_err_would_block_intern.index = pos++;
175 opal_string_copy(ompi_err_would_block_intern.errstring,
176 "OMPI_ERR_WOULD_BLOCK", OMPI_MAX_ERROR_STRING);
177 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_would_block_intern.index,
178 &ompi_err_would_block_intern);
179
180 OBJ_CONSTRUCT(&ompi_err_in_errno_intern, ompi_errcode_intern_t);
181 ompi_err_in_errno_intern.code = OMPI_ERR_IN_ERRNO;
182 ompi_err_in_errno_intern.mpi_code = MPI_ERR_INTERN;
183 ompi_err_in_errno_intern.index = pos++;
184 opal_string_copy(ompi_err_in_errno_intern.errstring,
185 "OMPI_ERR_IN_ERRNO", OMPI_MAX_ERROR_STRING);
186 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_in_errno_intern.index,
187 &ompi_err_in_errno_intern);
188
189 OBJ_CONSTRUCT(&ompi_err_unreach_intern, ompi_errcode_intern_t);
190 ompi_err_unreach_intern.code = OMPI_ERR_UNREACH;
191 ompi_err_unreach_intern.mpi_code = MPI_ERR_INTERN;
192 ompi_err_unreach_intern.index = pos++;
193 opal_string_copy(ompi_err_unreach_intern.errstring,
194 "OMPI_ERR_UNREACH", OMPI_MAX_ERROR_STRING);
195 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_unreach_intern.index,
196 &ompi_err_unreach_intern);
197
198 OBJ_CONSTRUCT(&ompi_err_not_found_intern, ompi_errcode_intern_t);
199 ompi_err_not_found_intern.code = OMPI_ERR_NOT_FOUND;
200 ompi_err_not_found_intern.mpi_code = MPI_ERR_INTERN;
201 ompi_err_not_found_intern.index = pos++;
202 opal_string_copy(ompi_err_not_found_intern.errstring,
203 "OMPI_ERR_NOT_FOUND", OMPI_MAX_ERROR_STRING);
204 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_not_found_intern.index,
205 &ompi_err_not_found_intern);
206
207 OBJ_CONSTRUCT(&ompi_err_buffer_intern, ompi_errcode_intern_t);
208 ompi_err_buffer_intern.code = OMPI_ERR_BUFFER;
209 ompi_err_buffer_intern.mpi_code = MPI_ERR_BUFFER;
210 ompi_err_buffer_intern.index = pos++;
211 opal_string_copy(ompi_err_buffer_intern.errstring,
212 "OMPI_ERR_BUFFER", OMPI_MAX_ERROR_STRING);
213 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_buffer_intern.index,
214 &ompi_err_buffer_intern);
215
216 OBJ_CONSTRUCT(&ompi_err_request_intern, ompi_errcode_intern_t);
217 ompi_err_request_intern.code = OMPI_ERR_REQUEST;
218 ompi_err_request_intern.mpi_code = MPI_ERR_REQUEST;
219 ompi_err_request_intern.index = pos++;
220 opal_string_copy(ompi_err_request_intern.errstring,
221 "OMPI_ERR_REQUEST", OMPI_MAX_ERROR_STRING);
222 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_request_intern.index,
223 &ompi_err_request_intern);
224
225 OBJ_CONSTRUCT(&ompi_err_rma_sync_intern, ompi_errcode_intern_t);
226 ompi_err_rma_sync_intern.code = OMPI_ERR_RMA_SYNC;
227 ompi_err_rma_sync_intern.mpi_code = MPI_ERR_RMA_SYNC;
228 ompi_err_rma_sync_intern.index = pos++;
229 opal_string_copy(ompi_err_rma_sync_intern.errstring,
230 "OMPI_ERR_RMA_SYNC", OMPI_MAX_ERROR_STRING);
231 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_rma_sync_intern.index,
232 &ompi_err_rma_sync_intern);
233
234 OBJ_CONSTRUCT(&ompi_err_rma_shared_intern, ompi_errcode_intern_t);
235 ompi_err_rma_shared_intern.code = OMPI_ERR_RMA_SHARED;
236 ompi_err_rma_shared_intern.mpi_code = MPI_ERR_RMA_SHARED;
237 ompi_err_rma_shared_intern.index = pos++;
238 opal_string_copy(ompi_err_rma_shared_intern.errstring,
239 "OMPI_ERR_RMA_SHARED", OMPI_MAX_ERROR_STRING);
240 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_rma_shared_intern.index,
241 &ompi_err_rma_shared_intern);
242
243 OBJ_CONSTRUCT(&ompi_err_rma_attach_intern, ompi_errcode_intern_t);
244 ompi_err_rma_attach_intern.code = OMPI_ERR_RMA_ATTACH;
245 ompi_err_rma_attach_intern.mpi_code = MPI_ERR_RMA_ATTACH;
246 ompi_err_rma_attach_intern.index = pos++;
247 opal_string_copy(ompi_err_rma_attach_intern.errstring,
248 "OMPI_ERR_RMA_ATTACH", OMPI_MAX_ERROR_STRING);
249 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_rma_attach_intern.index,
250 &ompi_err_rma_attach_intern);
251
252 OBJ_CONSTRUCT(&ompi_err_rma_range_intern, ompi_errcode_intern_t);
253 ompi_err_rma_range_intern.code = OMPI_ERR_RMA_RANGE;
254 ompi_err_rma_range_intern.mpi_code = MPI_ERR_RMA_RANGE;
255 ompi_err_rma_range_intern.index = pos++;
256 opal_string_copy(ompi_err_rma_range_intern.errstring,
257 "OMPI_ERR_RMA_RANGE", OMPI_MAX_ERROR_STRING);
258 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_rma_range_intern.index,
259 &ompi_err_rma_range_intern);
260
261 OBJ_CONSTRUCT(&ompi_err_rma_conflict_intern, ompi_errcode_intern_t);
262 ompi_err_rma_conflict_intern.code = OMPI_ERR_RMA_CONFLICT;
263 ompi_err_rma_conflict_intern.mpi_code = MPI_ERR_RMA_CONFLICT;
264 ompi_err_rma_conflict_intern.index = pos++;
265 opal_string_copy(ompi_err_rma_conflict_intern.errstring,
266 "OMPI_ERR_RMA_CONFLICT", OMPI_MAX_ERROR_STRING);
267 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_rma_conflict_intern.index,
268 &ompi_err_rma_conflict_intern);
269
270 OBJ_CONSTRUCT(&ompi_err_win_intern, ompi_errcode_intern_t);
271 ompi_err_win_intern.code = OMPI_ERR_WIN;
272 ompi_err_win_intern.mpi_code = MPI_ERR_WIN;
273 ompi_err_win_intern.index = pos++;
274 opal_string_copy(ompi_err_win_intern.errstring,
275 "OMPI_ERR_WIN", OMPI_MAX_ERROR_STRING);
276 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_win_intern.index,
277 &ompi_err_win_intern);
278
279 OBJ_CONSTRUCT(&ompi_err_rma_flavor_intern, ompi_errcode_intern_t);
280 ompi_err_rma_flavor_intern.code = OMPI_ERR_RMA_FLAVOR;
281 ompi_err_rma_flavor_intern.mpi_code = MPI_ERR_RMA_FLAVOR;
282 ompi_err_rma_flavor_intern.index = pos++;
283 opal_string_copy(ompi_err_rma_flavor_intern.errstring,
284 "OMPI_ERR_RMA_FLAVOR", OMPI_MAX_ERROR_STRING);
285 opal_pointer_array_set_item(&ompi_errcodes_intern, ompi_err_rma_flavor_intern.index,
286 &ompi_err_rma_flavor_intern);
287
288 ompi_errcode_intern_lastused=pos;
289 return OMPI_SUCCESS;
290 }
291
292 int ompi_errcode_intern_finalize(void)
293 {
294
295 OBJ_DESTRUCT(&ompi_success_intern);
296 OBJ_DESTRUCT(&ompi_error_intern);
297 OBJ_DESTRUCT(&ompi_err_out_of_resource_intern);
298 OBJ_DESTRUCT(&ompi_err_temp_out_of_resource_intern);
299 OBJ_DESTRUCT(&ompi_err_resource_busy_intern);
300 OBJ_DESTRUCT(&ompi_err_bad_param_intern);
301 OBJ_DESTRUCT(&ompi_err_fatal_intern);
302 OBJ_DESTRUCT(&ompi_err_not_implemented_intern);
303 OBJ_DESTRUCT(&ompi_err_not_supported_intern);
304 OBJ_DESTRUCT(&ompi_err_interupted_intern);
305 OBJ_DESTRUCT(&ompi_err_would_block_intern);
306 OBJ_DESTRUCT(&ompi_err_in_errno_intern);
307 OBJ_DESTRUCT(&ompi_err_unreach_intern);
308 OBJ_DESTRUCT(&ompi_err_not_found_intern);
309 OBJ_DESTRUCT(&ompi_err_buffer_intern);
310 OBJ_DESTRUCT(&ompi_err_request_intern);
311 OBJ_DESTRUCT(&ompi_err_rma_sync_intern);
312 OBJ_DESTRUCT(&ompi_err_rma_shared_intern);
313 OBJ_DESTRUCT(&ompi_err_rma_attach_intern);
314 OBJ_DESTRUCT(&ompi_err_rma_range_intern);
315 OBJ_DESTRUCT(&ompi_err_rma_conflict_intern);
316 OBJ_DESTRUCT(&ompi_err_win_intern);
317 OBJ_DESTRUCT(&ompi_err_rma_flavor_intern);
318
319 OBJ_DESTRUCT(&ompi_errcodes_intern);
320 return OMPI_SUCCESS;
321 }
322
323 static void ompi_errcode_intern_construct(ompi_errcode_intern_t *errcode)
324 {
325 errcode->code = MPI_UNDEFINED;
326 errcode->mpi_code = MPI_UNDEFINED;
327 errcode->index = MPI_UNDEFINED;
328 memset ( errcode->errstring, 0, OMPI_MAX_ERROR_STRING);
329 return;
330 }
331
332 static void ompi_errcode_intern_destruct(ompi_errcode_intern_t *errcode)
333 {
334 opal_pointer_array_set_item(&ompi_errcodes_intern, errcode->index, NULL);
335 return;
336 }