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
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.
14 * Additional copyrights may follow
18 #include "ompi_config.h"
21 #include "ompi/mpi/c/bindings.h"
22 #include "ompi/win/win.h"
24 #if OMPI_HAVE_WEAK_SYMBOLS && OMPI_PROFILING_DEFINES
25 #pragma weak MPI_Win_create_errhandler = PMPI_Win_create_errhandler
28 #if OMPI_PROFILING_DEFINES
29 #include "ompi/mpi/c/profile/defines.h"
32 static const char FUNC_NAME
[] = "MPI_Win_create_errhandler";
35 int MPI_Win_create_errhandler(MPI_Win_errhandler_fn
*function
,
36 MPI_Errhandler
*errhandler
)
38 int err
= MPI_SUCCESS
;
40 if (MPI_PARAM_CHECK
) {
41 OMPI_ERR_INIT_FINALIZE(FUNC_NAME
);
42 if (NULL
== function
||
44 return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD
, MPI_ERR_ARG
,
49 /* Create and cache the errhandler. Sets a refcount of 1. */
51 ompi_errhandler_create(OMPI_ERRHANDLER_TYPE_WIN
,
52 (ompi_errhandler_generic_handler_fn_t
*) function
);
53 if (NULL
== *errhandler
) {
57 OMPI_ERRHANDLER_RETURN(err
, MPI_COMM_WORLD
, MPI_ERR_INTERN
, FUNC_NAME
);