openmpi  3.1.6
About: Open MPI is a high performance Message Passing Interface (MPI) library project combining technologies and resources from several other projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) in order to build the best MPI library available. 3.x series.
  Fossies Dox: openmpi-3.1.6.tar.bz2  ("unofficial" and yet experimental doxygen-generated source code documentation)  

bindings.h File Reference
#include "ompi_config.h"
#include "mpi.h"
#include "ompi/datatype/ompi_datatype.h"
#include "opal/runtime/opal_cr.h"
Include dependency graph for bindings.h:

Go to the source code of this file.

Macros

#define OMPI_CHECK_DATATYPE_FOR_SEND(RC, DDT, COUNT)
 
#define OMPI_CHECK_DATATYPE_FOR_RECV(RC, DDT, COUNT)
 
#define OMPI_CHECK_DATATYPE_FOR_ONE_SIDED(RC, DDT, COUNT)
 
#define OMPI_CHECK_USER_BUFFER(RC, BUFFER, DDT, COUNT)
 

Macro Definition Documentation

◆ OMPI_CHECK_DATATYPE_FOR_ONE_SIDED

#define OMPI_CHECK_DATATYPE_FOR_ONE_SIDED (   RC,
  DDT,
  COUNT 
)
Value:
do { \
/*(RC) = MPI_SUCCESS; */ \
if( NULL == (DDT) || MPI_DATATYPE_NULL == (DDT) ) (RC) = MPI_ERR_TYPE; \
else if( (COUNT) < 0 ) (RC) = MPI_ERR_COUNT; \
else if( !opal_datatype_is_committed(&((DDT)->super)) ) (RC) = MPI_ERR_TYPE; \
else if( opal_datatype_is_overlapped(&((DDT)->super)) ) (RC) = MPI_ERR_TYPE; \
else if( !opal_datatype_is_valid(&((DDT)->super)) ) (RC) = MPI_ERR_TYPE; \
} while(0)

Definition at line 65 of file bindings.h.

◆ OMPI_CHECK_DATATYPE_FOR_RECV

#define OMPI_CHECK_DATATYPE_FOR_RECV (   RC,
  DDT,
  COUNT 
)
Value:
do { \
/* (RC) = MPI_SUCCESS; */ \
if( NULL == (DDT) || MPI_DATATYPE_NULL == (DDT) ) (RC) = MPI_ERR_TYPE; \
else if( (COUNT) < 0 ) (RC) = MPI_ERR_COUNT; \
else if( !opal_datatype_is_committed(&((DDT)->super)) ) (RC) = MPI_ERR_TYPE; \
/* XXX Fix flags else if( ompi_datatype_is_overlapped((DDT)) ) (RC) = MPI_ERR_TYPE; */ \
else if( !opal_datatype_is_valid(&((DDT)->super)) ) (RC) = MPI_ERR_TYPE; \
} while (0)

Definition at line 55 of file bindings.h.

◆ OMPI_CHECK_DATATYPE_FOR_SEND

#define OMPI_CHECK_DATATYPE_FOR_SEND (   RC,
  DDT,
  COUNT 
)
Value:
do { \
/* (RC) = MPI_SUCCESS; */ \
if( NULL == (DDT) || MPI_DATATYPE_NULL == (DDT) ) (RC) = MPI_ERR_TYPE; \
else if( (COUNT) < 0 ) (RC) = MPI_ERR_COUNT; \
else if( !opal_datatype_is_committed(&((DDT)->super)) ) (RC) = MPI_ERR_TYPE; \
else if( !opal_datatype_is_valid(&((DDT)->super)) ) (RC) = MPI_ERR_TYPE; \
} while (0)

Definition at line 46 of file bindings.h.

◆ OMPI_CHECK_USER_BUFFER

#define OMPI_CHECK_USER_BUFFER (   RC,
  BUFFER,
  DDT,
  COUNT 
)
Value:
do { \
if ( NULL == (BUFFER) && 0 < (COUNT) && MPI_SUCCESS == (RC) ) { \
if ( (DDT)->super.flags & OPAL_DATATYPE_FLAG_PREDEFINED ) { \
(RC) = MPI_ERR_BUFFER; \
} else { \
size_t size = 0; \
ptrdiff_t true_lb = 0; \
ptrdiff_t true_extended = 0; \
ompi_datatype_type_size((DDT), &size); \
ompi_datatype_get_true_extent((DDT), &true_lb, &true_extended); \
if ( 0 < size && 0 == true_lb ) { \
(RC) = MPI_ERR_BUFFER; \
} \
} \
} \
} while (0)

Definition at line 79 of file bindings.h.

OPAL_DATATYPE_FLAG_PREDEFINED
#define OPAL_DATATYPE_FLAG_PREDEFINED
cannot be removed: initial and predefined datatypes
Definition: opal_datatype.h:66
opal_datatype_is_overlapped
static int32_t opal_datatype_is_overlapped(const opal_datatype_t *type)
Definition: opal_datatype.h:198
opal_datatype_is_valid
static int32_t opal_datatype_is_valid(const opal_datatype_t *type)
Definition: opal_datatype.h:204
NULL
#define NULL
Copyright (C) 2000-2004 by Etnus, LLC.
Definition: ompi_msgq_dll.c:136
opal_datatype_is_committed
static int32_t opal_datatype_is_committed(const opal_datatype_t *type)
Definition: opal_datatype.h:192