return MPI_SUCCESS;
}
+int PMPI_Error_string(int errorcode, char* string, int* resultlen){
+ if (errorcode<0 || string ==nullptr){
+ return MPI_ERR_ARG;
+ } else {
+ static const char *smpi_error_string[] = {
+ FOREACH_ERROR(GENERATE_STRING)
+ };
+ *resultlen = strlen(smpi_error_string[errorcode]);
+ strncpy(string, smpi_error_string[errorcode], *resultlen);
+ return MPI_SUCCESS;
+ }
+}
+
int PMPI_Keyval_create(MPI_Copy_function* copy_fn, MPI_Delete_function* delete_fn, int* keyval, void* extra_state) {
smpi_copy_fn _copy_fn={copy_fn,nullptr,nullptr};
smpi_delete_fn _delete_fn={delete_fn,nullptr,nullptr};