#ifndef _SIMIX_PRIVATE_H
#define _SIMIX_PRIVATE_H
+#include "src/internal_config.h"
#include "simgrid/simix.h"
#include "surf/surf.h"
#include "xbt/base.h"
#include "popping_private.h"
#include "smx_synchro_private.h"
+#include <signal.h>
+
#ifdef __cplusplus
#include <simgrid/simix.hpp>
/** Callback used when killing a SMX_process */
void_pfn_smxprocess_t cleanup_process_function;
xbt_mallocator_t synchro_mallocator;
- void_pfn_sghost_t autorestart;
#ifdef TIME_BENCH_AMDAHL
xbt_os_timer_t timer_seq; /* used to bench the sequential and parallel parts of the simulation, if requested to */
struct {
e_smx_comm_type_t type; /* Type of the communication (SIMIX_COMM_SEND or SIMIX_COMM_RECEIVE) */
- smx_rdv_t rdv; /* Rendez-vous where the comm is queued */
+ smx_mailbox_t rdv; /* Rendez-vous where the comm is queued */
-#ifdef HAVE_MC
- smx_rdv_t rdv_cpy; /* Copy of the rendez-vous where the comm is queued, MC needs it for DPOR
+#if HAVE_MC
+ smx_mailbox_t rdv_cpy; /* Copy of the rendez-vous where the comm is queued, MC needs it for DPOR
(comm.rdv set to NULL when the communication is removed from the mailbox
(used as garbage collector)) */
#endif
} io;
};
-#ifdef HAVE_LATENCY_BOUND_TRACKING
- int latency_limited;
-#endif
-
char *category; /* simix action category for instrumentation */
} s_smx_synchro_t;
XBT_PRIVATE void SIMIX_context_mod_init(void);
XBT_PRIVATE void SIMIX_context_mod_exit(void);
+XBT_PRIVATE smx_context_t SIMIX_context_new(
+ xbt_main_func_t code, int argc, char **argv,
+ void_pfn_smxprocess_t cleanup_func,
+ smx_process_t simix_process);
+
#ifndef WIN32
XBT_PUBLIC_DATA(char sigsegv_stack[SIGSTKSZ]);
#endif
/* We are using the bottom of the stack to save some information, like the
* valgrind_stack_id. Define smx_context_usable_stack_size to give the remaining
* size for the stack. */
-#ifdef HAVE_VALGRIND_VALGRIND_H
+#if HAVE_VALGRIND_H
# define smx_context_usable_stack_size \
(smx_context_stack_size - sizeof(unsigned int)) /* for valgrind_stack_id */
#else