OpenMPI 0.1.1

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

- File List
- Globals

bindings.h
1 /*
2 * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
3 * University Research and Technology
4 * Corporation. All rights reserved.
5 * Copyright (c) 2004-2005 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 #ifndef OMPI_F77_BINDINGS_H
20 #define OMPI_F77_BINDINGS_H
21
22 #include "ompi_config.h"
23
24 #include "mpi.h"
25 #include "ompi/request/grequest.h"
26
27 /*
28 * We now build all four fortran bindings and dont care too much about
29 * which convention (lowercase, underscore, double underscore or
30 * all uppercase) is supported by the compiler. The policy now is to
31 * have the mpi_*_f functions be the default symbols and then wrap
32 * the four signature types around it. The macro below achieves this.
33 */
34 #define OMPI_GENERATE_F77_BINDINGS(upper_case, \
35 lower_case, \
36 single_underscore, \
37 double_underscore, \
38 wrapper_function, \
39 signature, \
40 params) \
41 void upper_case signature { wrapper_function params; } \
42 void lower_case signature { wrapper_function params; } \
43 void single_underscore signature { wrapper_function params; } \
44 void double_underscore signature { wrapper_function params; }
45 /*
46 * We maintain 2 seperate sets of defines and prototypes. This ensures that
47 * we can build MPI_* bindings or PMPI_* bindings as ad when needed. The
48 * top-level always builds MPI_* bindings and bottom level will always build
49 * PMPI_* bindings. This means that top-level includes "src/mpi/interface/f77"
50 * .h files and lower-level includes "src/mpi/interface/f77/profile" .h files
51 *
52 * Both prototypes for all MPI- PMPI functions is moved into prototypes_mpi.h
53 */
54
55 #include "ompi/mpi/f77/prototypes_mpi.h"
56
57 #include "ompi/mpi/f77/fint_2_int.h"
58
59 #endif /* OMPI_F77_BINDINGS_H */