X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b3ca3a517af21780e88cc89869b16927d1fea68a..ba5400c9278f4f61cf8319210a5edda78e0c5bd8:/src/simix/smx_private.h diff --git a/src/simix/smx_private.h b/src/simix/smx_private.h index 74f60d11c9..dbd51adbf0 100644 --- a/src/simix/smx_private.h +++ b/src/simix/smx_private.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2010, 2012-2014. The SimGrid Team. +/* Copyright (c) 2007-2010, 2012-2015. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -25,6 +25,8 @@ #include "popping_private.h" #include "smx_synchro_private.h" +SG_BEGIN_DECL() + /* Define only for SimGrid benchmarking purposes */ //#define TIME_BENCH_PER_SR /* this aims at measuring the time spent in each scheduling round per each thread. The code is thus run in sequential to bench separately each SSR */ //#define TIME_BENCH_AMDAHL /* this aims at measuring the porting of time that could be parallelized at maximum (to get the optimal speedup by applying the amdahl law). */ @@ -45,28 +47,23 @@ typedef struct s_smx_global { xbt_dict_t registered_functions; smx_creation_func_t create_process_function; void_pfn_smxprocess_t_smxprocess_t kill_process_function; + /** Callback used when killing a SMX_process */ void_pfn_smxprocess_t cleanup_process_function; xbt_mallocator_t synchro_mallocator; - void_pfn_smxhost_t autorestart; + 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 */ xbt_os_timer_t timer_par; #endif + + xbt_os_mutex_t mutex; } s_smx_global_t, *smx_global_t; XBT_PUBLIC_DATA(smx_global_t) simix_global; extern unsigned long simix_process_maxpid; -extern xbt_dict_t watched_hosts_lib; - -#ifdef __cplusplus -extern "C" { -#endif XBT_PUBLIC(void) SIMIX_clean(void); -#ifdef __cplusplus -} -#endif /******************************** Exceptions *********************************/ /** @brief Ask to the provided simix process to raise the provided exception */ @@ -132,7 +129,7 @@ typedef struct s_smx_synchro { union { struct { - smx_host_t host; /* The host where the execution takes place */ + sg_host_t host; /* The host where the execution takes place */ surf_action_t surf_exec; /* The Surf execution action encapsulated */ } execution; /* Possibly parallel execution */ @@ -175,7 +172,7 @@ typedef struct s_smx_synchro { } comm; struct { - smx_host_t host; /* The host that is sleeping */ + sg_host_t host; /* The host that is sleeping */ surf_action_t surf_sleep; /* The Surf sleeping action encapsulated */ } sleep; @@ -184,7 +181,7 @@ typedef struct s_smx_synchro { } synchro; struct { - smx_host_t host; + sg_host_t host; surf_action_t surf_io; } io; }; @@ -193,9 +190,7 @@ typedef struct s_smx_synchro { int latency_limited; #endif -#ifdef HAVE_TRACING char *category; /* simix action category for instrumentation */ -#endif } s_smx_synchro_t; void SIMIX_context_mod_init(void); @@ -226,6 +221,7 @@ smx_context_t SIMIX_context_get_current(void); void SIMIX_ctx_thread_factory_init(smx_context_factory_t *factory); void SIMIX_ctx_sysv_factory_init(smx_context_factory_t *factory); void SIMIX_ctx_raw_factory_init(smx_context_factory_t *factory); +void SIMIX_ctx_boost_factory_init(smx_context_factory_t *factory); /* ****************************** */ /* context manipulation functions */ @@ -333,4 +329,6 @@ XBT_PUBLIC(int) SIMIX_process_get_maxpid(void); void SIMIX_post_create_environment(void); +SG_END_DECL() + #endif