Blame src/include/mpi.h.in

Packit Service c5cf8c
/* -*- Mode: C; c-basic-offset:4 ; -*- */
Packit Service c5cf8c
/*  
Packit Service c5cf8c
 *  (C) 2001 by Argonne National Laboratory.
Packit Service c5cf8c
 *      See COPYRIGHT in top-level directory.
Packit Service c5cf8c
 */
Packit Service c5cf8c
/* @configure_input@ */
Packit Service c5cf8c
#ifndef MPI_INCLUDED
Packit Service c5cf8c
#define MPI_INCLUDED
Packit Service c5cf8c
Packit Service c5cf8c
/* user include file for MPI programs */
Packit Service c5cf8c
Packit Service c5cf8c
#if defined(HAVE_VISIBILITY)
Packit Service c5cf8c
#define MPICH_API_PUBLIC __attribute__((visibility ("default")))
Packit Service c5cf8c
#else
Packit Service c5cf8c
#define MPICH_API_PUBLIC
Packit Service c5cf8c
#endif
Packit Service c5cf8c
Packit Service c5cf8c
/* Keep C++ compilers from getting confused */
Packit Service c5cf8c
#if defined(__cplusplus)
Packit Service c5cf8c
extern "C" {
Packit Service c5cf8c
#endif
Packit Service c5cf8c
Packit Service c5cf8c
@DISABLE_TAG_SUPPORT@
Packit Service c5cf8c
#undef MPICH_DEFINE_ATTR_TYPE_TYPES
Packit Service c5cf8c
#if defined(__has_attribute)
Packit Service c5cf8c
#  if __has_attribute(pointer_with_type_tag) && \
Packit Service c5cf8c
      __has_attribute(type_tag_for_datatype) && \
Packit Service c5cf8c
      !defined(NO_TAGS_WITH_MODIFIERS) &&\
Packit Service c5cf8c
      !defined(MPICH_NO_ATTR_TYPE_TAGS)
Packit Service c5cf8c
#    define MPICH_DEFINE_ATTR_TYPE_TYPES 1
Packit Service c5cf8c
#    define MPICH_ATTR_POINTER_WITH_TYPE_TAG(buffer_idx, type_idx)  __attribute__((pointer_with_type_tag(MPI,buffer_idx,type_idx)))
Packit Service c5cf8c
#    define MPICH_ATTR_TYPE_TAG(type)                               __attribute__((type_tag_for_datatype(MPI,type)))
Packit Service c5cf8c
#    define MPICH_ATTR_TYPE_TAG_LAYOUT_COMPATIBLE(type)             __attribute__((type_tag_for_datatype(MPI,type,layout_compatible)))
Packit Service c5cf8c
#    define MPICH_ATTR_TYPE_TAG_MUST_BE_NULL()                      __attribute__((type_tag_for_datatype(MPI,void,must_be_null)))
Packit Service c5cf8c
#    include <stddef.h>
Packit Service c5cf8c
#  endif
Packit Service c5cf8c
#endif
Packit Service c5cf8c
Packit Service c5cf8c
#if !defined(MPICH_ATTR_POINTER_WITH_TYPE_TAG)
Packit Service c5cf8c
#  define MPICH_ATTR_POINTER_WITH_TYPE_TAG(buffer_idx, type_idx)
Packit Service c5cf8c
#  define MPICH_ATTR_TYPE_TAG(type)
Packit Service c5cf8c
#  define MPICH_ATTR_TYPE_TAG_LAYOUT_COMPATIBLE(type)
Packit Service c5cf8c
#  define MPICH_ATTR_TYPE_TAG_MUST_BE_NULL()
Packit Service c5cf8c
#endif
Packit Service c5cf8c
Packit Service c5cf8c
#if !defined(INT8_C)
Packit Service c5cf8c
/* stdint.h was not included, see if we can get it */
Packit Service c5cf8c
#  if defined(__cplusplus)
Packit Service c5cf8c
#    if __cplusplus >= 201103
Packit Service c5cf8c
#      include <cstdint>
Packit Service c5cf8c
#    endif
Packit Service c5cf8c
#  endif
Packit Service c5cf8c
#endif
Packit Service c5cf8c
Packit Service c5cf8c
#if !defined(INT8_C)
Packit Service c5cf8c
/* stdint.h was not included, see if we can get it */
Packit Service c5cf8c
#  if defined(__STDC_VERSION__)
Packit Service c5cf8c
#    if __STDC_VERSION__ >= 199901
Packit Service c5cf8c
#      include <stdint.h>
Packit Service c5cf8c
#    endif
Packit Service c5cf8c
#  endif
Packit Service c5cf8c
#endif
Packit Service c5cf8c
Packit Service c5cf8c
#if defined(INT8_C)
Packit Service c5cf8c
/* stdint.h was included, so we can annotate these types */
Packit Service c5cf8c
#  define MPICH_ATTR_TYPE_TAG_STDINT(type) MPICH_ATTR_TYPE_TAG(type)
Packit Service c5cf8c
#else
Packit Service c5cf8c
#  define MPICH_ATTR_TYPE_TAG_STDINT(type)
Packit Service c5cf8c
#endif
Packit Service c5cf8c
Packit Service c5cf8c
#ifdef __STDC_VERSION__ 
Packit Service c5cf8c
#if __STDC_VERSION__ >= 199901
Packit Service c5cf8c
#  define MPICH_ATTR_TYPE_TAG_C99(type) MPICH_ATTR_TYPE_TAG(type)
Packit Service c5cf8c
#else
Packit Service c5cf8c
#  define MPICH_ATTR_TYPE_TAG_C99(type)
Packit Service c5cf8c
#endif
Packit Service c5cf8c
#else 
Packit Service c5cf8c
#  define MPICH_ATTR_TYPE_TAG_C99(type)
Packit Service c5cf8c
#endif
Packit Service c5cf8c
Packit Service c5cf8c
#if defined(__cplusplus)
Packit Service c5cf8c
#  define MPICH_ATTR_TYPE_TAG_CXX(type) MPICH_ATTR_TYPE_TAG(type)
Packit Service c5cf8c
#else
Packit Service c5cf8c
#  define MPICH_ATTR_TYPE_TAG_CXX(type)
Packit Service c5cf8c
#endif
Packit Service c5cf8c
Packit Service c5cf8c
Packit Service c5cf8c
/* Define some null objects */
Packit Service c5cf8c
#define MPI_COMM_NULL      ((MPI_Comm)0x04000000)
Packit Service c5cf8c
#define MPI_OP_NULL        ((MPI_Op)0x18000000)
Packit Service c5cf8c
#define MPI_GROUP_NULL     ((MPI_Group)0x08000000)
Packit Service c5cf8c
#define MPI_DATATYPE_NULL  ((MPI_Datatype)0x0c000000)
Packit Service c5cf8c
#define MPI_REQUEST_NULL   ((MPI_Request)0x2c000000)
Packit Service c5cf8c
#define MPI_ERRHANDLER_NULL ((MPI_Errhandler)0x14000000)
Packit Service c5cf8c
#define MPI_MESSAGE_NULL   ((MPI_Message)0x2c000000)
Packit Service c5cf8c
#define MPI_MESSAGE_NO_PROC ((MPI_Message)0x6c000000)
Packit Service c5cf8c
Packit Service c5cf8c
/* Results of the compare operations. */
Packit Service c5cf8c
#define MPI_IDENT     0
Packit Service c5cf8c
#define MPI_CONGRUENT 1
Packit Service c5cf8c
#define MPI_SIMILAR   2
Packit Service c5cf8c
#define MPI_UNEQUAL   3
Packit Service c5cf8c
Packit Service c5cf8c
typedef int MPI_Datatype;
Packit Service c5cf8c
#define MPI_CHAR           ((MPI_Datatype)@MPI_CHAR@)
Packit Service c5cf8c
#define MPI_SIGNED_CHAR    ((MPI_Datatype)@MPI_SIGNED_CHAR@)
Packit Service c5cf8c
#define MPI_UNSIGNED_CHAR  ((MPI_Datatype)@MPI_UNSIGNED_CHAR@)
Packit Service c5cf8c
#define MPI_BYTE           ((MPI_Datatype)@MPI_BYTE@)
Packit Service c5cf8c
#define MPI_WCHAR          ((MPI_Datatype)@MPI_WCHAR@)
Packit Service c5cf8c
#define MPI_SHORT          ((MPI_Datatype)@MPI_SHORT@)
Packit Service c5cf8c
#define MPI_UNSIGNED_SHORT ((MPI_Datatype)@MPI_UNSIGNED_SHORT@)
Packit Service c5cf8c
#define MPI_INT            ((MPI_Datatype)@MPI_INT@)
Packit Service c5cf8c
#define MPI_UNSIGNED       ((MPI_Datatype)@MPI_UNSIGNED_INT@)
Packit Service c5cf8c
#define MPI_LONG           ((MPI_Datatype)@MPI_LONG@)
Packit Service c5cf8c
#define MPI_UNSIGNED_LONG  ((MPI_Datatype)@MPI_UNSIGNED_LONG@)
Packit Service c5cf8c
#define MPI_FLOAT          ((MPI_Datatype)@MPI_FLOAT@)
Packit Service c5cf8c
#define MPI_DOUBLE         ((MPI_Datatype)@MPI_DOUBLE@)
Packit Service c5cf8c
#define MPI_LONG_DOUBLE    ((MPI_Datatype)@MPI_LONG_DOUBLE@)
Packit Service c5cf8c
#define MPI_LONG_LONG_INT  ((MPI_Datatype)@MPI_LONG_LONG@)
Packit Service c5cf8c
#define MPI_UNSIGNED_LONG_LONG ((MPI_Datatype)@MPI_UNSIGNED_LONG_LONG@)
Packit Service c5cf8c
#define MPI_LONG_LONG      MPI_LONG_LONG_INT
Packit Service c5cf8c
Packit Service c5cf8c
#ifdef MPICH_DEFINE_ATTR_TYPE_TYPES
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_char               MPICH_ATTR_TYPE_TAG(char)               = MPI_CHAR;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_signed_char        MPICH_ATTR_TYPE_TAG(signed char)        = MPI_SIGNED_CHAR;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_unsigned_char      MPICH_ATTR_TYPE_TAG(unsigned char)      = MPI_UNSIGNED_CHAR;
Packit Service c5cf8c
/*static const MPI_Datatype mpich_mpi_byte               MPICH_ATTR_TYPE_TAG(char)               = MPI_BYTE;*/
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_wchar              MPICH_ATTR_TYPE_TAG(wchar_t)            = MPI_WCHAR;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_short              MPICH_ATTR_TYPE_TAG(short)              = MPI_SHORT;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_unsigned_short     MPICH_ATTR_TYPE_TAG(unsigned short)     = MPI_UNSIGNED_SHORT;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_int                MPICH_ATTR_TYPE_TAG(int)                = MPI_INT;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_unsigned           MPICH_ATTR_TYPE_TAG(unsigned)           = MPI_UNSIGNED;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_long               MPICH_ATTR_TYPE_TAG(long)               = MPI_LONG;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_unsigned_long      MPICH_ATTR_TYPE_TAG(unsigned long)      = MPI_UNSIGNED_LONG;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_float              MPICH_ATTR_TYPE_TAG(float)              = MPI_FLOAT;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_double             MPICH_ATTR_TYPE_TAG(double)             = MPI_DOUBLE;
Packit Service c5cf8c
#if @MPI_LONG_DOUBLE@ != 0x0c000000
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_long_double        MPICH_ATTR_TYPE_TAG(long double)        = MPI_LONG_DOUBLE;
Packit Service c5cf8c
#endif
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_long_long_int      MPICH_ATTR_TYPE_TAG(long long int)      = MPI_LONG_LONG_INT;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_unsigned_long_long MPICH_ATTR_TYPE_TAG(unsigned long long) = MPI_UNSIGNED_LONG_LONG;
Packit Service c5cf8c
#endif
Packit Service c5cf8c
Packit Service c5cf8c
#define MPI_PACKED         ((MPI_Datatype)@MPI_PACKED@)
Packit Service c5cf8c
#define MPI_LB             ((MPI_Datatype)@MPI_LB@)
Packit Service c5cf8c
#define MPI_UB             ((MPI_Datatype)@MPI_UB@)
Packit Service c5cf8c
Packit Service c5cf8c
/* 
Packit Service c5cf8c
   The layouts for the types MPI_DOUBLE_INT etc are simply
Packit Service c5cf8c
   struct { 
Packit Service c5cf8c
       double var;
Packit Service c5cf8c
       int    loc;
Packit Service c5cf8c
   }
Packit Service c5cf8c
   This is documented in the man pages on the various datatypes.   
Packit Service c5cf8c
 */
Packit Service c5cf8c
#define MPI_FLOAT_INT         ((MPI_Datatype)@MPI_FLOAT_INT@)
Packit Service c5cf8c
#define MPI_DOUBLE_INT        ((MPI_Datatype)@MPI_DOUBLE_INT@)
Packit Service c5cf8c
#define MPI_LONG_INT          ((MPI_Datatype)@MPI_LONG_INT@)
Packit Service c5cf8c
#define MPI_SHORT_INT         ((MPI_Datatype)@MPI_SHORT_INT@)
Packit Service c5cf8c
#define MPI_2INT              ((MPI_Datatype)@MPI_2INT@)
Packit Service c5cf8c
#define MPI_LONG_DOUBLE_INT   ((MPI_Datatype)@MPI_LONG_DOUBLE_INT@)
Packit Service c5cf8c
Packit Service c5cf8c
#ifdef MPICH_DEFINE_ATTR_TYPE_TYPES
Packit Service c5cf8c
struct mpich_struct_mpi_float_int       { float f; int i; };
Packit Service c5cf8c
struct mpich_struct_mpi_double_int      { double d; int i; };
Packit Service c5cf8c
struct mpich_struct_mpi_long_int        { long l; int i; };
Packit Service c5cf8c
struct mpich_struct_mpi_short_int       { short s; int i; };
Packit Service c5cf8c
struct mpich_struct_mpi_2int            { int i1; int i2; };
Packit Service c5cf8c
#if @MPI_LONG_DOUBLE_INT@ != 0x0c000000
Packit Service c5cf8c
struct mpich_struct_mpi_long_double_int { long double ld; int i; };
Packit Service c5cf8c
#endif
Packit Service c5cf8c
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_float_int       MPICH_ATTR_TYPE_TAG_LAYOUT_COMPATIBLE(struct mpich_struct_mpi_float_int)       = MPI_FLOAT_INT;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_double_int      MPICH_ATTR_TYPE_TAG_LAYOUT_COMPATIBLE(struct mpich_struct_mpi_double_int)      = MPI_DOUBLE_INT;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_long_int        MPICH_ATTR_TYPE_TAG_LAYOUT_COMPATIBLE(struct mpich_struct_mpi_long_int)        = MPI_LONG_INT;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_short_int       MPICH_ATTR_TYPE_TAG_LAYOUT_COMPATIBLE(struct mpich_struct_mpi_short_int)       = MPI_SHORT_INT;
Packit Service c5cf8c
Packit Service c5cf8c
/*
Packit Service c5cf8c
 * The MPI_2INT line is commented out because currently Clang 3.3 flags
Packit Service c5cf8c
 * struct {int i1; int i2;} as different from int[2]. But actually these
Packit Service c5cf8c
 * two types are of the same layout. Clang gives a type mismatch warning
Packit Service c5cf8c
 * for a definitely correct code like the following:
Packit Service c5cf8c
 *  int in[2], out[2];
Packit Service c5cf8c
 *  MPI_Reduce(in, out, 1, MPI_2INT, MPI_MAXLOC, 0, MPI_COMM_WORLD);
Packit Service c5cf8c
 *
Packit Service c5cf8c
 * So, we disable type checking for MPI_2INT until Clang fixes this bug.
Packit Service c5cf8c
 */
Packit Service c5cf8c
Packit Service c5cf8c
/* static const MPI_Datatype mpich_mpi_2int            MPICH_ATTR_TYPE_TAG_LAYOUT_COMPATIBLE(struct mpich_struct_mpi_2int)            = MPI_2INT
Packit Service c5cf8c
 */
Packit Service c5cf8c
Packit Service c5cf8c
#if @MPI_LONG_DOUBLE_INT@ != 0x0c000000
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_long_double_int MPICH_ATTR_TYPE_TAG_LAYOUT_COMPATIBLE(struct mpich_struct_mpi_long_double_int) = MPI_LONG_DOUBLE_INT;
Packit Service c5cf8c
#endif
Packit Service c5cf8c
#endif
Packit Service c5cf8c
Packit Service c5cf8c
/* Fortran types */
Packit Service c5cf8c
#define MPI_COMPLEX           ((MPI_Datatype)@MPI_COMPLEX@)
Packit Service c5cf8c
#define MPI_DOUBLE_COMPLEX    ((MPI_Datatype)@MPI_DOUBLE_COMPLEX@)
Packit Service c5cf8c
#define MPI_LOGICAL           ((MPI_Datatype)@MPI_LOGICAL@)
Packit Service c5cf8c
#define MPI_REAL              ((MPI_Datatype)@MPI_REAL@)
Packit Service c5cf8c
#define MPI_DOUBLE_PRECISION  ((MPI_Datatype)@MPI_DOUBLE_PRECISION@)
Packit Service c5cf8c
#define MPI_INTEGER           ((MPI_Datatype)@MPI_INTEGER@)
Packit Service c5cf8c
#define MPI_2INTEGER          ((MPI_Datatype)@MPI_2INTEGER@)
Packit Service c5cf8c
/* 
Packit Service c5cf8c
 * MPI_2COMPLEX and MPI_2DOUBLE_COMPLEX were defined by accident in 
Packit Service c5cf8c
 * MPI 1.0 and removed in MPI 1.1.  
Packit Service c5cf8c
 *
Packit Service c5cf8c
 * This definition provides backward compatibility.  These definitions
Packit Service c5cf8c
 * will be removed in a subsequent MPICH release
Packit Service c5cf8c
 */
Packit Service c5cf8c
#ifdef MPICH_DEFINE_2COMPLEX
Packit Service c5cf8c
#define MPI_2COMPLEX          ((MPI_Datatype)@MPI_2COMPLEX@)
Packit Service c5cf8c
#define MPI_2DOUBLE_COMPLEX   ((MPI_Datatype)@MPI_2DOUBLE_COMPLEX@)
Packit Service c5cf8c
#endif 
Packit Service c5cf8c
#define MPI_2REAL             ((MPI_Datatype)@MPI_2REAL@)
Packit Service c5cf8c
#define MPI_2DOUBLE_PRECISION ((MPI_Datatype)@MPI_2DOUBLE_PRECISION@)
Packit Service c5cf8c
#define MPI_CHARACTER         ((MPI_Datatype)@MPI_CHARACTER@)
Packit Service c5cf8c
Packit Service c5cf8c
/* Size-specific types (see MPI-2, 10.2.5) */
Packit Service c5cf8c
#define MPI_REAL4             ((MPI_Datatype)@MPI_REAL4@)
Packit Service c5cf8c
#define MPI_REAL8             ((MPI_Datatype)@MPI_REAL8@)
Packit Service c5cf8c
#define MPI_REAL16            ((MPI_Datatype)@MPI_REAL16@)
Packit Service c5cf8c
#define MPI_COMPLEX8          ((MPI_Datatype)@MPI_COMPLEX8@)
Packit Service c5cf8c
#define MPI_COMPLEX16         ((MPI_Datatype)@MPI_COMPLEX16@)
Packit Service c5cf8c
#define MPI_COMPLEX32         ((MPI_Datatype)@MPI_COMPLEX32@)
Packit Service c5cf8c
#define MPI_INTEGER1          ((MPI_Datatype)@MPI_INTEGER1@)
Packit Service c5cf8c
#define MPI_INTEGER2          ((MPI_Datatype)@MPI_INTEGER2@)
Packit Service c5cf8c
#define MPI_INTEGER4          ((MPI_Datatype)@MPI_INTEGER4@)
Packit Service c5cf8c
#define MPI_INTEGER8          ((MPI_Datatype)@MPI_INTEGER8@)
Packit Service c5cf8c
#define MPI_INTEGER16         ((MPI_Datatype)@MPI_INTEGER16@)
Packit Service c5cf8c
Packit Service c5cf8c
/* C99 fixed-width datatypes */
Packit Service c5cf8c
#define MPI_INT8_T            ((MPI_Datatype)@MPI_INT8_T@)
Packit Service c5cf8c
#define MPI_INT16_T           ((MPI_Datatype)@MPI_INT16_T@)
Packit Service c5cf8c
#define MPI_INT32_T           ((MPI_Datatype)@MPI_INT32_T@)
Packit Service c5cf8c
#define MPI_INT64_T           ((MPI_Datatype)@MPI_INT64_T@)
Packit Service c5cf8c
#define MPI_UINT8_T           ((MPI_Datatype)@MPI_UINT8_T@)
Packit Service c5cf8c
#define MPI_UINT16_T          ((MPI_Datatype)@MPI_UINT16_T@)
Packit Service c5cf8c
#define MPI_UINT32_T          ((MPI_Datatype)@MPI_UINT32_T@)
Packit Service c5cf8c
#define MPI_UINT64_T          ((MPI_Datatype)@MPI_UINT64_T@)
Packit Service c5cf8c
Packit Service c5cf8c
#ifdef MPICH_DEFINE_ATTR_TYPE_TYPES
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_int8_t   MPICH_ATTR_TYPE_TAG_STDINT(int8_t)   = MPI_INT8_T;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_int16_t  MPICH_ATTR_TYPE_TAG_STDINT(int16_t)  = MPI_INT16_T;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_int32_t  MPICH_ATTR_TYPE_TAG_STDINT(int32_t)  = MPI_INT32_T;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_int64_t  MPICH_ATTR_TYPE_TAG_STDINT(int64_t)  = MPI_INT64_T;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_uint8_t  MPICH_ATTR_TYPE_TAG_STDINT(uint8_t)  = MPI_UINT8_T;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_uint16_t MPICH_ATTR_TYPE_TAG_STDINT(uint16_t) = MPI_UINT16_T;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_uint32_t MPICH_ATTR_TYPE_TAG_STDINT(uint32_t) = MPI_UINT32_T;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_uint64_t MPICH_ATTR_TYPE_TAG_STDINT(uint64_t) = MPI_UINT64_T;
Packit Service c5cf8c
#endif
Packit Service c5cf8c
Packit Service c5cf8c
/* other C99 types */
Packit Service c5cf8c
#define MPI_C_BOOL                 ((MPI_Datatype)@MPI_C_BOOL@)
Packit Service c5cf8c
#define MPI_C_FLOAT_COMPLEX        ((MPI_Datatype)@MPI_C_FLOAT_COMPLEX@)
Packit Service c5cf8c
#define MPI_C_COMPLEX              MPI_C_FLOAT_COMPLEX
Packit Service c5cf8c
#define MPI_C_DOUBLE_COMPLEX       ((MPI_Datatype)@MPI_C_DOUBLE_COMPLEX@)
Packit Service c5cf8c
#define MPI_C_LONG_DOUBLE_COMPLEX  ((MPI_Datatype)@MPI_C_LONG_DOUBLE_COMPLEX@)
Packit Service c5cf8c
Packit Service c5cf8c
#ifdef MPICH_DEFINE_ATTR_TYPE_TYPES
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_c_bool                MPICH_ATTR_TYPE_TAG_C99(_Bool)           = MPI_C_BOOL;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_c_float_complex       MPICH_ATTR_TYPE_TAG_C99(float _Complex)  = MPI_C_FLOAT_COMPLEX;
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_c_double_complex      MPICH_ATTR_TYPE_TAG_C99(double _Complex) = MPI_C_DOUBLE_COMPLEX;
Packit Service c5cf8c
#if @MPI_C_LONG_DOUBLE_COMPLEX@ != 0x0c000000
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_c_long_double_complex MPICH_ATTR_TYPE_TAG_C99(long double _Complex) = MPI_C_LONG_DOUBLE_COMPLEX;
Packit Service c5cf8c
#endif
Packit Service c5cf8c
#endif
Packit Service c5cf8c
Packit Service c5cf8c
/* address/offset types */
Packit Service c5cf8c
#define MPI_AINT          ((MPI_Datatype)@MPI_AINT_DATATYPE@)
Packit Service c5cf8c
#define MPI_OFFSET        ((MPI_Datatype)@MPI_OFFSET_DATATYPE@)
Packit Service c5cf8c
#define MPI_COUNT         ((MPI_Datatype)@MPI_COUNT_DATATYPE@)
Packit Service c5cf8c
Packit Service c5cf8c
/* MPI-3 C++ types */
Packit Service c5cf8c
#define MPI_CXX_BOOL                ((MPI_Datatype)@MPIR_CXX_BOOL@)
Packit Service c5cf8c
#define MPI_CXX_FLOAT_COMPLEX       ((MPI_Datatype)@MPIR_CXX_COMPLEX@)
Packit Service c5cf8c
#define MPI_CXX_DOUBLE_COMPLEX      ((MPI_Datatype)@MPIR_CXX_DOUBLE_COMPLEX@)
Packit Service c5cf8c
#define MPI_CXX_LONG_DOUBLE_COMPLEX ((MPI_Datatype)@MPIR_CXX_LONG_DOUBLE_COMPLEX@)
Packit Service c5cf8c
Packit Service c5cf8c
/* typeclasses */
Packit Service c5cf8c
#define MPI_TYPECLASS_REAL 1
Packit Service c5cf8c
#define MPI_TYPECLASS_INTEGER 2
Packit Service c5cf8c
#define MPI_TYPECLASS_COMPLEX 3
Packit Service c5cf8c
Packit Service c5cf8c
/* Communicators */
Packit Service c5cf8c
typedef int MPI_Comm;
Packit Service c5cf8c
#define MPI_COMM_WORLD ((MPI_Comm)0x44000000)
Packit Service c5cf8c
#define MPI_COMM_SELF  ((MPI_Comm)0x44000001)
Packit Service c5cf8c
Packit Service c5cf8c
/* Groups */
Packit Service c5cf8c
typedef int MPI_Group;
Packit Service c5cf8c
#define MPI_GROUP_EMPTY ((MPI_Group)0x48000000)
Packit Service c5cf8c
Packit Service c5cf8c
/* RMA and Windows */
Packit Service c5cf8c
typedef int MPI_Win;
Packit Service c5cf8c
#define MPI_WIN_NULL ((MPI_Win)0x20000000)
Packit Service c5cf8c
Packit Service c5cf8c
/* File and IO */
Packit Service c5cf8c
/* This define lets ROMIO know that MPI_File has been defined */
Packit Service c5cf8c
#define MPI_FILE_DEFINED
Packit Service c5cf8c
/* ROMIO uses a pointer for MPI_File objects.  This must be the same definition
Packit Service c5cf8c
   as in src/mpi/romio/include/mpio.h.in  */
Packit Service c5cf8c
typedef struct ADIOI_FileD *MPI_File;
Packit Service c5cf8c
#define MPI_FILE_NULL ((MPI_File)0)
Packit Service c5cf8c
Packit Service c5cf8c
/* Collective operations */
Packit Service c5cf8c
typedef int MPI_Op;
Packit Service c5cf8c
Packit Service c5cf8c
#define MPI_MAX     (MPI_Op)(0x58000001)
Packit Service c5cf8c
#define MPI_MIN     (MPI_Op)(0x58000002)
Packit Service c5cf8c
#define MPI_SUM     (MPI_Op)(0x58000003)
Packit Service c5cf8c
#define MPI_PROD    (MPI_Op)(0x58000004)
Packit Service c5cf8c
#define MPI_LAND    (MPI_Op)(0x58000005)
Packit Service c5cf8c
#define MPI_BAND    (MPI_Op)(0x58000006)
Packit Service c5cf8c
#define MPI_LOR     (MPI_Op)(0x58000007)
Packit Service c5cf8c
#define MPI_BOR     (MPI_Op)(0x58000008)
Packit Service c5cf8c
#define MPI_LXOR    (MPI_Op)(0x58000009)
Packit Service c5cf8c
#define MPI_BXOR    (MPI_Op)(0x5800000a)
Packit Service c5cf8c
#define MPI_MINLOC  (MPI_Op)(0x5800000b)
Packit Service c5cf8c
#define MPI_MAXLOC  (MPI_Op)(0x5800000c)
Packit Service c5cf8c
#define MPI_REPLACE (MPI_Op)(0x5800000d)
Packit Service c5cf8c
#define MPI_NO_OP   (MPI_Op)(0x5800000e)
Packit Service c5cf8c
Packit Service c5cf8c
/* Permanent key values */
Packit Service c5cf8c
/* C Versions (return pointer to value),
Packit Service c5cf8c
   Fortran Versions (return integer value).
Packit Service c5cf8c
   Handled directly by the attribute value routine
Packit Service c5cf8c
   
Packit Service c5cf8c
   DO NOT CHANGE THESE.  The values encode:
Packit Service c5cf8c
   builtin kind (0x1 in bit 30-31)
Packit Service c5cf8c
   Keyval object (0x9 in bits 26-29)
Packit Service c5cf8c
   for communicator (0x1 in bits 22-25)
Packit Service c5cf8c
   
Packit Service c5cf8c
   Fortran versions of the attributes are formed by adding one to
Packit Service c5cf8c
   the C version.
Packit Service c5cf8c
 */
Packit Service c5cf8c
#define MPI_TAG_UB           0x64400001
Packit Service c5cf8c
#define MPI_HOST             0x64400003
Packit Service c5cf8c
#define MPI_IO               0x64400005
Packit Service c5cf8c
#define MPI_WTIME_IS_GLOBAL  0x64400007
Packit Service c5cf8c
#define MPI_UNIVERSE_SIZE    0x64400009
Packit Service c5cf8c
#define MPI_LASTUSEDCODE     0x6440000b
Packit Service c5cf8c
#define MPI_APPNUM           0x6440000d
Packit Service c5cf8c
Packit Service c5cf8c
/* In addition, there are 5 predefined window attributes that are
Packit Service c5cf8c
   defined for every window */
Packit Service c5cf8c
#define MPI_WIN_BASE          0x66000001
Packit Service c5cf8c
#define MPI_WIN_SIZE          0x66000003
Packit Service c5cf8c
#define MPI_WIN_DISP_UNIT     0x66000005
Packit Service c5cf8c
#define MPI_WIN_CREATE_FLAVOR 0x66000007
Packit Service c5cf8c
#define MPI_WIN_MODEL         0x66000009
Packit Service c5cf8c
Packit Service c5cf8c
#ifdef MPICH_DEFINE_ATTR_TYPE_TYPES
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_datatype_null MPICH_ATTR_TYPE_TAG_MUST_BE_NULL() = MPI_DATATYPE_NULL;
Packit Service c5cf8c
#endif
Packit Service c5cf8c
Packit Service c5cf8c
/* These are only guesses; make sure you change them in mpif.h as well */
Packit Service c5cf8c
#define MPI_MAX_PROCESSOR_NAME @MPI_MAX_PROCESSOR_NAME@
Packit Service c5cf8c
#define MPI_MAX_LIBRARY_VERSION_STRING @MPI_MAX_LIBRARY_VERSION_STRING@
Packit Service c5cf8c
#define MPI_MAX_ERROR_STRING   @MPI_MAX_ERROR_STRING@
Packit Service c5cf8c
#define MPI_MAX_PORT_NAME      256
Packit Service c5cf8c
#define MPI_MAX_OBJECT_NAME    128
Packit Service c5cf8c
Packit Service c5cf8c
/* Pre-defined constants */
Packit Service c5cf8c
#define MPI_UNDEFINED      (-32766)
Packit Service c5cf8c
#define MPI_KEYVAL_INVALID 0x24000000
Packit Service c5cf8c
Packit Service c5cf8c
/* MPI-3 window flavors */
Packit Service c5cf8c
typedef enum MPIR_Win_flavor {
Packit Service c5cf8c
    MPI_WIN_FLAVOR_CREATE      = 1,
Packit Service c5cf8c
    MPI_WIN_FLAVOR_ALLOCATE    = 2,
Packit Service c5cf8c
    MPI_WIN_FLAVOR_DYNAMIC     = 3,
Packit Service c5cf8c
    MPI_WIN_FLAVOR_SHARED      = 4
Packit Service c5cf8c
} MPIR_Win_flavor_t;
Packit Service c5cf8c
Packit Service c5cf8c
/* MPI-3 window consistency models */
Packit Service c5cf8c
typedef enum MPIR_Win_model {
Packit Service c5cf8c
    MPI_WIN_SEPARATE   = 1,
Packit Service c5cf8c
    MPI_WIN_UNIFIED    = 2
Packit Service c5cf8c
} MPIR_Win_model_t;
Packit Service c5cf8c
Packit Service c5cf8c
/* Upper bound on the overhead in bsend for each message buffer */
Packit Service c5cf8c
#define MPI_BSEND_OVERHEAD @BSEND_OVERHEAD@
Packit Service c5cf8c
Packit Service c5cf8c
/* Topology types */
Packit Service c5cf8c
typedef enum MPIR_Topo_type { MPI_GRAPH=1, MPI_CART=2, MPI_DIST_GRAPH=3 } MPIR_Topo_type;
Packit Service c5cf8c
Packit Service c5cf8c
#define MPI_BOTTOM      (void *)0
Packit Service c5cf8c
extern int * const MPI_UNWEIGHTED MPICH_API_PUBLIC;
Packit Service c5cf8c
extern int * const MPI_WEIGHTS_EMPTY MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
#define MPI_PROC_NULL   (-1)
Packit Service c5cf8c
#define MPI_ANY_SOURCE 	(-2)
Packit Service c5cf8c
#define MPI_ROOT        (-3)
Packit Service c5cf8c
#define MPI_ANY_TAG     (-1)
Packit Service c5cf8c
Packit Service c5cf8c
#define MPI_LOCK_EXCLUSIVE  234
Packit Service c5cf8c
#define MPI_LOCK_SHARED     235
Packit Service c5cf8c
Packit Service c5cf8c
/* C functions */
Packit Service c5cf8c
typedef void (MPI_Handler_function) ( MPI_Comm *, int *, ... );
Packit Service c5cf8c
typedef int (MPI_Comm_copy_attr_function)(MPI_Comm, int, void *, void *, 
Packit Service c5cf8c
					  void *, int *);
Packit Service c5cf8c
typedef int (MPI_Comm_delete_attr_function)(MPI_Comm, int, void *, void *);
Packit Service c5cf8c
typedef int (MPI_Type_copy_attr_function)(MPI_Datatype, int, void *, void *, 
Packit Service c5cf8c
					  void *, int *);
Packit Service c5cf8c
typedef int (MPI_Type_delete_attr_function)(MPI_Datatype, int, void *, void *);
Packit Service c5cf8c
typedef int (MPI_Win_copy_attr_function)(MPI_Win, int, void *, void *, void *,
Packit Service c5cf8c
					 int *);
Packit Service c5cf8c
typedef int (MPI_Win_delete_attr_function)(MPI_Win, int, void *, void *);
Packit Service c5cf8c
/* added in MPI-2.2 */
Packit Service c5cf8c
typedef void (MPI_Comm_errhandler_function)(MPI_Comm *, int *, ...);
Packit Service c5cf8c
typedef void (MPI_File_errhandler_function)(MPI_File *, int *, ...);
Packit Service c5cf8c
typedef void (MPI_Win_errhandler_function)(MPI_Win *, int *, ...);
Packit Service c5cf8c
/* names that were added in MPI-2.0 and deprecated in MPI-2.2 */
Packit Service c5cf8c
typedef MPI_Comm_errhandler_function MPI_Comm_errhandler_fn;
Packit Service c5cf8c
typedef MPI_File_errhandler_function MPI_File_errhandler_fn;
Packit Service c5cf8c
typedef MPI_Win_errhandler_function MPI_Win_errhandler_fn;
Packit Service c5cf8c
Packit Service c5cf8c
/* Built in (0x1 in 30-31), errhandler (0x5 in bits 26-29, allkind (0
Packit Service c5cf8c
   in 22-25), index in the low bits */
Packit Service c5cf8c
#define MPI_ERRORS_ARE_FATAL ((MPI_Errhandler)0x54000000)
Packit Service c5cf8c
#define MPI_ERRORS_RETURN    ((MPI_Errhandler)0x54000001)
Packit Service c5cf8c
/* MPIR_ERRORS_THROW_EXCEPTIONS is not part of the MPI standard, it is here to
Packit Service c5cf8c
   facilitate the c++ binding which has MPI::ERRORS_THROW_EXCEPTIONS. 
Packit Service c5cf8c
   Using the MPIR prefix preserved the MPI_ names for objects defined by
Packit Service c5cf8c
   the standard. */
Packit Service c5cf8c
#define MPIR_ERRORS_THROW_EXCEPTIONS ((MPI_Errhandler)0x54000002)
Packit Service c5cf8c
typedef int MPI_Errhandler;
Packit Service c5cf8c
Packit Service c5cf8c
/* Make the C names for the dup function mixed case.
Packit Service c5cf8c
   This is required for systems that use all uppercase names for Fortran 
Packit Service c5cf8c
   externals.  */
Packit Service c5cf8c
/* MPI 1 names */
Packit Service c5cf8c
#define MPI_NULL_COPY_FN   ((MPI_Copy_function *)0)
Packit Service c5cf8c
#define MPI_NULL_DELETE_FN ((MPI_Delete_function *)0)
Packit Service c5cf8c
#define MPI_DUP_FN         MPIR_Dup_fn
Packit Service c5cf8c
/* MPI 2 names */
Packit Service c5cf8c
#define MPI_COMM_NULL_COPY_FN ((MPI_Comm_copy_attr_function*)0)
Packit Service c5cf8c
#define MPI_COMM_NULL_DELETE_FN ((MPI_Comm_delete_attr_function*)0)
Packit Service c5cf8c
#define MPI_COMM_DUP_FN  ((MPI_Comm_copy_attr_function *)MPI_DUP_FN)
Packit Service c5cf8c
#define MPI_WIN_NULL_COPY_FN ((MPI_Win_copy_attr_function*)0)
Packit Service c5cf8c
#define MPI_WIN_NULL_DELETE_FN ((MPI_Win_delete_attr_function*)0)
Packit Service c5cf8c
#define MPI_WIN_DUP_FN   ((MPI_Win_copy_attr_function*)MPI_DUP_FN)
Packit Service c5cf8c
#define MPI_TYPE_NULL_COPY_FN ((MPI_Type_copy_attr_function*)0)
Packit Service c5cf8c
#define MPI_TYPE_NULL_DELETE_FN ((MPI_Type_delete_attr_function*)0)
Packit Service c5cf8c
#define MPI_TYPE_DUP_FN ((MPI_Type_copy_attr_function*)MPI_DUP_FN)
Packit Service c5cf8c
Packit Service c5cf8c
/* MPI request opjects */
Packit Service c5cf8c
typedef int MPI_Request;
Packit Service c5cf8c
Packit Service c5cf8c
/* MPI message objects for Mprobe and related functions */
Packit Service c5cf8c
typedef int MPI_Message;
Packit Service c5cf8c
Packit Service c5cf8c
/* User combination function */
Packit Service c5cf8c
typedef void (MPI_User_function) ( void *, void *, int *, MPI_Datatype * ); 
Packit Service c5cf8c
Packit Service c5cf8c
/* MPI Attribute copy and delete functions */
Packit Service c5cf8c
typedef int (MPI_Copy_function) ( MPI_Comm, int, void *, void *, void *, int * );
Packit Service c5cf8c
typedef int (MPI_Delete_function) ( MPI_Comm, int, void *, void * );
Packit Service c5cf8c
Packit Service c5cf8c
#define MPI_VERSION    3
Packit Service c5cf8c
#define MPI_SUBVERSION 1
Packit Service c5cf8c
#define MPICH_NAME     3
Packit Service c5cf8c
#define MPICH         1
Packit Service c5cf8c
#define MPICH_HAS_C2F  1
Packit Service c5cf8c
Packit Service c5cf8c
Packit Service c5cf8c
/* MPICH_VERSION is the version string. MPICH_NUMVERSION is the
Packit Service c5cf8c
 * numeric version that can be used in numeric comparisons.
Packit Service c5cf8c
 *
Packit Service c5cf8c
 * MPICH_VERSION uses the following format:
Packit Service c5cf8c
 * Version: [MAJ].[MIN].[REV][EXT][EXT_NUMBER]
Packit Service c5cf8c
 * Example: 1.0.7rc1 has
Packit Service c5cf8c
 *          MAJ = 1
Packit Service c5cf8c
 *          MIN = 0
Packit Service c5cf8c
 *          REV = 7
Packit Service c5cf8c
 *          EXT = rc
Packit Service c5cf8c
 *          EXT_NUMBER = 1
Packit Service c5cf8c
 *
Packit Service c5cf8c
 * MPICH_NUMVERSION will convert EXT to a format number:
Packit Service c5cf8c
 *          ALPHA (a) = 0
Packit Service c5cf8c
 *          BETA (b)  = 1
Packit Service c5cf8c
 *          RC (rc)   = 2
Packit Service c5cf8c
 *          PATCH (p) = 3
Packit Service c5cf8c
 * Regular releases are treated as patch 0
Packit Service c5cf8c
 *
Packit Service c5cf8c
 * Numeric version will have 1 digit for MAJ, 2 digits for MIN, 2
Packit Service c5cf8c
 * digits for REV, 1 digit for EXT and 2 digits for EXT_NUMBER. So,
Packit Service c5cf8c
 * 1.0.7rc1 will have the numeric version 10007201.
Packit Service c5cf8c
 */
Packit Service c5cf8c
#define MPICH_VERSION "@MPICH_VERSION@"
Packit Service c5cf8c
#define MPICH_NUMVERSION @MPICH_NUMVERSION@
Packit Service c5cf8c
Packit Service c5cf8c
#define MPICH_RELEASE_TYPE_ALPHA  0
Packit Service c5cf8c
#define MPICH_RELEASE_TYPE_BETA   1
Packit Service c5cf8c
#define MPICH_RELEASE_TYPE_RC     2
Packit Service c5cf8c
#define MPICH_RELEASE_TYPE_PATCH  3
Packit Service c5cf8c
Packit Service c5cf8c
#define MPICH_CALC_VERSION(MAJOR, MINOR, REVISION, TYPE, PATCH) \
Packit Service c5cf8c
    (((MAJOR) * 10000000) + ((MINOR) * 100000) + ((REVISION) * 1000) + ((TYPE) * 100) + (PATCH))
Packit Service c5cf8c
Packit Service c5cf8c
/* for the datatype decoders */
Packit Service c5cf8c
enum MPIR_Combiner_enum {
Packit Service c5cf8c
    MPI_COMBINER_NAMED            = 1,
Packit Service c5cf8c
    MPI_COMBINER_DUP              = 2,
Packit Service c5cf8c
    MPI_COMBINER_CONTIGUOUS       = 3, 
Packit Service c5cf8c
    MPI_COMBINER_VECTOR           = 4,
Packit Service c5cf8c
    MPI_COMBINER_HVECTOR_INTEGER  = 5,
Packit Service c5cf8c
    MPI_COMBINER_HVECTOR          = 6,
Packit Service c5cf8c
    MPI_COMBINER_INDEXED          = 7,
Packit Service c5cf8c
    MPI_COMBINER_HINDEXED_INTEGER = 8, 
Packit Service c5cf8c
    MPI_COMBINER_HINDEXED         = 9, 
Packit Service c5cf8c
    MPI_COMBINER_INDEXED_BLOCK    = 10, 
Packit Service c5cf8c
    MPI_COMBINER_STRUCT_INTEGER   = 11,
Packit Service c5cf8c
    MPI_COMBINER_STRUCT           = 12,
Packit Service c5cf8c
    MPI_COMBINER_SUBARRAY         = 13,
Packit Service c5cf8c
    MPI_COMBINER_DARRAY           = 14,
Packit Service c5cf8c
    MPI_COMBINER_F90_REAL         = 15,
Packit Service c5cf8c
    MPI_COMBINER_F90_COMPLEX      = 16,
Packit Service c5cf8c
    MPI_COMBINER_F90_INTEGER      = 17,
Packit Service c5cf8c
    MPI_COMBINER_RESIZED          = 18,
Packit Service c5cf8c
    MPI_COMBINER_HINDEXED_BLOCK   = 19
Packit Service c5cf8c
};
Packit Service c5cf8c
Packit Service c5cf8c
/* for info */
Packit Service c5cf8c
typedef int MPI_Info;
Packit Service c5cf8c
#define MPI_INFO_NULL         ((MPI_Info)0x1c000000)
Packit Service c5cf8c
#define MPI_INFO_ENV          ((MPI_Info)0x5c000001)
Packit Service c5cf8c
#define MPI_MAX_INFO_KEY       255
Packit Service c5cf8c
#define MPI_MAX_INFO_VAL      1024
Packit Service c5cf8c
Packit Service c5cf8c
/* for subarray and darray constructors */
Packit Service c5cf8c
#define MPI_ORDER_C              56
Packit Service c5cf8c
#define MPI_ORDER_FORTRAN        57
Packit Service c5cf8c
#define MPI_DISTRIBUTE_BLOCK    121
Packit Service c5cf8c
#define MPI_DISTRIBUTE_CYCLIC   122
Packit Service c5cf8c
#define MPI_DISTRIBUTE_NONE     123
Packit Service c5cf8c
#define MPI_DISTRIBUTE_DFLT_DARG -49767
Packit Service c5cf8c
Packit Service c5cf8c
#define MPI_IN_PLACE  (void *) -1
Packit Service c5cf8c
Packit Service c5cf8c
/* asserts for one-sided communication */
Packit Service c5cf8c
#define MPI_MODE_NOCHECK      1024
Packit Service c5cf8c
#define MPI_MODE_NOSTORE      2048
Packit Service c5cf8c
#define MPI_MODE_NOPUT        4096
Packit Service c5cf8c
#define MPI_MODE_NOPRECEDE    8192
Packit Service c5cf8c
#define MPI_MODE_NOSUCCEED   16384 
Packit Service c5cf8c
Packit Service c5cf8c
/* predefined types for MPI_Comm_split_type */
Packit Service c5cf8c
#define MPI_COMM_TYPE_SHARED    1
Packit Service c5cf8c
Packit Service c5cf8c
/* MPICH-specific types */
Packit Service c5cf8c
#define MPIX_COMM_TYPE_NEIGHBORHOOD 2
Packit Service c5cf8c
Packit Service c5cf8c
/* Definitions that are determined by configure. */
Packit Service c5cf8c
typedef @MPI_AINT@ MPI_Aint;
Packit Service c5cf8c
typedef @MPI_FINT@ MPI_Fint;
Packit Service c5cf8c
typedef @MPI_COUNT@ MPI_Count;
Packit Service c5cf8c
Packit Service c5cf8c
#ifdef MPICH_DEFINE_ATTR_TYPE_TYPES
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_aint   MPICH_ATTR_TYPE_TAG(MPI_Aint)   = MPI_AINT;
Packit Service c5cf8c
#endif
Packit Service c5cf8c
Packit Service c5cf8c
/* FIXME: The following two definition are not defined by MPI and must not be
Packit Service c5cf8c
   included in the mpi.h file, as the MPI namespace is reserved to the MPI 
Packit Service c5cf8c
   standard */
Packit Service c5cf8c
#define MPI_AINT_FMT_DEC_SPEC "@MPI_AINT_FMT_DEC_SPEC@"
Packit Service c5cf8c
#define MPI_AINT_FMT_HEX_SPEC "@MPI_AINT_FMT_HEX_SPEC@"
Packit Service c5cf8c
Packit Service c5cf8c
/* Let ROMIO know that MPI_Offset is already defined */
Packit Service c5cf8c
#define HAVE_MPI_OFFSET
Packit Service c5cf8c
/* MPI_OFFSET_TYPEDEF is set in configure and is 
Packit Service c5cf8c
      typedef $MPI_OFFSET MPI_Offset;
Packit Service c5cf8c
   where $MPI_OFFSET is the correct C type */
Packit Service c5cf8c
@MPI_OFFSET_TYPEDEF@
Packit Service c5cf8c
Packit Service c5cf8c
#ifdef MPICH_DEFINE_ATTR_TYPE_TYPES
Packit Service c5cf8c
static const MPI_Datatype mpich_mpi_offset MPICH_ATTR_TYPE_TAG(MPI_Offset) = MPI_OFFSET;
Packit Service c5cf8c
#endif
Packit Service c5cf8c
Packit Service c5cf8c
/* The order of these elements must match that in mpif.h, mpi_f08_types.f90,
Packit Service c5cf8c
   and mpi_c_interface_types.f90 */
Packit Service c5cf8c
typedef struct MPI_Status {
Packit Service c5cf8c
    int count_lo;
Packit Service c5cf8c
    int count_hi_and_cancelled;
Packit Service c5cf8c
    int MPI_SOURCE;
Packit Service c5cf8c
    int MPI_TAG;
Packit Service c5cf8c
    int MPI_ERROR;
Packit Service c5cf8c
} MPI_Status;
Packit Service c5cf8c
Packit Service c5cf8c
/* types for the MPI_T_ interface */
Packit Service c5cf8c
struct MPIR_T_enum_s;
Packit Service c5cf8c
struct MPIR_T_cvar_handle_s;
Packit Service c5cf8c
struct MPIR_T_pvar_handle_s;
Packit Service c5cf8c
struct MPIR_T_pvar_session_s;
Packit Service c5cf8c
Packit Service c5cf8c
typedef struct MPIR_T_enum_s * MPI_T_enum;
Packit Service c5cf8c
typedef struct MPIR_T_cvar_handle_s * MPI_T_cvar_handle;
Packit Service c5cf8c
typedef struct MPIR_T_pvar_handle_s * MPI_T_pvar_handle;
Packit Service c5cf8c
typedef struct MPIR_T_pvar_session_s * MPI_T_pvar_session;
Packit Service c5cf8c
Packit Service c5cf8c
/* extra const at front would be safer, but is incompatible with MPI_T_ prototypes */
Packit Service c5cf8c
extern struct MPIR_T_pvar_handle_s * const MPI_T_PVAR_ALL_HANDLES MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
#define MPI_T_ENUM_NULL         ((MPI_T_enum)NULL)
Packit Service c5cf8c
#define MPI_T_CVAR_HANDLE_NULL  ((MPI_T_cvar_handle)NULL)
Packit Service c5cf8c
#define MPI_T_PVAR_HANDLE_NULL  ((MPI_T_pvar_handle)NULL)
Packit Service c5cf8c
#define MPI_T_PVAR_SESSION_NULL ((MPI_T_pvar_session)NULL)
Packit Service c5cf8c
Packit Service c5cf8c
/* the MPI_T_ interface requires that these VERBOSITY constants occur in this
Packit Service c5cf8c
 * relative order with increasing values */
Packit Service c5cf8c
typedef enum MPIR_T_verbosity_t {
Packit Service c5cf8c
    /* don't name-shift this if/when MPI_T_ is accepted, this is an MPICH-only
Packit Service c5cf8c
     * extension */
Packit Service c5cf8c
    MPIX_T_VERBOSITY_INVALID = 0,
Packit Service c5cf8c
Packit Service c5cf8c
    /* arbitrarily shift values to aid debugging and reduce accidental errors */
Packit Service c5cf8c
    MPI_T_VERBOSITY_USER_BASIC = 221,
Packit Service c5cf8c
    MPI_T_VERBOSITY_USER_DETAIL,
Packit Service c5cf8c
    MPI_T_VERBOSITY_USER_ALL,
Packit Service c5cf8c
Packit Service c5cf8c
    MPI_T_VERBOSITY_TUNER_BASIC,
Packit Service c5cf8c
    MPI_T_VERBOSITY_TUNER_DETAIL,
Packit Service c5cf8c
    MPI_T_VERBOSITY_TUNER_ALL,
Packit Service c5cf8c
Packit Service c5cf8c
    MPI_T_VERBOSITY_MPIDEV_BASIC,
Packit Service c5cf8c
    MPI_T_VERBOSITY_MPIDEV_DETAIL,
Packit Service c5cf8c
    MPI_T_VERBOSITY_MPIDEV_ALL
Packit Service c5cf8c
} MPIR_T_verbosity_t;
Packit Service c5cf8c
Packit Service c5cf8c
typedef enum MPIR_T_bind_t {
Packit Service c5cf8c
    /* don't name-shift this if/when MPI_T_ is accepted, this is an MPICH-only
Packit Service c5cf8c
     * extension */
Packit Service c5cf8c
    MPIX_T_BIND_INVALID = 0,
Packit Service c5cf8c
Packit Service c5cf8c
    /* arbitrarily shift values to aid debugging and reduce accidental errors */
Packit Service c5cf8c
    MPI_T_BIND_NO_OBJECT = 9700,
Packit Service c5cf8c
    MPI_T_BIND_MPI_COMM,
Packit Service c5cf8c
    MPI_T_BIND_MPI_DATATYPE,
Packit Service c5cf8c
    MPI_T_BIND_MPI_ERRHANDLER,
Packit Service c5cf8c
    MPI_T_BIND_MPI_FILE,
Packit Service c5cf8c
    MPI_T_BIND_MPI_GROUP,
Packit Service c5cf8c
    MPI_T_BIND_MPI_OP,
Packit Service c5cf8c
    MPI_T_BIND_MPI_REQUEST,
Packit Service c5cf8c
    MPI_T_BIND_MPI_WIN,
Packit Service c5cf8c
    MPI_T_BIND_MPI_MESSAGE,
Packit Service c5cf8c
    MPI_T_BIND_MPI_INFO
Packit Service c5cf8c
} MPIR_T_bind_t;
Packit Service c5cf8c
Packit Service c5cf8c
typedef enum MPIR_T_scope_t {
Packit Service c5cf8c
    /* don't name-shift this if/when MPI_T_ is accepted, this is an MPICH-only
Packit Service c5cf8c
     * extension */
Packit Service c5cf8c
    MPIX_T_SCOPE_INVALID = 0,
Packit Service c5cf8c
Packit Service c5cf8c
    /* arbitrarily shift values to aid debugging and reduce accidental errors */
Packit Service c5cf8c
    MPI_T_SCOPE_CONSTANT = 60438,
Packit Service c5cf8c
    MPI_T_SCOPE_READONLY,
Packit Service c5cf8c
    MPI_T_SCOPE_LOCAL,
Packit Service c5cf8c
    MPI_T_SCOPE_GROUP,
Packit Service c5cf8c
    MPI_T_SCOPE_GROUP_EQ,
Packit Service c5cf8c
    MPI_T_SCOPE_ALL,
Packit Service c5cf8c
    MPI_T_SCOPE_ALL_EQ
Packit Service c5cf8c
} MPIR_T_scope_t;
Packit Service c5cf8c
Packit Service c5cf8c
typedef enum MPIR_T_pvar_class_t {
Packit Service c5cf8c
    /* don't name-shift this if/when MPI_T_ is accepted, this is an MPICH-only
Packit Service c5cf8c
     * extension */
Packit Service c5cf8c
    MPIX_T_PVAR_CLASS_INVALID = 0,
Packit Service c5cf8c
Packit Service c5cf8c
    /* arbitrarily shift values to aid debugging and reduce accidental errors */
Packit Service c5cf8c
    MPIR_T_PVAR_CLASS_FIRST = 240,
Packit Service c5cf8c
    MPI_T_PVAR_CLASS_STATE = MPIR_T_PVAR_CLASS_FIRST,
Packit Service c5cf8c
    MPI_T_PVAR_CLASS_LEVEL,
Packit Service c5cf8c
    MPI_T_PVAR_CLASS_SIZE,
Packit Service c5cf8c
    MPI_T_PVAR_CLASS_PERCENTAGE,
Packit Service c5cf8c
    MPI_T_PVAR_CLASS_HIGHWATERMARK,
Packit Service c5cf8c
    MPI_T_PVAR_CLASS_LOWWATERMARK,
Packit Service c5cf8c
    MPI_T_PVAR_CLASS_COUNTER,
Packit Service c5cf8c
    MPI_T_PVAR_CLASS_AGGREGATE,
Packit Service c5cf8c
    MPI_T_PVAR_CLASS_TIMER,
Packit Service c5cf8c
    MPI_T_PVAR_CLASS_GENERIC,
Packit Service c5cf8c
    MPIR_T_PVAR_CLASS_LAST,
Packit Service c5cf8c
    MPIR_T_PVAR_CLASS_NUMBER = MPIR_T_PVAR_CLASS_LAST - MPIR_T_PVAR_CLASS_FIRST
Packit Service c5cf8c
} MPIR_T_pvar_class_t;
Packit Service c5cf8c
Packit Service c5cf8c
/* Handle conversion types/functions */
Packit Service c5cf8c
Packit Service c5cf8c
/* Programs that need to convert types used in MPICH should use these */
Packit Service c5cf8c
#define MPI_Comm_c2f(comm) (MPI_Fint)(comm)
Packit Service c5cf8c
#define MPI_Comm_f2c(comm) (MPI_Comm)(comm)
Packit Service c5cf8c
#define MPI_Type_c2f(datatype) (MPI_Fint)(datatype)
Packit Service c5cf8c
#define MPI_Type_f2c(datatype) (MPI_Datatype)(datatype)
Packit Service c5cf8c
#define MPI_Group_c2f(group) (MPI_Fint)(group)
Packit Service c5cf8c
#define MPI_Group_f2c(group) (MPI_Group)(group)
Packit Service c5cf8c
#define MPI_Info_c2f(info) (MPI_Fint)(info)
Packit Service c5cf8c
#define MPI_Info_f2c(info) (MPI_Info)(info)
Packit Service c5cf8c
#define MPI_Request_f2c(request) (MPI_Request)(request)
Packit Service c5cf8c
#define MPI_Request_c2f(request) (MPI_Fint)(request)
Packit Service c5cf8c
#define MPI_Op_c2f(op) (MPI_Fint)(op)
Packit Service c5cf8c
#define MPI_Op_f2c(op) (MPI_Op)(op)
Packit Service c5cf8c
#define MPI_Errhandler_c2f(errhandler) (MPI_Fint)(errhandler)
Packit Service c5cf8c
#define MPI_Errhandler_f2c(errhandler) (MPI_Errhandler)(errhandler)
Packit Service c5cf8c
#define MPI_Win_c2f(win)   (MPI_Fint)(win)
Packit Service c5cf8c
#define MPI_Win_f2c(win)   (MPI_Win)(win)
Packit Service c5cf8c
#define MPI_Message_c2f(msg) ((MPI_Fint)(msg))
Packit Service c5cf8c
#define MPI_Message_f2c(msg) ((MPI_Message)(msg))
Packit Service c5cf8c
Packit Service c5cf8c
/* PMPI versions of the handle transfer functions.  See section 4.17 */
Packit Service c5cf8c
#define PMPI_Comm_c2f(comm) (MPI_Fint)(comm)
Packit Service c5cf8c
#define PMPI_Comm_f2c(comm) (MPI_Comm)(comm)
Packit Service c5cf8c
#define PMPI_Type_c2f(datatype) (MPI_Fint)(datatype)
Packit Service c5cf8c
#define PMPI_Type_f2c(datatype) (MPI_Datatype)(datatype)
Packit Service c5cf8c
#define PMPI_Group_c2f(group) (MPI_Fint)(group)
Packit Service c5cf8c
#define PMPI_Group_f2c(group) (MPI_Group)(group)
Packit Service c5cf8c
#define PMPI_Info_c2f(info) (MPI_Fint)(info)
Packit Service c5cf8c
#define PMPI_Info_f2c(info) (MPI_Info)(info)
Packit Service c5cf8c
#define PMPI_Request_f2c(request) (MPI_Request)(request)
Packit Service c5cf8c
#define PMPI_Request_c2f(request) (MPI_Fint)(request)
Packit Service c5cf8c
#define PMPI_Op_c2f(op) (MPI_Fint)(op)
Packit Service c5cf8c
#define PMPI_Op_f2c(op) (MPI_Op)(op)
Packit Service c5cf8c
#define PMPI_Errhandler_c2f(errhandler) (MPI_Fint)(errhandler)
Packit Service c5cf8c
#define PMPI_Errhandler_f2c(errhandler) (MPI_Errhandler)(errhandler)
Packit Service c5cf8c
#define PMPI_Win_c2f(win)   (MPI_Fint)(win)
Packit Service c5cf8c
#define PMPI_Win_f2c(win)   (MPI_Win)(win)
Packit Service c5cf8c
#define PMPI_Message_c2f(msg) ((MPI_Fint)(msg))
Packit Service c5cf8c
#define PMPI_Message_f2c(msg) ((MPI_Message)(msg))
Packit Service c5cf8c
Packit Service c5cf8c
#define MPI_STATUS_IGNORE (MPI_Status *)1
Packit Service c5cf8c
#define MPI_STATUSES_IGNORE (MPI_Status *)1
Packit Service c5cf8c
#define MPI_ERRCODES_IGNORE (int *)0
Packit Service c5cf8c
Packit Service c5cf8c
/* See 4.12.5 for MPI_F_STATUS(ES)_IGNORE */
Packit Service c5cf8c
@MPIU_DLL_SPEC_DEF@
Packit Service c5cf8c
extern MPIU_DLL_SPEC MPI_Fint * MPI_F_STATUS_IGNORE MPICH_API_PUBLIC;
Packit Service c5cf8c
extern MPIU_DLL_SPEC MPI_Fint * MPI_F_STATUSES_IGNORE MPICH_API_PUBLIC;
Packit Service c5cf8c
/* The annotation MPIU_DLL_SPEC to the extern statements is used 
Packit Service c5cf8c
   as a hook for systems that require C extensions to correctly construct
Packit Service c5cf8c
   DLLs, and is defined as an empty string otherwise
Packit Service c5cf8c
 */
Packit Service c5cf8c
Packit Service c5cf8c
/* The MPI standard requires that the ARGV_NULL values be the same as
Packit Service c5cf8c
   NULL (see 5.3.2) */
Packit Service c5cf8c
#define MPI_ARGV_NULL (char **)0
Packit Service c5cf8c
#define MPI_ARGVS_NULL (char ***)0
Packit Service c5cf8c
Packit Service c5cf8c
/* C type for MPI_STATUS in F08.
Packit Service c5cf8c
   The field order should match that in mpi_f08_types.f90, and mpi_c_interface_types.f90.
Packit Service c5cf8c
 */
Packit Service c5cf8c
typedef struct {
Packit Service c5cf8c
    MPI_Fint count_lo;
Packit Service c5cf8c
    MPI_Fint count_hi_and_cancelled;
Packit Service c5cf8c
    MPI_Fint MPI_SOURCE;
Packit Service c5cf8c
    MPI_Fint MPI_TAG;
Packit Service c5cf8c
    MPI_Fint MPI_ERROR;
Packit Service c5cf8c
} MPI_F08_status;
Packit Service c5cf8c
Packit Service c5cf8c
extern MPI_F08_status MPIR_F08_MPI_STATUS_IGNORE_OBJ MPICH_API_PUBLIC;
Packit Service c5cf8c
extern MPI_F08_status MPIR_F08_MPI_STATUSES_IGNORE_OBJ[1] MPICH_API_PUBLIC;
Packit Service c5cf8c
extern int MPIR_F08_MPI_IN_PLACE MPICH_API_PUBLIC;
Packit Service c5cf8c
extern int MPIR_F08_MPI_BOTTOM MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* Pointers to above objects */
Packit Service c5cf8c
extern MPI_F08_status *MPI_F08_STATUS_IGNORE MPICH_API_PUBLIC;
Packit Service c5cf8c
extern MPI_F08_status *MPI_F08_STATUSES_IGNORE MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* For supported thread levels */
Packit Service c5cf8c
#define MPI_THREAD_SINGLE 0
Packit Service c5cf8c
#define MPI_THREAD_FUNNELED 1
Packit Service c5cf8c
#define MPI_THREAD_SERIALIZED 2
Packit Service c5cf8c
#define MPI_THREAD_MULTIPLE 3
Packit Service c5cf8c
Packit Service c5cf8c
/* Typedefs for generalized requests */
Packit Service c5cf8c
typedef int (MPI_Grequest_cancel_function)(void *, int); 
Packit Service c5cf8c
typedef int (MPI_Grequest_free_function)(void *); 
Packit Service c5cf8c
typedef int (MPI_Grequest_query_function)(void *, MPI_Status *); 
Packit Service c5cf8c
typedef int (MPIX_Grequest_poll_function)(void *, MPI_Status *);
Packit Service c5cf8c
typedef int (MPIX_Grequest_wait_function)(int, void **, double, MPI_Status *);
Packit Service c5cf8c
Packit Service c5cf8c
/* MPI's error classes */
Packit Service c5cf8c
#define MPI_SUCCESS          0      /* Successful return code */
Packit Service c5cf8c
/* Communication argument parameters */
Packit Service c5cf8c
#define MPI_ERR_BUFFER       1      /* Invalid buffer pointer */
Packit Service c5cf8c
#define MPI_ERR_COUNT        2      /* Invalid count argument */
Packit Service c5cf8c
#define MPI_ERR_TYPE         3      /* Invalid datatype argument */
Packit Service c5cf8c
#define MPI_ERR_TAG          4      /* Invalid tag argument */
Packit Service c5cf8c
#define MPI_ERR_COMM         5      /* Invalid communicator */
Packit Service c5cf8c
#define MPI_ERR_RANK         6      /* Invalid rank */
Packit Service c5cf8c
#define MPI_ERR_ROOT         7      /* Invalid root */
Packit Service c5cf8c
#define MPI_ERR_TRUNCATE    14      /* Message truncated on receive */
Packit Service c5cf8c
Packit Service c5cf8c
/* MPI Objects (other than COMM) */
Packit Service c5cf8c
#define MPI_ERR_GROUP        8      /* Invalid group */
Packit Service c5cf8c
#define MPI_ERR_OP           9      /* Invalid operation */
Packit Service c5cf8c
#define MPI_ERR_REQUEST     19      /* Invalid mpi_request handle */
Packit Service c5cf8c
Packit Service c5cf8c
/* Special topology argument parameters */
Packit Service c5cf8c
#define MPI_ERR_TOPOLOGY    10      /* Invalid topology */
Packit Service c5cf8c
#define MPI_ERR_DIMS        11      /* Invalid dimension argument */
Packit Service c5cf8c
Packit Service c5cf8c
/* All other arguments.  This is a class with many kinds */
Packit Service c5cf8c
#define MPI_ERR_ARG         12      /* Invalid argument */
Packit Service c5cf8c
Packit Service c5cf8c
/* Other errors that are not simply an invalid argument */
Packit Service c5cf8c
#define MPI_ERR_OTHER       15      /* Other error; use Error_string */
Packit Service c5cf8c
Packit Service c5cf8c
#define MPI_ERR_UNKNOWN     13      /* Unknown error */
Packit Service c5cf8c
#define MPI_ERR_INTERN      16      /* Internal error code    */
Packit Service c5cf8c
Packit Service c5cf8c
/* Multiple completion has three special error classes */
Packit Service c5cf8c
#define MPI_ERR_IN_STATUS           17      /* Look in status for error value */
Packit Service c5cf8c
#define MPI_ERR_PENDING             18      /* Pending request */
Packit Service c5cf8c
Packit Service c5cf8c
/* New MPI-2 Error classes */
Packit Service c5cf8c
#define MPI_ERR_ACCESS      20      /* */
Packit Service c5cf8c
#define MPI_ERR_AMODE       21      /* */
Packit Service c5cf8c
#define MPI_ERR_BAD_FILE    22      /* */
Packit Service c5cf8c
#define MPI_ERR_CONVERSION  23      /* */
Packit Service c5cf8c
#define MPI_ERR_DUP_DATAREP 24      /* */
Packit Service c5cf8c
#define MPI_ERR_FILE_EXISTS 25      /* */
Packit Service c5cf8c
#define MPI_ERR_FILE_IN_USE 26      /* */
Packit Service c5cf8c
#define MPI_ERR_FILE        27      /* */
Packit Service c5cf8c
#define MPI_ERR_IO          32      /* */
Packit Service c5cf8c
#define MPI_ERR_NO_SPACE    36      /* */
Packit Service c5cf8c
#define MPI_ERR_NO_SUCH_FILE 37     /* */
Packit Service c5cf8c
#define MPI_ERR_READ_ONLY   40      /* */
Packit Service c5cf8c
#define MPI_ERR_UNSUPPORTED_DATAREP   43  /* */
Packit Service c5cf8c
Packit Service c5cf8c
/* MPI_ERR_INFO is NOT defined in the MPI-2 standard.  I believe that
Packit Service c5cf8c
   this is an oversight */
Packit Service c5cf8c
#define MPI_ERR_INFO        28      /* */
Packit Service c5cf8c
#define MPI_ERR_INFO_KEY    29      /* */
Packit Service c5cf8c
#define MPI_ERR_INFO_VALUE  30      /* */
Packit Service c5cf8c
#define MPI_ERR_INFO_NOKEY  31      /* */
Packit Service c5cf8c
Packit Service c5cf8c
#define MPI_ERR_NAME        33      /* */
Packit Service c5cf8c
#define MPI_ERR_NO_MEM      34      /* Alloc_mem could not allocate memory */
Packit Service c5cf8c
#define MPI_ERR_NOT_SAME    35      /* */
Packit Service c5cf8c
#define MPI_ERR_PORT        38      /* */
Packit Service c5cf8c
#define MPI_ERR_QUOTA       39      /* */
Packit Service c5cf8c
#define MPI_ERR_SERVICE     41      /* */
Packit Service c5cf8c
#define MPI_ERR_SPAWN       42      /* */
Packit Service c5cf8c
#define MPI_ERR_UNSUPPORTED_OPERATION 44 /* */
Packit Service c5cf8c
#define MPI_ERR_WIN         45      /* */
Packit Service c5cf8c
Packit Service c5cf8c
#define MPI_ERR_BASE        46      /* */
Packit Service c5cf8c
#define MPI_ERR_LOCKTYPE    47      /* */
Packit Service c5cf8c
#define MPI_ERR_KEYVAL      48      /* Erroneous attribute key */
Packit Service c5cf8c
#define MPI_ERR_RMA_CONFLICT 49     /* */
Packit Service c5cf8c
#define MPI_ERR_RMA_SYNC    50      /* */ 
Packit Service c5cf8c
#define MPI_ERR_SIZE        51      /* */
Packit Service c5cf8c
#define MPI_ERR_DISP        52      /* */
Packit Service c5cf8c
#define MPI_ERR_ASSERT      53      /* */
Packit Service c5cf8c
Packit Service c5cf8c
#define MPI_ERR_RMA_RANGE  55       /* */
Packit Service c5cf8c
#define MPI_ERR_RMA_ATTACH 56       /* */
Packit Service c5cf8c
#define MPI_ERR_RMA_SHARED 57       /* */
Packit Service c5cf8c
#define MPI_ERR_RMA_FLAVOR 58       /* */
Packit Service c5cf8c
Packit Service c5cf8c
/* Return codes for functions in the MPI Tool Information Interface */
Packit Service c5cf8c
#define MPI_T_ERR_MEMORY            59  /* Out of memory */
Packit Service c5cf8c
#define MPI_T_ERR_NOT_INITIALIZED   60  /* Interface not initialized */
Packit Service c5cf8c
#define MPI_T_ERR_CANNOT_INIT       61  /* Interface not in the state to
Packit Service c5cf8c
                                           be initialized */
Packit Service c5cf8c
#define MPI_T_ERR_INVALID_INDEX     62  /* The index is invalid or
Packit Service c5cf8c
                                           has been deleted  */
Packit Service c5cf8c
#define MPI_T_ERR_INVALID_ITEM      63  /* Item index queried is out of range */
Packit Service c5cf8c
#define MPI_T_ERR_INVALID_HANDLE    64  /* The handle is invalid */
Packit Service c5cf8c
#define MPI_T_ERR_OUT_OF_HANDLES    65  /* No more handles available */
Packit Service c5cf8c
#define MPI_T_ERR_OUT_OF_SESSIONS   66  /* No more sessions available */
Packit Service c5cf8c
#define MPI_T_ERR_INVALID_SESSION   67  /* Session argument is not valid */
Packit Service c5cf8c
#define MPI_T_ERR_CVAR_SET_NOT_NOW  68  /* Cvar can't be set at this moment */
Packit Service c5cf8c
#define MPI_T_ERR_CVAR_SET_NEVER    69  /* Cvar can't be set until
Packit Service c5cf8c
                                           end of execution */
Packit Service c5cf8c
#define MPI_T_ERR_PVAR_NO_STARTSTOP 70  /* Pvar can't be started or stopped */
Packit Service c5cf8c
#define MPI_T_ERR_PVAR_NO_WRITE     71  /* Pvar can't be written or reset */
Packit Service c5cf8c
#define MPI_T_ERR_PVAR_NO_ATOMIC    72  /* Pvar can't be R/W atomically */
Packit Service c5cf8c
#define MPI_T_ERR_INVALID_NAME      73  /* Name doesn't match */
Packit Service c5cf8c
#define MPI_T_ERR_INVALID           74  /* Generic error code for MPI_T added in MPI-3.1 */
Packit Service c5cf8c
Packit Service c5cf8c
Packit Service c5cf8c
#define MPI_ERR_LASTCODE    0x3fffffff  /* Last valid error code for a 
Packit Service c5cf8c
					   predefined error class */
Packit Service c5cf8c
#define MPICH_ERR_LAST_CLASS 74     /* It is also helpful to know the
Packit Service c5cf8c
				       last valid class */
Packit Service c5cf8c
Packit Service c5cf8c
#define MPICH_ERR_FIRST_MPIX 100 /* Define a gap here because sock is
Packit Service c5cf8c
                                  * already using some of the values in this
Packit Service c5cf8c
                                  * range. All MPIX error codes will be
Packit Service c5cf8c
                                  * above this value to be ABI complaint. */
Packit Service c5cf8c
Packit Service c5cf8c
#define MPIX_ERR_PROC_FAILED          MPICH_ERR_FIRST_MPIX+1 /* Process failure */
Packit Service c5cf8c
#define MPIX_ERR_PROC_FAILED_PENDING  MPICH_ERR_FIRST_MPIX+2 /* A failure has caused this request
Packit Service c5cf8c
                                                              * to be pending */
Packit Service c5cf8c
#define MPIX_ERR_REVOKED              MPICH_ERR_FIRST_MPIX+3 /* The communciation object has been revoked */
Packit Service c5cf8c
#define MPIX_ERR_EAGAIN               MPICH_ERR_FIRST_MPIX+4 /* Operation could not be issued */
Packit Service c5cf8c
#define MPIX_ERR_NOREQ                MPICH_ERR_FIRST_MPIX+5 /* Cannot allocate request */
Packit Service c5cf8c
Packit Service c5cf8c
#define MPICH_ERR_LAST_MPIX           MPICH_ERR_FIRST_MPIX+5
Packit Service c5cf8c
Packit Service c5cf8c
Packit Service c5cf8c
/* End of MPI's error classes */
Packit Service c5cf8c
Packit Service c5cf8c
/* Function type defs */
Packit Service c5cf8c
typedef int (MPI_Datarep_conversion_function)(void *, MPI_Datatype, int, 
Packit Service c5cf8c
             void *, MPI_Offset, void *);
Packit Service c5cf8c
typedef int (MPI_Datarep_extent_function)(MPI_Datatype datatype, MPI_Aint *,
Packit Service c5cf8c
                      void *);
Packit Service c5cf8c
#define MPI_CONVERSION_FN_NULL ((MPI_Datarep_conversion_function *)0)
Packit Service c5cf8c
Packit Service c5cf8c
/* 
Packit Service c5cf8c
   For systems that may need to add additional definitions to support
Packit Service c5cf8c
   different declaration styles and options (e.g., different calling 
Packit Service c5cf8c
   conventions or DLL import/export controls).  
Packit Service c5cf8c
*/
Packit Service c5cf8c
/* --Insert Additional Definitions Here-- */
Packit Service c5cf8c
Packit Service c5cf8c
/*
Packit Service c5cf8c
 * Normally, we provide prototypes for all MPI routines.  In a few weird
Packit Service c5cf8c
 * cases, we need to suppress the prototypes.
Packit Service c5cf8c
 */
Packit Service c5cf8c
#ifndef MPICH_SUPPRESS_PROTOTYPES
Packit Service c5cf8c
/* We require that the C compiler support prototypes */
Packit Service c5cf8c
/* Begin Prototypes */
Packit Service c5cf8c
int MPI_Send(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
             MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Recv(void *buf, int count, MPI_Datatype datatype, int source, int tag,
Packit Service c5cf8c
             MPI_Comm comm, MPI_Status *status) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Get_count(const MPI_Status *status, MPI_Datatype datatype, int *count) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Bsend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
              MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Ssend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
              MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Rsend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
              MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Buffer_attach(void *buffer, int size) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Buffer_detach(void *buffer_addr, int *size) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Isend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
              MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Ibsend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
               MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Issend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
               MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Irsend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
               MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Irecv(void *buf, int count, MPI_Datatype datatype, int source, int tag,
Packit Service c5cf8c
              MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Wait(MPI_Request *request, MPI_Status *status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Test(MPI_Request *request, int *flag, MPI_Status *status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Request_free(MPI_Request *request) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Waitany(int count, MPI_Request array_of_requests[], int *indx, MPI_Status *status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Testany(int count, MPI_Request array_of_requests[], int *indx, int *flag,
Packit Service c5cf8c
                MPI_Status *status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Waitall(int count, MPI_Request array_of_requests[], MPI_Status array_of_statuses[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Testall(int count, MPI_Request array_of_requests[], int *flag,
Packit Service c5cf8c
                MPI_Status array_of_statuses[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Waitsome(int incount, MPI_Request array_of_requests[], int *outcount,
Packit Service c5cf8c
                 int array_of_indices[], MPI_Status array_of_statuses[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Testsome(int incount, MPI_Request array_of_requests[], int *outcount,
Packit Service c5cf8c
                 int array_of_indices[], MPI_Status array_of_statuses[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Iprobe(int source, int tag, MPI_Comm comm, int *flag, MPI_Status *status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Probe(int source, int tag, MPI_Comm comm, MPI_Status *status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Cancel(MPI_Request *request) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Test_cancelled(const MPI_Status *status, int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Send_init(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
                  MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Bsend_init(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
                   MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Ssend_init(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
                   MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Rsend_init(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
                   MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Recv_init(void *buf, int count, MPI_Datatype datatype, int source, int tag,
Packit Service c5cf8c
                  MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Start(MPI_Request *request) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Startall(int count, MPI_Request array_of_requests[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Sendrecv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, int dest,
Packit Service c5cf8c
                 int sendtag, void *recvbuf, int recvcount, MPI_Datatype recvtype,
Packit Service c5cf8c
                 int source, int recvtag, MPI_Comm comm, MPI_Status *status)
Packit Service c5cf8c
                 MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(6,8) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Sendrecv_replace(void *buf, int count, MPI_Datatype datatype, int dest,
Packit Service c5cf8c
                         int sendtag, int source, int recvtag, MPI_Comm comm,
Packit Service c5cf8c
                         MPI_Status *status) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_contiguous(int count, MPI_Datatype oldtype, MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_vector(int count, int blocklength, int stride, MPI_Datatype oldtype,
Packit Service c5cf8c
                    MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_hvector(int count, int blocklength, MPI_Aint stride, MPI_Datatype oldtype,
Packit Service c5cf8c
                     MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_indexed(int count, const int *array_of_blocklengths,
Packit Service c5cf8c
                     const int *array_of_displacements, MPI_Datatype oldtype,
Packit Service c5cf8c
                     MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_hindexed(int count, int *array_of_blocklengths,
Packit Service c5cf8c
                      MPI_Aint *array_of_displacements, MPI_Datatype oldtype,
Packit Service c5cf8c
                      MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_struct(int count, int *array_of_blocklengths,
Packit Service c5cf8c
                    MPI_Aint *array_of_displacements,
Packit Service c5cf8c
                    MPI_Datatype *array_of_types, MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Address(void *location, MPI_Aint *address) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_extent(MPI_Datatype datatype, MPI_Aint *extent) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_size(MPI_Datatype datatype, int *size) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_lb(MPI_Datatype datatype, MPI_Aint *displacement) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_ub(MPI_Datatype datatype, MPI_Aint *displacement) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_commit(MPI_Datatype *datatype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_free(MPI_Datatype *datatype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Get_elements(const MPI_Status *status, MPI_Datatype datatype, int *count) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Pack(const void *inbuf, int incount, MPI_Datatype datatype, void *outbuf,
Packit Service c5cf8c
             int outsize, int *position, MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Unpack(const void *inbuf, int insize, int *position, void *outbuf, int outcount,
Packit Service c5cf8c
               MPI_Datatype datatype, MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Pack_size(int incount, MPI_Datatype datatype, MPI_Comm comm, int *size) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Barrier(MPI_Comm comm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Bcast(void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm)
Packit Service c5cf8c
              MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Gather(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
               int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
Packit Service c5cf8c
               MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Gatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                const int *recvcounts, const int *displs, MPI_Datatype recvtype, int root,
Packit Service c5cf8c
                MPI_Comm comm)
Packit Service c5cf8c
                MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,7) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Scatter(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
Packit Service c5cf8c
                MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Scatterv(const void *sendbuf, const int *sendcounts, const int *displs,
Packit Service c5cf8c
                 MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype,
Packit Service c5cf8c
                 int root, MPI_Comm comm)
Packit Service c5cf8c
                 MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(5,7) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Allgather(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                  int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
Packit Service c5cf8c
                  MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Allgatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                   const int *recvcounts, const int *displs, MPI_Datatype recvtype, MPI_Comm comm)
Packit Service c5cf8c
                   MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,7) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Alltoall(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                 int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
Packit Service c5cf8c
                 MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Alltoallv(const void *sendbuf, const int *sendcounts, const int *sdispls,
Packit Service c5cf8c
                  MPI_Datatype sendtype, void *recvbuf, const int *recvcounts,
Packit Service c5cf8c
                  const int *rdispls, MPI_Datatype recvtype, MPI_Comm comm)
Packit Service c5cf8c
                  MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(5,8) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Alltoallw(const void *sendbuf, const int sendcounts[], const int sdispls[],
Packit Service c5cf8c
                  const MPI_Datatype sendtypes[], void *recvbuf, const int recvcounts[],
Packit Service c5cf8c
                  const int rdispls[], const MPI_Datatype recvtypes[], MPI_Comm comm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Exscan(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
Packit Service c5cf8c
               MPI_Op op, MPI_Comm comm)
Packit Service c5cf8c
               MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Reduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
Packit Service c5cf8c
               MPI_Op op, int root, MPI_Comm comm)
Packit Service c5cf8c
               MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Op_create(MPI_User_function *user_fn, int commute, MPI_Op *op) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Op_free(MPI_Op *op) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Allreduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
Packit Service c5cf8c
                  MPI_Op op, MPI_Comm comm)
Packit Service c5cf8c
                  MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Reduce_scatter(const void *sendbuf, void *recvbuf, const int recvcounts[],
Packit Service c5cf8c
                       MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
Packit Service c5cf8c
                       MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Scan(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op,
Packit Service c5cf8c
             MPI_Comm comm)
Packit Service c5cf8c
             MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Group_size(MPI_Group group, int *size) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Group_rank(MPI_Group group, int *rank) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Group_translate_ranks(MPI_Group group1, int n, const int ranks1[], MPI_Group group2,
Packit Service c5cf8c
                              int ranks2[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Group_compare(MPI_Group group1, MPI_Group group2, int *result) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_group(MPI_Comm comm, MPI_Group *group) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Group_union(MPI_Group group1, MPI_Group group2, MPI_Group *newgroup) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Group_intersection(MPI_Group group1, MPI_Group group2, MPI_Group *newgroup) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Group_difference(MPI_Group group1, MPI_Group group2, MPI_Group *newgroup) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Group_incl(MPI_Group group, int n, const int ranks[], MPI_Group *newgroup) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Group_excl(MPI_Group group, int n, const int ranks[], MPI_Group *newgroup) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Group_range_incl(MPI_Group group, int n, int ranges[][3], MPI_Group *newgroup) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Group_range_excl(MPI_Group group, int n, int ranges[][3], MPI_Group *newgroup) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Group_free(MPI_Group *group) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_size(MPI_Comm comm, int *size) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_rank(MPI_Comm comm, int *rank) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_compare(MPI_Comm comm1, MPI_Comm comm2, int *result) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_dup(MPI_Comm comm, MPI_Comm *newcomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_dup_with_info(MPI_Comm comm, MPI_Info info, MPI_Comm *newcomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_create(MPI_Comm comm, MPI_Group group, MPI_Comm *newcomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm *newcomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_free(MPI_Comm *comm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_test_inter(MPI_Comm comm, int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_remote_size(MPI_Comm comm, int *size) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_remote_group(MPI_Comm comm, MPI_Group *group) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Intercomm_create(MPI_Comm local_comm, int local_leader, MPI_Comm peer_comm,
Packit Service c5cf8c
                         int remote_leader, int tag, MPI_Comm *newintercomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Intercomm_merge(MPI_Comm intercomm, int high, MPI_Comm *newintracomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Keyval_create(MPI_Copy_function *copy_fn, MPI_Delete_function *delete_fn,
Packit Service c5cf8c
                      int *keyval, void *extra_state) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Keyval_free(int *keyval) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Attr_put(MPI_Comm comm, int keyval, void *attribute_val) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Attr_get(MPI_Comm comm, int keyval, void *attribute_val, int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Attr_delete(MPI_Comm comm, int keyval) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Topo_test(MPI_Comm comm, int *status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Cart_create(MPI_Comm comm_old, int ndims, const int dims[], const int periods[],
Packit Service c5cf8c
                    int reorder, MPI_Comm *comm_cart) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Dims_create(int nnodes, int ndims, int dims[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Graph_create(MPI_Comm comm_old, int nnodes, const int indx[], const int edges[],
Packit Service c5cf8c
                     int reorder, MPI_Comm *comm_graph) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Graphdims_get(MPI_Comm comm, int *nnodes, int *nedges) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Graph_get(MPI_Comm comm, int maxindex, int maxedges, int indx[], int edges[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Cartdim_get(MPI_Comm comm, int *ndims) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Cart_get(MPI_Comm comm, int maxdims, int dims[], int periods[], int coords[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Cart_rank(MPI_Comm comm, const int coords[], int *rank) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Cart_coords(MPI_Comm comm, int rank, int maxdims, int coords[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Graph_neighbors_count(MPI_Comm comm, int rank, int *nneighbors) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Graph_neighbors(MPI_Comm comm, int rank, int maxneighbors, int neighbors[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Cart_shift(MPI_Comm comm, int direction, int disp, int *rank_source, int *rank_dest) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Cart_sub(MPI_Comm comm, const int remain_dims[], MPI_Comm *newcomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Cart_map(MPI_Comm comm, int ndims, const int dims[], const int periods[], int *newrank) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Graph_map(MPI_Comm comm, int nnodes, const int indx[], const int edges[], int *newrank) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Get_processor_name(char *name, int *resultlen) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Get_version(int *version, int *subversion) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Get_library_version(char *version, int *resultlen) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Errhandler_create(MPI_Handler_function *function, MPI_Errhandler *errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Errhandler_set(MPI_Comm comm, MPI_Errhandler errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Errhandler_get(MPI_Comm comm, MPI_Errhandler *errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Errhandler_free(MPI_Errhandler *errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Error_string(int errorcode, char *string, int *resultlen) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Error_class(int errorcode, int *errorclass) MPICH_API_PUBLIC;
Packit Service c5cf8c
double MPI_Wtime(void) MPICH_API_PUBLIC;
Packit Service c5cf8c
double MPI_Wtick(void) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Init(int *argc, char ***argv) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Finalize(void) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Initialized(int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Abort(MPI_Comm comm, int errorcode) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* Note that we may need to define a @PCONTROL_LIST@ depending on whether
Packit Service c5cf8c
   stdargs are supported */
Packit Service c5cf8c
int MPI_Pcontrol(const int level, ...) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_DUP_FN(MPI_Comm oldcomm, int keyval, void *extra_state, void *attribute_val_in,
Packit Service c5cf8c
               void *attribute_val_out, int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* Process Creation and Management */
Packit Service c5cf8c
int MPI_Close_port(const char *port_name) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_accept(const char *port_name, MPI_Info info, int root, MPI_Comm comm,
Packit Service c5cf8c
                    MPI_Comm *newcomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_connect(const char *port_name, MPI_Info info, int root, MPI_Comm comm,
Packit Service c5cf8c
                     MPI_Comm *newcomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_disconnect(MPI_Comm *comm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_get_parent(MPI_Comm *parent) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_join(int fd, MPI_Comm *intercomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_spawn(const char *command, char *argv[], int maxprocs, MPI_Info info, int root,
Packit Service c5cf8c
                   MPI_Comm comm, MPI_Comm *intercomm, int array_of_errcodes[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_spawn_multiple(int count, char *array_of_commands[], char **array_of_argv[],
Packit Service c5cf8c
                            const int array_of_maxprocs[], const MPI_Info array_of_info[],
Packit Service c5cf8c
                            int root, MPI_Comm comm, MPI_Comm *intercomm, int array_of_errcodes[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Lookup_name(const char *service_name, MPI_Info info, char *port_name) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Open_port(MPI_Info info, char *port_name) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Publish_name(const char *service_name, MPI_Info info, const char *port_name) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Unpublish_name(const char *service_name, MPI_Info info, const char *port_name) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_set_info(MPI_Comm comm, MPI_Info info) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_get_info(MPI_Comm comm, MPI_Info *info) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* One-Sided Communications */
Packit Service c5cf8c
int MPI_Accumulate(const void *origin_addr, int origin_count, MPI_Datatype origin_datatype,
Packit Service c5cf8c
                   int target_rank, MPI_Aint target_disp, int target_count,
Packit Service c5cf8c
                   MPI_Datatype target_datatype, MPI_Op op, MPI_Win win)
Packit Service c5cf8c
                   MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Get(void *origin_addr, int origin_count, MPI_Datatype origin_datatype,
Packit Service c5cf8c
            int target_rank, MPI_Aint target_disp, int target_count,
Packit Service c5cf8c
            MPI_Datatype target_datatype, MPI_Win win) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Put(const void *origin_addr, int origin_count, MPI_Datatype origin_datatype,
Packit Service c5cf8c
            int target_rank, MPI_Aint target_disp, int target_count,
Packit Service c5cf8c
            MPI_Datatype target_datatype, MPI_Win win) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_complete(MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_create(void *base, MPI_Aint size, int disp_unit, MPI_Info info, MPI_Comm comm,
Packit Service c5cf8c
                   MPI_Win *win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_fence(int assert, MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_free(MPI_Win *win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_get_group(MPI_Win win, MPI_Group *group) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_lock(int lock_type, int rank, int assert, MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_post(MPI_Group group, int assert, MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_start(MPI_Group group, int assert, MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_test(MPI_Win win, int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_unlock(int rank, MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_wait(MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* MPI-3 One-Sided Communication Routines */
Packit Service c5cf8c
int MPI_Win_allocate(MPI_Aint size, int disp_unit, MPI_Info info, MPI_Comm comm, void *baseptr,
Packit Service c5cf8c
                     MPI_Win *win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_allocate_shared(MPI_Aint size, int disp_unit, MPI_Info info, MPI_Comm comm,
Packit Service c5cf8c
                            void *baseptr, MPI_Win *win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_shared_query(MPI_Win win, int rank, MPI_Aint *size, int *disp_unit, void *baseptr) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_create_dynamic(MPI_Info info, MPI_Comm comm, MPI_Win *win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_attach(MPI_Win win, void *base, MPI_Aint size) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_detach(MPI_Win win, const void *base) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_get_info(MPI_Win win, MPI_Info *info_used) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_set_info(MPI_Win win, MPI_Info info) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Get_accumulate(const void *origin_addr, int origin_count,
Packit Service c5cf8c
                        MPI_Datatype origin_datatype, void *result_addr, int result_count,
Packit Service c5cf8c
                        MPI_Datatype result_datatype, int target_rank, MPI_Aint target_disp,
Packit Service c5cf8c
                        int target_count, MPI_Datatype target_datatype, MPI_Op op, MPI_Win win)
Packit Service c5cf8c
                        MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3)
Packit Service c5cf8c
                        MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Fetch_and_op(const void *origin_addr, void *result_addr,
Packit Service c5cf8c
                      MPI_Datatype datatype, int target_rank, MPI_Aint target_disp,
Packit Service c5cf8c
                      MPI_Op op, MPI_Win win)
Packit Service c5cf8c
                      MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Compare_and_swap(const void *origin_addr, const void *compare_addr,
Packit Service c5cf8c
                          void *result_addr, MPI_Datatype datatype, int target_rank,
Packit Service c5cf8c
                          MPI_Aint target_disp, MPI_Win win)
Packit Service c5cf8c
                          MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4)
Packit Service c5cf8c
                          MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4)
Packit Service c5cf8c
                          MPICH_ATTR_POINTER_WITH_TYPE_TAG(3,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Rput(const void *origin_addr, int origin_count,
Packit Service c5cf8c
              MPI_Datatype origin_datatype, int target_rank, MPI_Aint target_disp,
Packit Service c5cf8c
              int target_count, MPI_Datatype target_datatype, MPI_Win win,
Packit Service c5cf8c
              MPI_Request *request)
Packit Service c5cf8c
              MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Rget(void *origin_addr, int origin_count,
Packit Service c5cf8c
              MPI_Datatype origin_datatype, int target_rank, MPI_Aint target_disp,
Packit Service c5cf8c
              int target_count, MPI_Datatype target_datatype, MPI_Win win,
Packit Service c5cf8c
              MPI_Request *request)
Packit Service c5cf8c
              MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Raccumulate(const void *origin_addr, int origin_count,
Packit Service c5cf8c
                     MPI_Datatype origin_datatype, int target_rank, MPI_Aint target_disp,
Packit Service c5cf8c
                     int target_count, MPI_Datatype target_datatype, MPI_Op op, MPI_Win win,
Packit Service c5cf8c
                     MPI_Request *request)
Packit Service c5cf8c
                     MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Rget_accumulate(const void *origin_addr, int origin_count,
Packit Service c5cf8c
                         MPI_Datatype origin_datatype, void *result_addr, int result_count,
Packit Service c5cf8c
                         MPI_Datatype result_datatype, int target_rank, MPI_Aint target_disp,
Packit Service c5cf8c
                         int target_count, MPI_Datatype target_datatype, MPI_Op op, MPI_Win win,
Packit Service c5cf8c
                         MPI_Request *request)
Packit Service c5cf8c
                         MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3)
Packit Service c5cf8c
                         MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_lock_all(int assert, MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_unlock_all(MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_flush(int rank, MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_flush_all(MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_flush_local(int rank, MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_flush_local_all(MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_sync(MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
 
Packit Service c5cf8c
/* External Interfaces */
Packit Service c5cf8c
int MPI_Add_error_class(int *errorclass) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Add_error_code(int errorclass, int *errorcode) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Add_error_string(int errorcode, const char *string) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_call_errhandler(MPI_Comm comm, int errorcode) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_create_keyval(MPI_Comm_copy_attr_function *comm_copy_attr_fn,
Packit Service c5cf8c
                           MPI_Comm_delete_attr_function *comm_delete_attr_fn, int *comm_keyval,
Packit Service c5cf8c
                           void *extra_state) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_delete_attr(MPI_Comm comm, int comm_keyval) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_free_keyval(int *comm_keyval) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_get_attr(MPI_Comm comm, int comm_keyval, void *attribute_val, int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_get_name(MPI_Comm comm, char *comm_name, int *resultlen) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_set_attr(MPI_Comm comm, int comm_keyval, void *attribute_val) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_set_name(MPI_Comm comm, const char *comm_name) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_File_call_errhandler(MPI_File fh, int errorcode) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Grequest_complete(MPI_Request request) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Grequest_start(MPI_Grequest_query_function *query_fn, MPI_Grequest_free_function *free_fn,
Packit Service c5cf8c
                       MPI_Grequest_cancel_function *cancel_fn, void *extra_state,
Packit Service c5cf8c
                       MPI_Request *request) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Init_thread(int *argc, char ***argv, int required, int *provided) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Is_thread_main(int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Query_thread(int *provided) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Status_set_cancelled(MPI_Status *status, int flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Status_set_elements(MPI_Status *status, MPI_Datatype datatype, int count) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_create_keyval(MPI_Type_copy_attr_function *type_copy_attr_fn,
Packit Service c5cf8c
                           MPI_Type_delete_attr_function *type_delete_attr_fn,
Packit Service c5cf8c
                           int *type_keyval, void *extra_state) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_delete_attr(MPI_Datatype datatype, int type_keyval) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_dup(MPI_Datatype oldtype, MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_free_keyval(int *type_keyval) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_get_attr(MPI_Datatype datatype, int type_keyval, void *attribute_val, int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_get_contents(MPI_Datatype datatype, int max_integers, int max_addresses,
Packit Service c5cf8c
                          int max_datatypes, int array_of_integers[],
Packit Service c5cf8c
                          MPI_Aint array_of_addresses[], MPI_Datatype array_of_datatypes[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_get_envelope(MPI_Datatype datatype, int *num_integers, int *num_addresses,
Packit Service c5cf8c
                          int *num_datatypes, int *combiner) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_get_name(MPI_Datatype datatype, char *type_name, int *resultlen) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_set_attr(MPI_Datatype datatype, int type_keyval, void *attribute_val) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_set_name(MPI_Datatype datatype, const char *type_name) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_match_size(int typeclass, int size, MPI_Datatype *datatype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_call_errhandler(MPI_Win win, int errorcode) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_create_keyval(MPI_Win_copy_attr_function *win_copy_attr_fn,
Packit Service c5cf8c
                          MPI_Win_delete_attr_function *win_delete_attr_fn, int *win_keyval,
Packit Service c5cf8c
                          void *extra_state) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_delete_attr(MPI_Win win, int win_keyval) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_free_keyval(int *win_keyval) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_get_attr(MPI_Win win, int win_keyval, void *attribute_val, int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_get_name(MPI_Win win, char *win_name, int *resultlen) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_set_attr(MPI_Win win, int win_keyval, void *attribute_val) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_set_name(MPI_Win win, const char *win_name) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
int MPI_Alloc_mem(MPI_Aint size, MPI_Info info, void *baseptr) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_create_errhandler(MPI_Comm_errhandler_function *comm_errhandler_fn,
Packit Service c5cf8c
                               MPI_Errhandler *errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_get_errhandler(MPI_Comm comm, MPI_Errhandler *errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Comm_set_errhandler(MPI_Comm comm, MPI_Errhandler errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_File_create_errhandler(MPI_File_errhandler_function *file_errhandler_fn,
Packit Service c5cf8c
                               MPI_Errhandler *errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_File_get_errhandler(MPI_File file, MPI_Errhandler *errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_File_set_errhandler(MPI_File file, MPI_Errhandler errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Finalized(int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Free_mem(void *base) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Get_address(const void *location, MPI_Aint *address) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Info_create(MPI_Info *info) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Info_delete(MPI_Info info, const char *key) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Info_dup(MPI_Info info, MPI_Info *newinfo) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Info_free(MPI_Info *info) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Info_get(MPI_Info info, const char *key, int valuelen, char *value, int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Info_get_nkeys(MPI_Info info, int *nkeys) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Info_get_nthkey(MPI_Info info, int n, char *key) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Info_get_valuelen(MPI_Info info, const char *key, int *valuelen, int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Info_set(MPI_Info info, const char *key, const char *value) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Pack_external(const char datarep[], const void *inbuf, int incount,
Packit Service c5cf8c
                      MPI_Datatype datatype, void *outbuf, MPI_Aint outsize, MPI_Aint *position)
Packit Service c5cf8c
                      MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Pack_external_size(const char datarep[], int incount, MPI_Datatype datatype,
Packit Service c5cf8c
                           MPI_Aint *size) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Request_get_status(MPI_Request request, int *flag, MPI_Status *status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Status_c2f(const MPI_Status *c_status, MPI_Fint *f_status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Status_f2c(const MPI_Fint *f_status, MPI_Status *c_status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_create_darray(int size, int rank, int ndims, const int array_of_gsizes[],
Packit Service c5cf8c
                           const int array_of_distribs[], const int array_of_dargs[],
Packit Service c5cf8c
                           const int array_of_psizes[], int order, MPI_Datatype oldtype,
Packit Service c5cf8c
                           MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_create_hindexed(int count, const int array_of_blocklengths[],
Packit Service c5cf8c
                             const MPI_Aint array_of_displacements[], MPI_Datatype oldtype,
Packit Service c5cf8c
                             MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_create_hvector(int count, int blocklength, MPI_Aint stride, MPI_Datatype oldtype,
Packit Service c5cf8c
                            MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_create_indexed_block(int count, int blocklength, const int array_of_displacements[],
Packit Service c5cf8c
                                  MPI_Datatype oldtype, MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_create_hindexed_block(int count, int blocklength,
Packit Service c5cf8c
                                   const MPI_Aint array_of_displacements[],
Packit Service c5cf8c
                                   MPI_Datatype oldtype, MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_create_resized(MPI_Datatype oldtype, MPI_Aint lb, MPI_Aint extent,
Packit Service c5cf8c
                            MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_create_struct(int count, const int array_of_blocklengths[],
Packit Service c5cf8c
                           const MPI_Aint array_of_displacements[],
Packit Service c5cf8c
                           const MPI_Datatype array_of_types[], MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_create_subarray(int ndims, const int array_of_sizes[],
Packit Service c5cf8c
                             const int array_of_subsizes[], const int array_of_starts[],
Packit Service c5cf8c
                             int order, MPI_Datatype oldtype, MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_get_extent(MPI_Datatype datatype, MPI_Aint *lb, MPI_Aint *extent) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_get_true_extent(MPI_Datatype datatype, MPI_Aint *true_lb, MPI_Aint *true_extent) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Unpack_external(const char datarep[], const void *inbuf, MPI_Aint insize,
Packit Service c5cf8c
                        MPI_Aint *position, void *outbuf, int outcount, MPI_Datatype datatype)
Packit Service c5cf8c
                        MPICH_ATTR_POINTER_WITH_TYPE_TAG(5,7) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_create_errhandler(MPI_Win_errhandler_function *win_errhandler_fn,
Packit Service c5cf8c
                              MPI_Errhandler *errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_get_errhandler(MPI_Win win, MPI_Errhandler *errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Win_set_errhandler(MPI_Win win, MPI_Errhandler errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* Fortran 90-related functions.  These routines are available only if
Packit Service c5cf8c
   Fortran 90 support is enabled 
Packit Service c5cf8c
*/
Packit Service c5cf8c
int MPI_Type_create_f90_integer(int range, MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_create_f90_real(int precision, int range, MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_create_f90_complex(int precision, int range, MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
int MPI_Reduce_local(const void *inbuf, void *inoutbuf, int count, MPI_Datatype datatype,
Packit Service c5cf8c
                     MPI_Op op)
Packit Service c5cf8c
                     MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Op_commutative(MPI_Op op, int *commute) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Reduce_scatter_block(const void *sendbuf, void *recvbuf, int recvcount,
Packit Service c5cf8c
                             MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
Packit Service c5cf8c
                             MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4)
Packit Service c5cf8c
                             MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Dist_graph_create_adjacent(MPI_Comm comm_old, int indegree, const int sources[],
Packit Service c5cf8c
                                   const int sourceweights[], int outdegree,
Packit Service c5cf8c
                                   const int destinations[], const int destweights[],
Packit Service c5cf8c
                                   MPI_Info info, int reorder, MPI_Comm *comm_dist_graph) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Dist_graph_create(MPI_Comm comm_old, int n, const int sources[], const int degrees[],
Packit Service c5cf8c
                          const int destinations[], const int weights[], MPI_Info info,
Packit Service c5cf8c
                          int reorder, MPI_Comm *comm_dist_graph) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Dist_graph_neighbors_count(MPI_Comm comm, int *indegree, int *outdegree, int *weighted) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Dist_graph_neighbors(MPI_Comm comm, int maxindegree, int sources[], int sourceweights[],
Packit Service c5cf8c
                             int maxoutdegree, int destinations[], int destweights[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* Matched probe functionality */
Packit Service c5cf8c
int MPI_Improbe(int source, int tag, MPI_Comm comm, int *flag, MPI_Message *message,
Packit Service c5cf8c
                MPI_Status *status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Imrecv(void *buf, int count, MPI_Datatype datatype, MPI_Message *message,
Packit Service c5cf8c
               MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Mprobe(int source, int tag, MPI_Comm comm, MPI_Message *message, MPI_Status *status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Mrecv(void *buf, int count, MPI_Datatype datatype, MPI_Message *message,
Packit Service c5cf8c
              MPI_Status *status) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* Nonblocking collectives */
Packit Service c5cf8c
int MPI_Comm_idup(MPI_Comm comm, MPI_Comm *newcomm, MPI_Request *request) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Ibarrier(MPI_Comm comm, MPI_Request *request) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Ibcast(void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm,
Packit Service c5cf8c
               MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Igather(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm,
Packit Service c5cf8c
                MPI_Request *request)
Packit Service c5cf8c
                MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Igatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                 const int recvcounts[], const int displs[], MPI_Datatype recvtype, int root,
Packit Service c5cf8c
                 MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
                 MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,7) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Iscatter(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                 int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm,
Packit Service c5cf8c
                 MPI_Request *request)
Packit Service c5cf8c
                 MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Iscatterv(const void *sendbuf, const int sendcounts[], const int displs[],
Packit Service c5cf8c
                  MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype,
Packit Service c5cf8c
                  int root, MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
                  MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(5,7) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Iallgather(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                   int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
                   MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Iallgatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                    const int recvcounts[], const int displs[], MPI_Datatype recvtype,
Packit Service c5cf8c
                    MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
                    MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,7) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Ialltoall(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                  int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
                  MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Ialltoallv(const void *sendbuf, const int sendcounts[], const int sdispls[],
Packit Service c5cf8c
                   MPI_Datatype sendtype, void *recvbuf, const int recvcounts[],
Packit Service c5cf8c
                   const int rdispls[], MPI_Datatype recvtype, MPI_Comm comm,
Packit Service c5cf8c
                   MPI_Request *request)
Packit Service c5cf8c
                   MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(5,8) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Ialltoallw(const void *sendbuf, const int sendcounts[], const int sdispls[],
Packit Service c5cf8c
                   const MPI_Datatype sendtypes[], void *recvbuf, const int recvcounts[],
Packit Service c5cf8c
                   const int rdispls[], const MPI_Datatype recvtypes[], MPI_Comm comm,
Packit Service c5cf8c
                   MPI_Request *request) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Ireduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
Packit Service c5cf8c
                MPI_Op op, int root, MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
                MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Iallreduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
Packit Service c5cf8c
                   MPI_Op op, MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
                   MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Ireduce_scatter(const void *sendbuf, void *recvbuf, const int recvcounts[],
Packit Service c5cf8c
                        MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
                        MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Ireduce_scatter_block(const void *sendbuf, void *recvbuf, int recvcount,
Packit Service c5cf8c
                              MPI_Datatype datatype, MPI_Op op, MPI_Comm comm,
Packit Service c5cf8c
                              MPI_Request *request)
Packit Service c5cf8c
                              MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4)
Packit Service c5cf8c
                              MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Iscan(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op,
Packit Service c5cf8c
              MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
              MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Iexscan(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
Packit Service c5cf8c
                MPI_Op op, MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
                MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* Neighborhood collectives */
Packit Service c5cf8c
int MPI_Ineighbor_allgather(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
Packit Service c5cf8c
                            void *recvbuf, int recvcount, MPI_Datatype recvtype,
Packit Service c5cf8c
                            MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
                            MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3)
Packit Service c5cf8c
                            MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Ineighbor_allgatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
Packit Service c5cf8c
                             void *recvbuf, const int recvcounts[], const int displs[],
Packit Service c5cf8c
                             MPI_Datatype recvtype, MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
                             MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3)
Packit Service c5cf8c
                             MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,7) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Ineighbor_alltoall(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
Packit Service c5cf8c
                           void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm,
Packit Service c5cf8c
                           MPI_Request *request)
Packit Service c5cf8c
                           MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3)
Packit Service c5cf8c
                           MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Ineighbor_alltoallv(const void *sendbuf, const int sendcounts[], const int sdispls[],
Packit Service c5cf8c
                            MPI_Datatype sendtype, void *recvbuf, const int recvcounts[],
Packit Service c5cf8c
                            const int rdispls[], MPI_Datatype recvtype, MPI_Comm comm,
Packit Service c5cf8c
                            MPI_Request *request)
Packit Service c5cf8c
                            MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4)
Packit Service c5cf8c
                            MPICH_ATTR_POINTER_WITH_TYPE_TAG(5,8) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Ineighbor_alltoallw(const void *sendbuf, const int sendcounts[],
Packit Service c5cf8c
                            const MPI_Aint sdispls[], const MPI_Datatype sendtypes[],
Packit Service c5cf8c
                            void *recvbuf, const int recvcounts[], const MPI_Aint rdispls[],
Packit Service c5cf8c
                            const MPI_Datatype recvtypes[], MPI_Comm comm, MPI_Request *request) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Neighbor_allgather(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
Packit Service c5cf8c
                           void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
Packit Service c5cf8c
                           MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3)
Packit Service c5cf8c
                           MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Neighbor_allgatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
Packit Service c5cf8c
                            void *recvbuf, const int recvcounts[], const int displs[],
Packit Service c5cf8c
                            MPI_Datatype recvtype, MPI_Comm comm)
Packit Service c5cf8c
                            MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3)
Packit Service c5cf8c
                            MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,7) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Neighbor_alltoall(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
Packit Service c5cf8c
                          void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
Packit Service c5cf8c
                          MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3)
Packit Service c5cf8c
                          MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Neighbor_alltoallv(const void *sendbuf, const int sendcounts[], const int sdispls[],
Packit Service c5cf8c
                           MPI_Datatype sendtype, void *recvbuf, const int recvcounts[],
Packit Service c5cf8c
                           const int rdispls[], MPI_Datatype recvtype, MPI_Comm comm)
Packit Service c5cf8c
                           MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4)
Packit Service c5cf8c
                           MPICH_ATTR_POINTER_WITH_TYPE_TAG(5,8) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Neighbor_alltoallw(const void *sendbuf, const int sendcounts[], const MPI_Aint sdispls[],
Packit Service c5cf8c
                           const MPI_Datatype sendtypes[], void *recvbuf, const int recvcounts[],
Packit Service c5cf8c
                           const MPI_Aint rdispls[], const MPI_Datatype recvtypes[], MPI_Comm comm) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* Shared memory */
Packit Service c5cf8c
int MPI_Comm_split_type(MPI_Comm comm, int split_type, int key, MPI_Info info, MPI_Comm *newcomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* MPI-3 "large count" routines */
Packit Service c5cf8c
int MPI_Get_elements_x(const MPI_Status *status, MPI_Datatype datatype, MPI_Count *count) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Status_set_elements_x(MPI_Status *status, MPI_Datatype datatype, MPI_Count count) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_get_extent_x(MPI_Datatype datatype, MPI_Count *lb, MPI_Count *extent) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_get_true_extent_x(MPI_Datatype datatype, MPI_Count *lb, MPI_Count *extent) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_Type_size_x(MPI_Datatype datatype, MPI_Count *size) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* Noncollective communicator creation */
Packit Service c5cf8c
int MPI_Comm_create_group(MPI_Comm comm, MPI_Group group, int tag, MPI_Comm *newcomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* MPI_Aint addressing arithmetic */
Packit Service c5cf8c
MPI_Aint MPI_Aint_add(MPI_Aint base, MPI_Aint disp) MPICH_API_PUBLIC;
Packit Service c5cf8c
MPI_Aint MPI_Aint_diff(MPI_Aint addr1, MPI_Aint addr2) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* MPI_T interface */
Packit Service c5cf8c
/* The MPI_T routines are available only in C bindings - tell tools that they
Packit Service c5cf8c
   can skip these prototypes */
Packit Service c5cf8c
/* Begin Skip Prototypes */
Packit Service c5cf8c
int MPI_T_init_thread(int required, int *provided) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_finalize(void) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_enum_get_info(MPI_T_enum enumtype, int *num, char *name, int *name_len) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_enum_get_item(MPI_T_enum enumtype, int indx, int *value, char *name, int *name_len) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_cvar_get_num(int *num_cvar) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_cvar_get_info(int cvar_index, char *name, int *name_len, int *verbosity,
Packit Service c5cf8c
                        MPI_Datatype *datatype, MPI_T_enum *enumtype, char *desc, int *desc_len,
Packit Service c5cf8c
                        int *binding, int *scope) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_cvar_handle_alloc(int cvar_index, void *obj_handle, MPI_T_cvar_handle *handle,
Packit Service c5cf8c
                            int *count) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_cvar_handle_free(MPI_T_cvar_handle *handle) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_cvar_read(MPI_T_cvar_handle handle, void *buf) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_cvar_write(MPI_T_cvar_handle handle, const void *buf) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_pvar_get_num(int *num_pvar) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_pvar_get_info(int pvar_index, char *name, int *name_len, int *verbosity, int *var_class,
Packit Service c5cf8c
                        MPI_Datatype *datatype, MPI_T_enum *enumtype, char *desc, int *desc_len,
Packit Service c5cf8c
                        int *binding, int *readonly, int *continuous, int *atomic) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_pvar_session_create(MPI_T_pvar_session *session) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_pvar_session_free(MPI_T_pvar_session *session) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_pvar_handle_alloc(MPI_T_pvar_session session, int pvar_index, void *obj_handle,
Packit Service c5cf8c
                            MPI_T_pvar_handle *handle, int *count) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_pvar_handle_free(MPI_T_pvar_session session, MPI_T_pvar_handle *handle) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_pvar_start(MPI_T_pvar_session session, MPI_T_pvar_handle handle) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_pvar_stop(MPI_T_pvar_session session, MPI_T_pvar_handle handle) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_pvar_read(MPI_T_pvar_session session, MPI_T_pvar_handle handle, void *buf) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_pvar_write(MPI_T_pvar_session session, MPI_T_pvar_handle handle, const void *buf) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_pvar_reset(MPI_T_pvar_session session, MPI_T_pvar_handle handle) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_pvar_readreset(MPI_T_pvar_session session, MPI_T_pvar_handle handle, void *buf) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_category_get_num(int *num_cat) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_category_get_info(int cat_index, char *name, int *name_len, char *desc, int *desc_len,
Packit Service c5cf8c
                            int *num_cvars, int *num_pvars, int *num_categories) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_category_get_cvars(int cat_index, int len, int indices[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_category_get_pvars(int cat_index, int len, int indices[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_category_get_categories(int cat_index, int len, int indices[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_category_changed(int *stamp) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_cvar_get_index(const char *name, int *cvar_index) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_pvar_get_index(const char *name, int var_class, int *pvar_index) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPI_T_category_get_index(const char *name, int *cat_index) MPICH_API_PUBLIC;
Packit Service c5cf8c
/* End Skip Prototypes */
Packit Service c5cf8c
Packit Service c5cf8c
Packit Service c5cf8c
/* Non-standard but public extensions to MPI */
Packit Service c5cf8c
/* Fault Tolerance Extensions */
Packit Service c5cf8c
int MPIX_Comm_failure_ack(MPI_Comm comm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPIX_Comm_failure_get_acked(MPI_Comm comm, MPI_Group *failedgrp) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPIX_Comm_revoke(MPI_Comm comm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPIX_Comm_shrink(MPI_Comm comm, MPI_Comm *newcomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPIX_Comm_agree(MPI_Comm comm, int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
Packit Service c5cf8c
/* End Prototypes */
Packit Service c5cf8c
#endif /* MPICH_SUPPRESS_PROTOTYPES */
Packit Service c5cf8c
Packit Service c5cf8c
Packit Service c5cf8c
/* Here are the bindings of the profiling routines */
Packit Service c5cf8c
#if !defined(MPI_BUILD_PROFILING)
Packit Service c5cf8c
int PMPI_Send(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
              MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Recv(void *buf, int count, MPI_Datatype datatype, int source, int tag,
Packit Service c5cf8c
              MPI_Comm comm, MPI_Status *status) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Get_count(const MPI_Status *status, MPI_Datatype datatype, int *count) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Bsend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
               MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Ssend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
               MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Rsend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
               MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Buffer_attach(void *buffer, int size) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Buffer_detach(void *buffer_addr, int *size) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Isend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
               MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Ibsend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
                MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Issend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
                MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Irsend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
                MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Irecv(void *buf, int count, MPI_Datatype datatype, int source, int tag,
Packit Service c5cf8c
               MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Wait(MPI_Request *request, MPI_Status *status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Test(MPI_Request *request, int *flag, MPI_Status *status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Request_free(MPI_Request *request) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Waitany(int count, MPI_Request array_of_requests[], int *indx, MPI_Status *status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Testany(int count, MPI_Request array_of_requests[], int *indx, int *flag,
Packit Service c5cf8c
                 MPI_Status *status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Waitall(int count, MPI_Request array_of_requests[], MPI_Status array_of_statuses[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Testall(int count, MPI_Request array_of_requests[], int *flag,
Packit Service c5cf8c
                 MPI_Status array_of_statuses[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Waitsome(int incount, MPI_Request array_of_requests[], int *outcount,
Packit Service c5cf8c
                  int array_of_indices[], MPI_Status array_of_statuses[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Testsome(int incount, MPI_Request array_of_requests[], int *outcount,
Packit Service c5cf8c
                  int array_of_indices[], MPI_Status array_of_statuses[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Iprobe(int source, int tag, MPI_Comm comm, int *flag, MPI_Status *status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Probe(int source, int tag, MPI_Comm comm, MPI_Status *status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Cancel(MPI_Request *request) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Test_cancelled(const MPI_Status *status, int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Send_init(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
                   MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Bsend_init(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
                    MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Ssend_init(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
                    MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Rsend_init(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
Packit Service c5cf8c
                    MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Recv_init(void *buf, int count, MPI_Datatype datatype, int source, int tag,
Packit Service c5cf8c
                   MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Start(MPI_Request *request) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Startall(int count, MPI_Request array_of_requests[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Sendrecv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, int dest,
Packit Service c5cf8c
                  int sendtag, void *recvbuf, int recvcount, MPI_Datatype recvtype,
Packit Service c5cf8c
                  int source, int recvtag, MPI_Comm comm, MPI_Status *status)
Packit Service c5cf8c
                  MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3)
Packit Service c5cf8c
                  MPICH_ATTR_POINTER_WITH_TYPE_TAG(6,8) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Sendrecv_replace(void *buf, int count, MPI_Datatype datatype, int dest,
Packit Service c5cf8c
                          int sendtag, int source, int recvtag, MPI_Comm comm,
Packit Service c5cf8c
                          MPI_Status *status) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_contiguous(int count, MPI_Datatype oldtype, MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_vector(int count, int blocklength, int stride, MPI_Datatype oldtype,
Packit Service c5cf8c
                     MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_hvector(int count, int blocklength, MPI_Aint stride, MPI_Datatype oldtype,
Packit Service c5cf8c
                      MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_indexed(int count, const int *array_of_blocklengths,
Packit Service c5cf8c
                      const int *array_of_displacements, MPI_Datatype oldtype,
Packit Service c5cf8c
                      MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_hindexed(int count, int *array_of_blocklengths,
Packit Service c5cf8c
                       MPI_Aint *array_of_displacements, MPI_Datatype oldtype,
Packit Service c5cf8c
                       MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_struct(int count, int *array_of_blocklengths,
Packit Service c5cf8c
                     MPI_Aint *array_of_displacements,
Packit Service c5cf8c
                     MPI_Datatype *array_of_types, MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Address(void *location, MPI_Aint *address) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_extent(MPI_Datatype datatype, MPI_Aint *extent) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_size(MPI_Datatype datatype, int *size) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_lb(MPI_Datatype datatype, MPI_Aint *displacement) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_ub(MPI_Datatype datatype, MPI_Aint *displacement) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_commit(MPI_Datatype *datatype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_free(MPI_Datatype *datatype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Get_elements(const MPI_Status *status, MPI_Datatype datatype, int *count) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Pack(const void *inbuf, int incount, MPI_Datatype datatype, void *outbuf,
Packit Service c5cf8c
              int outsize, int *position, MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Unpack(const void *inbuf, int insize, int *position, void *outbuf, int outcount,
Packit Service c5cf8c
                MPI_Datatype datatype, MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Pack_size(int incount, MPI_Datatype datatype, MPI_Comm comm, int *size) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Barrier(MPI_Comm comm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Bcast(void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm)
Packit Service c5cf8c
               MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Gather(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
Packit Service c5cf8c
                MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Gatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                 const int *recvcounts, const int *displs, MPI_Datatype recvtype, int root,
Packit Service c5cf8c
                 MPI_Comm comm)
Packit Service c5cf8c
                 MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,7) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Scatter(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                 int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
Packit Service c5cf8c
                 MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Scatterv(const void *sendbuf, const int *sendcounts, const int *displs,
Packit Service c5cf8c
                  MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype,
Packit Service c5cf8c
                  int root, MPI_Comm comm)
Packit Service c5cf8c
                  MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(5,7) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Allgather(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                   int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
Packit Service c5cf8c
                   MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Allgatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                    const int *recvcounts, const int *displs, MPI_Datatype recvtype, MPI_Comm comm)
Packit Service c5cf8c
                    MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,7) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Alltoall(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                  int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
Packit Service c5cf8c
                  MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Alltoallv(const void *sendbuf, const int *sendcounts, const int *sdispls,
Packit Service c5cf8c
                   MPI_Datatype sendtype, void *recvbuf, const int *recvcounts,
Packit Service c5cf8c
                   const int *rdispls, MPI_Datatype recvtype, MPI_Comm comm)
Packit Service c5cf8c
                   MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(5,8) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Alltoallw(const void *sendbuf, const int sendcounts[], const int sdispls[],
Packit Service c5cf8c
                   const MPI_Datatype sendtypes[], void *recvbuf, const int recvcounts[],
Packit Service c5cf8c
                   const int rdispls[], const MPI_Datatype recvtypes[], MPI_Comm comm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Exscan(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
Packit Service c5cf8c
                MPI_Op op, MPI_Comm comm)
Packit Service c5cf8c
                MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Reduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
Packit Service c5cf8c
                MPI_Op op, int root, MPI_Comm comm)
Packit Service c5cf8c
                MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Op_create(MPI_User_function *user_fn, int commute, MPI_Op *op) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Op_free(MPI_Op *op) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Allreduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
Packit Service c5cf8c
                   MPI_Op op, MPI_Comm comm)
Packit Service c5cf8c
                   MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Reduce_scatter(const void *sendbuf, void *recvbuf, const int recvcounts[],
Packit Service c5cf8c
                        MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
Packit Service c5cf8c
                        MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Scan(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op,
Packit Service c5cf8c
              MPI_Comm comm)
Packit Service c5cf8c
              MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Group_size(MPI_Group group, int *size) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Group_rank(MPI_Group group, int *rank) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Group_translate_ranks(MPI_Group group1, int n, const int ranks1[], MPI_Group group2,
Packit Service c5cf8c
                               int ranks2[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Group_compare(MPI_Group group1, MPI_Group group2, int *result) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_group(MPI_Comm comm, MPI_Group *group) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Group_union(MPI_Group group1, MPI_Group group2, MPI_Group *newgroup) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Group_intersection(MPI_Group group1, MPI_Group group2, MPI_Group *newgroup) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Group_difference(MPI_Group group1, MPI_Group group2, MPI_Group *newgroup) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Group_incl(MPI_Group group, int n, const int ranks[], MPI_Group *newgroup) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Group_excl(MPI_Group group, int n, const int ranks[], MPI_Group *newgroup) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Group_range_incl(MPI_Group group, int n, int ranges[][3], MPI_Group *newgroup) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Group_range_excl(MPI_Group group, int n, int ranges[][3], MPI_Group *newgroup) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Group_free(MPI_Group *group) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_size(MPI_Comm comm, int *size) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_rank(MPI_Comm comm, int *rank) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_compare(MPI_Comm comm1, MPI_Comm comm2, int *result) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_dup(MPI_Comm comm, MPI_Comm *newcomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_dup_with_info(MPI_Comm comm, MPI_Info info, MPI_Comm *newcomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_create(MPI_Comm comm, MPI_Group group, MPI_Comm *newcomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm *newcomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_free(MPI_Comm *comm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_test_inter(MPI_Comm comm, int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_remote_size(MPI_Comm comm, int *size) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_remote_group(MPI_Comm comm, MPI_Group *group) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Intercomm_create(MPI_Comm local_comm, int local_leader, MPI_Comm peer_comm,
Packit Service c5cf8c
                          int remote_leader, int tag, MPI_Comm *newintercomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Intercomm_merge(MPI_Comm intercomm, int high, MPI_Comm *newintracomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Keyval_create(MPI_Copy_function *copy_fn, MPI_Delete_function *delete_fn,
Packit Service c5cf8c
                       int *keyval, void *extra_state) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Keyval_free(int *keyval) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Attr_put(MPI_Comm comm, int keyval, void *attribute_val) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Attr_get(MPI_Comm comm, int keyval, void *attribute_val, int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Attr_delete(MPI_Comm comm, int keyval) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Topo_test(MPI_Comm comm, int *status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Cart_create(MPI_Comm comm_old, int ndims, const int dims[], const int periods[],
Packit Service c5cf8c
                     int reorder, MPI_Comm *comm_cart) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Dims_create(int nnodes, int ndims, int dims[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Graph_create(MPI_Comm comm_old, int nnodes, const int indx[], const int edges[],
Packit Service c5cf8c
                      int reorder, MPI_Comm *comm_graph) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Graphdims_get(MPI_Comm comm, int *nnodes, int *nedges) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Graph_get(MPI_Comm comm, int maxindex, int maxedges, int indx[], int edges[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Cartdim_get(MPI_Comm comm, int *ndims) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Cart_get(MPI_Comm comm, int maxdims, int dims[], int periods[], int coords[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Cart_rank(MPI_Comm comm, const int coords[], int *rank) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Cart_coords(MPI_Comm comm, int rank, int maxdims, int coords[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Graph_neighbors_count(MPI_Comm comm, int rank, int *nneighbors) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Graph_neighbors(MPI_Comm comm, int rank, int maxneighbors, int neighbors[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Cart_shift(MPI_Comm comm, int direction, int disp, int *rank_source, int *rank_dest) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Cart_sub(MPI_Comm comm, const int remain_dims[], MPI_Comm *newcomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Cart_map(MPI_Comm comm, int ndims, const int dims[], const int periods[], int *newrank) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Graph_map(MPI_Comm comm, int nnodes, const int indx[], const int edges[], int *newrank) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Get_processor_name(char *name, int *resultlen) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Get_version(int *version, int *subversion) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Get_library_version(char *version, int *resultlen) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Errhandler_create(MPI_Handler_function *function, MPI_Errhandler *errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Errhandler_set(MPI_Comm comm, MPI_Errhandler errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Errhandler_get(MPI_Comm comm, MPI_Errhandler *errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Errhandler_free(MPI_Errhandler *errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Error_string(int errorcode, char *string, int *resultlen) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Error_class(int errorcode, int *errorclass) MPICH_API_PUBLIC;
Packit Service c5cf8c
double PMPI_Wtime(void) MPICH_API_PUBLIC;
Packit Service c5cf8c
double PMPI_Wtick(void) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Init(int *argc, char ***argv) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Finalize(void) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Initialized(int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Abort(MPI_Comm comm, int errorcode) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* Note that we may need to define a @PCONTROL_LIST@ depending on whether
Packit Service c5cf8c
   stdargs are supported */
Packit Service c5cf8c
int PMPI_Pcontrol(const int level, ...) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* Process Creation and Management */
Packit Service c5cf8c
int PMPI_Close_port(const char *port_name) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_accept(const char *port_name, MPI_Info info, int root, MPI_Comm comm,
Packit Service c5cf8c
                     MPI_Comm *newcomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_connect(const char *port_name, MPI_Info info, int root, MPI_Comm comm,
Packit Service c5cf8c
                      MPI_Comm *newcomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_disconnect(MPI_Comm *comm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_get_parent(MPI_Comm *parent) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_join(int fd, MPI_Comm *intercomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_spawn(const char *command, char *argv[], int maxprocs, MPI_Info info, int root,
Packit Service c5cf8c
                    MPI_Comm comm, MPI_Comm *intercomm, int array_of_errcodes[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_spawn_multiple(int count, char *array_of_commands[], char **array_of_argv[],
Packit Service c5cf8c
                             const int array_of_maxprocs[], const MPI_Info array_of_info[],
Packit Service c5cf8c
                             int root, MPI_Comm comm, MPI_Comm *intercomm, int array_of_errcodes[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Lookup_name(const char *service_name, MPI_Info info, char *port_name) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Open_port(MPI_Info info, char *port_name) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Publish_name(const char *service_name, MPI_Info info, const char *port_name) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Unpublish_name(const char *service_name, MPI_Info info, const char *port_name) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_set_info(MPI_Comm comm, MPI_Info info) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_get_info(MPI_Comm comm, MPI_Info *info) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* One-Sided Communications */
Packit Service c5cf8c
int PMPI_Accumulate(const void *origin_addr, int origin_count, MPI_Datatype origin_datatype,
Packit Service c5cf8c
                    int target_rank, MPI_Aint target_disp, int target_count,
Packit Service c5cf8c
                    MPI_Datatype target_datatype, MPI_Op op, MPI_Win win)
Packit Service c5cf8c
                    MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Get(void *origin_addr, int origin_count, MPI_Datatype origin_datatype,
Packit Service c5cf8c
             int target_rank, MPI_Aint target_disp, int target_count,
Packit Service c5cf8c
             MPI_Datatype target_datatype, MPI_Win win) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Put(const void *origin_addr, int origin_count, MPI_Datatype origin_datatype,
Packit Service c5cf8c
             int target_rank, MPI_Aint target_disp, int target_count,
Packit Service c5cf8c
             MPI_Datatype target_datatype, MPI_Win win) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_complete(MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_create(void *base, MPI_Aint size, int disp_unit, MPI_Info info, MPI_Comm comm,
Packit Service c5cf8c
                    MPI_Win *win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_fence(int assert, MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_free(MPI_Win *win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_get_group(MPI_Win win, MPI_Group *group) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_lock(int lock_type, int rank, int assert, MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_post(MPI_Group group, int assert, MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_start(MPI_Group group, int assert, MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_test(MPI_Win win, int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_unlock(int rank, MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_wait(MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* MPI-3 One-Sided Communication Routines */
Packit Service c5cf8c
int PMPI_Win_allocate(MPI_Aint size, int disp_unit, MPI_Info info, MPI_Comm comm, void *baseptr,
Packit Service c5cf8c
                      MPI_Win *win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_allocate_shared(MPI_Aint size, int disp_unit, MPI_Info info, MPI_Comm comm,
Packit Service c5cf8c
                             void *baseptr, MPI_Win *win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_shared_query(MPI_Win win, int rank, MPI_Aint *size, int *disp_unit, void *baseptr) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_create_dynamic(MPI_Info info, MPI_Comm comm, MPI_Win *win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_attach(MPI_Win win, void *base, MPI_Aint size) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_detach(MPI_Win win, const void *base) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_get_info(MPI_Win win, MPI_Info *info_used) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_set_info(MPI_Win win, MPI_Info info) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Get_accumulate(const void *origin_addr, int origin_count,
Packit Service c5cf8c
                         MPI_Datatype origin_datatype, void *result_addr, int result_count,
Packit Service c5cf8c
                         MPI_Datatype result_datatype, int target_rank, MPI_Aint target_disp,
Packit Service c5cf8c
                         int target_count, MPI_Datatype target_datatype, MPI_Op op, MPI_Win win)
Packit Service c5cf8c
                         MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3)
Packit Service c5cf8c
                         MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Fetch_and_op(const void *origin_addr, void *result_addr,
Packit Service c5cf8c
                       MPI_Datatype datatype, int target_rank, MPI_Aint target_disp,
Packit Service c5cf8c
                       MPI_Op op, MPI_Win win)
Packit Service c5cf8c
                       MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Compare_and_swap(const void *origin_addr, const void *compare_addr,
Packit Service c5cf8c
                           void *result_addr, MPI_Datatype datatype, int target_rank,
Packit Service c5cf8c
                           MPI_Aint target_disp, MPI_Win win)
Packit Service c5cf8c
                           MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4)
Packit Service c5cf8c
                           MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4)
Packit Service c5cf8c
                           MPICH_ATTR_POINTER_WITH_TYPE_TAG(3,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Rput(const void *origin_addr, int origin_count,
Packit Service c5cf8c
               MPI_Datatype origin_datatype, int target_rank, MPI_Aint target_disp,
Packit Service c5cf8c
               int target_count, MPI_Datatype target_datatype, MPI_Win win,
Packit Service c5cf8c
               MPI_Request *request)
Packit Service c5cf8c
               MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Rget(void *origin_addr, int origin_count,
Packit Service c5cf8c
               MPI_Datatype origin_datatype, int target_rank, MPI_Aint target_disp,
Packit Service c5cf8c
               int target_count, MPI_Datatype target_datatype, MPI_Win win,
Packit Service c5cf8c
               MPI_Request *request)
Packit Service c5cf8c
               MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Raccumulate(const void *origin_addr, int origin_count,
Packit Service c5cf8c
                      MPI_Datatype origin_datatype, int target_rank, MPI_Aint target_disp,
Packit Service c5cf8c
                      int target_count, MPI_Datatype target_datatype, MPI_Op op, MPI_Win win,
Packit Service c5cf8c
                      MPI_Request *request)
Packit Service c5cf8c
                      MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Rget_accumulate(const void *origin_addr, int origin_count,
Packit Service c5cf8c
                          MPI_Datatype origin_datatype, void *result_addr, int result_count,
Packit Service c5cf8c
                          MPI_Datatype result_datatype, int target_rank, MPI_Aint target_disp,
Packit Service c5cf8c
                          int target_count, MPI_Datatype target_datatype, MPI_Op op, MPI_Win win,
Packit Service c5cf8c
                          MPI_Request *request)
Packit Service c5cf8c
                          MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3)
Packit Service c5cf8c
                          MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_lock_all(int assert, MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_unlock_all(MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_flush(int rank, MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_flush_all(MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_flush_local(int rank, MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_flush_local_all(MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_sync(MPI_Win win) MPICH_API_PUBLIC;
Packit Service c5cf8c
 
Packit Service c5cf8c
/* External Interfaces */
Packit Service c5cf8c
int PMPI_Add_error_class(int *errorclass) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Add_error_code(int errorclass, int *errorcode) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Add_error_string(int errorcode, const char *string) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_call_errhandler(MPI_Comm comm, int errorcode) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_create_keyval(MPI_Comm_copy_attr_function *comm_copy_attr_fn,
Packit Service c5cf8c
                            MPI_Comm_delete_attr_function *comm_delete_attr_fn, int *comm_keyval,
Packit Service c5cf8c
                            void *extra_state) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_delete_attr(MPI_Comm comm, int comm_keyval) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_free_keyval(int *comm_keyval) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_get_attr(MPI_Comm comm, int comm_keyval, void *attribute_val, int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_get_name(MPI_Comm comm, char *comm_name, int *resultlen) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_set_attr(MPI_Comm comm, int comm_keyval, void *attribute_val) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_set_name(MPI_Comm comm, const char *comm_name) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_File_call_errhandler(MPI_File fh, int errorcode) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Grequest_complete(MPI_Request request) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Grequest_start(MPI_Grequest_query_function *query_fn, MPI_Grequest_free_function *free_fn,
Packit Service c5cf8c
                        MPI_Grequest_cancel_function *cancel_fn, void *extra_state,
Packit Service c5cf8c
                        MPI_Request *request) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Init_thread(int *argc, char ***argv, int required, int *provided) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Is_thread_main(int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Query_thread(int *provided) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Status_set_cancelled(MPI_Status *status, int flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Status_set_elements(MPI_Status *status, MPI_Datatype datatype, int count) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_create_keyval(MPI_Type_copy_attr_function *type_copy_attr_fn,
Packit Service c5cf8c
                            MPI_Type_delete_attr_function *type_delete_attr_fn,
Packit Service c5cf8c
                            int *type_keyval, void *extra_state) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_delete_attr(MPI_Datatype datatype, int type_keyval) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_dup(MPI_Datatype oldtype, MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_free_keyval(int *type_keyval) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_get_attr(MPI_Datatype datatype, int type_keyval, void *attribute_val, int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_get_contents(MPI_Datatype datatype, int max_integers, int max_addresses,
Packit Service c5cf8c
                           int max_datatypes, int array_of_integers[],
Packit Service c5cf8c
                           MPI_Aint array_of_addresses[], MPI_Datatype array_of_datatypes[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_get_envelope(MPI_Datatype datatype, int *num_integers, int *num_addresses,
Packit Service c5cf8c
                           int *num_datatypes, int *combiner) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_get_name(MPI_Datatype datatype, char *type_name, int *resultlen) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_set_attr(MPI_Datatype datatype, int type_keyval, void *attribute_val) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_set_name(MPI_Datatype datatype, const char *type_name) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_match_size(int typeclass, int size, MPI_Datatype *datatype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_call_errhandler(MPI_Win win, int errorcode) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_create_keyval(MPI_Win_copy_attr_function *win_copy_attr_fn,
Packit Service c5cf8c
                           MPI_Win_delete_attr_function *win_delete_attr_fn, int *win_keyval,
Packit Service c5cf8c
                           void *extra_state) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_delete_attr(MPI_Win win, int win_keyval) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_free_keyval(int *win_keyval) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_get_attr(MPI_Win win, int win_keyval, void *attribute_val, int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_get_name(MPI_Win win, char *win_name, int *resultlen) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_set_attr(MPI_Win win, int win_keyval, void *attribute_val) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_set_name(MPI_Win win, const char *win_name) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
int PMPI_Alloc_mem(MPI_Aint size, MPI_Info info, void *baseptr) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_create_errhandler(MPI_Comm_errhandler_function *comm_errhandler_fn,
Packit Service c5cf8c
                                MPI_Errhandler *errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_get_errhandler(MPI_Comm comm, MPI_Errhandler *errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Comm_set_errhandler(MPI_Comm comm, MPI_Errhandler errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_File_create_errhandler(MPI_File_errhandler_function *file_errhandler_fn,
Packit Service c5cf8c
                                MPI_Errhandler *errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_File_get_errhandler(MPI_File file, MPI_Errhandler *errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_File_set_errhandler(MPI_File file, MPI_Errhandler errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Finalized(int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Free_mem(void *base) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Get_address(const void *location, MPI_Aint *address) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Info_create(MPI_Info *info) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Info_delete(MPI_Info info, const char *key) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Info_dup(MPI_Info info, MPI_Info *newinfo) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Info_free(MPI_Info *info) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Info_get(MPI_Info info, const char *key, int valuelen, char *value, int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Info_get_nkeys(MPI_Info info, int *nkeys) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Info_get_nthkey(MPI_Info info, int n, char *key) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Info_get_valuelen(MPI_Info info, const char *key, int *valuelen, int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Info_set(MPI_Info info, const char *key, const char *value) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Pack_external(const char datarep[], const void *inbuf, int incount,
Packit Service c5cf8c
                       MPI_Datatype datatype, void *outbuf, MPI_Aint outsize, MPI_Aint *position)
Packit Service c5cf8c
                       MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Pack_external_size(const char datarep[], int incount, MPI_Datatype datatype,
Packit Service c5cf8c
                            MPI_Aint *size) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Request_get_status(MPI_Request request, int *flag, MPI_Status *status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Status_c2f(const MPI_Status *c_status, MPI_Fint *f_status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Status_f2c(const MPI_Fint *f_status, MPI_Status *c_status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_create_darray(int size, int rank, int ndims, const int array_of_gsizes[],
Packit Service c5cf8c
                            const int array_of_distribs[], const int array_of_dargs[],
Packit Service c5cf8c
                            const int array_of_psizes[], int order, MPI_Datatype oldtype,
Packit Service c5cf8c
                            MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_create_hindexed(int count, const int array_of_blocklengths[],
Packit Service c5cf8c
                              const MPI_Aint array_of_displacements[], MPI_Datatype oldtype,
Packit Service c5cf8c
                              MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_create_hvector(int count, int blocklength, MPI_Aint stride, MPI_Datatype oldtype,
Packit Service c5cf8c
                             MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_create_indexed_block(int count, int blocklength, const int array_of_displacements[],
Packit Service c5cf8c
                                   MPI_Datatype oldtype, MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_create_hindexed_block(int count, int blocklength,
Packit Service c5cf8c
                                    const MPI_Aint array_of_displacements[],
Packit Service c5cf8c
                                    MPI_Datatype oldtype, MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_create_resized(MPI_Datatype oldtype, MPI_Aint lb, MPI_Aint extent,
Packit Service c5cf8c
                             MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_create_struct(int count, const int array_of_blocklengths[],
Packit Service c5cf8c
                            const MPI_Aint array_of_displacements[],
Packit Service c5cf8c
                            const MPI_Datatype array_of_types[], MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_create_subarray(int ndims, const int array_of_sizes[],
Packit Service c5cf8c
                              const int array_of_subsizes[], const int array_of_starts[],
Packit Service c5cf8c
                              int order, MPI_Datatype oldtype, MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_get_extent(MPI_Datatype datatype, MPI_Aint *lb, MPI_Aint *extent) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_get_true_extent(MPI_Datatype datatype, MPI_Aint *true_lb, MPI_Aint *true_extent) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Unpack_external(const char datarep[], const void *inbuf, MPI_Aint insize,
Packit Service c5cf8c
                         MPI_Aint *position, void *outbuf, int outcount, MPI_Datatype datatype)
Packit Service c5cf8c
                         MPICH_ATTR_POINTER_WITH_TYPE_TAG(5,7) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_create_errhandler(MPI_Win_errhandler_function *win_errhandler_fn,
Packit Service c5cf8c
                               MPI_Errhandler *errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_get_errhandler(MPI_Win win, MPI_Errhandler *errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Win_set_errhandler(MPI_Win win, MPI_Errhandler errhandler) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* Fortran 90-related functions.  These routines are available only if
Packit Service c5cf8c
   Fortran 90 support is enabled 
Packit Service c5cf8c
*/
Packit Service c5cf8c
int PMPI_Type_create_f90_integer(int r, MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_create_f90_real(int p, int r, MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_create_f90_complex(int p, int r, MPI_Datatype *newtype) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
int PMPI_Reduce_local(const void *inbuf, void *inoutbuf, int count, MPI_Datatype datatype,
Packit Service c5cf8c
                      MPI_Op op)
Packit Service c5cf8c
                      MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Op_commutative(MPI_Op op, int *commute) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Reduce_scatter_block(const void *sendbuf, void *recvbuf, int recvcount,
Packit Service c5cf8c
                              MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
Packit Service c5cf8c
                              MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4)
Packit Service c5cf8c
                              MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Dist_graph_create_adjacent(MPI_Comm comm_old, int indegree, const int sources[],
Packit Service c5cf8c
                                    const int sourceweights[], int outdegree,
Packit Service c5cf8c
                                    const int destinations[], const int destweights[],
Packit Service c5cf8c
                                    MPI_Info info, int reorder, MPI_Comm *comm_dist_graph) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Dist_graph_create(MPI_Comm comm_old, int n, const int sources[], const int degrees[],
Packit Service c5cf8c
                           const int destinations[], const int weights[], MPI_Info info,
Packit Service c5cf8c
                           int reorder, MPI_Comm *comm_dist_graph) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Dist_graph_neighbors_count(MPI_Comm comm, int *indegree, int *outdegree, int *weighted) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Dist_graph_neighbors(MPI_Comm comm, int maxindegree, int sources[], int sourceweights[],
Packit Service c5cf8c
                              int maxoutdegree, int destinations[], int destweights[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* Matched probe functionality */
Packit Service c5cf8c
int PMPI_Improbe(int source, int tag, MPI_Comm comm, int *flag, MPI_Message *message,
Packit Service c5cf8c
                 MPI_Status *status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Imrecv(void *buf, int count, MPI_Datatype datatype, MPI_Message *message,
Packit Service c5cf8c
                MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Mprobe(int source, int tag, MPI_Comm comm, MPI_Message *message, MPI_Status *status) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Mrecv(void *buf, int count, MPI_Datatype datatype, MPI_Message *message,
Packit Service c5cf8c
               MPI_Status *status) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* Nonblocking collectives */
Packit Service c5cf8c
int PMPI_Comm_idup(MPI_Comm comm, MPI_Comm *newcomm, MPI_Request *request) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Ibarrier(MPI_Comm comm, MPI_Request *request) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Ibcast(void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm,
Packit Service c5cf8c
                MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Igather(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                 int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm,
Packit Service c5cf8c
                 MPI_Request *request)
Packit Service c5cf8c
                 MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Igatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                  const int recvcounts[], const int displs[], MPI_Datatype recvtype, int root,
Packit Service c5cf8c
                  MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
                  MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,7) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Iscatter(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                  int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm,
Packit Service c5cf8c
                  MPI_Request *request)
Packit Service c5cf8c
                  MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Iscatterv(const void *sendbuf, const int sendcounts[], const int displs[],
Packit Service c5cf8c
                   MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype,
Packit Service c5cf8c
                   int root, MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
                   MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(5,7) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Iallgather(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                    int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
                    MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Iallgatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                     const int recvcounts[], const int displs[], MPI_Datatype recvtype,
Packit Service c5cf8c
                     MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
                     MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,7) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Ialltoall(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
Packit Service c5cf8c
                   int recvcount, MPI_Datatype recvtype, MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
                   MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Ialltoallv(const void *sendbuf, const int sendcounts[], const int sdispls[],
Packit Service c5cf8c
                    MPI_Datatype sendtype, void *recvbuf, const int recvcounts[],
Packit Service c5cf8c
                    const int rdispls[], MPI_Datatype recvtype, MPI_Comm comm,
Packit Service c5cf8c
                    MPI_Request *request)
Packit Service c5cf8c
                    MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(5,8) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Ialltoallw(const void *sendbuf, const int sendcounts[], const int sdispls[],
Packit Service c5cf8c
                    const MPI_Datatype sendtypes[], void *recvbuf, const int recvcounts[],
Packit Service c5cf8c
                    const int rdispls[], const MPI_Datatype recvtypes[], MPI_Comm comm,
Packit Service c5cf8c
                    MPI_Request *request) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Ireduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
Packit Service c5cf8c
                 MPI_Op op, int root, MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
                 MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Iallreduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
Packit Service c5cf8c
                    MPI_Op op, MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
                    MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Ireduce_scatter(const void *sendbuf, void *recvbuf, const int recvcounts[],
Packit Service c5cf8c
                         MPI_Datatype datatype, MPI_Op op, MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
                         MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4)
Packit Service c5cf8c
                         MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Ireduce_scatter_block(const void *sendbuf, void *recvbuf, int recvcount,
Packit Service c5cf8c
                               MPI_Datatype datatype, MPI_Op op, MPI_Comm comm,
Packit Service c5cf8c
                               MPI_Request *request)
Packit Service c5cf8c
                               MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4)
Packit Service c5cf8c
                               MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Iscan(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op,
Packit Service c5cf8c
               MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
               MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Iexscan(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
Packit Service c5cf8c
                 MPI_Op op, MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
                 MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* Neighborhood collectives */
Packit Service c5cf8c
int PMPI_Ineighbor_allgather(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
Packit Service c5cf8c
                             void *recvbuf, int recvcount, MPI_Datatype recvtype,
Packit Service c5cf8c
                             MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
                             MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3)
Packit Service c5cf8c
                             MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Ineighbor_allgatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
Packit Service c5cf8c
                              void *recvbuf, const int recvcounts[], const int displs[],
Packit Service c5cf8c
                              MPI_Datatype recvtype, MPI_Comm comm, MPI_Request *request)
Packit Service c5cf8c
                              MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3)
Packit Service c5cf8c
                              MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,7) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Ineighbor_alltoall(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
Packit Service c5cf8c
                            void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm,
Packit Service c5cf8c
                            MPI_Request *request)
Packit Service c5cf8c
                            MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3)
Packit Service c5cf8c
                            MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Ineighbor_alltoallv(const void *sendbuf, const int sendcounts[], const int sdispls[],
Packit Service c5cf8c
                             MPI_Datatype sendtype, void *recvbuf, const int recvcounts[],
Packit Service c5cf8c
                             const int rdispls[], MPI_Datatype recvtype, MPI_Comm comm,
Packit Service c5cf8c
                             MPI_Request *request)
Packit Service c5cf8c
                             MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4)
Packit Service c5cf8c
                             MPICH_ATTR_POINTER_WITH_TYPE_TAG(5,8) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Ineighbor_alltoallw(const void *sendbuf, const int sendcounts[],
Packit Service c5cf8c
                             const MPI_Aint sdispls[], const MPI_Datatype sendtypes[],
Packit Service c5cf8c
                             void *recvbuf, const int recvcounts[], const MPI_Aint rdispls[],
Packit Service c5cf8c
                             const MPI_Datatype recvtypes[], MPI_Comm comm, MPI_Request *request) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Neighbor_allgather(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
Packit Service c5cf8c
                            void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
Packit Service c5cf8c
                            MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3)
Packit Service c5cf8c
                            MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Neighbor_allgatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
Packit Service c5cf8c
                             void *recvbuf, const int recvcounts[], const int displs[],
Packit Service c5cf8c
                             MPI_Datatype recvtype, MPI_Comm comm)
Packit Service c5cf8c
                             MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3)
Packit Service c5cf8c
                             MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,7) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Neighbor_alltoall(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
Packit Service c5cf8c
                           void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
Packit Service c5cf8c
                           MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3)
Packit Service c5cf8c
                           MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Neighbor_alltoallv(const void *sendbuf, const int sendcounts[], const int sdispls[],
Packit Service c5cf8c
                            MPI_Datatype sendtype, void *recvbuf, const int recvcounts[],
Packit Service c5cf8c
                            const int rdispls[], MPI_Datatype recvtype, MPI_Comm comm)
Packit Service c5cf8c
                            MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4)
Packit Service c5cf8c
                            MPICH_ATTR_POINTER_WITH_TYPE_TAG(5,8) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Neighbor_alltoallw(const void *sendbuf, const int sendcounts[], const MPI_Aint sdispls[],
Packit Service c5cf8c
                            const MPI_Datatype sendtypes[], void *recvbuf, const int recvcounts[],
Packit Service c5cf8c
                            const MPI_Aint rdispls[], const MPI_Datatype recvtypes[],
Packit Service c5cf8c
                            MPI_Comm comm) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* Shared memory */
Packit Service c5cf8c
int PMPI_Comm_split_type(MPI_Comm comm, int split_type, int key, MPI_Info info, MPI_Comm *newcomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* Noncollective communicator creation */
Packit Service c5cf8c
int PMPI_Comm_create_group(MPI_Comm comm, MPI_Group group, int tag, MPI_Comm *newcomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* MPI-3 "large count" routines */
Packit Service c5cf8c
int PMPI_Get_elements_x(const MPI_Status *status, MPI_Datatype datatype, MPI_Count *count) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Status_set_elements_x(MPI_Status *status, MPI_Datatype datatype, MPI_Count count) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_get_extent_x(MPI_Datatype datatype, MPI_Count *lb, MPI_Count *extent) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_get_true_extent_x(MPI_Datatype datatype, MPI_Count *lb, MPI_Count *extent) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_Type_size_x(MPI_Datatype datatype, MPI_Count *size) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* MPI_Aint addressing arithmetic */
Packit Service c5cf8c
MPI_Aint PMPI_Aint_add(MPI_Aint base, MPI_Aint disp) MPICH_API_PUBLIC;
Packit Service c5cf8c
MPI_Aint PMPI_Aint_diff(MPI_Aint addr1, MPI_Aint addr2) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* MPI_T interface */
Packit Service c5cf8c
/* The MPI_T routines are available only in C bindings - tell tools that they
Packit Service c5cf8c
   can skip these prototypes */
Packit Service c5cf8c
/* Begin Skip Prototypes */
Packit Service c5cf8c
int PMPI_T_init_thread(int required, int *provided) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_finalize(void) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_enum_get_info(MPI_T_enum enumtype, int *num, char *name, int *name_len) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_enum_get_item(MPI_T_enum enumtype, int indx, int *value, char *name, int *name_len) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_cvar_get_num(int *num_cvar) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_cvar_get_info(int cvar_index, char *name, int *name_len, int *verbosity,
Packit Service c5cf8c
                         MPI_Datatype *datatype, MPI_T_enum *enumtype, char *desc, int *desc_len,
Packit Service c5cf8c
                         int *binding, int *scope) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_cvar_handle_alloc(int cvar_index, void *obj_handle, MPI_T_cvar_handle *handle,
Packit Service c5cf8c
                             int *count) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_cvar_handle_free(MPI_T_cvar_handle *handle) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_cvar_read(MPI_T_cvar_handle handle, void *buf) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_cvar_write(MPI_T_cvar_handle handle, const void *buf) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_pvar_get_num(int *num_pvar) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_pvar_get_info(int pvar_index, char *name, int *name_len, int *verbosity, int *var_class,
Packit Service c5cf8c
                         MPI_Datatype *datatype, MPI_T_enum *enumtype, char *desc, int *desc_len,
Packit Service c5cf8c
                         int *binding, int *readonly, int *continuous, int *atomic) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_pvar_session_create(MPI_T_pvar_session *session) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_pvar_session_free(MPI_T_pvar_session *session) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_pvar_handle_alloc(MPI_T_pvar_session session, int pvar_index, void *obj_handle,
Packit Service c5cf8c
                             MPI_T_pvar_handle *handle, int *count) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_pvar_handle_free(MPI_T_pvar_session session, MPI_T_pvar_handle *handle) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_pvar_start(MPI_T_pvar_session session, MPI_T_pvar_handle handle) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_pvar_stop(MPI_T_pvar_session session, MPI_T_pvar_handle handle) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_pvar_read(MPI_T_pvar_session session, MPI_T_pvar_handle handle, void *buf) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_pvar_write(MPI_T_pvar_session session, MPI_T_pvar_handle handle, const void *buf) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_pvar_reset(MPI_T_pvar_session session, MPI_T_pvar_handle handle) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_pvar_readreset(MPI_T_pvar_session session, MPI_T_pvar_handle handle, void *buf) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_category_get_num(int *num_cat) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_category_get_info(int cat_index, char *name, int *name_len, char *desc, int *desc_len,
Packit Service c5cf8c
                             int *num_cvars, int *num_pvars, int *num_categories) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_category_get_cvars(int cat_index, int len, int indices[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_category_get_pvars(int cat_index, int len, int indices[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_category_get_categories(int cat_index, int len, int indices[]) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_category_changed(int *stamp) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_cvar_get_index(const char *name, int *cvar_index) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_pvar_get_index(const char *name, int var_class, int *pvar_index) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPI_T_category_get_index(const char *name, int *cat_index) MPICH_API_PUBLIC;
Packit Service c5cf8c
/* End Skip Prototypes */
Packit Service c5cf8c
Packit Service c5cf8c
Packit Service c5cf8c
/* Non-standard but public extensions to MPI */
Packit Service c5cf8c
/* Fault Tolerance Extensions */
Packit Service c5cf8c
int PMPIX_Comm_failure_ack(MPI_Comm comm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPIX_Comm_failure_get_acked(MPI_Comm comm, MPI_Group *failedgrp) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPIX_Comm_revoke(MPI_Comm comm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPIX_Comm_shrink(MPI_Comm comm, MPI_Comm *newcomm) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPIX_Comm_agree(MPI_Comm comm, int *flag) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
#endif  /* MPI_BUILD_PROFILING */
Packit Service c5cf8c
/* End of MPI bindings */
Packit Service c5cf8c
Packit Service c5cf8c
/* feature advertisement */
Packit Service c5cf8c
#define MPIIMPL_ADVERTISES_FEATURES 1
Packit Service c5cf8c
#define MPIIMPL_HAVE_MPI_INFO 1                                                 
Packit Service c5cf8c
#define MPIIMPL_HAVE_MPI_COMBINER_DARRAY 1                                      
Packit Service c5cf8c
#define MPIIMPL_HAVE_MPI_TYPE_CREATE_DARRAY 1
Packit Service c5cf8c
#define MPIIMPL_HAVE_MPI_COMBINER_SUBARRAY 1                                    
Packit Service c5cf8c
#define MPIIMPL_HAVE_MPI_TYPE_CREATE_DARRAY 1
Packit Service c5cf8c
#define MPIIMPL_HAVE_MPI_COMBINER_DUP 1                                         
Packit Service c5cf8c
#define MPIIMPL_HAVE_MPI_GREQUEST 1      
Packit Service c5cf8c
#define MPIIMPL_HAVE_STATUS_SET_BYTES 1
Packit Service c5cf8c
#define MPIIMPL_HAVE_STATUS_SET_INFO 1
Packit Service c5cf8c
Packit Service c5cf8c
@HAVE_ROMIO@
Packit Service c5cf8c
Packit Service c5cf8c
#if defined(__cplusplus)
Packit Service c5cf8c
}
Packit Service c5cf8c
/* Add the C++ bindings */
Packit Service c5cf8c
/* 
Packit Service c5cf8c
   If MPICH_SKIP_MPICXX is defined, the mpicxx.h file will *not* be included.
Packit Service c5cf8c
   This is necessary, for example, when building the C++ interfaces.  It
Packit Service c5cf8c
   can also be used when you want to use a C++ compiler to compile C code,
Packit Service c5cf8c
   and do not want to load the C++ bindings.  These definitions can
Packit Service c5cf8c
   be made by the C++ compilation script
Packit Service c5cf8c
 */
Packit Service c5cf8c
#if !defined(MPICH_SKIP_MPICXX)
Packit Service c5cf8c
/* mpicxx.h contains the MPI C++ binding.  In the mpi.h.in file, this 
Packit Service c5cf8c
   include is in an autoconf variable in case the compiler is a C++ 
Packit Service c5cf8c
   compiler but MPI was built without the C++ bindings */
Packit Service c5cf8c
@INCLUDE_MPICXX_H@
Packit Service c5cf8c
#endif 
Packit Service c5cf8c
#endif
Packit Service c5cf8c
Packit Service c5cf8c
Packit Service c5cf8c
/* Generalized requests extensions */
Packit Service c5cf8c
typedef int MPIX_Grequest_class;
Packit Service c5cf8c
int MPIX_Grequest_class_create(MPI_Grequest_query_function *query_fn,
Packit Service c5cf8c
                               MPI_Grequest_free_function *free_fn,
Packit Service c5cf8c
                               MPI_Grequest_cancel_function *cancel_fn,
Packit Service c5cf8c
                               MPIX_Grequest_poll_function *poll_fn,
Packit Service c5cf8c
                               MPIX_Grequest_wait_function *wait_fn,
Packit Service c5cf8c
                               MPIX_Grequest_class *greq_class) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPIX_Grequest_class_allocate(MPIX_Grequest_class greq_class, void *extra_state,
Packit Service c5cf8c
                                 MPI_Request *request) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPIX_Grequest_start(MPI_Grequest_query_function *query_fn,
Packit Service c5cf8c
                        MPI_Grequest_free_function *free_fn,
Packit Service c5cf8c
                        MPI_Grequest_cancel_function *cancel_fn,
Packit Service c5cf8c
                        MPIX_Grequest_poll_function *poll_fn,
Packit Service c5cf8c
                        MPIX_Grequest_wait_function *wait_fn, void *extra_state,
Packit Service c5cf8c
                        MPI_Request *request) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* RMA Mutexes Extensions */
Packit Service c5cf8c
struct mpixi_mutex_s;
Packit Service c5cf8c
typedef struct mpixi_mutex_s * MPIX_Mutex;
Packit Service c5cf8c
int MPIX_Mutex_create(int count, MPI_Comm comm, MPIX_Mutex *hdl) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPIX_Mutex_free(MPIX_Mutex *hdl) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPIX_Mutex_lock(MPIX_Mutex hdl, int mutex, int proc) MPICH_API_PUBLIC;
Packit Service c5cf8c
int MPIX_Mutex_unlock(MPIX_Mutex hdl, int mutex, int proc) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
Packit Service c5cf8c
#if !defined(MPI_BUILD_PROFILING)
Packit Service c5cf8c
/* Generalized requests extensions */
Packit Service c5cf8c
int PMPIX_Grequest_class_create(MPI_Grequest_query_function *query_fn,
Packit Service c5cf8c
                                MPI_Grequest_free_function *free_fn,
Packit Service c5cf8c
                                MPI_Grequest_cancel_function *cancel_fn,
Packit Service c5cf8c
                                MPIX_Grequest_poll_function *poll_fn,
Packit Service c5cf8c
                                MPIX_Grequest_wait_function *wait_fn,
Packit Service c5cf8c
                                MPIX_Grequest_class *greq_class) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPIX_Grequest_class_allocate(MPIX_Grequest_class greq_class, void *extra_state,
Packit Service c5cf8c
                                  MPI_Request *request) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPIX_Grequest_start(MPI_Grequest_query_function *query_fn,
Packit Service c5cf8c
                         MPI_Grequest_free_function *free_fn,
Packit Service c5cf8c
                         MPI_Grequest_cancel_function *cancel_fn,
Packit Service c5cf8c
                         MPIX_Grequest_poll_function *poll_fn,
Packit Service c5cf8c
                         MPIX_Grequest_wait_function *wait_fn, void *extra_state,
Packit Service c5cf8c
                         MPI_Request *request) MPICH_API_PUBLIC;
Packit Service c5cf8c
Packit Service c5cf8c
/* RMA Mutexes Extensions */
Packit Service c5cf8c
int PMPIX_Mutex_create(int count, MPI_Comm comm, MPIX_Mutex *hdl) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPIX_Mutex_free(MPIX_Mutex *hdl) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPIX_Mutex_lock(MPIX_Mutex hdl, int mutex, int proc) MPICH_API_PUBLIC;
Packit Service c5cf8c
int PMPIX_Mutex_unlock(MPIX_Mutex hdl, int mutex, int proc) MPICH_API_PUBLIC;
Packit Service c5cf8c
#endif /* MPI_BUILD_PROFILING */
Packit Service c5cf8c
Packit Service c5cf8c
#endif