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-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) 2015 Research Organization for Information Science 13 * and Technology (RIST). All rights reserved. 14 * $COPYRIGHT$ 15 * 16 * Additional copyrights may follow 17 * 18 * $HEADER$ 19 */ 20 #include "ompi_config.h" 21 #include <stdio.h> 22 23 #include "ompi/mpi/c/bindings.h" 24 #include "ompi/runtime/params.h" 25 #include "ompi/communicator/communicator.h" 26 #include "ompi/errhandler/errhandler.h" 27 #include "ompi/attribute/attribute.h" 28 29 #if OMPI_BUILD_MPI_PROFILING 30 #if OPAL_HAVE_WEAK_SYMBOLS 31 #pragma weak MPI_Comm_free_keyval = PMPI_Comm_free_keyval 32 #endif 33 #define MPI_Comm_free_keyval PMPI_Comm_free_keyval 34 #endif 35 36 static const char FUNC_NAME[] = "MPI_Comm_free_keyval"; 37 38 MPI_Comm_free_keyval(int * comm_keyval)39int MPI_Comm_free_keyval(int *comm_keyval) 40 { 41 int ret; 42 43 /* Check for valid key pointer */ 44 45 if (MPI_PARAM_CHECK) { 46 OMPI_ERR_INIT_FINALIZE(FUNC_NAME); 47 if (NULL == comm_keyval) { 48 return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_ARG, 49 FUNC_NAME); 50 } 51 } 52 53 OPAL_CR_ENTER_LIBRARY(); 54 55 ret = ompi_attr_free_keyval(COMM_ATTR, comm_keyval, 0); 56 57 OMPI_ERRHANDLER_RETURN(ret, MPI_COMM_WORLD, MPI_ERR_OTHER, FUNC_NAME); 58 } 59