root/oshmem/shmem/fortran/shmem_get_nb_f.c

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

DEFINITIONS

This source file includes following definitions.
  1. SHMEM_GENERATE_WEAK_BINDINGS
  2. SHMEM_GENERATE_FORTRAN_BINDINGS_SUB
  3. SHMEM_GENERATE_FORTRAN_BINDINGS_SUB
  4. SHMEM_GENERATE_FORTRAN_BINDINGS_SUB
  5. SHMEM_GENERATE_FORTRAN_BINDINGS_SUB
  6. SHMEM_GENERATE_FORTRAN_BINDINGS_SUB
  7. SHMEM_GENERATE_FORTRAN_BINDINGS_SUB
  8. SHMEM_GENERATE_FORTRAN_BINDINGS_SUB
  9. SHMEM_GENERATE_FORTRAN_BINDINGS_SUB
  10. SHMEM_GENERATE_FORTRAN_BINDINGS_SUB
  11. SHMEM_GENERATE_FORTRAN_BINDINGS_SUB
  12. SHMEM_GENERATE_FORTRAN_BINDINGS_SUB

   1    /*
   2  * Copyright (c) 2016      Mellanox Technologies, Inc.
   3  *                         All rights reserved.
   4  * $COPYRIGHT$
   5  *
   6  * Additional copyrights may follow
   7  *
   8  * $HEADER$
   9  */
  10 
  11 #include "oshmem_config.h"
  12 #include "oshmem/shmem/fortran/bindings.h"
  13 #include "oshmem/include/shmem.h"
  14 #include "oshmem/shmem/shmem_api_logger.h"
  15 #include "oshmem/runtime/runtime.h"
  16 #include "oshmem/mca/spml/spml.h"
  17 #include "ompi/datatype/ompi_datatype.h"
  18 #include "stdio.h"
  19 
  20 #if OSHMEM_PROFILING
  21 #include "oshmem/shmem/fortran/profile/pbindings.h"
  22 
  23 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_GETMEM_NBI, shmem_getmem_nbi)
  24 
  25 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_CHARACTER_GET_NBI, shmem_character_get_nbi)
  26 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_COMPLEX_GET_NBI, shmem_complex_get_nbi)
  27 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_DOUBLE_GET_NBI, shmem_double_get_nbi)
  28 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_INTEGER_GET_NBI, shmem_integer_get_nbi)
  29 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_LOGICAL_GET_NBI, shmem_logical_get_nbi)
  30 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_REAL_GET_NBI, shmem_real_get_nbi)
  31 
  32 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_GET4_NBI, shmem_get4_nbi)
  33 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_GET8_NBI, shmem_get8_nbi)
  34 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_GET32_NBI, shmem_get32_nbi)
  35 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_GET64_NBI, shmem_get64_nbi)
  36 SHMEM_GENERATE_WEAK_BINDINGS(SHMEM_GET128_NBI, shmem_get128_nbi)
  37 
  38 #include "oshmem/shmem/fortran/profile/defines.h"
  39 #endif
  40 
  41 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
  42         SHMEM_GETMEM_NBI,
  43         shmem_getmem_nbi_,
  44         shmem_getmem_nbi__,
  45         shmem_getmem_nbi_f,
  46         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe),
  47         (target,source,len,pe) )
  48 
  49 void shmem_getmem_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe)
  50 {
  51     MCA_SPML_CALL(get_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(source),
  52         OMPI_FINT_2_INT(*len),
  53         FPTR_2_VOID_PTR(target),
  54         OMPI_FINT_2_INT(*pe), NULL));
  55 }
  56 
  57 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
  58         SHMEM_CHARACTER_GET_NBI,
  59         shmem_character_get_nbi_,
  60         shmem_character_get_nbi__,
  61         shmem_character_get_nbi_f,
  62         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe),
  63         (target,source,len,pe))
  64 
  65 void shmem_character_get_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe)
  66 {
  67     size_t character_type_size = 0;
  68     ompi_datatype_type_size(&ompi_mpi_character.dt, &character_type_size);
  69 
  70     MCA_SPML_CALL(get_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(source),
  71         OMPI_FINT_2_INT(*len) * character_type_size,
  72         FPTR_2_VOID_PTR(target),
  73         OMPI_FINT_2_INT(*pe), NULL));
  74 }
  75 
  76 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
  77         SHMEM_COMPLEX_GET_NBI,
  78         shmem_complex_get_nbi_,
  79         shmem_complex_get_nbi__,
  80         shmem_complex_get_nbi_f,
  81         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe),
  82         (target,source,len,pe) )
  83 
  84 void shmem_complex_get_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe)
  85 {
  86     size_t complex_type_size = 0;
  87     ompi_datatype_type_size(&ompi_mpi_cplex.dt, &complex_type_size);
  88 
  89     MCA_SPML_CALL(get_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(source),
  90         OMPI_FINT_2_INT(*len) * complex_type_size,
  91         FPTR_2_VOID_PTR(target),
  92         OMPI_FINT_2_INT(*pe), NULL));
  93 }
  94 
  95 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
  96         SHMEM_DOUBLE_GET_NBI,
  97         shmem_double_get_nbi_,
  98         shmem_double_get_nbi__,
  99         shmem_double_get_nbi_f,
 100         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe),
 101         (target,source,len,pe) )
 102 
 103 void shmem_double_get_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe)
 104 {
 105     size_t double_type_size = 0;
 106     ompi_datatype_type_size(&ompi_mpi_dblprec.dt, &double_type_size);
 107 
 108     MCA_SPML_CALL(get_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(source),
 109         OMPI_FINT_2_INT(*len) * double_type_size,
 110         FPTR_2_VOID_PTR(target),
 111         OMPI_FINT_2_INT(*pe), NULL));
 112 }
 113 
 114 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
 115         SHMEM_INTEGER_GET_NBI,
 116         shmem_integer_get_nbi_,
 117         shmem_integer_get_nbi__,
 118         shmem_integer_get_nbi_f,
 119         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe),
 120         (target,source,len,pe) )
 121 
 122 void shmem_integer_get_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe)
 123 {
 124     size_t integer_type_size = 0;
 125     ompi_datatype_type_size(&ompi_mpi_integer.dt, &integer_type_size);
 126 
 127     MCA_SPML_CALL(get_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(source),
 128         OMPI_FINT_2_INT(*len) * integer_type_size,
 129         FPTR_2_VOID_PTR(target),
 130         OMPI_FINT_2_INT(*pe), NULL));
 131 }
 132 
 133 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
 134         SHMEM_LOGICAL_GET_NBI,
 135         shmem_logical_get_nbi_,
 136         shmem_logical_get_nbi__,
 137         shmem_logical_get_nbi_f,
 138         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe),
 139         (target,source,len,pe) )
 140 
 141 void shmem_logical_get_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe)
 142 {
 143     size_t logical_type_size = 0;
 144     ompi_datatype_type_size(&ompi_mpi_logical.dt, &logical_type_size);
 145 
 146     MCA_SPML_CALL(get_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(source),
 147         OMPI_FINT_2_INT(*len) * logical_type_size,
 148         FPTR_2_VOID_PTR(target),
 149         OMPI_FINT_2_INT(*pe), NULL));
 150 }
 151 
 152 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
 153         SHMEM_REAL_GET_NBI,
 154         shmem_real_get_nbi_,
 155         shmem_real_get_nbi__,
 156         shmem_real_get_nbi_f,
 157         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe),
 158         (target,source,len,pe) )
 159 
 160 void shmem_real_get_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe)
 161 {
 162     size_t real_type_size = 0;
 163     ompi_datatype_type_size(&ompi_mpi_real.dt, &real_type_size);
 164 
 165     MCA_SPML_CALL(get_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(source),
 166         OMPI_FINT_2_INT(*len) * real_type_size,
 167         FPTR_2_VOID_PTR(target),
 168         OMPI_FINT_2_INT(*pe), NULL));
 169 }
 170 
 171 
 172 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
 173         SHMEM_GET4_NBI,
 174         shmem_get4_nbi_,
 175         shmem_get4_nbi__,
 176         shmem_get4_nbi_f,
 177         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe),
 178         (target,source,len,pe) )
 179 
 180 void shmem_get4_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe)
 181 {
 182     MCA_SPML_CALL(get_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(source),
 183         OMPI_FINT_2_INT(*len) * 4,
 184         FPTR_2_VOID_PTR(target),
 185         OMPI_FINT_2_INT(*pe), NULL));
 186 }
 187 
 188 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
 189         SHMEM_GET8_NBI,
 190         shmem_get8_nbi_,
 191         shmem_get8_nbi__,
 192         shmem_get8_nbi_f,
 193         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe),
 194         (target,source,len,pe) )
 195 
 196 void shmem_get8_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe)
 197 {
 198     MCA_SPML_CALL(get_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(source),
 199         OMPI_FINT_2_INT(*len) * 8,
 200         FPTR_2_VOID_PTR(target),
 201         OMPI_FINT_2_INT(*pe), NULL));
 202 }
 203 
 204 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
 205         SHMEM_GET32_NBI,
 206         shmem_get32_nbi_,
 207         shmem_get32_nbi__,
 208         shmem_get32_nbi_f,
 209         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe),
 210         (target,source,len,pe) )
 211 
 212 void shmem_get32_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe)
 213 {
 214     MCA_SPML_CALL(get_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(source),
 215         OMPI_FINT_2_INT(*len) * 4,
 216         FPTR_2_VOID_PTR(target),
 217         OMPI_FINT_2_INT(*pe), NULL));
 218 }
 219 
 220 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
 221         SHMEM_GET64_NBI,
 222         shmem_get64_nbi_,
 223         shmem_get64_nbi__,
 224         shmem_get64_nbi_f,
 225         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe),
 226         (target,source,len,pe) )
 227 
 228 void shmem_get64_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe)
 229 {
 230     MCA_SPML_CALL(get_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(source),
 231         OMPI_FINT_2_INT(*len) * 8,
 232         FPTR_2_VOID_PTR(target),
 233         OMPI_FINT_2_INT(*pe), NULL));
 234 }
 235 
 236 SHMEM_GENERATE_FORTRAN_BINDINGS_SUB (void,
 237         SHMEM_GET128_NBI,
 238         shmem_get128_nbi_,
 239         shmem_get128_nbi__,
 240         shmem_get128_nbi_f,
 241         (FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe),
 242         (target,source,len,pe) )
 243 
 244 void shmem_get128_nbi_f(FORTRAN_POINTER_T target, FORTRAN_POINTER_T source, MPI_Fint *len, MPI_Fint *pe)
 245 {
 246     MCA_SPML_CALL(get_nb(oshmem_ctx_default, FPTR_2_VOID_PTR(source),
 247         OMPI_FINT_2_INT(*len) * 16,
 248         FPTR_2_VOID_PTR(target),
 249         OMPI_FINT_2_INT(*pe), NULL));
 250 }

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