AMPI: Add fsglobals (filesystem) and pipglobals (Process-in-Process) privatization...
[charm.git] / src / libs / ck-libs / ampi / ampi_funcptr.h
1 #ifndef AMPI_FUNCPTR_H_
2 #define AMPI_FUNCPTR_H_
3
4 #include "ampi.h"
5
6
7 #define AMPI_CUSTOM_FUNCPTR_DEF(return_type, function_name, ...) \
8   return_type (* function_name)(__VA_ARGS__);
9 #if AMPI_HAVE_PMPI
10   #define AMPI_FUNCPTR_DEF(return_type, function_name, ...) \
11     return_type (* function_name)(__VA_ARGS__);             \
12     return_type (* P##function_name)(__VA_ARGS__);
13 #else
14   #define AMPI_FUNCPTR_DEF AMPI_CUSTOM_FUNCPTR_DEF
15 #endif
16
17
18 struct AMPI_FuncPtr_Transport
19 {
20 #define AMPI_FUNC AMPI_FUNCPTR_DEF
21 #define AMPI_FUNC_NOIMPL AMPI_FUNC
22 #define AMPI_CUSTOM_FUNC AMPI_CUSTOM_FUNCPTR_DEF
23
24 #include "ampi_functions.h"
25
26 #undef AMPI_FUNC
27 #undef AMPI_FUNC_NOIMPL
28 #undef AMPI_CUSTOM_FUNC
29 };
30
31
32 #endif /* AMPI_FUNCPTR_H_ */