X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/95bcda88a7fcfa168381cba0eedadb1e4937d0b3..41626f8a47c96f54fa3b1ee61a90fb0af699dcbc:/src/mc/mc_process.h diff --git a/src/mc/mc_process.h b/src/mc/mc_process.h index 762cb695e3..33340965fd 100644 --- a/src/mc/mc_process.h +++ b/src/mc/mc_process.h @@ -43,11 +43,6 @@ typedef enum { MC_PROCESS_CACHE_FLAG_SIMIX_PROCESSES = 4, } e_mc_process_cache_flags_t ; -struct s_mc_smx_process_info { - void* address; - struct s_smx_process copy; -}; - typedef struct s_mc_smx_process_info s_mc_smx_process_info_t, *mc_smx_process_info_t; /** Representation of a process @@ -67,7 +62,16 @@ struct s_mc_process { size_t object_infos_size; int memory_file; + /** Copy of `simix_global->process_list` + * + * See mc_smx.c. + */ xbt_dynar_t smx_process_infos; + + /** Copy of `simix_global->process_to_destroy` + * + * See mc_smx.c. + */ xbt_dynar_t smx_old_process_infos; /** State of the cache (which variables are up to date) */ @@ -135,8 +139,6 @@ void MC_process_refresh_heap(mc_process_t process); * */ void MC_process_refresh_malloc_info(mc_process_t process); -void MC_process_refresh_simix_processes(mc_process_t process); - static inline bool MC_process_is_self(mc_process_t process) { @@ -157,6 +159,13 @@ const void* MC_process_read(mc_process_t process, void* local, const void* remote, size_t len, int process_index); +// Simplified versions/wrappers (whould be moved in mc_address_space): +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); +unsigned long MC_process_read_dynar_length(mc_process_t process, const void* remote_dynar); + /** Write data to a process memory * * @param process the process @@ -177,6 +186,7 @@ mc_object_info_t MC_process_find_object_info_rw(mc_process_t process, const void dw_frame_t MC_process_find_function(mc_process_t process, const void* ip); void MC_process_read_variable(mc_process_t process, const char* name, void* target, size_t size); +char* MC_process_read_string(mc_process_t, void* address); static inline xbt_mheap_t MC_process_get_heap(mc_process_t process) { @@ -200,21 +210,6 @@ 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); -// ***** Things to move somewhere else: - -smx_process_t MC_process_get_issuer(mc_process_t process, smx_simcall_t req); - -void MC_simcall_handle(smx_simcall_t req, int value); - -void mc_smx_process_info_clear(mc_smx_process_info_t p); - -static inline -xbt_dynar_t mc_smx_process_info_list_new() -{ - return xbt_dynar_new( - sizeof(s_mc_smx_process_info_t), (void_f_pvoid_t) &mc_smx_process_info_clear); -} - SG_END_DECL() #endif