#define MPI_BOTTOM (void *)0
#define MPI_PROC_NULL -2
#define MPI_ANY_TAG -1
-#define MPI_UNDEFINED -1
+#define MPI_UNDEFINED -3
// errorcodes
#define MPI_SUCCESS 0
#define MPI_ERR_COMM 1
extern MPI_Datatype MPI_C_LONG_DOUBLE_COMPLEX;
extern MPI_Datatype MPI_AINT;
extern MPI_Datatype MPI_OFFSET;
-
+extern MPI_Datatype MPI_LB;
+extern MPI_Datatype MPI_UB;
//The following are datatypes for the MPI functions MPI_MAXLOC and MPI_MINLOC.
extern MPI_Datatype MPI_FLOAT_INT;
extern MPI_Datatype MPI_LONG_INT;
//FIXME: these are not yet implemented
-#define MPI_UB MPI_CHAR
-
typedef void MPI_Handler_function(MPI_Comm*, int*, ...);
typedef void* MPI_Errhandler;
typedef int MPI_Copy_function(MPI_Comm oldcomm, int keyval, void* extra_state, void* attribute_val_in,
void* attribute_val_out, int* flag);
typedef int MPI_Delete_function(MPI_Comm comm, int keyval, void* attribute_val, void* extra_state);
+XBT_PUBLIC(MPI_Datatype) MPI_PACKED;
MPI_CALL(XBT_PUBLIC(int), MPI_Pack_size, (int incount, MPI_Datatype datatype, MPI_Comm comm, int* size));
MPI_CALL(XBT_PUBLIC(int), MPI_Cart_coords, (MPI_Comm comm, int rank, int maxdims, int* coords));
MPI_CALL(XBT_PUBLIC(int), MPI_Cart_create, (MPI_Comm comm_old, int ndims, int* dims, int* periods, int reorder, MPI_Comm* comm_cart));