From: Martin Quinson Date: Sat, 11 Oct 2014 20:04:34 +0000 (+0200) Subject: ensure that the generated files are autonomous and not included within another file X-Git-Tag: v3_12~732^2~294 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/ff7eafd19936822d22334fbf345c0b2ac9d56dc5 ensure that the generated files are autonomous and not included within another file --- diff --git a/buildtools/Cmake/DefinePackages.cmake b/buildtools/Cmake/DefinePackages.cmake index 3c7a22a26d..b831f0195b 100644 --- a/buildtools/Cmake/DefinePackages.cmake +++ b/buildtools/Cmake/DefinePackages.cmake @@ -360,6 +360,9 @@ set(SURF_SRC src/xbt/xbt_sg_stubs.c ) +set(SIMIX_GENERATED_SRC + src/simix/simcalls_generated_case.c + ) set(SIMIX_SRC src/simix/smx_context.c src/simix/smx_context_base.c @@ -375,6 +378,7 @@ set(SIMIX_SRC src/simix/smx_synchro.c src/simix/smx_user.c src/simix/smx_vm.c + ${SIMIX_GENERATED_SRC} ) set(SIMGRID_SRC diff --git a/src/simix/simcalls.py b/src/simix/simcalls.py index 1d57171c74..89de0a4d7e 100755 --- a/src/simix/simcalls.py +++ b/src/simix/simcalls.py @@ -245,5 +245,42 @@ NUM_SIMCALLS write('simcalls_generated_string.c', Simcall.string, simcalls, simcalls_dict) write('simcalls_generated_res_getter_setter.h', Simcall.result_getter_setter, simcalls, simcalls_dict) write('simcalls_generated_args_getter_setter.h', Simcall.args_getter_setter, simcalls, simcalls_dict) - write('simcalls_generated_case.c', Simcall.case, simcalls, simcalls_dict) + + + write('simcalls_generated_case.c', Simcall.case, simcalls, simcalls_dict,""" +#include "smx_private.h" +#ifdef HAVE_MC +#include "mc/mc_private.h" +#endif + +XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_smurf); + +void SIMIX_simcall_pre(smx_simcall_t simcall, int value) +{ + XBT_DEBUG("Handling simcall %p: %s", simcall, SIMIX_simcall_name(simcall->call)); + SIMCALL_SET_MC_VALUE(simcall, value); + if (simcall->issuer->context->iwannadie && simcall->call != SIMCALL_PROCESS_CLEANUP) + return; + switch (simcall->call) { + """,""" + case NUM_SIMCALLS: + break; + case SIMCALL_NONE: + THROWF(arg_error,0,"Asked to do the noop syscall on %s@%s", + SIMIX_process_get_name(simcall->issuer), + SIMIX_host_get_name(SIMIX_process_get_host(simcall->issuer)) + ); + break; + + /* ****************************************************************************************** */ + /* TUTORIAL: New API */ + /* ****************************************************************************************** */ + case SIMCALL_NEW_API_INIT: + SIMIX_pre_new_api_fct(simcall); + break; + } +} + """) + + write('simcalls_generated_body.c', Simcall.body, simcalls, simcalls_dict) diff --git a/src/simix/simcalls_generated_case.c b/src/simix/simcalls_generated_case.c index 57e9938945..dd2f3cf88a 100644 --- a/src/simix/simcalls_generated_case.c +++ b/src/simix/simcalls_generated_case.c @@ -5,7 +5,22 @@ * in src/simix/simcalls.in * *********************************************/ -case SIMCALL_HOST_GET_BY_NAME: + +#include "smx_private.h" +#ifdef HAVE_MC +#include "mc/mc_private.h" +#endif + +XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_smurf); + +void SIMIX_simcall_pre(smx_simcall_t simcall, int value) +{ + XBT_DEBUG("Handling simcall %p: %s", simcall, SIMIX_simcall_name(simcall->call)); + SIMCALL_SET_MC_VALUE(simcall, value); + if (simcall->issuer->context->iwannadie && simcall->call != SIMCALL_PROCESS_CLEANUP) + return; + switch (simcall->call) { + case SIMCALL_HOST_GET_BY_NAME: simcall->result.dp = SIMIX_pre_host_get_by_name(simcall , simcall->args[0].cc); SIMIX_simcall_answer(simcall); break; @@ -609,3 +624,22 @@ case SIMCALL_MC_RANDOM: break; #endif + + case NUM_SIMCALLS: + break; + case SIMCALL_NONE: + THROWF(arg_error,0,"Asked to do the noop syscall on %s@%s", + SIMIX_process_get_name(simcall->issuer), + SIMIX_host_get_name(SIMIX_process_get_host(simcall->issuer)) + ); + break; + + /* ****************************************************************************************** */ + /* TUTORIAL: New API */ + /* ****************************************************************************************** */ + case SIMCALL_NEW_API_INIT: + SIMIX_pre_new_api_fct(simcall); + break; + } +} + \ No newline at end of file diff --git a/src/simix/smx_smurf.c b/src/simix/smx_smurf.c index e36f6d2065..b08b0b4dfc 100644 --- a/src/simix/smx_smurf.c +++ b/src/simix/smx_smurf.c @@ -53,32 +53,6 @@ void SIMIX_simcall_answer(smx_simcall_t simcall) } } -void SIMIX_simcall_pre(smx_simcall_t simcall, int value) -{ - XBT_DEBUG("Handling simcall %p: %s", simcall, SIMIX_simcall_name(simcall->call)); - SIMCALL_SET_MC_VALUE(simcall, value); - if (simcall->issuer->context->iwannadie && simcall->call != SIMCALL_PROCESS_CLEANUP) - return; - switch (simcall->call) { -#include "simcalls_generated_case.c" - case NUM_SIMCALLS: - break; - case SIMCALL_NONE: - THROWF(arg_error,0,"Asked to do the noop syscall on %s@%s", - SIMIX_process_get_name(simcall->issuer), - SIMIX_host_get_name(SIMIX_process_get_host(simcall->issuer)) - ); - break; - - /* ****************************************************************************************** */ - /* TUTORIAL: New API */ - /* ****************************************************************************************** */ - case SIMCALL_NEW_API_INIT: - SIMIX_pre_new_api_fct(simcall); - break; - } -} - void SIMIX_simcall_post(smx_action_t action) { switch (action->type) {