Blame test/mpi/include/mpitestcxx.h

Packit Service c5cf8c
/* -*- Mode: C++; c-basic-offset:4 ; -*- */
Packit Service c5cf8c
/*
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
Packit Service c5cf8c
#ifndef MPITESTCXX_H_INCLUDED
Packit Service c5cf8c
#define MPITESTCXX_H_INCLUDED
Packit Service c5cf8c
Packit Service c5cf8c
#ifndef MPITESTCONF_H_INCLUDED
Packit Service c5cf8c
#error Required mpitestconf.h file not included first!
Packit Service c5cf8c
#endif
Packit Service c5cf8c
Packit Service c5cf8c
#include <string.h>
Packit Service c5cf8c
/*
Packit Service c5cf8c
 * Init and finalize test
Packit Service c5cf8c
 */
Packit Service c5cf8c
void MTest_Init(void);
Packit Service c5cf8c
void MTest_Finalize(int);
Packit Service c5cf8c
void MTestPrintError(int);
Packit Service c5cf8c
void MTestPrintErrorMsg(const char[], int);
Packit Service c5cf8c
void MTestPrintfMsg(int, const char[], ...);
Packit Service c5cf8c
void MTestError(const char[]);
Packit Service c5cf8c
Packit Service c5cf8c
/*
Packit Service c5cf8c
 * This structure contains the information used to test datatypes
Packit Service c5cf8c
 */
Packit Service c5cf8c
typedef struct _MTestDatatype {
Packit Service c5cf8c
    MPI::Datatype datatype;
Packit Service c5cf8c
    void *buf;                  /* buffer to use in communication */
Packit Service c5cf8c
    int count;                  /* count to use for this datatype */
Packit Service c5cf8c
    int isBasic;                /* true if the type is predefined */
Packit Service c5cf8c
    int printErrors;            /* true if errors should be printed
Packit Service c5cf8c
                                 * (used by the CheckBuf routines) */
Packit Service c5cf8c
    /* The following is optional data that is used by some of
Packit Service c5cf8c
     * the derived datatypes */
Packit Service c5cf8c
    int stride, nelm, blksize, *index;
Packit Service c5cf8c
    /* stride, nelm, and blksize are in bytes */
Packit Service c5cf8c
    int *displs, basesize;
Packit Service c5cf8c
    /* displacements are in multiples of base type; basesize is the
Packit Service c5cf8c
     * size of that type */
Packit Service c5cf8c
    void *(*InitBuf) (struct _MTestDatatype *);
Packit Service c5cf8c
    void *(*FreeBuf) (struct _MTestDatatype *);
Packit Service c5cf8c
    int (*CheckBuf) (struct _MTestDatatype *);
Packit Service c5cf8c
} MTestDatatype;
Packit Service c5cf8c
Packit Service c5cf8c
int MTestCheckRecv(MPI::Status &, MTestDatatype *);
Packit Service c5cf8c
int MTestGetDatatypes(MTestDatatype *, MTestDatatype *, int);
Packit Service c5cf8c
void MTestResetDatatypes(void);
Packit Service c5cf8c
void MTestFreeDatatype(MTestDatatype *);
Packit Service c5cf8c
const char *MTestGetDatatypeName(MTestDatatype *);
Packit Service c5cf8c
Packit Service c5cf8c
int MTestGetIntracomm(MPI::Intracomm &, int);
Packit Service c5cf8c
int MTestGetIntracommGeneral(MPI::Intracomm &, int, bool);
Packit Service c5cf8c
int MTestGetIntercomm(MPI::Intercomm &, int &, int);
Packit Service c5cf8c
int MTestGetComm(MPI::Comm **, int);
Packit Service c5cf8c
const char *MTestGetIntracommName(void);
Packit Service c5cf8c
const char *MTestGetIntercommName(void);
Packit Service c5cf8c
void MTestFreeComm(MPI::Comm & comm);
Packit Service c5cf8c
Packit Service c5cf8c
int MTestSpawnPossible(int *);
Packit Service c5cf8c
Packit Service c5cf8c
#ifdef HAVE_MPI_WIN_CREATE
Packit Service c5cf8c
int MTestGetWin(MPI::Win &, bool);
Packit Service c5cf8c
const char *MTestGetWinName(void);
Packit Service c5cf8c
void MTestFreeWin(MPI::Win &);
Packit Service c5cf8c
#endif
Packit Service c5cf8c
Packit Service c5cf8c
/* useful for avoid valgrind warnings about padding bytes */
Packit Service c5cf8c
#define MTEST_VG_MEM_INIT(addr_, size_) \
Packit Service c5cf8c
do {                                    \
Packit Service c5cf8c
    memset(addr_, 0, size_);            \
Packit Service c5cf8c
} while (0)
Packit Service c5cf8c
Packit Service c5cf8c
#endif /* MPITESTCXX_H_INCLUDED */