diff --git a/ompi/mpi/fortran/mpif-h/win_allocate_shared_f.c b/ompi/mpi/fortran/mpif-h/win_allocate_shared_f.c new file mode 100644 index 0000000000..3db22dd2c4 --- /dev/null +++ b/ompi/mpi/fortran/mpif-h/win_allocate_shared_f.c @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2005 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2011-2014 Cisco Systems, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/mpi/fortran/mpif-h/bindings.h" + +#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER +#pragma weak PMPI_WIN_ALLOCATE_SHARED = ompi_win_allocate_shared_f +#pragma weak pmpi_win_allocate_shared = ompi_win_allocate_shared_f +#pragma weak pmpi_win_allocate_shared_ = ompi_win_allocate_shared_f +#pragma weak pmpi_win_allocate_shared__ = ompi_win_allocate_shared_f + +#pragma weak Pmpi_win_allocate_shared_f = ompi_win_allocate_shared_f +#pragma weak Pmpi_win_allocate_shared_f08 = ompi_win_allocate_shared_f +#elif OMPI_PROFILE_LAYER +OMPI_GENERATE_F77_BINDINGS (PMPI_WIN_ALLOCATE_SHARED, + pmpi_win_allocate_shared, + pmpi_win_allocate_shared_, + pmpi_win_allocate_shared__, + pompi_win_allocate_shared_f, + (MPI_Aint *size, MPI_Fint *disp_unit, + MPI_Fint *info, MPI_Fint *comm, char *baseptr, + MPI_Fint *win, MPI_Fint *ierr) +#endif + +#if OPAL_HAVE_WEAK_SYMBOLS +#pragma weak MPI_WIN_ALLOCATE_SHARED = ompi_win_allocate_shared_f +#pragma weak mpi_win_allocate_shared = ompi_win_allocate_shared_f +#pragma weak mpi_win_allocate_shared_ = ompi_win_allocate_shared_f +#pragma weak mpi_win_allocate_shared__ = ompi_win_allocate_shared_f + +#pragma weak mpi_win_allocate_shared_f = ompi_win_allocate_shared_f +#pragma weak mpi_win_allocate_shared_f08 = ompi_win_allocate_shared_f +#endif + +#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER +OMPI_GENERATE_F77_BINDINGS (MPI_WIN_ALLOCATE_SHARED, + mpi_win_allocate_shared, + mpi_win_allocate_shared_, + mpi_win_allocate_shared__, + ompi_win_allocate_shared_f, + (MPI_Aint *size, MPI_Fint *disp_unit, + MPI_Fint *info, MPI_Fint *comm, char *baseptr, + MPI_Fint *win, MPI_Fint *ierr) +#endif + + +#if OMPI_PROFILE_LAYER && ! OPAL_HAVE_WEAK_SYMBOLS +#include "ompi/mpi/fortran/mpif-h/profile/defines.h" +#endif + +void ompi_win_allocate_shared_f(MPI_Aint *size, MPI_Fint *disp_unit, + MPI_Fint *info, MPI_Fint *comm, char *baseptr, + MPI_Fint *win, MPI_Fint *ierr) +{ + int c_ierr; + MPI_Info c_info; + MPI_Comm c_comm; + MPI_Win c_win; + + c_info = MPI_Info_f2c(*info); + c_comm = MPI_Comm_f2c(*comm); + + c_ierr = MPI_Win_allocate_shared(*size, OMPI_FINT_2_INT(*disp_unit), + c_info, c_comm, + baseptr, &c_win); + *win = MPI_Win_c2f(c_win); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +} diff --git a/ompi/mpi/fortran/mpif-h/win_shared_query_f.c b/ompi/mpi/fortran/mpif-h/win_shared_query_f.c new file mode 100644 index 0000000000..8e25329a0b --- /dev/null +++ b/ompi/mpi/fortran/mpif-h/win_shared_query_f.c @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2005 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2011-2014 Cisco Systems, Inc. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + */ + +#include "ompi_config.h" + +#include "ompi/mpi/fortran/mpif-h/bindings.h" + +#if OPAL_HAVE_WEAK_SYMBOLS && OMPI_PROFILE_LAYER +#pragma weak PMPI_WIN_SHARED_QUERY = ompi_win_shared_query_f +#pragma weak pmpi_win_shared_query = ompi_win_shared_query_f +#pragma weak pmpi_win_shared_query_ = ompi_win_shared_query_f +#pragma weak pmpi_win_shared_query__ = ompi_win_shared_query_f + +#pragma weak Pmpi_win_shared_query_f = ompi_win_shared_query_f +#pragma weak Pmpi_win_shared_query_f08 = ompi_win_shared_query_f +#elif OMPI_PROFILE_LAYER +OMPI_GENERATE_F77_BINDINGS (PMPI_WIN_SHARED_QUERY, + pmpi_win_shared_query, + pmpi_win_shared_query_, + pmpi_win_shared_query__, + pompi_win_shared_query_f, + (MPI_Fint *win, MPI_Fint *rank, MPI_Aint *size, + MPI_Fint *disp_unit, char *baseptr, + MPI_Fint *ierr) +#endif + +#if OPAL_HAVE_WEAK_SYMBOLS +#pragma weak MPI_WIN_SHARED_QUERY = ompi_win_shared_query_f +#pragma weak mpi_win_shared_query = ompi_win_shared_query_f +#pragma weak mpi_win_shared_query_ = ompi_win_shared_query_f +#pragma weak mpi_win_shared_query__ = ompi_win_shared_query_f + +#pragma weak mpi_win_shared_query_f = ompi_win_shared_query_f +#pragma weak mpi_win_shared_query_f08 = ompi_win_shared_query_f +#endif + +#if ! OPAL_HAVE_WEAK_SYMBOLS && ! OMPI_PROFILE_LAYER +OMPI_GENERATE_F77_BINDINGS (MPI_WIN_SHARED_QUERY, + mpi_win_shared_query, + mpi_win_shared_query_, + mpi_win_shared_query__, + ompi_win_shared_query_f, + (MPI_Fint *win, MPI_Fint *rank, MPI_Aint *size, + MPI_Fint *disp_unit, char *baseptr, + MPI_Fint *ierr) +#endif + + +#if OMPI_PROFILE_LAYER && ! OPAL_HAVE_WEAK_SYMBOLS +#include "ompi/mpi/fortran/mpif-h/profile/defines.h" +#endif + +void ompi_win_shared_query_f(MPI_Fint *win, MPI_Fint *rank, MPI_Aint *size, + MPI_Fint *disp_unit, char *baseptr, + MPI_Fint *ierr) +{ + int c_ierr; + MPI_Win c_win; + + c_win = MPI_Win_f2c(*win); + + c_ierr = MPI_Win_shared_query(c_win, OMPI_FINT_2_INT(*rank), size, + OMPI_FINT_2_INT(disp_unit), baseptr); + if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr); +}