"Fossies" - the Fresh Open Source Software Archive

Member "openmpi-3.1.6/ompi/mpi/c/add_error_class.c" (18 Mar 2020, 2631 Bytes) of package /linux/misc/openmpi-3.1.6.tar.bz2:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "add_error_class.c" see the Fossies "Dox" file reference documentation.

    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-2006 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      University of Houston. All rights reserved.
   13  * Copyright (c) 2015-2017 Research Organization for Information Science
   14  *                         and Technology (RIST). All rights reserved.
   15  * $COPYRIGHT$
   16  *
   17  * Additional copyrights may follow
   18  *
   19  * $HEADER$
   20  */
   21 #include "ompi_config.h"
   22 #include <stdio.h>
   23 
   24 #include "ompi/mpi/c/bindings.h"
   25 #include "ompi/runtime/params.h"
   26 #include "ompi/errhandler/errhandler.h"
   27 #include "ompi/errhandler/errcode.h"
   28 #include "ompi/communicator/communicator.h"
   29 #include "ompi/attribute/attribute.h"
   30 
   31 #if OMPI_BUILD_MPI_PROFILING
   32 #if OPAL_HAVE_WEAK_SYMBOLS
   33 #pragma weak MPI_Add_error_class = PMPI_Add_error_class
   34 #endif
   35 #define MPI_Add_error_class PMPI_Add_error_class
   36 #endif
   37 
   38 static const char FUNC_NAME[] = "MPI_Add_error_class";
   39 
   40 
   41 int MPI_Add_error_class(int *errorclass)
   42 {
   43     int err_class;
   44     int rc;
   45 
   46     OPAL_CR_NOOP_PROGRESS();
   47 
   48     if ( MPI_PARAM_CHECK ) {
   49         OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
   50 
   51         if (NULL == errorclass) {
   52             return OMPI_ERRHANDLER_INVOKE (MPI_COMM_WORLD,
   53                                            MPI_ERR_ARG, FUNC_NAME);
   54         }
   55     }
   56 
   57     err_class = ompi_mpi_errclass_add();
   58     if ( 0 > err_class ) {
   59         return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_INTERN,
   60                                       FUNC_NAME);
   61     }
   62 
   63 
   64     /*
   65     ** Update the attribute value. See the comments
   66     ** in attribute/attribute.c and attribute/attribute_predefined.c
   67     ** why we have to call the fortran attr_set function
   68     */
   69     rc  = ompi_attr_set_fint (COMM_ATTR,
   70                               MPI_COMM_WORLD,
   71                               &MPI_COMM_WORLD->c_keyhash,
   72                               MPI_LASTUSEDCODE,
   73                               ompi_mpi_errcode_lastused,
   74                               true);
   75     if ( MPI_SUCCESS != rc ) {
   76     return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, rc, FUNC_NAME);
   77     }
   78 
   79     *errorclass = err_class;
   80     return MPI_SUCCESS;
   81 }
   82