Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
ensure that the generated files are autonomous and not included within another file
authorMartin Quinson <martin.quinson@loria.fr>
Sat, 11 Oct 2014 20:04:34 +0000 (22:04 +0200)
committerMartin Quinson <martin.quinson@loria.fr>
Sat, 11 Oct 2014 20:04:34 +0000 (22:04 +0200)
buildtools/Cmake/DefinePackages.cmake
src/simix/simcalls.py
src/simix/simcalls_generated_case.c
src/simix/smx_smurf.c

index 3c7a22a..b831f01 100644 (file)
@@ -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
index 1d57171..89de0a4 100755 (executable)
@@ -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)
index 57e9938..dd2f3cf 100644 (file)
@@ -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
index e36f6d2..b08b0b4 100644 (file)
@@ -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) {