1
2
3
4
5
6
7
8
9
10
11
12 #ifndef SHMEM_FORTRAN_BINDINGS_H
13 #define SHMEM_FORTRAN_BINDINGS_H
14
15 #include "prototypes_shmem.h"
16 #include "ompi/mpi/fortran/base/fint_2_int.h"
17
18 #define SHMEM_GENERATE_FORTRAN_BINDINGS_FUNCTION(ret, \
19 upper_case, \
20 single_underscore, \
21 double_underscore, \
22 wrapper_function, \
23 signature, \
24 params) \
25 ret upper_case signature {return wrapper_function params; } \
26 ret single_underscore signature {return wrapper_function params; } \
27 ret double_underscore signature {return wrapper_function params; }
28
29 #define SHMEM_GENERATE_FORTRAN_BINDINGS_SUB(ret, \
30 upper_case, \
31 single_underscore, \
32 double_underscore, \
33 wrapper_function, \
34 signature, \
35 params) \
36 ret upper_case signature {wrapper_function params; } \
37 ret single_underscore signature {wrapper_function params; } \
38 ret double_underscore signature {wrapper_function params; }
39
40 #define FPTR_2_INT(ptr, size) ((size) == sizeof(uint64_t) ? *(uint64_t*)(ptr) : *(uint32_t*)(ptr))
41
42 #endif