OpenMPI  0.1.1
vt_fbindings.h
1 /**
2  * VampirTrace
3  * http://www.tu-dresden.de/zih/vampirtrace
4  *
5  * Copyright (c) 2005-2012, ZIH, TU Dresden, Federal Republic of Germany
6  *
7  * Copyright (c) 1998-2005, Forschungszentrum Juelich, Juelich Supercomputing
8  * Centre, Federal Republic of Germany
9  *
10  * See the file COPYING in the package base directory for details
11  **/
12 
13 #ifndef _VT_FBINDINGS_H
14 #define _VT_FBINDINGS_H
15 
16 #ifdef __cplusplus
17 # define EXTERN extern "C"
18 #else
19 # define EXTERN extern
20 #endif
21 
22 /* define all possible Fortran bindings for a function */
23 #define VT_GENERATE_F77_BINDINGS(lower_case, \
24  upper_case, \
25  wrapper_function, \
26  signature, \
27  params) \
28  void lower_case signature; \
29  void lower_case signature { wrapper_function params; } \
30  void lower_case##_ signature; \
31  void lower_case##_ signature { wrapper_function params; } \
32  void lower_case##__ signature; \
33  void lower_case##__ signature { wrapper_function params; } \
34  void upper_case signature; \
35  void upper_case signature { wrapper_function params; }
36 
37 /* create a C string from an F77 string (allocates *cstr if NULL) */
38 EXTERN void vt_string_f2c(const char* fstr, int len, char** cstr);
39 
40 /* create a F77 string from a C string */
41 EXTERN void vt_string_c2f(const char* cstr, char* fstr, int len);
42 
43 #endif /* _VT_FBINDINGS_H */