X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7da2926d0733ff0683f31aeea176ce71e127264f..30f40863fc506c7013dec1902201d4bdffe3a101:/src/mc/mc_smx.h diff --git a/src/mc/mc_smx.h b/src/mc/mc_smx.h index 827634d150..28d20b7b47 100644 --- a/src/mc/mc_smx.h +++ b/src/mc/mc_smx.h @@ -1,5 +1,4 @@ -/* Copyright (c) 2015. The SimGrid Team. - * All rights reserved. */ +/* Copyright (c) 2015-2017. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -7,15 +6,7 @@ #ifndef SIMGRID_MC_SMX_H #define SIMGRID_MC_SMX_H -#include - -#include -#include - -#include "smpi/private.h" - -#include "mc/Process.hpp" -#include "mc_protocol.h" +#include "src/mc/Process.hpp" /** @file * @brief (Cross-process, MCer/MCed) Access to SMX structures @@ -39,22 +30,6 @@ SG_BEGIN_DECL() -struct s_mc_smx_process_info { - /** MCed address of the process */ - void* address; - /** (Flat) Copy of the process data structure */ - struct s_smx_process copy; - /** Hostname (owned by `mc_modelchecker->hostnames`) */ - const char* hostname; - char* name; -}; - -typedef struct s_mc_smx_process_info s_mc_smx_process_info_t, *mc_smx_process_info_t; - -XBT_PRIVATE xbt_dynar_t MC_smx_process_info_list_new(void); - -XBT_PRIVATE void MC_process_smx_refresh(simgrid::mc::Process* process); - /** Get the issuer of a simcall (`req->issuer`) * * In split-process mode, it does the black magic necessary to get an address @@ -64,40 +39,13 @@ XBT_PRIVATE void MC_process_smx_refresh(simgrid::mc::Process* process); * @param process the MCed process * @param req the simcall (copied in the local process) */ -XBT_PRIVATE smx_process_t MC_smx_simcall_get_issuer(smx_simcall_t req); +XBT_PRIVATE smx_actor_t MC_smx_simcall_get_issuer(s_smx_simcall_t const* req); -XBT_PRIVATE const char* MC_smx_process_get_name(smx_process_t p); -XBT_PRIVATE const char* MC_smx_process_get_host_name(smx_process_t p); - -#define MC_EACH_SIMIX_PROCESS(process, code) \ - if (mc_mode == MC_MODE_CLIENT) { \ - xbt_swag_foreach(process, simix_global->process_list) { \ - code; \ - } \ - } else { \ - MC_process_smx_refresh(&mc_model_checker->process()); \ - unsigned int _smx_process_index; \ - mc_smx_process_info_t _smx_process_info; \ - xbt_dynar_foreach_ptr(mc_model_checker->process().smx_process_infos, _smx_process_index, _smx_process_info) { \ - smx_process_t process = &_smx_process_info->copy; \ - code; \ - } \ - } - -/** Execute a given simcall */ -XBT_PRIVATE void MC_simcall_handle(smx_simcall_t req, int value); +XBT_PRIVATE const char* MC_smx_actor_get_name(smx_actor_t p); +XBT_PRIVATE const char* MC_smx_actor_get_host_name(smx_actor_t p); XBT_PRIVATE int MC_smpi_process_count(void); - -/* ***** Resolve (local/MCer structure from remote/MCed addresses) ***** */ - -/** Get a local copy of the process from the process remote address */ -XBT_PRIVATE smx_process_t MC_smx_resolve_process(smx_process_t process_remote_address); - -/** Get the process info structure from the process remote address */ -XBT_PRIVATE mc_smx_process_info_t MC_smx_resolve_process_info(smx_process_t process_remote_address); - XBT_PRIVATE unsigned long MC_smx_get_maxpid(void); SG_END_DECL()