root/ompi/mpi/fortran/base/attr_fn_f.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. OMPI_GENERATE_F77_BINDINGS
  2. ompi_type_null_copy_fn_f
  3. ompi_type_dup_fn_f
  4. ompi_comm_null_delete_fn_f
  5. ompi_comm_null_copy_fn_f
  6. ompi_comm_dup_fn_f
  7. ompi_null_delete_fn_f
  8. ompi_null_copy_fn_f
  9. ompi_dup_fn_f
  10. ompi_win_null_delete_fn_f
  11. ompi_win_null_copy_fn_f
  12. ompi_win_dup_fn_f

   1 /*
   2  * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
   3  *                         University Research and Technology
   4  *                         Corporation.  All rights reserved.
   5  * Copyright (c) 2004-2005 The University of Tennessee and The University
   6  *                         of Tennessee Research Foundation.  All rights
   7  *                         reserved.
   8  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
   9  *                         University of Stuttgart.  All rights reserved.
  10  * Copyright (c) 2004-2005 The Regents of the University of California.
  11  *                         All rights reserved.
  12  * Copyright (c) 2006-2012 Cisco Systems, Inc.  All rights reserved.
  13  * $COPYRIGHT$
  14  *
  15  * Additional copyrights may follow
  16  *
  17  * $HEADER$
  18  */
  19 
  20 #include "ompi_config.h"
  21 
  22 #include "ompi/mpi/fortran/mpif-h/bindings.h"
  23 #include "ompi/mpi/fortran/base/fint_2_int.h"
  24 
  25 #if OPAL_HAVE_WEAK_SYMBOLS
  26 #pragma weak MPI_TYPE_NULL_COPY_FN   = ompi_type_null_copy_fn_f
  27 #pragma weak mpi_type_null_copy_fn   = ompi_type_null_copy_fn_f
  28 #pragma weak mpi_type_null_copy_fn_  = ompi_type_null_copy_fn_f
  29 #pragma weak mpi_type_null_copy_fn__ = ompi_type_null_copy_fn_f
  30 
  31 #pragma weak MPI_TYPE_NULL_DELETE_FN   = ompi_type_null_delete_fn_f
  32 #pragma weak mpi_type_null_delete_fn   = ompi_type_null_delete_fn_f
  33 #pragma weak mpi_type_null_delete_fn_  = ompi_type_null_delete_fn_f
  34 #pragma weak mpi_type_null_delete_fn__ = ompi_type_null_delete_fn_f
  35 
  36 #pragma weak MPI_TYPE_DUP_FN   = ompi_type_dup_fn_f
  37 #pragma weak mpi_type_dup_fn   = ompi_type_dup_fn_f
  38 #pragma weak mpi_type_dup_fn_  = ompi_type_dup_fn_f
  39 #pragma weak mpi_type_dup_fn__ = ompi_type_dup_fn_f
  40 
  41 #pragma weak MPI_COMM_NULL_DELETE_FN   = ompi_comm_null_delete_fn_f
  42 #pragma weak mpi_comm_null_delete_fn   = ompi_comm_null_delete_fn_f
  43 #pragma weak mpi_comm_null_delete_fn_  = ompi_comm_null_delete_fn_f
  44 #pragma weak mpi_comm_null_delete_fn__ = ompi_comm_null_delete_fn_f
  45 
  46 #pragma weak MPI_COMM_DUP_FN   = ompi_comm_dup_fn_f
  47 #pragma weak mpi_comm_dup_fn   = ompi_comm_dup_fn_f
  48 #pragma weak mpi_comm_dup_fn_  = ompi_comm_dup_fn_f
  49 #pragma weak mpi_comm_dup_fn__ = ompi_comm_dup_fn_f
  50 
  51 #pragma weak MPI_COMM_NULL_COPY_FN   = ompi_comm_null_copy_fn_f
  52 #pragma weak mpi_comm_null_copy_fn   = ompi_comm_null_copy_fn_f
  53 #pragma weak mpi_comm_null_copy_fn_  = ompi_comm_null_copy_fn_f
  54 #pragma weak mpi_comm_null_copy_fn__ = ompi_comm_null_copy_fn_f
  55 
  56 #pragma weak MPI_WIN_NULL_DELETE_FN   = ompi_win_null_delete_fn_f
  57 #pragma weak mpi_win_null_delete_fn   = ompi_win_null_delete_fn_f
  58 #pragma weak mpi_win_null_delete_fn_  = ompi_win_null_delete_fn_f
  59 #pragma weak mpi_win_null_delete_fn__ = ompi_win_null_delete_fn_f
  60 
  61 #pragma weak MPI_WIN_NULL_COPY_FN   = ompi_win_null_copy_fn_f
  62 #pragma weak mpi_win_null_copy_fn   = ompi_win_null_copy_fn_f
  63 #pragma weak mpi_win_null_copy_fn_  = ompi_win_null_copy_fn_f
  64 #pragma weak mpi_win_null_copy_fn__ = ompi_win_null_copy_fn_f
  65 
  66 #pragma weak MPI_WIN_DUP_FN   = ompi_win_dup_fn_f
  67 #pragma weak mpi_win_dup_fn   = ompi_win_dup_fn_f
  68 #pragma weak mpi_win_dup_fn_  = ompi_win_dup_fn_f
  69 #pragma weak mpi_win_dup_fn__ = ompi_win_dup_fn_f
  70 
  71 #pragma weak MPI_NULL_COPY_FN   = ompi_null_copy_fn_f
  72 #pragma weak mpi_null_copy_fn   = ompi_null_copy_fn_f
  73 #pragma weak mpi_null_copy_fn_  = ompi_null_copy_fn_f
  74 #pragma weak mpi_null_copy_fn__ = ompi_null_copy_fn_f
  75 
  76 #pragma weak MPI_NULL_DELETE_FN   = ompi_null_delete_fn_f
  77 #pragma weak mpi_null_delete_fn   = ompi_null_delete_fn_f
  78 #pragma weak mpi_null_delete_fn_  = ompi_null_delete_fn_f
  79 #pragma weak mpi_null_delete_fn__ = ompi_null_delete_fn_f
  80 
  81 #pragma weak MPI_DUP_FN   = ompi_dup_fn_f
  82 #pragma weak mpi_dup_fn   = ompi_dup_fn_f
  83 #pragma weak mpi_dup_fn_  = ompi_dup_fn_f
  84 #pragma weak mpi_dup_fn__ = ompi_dup_fn_f
  85 
  86 #else
  87 OMPI_GENERATE_F77_BINDINGS( MPI_TYPE_NULL_DELETE_FN,
  88                             mpi_type_null_delete_fn,
  89                             mpi_type_null_delete_fn_,
  90                             mpi_type_null_delete_fn__,
  91                             ompi_type_null_delete_fn_f,
  92                             (MPI_Fint* type, MPI_Fint* type_keyval, MPI_Aint* attribute_val_out, MPI_Aint* extra_state, MPI_Fint* ierr),
  93                             (type, type_keyval, attribute_val_out, extra_state, ierr) )
  94 OMPI_GENERATE_F77_BINDINGS( MPI_TYPE_NULL_COPY_FN,
  95                             mpi_type_null_copy_fn,
  96                             mpi_type_null_copy_fn_,
  97                             mpi_type_null_copy_fn__,
  98                             ompi_type_null_copy_fn_f,
  99                             (MPI_Fint* type, MPI_Fint* type_keyval, MPI_Aint* extra_state, MPI_Aint* attribute_val_in, MPI_Aint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr),
 100                             (type, type_keyval, extra_state, attribute_val_in, attribute_val_out, flag, ierr) )
 101 OMPI_GENERATE_F77_BINDINGS( MPI_TYPE_DUP_FN,
 102                             mpi_type_dup_fn,
 103                             mpi_type_dup_fn_,
 104                             mpi_type_dup_fn__,
 105                             ompi_type_dup_fn_f,
 106                             (MPI_Fint* type, MPI_Fint* type_keyval, MPI_Aint* extra_state, MPI_Aint* attribute_val_in, MPI_Aint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr),
 107                             (type, type_keyval, extra_state, attribute_val_in, attribute_val_out, flag, ierr) )
 108 OMPI_GENERATE_F77_BINDINGS( MPI_COMM_NULL_DELETE_FN,
 109                             mpi_comm_null_delete_fn,
 110                             mpi_comm_null_delete_fn_,
 111                             mpi_comm_null_delete_fn__,
 112                             ompi_comm_null_delete_fn_f,
 113                             (MPI_Fint* comm, MPI_Fint* comm_keyval,MPI_Aint* attribute_val_out, MPI_Aint* extra_state, MPI_Fint* ierr ),
 114                             (comm, comm_keyval, attribute_val_out, extra_state, ierr) )
 115 OMPI_GENERATE_F77_BINDINGS( MPI_COMM_NULL_COPY_FN,
 116                             mpi_comm_null_copy_fn,
 117                             mpi_comm_null_copy_fn_,
 118                             mpi_comm_null_copy_fn__,
 119                             ompi_comm_null_copy_fn_f,
 120                             (MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Aint* extra_state, MPI_Aint* attribute_val_in, MPI_Aint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr),
 121                             (comm, comm_keyval, extra_state, attribute_val_in, attribute_val_out, flag, ierr) )
 122 OMPI_GENERATE_F77_BINDINGS( MPI_COMM_DUP_FN,
 123                             mpi_comm_dup_fn,
 124                             mpi_comm_dup_fn_,
 125                             mpi_comm_dup_fn__,
 126                             ompi_comm_dup_fn_f,
 127                             (MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Aint* extra_state, MPI_Aint* attribute_val_in, MPI_Aint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr),
 128                             (comm, comm_keyval, extra_state, attribute_val_in, attribute_val_out, flag, ierr) )
 129 OMPI_GENERATE_F77_BINDINGS( MPI_NULL_DELETE_FN,
 130                             mpi_null_delete_fn,
 131                             mpi_null_delete_fn_,
 132                             mpi_null_delete_fn__,
 133                             ompi_null_delete_fn_f,
 134                             (MPI_Fint* comm, MPI_Fint* comm_keyval,MPI_Fint* attribute_val_out, MPI_Fint* extra_state, MPI_Fint* ierr ),
 135                             (comm, comm_keyval, attribute_val_out, extra_state, ierr) )
 136 OMPI_GENERATE_F77_BINDINGS( MPI_NULL_COPY_FN,
 137                             mpi_null_copy_fn,
 138                             mpi_null_copy_fn_,
 139                             mpi_null_copy_fn__,
 140                             ompi_null_copy_fn_f,
 141                             (MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr),
 142                             (comm, comm_keyval, extra_state, attribute_val_in, attribute_val_out, flag, ierr) )
 143 OMPI_GENERATE_F77_BINDINGS( MPI_DUP_FN,
 144                             mpi_dup_fn,
 145                             mpi_dup_fn_,
 146                             mpi_dup_fn__,
 147                             ompi_dup_fn_f,
 148                             (MPI_Fint* comm, MPI_Fint* comm_keyval, MPI_Fint* extra_state, MPI_Fint* attribute_val_in, MPI_Fint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr),
 149                             (comm, comm_keyval, extra_state, attribute_val_in, attribute_val_out, flag, ierr) )
 150 
 151 OMPI_GENERATE_F77_BINDINGS( MPI_WIN_NULL_DELETE_FN,
 152                             mpi_win_null_delete_fn,
 153                             mpi_win_null_delete_fn_,
 154                             mpi_win_null_delete_fn__,
 155                             ompi_win_null_delete_fn_f,
 156                             (MPI_Fint* type, MPI_Fint* type_keyval,MPI_Aint* attribute_val_out, MPI_Aint* extra_state, MPI_Fint* ierr ),
 157                             (type, type_keyval, attribute_val_out, extra_state, ierr) )
 158 OMPI_GENERATE_F77_BINDINGS( MPI_WIN_NULL_COPY_FN,
 159                             mpi_win_null_copy_fn,
 160                             mpi_win_null_copy_fn_,
 161                             mpi_win_null_copy_fn__,
 162                             ompi_win_null_copy_fn_f,
 163                             (MPI_Fint* window, MPI_Fint* win_keyval, MPI_Aint* extra_state, MPI_Aint* attribute_val_in, MPI_Aint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr),
 164                             (window, win_keyval, extra_state, attribute_val_in, attribute_val_out, flag, ierr) )
 165 OMPI_GENERATE_F77_BINDINGS( MPI_WIN_DUP_FN,
 166                             mpi_win_dup_fn,
 167                             mpi_win_dup_fn_,
 168                             mpi_win_dup_fn__,
 169                             ompi_win_dup_fn_f,
 170                             (MPI_Fint* window, MPI_Fint* win_keyval, MPI_Aint* extra_state, MPI_Aint* attribute_val_in, MPI_Aint* attribute_val_out, ompi_fortran_logical_t* flag, MPI_Fint* ierr),
 171                             (window, win_keyval, extra_state, attribute_val_in, attribute_val_out, flag, ierr) )
 172 #endif
 173 
 174 /*
 175  * Note that in this file, we invoke OMPI_C_<function> rather than
 176  * <function>, where <function> is MPI_DUP_FN (and all the rest).
 177  * Specifically:
 178  *
 179  *   MPI_NULL_DELETE_FN -> OMPI_C_MPI_NULL_DELETE_FN
 180  *   MPI_NULL_COPY_FN -> OMPI_C_MPI_NULL_COPY_FN
 181  *   MPI_DUP_FN -> OMPI_C_MPI_DUP_FN
 182  *
 183  *   MPI_TYPE_NULL_DELETE_FN -> OMPI_C_MPI_TYPE_NULL_DELETE_FN
 184  *   MPI_TYPE_NULL_COPY_FN -> OMPI_C_MPI_TYPE_NULL_COPY_FN
 185  *   MPI_TYPE_DUP_FN -> OMPI_C_MPI_TYPE_DUP_FN
 186  *
 187  *   MPI_COMM_NULL_DELETE_FN -> OMPI_C_MPI_COMM_NULL_DELETE_FN
 188  *   MPI_COMM_NULL_COPY_FN -> OMPI_C_MPI_COMM_NULL_COPY_FN
 189  *   MPI_COMM_DUP_FN -> OMPI_C_MPI_COMM_DUP_FN
 190  *
 191  *   MPI_WIN_NULL_DELETE_FN -> OMPI_C_MPI_WIN_NULL_DELETE_FN
 192  *   MPI_WIN_NULL_COPY_FN -> OMPI_C_MPI_WIN_NULL_COPY_FN
 193  *   MPI_WIN_DUP_FN -> OMPI_C_MPI_WIN_DUP_FN
 194  *
 195  * The reason why is discussed in a lengthy comment in mpi.h.
 196  */
 197 void ompi_type_null_delete_fn_f(MPI_Fint* type, MPI_Fint* type_keyval,
 198                                 MPI_Aint* attribute_val_out,
 199                                 MPI_Aint* extra_state, MPI_Fint* ierr)
 200 {
 201     *ierr = OMPI_INT_2_FINT(MPI_SUCCESS);
 202 }
 203 
 204 void ompi_type_null_copy_fn_f(MPI_Fint* type, MPI_Fint* type_keyval,
 205                               MPI_Aint* extra_state,
 206                               MPI_Aint* attribute_val_in,
 207                               MPI_Aint* attribute_val_out,
 208                               ompi_fortran_logical_t* flag, MPI_Fint* ierr)
 209 {
 210     *flag = (ompi_fortran_logical_t) 0;
 211     *ierr = OMPI_INT_2_FINT(MPI_SUCCESS);
 212 }
 213 
 214 void ompi_type_dup_fn_f(MPI_Fint* type, MPI_Fint* type_keyval,
 215                         MPI_Aint* extra_state,
 216                         MPI_Aint* attribute_val_in,
 217                         MPI_Aint* attribute_val_out,
 218                         ompi_fortran_logical_t* flag, MPI_Fint* ierr )
 219 {
 220     *flag = (ompi_fortran_logical_t) 1;
 221     *attribute_val_out = *attribute_val_in;
 222     *ierr = OMPI_INT_2_FINT(MPI_SUCCESS);
 223 }
 224 
 225 void ompi_comm_null_delete_fn_f(MPI_Fint* comm, MPI_Fint* comm_keyval,
 226                                 MPI_Aint* attribute_val_out,
 227                                 MPI_Aint* extra_state, MPI_Fint* ierr)
 228 {
 229     *ierr = OMPI_INT_2_FINT(MPI_SUCCESS);
 230 }
 231 
 232 void ompi_comm_null_copy_fn_f(MPI_Fint* comm, MPI_Fint* comm_keyval,
 233                               MPI_Aint* extra_state,
 234                               MPI_Aint* attribute_val_in,
 235                               MPI_Aint* attribute_val_out,
 236                               ompi_fortran_logical_t* flag, MPI_Fint* ierr)
 237 {
 238     *flag = (ompi_fortran_logical_t) 0;
 239     *ierr = OMPI_INT_2_FINT(MPI_SUCCESS);
 240 }
 241 
 242 void ompi_comm_dup_fn_f(MPI_Fint* comm, MPI_Fint* comm_keyval,
 243                         MPI_Aint* extra_state,
 244                         MPI_Aint* attribute_val_in,
 245                         MPI_Aint* attribute_val_out,
 246                         ompi_fortran_logical_t* flag, MPI_Fint* ierr)
 247 {
 248     *flag = (ompi_fortran_logical_t) 1;
 249     *attribute_val_out = *attribute_val_in;
 250     *ierr = OMPI_INT_2_FINT(MPI_SUCCESS);
 251 }
 252 
 253 void ompi_null_delete_fn_f(MPI_Fint* comm, MPI_Fint* comm_keyval,
 254                            MPI_Fint* attribute_val_out,
 255                            MPI_Fint* extra_state, MPI_Fint* ierr)
 256 {
 257     *ierr = OMPI_INT_2_FINT(MPI_SUCCESS);
 258 }
 259 
 260 void ompi_null_copy_fn_f(MPI_Fint* comm, MPI_Fint* comm_keyval,
 261                          MPI_Fint* extra_state,
 262                          MPI_Fint* attribute_val_in,
 263                          MPI_Fint* attribute_val_out,
 264                          ompi_fortran_logical_t* flag, MPI_Fint* ierr)
 265 {
 266     *flag = (ompi_fortran_logical_t) 0;
 267     *ierr = OMPI_INT_2_FINT(MPI_SUCCESS);
 268 }
 269 
 270 
 271 void ompi_dup_fn_f(MPI_Fint* comm, MPI_Fint* comm_keyval,
 272                    MPI_Fint* extra_state,
 273                    MPI_Fint* attribute_val_in,
 274                    MPI_Fint* attribute_val_out,
 275                    ompi_fortran_logical_t* flag, MPI_Fint* ierr)
 276 {
 277     *flag = (ompi_fortran_logical_t) 1;
 278     *attribute_val_out = *attribute_val_in;
 279     *ierr = OMPI_INT_2_FINT(MPI_SUCCESS);
 280 }
 281 
 282 void ompi_win_null_delete_fn_f(MPI_Fint* window, MPI_Fint* win_keyval,
 283                                MPI_Aint* attribute_val_out,
 284                                MPI_Aint* extra_state, MPI_Fint* ierr)
 285 {
 286     *ierr = OMPI_INT_2_FINT(MPI_SUCCESS);
 287 }
 288 
 289 void ompi_win_null_copy_fn_f(MPI_Fint* window, MPI_Fint* win_keyval,
 290                              MPI_Aint* extra_state,
 291                              MPI_Aint* attribute_val_in,
 292                              MPI_Aint* attribute_val_out,
 293                              ompi_fortran_logical_t* flag, MPI_Fint* ierr)
 294 {
 295     *flag = (ompi_fortran_logical_t) 0;
 296     *ierr = OMPI_INT_2_FINT(MPI_SUCCESS);
 297 }
 298 
 299 void ompi_win_dup_fn_f(MPI_Fint* window, MPI_Fint* win_keyval,
 300                        MPI_Aint* extra_state,
 301                        MPI_Aint* attribute_val_in,
 302                        MPI_Aint* attribute_val_out,
 303                        ompi_fortran_logical_t* flag, MPI_Fint* ierr)
 304 {
 305     *flag = (ompi_fortran_logical_t) 1;
 306     *attribute_val_out = *attribute_val_in;
 307     *ierr = OMPI_INT_2_FINT(MPI_SUCCESS);
 308 }

/* [<][>][^][v][top][bottom][index][help] */