int smpi_comm_is_blocked(MPI_Comm comm);
void smpi_comm_init_smp(MPI_Comm comm);
+int smpi_comm_c2f(MPI_Comm comm);
+MPI_Comm smpi_comm_f2c(int comm);
+int smpi_group_c2f(MPI_Group group);
+MPI_Group smpi_group_f2c(int group);
+int smpi_request_c2f(MPI_Request req);
+MPI_Request smpi_request_f2c(int req);
+int smpi_type_c2f(MPI_Datatype datatype);
+MPI_Datatype smpi_type_f2c(int datatype);
+int smpi_op_c2f(MPI_Op op);
+MPI_Op smpi_op_f2c(int op);
+int smpi_win_c2f(MPI_Win win);
+MPI_Win smpi_win_f2c(int win);
+
MPI_Request smpi_mpi_send_init(void *buf, int count, MPI_Datatype datatype,
int dst, int tag, MPI_Comm comm);
MPI_Request smpi_mpi_recv_init(void *buf, int count, MPI_Datatype datatype,
void smpi_bench_begin(void);
void smpi_bench_end(void);
+void* smpi_get_tmp_sendbuffer(int size);
+void* smpi_get_tmp_recvbuffer(int size);
+void smpi_free_tmp_buffer(void* buf);
+
+
// f77 wrappers
void mpi_init_(int*);
const char* encode_datatype(MPI_Datatype datatype);
// TODO, make this static and expose it more cleanly
-extern void** mappings;
+
+typedef struct s_smpi_privatisation_region {
+ void* address;
+ int file_descriptor;
+} *smpi_privatisation_region_t;
+
+extern smpi_privatisation_region_t smpi_privatisation_regions;
+
extern int smpi_loaded_page;
int SIMIX_process_get_PID(smx_process_t self);