Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
SMPI over SIMIX_network in a two days rush.
[simgrid.git] / src / smpi / smpi_mpi_dt_private.h
1 /**
2  * $Id: $tag 
3  *
4  * smpi_mpi_dt_private.h -- functions of smpi_mpi_dt.c that are exported to other SMPI modules.
5  *
6  **/
7 #include "private.h"
8
9 #define DT_FLAG_DESTROYED     0x0001  /**< user destroyed but some other layers still have a reference */
10 #define DT_FLAG_COMMITED      0x0002  /**< ready to be used for a send/recv operation */
11 #define DT_FLAG_CONTIGUOUS    0x0004  /**< contiguous datatype */
12 #define DT_FLAG_OVERLAP       0x0008  /**< datatype is unpropper for a recv operation */
13 #define DT_FLAG_USER_LB       0x0010  /**< has a user defined LB */
14 #define DT_FLAG_USER_UB       0x0020  /**< has a user defined UB */
15 #define DT_FLAG_PREDEFINED    0x0040  /**< cannot be removed: initial and predefined datatypes */
16 #define DT_FLAG_NO_GAPS       0x0080  /**< no gaps around the datatype */
17 #define DT_FLAG_DATA          0x0100  /**< data or control structure */
18 #define DT_FLAG_ONE_SIDED     0x0200  /**< datatype can be used for one sided operations */
19 #define DT_FLAG_UNAVAILABLE   0x0400  /**< datatypes unavailable on the build (OS or compiler dependant) */
20 #define DT_FLAG_VECTOR        0x0800  /**< valid only for loops. The loop contain only one element
21                                        **< without extent. It correspond to the vector type. */
22 /* 
23  * We should make the difference here between the predefined contiguous and non contiguous
24  * datatypes. The DT_FLAG_BASIC is held by all predefined contiguous datatypes.
25  */
26 #define DT_FLAG_BASIC         (DT_FLAG_PREDEFINED | DT_FLAG_CONTIGUOUS | DT_FLAG_NO_GAPS | DT_FLAG_DATA | DT_FLAG_COMMITED)