smx_global_t simix_global = NULL;
static xbt_heap_t simix_timers = NULL;
+/** @brief Timer datatype */
+typedef struct s_smx_timer {
+ double date;
+ void(* func)(void*);
+ void* args;
+} s_smx_timer_t;
+
+ void (*SMPI_switch_data_segment)(int) = NULL;
+
static void* SIMIX_synchro_mallocator_new_f(void);
static void SIMIX_synchro_mallocator_free_f(void* synchro);
static void SIMIX_synchro_mallocator_reset_f(void* synchro);
#include "xbt/log.h"
#include "xbt/dict.h"
#include "mc/mc.h"
-#include "mc/mc_replay.h"
-#include "mc/mc_client.h"
+#include "src/mc/mc_replay.h"
+#include "src/mc/mc_client.h"
+#include "src/simix/smx_private.hpp"
-#include "smpi/private.h"
+ #ifdef HAVE_SMPI
++#include "src/smpi/private.h"
+ #endif
+
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_process, simix,
"Logging specific to SIMIX (process)");
#include "private.h"
#include "smpi_mpi_dt_private.h"
#include "mc/mc.h"
-#include "mc/mc_record.h"
+#include "src/mc/mc_record.h"
#include "xbt/replay.h"
#include "surf/surf.h"
-#include "simix/smx_private.h"
+#include "src/simix/smx_private.h"
#include "simgrid/sg_config.h"
-#include "mc/mc_replay.h"
-#include "msg/msg_private.h"
+#include "src/mc/mc_replay.h"
++#include "src/msg/msg_private.h"
#include <float.h> /* DBL_MAX */
#include <stdint.h>
if (argc && argv) {
proc = SIMIX_process_self();
//FIXME: dirty cleanup method to avoid using msg cleanup functions on these processes when using MSG+SMPI
- proc->context->cleanup_func=SIMIX_process_cleanup;
+ SIMIX_process_set_cleanup_function(proc, SIMIX_process_cleanup);
char* instance_id = (*argv)[1];
int rank = atoi((*argv)[2]);
- index = smpi_process_index_of_smx_process(proc);
+ /* Now using segment index of the process */
+ index = proc->segment_index;
if(!index_to_process_data){
index_to_process_data=(int*)xbt_malloc(SIMIX_process_count()*sizeof(int));