1 /*
2 * Copyright (c) 2015 Research Organization for Information Science
3 * and Technology (RIST). All rights reserved.
4 * $COPYRIGHT$
5 *
6 * Additional copyrights may follow
7 *
8 * $HEADER$
9 */
10
11 #include "ompi_config.h"
12
13 #include "ompi/mpi/fortran/mpif-h/bindings.h"
14
15 #if OMPI_BUILD_MPI_PROFILING
16 #if OPAL_HAVE_WEAK_SYMBOLS
17 #pragma weak PMPI_WIN_DETACH = ompi_win_detach_f
18 #pragma weak pmpi_win_detach = ompi_win_detach_f
19 #pragma weak pmpi_win_detach_ = ompi_win_detach_f
20 #pragma weak pmpi_win_detach__ = ompi_win_detach_f
21
22 #pragma weak PMPI_Win_detach_f = ompi_win_detach_f
23 #pragma weak PMPI_Win_detach_f08 = ompi_win_detach_f
24 #else
25 OMPI_GENERATE_F77_BINDINGS (PMPI_WIN_DETACH,
26 pmpi_win_detach,
27 pmpi_win_detach_,
28 pmpi_win_detach__,
29 pompi_win_detach_f,
30 (MPI_Fint *win, char *base, MPI_Fint *ierr),
31 (win, base, ierr) )
32 #endif
33 #endif
34
35 #if OPAL_HAVE_WEAK_SYMBOLS
36 #pragma weak MPI_WIN_DETACH = ompi_win_detach_f
37 #pragma weak mpi_win_detach = ompi_win_detach_f
38 #pragma weak mpi_win_detach_ = ompi_win_detach_f
39 #pragma weak mpi_win_detach__ = ompi_win_detach_f
40
41 #pragma weak MPI_Win_detach_f = ompi_win_detach_f
42 #pragma weak MPI_Win_detach_f08 = ompi_win_detach_f
43 #else
44 #if ! OMPI_BUILD_MPI_PROFILING
45 OMPI_GENERATE_F77_BINDINGS (MPI_WIN_DETACH,
46 mpi_win_detach,
47 mpi_win_detach_,
48 mpi_win_detach__,
49 ompi_win_detach_f,
50 (MPI_Fint *win, char *base, MPI_Fint *ierr),
51 (win, base, ierr) )
52 #else
53 #define ompi_win_detach_f pompi_win_detach_f
54 #endif
55 #endif
56
57
ompi_win_detach_f(MPI_Fint * win,char * base,MPI_Fint * ierr)58 void ompi_win_detach_f(MPI_Fint *win, char *base,
59 MPI_Fint *ierr)
60 {
61 int c_ierr;
62 MPI_Win c_win;
63
64 c_win = PMPI_Win_f2c(*win);
65 c_ierr = PMPI_Win_detach(c_win, base);
66 if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr);
67 }
68