#define MPI_ERR_TOPOLOGY 18
#define MPI_ERR_NO_MEM 19
#define MPI_ERR_WIN 20
+#define MPI_ERR_INFO_VALUE 21
+#define MPI_ERR_INFO_KEY 22
+#define MPI_ERR_INFO_NOKEY 23
#define MPI_ERRCODES_IGNORE (int *)0
#define MPI_IDENT 0
#define MPI_SIMILAR 1
#define MPI_TYPECLASS_INTEGER 1
#define MPI_TYPECLASS_COMPLEX 2
#define MPI_ROOT 0
-#define MPI_INFO_NULL -1
+#define MPI_INFO_NULL NULL
#define MPI_COMM_TYPE_SHARED 1
#define MPI_WIN_NULL NULL
struct s_smpi_mpi_win;
typedef struct s_smpi_mpi_win* MPI_Win;
-typedef int MPI_Info;
+struct s_smpi_mpi_info;
+typedef struct s_smpi_mpi_info *MPI_Info;
#define MPI_STATUS_IGNORE ((MPI_Status*)NULL)
#define MPI_STATUSES_IGNORE ((MPI_Status*)NULL)
XBT_PUBLIC_DATA(MPI_Datatype) MPI_2DOUBLE;
XBT_PUBLIC_DATA(MPI_Datatype) MPI_2LONG;//only for compatibility with Fortran
+XBT_PUBLIC_DATA(MPI_Datatype) MPI_REAL;
XBT_PUBLIC_DATA(MPI_Datatype) MPI_REAL4;
XBT_PUBLIC_DATA(MPI_Datatype) MPI_REAL8;
XBT_PUBLIC_DATA(MPI_Datatype) MPI_REAL16;
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);
-typedef int MPI_Comm_copy_attr_function(MPI_Comm oldcomm, int keyval, void* extra_state, void* attribute_val_in,
- void* attribute_val_out, int* flag);
-typedef int MPI_Comm_delete_attr_function(MPI_Comm comm, int keyval, void* attribute_val, void* extra_state);
+#define MPI_Comm_copy_attr_function MPI_Copy_function
+#define MPI_Comm_delete_attr_function MPI_Delete_function
typedef int MPI_Type_copy_attr_function(MPI_Datatype type, int keyval, void* extra_state, void* attribute_val_in,
void* attribute_val_out, int* flag);
typedef int MPI_Type_delete_attr_function(MPI_Datatype type, int keyval, void* attribute_val, void* extra_state);