} s_smpi_subtype_t;
typedef struct s_smpi_mpi_datatype{
+ char* name;
size_t size;
/* this let us know if a serialization is required*/
size_t has_subtype;
int smpi_enabled(void);
void smpi_global_init(void);
void smpi_global_destroy(void);
+double smpi_wtime(void);
int is_datatype_valid(MPI_Datatype datatype);
int smpi_datatype_extent(MPI_Datatype datatype, MPI_Aint * lb,
MPI_Aint * extent);
MPI_Aint smpi_datatype_get_extent(MPI_Datatype datatype);
+void smpi_datatype_get_name(MPI_Datatype datatype, char* name, int* length);
+void smpi_datatype_set_name(MPI_Datatype datatype, char* name);
int smpi_datatype_copy(void *sendbuf, int sendcount, MPI_Datatype sendtype,
void *recvbuf, int recvcount,
MPI_Datatype recvtype);
void mpi_info_free_(int* info, int* ierr);
void mpi_get_( int *origin_addr, int* origin_count, int* origin_datatype, int* target_rank,
MPI_Aint* target_disp, int* target_count, int* target_datatype, int* win, int* ierr);
+void mpi_put_( int *origin_addr, int* origin_count, int* origin_datatype, int* target_rank,
+ MPI_Aint* target_disp, int* target_count, int* target_datatype, int* win, int* ierr);
+void mpi_accumulate_( int *origin_addr, int* origin_count, int* origin_datatype, int* target_rank,
+ MPI_Aint* target_disp, int* target_count, int* target_datatype, int* op, int* win, int* ierr);
void mpi_error_string_(int* errorcode, char* string, int* resultlen, int* ierr);
void mpi_sendrecv_(void* sendbuf, int* sendcount, int* sendtype, int* dst,
int* sendtag, void *recvbuf, int* recvcount,