+int smpi_datatype_hvector(int count, int blocklen, MPI_Aint stride,
+ MPI_Datatype old_type, MPI_Datatype* new_type);
+int smpi_datatype_indexed(int count, int* blocklens, int* indices,
+ MPI_Datatype old_type, MPI_Datatype* new_type);
+int smpi_datatype_hindexed(int count, int* blocklens, MPI_Aint* indices,
+ MPI_Datatype old_type, MPI_Datatype* new_type);
+int smpi_datatype_struct(int count, int* blocklens, MPI_Aint* indices,
+ MPI_Datatype* old_types, MPI_Datatype* new_type);
+
+void smpi_datatype_create(MPI_Datatype* new_type, int size, int has_subtype, void *struct_type, int flags);
+
+
+void smpi_datatype_free(MPI_Datatype* type);
+void smpi_datatype_commit(MPI_Datatype* datatype);
+
+void smpi_empty_status(MPI_Status * status);