root/ompi/mpi/c/file_iread_at_all.c

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

DEFINITIONS

This source file includes following definitions.
  1. MPI_File_iread_at_all

   1 /*
   2  * Copyright (c) 2004-2007 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-2008 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) 2008      Sun Microsystems, Inc.  All rights reserved.
  13  * Copyright (c) 2015      University of Houston.  All rights reserved.
  14  * Copyright (c) 2015      Research Organization for Information Science
  15  *                         and Technology (RIST). All rights reserved.
  16  * Copyright (c) 2017      IBM Corporation.  All rights reserved.
  17  * $COPYRIGHT$
  18  *
  19  * Additional copyrights may follow
  20  *
  21  * $HEADER$
  22  */
  23 
  24 #include "ompi_config.h"
  25 
  26 #include "ompi/mpi/c/bindings.h"
  27 #include "ompi/runtime/params.h"
  28 #include "ompi/errhandler/errhandler.h"
  29 #include "ompi/datatype/ompi_datatype.h"
  30 #include "ompi/file/file.h"
  31 #include "ompi/mca/io/io.h"
  32 #include "ompi/mca/io/base/io_base_request.h"
  33 #include "ompi/memchecker.h"
  34 
  35 #if OMPI_BUILD_MPI_PROFILING
  36 #if OPAL_HAVE_WEAK_SYMBOLS
  37 #pragma weak MPI_File_iread_at_all = PMPI_File_iread_at_all
  38 #endif
  39 #define MPI_File_iread_at_all PMPI_File_iread_at_all
  40 #endif
  41 
  42 static const char FUNC_NAME[] = "MPI_File_iread_at_all";
  43 
  44 
  45 int MPI_File_iread_at_all(MPI_File fh, MPI_Offset offset, void *buf,
  46                           int count, MPI_Datatype datatype, MPI_Request *request)
  47 {
  48     int rc;
  49 
  50     MEMCHECKER(
  51         memchecker_datatype(datatype);
  52     );
  53 
  54     if (MPI_PARAM_CHECK) {
  55         rc = MPI_SUCCESS;
  56         OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
  57         if (ompi_file_invalid(fh)) {
  58             fh = MPI_FILE_NULL;
  59             rc = MPI_ERR_FILE;
  60         } else if (count < 0) {
  61             rc = MPI_ERR_COUNT;
  62         } else if (NULL == request) {
  63             rc = MPI_ERR_REQUEST;
  64         } else {
  65            OMPI_CHECK_DATATYPE_FOR_RECV(rc, datatype, count);
  66         }
  67         OMPI_ERRHANDLER_CHECK(rc, fh, rc, FUNC_NAME);
  68     }
  69 
  70     OPAL_CR_ENTER_LIBRARY();
  71 
  72     /* Call the back-end io component function */
  73     switch (fh->f_io_version) {
  74     case MCA_IO_BASE_V_2_0_0:
  75         if( OPAL_UNLIKELY(NULL == fh->f_io_selected_module.v2_0_0.io_module_file_iread_at_all) ) {
  76             rc = MPI_ERR_UNSUPPORTED_OPERATION;
  77         }
  78         else {
  79             rc = fh->f_io_selected_module.v2_0_0.
  80                 io_module_file_iread_at_all(fh, offset, buf, count, datatype,
  81                                             request);
  82         }
  83         break;
  84 
  85     default:
  86         rc = MPI_ERR_INTERN;
  87         break;
  88     }
  89 
  90     /* All done */
  91 
  92     OMPI_ERRHANDLER_RETURN(rc, fh, rc, FUNC_NAME);
  93 }

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