1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
/*
* Copyright (C) by Argonne National Laboratory
* See COPYRIGHT in top-level directory
*/
/* header file for MPI-IO implementation. not intended to be
user-visible */
#ifndef MPIOIMPL_H_INCLUDED
#define MPIOIMPL_H_INCLUDED
#include "adio.h"
#include "mpio.h"
#ifdef ROMIO_INSIDE_MPICH
#include "mpir_ext.h"
#define ROMIO_THREAD_CS_ENTER() MPIR_Ext_cs_enter()
#define ROMIO_THREAD_CS_EXIT() MPIR_Ext_cs_exit()
#define ROMIO_THREAD_CS_YIELD() MPL_thread_yield()
/* committed datatype checking support in ROMIO */
#define MPIO_DATATYPE_ISCOMMITTED(dtype_, err_) \
do { \
err_ = MPIR_Ext_datatype_iscommitted(dtype_); \
} while (0)
#else /* not ROMIO_INSIDE_MPICH */
/* Any MPI implementation that wishes to follow the thread-safety and
error reporting features provided by MPICH must implement these
four functions. Defining these as empty should not change the behavior
of correct programs */
#define ROMIO_THREAD_CS_ENTER()
#define ROMIO_THREAD_CS_EXIT()
#define ROMIO_THREAD_CS_YIELD()
#define MPIO_DATATYPE_ISCOMMITTED(dtype_, err_) do {} while (0)
#endif /* ROMIO_INSIDE_MPICH */
/* info is a linked list of these structures */
struct MPIR_Info {
int cookie;
char *key, *value;
struct MPIR_Info *next;
};
#define MPIR_INFO_COOKIE 5835657
MPI_Delete_function ADIOI_End_call;
/* common initialization routine */
void MPIR_MPIOInit(int *error_code);
#if MPI_VERSION >= 3
#define ROMIO_CONST const
#else
#define ROMIO_CONST
#endif
#include "mpiu_external32.h"
#ifdef MPIO_BUILD_PROFILING
#include "mpioprof.h"
#endif /* MPIO_BUILD_PROFILING */
#ifdef MPI_hpux
#include "mpioinst.h"
#endif /* MPI_hpux */
#endif /* MPIOIMPL_H_INCLUDED */
|