Wrap all RTS functions exposed to AMPI programs in special macros
[charm.git] / src / libs / ck-libs / ampi / romio / include / mpio_functions.h
blobab45c8d5dae2d021582c712ecb662bc1bfb76d87
1 /* -*- Mode: C; c-basic-offset:4 ; -*- */
2 /*
3 * $Id$
5 * Copyright (C) 1997 University of Chicago.
6 * See COPYRIGHT notice in top-level directory.
7 */
11 * This file is separate from mpio.h because ROMIO is included as part
12 * of AMPI's implementation of the MPI standard, and certain global variable
13 * privatization methods require the AMPI API to be exposed as function pointers
14 * through a shim and loader mechanism that needs to list the entire set of
15 * provided functions at multiple points in its implementation.
17 * See src/libs/ck-libs/ampi/ampi_functions.h for mandatory procedures.
19 * For ease of reading: AMPI_CUSTOM_FUNC(ReturnType, FunctionName, Parameters...)
23 /* MPI-IO function prototypes */
25 /* The compiler must support ANSI C style prototypes, otherwise
26 long long constants (e.g. 0) may get passed as ints. */
28 #ifndef HAVE_PRAGMA_HP_SEC_DEF
30 /* Section 9.2 */
31 /* Begin Prototypes */
32 AMPI_CUSTOM_FUNC(int, MPI_File_open, MPI_Comm, char *, int, MPI_Info, MPI_File *)
33 AMPI_CUSTOM_FUNC(int, MPI_File_close, MPI_File *)
34 AMPI_CUSTOM_FUNC(int, MPI_File_delete, char *, MPI_Info)
35 AMPI_CUSTOM_FUNC(int, MPI_File_set_size, MPI_File, MPI_Offset)
36 AMPI_CUSTOM_FUNC(int, MPI_File_preallocate, MPI_File, MPI_Offset)
37 AMPI_CUSTOM_FUNC(int, MPI_File_get_size, MPI_File, MPI_Offset *)
38 AMPI_CUSTOM_FUNC(int, MPI_File_get_group, MPI_File, MPI_Group *)
39 AMPI_CUSTOM_FUNC(int, MPI_File_get_amode, MPI_File, int *)
40 AMPI_CUSTOM_FUNC(int, MPI_File_set_info, MPI_File, MPI_Info)
41 AMPI_CUSTOM_FUNC(int, MPI_File_get_info, MPI_File, MPI_Info *)
43 /* Section 9.3 */
44 AMPI_CUSTOM_FUNC(int, MPI_File_set_view, MPI_File, MPI_Offset, MPI_Datatype,
45 MPI_Datatype, char *, MPI_Info)
46 AMPI_CUSTOM_FUNC(int, MPI_File_get_view, MPI_File, MPI_Offset *,
47 MPI_Datatype *, MPI_Datatype *, char *)
49 /* Section 9.4.2 */
50 AMPI_CUSTOM_FUNC(int, MPI_File_read_at, MPI_File, MPI_Offset, void *,
51 int, MPI_Datatype, MPI_Status *)
52 AMPI_CUSTOM_FUNC(int, MPI_File_read_at_all, MPI_File, MPI_Offset, void *,
53 int, MPI_Datatype, MPI_Status *)
54 AMPI_CUSTOM_FUNC(int, MPI_File_write_at, MPI_File, MPI_Offset, void *,
55 int, MPI_Datatype, MPI_Status *)
56 AMPI_CUSTOM_FUNC(int, MPI_File_write_at_all, MPI_File, MPI_Offset, void *,
57 int, MPI_Datatype, MPI_Status *)
59 /* nonblocking calls currently use MPIO_Request, because generalized
60 requests not yet implemented. For the same reason, MPIO_Test and
61 MPIO_Wait are used to test and wait on nonblocking I/O requests */
63 AMPI_CUSTOM_FUNC(int, MPI_File_iread_at, MPI_File, MPI_Offset, void *,
64 int, MPI_Datatype, MPIO_Request *)
65 AMPI_CUSTOM_FUNC(int, MPI_File_iwrite_at, MPI_File, MPI_Offset, void *,
66 int, MPI_Datatype, MPIO_Request *)
68 /* Section 9.4.3 */
69 AMPI_CUSTOM_FUNC(int, MPI_File_read, MPI_File, void *, int, MPI_Datatype, MPI_Status *)
70 AMPI_CUSTOM_FUNC(int, MPI_File_read_all, MPI_File, void *, int, MPI_Datatype, MPI_Status *)
71 AMPI_CUSTOM_FUNC(int, MPI_File_write, MPI_File, void *, int, MPI_Datatype, MPI_Status *)
72 AMPI_CUSTOM_FUNC(int, MPI_File_write_all, MPI_File, void *, int, MPI_Datatype, MPI_Status *)
74 /* nonblocking calls currently use MPIO_Request, because generalized
75 requests not yet implemented. For the same reason, MPIO_Test and
76 MPIO_Wait are used to test and wait on nonblocking I/O requests */
78 AMPI_CUSTOM_FUNC(int, MPI_File_iread, MPI_File, void *, int, MPI_Datatype, MPIO_Request *)
79 AMPI_CUSTOM_FUNC(int, MPI_File_iwrite, MPI_File, void *, int, MPI_Datatype, MPIO_Request *)
81 AMPI_CUSTOM_FUNC(int, MPI_File_seek, MPI_File, MPI_Offset, int)
82 AMPI_CUSTOM_FUNC(int, MPI_File_get_position, MPI_File, MPI_Offset *)
83 AMPI_CUSTOM_FUNC(int, MPI_File_get_byte_offset, MPI_File, MPI_Offset, MPI_Offset *)
85 /* Section 9.4.4 */
86 AMPI_CUSTOM_FUNC(int, MPI_File_read_shared, MPI_File, void *, int, MPI_Datatype, MPI_Status *)
87 AMPI_CUSTOM_FUNC(int, MPI_File_write_shared, MPI_File, void *, int, MPI_Datatype, MPI_Status *)
88 AMPI_CUSTOM_FUNC(int, MPI_File_iread_shared, MPI_File, void *, int, MPI_Datatype, MPIO_Request *)
89 AMPI_CUSTOM_FUNC(int, MPI_File_iwrite_shared, MPI_File, void *, int,
90 MPI_Datatype, MPIO_Request *)
91 AMPI_CUSTOM_FUNC(int, MPI_File_read_ordered, MPI_File, void *, int,
92 MPI_Datatype, MPI_Status *)
93 AMPI_CUSTOM_FUNC(int, MPI_File_write_ordered, MPI_File, void *, int,
94 MPI_Datatype, MPI_Status *)
95 AMPI_CUSTOM_FUNC(int, MPI_File_seek_shared, MPI_File, MPI_Offset, int)
96 AMPI_CUSTOM_FUNC(int, MPI_File_get_position_shared, MPI_File, MPI_Offset *)
98 /* Section 9.4.5 */
99 AMPI_CUSTOM_FUNC(int, MPI_File_read_at_all_begin, MPI_File, MPI_Offset, void *,
100 int, MPI_Datatype)
101 AMPI_CUSTOM_FUNC(int, MPI_File_read_at_all_end, MPI_File, void *, MPI_Status *)
102 AMPI_CUSTOM_FUNC(int, MPI_File_write_at_all_begin, MPI_File, MPI_Offset, void *,
103 int, MPI_Datatype)
104 AMPI_CUSTOM_FUNC(int, MPI_File_write_at_all_end, MPI_File, void *, MPI_Status *)
105 AMPI_CUSTOM_FUNC(int, MPI_File_read_all_begin, MPI_File, void *, int, MPI_Datatype)
106 AMPI_CUSTOM_FUNC(int, MPI_File_read_all_end, MPI_File, void *, MPI_Status *)
107 AMPI_CUSTOM_FUNC(int, MPI_File_write_all_begin, MPI_File, void *, int, MPI_Datatype)
108 AMPI_CUSTOM_FUNC(int, MPI_File_write_all_end, MPI_File, void *, MPI_Status *)
109 AMPI_CUSTOM_FUNC(int, MPI_File_read_ordered_begin, MPI_File, void *, int, MPI_Datatype)
110 AMPI_CUSTOM_FUNC(int, MPI_File_read_ordered_end, MPI_File, void *, MPI_Status *)
111 AMPI_CUSTOM_FUNC(int, MPI_File_write_ordered_begin, MPI_File, void *, int, MPI_Datatype)
112 AMPI_CUSTOM_FUNC(int, MPI_File_write_ordered_end, MPI_File, void *, MPI_Status *)
114 /* Section 9.5.1 */
115 AMPI_CUSTOM_FUNC(int, MPI_File_get_type_extent, MPI_File, MPI_Datatype, MPI_Aint *)
117 /* Section 9.5.3 */
118 AMPI_CUSTOM_FUNC(int, MPI_Register_datarep, char *,
119 MPI_Datarep_conversion_function *,
120 MPI_Datarep_conversion_function *,
121 MPI_Datarep_extent_function *,
122 void *)
124 /* Section 9.6.1 */
125 AMPI_CUSTOM_FUNC(int, MPI_File_set_atomicity, MPI_File, int)
126 AMPI_CUSTOM_FUNC(int, MPI_File_get_atomicity, MPI_File, int *)
127 AMPI_CUSTOM_FUNC(int, MPI_File_sync, MPI_File)
129 /* Section 4.13.3 */
130 #ifndef MPICH2
131 /* MPICH2 provides these definitions */
132 AMPI_CUSTOM_FUNC(int, MPI_File_set_errhandler, MPI_File, MPI_Errhandler )
133 AMPI_CUSTOM_FUNC(int, MPI_File_get_errhandler, MPI_File, MPI_Errhandler * )
134 #endif
135 /* End Prototypes */
137 #ifndef HAVE_MPI_DARRAY_SUBARRAY
138 /* Section 4.14.4 */
139 AMPI_CUSTOM_FUNC(int, MPI_Type_create_subarray, int, int *, int *, int *, int,
140 MPI_Datatype, MPI_Datatype *)
142 /* Section 4.14.5 */
143 AMPI_CUSTOM_FUNC(int, MPI_Type_create_darray, int, int, int,
144 int *, int *, int *, int *,
145 int, MPI_Datatype, MPI_Datatype *)
146 #endif
148 /* The globus2 device has to rename MPI_ symbols in order to use the vendor
149 MPI as one of its transport mechanisms. Therefore, the following undefines
150 should only happen if MPICH_RENAMING_MPI_FUNCS is not defined. */
151 /* Section 4.12.4 */
152 #if !defined(MPICH_RENAMING_MPI_FUNCS)
153 #ifdef MPI_File_f2c
154 #undef MPI_File_f2c
155 #endif
156 #ifdef MPI_File_c2f
157 #undef MPI_File_c2f
158 #endif
159 #endif
160 /* above needed for some versions of mpi.h in MPICH!! */
161 AMPI_CUSTOM_FUNC(MPI_File, MPI_File_f2c, MPI_Fint)
162 AMPI_CUSTOM_FUNC(MPI_Fint, MPI_File_c2f, MPI_File)
165 #ifndef HAVE_MPI_GREQUEST
166 /* The following functions are required if generalized requests are not
167 available, because in that case, an MPIO_Request object
168 is currently used for nonblocking I/O. */
169 AMPI_CUSTOM_FUNC(int, MPIO_Test, MPIO_Request *, int *, MPI_Status *)
170 AMPI_CUSTOM_FUNC(int, MPIO_Wait, MPIO_Request *, MPI_Status *)
171 AMPI_CUSTOM_FUNC(int, MPIO_Testall, int, MPIO_Request *, int *, MPI_Status *)
172 AMPI_CUSTOM_FUNC(int, MPIO_Waitall, int, MPIO_Request *, MPI_Status *)
173 AMPI_CUSTOM_FUNC(int, MPIO_Testany, int, MPIO_Request *, int *, int *, MPI_Status *)
174 AMPI_CUSTOM_FUNC(int, MPIO_Waitany, int, MPIO_Request *, int *, MPI_Status *)
175 AMPI_CUSTOM_FUNC(int, MPIO_Waitsome, int, MPIO_Request *, int *, int *, MPI_Status *)
176 AMPI_CUSTOM_FUNC(int, MPIO_Testsome, int, MPIO_Request *, int *, int *, MPI_Status *)
178 AMPI_CUSTOM_FUNC(MPI_Fint, MPIO_Request_c2f, MPIO_Request)
179 AMPI_CUSTOM_FUNC(MPIO_Request, MPIO_Request_f2c, MPI_Fint)
180 #endif /* HAVE_MPI_GREQUEST */
182 /* info functions if not defined in the MPI implementation */
183 #ifndef HAVE_MPI_INFO
185 AMPI_CUSTOM_FUNC(int, MPI_Info_create, MPI_Info *)
186 AMPI_CUSTOM_FUNC(int, MPI_Info_set, MPI_Info, char *, char *)
187 AMPI_CUSTOM_FUNC(int, MPI_Info_delete, MPI_Info, char *)
188 AMPI_CUSTOM_FUNC(int, MPI_Info_get, MPI_Info, char *, int, char *, int *)
189 AMPI_CUSTOM_FUNC(int, MPI_Info_get_valuelen, MPI_Info, char *, int *, int *)
190 AMPI_CUSTOM_FUNC(int, MPI_Info_get_nkeys, MPI_Info, int *)
191 AMPI_CUSTOM_FUNC(int, MPI_Info_get_nthkey, MPI_Info, int, char *)
192 AMPI_CUSTOM_FUNC(int, MPI_Info_dup, MPI_Info, MPI_Info *)
193 AMPI_CUSTOM_FUNC(int, MPI_Info_free, MPI_Info *)
195 /* The globus2 device has to rename MPI_ symbols in order to use the vendor
196 MPI as one of its transport mechanisms. Therefore, the following undefines
197 should only happen if MPICH_RENAMING_MPI_FUNCS is not defined. */
198 #if !defined(MPICH_RENAMING_MPI_FUNCS)
199 #ifdef MPI_Info_f2c
200 #undef MPI_Info_f2c
201 #endif
202 #ifdef MPI_Info_c2f
203 #undef MPI_Info_c2f
204 #endif
205 #endif
206 /* above needed for some versions of mpi.h in MPICH!! */
207 AMPI_CUSTOM_FUNC(MPI_Fint, MPI_Info_c2f, MPI_Info)
208 AMPI_CUSTOM_FUNC(MPI_Info, MPI_Info_f2c, MPI_Fint)
209 #endif
211 #endif /* HAVE_PRAGMA_HP_SEC_DEF */
214 /**************** BINDINGS FOR THE PROFILING INTERFACE ***************/
217 /* Section 9.2 */
218 #if 0
219 AMPI_CUSTOM_FUNC(int, PMPI_File_open, MPI_Comm, char *, int, MPI_Info, MPI_File *)
220 AMPI_CUSTOM_FUNC(int, PMPI_File_close, MPI_File *)
221 AMPI_CUSTOM_FUNC(int, PMPI_File_delete, char *, MPI_Info)
222 AMPI_CUSTOM_FUNC(int, PMPI_File_set_size, MPI_File, MPI_Offset)
223 AMPI_CUSTOM_FUNC(int, PMPI_File_preallocate, MPI_File, MPI_Offset)
224 AMPI_CUSTOM_FUNC(int, PMPI_File_get_size, MPI_File, MPI_Offset *)
225 AMPI_CUSTOM_FUNC(int, PMPI_File_get_group, MPI_File, MPI_Group *)
226 AMPI_CUSTOM_FUNC(int, PMPI_File_get_amode, MPI_File, int *)
227 AMPI_CUSTOM_FUNC(int, PMPI_File_set_info, MPI_File, MPI_Info)
228 AMPI_CUSTOM_FUNC(int, PMPI_File_get_info, MPI_File, MPI_Info *)
230 /* Section 9.3 */
231 AMPI_CUSTOM_FUNC(int, PMPI_File_set_view, MPI_File, MPI_Offset,
232 MPI_Datatype, MPI_Datatype, char *, MPI_Info)
233 AMPI_CUSTOM_FUNC(int, PMPI_File_get_view, MPI_File, MPI_Offset *,
234 MPI_Datatype *, MPI_Datatype *, char *)
236 /* Section 9.4.2 */
237 AMPI_CUSTOM_FUNC(int, PMPI_File_read_at, MPI_File, MPI_Offset, void *,
238 int, MPI_Datatype, MPI_Status *)
239 AMPI_CUSTOM_FUNC(int, PMPI_File_read_at_all, MPI_File, MPI_Offset, void *,
240 int, MPI_Datatype, MPI_Status *)
241 AMPI_CUSTOM_FUNC(int, PMPI_File_write_at, MPI_File, MPI_Offset, void *,
242 int, MPI_Datatype, MPI_Status *)
243 AMPI_CUSTOM_FUNC(int, PMPI_File_write_at_all, MPI_File, MPI_Offset, void *,
244 int, MPI_Datatype, MPI_Status *)
246 /* nonblocking calls currently use MPIO_Request, because generalized
247 requests not yet implemented. For the same reason, MPIO_Test and
248 MPIO_Wait are used to test and wait on nonblocking I/O requests */
250 AMPI_CUSTOM_FUNC(int, PMPI_File_iread_at, MPI_File, MPI_Offset, void *,
251 int, MPI_Datatype, MPIO_Request *)
252 AMPI_CUSTOM_FUNC(int, PMPI_File_iwrite_at, MPI_File, MPI_Offset, void *,
253 int, MPI_Datatype, MPIO_Request *)
255 /* Section 9.4.3 */
256 AMPI_CUSTOM_FUNC(int, PMPI_File_read, MPI_File, void *, int, MPI_Datatype, MPI_Status *)
257 AMPI_CUSTOM_FUNC(int, PMPI_File_read_all, MPI_File, void *, int, MPI_Datatype, MPI_Status *)
258 AMPI_CUSTOM_FUNC(int, PMPI_File_write, MPI_File, void *, int, MPI_Datatype, MPI_Status *)
259 AMPI_CUSTOM_FUNC(int, PMPI_File_write_all, MPI_File, void *, int, MPI_Datatype, MPI_Status *)
261 /* nonblocking calls currently use MPIO_Request, because generalized
262 requests not yet implemented. For the same reason, MPIO_Test and
263 MPIO_Wait are used to test and wait on nonblocking I/O requests */
265 AMPI_CUSTOM_FUNC(int, PMPI_File_iread, MPI_File, void *, int, MPI_Datatype, MPIO_Request *)
266 AMPI_CUSTOM_FUNC(int, PMPI_File_iwrite, MPI_File, void *, int, MPI_Datatype, MPIO_Request *)
268 AMPI_CUSTOM_FUNC(int, PMPI_File_seek, MPI_File, MPI_Offset, int)
269 AMPI_CUSTOM_FUNC(int, PMPI_File_get_position, MPI_File, MPI_Offset *)
270 AMPI_CUSTOM_FUNC(int, PMPI_File_get_byte_offset, MPI_File, MPI_Offset, MPI_Offset *)
272 /* Section 9.4.4 */
273 AMPI_CUSTOM_FUNC(int, PMPI_File_read_shared, MPI_File, void *, int, MPI_Datatype, MPI_Status *)
274 AMPI_CUSTOM_FUNC(int, PMPI_File_write_shared, MPI_File, void *, int, MPI_Datatype, MPI_Status *)
275 AMPI_CUSTOM_FUNC(int, PMPI_File_iread_shared, MPI_File, void *, int,
276 MPI_Datatype, MPIO_Request *)
277 AMPI_CUSTOM_FUNC(int, PMPI_File_iwrite_shared, MPI_File, void *, int,
278 MPI_Datatype, MPIO_Request *)
279 AMPI_CUSTOM_FUNC(int, PMPI_File_read_ordered, MPI_File, void *, int, MPI_Datatype, MPI_Status *)
280 AMPI_CUSTOM_FUNC(int, PMPI_File_write_ordered, MPI_File, void *, int, MPI_Datatype, MPI_Status *)
281 AMPI_CUSTOM_FUNC(int, PMPI_File_seek_shared, MPI_File, MPI_Offset, int)
282 AMPI_CUSTOM_FUNC(int, PMPI_File_get_position_shared, MPI_File, MPI_Offset *)
284 /* Section 9.4.5 */
285 AMPI_CUSTOM_FUNC(int, PMPI_File_read_at_all_begin, MPI_File, MPI_Offset, void *,
286 int, MPI_Datatype)
287 AMPI_CUSTOM_FUNC(int, PMPI_File_read_at_all_end, MPI_File, void *, MPI_Status *)
288 AMPI_CUSTOM_FUNC(int, PMPI_File_write_at_all_begin, MPI_File, MPI_Offset, void *,
289 int, MPI_Datatype)
290 AMPI_CUSTOM_FUNC(int, PMPI_File_write_at_all_end, MPI_File, void *, MPI_Status *)
291 AMPI_CUSTOM_FUNC(int, PMPI_File_read_all_begin, MPI_File, void *, int, MPI_Datatype)
292 AMPI_CUSTOM_FUNC(int, PMPI_File_read_all_end, MPI_File, void *, MPI_Status *)
293 AMPI_CUSTOM_FUNC(int, PMPI_File_write_all_begin, MPI_File, void *, int, MPI_Datatype)
294 AMPI_CUSTOM_FUNC(int, PMPI_File_write_all_end, MPI_File, void *, MPI_Status *)
295 AMPI_CUSTOM_FUNC(int, PMPI_File_read_ordered_begin, MPI_File, void *, int, MPI_Datatype)
296 AMPI_CUSTOM_FUNC(int, PMPI_File_read_ordered_end, MPI_File, void *, MPI_Status *)
297 AMPI_CUSTOM_FUNC(int, PMPI_File_write_ordered_begin, MPI_File, void *, int, MPI_Datatype)
298 AMPI_CUSTOM_FUNC(int, PMPI_File_write_ordered_end, MPI_File, void *, MPI_Status *)
300 /* Section 9.5.1 */
301 AMPI_CUSTOM_FUNC(int, PMPI_File_get_type_extent, MPI_File, MPI_Datatype, MPI_Aint *)
303 /* Section 9.5.3 */
304 AMPI_CUSTOM_FUNC(int, PMPI_Register_datarep, char *,
305 MPI_Datarep_conversion_function *,
306 MPI_Datarep_conversion_function *,
307 MPI_Datarep_extent_function *,
308 void *)
310 /* Section 9.6.1 */
311 AMPI_CUSTOM_FUNC(int, PMPI_File_set_atomicity, MPI_File, int)
312 AMPI_CUSTOM_FUNC(int, PMPI_File_get_atomicity, MPI_File, int *)
313 AMPI_CUSTOM_FUNC(int, PMPI_File_sync, MPI_File)
315 /* Section 4.13.3 */
316 #ifndef MPICH2
317 /* MPICH2 provides these definitions */
318 AMPI_CUSTOM_FUNC(int, PMPI_File_set_errhandler, MPI_File, MPI_Errhandler )
319 AMPI_CUSTOM_FUNC(int, PMPI_File_get_errhandler, MPI_File, MPI_Errhandler * )
320 #endif
322 #ifndef HAVE_MPI_DARRAY_SUBARRAY
323 /* Section 4.14.4 */
324 AMPI_CUSTOM_FUNC(int, PMPI_Type_create_subarray, int, int *, int *, int *, int,
325 MPI_Datatype, MPI_Datatype *)
327 /* Section 4.14.5 */
328 AMPI_CUSTOM_FUNC(int, PMPI_Type_create_darray, int, int, int, int *, int *,
329 int *, int *, int, MPI_Datatype, MPI_Datatype *)
330 #endif
332 /* Section 4.12.4 */
333 AMPI_CUSTOM_FUNC(MPI_File, PMPI_File_f2c, MPI_Fint)
334 AMPI_CUSTOM_FUNC(MPI_Fint, PMPI_File_c2f, MPI_File)
336 #ifndef HAVE_MPI_GREQUEST
337 /* The following functions are required if generalized requests are not
338 available, because in that case, an MPIO_Request object
339 is currently used for nonblocking I/O. */
340 AMPI_CUSTOM_FUNC(int, PMPIO_Test, MPIO_Request *, int *, MPI_Status *)
341 AMPI_CUSTOM_FUNC(int, PMPIO_Wait, MPIO_Request *, MPI_Status *)
342 AMPI_CUSTOM_FUNC(int, PMPIO_Testall, int, MPIO_Request *, int *, MPI_Status *)
343 AMPI_CUSTOM_FUNC(int, PMPIO_Waitall, int, MPIO_Request *, MPI_Status *)
344 AMPI_CUSTOM_FUNC(int, PMPIO_Testany, int, MPIO_Request *, int *, int *, MPI_Status *)
345 AMPI_CUSTOM_FUNC(int, PMPIO_Waitany, int, MPIO_Request *, int *, MPI_Status *)
346 AMPI_CUSTOM_FUNC(int, PMPIO_Waitsome, int, MPIO_Request *, int *, int *, MPI_Status *)
347 AMPI_CUSTOM_FUNC(int, PMPIO_Testsome, int, MPIO_Request *, int *, int *, MPI_Status *)
348 AMPI_CUSTOM_FUNC(MPI_Fint, PMPIO_Request_c2f, MPIO_Request)
349 AMPI_CUSTOM_FUNC(MPIO_Request, PMPIO_Request_f2c, MPI_Fint)
350 #endif /* HAVE_MPI_GREQUEST */
352 /* info functions if not defined in the MPI implementation */
353 #ifndef HAVE_MPI_INFO
355 AMPI_CUSTOM_FUNC(int, PMPI_Info_create, MPI_Info *)
356 AMPI_CUSTOM_FUNC(int, PMPI_Info_set, MPI_Info, char *, char *)
357 AMPI_CUSTOM_FUNC(int, PMPI_Info_delete, MPI_Info, char *)
358 AMPI_CUSTOM_FUNC(int, PMPI_Info_get, MPI_Info, char *, int, char *, int *)
359 AMPI_CUSTOM_FUNC(int, PMPI_Info_get_valuelen, MPI_Info, char *, int *, int *)
360 AMPI_CUSTOM_FUNC(int, PMPI_Info_get_nkeys, MPI_Info, int *)
361 AMPI_CUSTOM_FUNC(int, PMPI_Info_get_nthkey, MPI_Info, int, char *)
362 AMPI_CUSTOM_FUNC(int, PMPI_Info_dup, MPI_Info, MPI_Info *)
363 AMPI_CUSTOM_FUNC(int, PMPI_Info_free, MPI_Info *)
365 AMPI_CUSTOM_FUNC(MPI_Fint, PMPI_Info_c2f, MPI_Info)
366 AMPI_CUSTOM_FUNC(MPI_Info, PMPI_Info_f2c, MPI_Fint)
367 #endif
368 #endif