1 /* -*- Mode: C; c-basic-offset:4 ; -*- */
5 * Copyright (C) 1997 University of Chicago.
6 * See COPYRIGHT notice in top-level directory.
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
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
*)
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 *)
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
*)
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
*)
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
*)
99 AMPI_CUSTOM_FUNC(int, MPI_File_read_at_all_begin
, MPI_File
, MPI_Offset
, void *,
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 *,
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
*)
115 AMPI_CUSTOM_FUNC(int, MPI_File_get_type_extent
, MPI_File
, MPI_Datatype
, MPI_Aint
*)
118 AMPI_CUSTOM_FUNC(int, MPI_Register_datarep
, char *,
119 MPI_Datarep_conversion_function
*,
120 MPI_Datarep_conversion_function
*,
121 MPI_Datarep_extent_function
*,
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
)
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
* )
137 #ifndef HAVE_MPI_DARRAY_SUBARRAY
139 AMPI_CUSTOM_FUNC(int, MPI_Type_create_subarray
, int, int *, int *, int *, int,
140 MPI_Datatype
, MPI_Datatype
*)
143 AMPI_CUSTOM_FUNC(int, MPI_Type_create_darray
, int, int, int,
144 int *, int *, int *, int *,
145 int, MPI_Datatype
, MPI_Datatype
*)
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. */
152 #if !defined(MPICH_RENAMING_MPI_FUNCS)
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)
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
)
211 #endif /* HAVE_PRAGMA_HP_SEC_DEF */
214 /**************** BINDINGS FOR THE PROFILING INTERFACE ***************/
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
*)
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 *)
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
*)
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
*)
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
*)
285 AMPI_CUSTOM_FUNC(int, PMPI_File_read_at_all_begin
, MPI_File
, MPI_Offset
, void *,
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 *,
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
*)
301 AMPI_CUSTOM_FUNC(int, PMPI_File_get_type_extent
, MPI_File
, MPI_Datatype
, MPI_Aint
*)
304 AMPI_CUSTOM_FUNC(int, PMPI_Register_datarep
, char *,
305 MPI_Datarep_conversion_function
*,
306 MPI_Datarep_conversion_function
*,
307 MPI_Datarep_extent_function
*,
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
)
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
* )
322 #ifndef HAVE_MPI_DARRAY_SUBARRAY
324 AMPI_CUSTOM_FUNC(int, PMPI_Type_create_subarray
, int, int *, int *, int *, int,
325 MPI_Datatype
, MPI_Datatype
*)
328 AMPI_CUSTOM_FUNC(int, PMPI_Type_create_darray
, int, int, int, int *, int *,
329 int *, int *, int, MPI_Datatype
, MPI_Datatype
*)
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
)