#define MPI_ANY_TAG -1
+#define MPI_UNDEFINED -1
+
// errorcodes
#define MPI_SUCCESS 0
#define MPI_ERR_COMM 1
int MPI_Recv(void *buf, int count, MPI_Datatype datatype, int src, int tag, MPI_Comm comm, MPI_Status *status);
int MPI_Isend(void *buf, int count, MPI_Datatype datatype, int dst, int tag, MPI_Comm comm, MPI_Request *request);
int MPI_Send(void *buf, int count, MPI_Datatype datatype, int dst, int tag, MPI_Comm comm);
+int MPI_Bcast(void *buf, int count, MPI_Datatype datatype, int root, MPI_Comm comm);
+int MPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm *comm_out);
// smpi functions
XBT_IMPORT_NO_EXPORT(int) smpi_simulated_main(int argc, char **argv);
void smpi_exit(int);
int smpi_gettimeofday(struct timeval *tv, struct timezone *tz);
+void smpi_do_once_1(const char *file, int line);
+int smpi_do_once_2(void);
+void smpi_do_once_3(void);
+#define SMPI_DO_ONCE for (smpi_do_once_1(__FILE__, __LINE__); smpi_do_once_2(); smpi_do_once_3())
+
#endif