#include <stddef.h>
#include <xbt/misc.h>
#include <xbt/function_types.h>
+#include "simgrid/datatypes.h"
#ifdef _WIN32
#define MPI_CALL(type,name,args) \
* Need a public setter for SMPI copy_callback function, so users can define
* their own while still using default SIMIX_copy_callback for MSG copies.
*/
-XBT_PUBLIC(void) smpi_comm_set_copy_data_callback(void (*callback));
+XBT_PUBLIC(void) smpi_comm_set_copy_data_callback(void (*callback) (smx_activity_t, void*, size_t));
+
/**
* Functions for call location tracing. These functions will be
XBT_PRIVATE void smpi_comm_null_copy_buffer_callback(smx_activity_t comm, void *buff, size_t buff_size);
-static void (*smpi_comm_copy_data_callback) (smx_activity_t, void*, size_t) = &smpi_comm_copy_buffer_callback;
-
XBT_PRIVATE void print_request(const char *message, MPI_Request request);
XBT_PRIVATE int smpi_enabled();
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_base, smpi, "Logging specific to SMPI (base)");
+extern void (*smpi_comm_copy_data_callback) (smx_activity_t, void*, size_t);
+
+
static int match_recv(void* a, void* b, smx_activity_t ignored) {
MPI_Request ref = static_cast<MPI_Request>(a);
MPI_Request req = static_cast<MPI_Request>(b);
MPI_Errhandler *MPI_ERRORS_ARE_FATAL = nullptr;
MPI_Errhandler *MPI_ERRHANDLER_NULL = nullptr;
+void (*smpi_comm_copy_data_callback) (smx_activity_t, void*, size_t) = &smpi_comm_copy_buffer_callback;
+
#define MAILBOX_NAME_MAXLEN (5 + sizeof(int) * 2 + 1)
static char *get_mailbox_name(char *str, int index)