OpenMPI  0.1.1
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 */