X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/abc08fdc1485a157248680ff0db75bebe9d12a86..26af220e017a088b56105b2f21fadecf7d6e2a88:/src/mc/mc_process.h diff --git a/src/mc/mc_process.h b/src/mc/mc_process.h index 33340965fd..d10a28c744 100644 --- a/src/mc/mc_process.h +++ b/src/mc/mc_process.h @@ -11,12 +11,15 @@ #include #include "simgrid_config.h" - #include #include + +#ifdef HAVE_MC #include "xbt/mmalloc/mmprivate.h" +#endif +#include #include "simix/popping_private.h" #include "simix/smx_private.h" @@ -30,18 +33,17 @@ SG_BEGIN_DECL() int MC_process_vm_open(pid_t pid, int flags); -typedef enum { - MC_PROCESS_NO_FLAG = 0, - MC_PROCESS_SELF_FLAG = 1, -} e_mc_process_flags_t; +typedef int mc_process_flags_t; +#define MC_PROCESS_NO_FLAG 0 +#define MC_PROCESS_SELF_FLAG 1 // Those flags are used to track down which cached information // is still up to date and which information needs to be updated. -typedef enum { - MC_PROCESS_CACHE_FLAG_HEAP = 1, - MC_PROCESS_CACHE_FLAG_MALLOC_INFO = 2, - MC_PROCESS_CACHE_FLAG_SIMIX_PROCESSES = 4, -} e_mc_process_cache_flags_t ; +typedef int mc_process_cache_flags_t; +#define MC_PROCESS_CACHE_FLAG_NONE 0 +#define MC_PROCESS_CACHE_FLAG_HEAP 1 +#define MC_PROCESS_CACHE_FLAG_MALLOC_INFO 2 +#define MC_PROCESS_CACHE_FLAG_SIMIX_PROCESSES 4 typedef struct s_mc_smx_process_info s_mc_smx_process_info_t, *mc_smx_process_info_t; @@ -49,7 +51,7 @@ typedef struct s_mc_smx_process_info s_mc_smx_process_info_t, *mc_smx_process_in */ struct s_mc_process { s_mc_address_space_t address_space; - e_mc_process_flags_t process_flags; + mc_process_flags_t process_flags; pid_t pid; int socket; int status; @@ -75,7 +77,7 @@ struct s_mc_process { xbt_dynar_t smx_old_process_infos; /** State of the cache (which variables are up to date) */ - e_mc_process_cache_flags_t cache_flags; + mc_process_cache_flags_t cache_flags; /** Address of the heap structure in the MCed process. */ void* heap_address; @@ -155,7 +157,7 @@ bool MC_process_is_self(mc_process_t process) * @param len data size */ const void* MC_process_read(mc_process_t process, - e_adress_space_read_flags_t flags, + adress_space_read_flags_t flags, void* local, const void* remote, size_t len, int process_index); @@ -163,7 +165,7 @@ const void* MC_process_read(mc_process_t process, const void* MC_process_read_simple(mc_process_t process, void* local, const void* remote, size_t len); const void* MC_process_read_dynar_element(mc_process_t process, - void* local, const void* remote_dynar, size_t i); + void* local, const void* remote_dynar, size_t i, size_t len); unsigned long MC_process_read_dynar_length(mc_process_t process, const void* remote_dynar); /** Write data to a process memory @@ -210,6 +212,8 @@ static inline malloc_info* MC_process_get_malloc_info(mc_process_t process) */ dw_variable_t MC_process_find_variable_by_name(mc_process_t process, const char* name); +void MC_invalidate_cache(void); + SG_END_DECL() #endif