From 03d36345c4247a907709b86c189a53f5f85bea88 Mon Sep 17 00:00:00 2001 From: Gabriel Corona Date: Thu, 30 Oct 2014 14:39:17 +0100 Subject: [PATCH] [mc] Initial support MC record/replay The idea is to record an execution path in MC mode inorder to be able to replay it outside of the MC (event with a non-MC build). Some very basic (an unobtrusive) MC code is compiled even when MC is disabled. --- buildtools/Cmake/AddTests.cmake | 4 + buildtools/Cmake/DefinePackages.cmake | 15 +- buildtools/Cmake/MakeExe.cmake | 1 + include/simgrid/modelchecker.h | 4 +- include/surf/simgrid_dtd.h | 946 ++++++++++----------- include/xbt/graphxml.h | 78 +- src/include/mc/mc.h | 1 + src/mc/mc_base.c | 116 +++ src/mc/mc_base.h | 23 + src/mc/mc_comm_determinism.c | 1 + src/mc/mc_config.c | 35 +- src/mc/mc_global.c | 63 +- src/mc/mc_liveness.c | 1 + src/mc/mc_private.h | 19 +- src/mc/mc_record.c | 139 +++ src/mc/mc_record.h | 93 ++ src/mc/mc_request.c | 51 -- src/mc/mc_safety.c | 1 + src/simdag/dax_dtd.c | 128 +-- src/simdag/dax_dtd.h | 174 ++-- src/simgrid/sg_config.c | 30 + src/simix/libsmx.c | 4 +- src/simix/popping_accessors.h | 40 +- src/simix/popping_bodies.c | 44 +- src/simix/popping_enum.h | 2 +- src/simix/popping_generated.c | 12 +- src/simix/popping_private.h | 7 - src/simix/simcalls.in | 2 +- src/simix/smx_global.c | 7 +- src/smpi/smpi_global.c | 1 + src/surf/simgrid_dtd.c | 904 ++++++++++---------- src/xbt/graphxml.c | 60 +- teshsuite/mc/replay/CMakeLists.txt | 15 + teshsuite/mc/replay/random_bug.c | 37 + teshsuite/mc/replay/random_bug.tesh | 18 + teshsuite/mc/replay/random_bug.xml | 5 + teshsuite/mc/replay/random_bug_replay.tesh | 5 + 37 files changed, 1776 insertions(+), 1310 deletions(-) create mode 100644 src/mc/mc_base.c create mode 100644 src/mc/mc_base.h create mode 100644 src/mc/mc_record.c create mode 100644 src/mc/mc_record.h create mode 100644 teshsuite/mc/replay/CMakeLists.txt create mode 100644 teshsuite/mc/replay/random_bug.c create mode 100644 teshsuite/mc/replay/random_bug.tesh create mode 100644 teshsuite/mc/replay/random_bug.xml create mode 100644 teshsuite/mc/replay/random_bug_replay.tesh diff --git a/buildtools/Cmake/AddTests.cmake b/buildtools/Cmake/AddTests.cmake index a626862efc..932b2b8bb5 100644 --- a/buildtools/Cmake/AddTests.cmake +++ b/buildtools/Cmake/AddTests.cmake @@ -95,11 +95,15 @@ IF(NOT enable_memcheck) ENDIF() # END TESH TESTS + ADD_TESH(mc-replay-random-bug --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc/replay --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/mc/replay --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc/replay random_bug_replay.tesh) + ### MC ### IF(HAVE_MC) ADD_TESH(tesh-mc-dwarf --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc/dwarf --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc/dwarf dwarf.tesh) ADD_TESH(tesh-mc-dwarf-expression --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc/dwarf_expression --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc/dwarf_expression dwarf_expression.tesh) + ADD_TESH(mc-record-random-bug --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc/replay --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/mc/replay --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc/replay random_bug.tesh) + ADD_TESH_FACTORIES(mc-bugged1 "ucontext;raw" --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/mc --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/mc bugged1.tesh) ADD_TESH_FACTORIES(mc-bugged2 "ucontext;raw" --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/mc --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/mc bugged2.tesh) IF(CONTEXT_UCONTEXT AND PROCESSOR_x86_64) # liveness model-checking works only on 64bits (for now ...) diff --git a/buildtools/Cmake/DefinePackages.cmake b/buildtools/Cmake/DefinePackages.cmake index fe6385844a..5509fe5903 100644 --- a/buildtools/Cmake/DefinePackages.cmake +++ b/buildtools/Cmake/DefinePackages.cmake @@ -7,6 +7,7 @@ set(EXTRA_DIST src/include/mc/mc.h src/mc/mc_mmu.h src/mc/mc_page_store.h + src/mc/mc_record.h src/include/simgrid/platf_interface.h src/include/simgrid/sg_config.h src/include/smpi/smpi_interface.h @@ -583,6 +584,12 @@ set(JEDULE_SRC src/instr/jedule/jedule_sd_binding.c ) +set(MC_SRC_BASE + src/mc/mc_base.c + src/mc/mc_record.c + src/mc/mc_config.c + ) + set(MC_SRC src/mc/mc_checkpoint.c src/mc/mc_snapshot.c @@ -590,7 +597,6 @@ set(MC_SRC src/mc/mc_page_snapshot.cpp src/mc/mc_comm_determinism.c src/mc/mc_compare.cpp - src/mc/mc_config.c src/mc/mc_diff.c src/mc/mc_dwarf.c src/mc/mc_dwarf_attrnames.h @@ -601,6 +607,7 @@ set(MC_SRC src/mc/mc_ignore.c src/mc/mc_interface.h src/mc/mc_liveness.c + src/mc/mc_record.c src/mc/mc_member.c src/mc/mc_memory.c src/mc/mc_pair.c @@ -760,6 +767,11 @@ else() ) endif() +set(simgrid_sources + ${simgrid_sources} + ${MC_SRC_BASE} + ) + if(HAVE_MC) set(simgrid_sources ${simgrid_sources} @@ -1022,6 +1034,7 @@ set(TESHSUITE_CMAKEFILES_TXT teshsuite/mc/CMakeLists.txt teshsuite/mc/dwarf/CMakeLists.txt teshsuite/mc/dwarf_expression/CMakeLists.txt + teshsuite/mc/replay/CMakeLists.txt teshsuite/msg/CMakeLists.txt teshsuite/msg/get_sender/CMakeLists.txt teshsuite/msg/host_on_off/CMakeLists.txt diff --git a/buildtools/Cmake/MakeExe.cmake b/buildtools/Cmake/MakeExe.cmake index 59ac10f121..5cd1d9859e 100644 --- a/buildtools/Cmake/MakeExe.cmake +++ b/buildtools/Cmake/MakeExe.cmake @@ -88,6 +88,7 @@ add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/java/sleep_host_off) add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/mc) add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/mc/dwarf) add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/mc/dwarf_expression) +add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/mc/replay) add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/msg) add_subdirectory(${CMAKE_HOME_DIRECTORY}/teshsuite/msg/get_sender) diff --git a/include/simgrid/modelchecker.h b/include/simgrid/modelchecker.h index 34d9124df0..974165d740 100644 --- a/include/simgrid/modelchecker.h +++ b/include/simgrid/modelchecker.h @@ -15,6 +15,8 @@ SG_BEGIN_DECL() +XBT_PUBLIC(int) MC_random(int min, int max); + #ifdef HAVE_MC extern int _sg_do_model_check; /* please don't use directly: we inline MC_is_active, but that's what you should use */ @@ -24,7 +26,6 @@ extern int _sg_mc_visited; #define MC_visited_reduction() _sg_mc_visited XBT_PUBLIC(void) MC_assert(int); -XBT_PUBLIC(int) MC_random(int min, int max); XBT_PUBLIC(void) MC_automaton_new_propositional_symbol(const char* id, void* fct); XBT_PUBLIC(void *) MC_snapshot(void); XBT_PUBLIC(int) MC_compare_snapshots(void *s1, void *s2); @@ -37,7 +38,6 @@ XBT_PUBLIC(void) MC_ignore(void *addr, size_t size); #define MC_visited_reduction() 0 #define MC_assert(a) xbt_assert(a) -#define MC_random(a, b) 0 #define MC_automaton_new_propositional_symbol(a, b) ((void)0) #define MC_snapshot() ((void*)0) #define MC_compare_snapshots(a, b) 0 diff --git a/include/surf/simgrid_dtd.h b/include/surf/simgrid_dtd.h index b99eacc14e..ff38c621a5 100644 --- a/include/surf/simgrid_dtd.h +++ b/include/surf/simgrid_dtd.h @@ -108,598 +108,598 @@ XBT_PUBLIC(void) STag_surfxml_model___prop(void); XBT_PUBLIC(void) ETag_surfxml_model___prop(void); /* XML application data. */ -typedef int AT_surfxml_bypassASroute_dst; -#define AU_surfxml_bypassASroute_dst NULL -typedef int AT_surfxml_link_latency___file; -#define AU_surfxml_link_latency___file NULL -typedef int AT_surfxml_prop_value; -#define AU_surfxml_prop_value NULL +typedef int AT_surfxml_mstorage_typeId; +#define AU_surfxml_mstorage_typeId NULL +typedef int AT_surfxml_peer_state___file; +#define AU_surfxml_peer_state___file NULL +typedef int AT_surfxml_cluster_limiter___link; +#define AU_surfxml_cluster_limiter___link NULL +typedef int AT_surfxml_storage___type_content; +#define AU_surfxml_storage___type_content NULL +typedef enum { AU_surfxml_ASroute_symmetrical, A_surfxml_ASroute_symmetrical_YES,A_surfxml_ASroute_symmetrical_NO } AT_surfxml_ASroute_symmetrical; +typedef int AT_surfxml_storage_content___type; +#define AU_surfxml_storage_content___type NULL typedef int AT_surfxml_cluster_power; #define AU_surfxml_cluster_power NULL -typedef int AT_surfxml_random_min; -#define AU_surfxml_random_min NULL -typedef int AT_surfxml_host_availability___file; -#define AU_surfxml_host_availability___file NULL -typedef enum { AU_surfxml_link_sharing___policy, A_surfxml_link_sharing___policy_SHARED,A_surfxml_link_sharing___policy_FATPIPE,A_surfxml_link_sharing___policy_FULLDUPLEX } AT_surfxml_link_sharing___policy; -typedef int AT_surfxml_storage___type_model; -#define AU_surfxml_storage___type_model NULL -typedef int AT_surfxml_argument_value; -#define AU_surfxml_argument_value NULL -typedef int AT_surfxml_AS_id; -#define AU_surfxml_AS_id NULL -typedef int AT_surfxml_cluster_loopback___bw; -#define AU_surfxml_cluster_loopback___bw NULL +typedef enum { AU_surfxml_route_symmetrical, A_surfxml_route_symmetrical_YES,A_surfxml_route_symmetrical_NO } AT_surfxml_route_symmetrical; +typedef int AT_surfxml_cabinet_id; +#define AU_surfxml_cabinet_id NULL +typedef enum { AU_surfxml_cluster_topology, A_surfxml_cluster_topology_FLAT,A_surfxml_cluster_topology_TORUS,A_surfxml_cluster_topology_FAT___TREE } AT_surfxml_cluster_topology; +typedef int AT_surfxml_storage_content; +#define AU_surfxml_storage_content NULL +typedef int AT_surfxml_cluster_bw; +#define AU_surfxml_cluster_bw NULL +typedef int AT_surfxml_host_coordinates; +#define AU_surfxml_host_coordinates NULL +typedef int AT_surfxml_mount_storageId; +#define AU_surfxml_mount_storageId NULL +typedef int AT_surfxml_random_id; +#define AU_surfxml_random_id NULL typedef int AT_surfxml_mount_name; #define AU_surfxml_mount_name NULL -typedef int AT_surfxml_cluster_router___id; -#define AU_surfxml_cluster_router___id NULL -typedef int AT_surfxml_cluster_id; -#define AU_surfxml_cluster_id NULL -typedef enum { AU_surfxml_cluster_bb___sharing___policy, A_surfxml_cluster_bb___sharing___policy_SHARED,A_surfxml_cluster_bb___sharing___policy_FATPIPE } AT_surfxml_cluster_bb___sharing___policy; -typedef int AT_surfxml_peer_bw___out; -#define AU_surfxml_peer_bw___out NULL -typedef int AT_surfxml_cluster_core; -#define AU_surfxml_cluster_core NULL +typedef int AT_surfxml_bypassASroute_dst; +#define AU_surfxml_bypassASroute_dst NULL +typedef int AT_surfxml_config_id; +#define AU_surfxml_config_id NULL +typedef int AT_surfxml_bypassASroute_gw___src; +#define AU_surfxml_bypassASroute_gw___src NULL +typedef int AT_surfxml_link___ctn_id; +#define AU_surfxml_link___ctn_id NULL +typedef int AT_surfxml_mstorage_name; +#define AU_surfxml_mstorage_name NULL typedef int AT_surfxml_random_std___deviation; #define AU_surfxml_random_std___deviation NULL +typedef int AT_surfxml_cluster_bb___bw; +#define AU_surfxml_cluster_bb___bw NULL +typedef int AT_surfxml_gpu_name; +#define AU_surfxml_gpu_name NULL +typedef int AT_surfxml_cluster_loopback___bw; +#define AU_surfxml_cluster_loopback___bw NULL +typedef int AT_surfxml_model___prop_value; +#define AU_surfxml_model___prop_value NULL +typedef int AT_surfxml_cluster_radical; +#define AU_surfxml_cluster_radical NULL +typedef int AT_surfxml_cabinet_bw; +#define AU_surfxml_cabinet_bw NULL +typedef int AT_surfxml_host_availability___file; +#define AU_surfxml_host_availability___file NULL +typedef int AT_surfxml_process_function; +#define AU_surfxml_process_function NULL +typedef int AT_surfxml_cabinet_suffix; +#define AU_surfxml_cabinet_suffix NULL +typedef int AT_surfxml_ASroute_gw___dst; +#define AU_surfxml_ASroute_gw___dst NULL typedef int AT_surfxml_bypassRoute_src; #define AU_surfxml_bypassRoute_src NULL -typedef int AT_surfxml_backbone_bandwidth; -#define AU_surfxml_backbone_bandwidth NULL -typedef int AT_surfxml_cabinet_radical; -#define AU_surfxml_cabinet_radical NULL -typedef int AT_surfxml_storage_content; -#define AU_surfxml_storage_content NULL +typedef int AT_surfxml_trace_id; +#define AU_surfxml_trace_id NULL +typedef int AT_surfxml_link_latency___file; +#define AU_surfxml_link_latency___file NULL typedef int AT_surfxml_link_id; #define AU_surfxml_link_id NULL -typedef int AT_surfxml_host___link_id; -#define AU_surfxml_host___link_id NULL -typedef int AT_surfxml_include_file; -#define AU_surfxml_include_file NULL -typedef int AT_surfxml_storage_content___type; -#define AU_surfxml_storage_content___type NULL -typedef int AT_surfxml_process_kill___time; -#define AU_surfxml_process_kill___time NULL -typedef int AT_surfxml_peer_state___file; -#define AU_surfxml_peer_state___file NULL -typedef enum { AU_surfxml_link___ctn_direction, A_surfxml_link___ctn_direction_UP,A_surfxml_link___ctn_direction_DOWN,A_surfxml_link___ctn_direction_NONE } AT_surfxml_link___ctn_direction; -typedef int AT_surfxml_host___link_up; -#define AU_surfxml_host___link_up NULL -typedef int AT_surfxml_bypassASroute_gw___dst; -#define AU_surfxml_bypassASroute_gw___dst NULL -typedef enum { AU_surfxml_AS_routing, A_surfxml_AS_routing_Full,A_surfxml_AS_routing_Floyd,A_surfxml_AS_routing_Dijkstra,A_surfxml_AS_routing_DijkstraCache,A_surfxml_AS_routing_None,A_surfxml_AS_routing_Vivaldi,A_surfxml_AS_routing_Cluster,A_surfxml_AS_routing_Cluster___torus,A_surfxml_AS_routing_Cluster___fat___tree } AT_surfxml_AS_routing; +typedef int AT_surfxml_process_start___time; +#define AU_surfxml_process_start___time NULL +typedef enum { AU_surfxml_host_state, A_surfxml_host_state_ON,A_surfxml_host_state_OFF } AT_surfxml_host_state; +typedef int AT_surfxml_link_bandwidth___file; +#define AU_surfxml_link_bandwidth___file NULL +typedef enum { AU_surfxml_cluster_sharing___policy, A_surfxml_cluster_sharing___policy_SHARED,A_surfxml_cluster_sharing___policy_FULLDUPLEX,A_surfxml_cluster_sharing___policy_FATPIPE } AT_surfxml_cluster_sharing___policy; +typedef int AT_surfxml_host_state___file; +#define AU_surfxml_host_state___file NULL +typedef int AT_surfxml_AS_id; +#define AU_surfxml_AS_id NULL +typedef int AT_surfxml_cluster_suffix; +#define AU_surfxml_cluster_suffix NULL +typedef int AT_surfxml_peer_availability___file; +#define AU_surfxml_peer_availability___file NULL +typedef int AT_surfxml_peer_bw___out; +#define AU_surfxml_peer_bw___out NULL +typedef int AT_surfxml_cluster_id; +#define AU_surfxml_cluster_id NULL typedef int AT_surfxml_bypassRoute_dst; #define AU_surfxml_bypassRoute_dst NULL -typedef enum { AU_surfxml_cluster_topology, A_surfxml_cluster_topology_FLAT,A_surfxml_cluster_topology_TORUS,A_surfxml_cluster_topology_FAT___TREE } AT_surfxml_cluster_topology; -typedef int AT_surfxml_link_latency; -#define AU_surfxml_link_latency NULL +typedef int AT_surfxml_cabinet_prefix; +#define AU_surfxml_cabinet_prefix NULL typedef int AT_surfxml_route_src; #define AU_surfxml_route_src NULL -typedef int AT_surfxml_bypassASroute_src; -#define AU_surfxml_bypassASroute_src NULL -typedef int AT_surfxml_peer_bw___in; -#define AU_surfxml_peer_bw___in NULL -typedef enum { AU_surfxml_trace___connect_kind, A_surfxml_trace___connect_kind_HOST___AVAIL,A_surfxml_trace___connect_kind_POWER,A_surfxml_trace___connect_kind_LINK___AVAIL,A_surfxml_trace___connect_kind_BANDWIDTH,A_surfxml_trace___connect_kind_LATENCY } AT_surfxml_trace___connect_kind; -typedef int AT_surfxml_cluster_prefix; -#define AU_surfxml_cluster_prefix NULL -typedef enum { AU_surfxml_host_state, A_surfxml_host_state_ON,A_surfxml_host_state_OFF } AT_surfxml_host_state; -typedef int AT_surfxml_cabinet_power; -#define AU_surfxml_cabinet_power NULL -typedef int AT_surfxml_model___prop_value; -#define AU_surfxml_model___prop_value NULL -typedef int AT_surfxml_route_dst; -#define AU_surfxml_route_dst NULL -typedef int AT_surfxml_storage___type_size; -#define AU_surfxml_storage___type_size NULL -typedef int AT_surfxml_host_id; -#define AU_surfxml_host_id NULL -typedef int AT_surfxml_ASroute_gw___src; -#define AU_surfxml_ASroute_gw___src NULL +typedef int AT_surfxml_host___link_id; +#define AU_surfxml_host___link_id NULL typedef int AT_surfxml_peer_coordinates; #define AU_surfxml_peer_coordinates NULL -typedef int AT_surfxml_cabinet_bw; -#define AU_surfxml_cabinet_bw NULL -typedef int AT_surfxml_cluster_availability___file; -#define AU_surfxml_cluster_availability___file NULL -typedef int AT_surfxml_host_coordinates; -#define AU_surfxml_host_coordinates NULL -typedef int AT_surfxml_random_max; -#define AU_surfxml_random_max NULL -typedef int AT_surfxml_trace___connect_trace; -#define AU_surfxml_trace___connect_trace NULL +typedef enum { AU_surfxml_AS_routing, A_surfxml_AS_routing_Full,A_surfxml_AS_routing_Floyd,A_surfxml_AS_routing_Dijkstra,A_surfxml_AS_routing_DijkstraCache,A_surfxml_AS_routing_None,A_surfxml_AS_routing_Vivaldi,A_surfxml_AS_routing_Cluster,A_surfxml_AS_routing_Cluster___torus,A_surfxml_AS_routing_Cluster___fat___tree } AT_surfxml_AS_routing; +typedef int AT_surfxml_host_power; +#define AU_surfxml_host_power NULL typedef int AT_surfxml_storage_id; #define AU_surfxml_storage_id NULL -typedef enum { AU_surfxml_ASroute_symmetrical, A_surfxml_ASroute_symmetrical_YES,A_surfxml_ASroute_symmetrical_NO } AT_surfxml_ASroute_symmetrical; -typedef int AT_surfxml_random_seed; -#define AU_surfxml_random_seed NULL -typedef int AT_surfxml_process_start___time; -#define AU_surfxml_process_start___time NULL typedef int AT_surfxml_cluster_state___file; #define AU_surfxml_cluster_state___file NULL -typedef int AT_surfxml_host_power; -#define AU_surfxml_host_power NULL -typedef int AT_surfxml_random_radical; -#define AU_surfxml_random_radical NULL -typedef int AT_surfxml_storage___type_id; -#define AU_surfxml_storage___type_id NULL -typedef int AT_surfxml_random_id; -#define AU_surfxml_random_id NULL -typedef int AT_surfxml_cabinet_suffix; -#define AU_surfxml_cabinet_suffix NULL -typedef enum { AU_surfxml_route_symmetrical, A_surfxml_route_symmetrical_YES,A_surfxml_route_symmetrical_NO } AT_surfxml_route_symmetrical; -typedef int AT_surfxml_cabinet_lat; -#define AU_surfxml_cabinet_lat NULL -typedef int AT_surfxml_bypassASroute_gw___src; -#define AU_surfxml_bypassASroute_gw___src NULL +typedef int AT_surfxml_peer_id; +#define AU_surfxml_peer_id NULL +typedef int AT_surfxml_cluster_availability___file; +#define AU_surfxml_cluster_availability___file NULL typedef int AT_surfxml_storage___type_content___type; #define AU_surfxml_storage___type_content___type NULL -typedef int AT_surfxml_link___ctn_id; -#define AU_surfxml_link___ctn_id NULL -typedef int AT_surfxml_host_state___file; -#define AU_surfxml_host_state___file NULL +typedef enum { AU_surfxml_link_state, A_surfxml_link_state_ON,A_surfxml_link_state_OFF } AT_surfxml_link_state; +typedef int AT_surfxml_route_dst; +#define AU_surfxml_route_dst NULL +typedef int AT_surfxml_storage___type_model; +#define AU_surfxml_storage___type_model NULL +typedef int AT_surfxml_peer_bw___in; +#define AU_surfxml_peer_bw___in NULL +typedef int AT_surfxml_backbone_id; +#define AU_surfxml_backbone_id NULL +typedef enum { AU_surfxml_link___ctn_direction, A_surfxml_link___ctn_direction_UP,A_surfxml_link___ctn_direction_DOWN,A_surfxml_link___ctn_direction_NONE } AT_surfxml_link___ctn_direction; +typedef int AT_surfxml_bypassASroute_gw___dst; +#define AU_surfxml_bypassASroute_gw___dst NULL +typedef int AT_surfxml_bypassASroute_src; +#define AU_surfxml_bypassASroute_src NULL +typedef int AT_surfxml_trace_file; +#define AU_surfxml_trace_file NULL +typedef int AT_surfxml_router_coordinates; +#define AU_surfxml_router_coordinates NULL +typedef int AT_surfxml_router_id; +#define AU_surfxml_router_id NULL typedef int AT_surfxml_link_bandwidth; #define AU_surfxml_link_bandwidth NULL -typedef int AT_surfxml_cluster_loopback___lat; -#define AU_surfxml_cluster_loopback___lat NULL -typedef int AT_surfxml_process_function; -#define AU_surfxml_process_function NULL -typedef int AT_surfxml_backbone_latency; -#define AU_surfxml_backbone_latency NULL -typedef enum { AU_surfxml_process_on___failure, A_surfxml_process_on___failure_DIE,A_surfxml_process_on___failure_RESTART } AT_surfxml_process_on___failure; -typedef int AT_surfxml_host_core; -#define AU_surfxml_host_core NULL -typedef enum { AU_surfxml_random_generator, A_surfxml_random_generator_DRAND48,A_surfxml_random_generator_RAND,A_surfxml_random_generator_RNGSTREAM,A_surfxml_random_generator_NONE } AT_surfxml_random_generator; -typedef int AT_surfxml_random_mean; -#define AU_surfxml_random_mean NULL -typedef int AT_surfxml_ASroute_gw___dst; -#define AU_surfxml_ASroute_gw___dst NULL -typedef int AT_surfxml_peer_availability___file; -#define AU_surfxml_peer_availability___file NULL -typedef int AT_surfxml_link_bandwidth___file; -#define AU_surfxml_link_bandwidth___file NULL -typedef enum { AU_surfxml_cluster_sharing___policy, A_surfxml_cluster_sharing___policy_SHARED,A_surfxml_cluster_sharing___policy_FULLDUPLEX,A_surfxml_cluster_sharing___policy_FATPIPE } AT_surfxml_cluster_sharing___policy; typedef int AT_surfxml_process_host; #define AU_surfxml_process_host NULL typedef int AT_surfxml_trace_periodicity; #define AU_surfxml_trace_periodicity NULL +typedef int AT_surfxml_storage___type_id; +#define AU_surfxml_storage___type_id NULL +typedef int AT_surfxml_cluster_bb___lat; +#define AU_surfxml_cluster_bb___lat NULL +typedef int AT_surfxml_trace___connect_trace; +#define AU_surfxml_trace___connect_trace NULL +typedef int AT_surfxml_random_radical; +#define AU_surfxml_random_radical NULL +typedef enum { AU_surfxml_trace___connect_kind, A_surfxml_trace___connect_kind_HOST___AVAIL,A_surfxml_trace___connect_kind_POWER,A_surfxml_trace___connect_kind_LINK___AVAIL,A_surfxml_trace___connect_kind_BANDWIDTH,A_surfxml_trace___connect_kind_LATENCY } AT_surfxml_trace___connect_kind; typedef int AT_surfxml_peer_lat; #define AU_surfxml_peer_lat NULL -typedef int AT_surfxml_peer_power; -#define AU_surfxml_peer_power NULL typedef int AT_surfxml_storage_attach; #define AU_surfxml_storage_attach NULL -typedef int AT_surfxml_router_coordinates; -#define AU_surfxml_router_coordinates NULL -typedef int AT_surfxml_cabinet_prefix; -#define AU_surfxml_cabinet_prefix NULL -typedef int AT_surfxml_cluster_bw; -#define AU_surfxml_cluster_bw NULL -typedef int AT_surfxml_storage___type_content; -#define AU_surfxml_storage___type_content NULL -typedef int AT_surfxml_mstorage_typeId; -#define AU_surfxml_mstorage_typeId NULL -typedef int AT_surfxml_model___prop_id; +typedef int AT_surfxml_host_core; +#define AU_surfxml_host_core NULL +typedef int AT_surfxml_model___prop_id; #define AU_surfxml_model___prop_id NULL -typedef int AT_surfxml_backbone_id; -#define AU_surfxml_backbone_id NULL -typedef int AT_surfxml_config_id; -#define AU_surfxml_config_id NULL +typedef int AT_surfxml_cabinet_radical; +#define AU_surfxml_cabinet_radical NULL +typedef int AT_surfxml_backbone_bandwidth; +#define AU_surfxml_backbone_bandwidth NULL typedef int AT_surfxml_cluster_lat; #define AU_surfxml_cluster_lat NULL -typedef int AT_surfxml_platform_version; -#define AU_surfxml_platform_version NULL +typedef int AT_surfxml_link_state___file; +#define AU_surfxml_link_state___file NULL +typedef int AT_surfxml_storage_typeId; +#define AU_surfxml_storage_typeId NULL +typedef int AT_surfxml_host_pstate; +#define AU_surfxml_host_pstate NULL +typedef int AT_surfxml_prop_id; +#define AU_surfxml_prop_id NULL +typedef int AT_surfxml_process_kill___time; +#define AU_surfxml_process_kill___time NULL +typedef int AT_surfxml_host_id; +#define AU_surfxml_host_id NULL typedef int AT_surfxml_trace___connect_element; #define AU_surfxml_trace___connect_element NULL -typedef int AT_surfxml_mount_storageId; -#define AU_surfxml_mount_storageId NULL -typedef int AT_surfxml_cluster_bb___bw; -#define AU_surfxml_cluster_bb___bw NULL +typedef int AT_surfxml_random_min; +#define AU_surfxml_random_min NULL +typedef int AT_surfxml_peer_power; +#define AU_surfxml_peer_power NULL +typedef int AT_surfxml_cluster_loopback___lat; +#define AU_surfxml_cluster_loopback___lat NULL +typedef int AT_surfxml_random_mean; +#define AU_surfxml_random_mean NULL +typedef enum { AU_surfxml_cluster_bb___sharing___policy, A_surfxml_cluster_bb___sharing___policy_SHARED,A_surfxml_cluster_bb___sharing___policy_FATPIPE } AT_surfxml_cluster_bb___sharing___policy; +typedef int AT_surfxml_cluster_prefix; +#define AU_surfxml_cluster_prefix NULL +typedef enum { AU_surfxml_process_on___failure, A_surfxml_process_on___failure_DIE,A_surfxml_process_on___failure_RESTART } AT_surfxml_process_on___failure; +typedef int AT_surfxml_backbone_latency; +#define AU_surfxml_backbone_latency NULL +typedef int AT_surfxml_argument_value; +#define AU_surfxml_argument_value NULL +typedef enum { AU_surfxml_link_sharing___policy, A_surfxml_link_sharing___policy_SHARED,A_surfxml_link_sharing___policy_FATPIPE,A_surfxml_link_sharing___policy_FULLDUPLEX } AT_surfxml_link_sharing___policy; +typedef int AT_surfxml_platform_version; +#define AU_surfxml_platform_version NULL typedef int AT_surfxml_ASroute_dst; #define AU_surfxml_ASroute_dst NULL -typedef int AT_surfxml_host_pstate; -#define AU_surfxml_host_pstate NULL -typedef int AT_surfxml_peer_id; -#define AU_surfxml_peer_id NULL +typedef int AT_surfxml_prop_value; +#define AU_surfxml_prop_value NULL typedef int AT_surfxml_ASroute_src; #define AU_surfxml_ASroute_src NULL -typedef int AT_surfxml_gpu_name; -#define AU_surfxml_gpu_name NULL -typedef int AT_surfxml_host_availability; -#define AU_surfxml_host_availability NULL -typedef int AT_surfxml_mstorage_name; -#define AU_surfxml_mstorage_name NULL -typedef int AT_surfxml_cabinet_id; -#define AU_surfxml_cabinet_id NULL -typedef int AT_surfxml_storage_typeId; -#define AU_surfxml_storage_typeId NULL -typedef int AT_surfxml_cluster_bb___lat; -#define AU_surfxml_cluster_bb___lat NULL -typedef int AT_surfxml_trace_file; -#define AU_surfxml_trace_file NULL -typedef int AT_surfxml_cluster_limiter___link; -#define AU_surfxml_cluster_limiter___link NULL -typedef int AT_surfxml_cluster_radical; -#define AU_surfxml_cluster_radical NULL -typedef int AT_surfxml_router_id; -#define AU_surfxml_router_id NULL -typedef int AT_surfxml_trace_id; -#define AU_surfxml_trace_id NULL -typedef enum { AU_surfxml_link_state, A_surfxml_link_state_ON,A_surfxml_link_state_OFF } AT_surfxml_link_state; -typedef int AT_surfxml_prop_id; -#define AU_surfxml_prop_id NULL +typedef int AT_surfxml_host___link_up; +#define AU_surfxml_host___link_up NULL +typedef int AT_surfxml_cabinet_power; +#define AU_surfxml_cabinet_power NULL +typedef int AT_surfxml_cluster_core; +#define AU_surfxml_cluster_core NULL +typedef int AT_surfxml_include_file; +#define AU_surfxml_include_file NULL +typedef int AT_surfxml_ASroute_gw___src; +#define AU_surfxml_ASroute_gw___src NULL +typedef enum { AU_surfxml_random_generator, A_surfxml_random_generator_DRAND48,A_surfxml_random_generator_RAND,A_surfxml_random_generator_RNGSTREAM,A_surfxml_random_generator_NONE } AT_surfxml_random_generator; +typedef int AT_surfxml_cabinet_lat; +#define AU_surfxml_cabinet_lat NULL +typedef int AT_surfxml_random_seed; +#define AU_surfxml_random_seed NULL +typedef int AT_surfxml_cluster_router___id; +#define AU_surfxml_cluster_router___id NULL typedef int AT_surfxml_host___link_down; #define AU_surfxml_host___link_down NULL -typedef int AT_surfxml_link_state___file; -#define AU_surfxml_link_state___file NULL +typedef int AT_surfxml_link_latency; +#define AU_surfxml_link_latency NULL +typedef int AT_surfxml_random_max; +#define AU_surfxml_random_max NULL +typedef int AT_surfxml_host_availability; +#define AU_surfxml_host_availability NULL +typedef int AT_surfxml_storage___type_size; +#define AU_surfxml_storage___type_size NULL typedef int AT_surfxml_cluster_topo___parameters; #define AU_surfxml_cluster_topo___parameters NULL -typedef int AT_surfxml_cluster_suffix; -#define AU_surfxml_cluster_suffix NULL /* FleXML-provided data. */ XBT_PUBLIC_DATA(int) surfxml_pcdata_ix; XBT_PUBLIC_DATA(char *) surfxml_bufferstack; #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix) -XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_dst) AX_surfxml_bypassASroute_dst; -#define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst) -XBT_PUBLIC_DATA(short int) surfxml_bypassASroute_dst_isset; -XBT_PUBLIC_DATA(AT_surfxml_link_latency___file) AX_surfxml_link_latency___file; -#define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file) -XBT_PUBLIC_DATA(short int) surfxml_link_latency___file_isset; -XBT_PUBLIC_DATA(AT_surfxml_prop_value) AX_surfxml_prop_value; -#define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value) -XBT_PUBLIC_DATA(short int) surfxml_prop_value_isset; +XBT_PUBLIC_DATA(AT_surfxml_mstorage_typeId) AX_surfxml_mstorage_typeId; +#define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId) +XBT_PUBLIC_DATA(short int) surfxml_mstorage_typeId_isset; +XBT_PUBLIC_DATA(AT_surfxml_peer_state___file) AX_surfxml_peer_state___file; +#define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file) +XBT_PUBLIC_DATA(short int) surfxml_peer_state___file_isset; +XBT_PUBLIC_DATA(AT_surfxml_cluster_limiter___link) AX_surfxml_cluster_limiter___link; +#define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link) +XBT_PUBLIC_DATA(short int) surfxml_cluster_limiter___link_isset; +XBT_PUBLIC_DATA(AT_surfxml_storage___type_content) AX_surfxml_storage___type_content; +#define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content) +XBT_PUBLIC_DATA(short int) surfxml_storage___type_content_isset; +XBT_PUBLIC_DATA(AT_surfxml_ASroute_symmetrical) AX_surfxml_ASroute_symmetrical; +#define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical +XBT_PUBLIC_DATA(short int) surfxml_ASroute_symmetrical_isset; +XBT_PUBLIC_DATA(AT_surfxml_storage_content___type) AX_surfxml_storage_content___type; +#define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type) +XBT_PUBLIC_DATA(short int) surfxml_storage_content___type_isset; XBT_PUBLIC_DATA(AT_surfxml_cluster_power) AX_surfxml_cluster_power; #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power) XBT_PUBLIC_DATA(short int) surfxml_cluster_power_isset; -XBT_PUBLIC_DATA(AT_surfxml_random_min) AX_surfxml_random_min; -#define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min) -XBT_PUBLIC_DATA(short int) surfxml_random_min_isset; -XBT_PUBLIC_DATA(AT_surfxml_host_availability___file) AX_surfxml_host_availability___file; -#define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file) -XBT_PUBLIC_DATA(short int) surfxml_host_availability___file_isset; -XBT_PUBLIC_DATA(AT_surfxml_link_sharing___policy) AX_surfxml_link_sharing___policy; -#define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy -XBT_PUBLIC_DATA(short int) surfxml_link_sharing___policy_isset; -XBT_PUBLIC_DATA(AT_surfxml_storage___type_model) AX_surfxml_storage___type_model; -#define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model) -XBT_PUBLIC_DATA(short int) surfxml_storage___type_model_isset; -XBT_PUBLIC_DATA(AT_surfxml_argument_value) AX_surfxml_argument_value; -#define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value) -XBT_PUBLIC_DATA(short int) surfxml_argument_value_isset; -XBT_PUBLIC_DATA(AT_surfxml_AS_id) AX_surfxml_AS_id; -#define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id) -XBT_PUBLIC_DATA(short int) surfxml_AS_id_isset; -XBT_PUBLIC_DATA(AT_surfxml_cluster_loopback___bw) AX_surfxml_cluster_loopback___bw; -#define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw) -XBT_PUBLIC_DATA(short int) surfxml_cluster_loopback___bw_isset; +XBT_PUBLIC_DATA(AT_surfxml_route_symmetrical) AX_surfxml_route_symmetrical; +#define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical +XBT_PUBLIC_DATA(short int) surfxml_route_symmetrical_isset; +XBT_PUBLIC_DATA(AT_surfxml_cabinet_id) AX_surfxml_cabinet_id; +#define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id) +XBT_PUBLIC_DATA(short int) surfxml_cabinet_id_isset; +XBT_PUBLIC_DATA(AT_surfxml_cluster_topology) AX_surfxml_cluster_topology; +#define A_surfxml_cluster_topology AX_surfxml_cluster_topology +XBT_PUBLIC_DATA(short int) surfxml_cluster_topology_isset; +XBT_PUBLIC_DATA(AT_surfxml_storage_content) AX_surfxml_storage_content; +#define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content) +XBT_PUBLIC_DATA(short int) surfxml_storage_content_isset; +XBT_PUBLIC_DATA(AT_surfxml_cluster_bw) AX_surfxml_cluster_bw; +#define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw) +XBT_PUBLIC_DATA(short int) surfxml_cluster_bw_isset; +XBT_PUBLIC_DATA(AT_surfxml_host_coordinates) AX_surfxml_host_coordinates; +#define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates) +XBT_PUBLIC_DATA(short int) surfxml_host_coordinates_isset; +XBT_PUBLIC_DATA(AT_surfxml_mount_storageId) AX_surfxml_mount_storageId; +#define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId) +XBT_PUBLIC_DATA(short int) surfxml_mount_storageId_isset; +XBT_PUBLIC_DATA(AT_surfxml_random_id) AX_surfxml_random_id; +#define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id) +XBT_PUBLIC_DATA(short int) surfxml_random_id_isset; XBT_PUBLIC_DATA(AT_surfxml_mount_name) AX_surfxml_mount_name; #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name) XBT_PUBLIC_DATA(short int) surfxml_mount_name_isset; -XBT_PUBLIC_DATA(AT_surfxml_cluster_router___id) AX_surfxml_cluster_router___id; -#define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id) -XBT_PUBLIC_DATA(short int) surfxml_cluster_router___id_isset; -XBT_PUBLIC_DATA(AT_surfxml_cluster_id) AX_surfxml_cluster_id; -#define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id) -XBT_PUBLIC_DATA(short int) surfxml_cluster_id_isset; -XBT_PUBLIC_DATA(AT_surfxml_cluster_bb___sharing___policy) AX_surfxml_cluster_bb___sharing___policy; -#define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy -XBT_PUBLIC_DATA(short int) surfxml_cluster_bb___sharing___policy_isset; -XBT_PUBLIC_DATA(AT_surfxml_peer_bw___out) AX_surfxml_peer_bw___out; -#define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out) -XBT_PUBLIC_DATA(short int) surfxml_peer_bw___out_isset; -XBT_PUBLIC_DATA(AT_surfxml_cluster_core) AX_surfxml_cluster_core; -#define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core) -XBT_PUBLIC_DATA(short int) surfxml_cluster_core_isset; +XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_dst) AX_surfxml_bypassASroute_dst; +#define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst) +XBT_PUBLIC_DATA(short int) surfxml_bypassASroute_dst_isset; +XBT_PUBLIC_DATA(AT_surfxml_config_id) AX_surfxml_config_id; +#define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id) +XBT_PUBLIC_DATA(short int) surfxml_config_id_isset; +XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_gw___src) AX_surfxml_bypassASroute_gw___src; +#define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src) +XBT_PUBLIC_DATA(short int) surfxml_bypassASroute_gw___src_isset; +XBT_PUBLIC_DATA(AT_surfxml_link___ctn_id) AX_surfxml_link___ctn_id; +#define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id) +XBT_PUBLIC_DATA(short int) surfxml_link___ctn_id_isset; +XBT_PUBLIC_DATA(AT_surfxml_mstorage_name) AX_surfxml_mstorage_name; +#define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name) +XBT_PUBLIC_DATA(short int) surfxml_mstorage_name_isset; XBT_PUBLIC_DATA(AT_surfxml_random_std___deviation) AX_surfxml_random_std___deviation; #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation) XBT_PUBLIC_DATA(short int) surfxml_random_std___deviation_isset; +XBT_PUBLIC_DATA(AT_surfxml_cluster_bb___bw) AX_surfxml_cluster_bb___bw; +#define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw) +XBT_PUBLIC_DATA(short int) surfxml_cluster_bb___bw_isset; +XBT_PUBLIC_DATA(AT_surfxml_gpu_name) AX_surfxml_gpu_name; +#define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name) +XBT_PUBLIC_DATA(short int) surfxml_gpu_name_isset; +XBT_PUBLIC_DATA(AT_surfxml_cluster_loopback___bw) AX_surfxml_cluster_loopback___bw; +#define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw) +XBT_PUBLIC_DATA(short int) surfxml_cluster_loopback___bw_isset; +XBT_PUBLIC_DATA(AT_surfxml_model___prop_value) AX_surfxml_model___prop_value; +#define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value) +XBT_PUBLIC_DATA(short int) surfxml_model___prop_value_isset; +XBT_PUBLIC_DATA(AT_surfxml_cluster_radical) AX_surfxml_cluster_radical; +#define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical) +XBT_PUBLIC_DATA(short int) surfxml_cluster_radical_isset; +XBT_PUBLIC_DATA(AT_surfxml_cabinet_bw) AX_surfxml_cabinet_bw; +#define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw) +XBT_PUBLIC_DATA(short int) surfxml_cabinet_bw_isset; +XBT_PUBLIC_DATA(AT_surfxml_host_availability___file) AX_surfxml_host_availability___file; +#define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file) +XBT_PUBLIC_DATA(short int) surfxml_host_availability___file_isset; +XBT_PUBLIC_DATA(AT_surfxml_process_function) AX_surfxml_process_function; +#define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function) +XBT_PUBLIC_DATA(short int) surfxml_process_function_isset; +XBT_PUBLIC_DATA(AT_surfxml_cabinet_suffix) AX_surfxml_cabinet_suffix; +#define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix) +XBT_PUBLIC_DATA(short int) surfxml_cabinet_suffix_isset; +XBT_PUBLIC_DATA(AT_surfxml_ASroute_gw___dst) AX_surfxml_ASroute_gw___dst; +#define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst) +XBT_PUBLIC_DATA(short int) surfxml_ASroute_gw___dst_isset; XBT_PUBLIC_DATA(AT_surfxml_bypassRoute_src) AX_surfxml_bypassRoute_src; #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src) XBT_PUBLIC_DATA(short int) surfxml_bypassRoute_src_isset; -XBT_PUBLIC_DATA(AT_surfxml_backbone_bandwidth) AX_surfxml_backbone_bandwidth; -#define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth) -XBT_PUBLIC_DATA(short int) surfxml_backbone_bandwidth_isset; -XBT_PUBLIC_DATA(AT_surfxml_cabinet_radical) AX_surfxml_cabinet_radical; -#define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical) -XBT_PUBLIC_DATA(short int) surfxml_cabinet_radical_isset; -XBT_PUBLIC_DATA(AT_surfxml_storage_content) AX_surfxml_storage_content; -#define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content) -XBT_PUBLIC_DATA(short int) surfxml_storage_content_isset; +XBT_PUBLIC_DATA(AT_surfxml_trace_id) AX_surfxml_trace_id; +#define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id) +XBT_PUBLIC_DATA(short int) surfxml_trace_id_isset; +XBT_PUBLIC_DATA(AT_surfxml_link_latency___file) AX_surfxml_link_latency___file; +#define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file) +XBT_PUBLIC_DATA(short int) surfxml_link_latency___file_isset; XBT_PUBLIC_DATA(AT_surfxml_link_id) AX_surfxml_link_id; #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id) XBT_PUBLIC_DATA(short int) surfxml_link_id_isset; -XBT_PUBLIC_DATA(AT_surfxml_host___link_id) AX_surfxml_host___link_id; -#define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id) -XBT_PUBLIC_DATA(short int) surfxml_host___link_id_isset; -XBT_PUBLIC_DATA(AT_surfxml_include_file) AX_surfxml_include_file; -#define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file) -XBT_PUBLIC_DATA(short int) surfxml_include_file_isset; -XBT_PUBLIC_DATA(AT_surfxml_storage_content___type) AX_surfxml_storage_content___type; -#define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type) -XBT_PUBLIC_DATA(short int) surfxml_storage_content___type_isset; -XBT_PUBLIC_DATA(AT_surfxml_process_kill___time) AX_surfxml_process_kill___time; -#define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time) -XBT_PUBLIC_DATA(short int) surfxml_process_kill___time_isset; -XBT_PUBLIC_DATA(AT_surfxml_peer_state___file) AX_surfxml_peer_state___file; -#define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file) -XBT_PUBLIC_DATA(short int) surfxml_peer_state___file_isset; -XBT_PUBLIC_DATA(AT_surfxml_link___ctn_direction) AX_surfxml_link___ctn_direction; -#define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction -XBT_PUBLIC_DATA(short int) surfxml_link___ctn_direction_isset; -XBT_PUBLIC_DATA(AT_surfxml_host___link_up) AX_surfxml_host___link_up; -#define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up) -XBT_PUBLIC_DATA(short int) surfxml_host___link_up_isset; -XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_gw___dst) AX_surfxml_bypassASroute_gw___dst; -#define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst) -XBT_PUBLIC_DATA(short int) surfxml_bypassASroute_gw___dst_isset; -XBT_PUBLIC_DATA(AT_surfxml_AS_routing) AX_surfxml_AS_routing; -#define A_surfxml_AS_routing AX_surfxml_AS_routing -XBT_PUBLIC_DATA(short int) surfxml_AS_routing_isset; +XBT_PUBLIC_DATA(AT_surfxml_process_start___time) AX_surfxml_process_start___time; +#define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time) +XBT_PUBLIC_DATA(short int) surfxml_process_start___time_isset; +XBT_PUBLIC_DATA(AT_surfxml_host_state) AX_surfxml_host_state; +#define A_surfxml_host_state AX_surfxml_host_state +XBT_PUBLIC_DATA(short int) surfxml_host_state_isset; +XBT_PUBLIC_DATA(AT_surfxml_link_bandwidth___file) AX_surfxml_link_bandwidth___file; +#define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file) +XBT_PUBLIC_DATA(short int) surfxml_link_bandwidth___file_isset; +XBT_PUBLIC_DATA(AT_surfxml_cluster_sharing___policy) AX_surfxml_cluster_sharing___policy; +#define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy +XBT_PUBLIC_DATA(short int) surfxml_cluster_sharing___policy_isset; +XBT_PUBLIC_DATA(AT_surfxml_host_state___file) AX_surfxml_host_state___file; +#define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file) +XBT_PUBLIC_DATA(short int) surfxml_host_state___file_isset; +XBT_PUBLIC_DATA(AT_surfxml_AS_id) AX_surfxml_AS_id; +#define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id) +XBT_PUBLIC_DATA(short int) surfxml_AS_id_isset; +XBT_PUBLIC_DATA(AT_surfxml_cluster_suffix) AX_surfxml_cluster_suffix; +#define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix) +XBT_PUBLIC_DATA(short int) surfxml_cluster_suffix_isset; +XBT_PUBLIC_DATA(AT_surfxml_peer_availability___file) AX_surfxml_peer_availability___file; +#define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file) +XBT_PUBLIC_DATA(short int) surfxml_peer_availability___file_isset; +XBT_PUBLIC_DATA(AT_surfxml_peer_bw___out) AX_surfxml_peer_bw___out; +#define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out) +XBT_PUBLIC_DATA(short int) surfxml_peer_bw___out_isset; +XBT_PUBLIC_DATA(AT_surfxml_cluster_id) AX_surfxml_cluster_id; +#define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id) +XBT_PUBLIC_DATA(short int) surfxml_cluster_id_isset; XBT_PUBLIC_DATA(AT_surfxml_bypassRoute_dst) AX_surfxml_bypassRoute_dst; #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst) XBT_PUBLIC_DATA(short int) surfxml_bypassRoute_dst_isset; -XBT_PUBLIC_DATA(AT_surfxml_cluster_topology) AX_surfxml_cluster_topology; -#define A_surfxml_cluster_topology AX_surfxml_cluster_topology -XBT_PUBLIC_DATA(short int) surfxml_cluster_topology_isset; -XBT_PUBLIC_DATA(AT_surfxml_link_latency) AX_surfxml_link_latency; -#define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency) -XBT_PUBLIC_DATA(short int) surfxml_link_latency_isset; +XBT_PUBLIC_DATA(AT_surfxml_cabinet_prefix) AX_surfxml_cabinet_prefix; +#define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix) +XBT_PUBLIC_DATA(short int) surfxml_cabinet_prefix_isset; XBT_PUBLIC_DATA(AT_surfxml_route_src) AX_surfxml_route_src; #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src) XBT_PUBLIC_DATA(short int) surfxml_route_src_isset; -XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_src) AX_surfxml_bypassASroute_src; -#define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src) -XBT_PUBLIC_DATA(short int) surfxml_bypassASroute_src_isset; -XBT_PUBLIC_DATA(AT_surfxml_peer_bw___in) AX_surfxml_peer_bw___in; -#define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in) -XBT_PUBLIC_DATA(short int) surfxml_peer_bw___in_isset; -XBT_PUBLIC_DATA(AT_surfxml_trace___connect_kind) AX_surfxml_trace___connect_kind; -#define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind -XBT_PUBLIC_DATA(short int) surfxml_trace___connect_kind_isset; -XBT_PUBLIC_DATA(AT_surfxml_cluster_prefix) AX_surfxml_cluster_prefix; -#define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix) -XBT_PUBLIC_DATA(short int) surfxml_cluster_prefix_isset; -XBT_PUBLIC_DATA(AT_surfxml_host_state) AX_surfxml_host_state; -#define A_surfxml_host_state AX_surfxml_host_state -XBT_PUBLIC_DATA(short int) surfxml_host_state_isset; -XBT_PUBLIC_DATA(AT_surfxml_cabinet_power) AX_surfxml_cabinet_power; -#define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power) -XBT_PUBLIC_DATA(short int) surfxml_cabinet_power_isset; -XBT_PUBLIC_DATA(AT_surfxml_model___prop_value) AX_surfxml_model___prop_value; -#define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value) -XBT_PUBLIC_DATA(short int) surfxml_model___prop_value_isset; -XBT_PUBLIC_DATA(AT_surfxml_route_dst) AX_surfxml_route_dst; -#define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst) -XBT_PUBLIC_DATA(short int) surfxml_route_dst_isset; -XBT_PUBLIC_DATA(AT_surfxml_storage___type_size) AX_surfxml_storage___type_size; -#define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size) -XBT_PUBLIC_DATA(short int) surfxml_storage___type_size_isset; -XBT_PUBLIC_DATA(AT_surfxml_host_id) AX_surfxml_host_id; -#define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id) -XBT_PUBLIC_DATA(short int) surfxml_host_id_isset; -XBT_PUBLIC_DATA(AT_surfxml_ASroute_gw___src) AX_surfxml_ASroute_gw___src; -#define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src) -XBT_PUBLIC_DATA(short int) surfxml_ASroute_gw___src_isset; +XBT_PUBLIC_DATA(AT_surfxml_host___link_id) AX_surfxml_host___link_id; +#define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id) +XBT_PUBLIC_DATA(short int) surfxml_host___link_id_isset; XBT_PUBLIC_DATA(AT_surfxml_peer_coordinates) AX_surfxml_peer_coordinates; #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates) XBT_PUBLIC_DATA(short int) surfxml_peer_coordinates_isset; -XBT_PUBLIC_DATA(AT_surfxml_cabinet_bw) AX_surfxml_cabinet_bw; -#define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw) -XBT_PUBLIC_DATA(short int) surfxml_cabinet_bw_isset; -XBT_PUBLIC_DATA(AT_surfxml_cluster_availability___file) AX_surfxml_cluster_availability___file; -#define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file) -XBT_PUBLIC_DATA(short int) surfxml_cluster_availability___file_isset; -XBT_PUBLIC_DATA(AT_surfxml_host_coordinates) AX_surfxml_host_coordinates; -#define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates) -XBT_PUBLIC_DATA(short int) surfxml_host_coordinates_isset; -XBT_PUBLIC_DATA(AT_surfxml_random_max) AX_surfxml_random_max; -#define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max) -XBT_PUBLIC_DATA(short int) surfxml_random_max_isset; -XBT_PUBLIC_DATA(AT_surfxml_trace___connect_trace) AX_surfxml_trace___connect_trace; -#define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace) -XBT_PUBLIC_DATA(short int) surfxml_trace___connect_trace_isset; +XBT_PUBLIC_DATA(AT_surfxml_AS_routing) AX_surfxml_AS_routing; +#define A_surfxml_AS_routing AX_surfxml_AS_routing +XBT_PUBLIC_DATA(short int) surfxml_AS_routing_isset; +XBT_PUBLIC_DATA(AT_surfxml_host_power) AX_surfxml_host_power; +#define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power) +XBT_PUBLIC_DATA(short int) surfxml_host_power_isset; XBT_PUBLIC_DATA(AT_surfxml_storage_id) AX_surfxml_storage_id; #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id) XBT_PUBLIC_DATA(short int) surfxml_storage_id_isset; -XBT_PUBLIC_DATA(AT_surfxml_ASroute_symmetrical) AX_surfxml_ASroute_symmetrical; -#define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical -XBT_PUBLIC_DATA(short int) surfxml_ASroute_symmetrical_isset; -XBT_PUBLIC_DATA(AT_surfxml_random_seed) AX_surfxml_random_seed; -#define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed) -XBT_PUBLIC_DATA(short int) surfxml_random_seed_isset; -XBT_PUBLIC_DATA(AT_surfxml_process_start___time) AX_surfxml_process_start___time; -#define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time) -XBT_PUBLIC_DATA(short int) surfxml_process_start___time_isset; XBT_PUBLIC_DATA(AT_surfxml_cluster_state___file) AX_surfxml_cluster_state___file; #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file) XBT_PUBLIC_DATA(short int) surfxml_cluster_state___file_isset; -XBT_PUBLIC_DATA(AT_surfxml_host_power) AX_surfxml_host_power; -#define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power) -XBT_PUBLIC_DATA(short int) surfxml_host_power_isset; -XBT_PUBLIC_DATA(AT_surfxml_random_radical) AX_surfxml_random_radical; -#define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical) -XBT_PUBLIC_DATA(short int) surfxml_random_radical_isset; -XBT_PUBLIC_DATA(AT_surfxml_storage___type_id) AX_surfxml_storage___type_id; -#define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id) -XBT_PUBLIC_DATA(short int) surfxml_storage___type_id_isset; -XBT_PUBLIC_DATA(AT_surfxml_random_id) AX_surfxml_random_id; -#define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id) -XBT_PUBLIC_DATA(short int) surfxml_random_id_isset; -XBT_PUBLIC_DATA(AT_surfxml_cabinet_suffix) AX_surfxml_cabinet_suffix; -#define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix) -XBT_PUBLIC_DATA(short int) surfxml_cabinet_suffix_isset; -XBT_PUBLIC_DATA(AT_surfxml_route_symmetrical) AX_surfxml_route_symmetrical; -#define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical -XBT_PUBLIC_DATA(short int) surfxml_route_symmetrical_isset; -XBT_PUBLIC_DATA(AT_surfxml_cabinet_lat) AX_surfxml_cabinet_lat; -#define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat) -XBT_PUBLIC_DATA(short int) surfxml_cabinet_lat_isset; -XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_gw___src) AX_surfxml_bypassASroute_gw___src; -#define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src) -XBT_PUBLIC_DATA(short int) surfxml_bypassASroute_gw___src_isset; +XBT_PUBLIC_DATA(AT_surfxml_peer_id) AX_surfxml_peer_id; +#define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id) +XBT_PUBLIC_DATA(short int) surfxml_peer_id_isset; +XBT_PUBLIC_DATA(AT_surfxml_cluster_availability___file) AX_surfxml_cluster_availability___file; +#define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file) +XBT_PUBLIC_DATA(short int) surfxml_cluster_availability___file_isset; XBT_PUBLIC_DATA(AT_surfxml_storage___type_content___type) AX_surfxml_storage___type_content___type; #define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type) XBT_PUBLIC_DATA(short int) surfxml_storage___type_content___type_isset; -XBT_PUBLIC_DATA(AT_surfxml_link___ctn_id) AX_surfxml_link___ctn_id; -#define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id) -XBT_PUBLIC_DATA(short int) surfxml_link___ctn_id_isset; -XBT_PUBLIC_DATA(AT_surfxml_host_state___file) AX_surfxml_host_state___file; -#define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file) -XBT_PUBLIC_DATA(short int) surfxml_host_state___file_isset; +XBT_PUBLIC_DATA(AT_surfxml_link_state) AX_surfxml_link_state; +#define A_surfxml_link_state AX_surfxml_link_state +XBT_PUBLIC_DATA(short int) surfxml_link_state_isset; +XBT_PUBLIC_DATA(AT_surfxml_route_dst) AX_surfxml_route_dst; +#define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst) +XBT_PUBLIC_DATA(short int) surfxml_route_dst_isset; +XBT_PUBLIC_DATA(AT_surfxml_storage___type_model) AX_surfxml_storage___type_model; +#define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model) +XBT_PUBLIC_DATA(short int) surfxml_storage___type_model_isset; +XBT_PUBLIC_DATA(AT_surfxml_peer_bw___in) AX_surfxml_peer_bw___in; +#define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in) +XBT_PUBLIC_DATA(short int) surfxml_peer_bw___in_isset; +XBT_PUBLIC_DATA(AT_surfxml_backbone_id) AX_surfxml_backbone_id; +#define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id) +XBT_PUBLIC_DATA(short int) surfxml_backbone_id_isset; +XBT_PUBLIC_DATA(AT_surfxml_link___ctn_direction) AX_surfxml_link___ctn_direction; +#define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction +XBT_PUBLIC_DATA(short int) surfxml_link___ctn_direction_isset; +XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_gw___dst) AX_surfxml_bypassASroute_gw___dst; +#define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst) +XBT_PUBLIC_DATA(short int) surfxml_bypassASroute_gw___dst_isset; +XBT_PUBLIC_DATA(AT_surfxml_bypassASroute_src) AX_surfxml_bypassASroute_src; +#define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src) +XBT_PUBLIC_DATA(short int) surfxml_bypassASroute_src_isset; +XBT_PUBLIC_DATA(AT_surfxml_trace_file) AX_surfxml_trace_file; +#define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file) +XBT_PUBLIC_DATA(short int) surfxml_trace_file_isset; +XBT_PUBLIC_DATA(AT_surfxml_router_coordinates) AX_surfxml_router_coordinates; +#define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates) +XBT_PUBLIC_DATA(short int) surfxml_router_coordinates_isset; +XBT_PUBLIC_DATA(AT_surfxml_router_id) AX_surfxml_router_id; +#define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id) +XBT_PUBLIC_DATA(short int) surfxml_router_id_isset; XBT_PUBLIC_DATA(AT_surfxml_link_bandwidth) AX_surfxml_link_bandwidth; #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth) XBT_PUBLIC_DATA(short int) surfxml_link_bandwidth_isset; -XBT_PUBLIC_DATA(AT_surfxml_cluster_loopback___lat) AX_surfxml_cluster_loopback___lat; -#define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat) -XBT_PUBLIC_DATA(short int) surfxml_cluster_loopback___lat_isset; -XBT_PUBLIC_DATA(AT_surfxml_process_function) AX_surfxml_process_function; -#define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function) -XBT_PUBLIC_DATA(short int) surfxml_process_function_isset; -XBT_PUBLIC_DATA(AT_surfxml_backbone_latency) AX_surfxml_backbone_latency; -#define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency) -XBT_PUBLIC_DATA(short int) surfxml_backbone_latency_isset; -XBT_PUBLIC_DATA(AT_surfxml_process_on___failure) AX_surfxml_process_on___failure; -#define A_surfxml_process_on___failure AX_surfxml_process_on___failure -XBT_PUBLIC_DATA(short int) surfxml_process_on___failure_isset; -XBT_PUBLIC_DATA(AT_surfxml_host_core) AX_surfxml_host_core; -#define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core) -XBT_PUBLIC_DATA(short int) surfxml_host_core_isset; -XBT_PUBLIC_DATA(AT_surfxml_random_generator) AX_surfxml_random_generator; -#define A_surfxml_random_generator AX_surfxml_random_generator -XBT_PUBLIC_DATA(short int) surfxml_random_generator_isset; -XBT_PUBLIC_DATA(AT_surfxml_random_mean) AX_surfxml_random_mean; -#define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean) -XBT_PUBLIC_DATA(short int) surfxml_random_mean_isset; -XBT_PUBLIC_DATA(AT_surfxml_ASroute_gw___dst) AX_surfxml_ASroute_gw___dst; -#define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst) -XBT_PUBLIC_DATA(short int) surfxml_ASroute_gw___dst_isset; -XBT_PUBLIC_DATA(AT_surfxml_peer_availability___file) AX_surfxml_peer_availability___file; -#define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file) -XBT_PUBLIC_DATA(short int) surfxml_peer_availability___file_isset; -XBT_PUBLIC_DATA(AT_surfxml_link_bandwidth___file) AX_surfxml_link_bandwidth___file; -#define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file) -XBT_PUBLIC_DATA(short int) surfxml_link_bandwidth___file_isset; -XBT_PUBLIC_DATA(AT_surfxml_cluster_sharing___policy) AX_surfxml_cluster_sharing___policy; -#define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy -XBT_PUBLIC_DATA(short int) surfxml_cluster_sharing___policy_isset; XBT_PUBLIC_DATA(AT_surfxml_process_host) AX_surfxml_process_host; #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host) XBT_PUBLIC_DATA(short int) surfxml_process_host_isset; XBT_PUBLIC_DATA(AT_surfxml_trace_periodicity) AX_surfxml_trace_periodicity; #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity) XBT_PUBLIC_DATA(short int) surfxml_trace_periodicity_isset; +XBT_PUBLIC_DATA(AT_surfxml_storage___type_id) AX_surfxml_storage___type_id; +#define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id) +XBT_PUBLIC_DATA(short int) surfxml_storage___type_id_isset; +XBT_PUBLIC_DATA(AT_surfxml_cluster_bb___lat) AX_surfxml_cluster_bb___lat; +#define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat) +XBT_PUBLIC_DATA(short int) surfxml_cluster_bb___lat_isset; +XBT_PUBLIC_DATA(AT_surfxml_trace___connect_trace) AX_surfxml_trace___connect_trace; +#define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace) +XBT_PUBLIC_DATA(short int) surfxml_trace___connect_trace_isset; +XBT_PUBLIC_DATA(AT_surfxml_random_radical) AX_surfxml_random_radical; +#define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical) +XBT_PUBLIC_DATA(short int) surfxml_random_radical_isset; +XBT_PUBLIC_DATA(AT_surfxml_trace___connect_kind) AX_surfxml_trace___connect_kind; +#define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind +XBT_PUBLIC_DATA(short int) surfxml_trace___connect_kind_isset; XBT_PUBLIC_DATA(AT_surfxml_peer_lat) AX_surfxml_peer_lat; #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat) XBT_PUBLIC_DATA(short int) surfxml_peer_lat_isset; -XBT_PUBLIC_DATA(AT_surfxml_peer_power) AX_surfxml_peer_power; -#define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power) -XBT_PUBLIC_DATA(short int) surfxml_peer_power_isset; XBT_PUBLIC_DATA(AT_surfxml_storage_attach) AX_surfxml_storage_attach; #define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach) XBT_PUBLIC_DATA(short int) surfxml_storage_attach_isset; -XBT_PUBLIC_DATA(AT_surfxml_router_coordinates) AX_surfxml_router_coordinates; -#define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates) -XBT_PUBLIC_DATA(short int) surfxml_router_coordinates_isset; -XBT_PUBLIC_DATA(AT_surfxml_cabinet_prefix) AX_surfxml_cabinet_prefix; -#define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix) -XBT_PUBLIC_DATA(short int) surfxml_cabinet_prefix_isset; -XBT_PUBLIC_DATA(AT_surfxml_cluster_bw) AX_surfxml_cluster_bw; -#define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw) -XBT_PUBLIC_DATA(short int) surfxml_cluster_bw_isset; -XBT_PUBLIC_DATA(AT_surfxml_storage___type_content) AX_surfxml_storage___type_content; -#define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content) -XBT_PUBLIC_DATA(short int) surfxml_storage___type_content_isset; -XBT_PUBLIC_DATA(AT_surfxml_mstorage_typeId) AX_surfxml_mstorage_typeId; -#define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId) -XBT_PUBLIC_DATA(short int) surfxml_mstorage_typeId_isset; +XBT_PUBLIC_DATA(AT_surfxml_host_core) AX_surfxml_host_core; +#define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core) +XBT_PUBLIC_DATA(short int) surfxml_host_core_isset; XBT_PUBLIC_DATA(AT_surfxml_model___prop_id) AX_surfxml_model___prop_id; #define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id) XBT_PUBLIC_DATA(short int) surfxml_model___prop_id_isset; -XBT_PUBLIC_DATA(AT_surfxml_backbone_id) AX_surfxml_backbone_id; -#define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id) -XBT_PUBLIC_DATA(short int) surfxml_backbone_id_isset; -XBT_PUBLIC_DATA(AT_surfxml_config_id) AX_surfxml_config_id; -#define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id) -XBT_PUBLIC_DATA(short int) surfxml_config_id_isset; +XBT_PUBLIC_DATA(AT_surfxml_cabinet_radical) AX_surfxml_cabinet_radical; +#define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical) +XBT_PUBLIC_DATA(short int) surfxml_cabinet_radical_isset; +XBT_PUBLIC_DATA(AT_surfxml_backbone_bandwidth) AX_surfxml_backbone_bandwidth; +#define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth) +XBT_PUBLIC_DATA(short int) surfxml_backbone_bandwidth_isset; XBT_PUBLIC_DATA(AT_surfxml_cluster_lat) AX_surfxml_cluster_lat; #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat) XBT_PUBLIC_DATA(short int) surfxml_cluster_lat_isset; -XBT_PUBLIC_DATA(AT_surfxml_platform_version) AX_surfxml_platform_version; -#define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version) -XBT_PUBLIC_DATA(short int) surfxml_platform_version_isset; +XBT_PUBLIC_DATA(AT_surfxml_link_state___file) AX_surfxml_link_state___file; +#define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file) +XBT_PUBLIC_DATA(short int) surfxml_link_state___file_isset; +XBT_PUBLIC_DATA(AT_surfxml_storage_typeId) AX_surfxml_storage_typeId; +#define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId) +XBT_PUBLIC_DATA(short int) surfxml_storage_typeId_isset; +XBT_PUBLIC_DATA(AT_surfxml_host_pstate) AX_surfxml_host_pstate; +#define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate) +XBT_PUBLIC_DATA(short int) surfxml_host_pstate_isset; +XBT_PUBLIC_DATA(AT_surfxml_prop_id) AX_surfxml_prop_id; +#define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id) +XBT_PUBLIC_DATA(short int) surfxml_prop_id_isset; +XBT_PUBLIC_DATA(AT_surfxml_process_kill___time) AX_surfxml_process_kill___time; +#define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time) +XBT_PUBLIC_DATA(short int) surfxml_process_kill___time_isset; +XBT_PUBLIC_DATA(AT_surfxml_host_id) AX_surfxml_host_id; +#define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id) +XBT_PUBLIC_DATA(short int) surfxml_host_id_isset; XBT_PUBLIC_DATA(AT_surfxml_trace___connect_element) AX_surfxml_trace___connect_element; #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element) XBT_PUBLIC_DATA(short int) surfxml_trace___connect_element_isset; -XBT_PUBLIC_DATA(AT_surfxml_mount_storageId) AX_surfxml_mount_storageId; -#define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId) -XBT_PUBLIC_DATA(short int) surfxml_mount_storageId_isset; -XBT_PUBLIC_DATA(AT_surfxml_cluster_bb___bw) AX_surfxml_cluster_bb___bw; -#define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw) -XBT_PUBLIC_DATA(short int) surfxml_cluster_bb___bw_isset; +XBT_PUBLIC_DATA(AT_surfxml_random_min) AX_surfxml_random_min; +#define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min) +XBT_PUBLIC_DATA(short int) surfxml_random_min_isset; +XBT_PUBLIC_DATA(AT_surfxml_peer_power) AX_surfxml_peer_power; +#define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power) +XBT_PUBLIC_DATA(short int) surfxml_peer_power_isset; +XBT_PUBLIC_DATA(AT_surfxml_cluster_loopback___lat) AX_surfxml_cluster_loopback___lat; +#define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat) +XBT_PUBLIC_DATA(short int) surfxml_cluster_loopback___lat_isset; +XBT_PUBLIC_DATA(AT_surfxml_random_mean) AX_surfxml_random_mean; +#define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean) +XBT_PUBLIC_DATA(short int) surfxml_random_mean_isset; +XBT_PUBLIC_DATA(AT_surfxml_cluster_bb___sharing___policy) AX_surfxml_cluster_bb___sharing___policy; +#define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy +XBT_PUBLIC_DATA(short int) surfxml_cluster_bb___sharing___policy_isset; +XBT_PUBLIC_DATA(AT_surfxml_cluster_prefix) AX_surfxml_cluster_prefix; +#define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix) +XBT_PUBLIC_DATA(short int) surfxml_cluster_prefix_isset; +XBT_PUBLIC_DATA(AT_surfxml_process_on___failure) AX_surfxml_process_on___failure; +#define A_surfxml_process_on___failure AX_surfxml_process_on___failure +XBT_PUBLIC_DATA(short int) surfxml_process_on___failure_isset; +XBT_PUBLIC_DATA(AT_surfxml_backbone_latency) AX_surfxml_backbone_latency; +#define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency) +XBT_PUBLIC_DATA(short int) surfxml_backbone_latency_isset; +XBT_PUBLIC_DATA(AT_surfxml_argument_value) AX_surfxml_argument_value; +#define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value) +XBT_PUBLIC_DATA(short int) surfxml_argument_value_isset; +XBT_PUBLIC_DATA(AT_surfxml_link_sharing___policy) AX_surfxml_link_sharing___policy; +#define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy +XBT_PUBLIC_DATA(short int) surfxml_link_sharing___policy_isset; +XBT_PUBLIC_DATA(AT_surfxml_platform_version) AX_surfxml_platform_version; +#define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version) +XBT_PUBLIC_DATA(short int) surfxml_platform_version_isset; XBT_PUBLIC_DATA(AT_surfxml_ASroute_dst) AX_surfxml_ASroute_dst; #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst) XBT_PUBLIC_DATA(short int) surfxml_ASroute_dst_isset; -XBT_PUBLIC_DATA(AT_surfxml_host_pstate) AX_surfxml_host_pstate; -#define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate) -XBT_PUBLIC_DATA(short int) surfxml_host_pstate_isset; -XBT_PUBLIC_DATA(AT_surfxml_peer_id) AX_surfxml_peer_id; -#define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id) -XBT_PUBLIC_DATA(short int) surfxml_peer_id_isset; +XBT_PUBLIC_DATA(AT_surfxml_prop_value) AX_surfxml_prop_value; +#define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value) +XBT_PUBLIC_DATA(short int) surfxml_prop_value_isset; XBT_PUBLIC_DATA(AT_surfxml_ASroute_src) AX_surfxml_ASroute_src; #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src) XBT_PUBLIC_DATA(short int) surfxml_ASroute_src_isset; -XBT_PUBLIC_DATA(AT_surfxml_gpu_name) AX_surfxml_gpu_name; -#define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name) -XBT_PUBLIC_DATA(short int) surfxml_gpu_name_isset; -XBT_PUBLIC_DATA(AT_surfxml_host_availability) AX_surfxml_host_availability; -#define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability) -XBT_PUBLIC_DATA(short int) surfxml_host_availability_isset; -XBT_PUBLIC_DATA(AT_surfxml_mstorage_name) AX_surfxml_mstorage_name; -#define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name) -XBT_PUBLIC_DATA(short int) surfxml_mstorage_name_isset; -XBT_PUBLIC_DATA(AT_surfxml_cabinet_id) AX_surfxml_cabinet_id; -#define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id) -XBT_PUBLIC_DATA(short int) surfxml_cabinet_id_isset; -XBT_PUBLIC_DATA(AT_surfxml_storage_typeId) AX_surfxml_storage_typeId; -#define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId) -XBT_PUBLIC_DATA(short int) surfxml_storage_typeId_isset; -XBT_PUBLIC_DATA(AT_surfxml_cluster_bb___lat) AX_surfxml_cluster_bb___lat; -#define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat) -XBT_PUBLIC_DATA(short int) surfxml_cluster_bb___lat_isset; -XBT_PUBLIC_DATA(AT_surfxml_trace_file) AX_surfxml_trace_file; -#define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file) -XBT_PUBLIC_DATA(short int) surfxml_trace_file_isset; -XBT_PUBLIC_DATA(AT_surfxml_cluster_limiter___link) AX_surfxml_cluster_limiter___link; -#define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link) -XBT_PUBLIC_DATA(short int) surfxml_cluster_limiter___link_isset; -XBT_PUBLIC_DATA(AT_surfxml_cluster_radical) AX_surfxml_cluster_radical; -#define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical) -XBT_PUBLIC_DATA(short int) surfxml_cluster_radical_isset; -XBT_PUBLIC_DATA(AT_surfxml_router_id) AX_surfxml_router_id; -#define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id) -XBT_PUBLIC_DATA(short int) surfxml_router_id_isset; -XBT_PUBLIC_DATA(AT_surfxml_trace_id) AX_surfxml_trace_id; -#define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id) -XBT_PUBLIC_DATA(short int) surfxml_trace_id_isset; -XBT_PUBLIC_DATA(AT_surfxml_link_state) AX_surfxml_link_state; -#define A_surfxml_link_state AX_surfxml_link_state -XBT_PUBLIC_DATA(short int) surfxml_link_state_isset; -XBT_PUBLIC_DATA(AT_surfxml_prop_id) AX_surfxml_prop_id; -#define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id) -XBT_PUBLIC_DATA(short int) surfxml_prop_id_isset; +XBT_PUBLIC_DATA(AT_surfxml_host___link_up) AX_surfxml_host___link_up; +#define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up) +XBT_PUBLIC_DATA(short int) surfxml_host___link_up_isset; +XBT_PUBLIC_DATA(AT_surfxml_cabinet_power) AX_surfxml_cabinet_power; +#define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power) +XBT_PUBLIC_DATA(short int) surfxml_cabinet_power_isset; +XBT_PUBLIC_DATA(AT_surfxml_cluster_core) AX_surfxml_cluster_core; +#define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core) +XBT_PUBLIC_DATA(short int) surfxml_cluster_core_isset; +XBT_PUBLIC_DATA(AT_surfxml_include_file) AX_surfxml_include_file; +#define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file) +XBT_PUBLIC_DATA(short int) surfxml_include_file_isset; +XBT_PUBLIC_DATA(AT_surfxml_ASroute_gw___src) AX_surfxml_ASroute_gw___src; +#define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src) +XBT_PUBLIC_DATA(short int) surfxml_ASroute_gw___src_isset; +XBT_PUBLIC_DATA(AT_surfxml_random_generator) AX_surfxml_random_generator; +#define A_surfxml_random_generator AX_surfxml_random_generator +XBT_PUBLIC_DATA(short int) surfxml_random_generator_isset; +XBT_PUBLIC_DATA(AT_surfxml_cabinet_lat) AX_surfxml_cabinet_lat; +#define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat) +XBT_PUBLIC_DATA(short int) surfxml_cabinet_lat_isset; +XBT_PUBLIC_DATA(AT_surfxml_random_seed) AX_surfxml_random_seed; +#define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed) +XBT_PUBLIC_DATA(short int) surfxml_random_seed_isset; +XBT_PUBLIC_DATA(AT_surfxml_cluster_router___id) AX_surfxml_cluster_router___id; +#define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id) +XBT_PUBLIC_DATA(short int) surfxml_cluster_router___id_isset; XBT_PUBLIC_DATA(AT_surfxml_host___link_down) AX_surfxml_host___link_down; #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down) XBT_PUBLIC_DATA(short int) surfxml_host___link_down_isset; -XBT_PUBLIC_DATA(AT_surfxml_link_state___file) AX_surfxml_link_state___file; -#define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file) -XBT_PUBLIC_DATA(short int) surfxml_link_state___file_isset; +XBT_PUBLIC_DATA(AT_surfxml_link_latency) AX_surfxml_link_latency; +#define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency) +XBT_PUBLIC_DATA(short int) surfxml_link_latency_isset; +XBT_PUBLIC_DATA(AT_surfxml_random_max) AX_surfxml_random_max; +#define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max) +XBT_PUBLIC_DATA(short int) surfxml_random_max_isset; +XBT_PUBLIC_DATA(AT_surfxml_host_availability) AX_surfxml_host_availability; +#define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability) +XBT_PUBLIC_DATA(short int) surfxml_host_availability_isset; +XBT_PUBLIC_DATA(AT_surfxml_storage___type_size) AX_surfxml_storage___type_size; +#define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size) +XBT_PUBLIC_DATA(short int) surfxml_storage___type_size_isset; XBT_PUBLIC_DATA(AT_surfxml_cluster_topo___parameters) AX_surfxml_cluster_topo___parameters; #define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters) XBT_PUBLIC_DATA(short int) surfxml_cluster_topo___parameters_isset; -XBT_PUBLIC_DATA(AT_surfxml_cluster_suffix) AX_surfxml_cluster_suffix; -#define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix) -XBT_PUBLIC_DATA(short int) surfxml_cluster_suffix_isset; /* XML application utilities. */ XBT_PUBLIC(int) surfxml_element_context(int); diff --git a/include/xbt/graphxml.h b/include/xbt/graphxml.h index 8404f6fadb..1f1382a7f7 100644 --- a/include/xbt/graphxml.h +++ b/include/xbt/graphxml.h @@ -56,70 +56,70 @@ XBT_PUBLIC(void) STag_graphxml_edge(void); XBT_PUBLIC(void) ETag_graphxml_edge(void); /* XML application data. */ -typedef int AT_graphxml_node_position___y; -#define AU_graphxml_node_position___y NULL -typedef int AT_graphxml_node_position___x; -#define AU_graphxml_node_position___x NULL -typedef int AT_graphxml_node_data; -#define AU_graphxml_node_data NULL -typedef int AT_graphxml_edge_length; -#define AU_graphxml_edge_length NULL -typedef int AT_graphxml_node_label; -#define AU_graphxml_node_label NULL -typedef enum { AU_graphxml_graph_isDirected, A_graphxml_graph_isDirected_true,A_graphxml_graph_isDirected_false } AT_graphxml_graph_isDirected; -typedef int AT_graphxml_edge_data; -#define AU_graphxml_edge_data NULL typedef int AT_graphxml_edge_name; #define AU_graphxml_edge_name NULL +typedef int AT_graphxml_node_name; +#define AU_graphxml_node_name NULL typedef int AT_graphxml_edge_target; #define AU_graphxml_edge_target NULL +typedef int AT_graphxml_edge_data; +#define AU_graphxml_edge_data NULL +typedef int AT_graphxml_node_data; +#define AU_graphxml_node_data NULL typedef int AT_graphxml_edge_source; #define AU_graphxml_edge_source NULL +typedef enum { AU_graphxml_graph_isDirected, A_graphxml_graph_isDirected_true,A_graphxml_graph_isDirected_false } AT_graphxml_graph_isDirected; +typedef int AT_graphxml_node_label; +#define AU_graphxml_node_label NULL +typedef int AT_graphxml_node_position___x; +#define AU_graphxml_node_position___x NULL typedef int AT_graphxml_edge_label; #define AU_graphxml_edge_label NULL -typedef int AT_graphxml_node_name; -#define AU_graphxml_node_name NULL +typedef int AT_graphxml_edge_length; +#define AU_graphxml_edge_length NULL +typedef int AT_graphxml_node_position___y; +#define AU_graphxml_node_position___y NULL /* FleXML-provided data. */ XBT_PUBLIC_DATA(int) graphxml_pcdata_ix; XBT_PUBLIC_DATA(char *) graphxml_bufferstack; #define graphxml_pcdata (graphxml_bufferstack + graphxml_pcdata_ix) -XBT_PUBLIC_DATA(AT_graphxml_node_position___y) AX_graphxml_node_position___y; -#define A_graphxml_node_position___y (graphxml_bufferstack + AX_graphxml_node_position___y) -XBT_PUBLIC_DATA(short int) graphxml_node_position___y_isset; -XBT_PUBLIC_DATA(AT_graphxml_node_position___x) AX_graphxml_node_position___x; -#define A_graphxml_node_position___x (graphxml_bufferstack + AX_graphxml_node_position___x) -XBT_PUBLIC_DATA(short int) graphxml_node_position___x_isset; -XBT_PUBLIC_DATA(AT_graphxml_node_data) AX_graphxml_node_data; -#define A_graphxml_node_data (graphxml_bufferstack + AX_graphxml_node_data) -XBT_PUBLIC_DATA(short int) graphxml_node_data_isset; -XBT_PUBLIC_DATA(AT_graphxml_edge_length) AX_graphxml_edge_length; -#define A_graphxml_edge_length (graphxml_bufferstack + AX_graphxml_edge_length) -XBT_PUBLIC_DATA(short int) graphxml_edge_length_isset; -XBT_PUBLIC_DATA(AT_graphxml_node_label) AX_graphxml_node_label; -#define A_graphxml_node_label (graphxml_bufferstack + AX_graphxml_node_label) -XBT_PUBLIC_DATA(short int) graphxml_node_label_isset; -XBT_PUBLIC_DATA(AT_graphxml_graph_isDirected) AX_graphxml_graph_isDirected; -#define A_graphxml_graph_isDirected AX_graphxml_graph_isDirected -XBT_PUBLIC_DATA(short int) graphxml_graph_isDirected_isset; -XBT_PUBLIC_DATA(AT_graphxml_edge_data) AX_graphxml_edge_data; -#define A_graphxml_edge_data (graphxml_bufferstack + AX_graphxml_edge_data) -XBT_PUBLIC_DATA(short int) graphxml_edge_data_isset; XBT_PUBLIC_DATA(AT_graphxml_edge_name) AX_graphxml_edge_name; #define A_graphxml_edge_name (graphxml_bufferstack + AX_graphxml_edge_name) XBT_PUBLIC_DATA(short int) graphxml_edge_name_isset; +XBT_PUBLIC_DATA(AT_graphxml_node_name) AX_graphxml_node_name; +#define A_graphxml_node_name (graphxml_bufferstack + AX_graphxml_node_name) +XBT_PUBLIC_DATA(short int) graphxml_node_name_isset; XBT_PUBLIC_DATA(AT_graphxml_edge_target) AX_graphxml_edge_target; #define A_graphxml_edge_target (graphxml_bufferstack + AX_graphxml_edge_target) XBT_PUBLIC_DATA(short int) graphxml_edge_target_isset; +XBT_PUBLIC_DATA(AT_graphxml_edge_data) AX_graphxml_edge_data; +#define A_graphxml_edge_data (graphxml_bufferstack + AX_graphxml_edge_data) +XBT_PUBLIC_DATA(short int) graphxml_edge_data_isset; +XBT_PUBLIC_DATA(AT_graphxml_node_data) AX_graphxml_node_data; +#define A_graphxml_node_data (graphxml_bufferstack + AX_graphxml_node_data) +XBT_PUBLIC_DATA(short int) graphxml_node_data_isset; XBT_PUBLIC_DATA(AT_graphxml_edge_source) AX_graphxml_edge_source; #define A_graphxml_edge_source (graphxml_bufferstack + AX_graphxml_edge_source) XBT_PUBLIC_DATA(short int) graphxml_edge_source_isset; +XBT_PUBLIC_DATA(AT_graphxml_graph_isDirected) AX_graphxml_graph_isDirected; +#define A_graphxml_graph_isDirected AX_graphxml_graph_isDirected +XBT_PUBLIC_DATA(short int) graphxml_graph_isDirected_isset; +XBT_PUBLIC_DATA(AT_graphxml_node_label) AX_graphxml_node_label; +#define A_graphxml_node_label (graphxml_bufferstack + AX_graphxml_node_label) +XBT_PUBLIC_DATA(short int) graphxml_node_label_isset; +XBT_PUBLIC_DATA(AT_graphxml_node_position___x) AX_graphxml_node_position___x; +#define A_graphxml_node_position___x (graphxml_bufferstack + AX_graphxml_node_position___x) +XBT_PUBLIC_DATA(short int) graphxml_node_position___x_isset; XBT_PUBLIC_DATA(AT_graphxml_edge_label) AX_graphxml_edge_label; #define A_graphxml_edge_label (graphxml_bufferstack + AX_graphxml_edge_label) XBT_PUBLIC_DATA(short int) graphxml_edge_label_isset; -XBT_PUBLIC_DATA(AT_graphxml_node_name) AX_graphxml_node_name; -#define A_graphxml_node_name (graphxml_bufferstack + AX_graphxml_node_name) -XBT_PUBLIC_DATA(short int) graphxml_node_name_isset; +XBT_PUBLIC_DATA(AT_graphxml_edge_length) AX_graphxml_edge_length; +#define A_graphxml_edge_length (graphxml_bufferstack + AX_graphxml_edge_length) +XBT_PUBLIC_DATA(short int) graphxml_edge_length_isset; +XBT_PUBLIC_DATA(AT_graphxml_node_position___y) AX_graphxml_node_position___y; +#define A_graphxml_node_position___y (graphxml_bufferstack + AX_graphxml_node_position___y) +XBT_PUBLIC_DATA(short int) graphxml_node_position___y_isset; /* XML application utilities. */ XBT_PUBLIC(int) graphxml_element_context(int); diff --git a/src/include/mc/mc.h b/src/include/mc/mc.h index 1368b59bbf..2bfe7ad44b 100644 --- a/src/include/mc/mc.h +++ b/src/include/mc/mc.h @@ -37,6 +37,7 @@ SG_BEGIN_DECL() /********************************** Configuration of MC **************************************/ extern int _sg_do_model_check; +extern int _sg_do_model_check_record; extern int _sg_mc_checkpoint; extern int _sg_mc_sparse_checkpoint; extern int _sg_mc_soft_dirty; diff --git a/src/mc/mc_base.c b/src/mc/mc_base.c new file mode 100644 index 0000000000..bd43d7a1ae --- /dev/null +++ b/src/mc/mc_base.c @@ -0,0 +1,116 @@ +/* Copyright (c) 2008-2014. 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. */ + +#include + +#include "mc_base.h" +#include "../simix/smx_private.h" +#include "mc_record.h" + +XBT_LOG_NEW_CATEGORY(mc, "All MC categories"); + +/** + * \brief Schedules all the process that are ready to run + */ +void MC_wait_for_requests(void) +{ + smx_process_t process; + smx_simcall_t req; + unsigned int iter; + + while (!xbt_dynar_is_empty(simix_global->process_to_run)) { + SIMIX_process_runall(); + xbt_dynar_foreach(simix_global->process_that_ran, iter, process) { + req = &process->simcall; + if (req->call != SIMCALL_NONE && !MC_request_is_visible(req)) + SIMIX_simcall_handle(req, 0); + } + } +} + +int MC_request_is_enabled(smx_simcall_t req) +{ + unsigned int index = 0; + smx_synchro_t act = 0; + + switch (req->call) { + case SIMCALL_NONE: + return FALSE; + + case SIMCALL_COMM_WAIT: + /* FIXME: check also that src and dst processes are not suspended */ + act = simcall_comm_wait__get__comm(req); + if (simcall_comm_wait__get__timeout(req) >= 0) { + /* If it has a timeout it will be always be enabled, because even if the + * communication is not ready, it can timeout and won't block. */ + if (_sg_mc_timeout == 1) + return TRUE; + } else { + /* On the other hand if it hasn't a timeout, check if the comm is ready.*/ + if (act->comm.detached && act->comm.src_proc == NULL + && act->comm.type == SIMIX_COMM_READY) + return (act->comm.dst_proc != NULL); + } + return (act->comm.src_proc && act->comm.dst_proc); + + case SIMCALL_COMM_WAITANY: + /* Check if it has at least one communication ready */ + xbt_dynar_foreach(simcall_comm_waitany__get__comms(req), index, act) + if (act->comm.src_proc && act->comm.dst_proc) + return TRUE; + return FALSE; + + default: + /* The rest of the requests are always enabled */ + return TRUE; + } +} + +int MC_request_is_visible(smx_simcall_t req) +{ + return req->call == SIMCALL_COMM_ISEND + || req->call == SIMCALL_COMM_IRECV + || req->call == SIMCALL_COMM_WAIT + || req->call == SIMCALL_COMM_WAITANY + || req->call == SIMCALL_COMM_TEST + || req->call == SIMCALL_COMM_TESTANY + || req->call == SIMCALL_MC_RANDOM +#ifdef HAVE_MC + || req->call == SIMCALL_MC_SNAPSHOT + || req->call == SIMCALL_MC_COMPARE_SNAPSHOTS +#endif + ; +} + +int MC_random(int min, int max) +{ + /*FIXME: return mc_current_state->executed_transition->random.value; */ + return simcall_mc_random(min, max); +} + +static int prng_random(int min, int max) +{ + unsigned long output_size = ((unsigned long) max - (unsigned long) min) + 1; + unsigned long input_size = (unsigned long) RAND_MAX + 1; + unsigned long reject_size = input_size % output_size; + unsigned long accept_size = input_size - reject_size; // module*accept_size + + // Use rejection in order to avoid skew + long x; + do { + x = random(); + } while( x >= accept_size ); + return min + (x % output_size); +} + +int simcall_HANDLER_mc_random(smx_simcall_t simcall, int min, int max) +{ + if (!MC_is_active() && !MC_record_path){ + return prng_random(min, max); + } + + return simcall->mc_value; +} diff --git a/src/mc/mc_base.h b/src/mc/mc_base.h new file mode 100644 index 0000000000..39a62e06d0 --- /dev/null +++ b/src/mc/mc_base.h @@ -0,0 +1,23 @@ +/* Copyright (c) 2008-2014. 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. */ + +#ifndef MC_BASE_H +#define MC_BASE_H + +#include +#include "simgrid_config.h" + +#include "../simix/smx_private.h" + +SG_BEGIN_DECL() + +int MC_request_is_enabled(smx_simcall_t req); +int MC_request_is_visible(smx_simcall_t req); +void MC_wait_for_requests(void); + +SG_END_DECL() + +#endif diff --git a/src/mc/mc_comm_determinism.c b/src/mc/mc_comm_determinism.c index 79bff80723..1ac3784642 100644 --- a/src/mc/mc_comm_determinism.c +++ b/src/mc/mc_comm_determinism.c @@ -5,6 +5,7 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include "mc_private.h" +#include "mc_record.h" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_comm_determinism, mc, "Logging specific to MC communication determinism detection"); diff --git a/src/mc/mc_config.c b/src/mc/mc_config.c index eeb080a1e6..1f0d836883 100644 --- a/src/mc/mc_config.c +++ b/src/mc/mc_config.c @@ -13,20 +13,42 @@ #include +#ifdef HAVE_MC #include "mc_private.h" +#endif + +#include "mc_record.h" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_config, mc, "Configuration of MC"); +#ifdef HAVE_MC /* Configuration support */ e_mc_reduce_t mc_reduce_kind = e_mc_reduce_unset; +#endif + +#ifndef HAVE_MC +#define _sg_do_model_check 0 +#endif + +int _sg_mc_timeout = 0; + +void _mc_cfg_cb_timeout(const char *name, int pos) +{ + if (_sg_cfg_init_status && !(_sg_do_model_check || MC_record_path)) { + xbt_die + ("You are specifying a value to enable/disable timeout for wait requests after the initialization (through MSG_config?), but model-checking was not activated at config time (through --cfg=model-check:1). This won't work, sorry."); + } + _sg_mc_timeout = xbt_cfg_get_boolean(_sg_cfg_set, name); +} +#ifdef HAVE_MC int _sg_do_model_check = 0; +int _sg_do_model_check_record = 0; int _sg_mc_checkpoint = 0; int _sg_mc_sparse_checkpoint = 0; int _sg_mc_soft_dirty = 0; char *_sg_mc_property_file = NULL; -int _sg_mc_timeout = 0; int _sg_mc_hash = 0; int _sg_mc_max_depth = 1000; int _sg_mc_visited = 0; @@ -86,15 +108,6 @@ void _mc_cfg_cb_property(const char *name, int pos) _sg_mc_property_file = xbt_cfg_get_string(_sg_cfg_set, name); } -void _mc_cfg_cb_timeout(const char *name, int pos) -{ - if (_sg_cfg_init_status && !_sg_do_model_check) { - xbt_die - ("You are specifying a value to enable/disable timeout for wait requests after the initialization (through MSG_config?), but model-checking was not activated at config time (through --cfg=model-check:1). This won't work, sorry."); - } - _sg_mc_timeout = xbt_cfg_get_boolean(_sg_cfg_set, name); -} - void _mc_cfg_cb_hash(const char *name, int pos) { if (_sg_cfg_init_status && !_sg_do_model_check) { @@ -150,3 +163,5 @@ void _mc_cfg_cb_send_determinism(const char *name, int pos) _sg_mc_send_determinism = xbt_cfg_get_boolean(_sg_cfg_set, name); mc_reduce_kind = e_mc_reduce_none; } + +#endif diff --git a/src/mc/mc_global.c b/src/mc/mc_global.c index 5d163b1ccc..1faf9276b4 100644 --- a/src/mc/mc_global.c +++ b/src/mc/mc_global.c @@ -20,10 +20,10 @@ #include "../xbt/mmalloc/mmprivate.h" #include "xbt/fifo.h" #include "mc_private.h" +#include "mc_record.h" #include "xbt/automaton.h" #include "xbt/dict.h" -XBT_LOG_NEW_CATEGORY(mc, "All MC categories"); XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_global, mc, "Logging specific to MC (global)"); @@ -111,6 +111,21 @@ static void MC_init_debug_info(void) mc_model_checker_t mc_model_checker = NULL; +mc_model_checker_t MC_model_checker_new() +{ + mc_model_checker_t mc = xbt_new0(s_mc_model_checker_t, 1); + mc->pages = mc_pages_store_new(); + mc->fd_clear_refs = -1; + mc->fd_pagemap = -1; + return mc; +} + +void MC_model_checker_delete(mc_model_checker_t mc) { + mc_pages_store_delete(mc->pages); + if(mc->record) + xbt_dynar_free(&mc->record); +} + void MC_init() { int raw_mem_set = (mmalloc_get_current_heap() == mc_heap); @@ -122,10 +137,7 @@ void MC_init() MC_SET_MC_HEAP; - mc_model_checker = xbt_new0(s_mc_model_checker_t, 1); - mc_model_checker->pages = mc_pages_store_new(); - mc_model_checker->fd_clear_refs = -1; - mc_model_checker->fd_pagemap = -1; + mc_model_checker = MC_model_checker_new(); mc_comp_times = xbt_new0(s_mc_comparison_times_t, 1); @@ -325,38 +337,6 @@ void MC_exit(void) //xbt_abort(); } -int simcall_HANDLER_mc_random(smx_simcall_t simcall, int min, int max) -{ - - return simcall->mc_value; -} - - -int MC_random(int min, int max) -{ - /*FIXME: return mc_current_state->executed_transition->random.value; */ - return simcall_mc_random(min, max); -} - -/** - * \brief Schedules all the process that are ready to run - */ -void MC_wait_for_requests(void) -{ - smx_process_t process; - smx_simcall_t req; - unsigned int iter; - - while (!xbt_dynar_is_empty(simix_global->process_to_run)) { - SIMIX_process_runall(); - xbt_dynar_foreach(simix_global->process_that_ran, iter, process) { - req = &process->simcall; - if (req->call != SIMCALL_NONE && !MC_request_is_visible(req)) - SIMIX_simcall_handle(req, 0); - } - } -} - int MC_deadlock_check() { int deadlock = FALSE; @@ -403,6 +383,13 @@ void mc_update_comm_pattern(mc_call_type call_type, smx_simcall_t req, int value * a given model-checker stack. * \param stack The stack with the transitions to execute. * \param start Start index to begin the re-execution. + * + * If start==-1, restore the initial state and replay the actions the + * the transitions in the stack. + * + * Otherwise, we only replay a part of the transitions of the stacks + * without restoring the state: it is assumed that the current state + * match with the transitions to execute. */ void MC_replay(xbt_fifo_t stack, int start) { @@ -458,7 +445,6 @@ void MC_replay(xbt_fifo_t stack, int start) MC_SET_STD_HEAP; - /* Traverse the stack from the state at position start and re-execute the transitions */ for (item = start_item; item != xbt_fifo_get_first_item(stack); @@ -762,6 +748,7 @@ void MC_assert(int prop) XBT_INFO("*** PROPERTY NOT VALID ***"); XBT_INFO("**************************"); XBT_INFO("Counter-example execution trace:"); + MC_record_dump_path(mc_stack); MC_dump_stack_safety(mc_stack); MC_print_statistics(mc_stats); xbt_abort(); diff --git a/src/mc/mc_liveness.c b/src/mc/mc_liveness.c index 42d7c89d34..841b102689 100644 --- a/src/mc/mc_liveness.c +++ b/src/mc/mc_liveness.c @@ -5,6 +5,7 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include "mc_private.h" +#include "mc_record.h" #include #include diff --git a/src/mc/mc_private.h b/src/mc/mc_private.h index a44df30612..134824356f 100644 --- a/src/mc/mc_private.h +++ b/src/mc/mc_private.h @@ -16,6 +16,7 @@ #include #include "mc/mc.h" +#include "mc_base.h" #include "mc/datatypes.h" #include "xbt/fifo.h" #include "xbt/config.h" @@ -223,8 +224,11 @@ typedef struct s_mc_model_checker { mc_pages_store_t pages; int fd_clear_refs; int fd_pagemap; + xbt_dynar_t record; } s_mc_model_checker_t, *mc_model_checker_t; +mc_model_checker_t MC_model_checker_new(void); +void MC_model_checker_delete(mc_model_checker_t mc); extern mc_model_checker_t mc_model_checker; extern xbt_dynar_t mc_checkpoint_ignore; @@ -241,14 +245,18 @@ extern int user_max_depth_reached; int MC_deadlock_check(void); void MC_replay(xbt_fifo_t stack, int start); void MC_replay_liveness(xbt_fifo_t stack, int all_stack); -void MC_wait_for_requests(void); void MC_show_deadlock(smx_simcall_t req); void MC_show_stack_safety(xbt_fifo_t stack); void MC_dump_stack_safety(xbt_fifo_t stack); +/** Stack (of `mc_state_t`) representing the current position of the + * the MC in the exploration graph + * + * It is managed by its head (`xbt_fifo_shift` and `xbt_fifo_unshift`). + */ extern xbt_fifo_t mc_stack; -int get_search_interval(xbt_dynar_t list, void *ref, int *min, int *max); +int get_search_interval(xbt_dynar_t list, void *ref, int *min, int *max); /********************************* Requests ***********************************/ @@ -296,7 +304,12 @@ typedef struct mc_procstate{ interleaved */ } s_mc_procstate_t, *mc_procstate_t; -/* An exploration state is composed of: */ +/* An exploration state. + * + * The `executed_state` is sometimes transformed into another `internal_req`. + * For example WAITANY is transformes into a WAIT and TESTANY into TEST. + * See `MC_state_set_executed_request()`. + */ typedef struct mc_state { unsigned long max_pid; /* Maximum pid at state's creation time */ mc_procstate_t proc_status; /* State's exploration status by process */ diff --git a/src/mc/mc_record.c b/src/mc/mc_record.c new file mode 100644 index 0000000000..47dd8e3a32 --- /dev/null +++ b/src/mc/mc_record.c @@ -0,0 +1,139 @@ +/* Copyright (c) 2014. 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. */ + +#include +#include + +#include +#include + +#include "mc_base.h" +#include "mc_record.h" + +#ifdef HAVE_MC +#include "mc_private.h" +#endif + +XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_record, mc, + " Logging specific to MC record/replay facility"); + +char* MC_record_path = NULL; + +void MC_record_replay(mc_record_item_t start, size_t len) +{ + MC_wait_for_requests(); + mc_record_item_t end = start + len; + + // Choose the recorded simcall and execute it: + for (mc_record_item_t item=start;item!=end; ++item) { + + XBT_DEBUG("Executing %i$%i", item->pid, item->value); +/* + if (xbt_dynar_is_empty(simix_global->process_to_run)) + xbt_die("Unexpected end of application."); +*/ + + // Choose a request: + smx_process_t process = SIMIX_process_from_PID(item->pid); + if (!process) + xbt_die("Unexpected process."); + smx_simcall_t simcall = &(process->simcall); + if(!simcall || simcall->call == SIMCALL_NONE) + xbt_die("No simcall for this process."); + if (!MC_request_is_visible(simcall) || !MC_request_is_enabled(simcall)) + xbt_die("Unexpected simcall."); + + // Execute the request: + SIMIX_simcall_handle(simcall, item->value); + MC_wait_for_requests(); + } +} + +xbt_dynar_t MC_record_from_string(const char* data) +{ + XBT_INFO("path=%s", data); + if (!data || !data[0]) + return NULL; + + xbt_dynar_t dynar = xbt_dynar_new(sizeof(s_mc_record_item_t), NULL); + + const char* current = data; + while (*current) { + + s_mc_record_item_t item = { 0, 0 }; + int count = sscanf(current, "%u/%u", &item.pid, &item.value); + if(count != 2 && count != 1) + goto fail; + xbt_dynar_push(dynar, &item); + + // Find next chunk: + char* end = strchr(current, ';'); + if(end==NULL) + break; + else + current = end + 1; + } + + return dynar; + +fail: + xbt_dynar_free(&dynar); + return NULL; +} + +#ifdef HAVE_MC +char* MC_record_stack_to_string(xbt_fifo_t stack) +{ + xbt_fifo_item_t start = xbt_fifo_get_last_item(stack); + + if (!start) { + char* res = (char*) malloc(1 * sizeof(char)); + res[0] = '\0'; + return res; + } + + char* buffer; + size_t size; + FILE* file = open_memstream(&buffer, &size); + + xbt_fifo_item_t item; + for (item = start; item; item = xbt_fifo_get_prev_item(item)) { + + // Find (pid, value): + mc_state_t state = (mc_state_t) xbt_fifo_get_item_content(item); + int value = 0; + smx_simcall_t saved_req = MC_state_get_executed_request(state, &value); + int pid = saved_req->issuer->pid; + + // Serialization the (pid, value) pair: + const char* sep = (item!=start) ? ";" : ""; + if (value) + fprintf(file, "%s%u/%u", sep, pid, value); + else + fprintf(file, "%s%u", sep, pid); + } + + fclose(file); + return buffer; +} + +void MC_record_dump_path(xbt_fifo_t stack) +{ + if (MC_record_is_active()) { + char* path = MC_record_stack_to_string(stack); + XBT_INFO("Path = %s", path); + free(path); + } +} +#endif + +void MC_record_replay_from_string(const char* path_string) +{ + xbt_dynar_t path = MC_record_from_string(path_string); + mc_record_item_t start = &xbt_dynar_get_as(path, 0, s_mc_record_item_t); + MC_record_replay(start, xbt_dynar_length(path)); + xbt_dynar_free(&path); +} diff --git a/src/mc/mc_record.h b/src/mc/mc_record.h new file mode 100644 index 0000000000..32577039d0 --- /dev/null +++ b/src/mc/mc_record.h @@ -0,0 +1,93 @@ +/* Copyright (c) 2014. 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. */ + +/** \file + * This file contains the MC replay/record functionnality. + * A MC path may be recorded by using ``-cfg=model-check/record:1`'`. + * The path is written in the log output and an be replayed with MC disabled + * (even with an non-LC build) with `--cfg=model-check/replay:$replayPath`. + * + * The same version of Simgrid should be used and the same arguments should be + * passed to the application (without the MC specific arguments). + */ + +#ifndef MC_RECORD_H +#define MC_RECORD_H + +#include + +#include "simgrid_config.h" +#include "mc_record.h" + +SG_BEGIN_DECL() + +/** Replay path (if any) in string representation + * + * This is a path as generated by `MC_record_stack_to_string()`. + */ +extern char* MC_record_path; + +/** Whether the MC record mode is enabled + * + * The behaviour is not changed. The only real difference is that + * the path is writtent in the log when an interesting path is found. + */ +#define MC_record_is_active() _sg_do_model_check_record + +/** Whether the replay mode is enabled */ +static inline bool MC_record_replay_is_active(void) { + return MC_record_path; +} + +// **** Data conversion + +/** An element in the recorded path + * + * At each decision point, we need to record which process transition + * is trigerred and potentially which value is associated with this + * transition. The value is used to find which communication is triggerred + * in things like waitany and for associating a given value of MC_random() + * calls. + */ +typedef struct s_mc_record_item { + int pid; + int value; +} s_mc_record_item_t, *mc_record_item_t; + +/** Convert a string representation of the path into a array of `s_mc_record_item_t` + */ +xbt_dynar_t MC_record_from_string(const char* data); + +/** Generate a string representation +* +* The current format is a ";"-delimited list of pairs: +* "pid0,value0;pid2,value2;pid3,value3". The value can be +* omitted is it is null. +*/ +char* MC_record_stack_to_string(xbt_fifo_t stack); + +/** Dump the path represented by a given stack in the log + */ +void MC_record_dump_path(xbt_fifo_t stack); + +// ***** Replay + +/** Replay a path represented by the record items + * + * \param start Array of record item + * \item count Number of record items + */ +void MC_record_replay(mc_record_item_t start, size_t count); + +/** Replay a path represented by a string + * + * \param data String representation of the path + */ +void MC_record_replay_from_string(const char* data); + +SG_END_DECL() + +#endif diff --git a/src/mc/mc_request.c b/src/mc/mc_request.c index 4d8154e557..234c5d27d3 100644 --- a/src/mc/mc_request.c +++ b/src/mc/mc_request.c @@ -377,57 +377,6 @@ unsigned int MC_request_testany_fail(smx_simcall_t req) return TRUE; } -int MC_request_is_visible(smx_simcall_t req) -{ - return req->call == SIMCALL_COMM_ISEND - || req->call == SIMCALL_COMM_IRECV - || req->call == SIMCALL_COMM_WAIT - || req->call == SIMCALL_COMM_WAITANY - || req->call == SIMCALL_COMM_TEST - || req->call == SIMCALL_COMM_TESTANY - || req->call == SIMCALL_MC_RANDOM - || req->call == SIMCALL_MC_SNAPSHOT - || req->call == SIMCALL_MC_COMPARE_SNAPSHOTS; -} - -int MC_request_is_enabled(smx_simcall_t req) -{ - unsigned int index = 0; - smx_synchro_t act = 0; - - switch (req->call) { - case SIMCALL_NONE: - return FALSE; - - case SIMCALL_COMM_WAIT: - /* FIXME: check also that src and dst processes are not suspended */ - act = simcall_comm_wait__get__comm(req); - if (simcall_comm_wait__get__timeout(req) >= 0) { - /* If it has a timeout it will be always be enabled, because even if the - * communication is not ready, it can timeout and won't block. */ - if (_sg_mc_timeout == 1) - return TRUE; - } else { - /* On the other hand if it hasn't a timeout, check if the comm is ready.*/ - if (act->comm.detached && act->comm.src_proc == NULL - && act->comm.type == SIMIX_COMM_READY) - return (act->comm.dst_proc != NULL); - } - return (act->comm.src_proc && act->comm.dst_proc); - - case SIMCALL_COMM_WAITANY: - /* Check if it has at least one communication ready */ - xbt_dynar_foreach(simcall_comm_waitany__get__comms(req), index, act) - if (act->comm.src_proc && act->comm.dst_proc) - return TRUE; - return FALSE; - - default: - /* The rest of the requests are always enabled */ - return TRUE; - } -} - int MC_request_is_enabled_by_idx(smx_simcall_t req, unsigned int idx) { smx_synchro_t act; diff --git a/src/mc/mc_safety.c b/src/mc/mc_safety.c index 486b320623..401c43b772 100644 --- a/src/mc/mc_safety.c +++ b/src/mc/mc_safety.c @@ -5,6 +5,7 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include "mc_private.h" +#include "mc_record.h" #include "xbt/mmalloc/mmprivate.h" diff --git a/src/simdag/dax_dtd.c b/src/simdag/dax_dtd.c index df71452d31..24afd327d4 100644 --- a/src/simdag/dax_dtd.c +++ b/src/simdag/dax_dtd.c @@ -1344,81 +1344,81 @@ const char dax__flexml_version[] = "1.9.6"; int dax__pcdata_ix; extern char *dax__bufferstack; #define dax__pcdata (dax__bufferstack + dax__pcdata_ix) -AT_dax__uses_type AX_dax__uses_type; -#define A_dax__uses_type (dax__bufferstack + AX_dax__uses_type) -short int dax__uses_type_isset; -AT_dax__uses_register AX_dax__uses_register; -#define A_dax__uses_register AX_dax__uses_register -short int dax__uses_register_isset; -AT_dax__job_name AX_dax__job_name; -#define A_dax__job_name (dax__bufferstack + AX_dax__job_name) -short int dax__job_name_isset; -AT_dax__uses_optional AX_dax__uses_optional; -#define A_dax__uses_optional AX_dax__uses_optional -short int dax__uses_optional_isset; +AT_dax__adag_childCount AX_dax__adag_childCount; +#define A_dax__adag_childCount (dax__bufferstack + AX_dax__adag_childCount) +short int dax__adag_childCount_isset; +AT_dax__adag_xsi_c_schemaLocation AX_dax__adag_xsi_c_schemaLocation; +#define A_dax__adag_xsi_c_schemaLocation (dax__bufferstack + AX_dax__adag_xsi_c_schemaLocation) +short int dax__adag_xsi_c_schemaLocation_isset; +AT_dax__job_namespace AX_dax__job_namespace; +#define A_dax__job_namespace (dax__bufferstack + AX_dax__job_namespace) +short int dax__job_namespace_isset; +AT_dax__uses_file AX_dax__uses_file; +#define A_dax__uses_file (dax__bufferstack + AX_dax__uses_file) +short int dax__uses_file_isset; +AT_dax__adag_xmlns_c_xsi AX_dax__adag_xmlns_c_xsi; +#define A_dax__adag_xmlns_c_xsi (dax__bufferstack + AX_dax__adag_xmlns_c_xsi) +short int dax__adag_xmlns_c_xsi_isset; +AT_dax__adag_xmlns AX_dax__adag_xmlns; +#define A_dax__adag_xmlns (dax__bufferstack + AX_dax__adag_xmlns) +short int dax__adag_xmlns_isset; +AT_dax__adag_fileCount AX_dax__adag_fileCount; +#define A_dax__adag_fileCount (dax__bufferstack + AX_dax__adag_fileCount) +short int dax__adag_fileCount_isset; AT_dax__uses_size AX_dax__uses_size; #define A_dax__uses_size (dax__bufferstack + AX_dax__uses_size) short int dax__uses_size_isset; +AT_dax__uses_type AX_dax__uses_type; +#define A_dax__uses_type (dax__bufferstack + AX_dax__uses_type) +short int dax__uses_type_isset; +AT_dax__adag_version AX_dax__adag_version; +#define A_dax__adag_version (dax__bufferstack + AX_dax__adag_version) +short int dax__adag_version_isset; AT_dax__job_runtime AX_dax__job_runtime; #define A_dax__job_runtime (dax__bufferstack + AX_dax__job_runtime) short int dax__job_runtime_isset; -AT_dax__adag_fileCount AX_dax__adag_fileCount; -#define A_dax__adag_fileCount (dax__bufferstack + AX_dax__adag_fileCount) -short int dax__adag_fileCount_isset; -AT_dax__uses_link AX_dax__uses_link; -#define A_dax__uses_link AX_dax__uses_link -short int dax__uses_link_isset; -AT_dax__uses_transfer AX_dax__uses_transfer; -#define A_dax__uses_transfer AX_dax__uses_transfer -short int dax__uses_transfer_isset; +AT_dax__job_id AX_dax__job_id; +#define A_dax__job_id (dax__bufferstack + AX_dax__job_id) +short int dax__job_id_isset; AT_dax__adag_jobCount AX_dax__adag_jobCount; #define A_dax__adag_jobCount (dax__bufferstack + AX_dax__adag_jobCount) short int dax__adag_jobCount_isset; -AT_dax__adag_xmlns AX_dax__adag_xmlns; -#define A_dax__adag_xmlns (dax__bufferstack + AX_dax__adag_xmlns) -short int dax__adag_xmlns_isset; +AT_dax__uses_register AX_dax__uses_register; +#define A_dax__uses_register AX_dax__uses_register +short int dax__uses_register_isset; AT_dax__job_level AX_dax__job_level; #define A_dax__job_level (dax__bufferstack + AX_dax__job_level) short int dax__job_level_isset; -AT_dax__adag_version AX_dax__adag_version; -#define A_dax__adag_version (dax__bufferstack + AX_dax__adag_version) -short int dax__adag_version_isset; -AT_dax__job_id AX_dax__job_id; -#define A_dax__job_id (dax__bufferstack + AX_dax__job_id) -short int dax__job_id_isset; -AT_dax__job_namespace AX_dax__job_namespace; -#define A_dax__job_namespace (dax__bufferstack + AX_dax__job_namespace) -short int dax__job_namespace_isset; +AT_dax__adag_index AX_dax__adag_index; +#define A_dax__adag_index (dax__bufferstack + AX_dax__adag_index) +short int dax__adag_index_isset; +AT_dax__child_ref AX_dax__child_ref; +#define A_dax__child_ref (dax__bufferstack + AX_dax__child_ref) +short int dax__child_ref_isset; AT_dax__parent_ref AX_dax__parent_ref; #define A_dax__parent_ref (dax__bufferstack + AX_dax__parent_ref) short int dax__parent_ref_isset; +AT_dax__uses_link AX_dax__uses_link; +#define A_dax__uses_link AX_dax__uses_link +short int dax__uses_link_isset; +AT_dax__uses_transfer AX_dax__uses_transfer; +#define A_dax__uses_transfer AX_dax__uses_transfer +short int dax__uses_transfer_isset; +AT_dax__job_version AX_dax__job_version; +#define A_dax__job_version (dax__bufferstack + AX_dax__job_version) +short int dax__job_version_isset; AT_dax__adag_count AX_dax__adag_count; #define A_dax__adag_count (dax__bufferstack + AX_dax__adag_count) short int dax__adag_count_isset; -AT_dax__adag_childCount AX_dax__adag_childCount; -#define A_dax__adag_childCount (dax__bufferstack + AX_dax__adag_childCount) -short int dax__adag_childCount_isset; -AT_dax__adag_xsi_c_schemaLocation AX_dax__adag_xsi_c_schemaLocation; -#define A_dax__adag_xsi_c_schemaLocation (dax__bufferstack + AX_dax__adag_xsi_c_schemaLocation) -short int dax__adag_xsi_c_schemaLocation_isset; -AT_dax__uses_file AX_dax__uses_file; -#define A_dax__uses_file (dax__bufferstack + AX_dax__uses_file) -short int dax__uses_file_isset; -AT_dax__adag_xmlns_c_xsi AX_dax__adag_xmlns_c_xsi; -#define A_dax__adag_xmlns_c_xsi (dax__bufferstack + AX_dax__adag_xmlns_c_xsi) -short int dax__adag_xmlns_c_xsi_isset; -AT_dax__child_ref AX_dax__child_ref; -#define A_dax__child_ref (dax__bufferstack + AX_dax__child_ref) -short int dax__child_ref_isset; -AT_dax__adag_index AX_dax__adag_index; -#define A_dax__adag_index (dax__bufferstack + AX_dax__adag_index) -short int dax__adag_index_isset; +AT_dax__job_name AX_dax__job_name; +#define A_dax__job_name (dax__bufferstack + AX_dax__job_name) +short int dax__job_name_isset; AT_dax__adag_name AX_dax__adag_name; #define A_dax__adag_name (dax__bufferstack + AX_dax__adag_name) short int dax__adag_name_isset; -AT_dax__job_version AX_dax__job_version; -#define A_dax__job_version (dax__bufferstack + AX_dax__job_version) -short int dax__job_version_isset; +AT_dax__uses_optional AX_dax__uses_optional; +#define A_dax__uses_optional AX_dax__uses_optional +short int dax__uses_optional_isset; /* XML state. */ #ifdef FLEX_DEBUG @@ -2212,11 +2212,11 @@ case 44: YY_RULE_SETUP FAIL("Unexpected character `%c': `' expected.",dax_text[0]); YY_BREAK +case YY_STATE_EOF(E_dax__adag): case YY_STATE_EOF(S_dax__adag): +case YY_STATE_EOF(S_dax__adag_5): case YY_STATE_EOF(S_dax__adag_3): case YY_STATE_EOF(S_dax__adag_1): -case YY_STATE_EOF(S_dax__adag_5): -case YY_STATE_EOF(E_dax__adag): FAIL("Premature EOF: `' expected."); YY_BREAK @@ -2322,7 +2322,7 @@ YY_RULE_SETUP if (!AX_dax__job_runtime) FAIL("Required attribute `runtime' not set for `job' element."); LEAVE; STag_dax__job(); dax__pcdata_ix = 0; ETag_dax__job(); popbuffer(); /* attribute */ switch (YY_START) { - case S_dax__adag_2: case S_dax__adag: case S_dax__adag_3: SET(S_dax__adag_3); break; + case S_dax__adag_2: case S_dax__adag_3: case S_dax__adag: SET(S_dax__adag_3); break; } } YY_BREAK @@ -2346,7 +2346,7 @@ YY_RULE_SETUP ETag_dax__job(); popbuffer(); /* attribute */ switch (YY_START) { - case S_dax__adag_2: case S_dax__adag: case S_dax__adag_3: SET(S_dax__adag_3); break; + case S_dax__adag_2: case S_dax__adag_3: case S_dax__adag: SET(S_dax__adag_3); break; } } YY_BREAK @@ -2359,9 +2359,9 @@ case 65: YY_RULE_SETUP FAIL("Unexpected character `%c': `' expected.",dax_text[0]); YY_BREAK +case YY_STATE_EOF(S_dax__job): case YY_STATE_EOF(E_dax__job): case YY_STATE_EOF(S_dax__job_2): -case YY_STATE_EOF(S_dax__job): FAIL("Premature EOF: `' expected."); YY_BREAK @@ -2495,7 +2495,7 @@ YY_RULE_SETUP if (!AX_dax__uses_size) FAIL("Required attribute `size' not set for `uses' element."); LEAVE; STag_dax__uses(); dax__pcdata_ix = 0; ETag_dax__uses(); popbuffer(); /* attribute */ switch (YY_START) { - case S_dax__job: case S_dax__job_2: case S_dax__job_1: SET(S_dax__job_2); break; + case S_dax__job_2: case S_dax__job_1: case S_dax__job: SET(S_dax__job_2); break; } } YY_BREAK @@ -2519,7 +2519,7 @@ YY_RULE_SETUP ETag_dax__uses(); popbuffer(); /* attribute */ switch (YY_START) { - case S_dax__job: case S_dax__job_2: case S_dax__job_1: SET(S_dax__job_2); break; + case S_dax__job_2: case S_dax__job_1: case S_dax__job: SET(S_dax__job_2); break; } } YY_BREAK @@ -2574,7 +2574,7 @@ YY_RULE_SETUP if (!AX_dax__child_ref) FAIL("Required attribute `ref' not set for `child' element."); LEAVE; STag_dax__child(); dax__pcdata_ix = 0; ETag_dax__child(); popbuffer(); /* attribute */ switch (YY_START) { - case S_dax__adag_4: case S_dax__adag: case S_dax__adag_3: case S_dax__adag_1: case S_dax__adag_5: SET(S_dax__adag_5); break; + case S_dax__adag_4: case S_dax__adag: case S_dax__adag_1: case S_dax__adag_3: case S_dax__adag_5: SET(S_dax__adag_5); break; } } YY_BREAK @@ -2598,7 +2598,7 @@ YY_RULE_SETUP ETag_dax__child(); popbuffer(); /* attribute */ switch (YY_START) { - case S_dax__adag_4: case S_dax__adag: case S_dax__adag_3: case S_dax__adag_1: case S_dax__adag_5: SET(S_dax__adag_5); break; + case S_dax__adag_4: case S_dax__adag: case S_dax__adag_1: case S_dax__adag_3: case S_dax__adag_5: SET(S_dax__adag_5); break; } } YY_BREAK @@ -2611,8 +2611,8 @@ case 107: YY_RULE_SETUP FAIL("Unexpected character `%c': `' expected.",dax_text[0]); YY_BREAK -case YY_STATE_EOF(S_dax__child_2): case YY_STATE_EOF(S_dax__child): +case YY_STATE_EOF(S_dax__child_2): case YY_STATE_EOF(E_dax__child): FAIL("Premature EOF: `' expected."); YY_BREAK diff --git a/src/simdag/dax_dtd.h b/src/simdag/dax_dtd.h index da77875d1c..b62dabe4b4 100644 --- a/src/simdag/dax_dtd.h +++ b/src/simdag/dax_dtd.h @@ -60,132 +60,132 @@ XBT_PUBLIC(void) STag_dax__parent(void); XBT_PUBLIC(void) ETag_dax__parent(void); /* XML application data. */ -typedef int AT_dax__uses_type; -#define AU_dax__uses_type NULL -typedef int AT_dax__parent_ref; -#define AU_dax__parent_ref NULL -typedef int AT_dax__uses_file; -#define AU_dax__uses_file NULL -typedef int AT_dax__job_name; -#define AU_dax__job_name NULL -typedef int AT_dax__job_version; -#define AU_dax__job_version NULL +typedef enum { AU_dax__uses_link, A_dax__uses_link_input,A_dax__uses_link_output } AT_dax__uses_link; +typedef int AT_dax__child_ref; +#define AU_dax__child_ref NULL +typedef int AT_dax__uses_size; +#define AU_dax__uses_size NULL typedef int AT_dax__job_namespace; #define AU_dax__job_namespace NULL -typedef int AT_dax__adag_xsi_c_schemaLocation; -#define AU_dax__adag_xsi_c_schemaLocation NULL typedef int AT_dax__adag_fileCount; #define AU_dax__adag_fileCount NULL -typedef int AT_dax__adag_count; -#define AU_dax__adag_count NULL -typedef int AT_dax__adag_index; -#define AU_dax__adag_index NULL -typedef int AT_dax__adag_xmlns_c_xsi; -#define AU_dax__adag_xmlns_c_xsi NULL -typedef int AT_dax__adag_childCount; -#define AU_dax__adag_childCount NULL +typedef enum { AU_dax__uses_register, A_dax__uses_register_false,A_dax__uses_register_true } AT_dax__uses_register; typedef int AT_dax__adag_xmlns; #define AU_dax__adag_xmlns NULL +typedef int AT_dax__uses_type; +#define AU_dax__uses_type NULL +typedef int AT_dax__job_id; +#define AU_dax__job_id NULL +typedef int AT_dax__job_name; +#define AU_dax__job_name NULL +typedef int AT_dax__job_level; +#define AU_dax__job_level NULL +typedef int AT_dax__adag_childCount; +#define AU_dax__adag_childCount NULL typedef int AT_dax__adag_name; #define AU_dax__adag_name NULL -typedef int AT_dax__adag_jobCount; -#define AU_dax__adag_jobCount NULL -typedef enum { AU_dax__uses_register, A_dax__uses_register_false,A_dax__uses_register_true } AT_dax__uses_register; typedef int AT_dax__adag_version; #define AU_dax__adag_version NULL -typedef enum { AU_dax__uses_optional, A_dax__uses_optional_false,A_dax__uses_optional_true } AT_dax__uses_optional; -typedef int AT_dax__job_level; -#define AU_dax__job_level NULL +typedef int AT_dax__uses_file; +#define AU_dax__uses_file NULL +typedef int AT_dax__adag_xsi_c_schemaLocation; +#define AU_dax__adag_xsi_c_schemaLocation NULL +typedef int AT_dax__adag_index; +#define AU_dax__adag_index NULL typedef int AT_dax__job_runtime; #define AU_dax__job_runtime NULL -typedef int AT_dax__uses_size; -#define AU_dax__uses_size NULL +typedef int AT_dax__parent_ref; +#define AU_dax__parent_ref NULL +typedef int AT_dax__adag_xmlns_c_xsi; +#define AU_dax__adag_xmlns_c_xsi NULL typedef enum { AU_dax__uses_transfer, A_dax__uses_transfer_false,A_dax__uses_transfer_true } AT_dax__uses_transfer; -typedef int AT_dax__job_id; -#define AU_dax__job_id NULL -typedef int AT_dax__child_ref; -#define AU_dax__child_ref NULL -typedef enum { AU_dax__uses_link, A_dax__uses_link_input,A_dax__uses_link_output } AT_dax__uses_link; +typedef int AT_dax__job_version; +#define AU_dax__job_version NULL +typedef int AT_dax__adag_count; +#define AU_dax__adag_count NULL +typedef enum { AU_dax__uses_optional, A_dax__uses_optional_false,A_dax__uses_optional_true } AT_dax__uses_optional; +typedef int AT_dax__adag_jobCount; +#define AU_dax__adag_jobCount NULL /* FleXML-provided data. */ XBT_PUBLIC_DATA(int) dax__pcdata_ix; XBT_PUBLIC_DATA(char *) dax__bufferstack; #define dax__pcdata (dax__bufferstack + dax__pcdata_ix) -XBT_PUBLIC_DATA(AT_dax__uses_type) AX_dax__uses_type; -#define A_dax__uses_type (dax__bufferstack + AX_dax__uses_type) -XBT_PUBLIC_DATA(short int) dax__uses_type_isset; -XBT_PUBLIC_DATA(AT_dax__parent_ref) AX_dax__parent_ref; -#define A_dax__parent_ref (dax__bufferstack + AX_dax__parent_ref) -XBT_PUBLIC_DATA(short int) dax__parent_ref_isset; -XBT_PUBLIC_DATA(AT_dax__uses_file) AX_dax__uses_file; -#define A_dax__uses_file (dax__bufferstack + AX_dax__uses_file) -XBT_PUBLIC_DATA(short int) dax__uses_file_isset; -XBT_PUBLIC_DATA(AT_dax__job_name) AX_dax__job_name; -#define A_dax__job_name (dax__bufferstack + AX_dax__job_name) -XBT_PUBLIC_DATA(short int) dax__job_name_isset; -XBT_PUBLIC_DATA(AT_dax__job_version) AX_dax__job_version; -#define A_dax__job_version (dax__bufferstack + AX_dax__job_version) -XBT_PUBLIC_DATA(short int) dax__job_version_isset; +XBT_PUBLIC_DATA(AT_dax__uses_link) AX_dax__uses_link; +#define A_dax__uses_link AX_dax__uses_link +XBT_PUBLIC_DATA(short int) dax__uses_link_isset; +XBT_PUBLIC_DATA(AT_dax__child_ref) AX_dax__child_ref; +#define A_dax__child_ref (dax__bufferstack + AX_dax__child_ref) +XBT_PUBLIC_DATA(short int) dax__child_ref_isset; +XBT_PUBLIC_DATA(AT_dax__uses_size) AX_dax__uses_size; +#define A_dax__uses_size (dax__bufferstack + AX_dax__uses_size) +XBT_PUBLIC_DATA(short int) dax__uses_size_isset; XBT_PUBLIC_DATA(AT_dax__job_namespace) AX_dax__job_namespace; #define A_dax__job_namespace (dax__bufferstack + AX_dax__job_namespace) XBT_PUBLIC_DATA(short int) dax__job_namespace_isset; -XBT_PUBLIC_DATA(AT_dax__adag_xsi_c_schemaLocation) AX_dax__adag_xsi_c_schemaLocation; -#define A_dax__adag_xsi_c_schemaLocation (dax__bufferstack + AX_dax__adag_xsi_c_schemaLocation) -XBT_PUBLIC_DATA(short int) dax__adag_xsi_c_schemaLocation_isset; XBT_PUBLIC_DATA(AT_dax__adag_fileCount) AX_dax__adag_fileCount; #define A_dax__adag_fileCount (dax__bufferstack + AX_dax__adag_fileCount) XBT_PUBLIC_DATA(short int) dax__adag_fileCount_isset; -XBT_PUBLIC_DATA(AT_dax__adag_count) AX_dax__adag_count; -#define A_dax__adag_count (dax__bufferstack + AX_dax__adag_count) -XBT_PUBLIC_DATA(short int) dax__adag_count_isset; -XBT_PUBLIC_DATA(AT_dax__adag_index) AX_dax__adag_index; -#define A_dax__adag_index (dax__bufferstack + AX_dax__adag_index) -XBT_PUBLIC_DATA(short int) dax__adag_index_isset; -XBT_PUBLIC_DATA(AT_dax__adag_xmlns_c_xsi) AX_dax__adag_xmlns_c_xsi; -#define A_dax__adag_xmlns_c_xsi (dax__bufferstack + AX_dax__adag_xmlns_c_xsi) -XBT_PUBLIC_DATA(short int) dax__adag_xmlns_c_xsi_isset; -XBT_PUBLIC_DATA(AT_dax__adag_childCount) AX_dax__adag_childCount; -#define A_dax__adag_childCount (dax__bufferstack + AX_dax__adag_childCount) -XBT_PUBLIC_DATA(short int) dax__adag_childCount_isset; +XBT_PUBLIC_DATA(AT_dax__uses_register) AX_dax__uses_register; +#define A_dax__uses_register AX_dax__uses_register +XBT_PUBLIC_DATA(short int) dax__uses_register_isset; XBT_PUBLIC_DATA(AT_dax__adag_xmlns) AX_dax__adag_xmlns; #define A_dax__adag_xmlns (dax__bufferstack + AX_dax__adag_xmlns) XBT_PUBLIC_DATA(short int) dax__adag_xmlns_isset; +XBT_PUBLIC_DATA(AT_dax__uses_type) AX_dax__uses_type; +#define A_dax__uses_type (dax__bufferstack + AX_dax__uses_type) +XBT_PUBLIC_DATA(short int) dax__uses_type_isset; +XBT_PUBLIC_DATA(AT_dax__job_id) AX_dax__job_id; +#define A_dax__job_id (dax__bufferstack + AX_dax__job_id) +XBT_PUBLIC_DATA(short int) dax__job_id_isset; +XBT_PUBLIC_DATA(AT_dax__job_name) AX_dax__job_name; +#define A_dax__job_name (dax__bufferstack + AX_dax__job_name) +XBT_PUBLIC_DATA(short int) dax__job_name_isset; +XBT_PUBLIC_DATA(AT_dax__job_level) AX_dax__job_level; +#define A_dax__job_level (dax__bufferstack + AX_dax__job_level) +XBT_PUBLIC_DATA(short int) dax__job_level_isset; +XBT_PUBLIC_DATA(AT_dax__adag_childCount) AX_dax__adag_childCount; +#define A_dax__adag_childCount (dax__bufferstack + AX_dax__adag_childCount) +XBT_PUBLIC_DATA(short int) dax__adag_childCount_isset; XBT_PUBLIC_DATA(AT_dax__adag_name) AX_dax__adag_name; #define A_dax__adag_name (dax__bufferstack + AX_dax__adag_name) XBT_PUBLIC_DATA(short int) dax__adag_name_isset; -XBT_PUBLIC_DATA(AT_dax__adag_jobCount) AX_dax__adag_jobCount; -#define A_dax__adag_jobCount (dax__bufferstack + AX_dax__adag_jobCount) -XBT_PUBLIC_DATA(short int) dax__adag_jobCount_isset; -XBT_PUBLIC_DATA(AT_dax__uses_register) AX_dax__uses_register; -#define A_dax__uses_register AX_dax__uses_register -XBT_PUBLIC_DATA(short int) dax__uses_register_isset; XBT_PUBLIC_DATA(AT_dax__adag_version) AX_dax__adag_version; #define A_dax__adag_version (dax__bufferstack + AX_dax__adag_version) XBT_PUBLIC_DATA(short int) dax__adag_version_isset; -XBT_PUBLIC_DATA(AT_dax__uses_optional) AX_dax__uses_optional; -#define A_dax__uses_optional AX_dax__uses_optional -XBT_PUBLIC_DATA(short int) dax__uses_optional_isset; -XBT_PUBLIC_DATA(AT_dax__job_level) AX_dax__job_level; -#define A_dax__job_level (dax__bufferstack + AX_dax__job_level) -XBT_PUBLIC_DATA(short int) dax__job_level_isset; +XBT_PUBLIC_DATA(AT_dax__uses_file) AX_dax__uses_file; +#define A_dax__uses_file (dax__bufferstack + AX_dax__uses_file) +XBT_PUBLIC_DATA(short int) dax__uses_file_isset; +XBT_PUBLIC_DATA(AT_dax__adag_xsi_c_schemaLocation) AX_dax__adag_xsi_c_schemaLocation; +#define A_dax__adag_xsi_c_schemaLocation (dax__bufferstack + AX_dax__adag_xsi_c_schemaLocation) +XBT_PUBLIC_DATA(short int) dax__adag_xsi_c_schemaLocation_isset; +XBT_PUBLIC_DATA(AT_dax__adag_index) AX_dax__adag_index; +#define A_dax__adag_index (dax__bufferstack + AX_dax__adag_index) +XBT_PUBLIC_DATA(short int) dax__adag_index_isset; XBT_PUBLIC_DATA(AT_dax__job_runtime) AX_dax__job_runtime; #define A_dax__job_runtime (dax__bufferstack + AX_dax__job_runtime) XBT_PUBLIC_DATA(short int) dax__job_runtime_isset; -XBT_PUBLIC_DATA(AT_dax__uses_size) AX_dax__uses_size; -#define A_dax__uses_size (dax__bufferstack + AX_dax__uses_size) -XBT_PUBLIC_DATA(short int) dax__uses_size_isset; +XBT_PUBLIC_DATA(AT_dax__parent_ref) AX_dax__parent_ref; +#define A_dax__parent_ref (dax__bufferstack + AX_dax__parent_ref) +XBT_PUBLIC_DATA(short int) dax__parent_ref_isset; +XBT_PUBLIC_DATA(AT_dax__adag_xmlns_c_xsi) AX_dax__adag_xmlns_c_xsi; +#define A_dax__adag_xmlns_c_xsi (dax__bufferstack + AX_dax__adag_xmlns_c_xsi) +XBT_PUBLIC_DATA(short int) dax__adag_xmlns_c_xsi_isset; XBT_PUBLIC_DATA(AT_dax__uses_transfer) AX_dax__uses_transfer; #define A_dax__uses_transfer AX_dax__uses_transfer XBT_PUBLIC_DATA(short int) dax__uses_transfer_isset; -XBT_PUBLIC_DATA(AT_dax__job_id) AX_dax__job_id; -#define A_dax__job_id (dax__bufferstack + AX_dax__job_id) -XBT_PUBLIC_DATA(short int) dax__job_id_isset; -XBT_PUBLIC_DATA(AT_dax__child_ref) AX_dax__child_ref; -#define A_dax__child_ref (dax__bufferstack + AX_dax__child_ref) -XBT_PUBLIC_DATA(short int) dax__child_ref_isset; -XBT_PUBLIC_DATA(AT_dax__uses_link) AX_dax__uses_link; -#define A_dax__uses_link AX_dax__uses_link -XBT_PUBLIC_DATA(short int) dax__uses_link_isset; +XBT_PUBLIC_DATA(AT_dax__job_version) AX_dax__job_version; +#define A_dax__job_version (dax__bufferstack + AX_dax__job_version) +XBT_PUBLIC_DATA(short int) dax__job_version_isset; +XBT_PUBLIC_DATA(AT_dax__adag_count) AX_dax__adag_count; +#define A_dax__adag_count (dax__bufferstack + AX_dax__adag_count) +XBT_PUBLIC_DATA(short int) dax__adag_count_isset; +XBT_PUBLIC_DATA(AT_dax__uses_optional) AX_dax__uses_optional; +#define A_dax__uses_optional AX_dax__uses_optional +XBT_PUBLIC_DATA(short int) dax__uses_optional_isset; +XBT_PUBLIC_DATA(AT_dax__adag_jobCount) AX_dax__adag_jobCount; +#define A_dax__adag_jobCount (dax__bufferstack + AX_dax__adag_jobCount) +XBT_PUBLIC_DATA(short int) dax__adag_jobCount_isset; /* XML application utilities. */ XBT_PUBLIC(int) dax__element_context(int); diff --git a/src/simgrid/sg_config.c b/src/simgrid/sg_config.c index f857766722..89a7959bee 100644 --- a/src/simgrid/sg_config.c +++ b/src/simgrid/sg_config.c @@ -20,6 +20,7 @@ #include "simgrid/sg_config.h" #include "smpi/smpi_interface.h" #include "mc/mc.h" +#include "mc/mc_record.h" #include "instr/instr.h" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_config, surf, @@ -368,10 +369,17 @@ static void _sg_cfg_cb__surf_path(const char *name, int pos) /* callback to decide if we want to use the model-checking */ #include "xbt_modinter.h" + #ifdef HAVE_MC extern int _sg_do_model_check; /* this variable lives in xbt_main until I find a right location for it */ +extern int _sg_do_model_check_record; #endif +static void _sg_cfg_cb_model_check_replay(const char *name, int pos) +{ + MC_record_path = xbt_cfg_get_string(_sg_cfg_set, name); +} + static void _sg_cfg_cb_model_check(const char *name, int pos) { #ifdef HAVE_MC @@ -383,6 +391,17 @@ static void _sg_cfg_cb_model_check(const char *name, int pos) #endif } +static void _sg_cfg_cb_model_check_record(const char *name, int pos) +{ +#ifdef HAVE_MC + _sg_do_model_check_record = xbt_cfg_get_boolean(_sg_cfg_set, name); +#else + if (xbt_cfg_get_boolean(_sg_cfg_set, name)) { + xbt_die("You tried to activate the model-checking record from the command line, but it was not compiled in. Change your settings in cmake, recompile and try again"); + } +#endif +} + extern int _sg_do_verbose_exit; static void _sg_cfg_cb_verbose_exit(const char *name, int pos) @@ -603,6 +622,11 @@ void sg_config_init(int *argc, char **argv) xbt_cfgelm_boolean, 1, 1, NULL, NULL); xbt_cfg_setdefault_boolean(_sg_cfg_set, "network/maxmin_selective_update", "no"); + /* Replay (this part is enabled event if MC it disabled) */ + xbt_cfg_register(&_sg_cfg_set, "model-check/replay", + "Uenable replay mode with the given path", + xbt_cfgelm_string, 0, 1, _sg_cfg_cb_model_check_replay, NULL); + #ifdef HAVE_MC /* do model-checking */ xbt_cfg_register(&_sg_cfg_set, "model-check", @@ -610,6 +634,12 @@ void sg_config_init(int *argc, char **argv) xbt_cfgelm_boolean, 1, 1, _sg_cfg_cb_model_check, NULL); xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check", "no"); + /* do model-checking-record */ + xbt_cfg_register(&_sg_cfg_set, "model-check/record", + "Record the model-checking paths", + xbt_cfgelm_boolean, 1, 1, _sg_cfg_cb_model_check_record, NULL); + xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/record", "no"); + /* do stateful model-checking */ xbt_cfg_register(&_sg_cfg_set, "model-check/checkpoint", "Specify the amount of steps between checkpoints during stateful model-checking (default: 0 => stateless verification). " diff --git a/src/simix/libsmx.c b/src/simix/libsmx.c index 199f085502..75ab8dca8c 100644 --- a/src/simix/libsmx.c +++ b/src/simix/libsmx.c @@ -1471,12 +1471,12 @@ int simcall_mc_compare_snapshots(void *s1, void *s2) { return simcall_BODY_mc_compare_snapshots(s1, s2); } +#endif /* HAVE_MC */ + int simcall_mc_random(int min, int max) { return simcall_BODY_mc_random(min, max); } -#endif /* HAVE_MC */ - /* ************************************************************************** */ /** @brief returns a printable string representing a simcall */ diff --git a/src/simix/popping_accessors.h b/src/simix/popping_accessors.h index aa44baeb9a..de024d6e24 100644 --- a/src/simix/popping_accessors.h +++ b/src/simix/popping_accessors.h @@ -1799,6 +1799,25 @@ static inline xbt_dict_t simcall_asr_get_properties__get__result(smx_simcall_t s static inline void simcall_asr_get_properties__set__result(smx_simcall_t simcall, void* result){ simcall->result.dp = result; } + +static inline int simcall_mc_random__get__min(smx_simcall_t simcall) { + return simcall->args[0].i; +} +static inline void simcall_mc_random__set__min(smx_simcall_t simcall, int arg) { + simcall->args[0].i = arg; +} +static inline int simcall_mc_random__get__max(smx_simcall_t simcall) { + return simcall->args[1].i; +} +static inline void simcall_mc_random__set__max(smx_simcall_t simcall, int arg) { + simcall->args[1].i = arg; +} +static inline int simcall_mc_random__get__result(smx_simcall_t simcall){ + return simcall->result.i; +} +static inline void simcall_mc_random__set__result(smx_simcall_t simcall, int result){ + simcall->result.i = result; +} #ifdef HAVE_LATENCY_BOUND_TRACKING static inline smx_synchro_t simcall_comm_is_latency_bounded__get__comm(smx_simcall_t simcall) { @@ -1858,25 +1877,6 @@ static inline int simcall_mc_compare_snapshots__get__result(smx_simcall_t simcal static inline void simcall_mc_compare_snapshots__set__result(smx_simcall_t simcall, int result){ simcall->result.i = result; } - -static inline int simcall_mc_random__get__min(smx_simcall_t simcall) { - return simcall->args[0].i; -} -static inline void simcall_mc_random__set__min(smx_simcall_t simcall, int arg) { - simcall->args[0].i = arg; -} -static inline int simcall_mc_random__get__max(smx_simcall_t simcall) { - return simcall->args[1].i; -} -static inline void simcall_mc_random__set__max(smx_simcall_t simcall, int arg) { - simcall->args[1].i = arg; -} -static inline int simcall_mc_random__get__result(smx_simcall_t simcall){ - return simcall->result.i; -} -static inline void simcall_mc_random__set__result(smx_simcall_t simcall, int result){ - simcall->result.i = result; -} #endif @@ -1930,6 +1930,7 @@ int simcall_HANDLER_file_move(smx_simcall_t simcall, smx_file_t fd, const char* sg_size_t simcall_HANDLER_storage_get_free_size(smx_simcall_t simcall, smx_storage_t storage); sg_size_t simcall_HANDLER_storage_get_used_size(smx_simcall_t simcall, smx_storage_t name); xbt_dict_t simcall_HANDLER_asr_get_properties(smx_simcall_t simcall, const char* name); +int simcall_HANDLER_mc_random(smx_simcall_t simcall, int min, int max); #ifdef HAVE_LATENCY_BOUND_TRACKING #endif @@ -1941,5 +1942,4 @@ xbt_dict_t simcall_HANDLER_asr_get_properties(smx_simcall_t simcall, const char* #ifdef HAVE_MC mc_snapshot_t simcall_HANDLER_mc_snapshot(smx_simcall_t simcall); int simcall_HANDLER_mc_compare_snapshots(smx_simcall_t simcall, mc_snapshot_t s1, mc_snapshot_t s2); -int simcall_HANDLER_mc_random(smx_simcall_t simcall, int min, int max); #endif diff --git a/src/simix/popping_bodies.c b/src/simix/popping_bodies.c index fd28480de4..81efa338a2 100644 --- a/src/simix/popping_bodies.c +++ b/src/simix/popping_bodies.c @@ -2587,6 +2587,28 @@ inline static xbt_dict_t simcall_BODY_asr_get_properties(const char* name) { } return self->simcall.result.dp; } + +inline static int simcall_BODY_mc_random(int min, int max) { + smx_process_t self = SIMIX_process_self(); + + /* Go to that function to follow the code flow through the simcall barrier */ + if (0) simcall_HANDLER_mc_random(&self->simcall, min, max); + /* end of the guide intended to the poor programmer wanting to go from MSG to Surf */ + + self->simcall.call = SIMCALL_MC_RANDOM; + memset(&self->simcall.result, 0, sizeof(self->simcall.result)); + memset(self->simcall.args, 0, sizeof(self->simcall.args)); + self->simcall.args[0].i = (int) min; + self->simcall.args[1].i = (int) max; + if (self != simix_global->maestro_process) { + XBT_DEBUG("Yield process '%s' on simcall %s (%d)", self->name, + SIMIX_simcall_name(self->simcall.call), (int)self->simcall.call); + SIMIX_process_yield(self); + } else { + SIMIX_simcall_handle(&self->simcall, 0); + } + return self->simcall.result.i; + } #ifdef HAVE_LATENCY_BOUND_TRACKING inline static int simcall_BODY_comm_is_latency_bounded(smx_synchro_t comm) { @@ -2680,26 +2702,4 @@ inline static int simcall_BODY_mc_compare_snapshots(mc_snapshot_t s1, mc_snapsho } return self->simcall.result.i; } - -inline static int simcall_BODY_mc_random(int min, int max) { - smx_process_t self = SIMIX_process_self(); - - /* Go to that function to follow the code flow through the simcall barrier */ - if (0) simcall_HANDLER_mc_random(&self->simcall, min, max); - /* end of the guide intended to the poor programmer wanting to go from MSG to Surf */ - - self->simcall.call = SIMCALL_MC_RANDOM; - memset(&self->simcall.result, 0, sizeof(self->simcall.result)); - memset(self->simcall.args, 0, sizeof(self->simcall.args)); - self->simcall.args[0].i = (int) min; - self->simcall.args[1].i = (int) max; - if (self != simix_global->maestro_process) { - XBT_DEBUG("Yield process '%s' on simcall %s (%d)", self->name, - SIMIX_simcall_name(self->simcall.call), (int)self->simcall.call); - SIMIX_process_yield(self); - } else { - SIMIX_simcall_handle(&self->simcall, 0); - } - return self->simcall.result.i; - } #endif diff --git a/src/simix/popping_enum.h b/src/simix/popping_enum.h index 46a84a1b26..634f03957a 100644 --- a/src/simix/popping_enum.h +++ b/src/simix/popping_enum.h @@ -136,6 +136,7 @@ typedef enum { SIMCALL_STORAGE_GET_PROPERTIES, SIMCALL_STORAGE_GET_CONTENT, SIMCALL_ASR_GET_PROPERTIES, + SIMCALL_MC_RANDOM, #ifdef HAVE_LATENCY_BOUND_TRACKING SIMCALL_COMM_IS_LATENCY_BOUNDED, #endif @@ -147,7 +148,6 @@ typedef enum { #ifdef HAVE_MC SIMCALL_MC_SNAPSHOT, SIMCALL_MC_COMPARE_SNAPSHOTS, - SIMCALL_MC_RANDOM, #endif NUM_SIMCALLS } e_smx_simcall_t; diff --git a/src/simix/popping_generated.c b/src/simix/popping_generated.c index e4cc8a5a21..0a6893003f 100644 --- a/src/simix/popping_generated.c +++ b/src/simix/popping_generated.c @@ -140,6 +140,7 @@ const char* simcall_names[] = { [SIMCALL_STORAGE_GET_PROPERTIES] = "SIMCALL_STORAGE_GET_PROPERTIES", [SIMCALL_STORAGE_GET_CONTENT] = "SIMCALL_STORAGE_GET_CONTENT", [SIMCALL_ASR_GET_PROPERTIES] = "SIMCALL_ASR_GET_PROPERTIES", + [SIMCALL_MC_RANDOM] = "SIMCALL_MC_RANDOM", #ifdef HAVE_LATENCY_BOUND_TRACKING [SIMCALL_COMM_IS_LATENCY_BOUNDED] = "SIMCALL_COMM_IS_LATENCY_BOUNDED", #endif @@ -151,7 +152,6 @@ const char* simcall_names[] = { #ifdef HAVE_MC [SIMCALL_MC_SNAPSHOT] = "SIMCALL_MC_SNAPSHOT", [SIMCALL_MC_COMPARE_SNAPSHOTS] = "SIMCALL_MC_COMPARE_SNAPSHOTS", - [SIMCALL_MC_RANDOM] = "SIMCALL_MC_RANDOM", #endif [SIMCALL_NONE] = "NONE" }; @@ -738,6 +738,11 @@ case SIMCALL_ASR_GET_PROPERTIES: SIMIX_simcall_answer(simcall); break; +case SIMCALL_MC_RANDOM: + simcall->result.i = simcall_HANDLER_mc_random(simcall , simcall->args[0].i, simcall->args[1].i); + SIMIX_simcall_answer(simcall); + break; + #ifdef HAVE_LATENCY_BOUND_TRACKING case SIMCALL_COMM_IS_LATENCY_BOUNDED: simcall->result.i = SIMIX_comm_is_latency_bounded((smx_synchro_t) simcall->args[0].dp); @@ -765,11 +770,6 @@ case SIMCALL_MC_COMPARE_SNAPSHOTS: SIMIX_simcall_answer(simcall); break; -case SIMCALL_MC_RANDOM: - simcall->result.i = simcall_HANDLER_mc_random(simcall , simcall->args[0].i, simcall->args[1].i); - SIMIX_simcall_answer(simcall); - break; - #endif case NUM_SIMCALLS: break; diff --git a/src/simix/popping_private.h b/src/simix/popping_private.h index 52c0b71614..8eefe725ac 100644 --- a/src/simix/popping_private.h +++ b/src/simix/popping_private.h @@ -47,20 +47,13 @@ union u_smx_scalar { typedef struct s_smx_simcall { e_smx_simcall_t call; smx_process_t issuer; -#ifdef HAVE_MC int mc_value; -#endif union u_smx_scalar args[11]; union u_smx_scalar result; } s_smx_simcall_t, *smx_simcall_t; -#if HAVE_MC #define SIMCALL_SET_MC_VALUE(simcall, value) ((simcall)->mc_value = (value)) #define SIMCALL_GET_MC_VALUE(simcall) ((simcall)->mc_value) -#else -#define SIMCALL_SET_MC_VALUE(simcall, value) ((void)0) -#define SIMCALL_GET_MC_VALUE(simcall) 0 -#endif #include "popping_accessors.h" diff --git a/src/simix/simcalls.in b/src/simix/simcalls.in index d3f47c73f0..a2d871116e 100644 --- a/src/simix/simcalls.in +++ b/src/simix/simcalls.in @@ -132,6 +132,7 @@ Func H storage_get_used_size (sg_size_t) (name, void*, smx_storage_t) Func - storage_get_properties (void*, xbt_dict_t) (storage, void*, smx_storage_t) Func - storage_get_content (void*, xbt_dict_t) (storage, void*, smx_storage_t) Func H asr_get_properties (void*, xbt_dict_t) (name, const char*) +Func H mc_random (int) (min, int) (max, int) ## HAVE_LATENCY_BOUND_TRACKING Func - comm_is_latency_bounded (int) (comm, void*, smx_synchro_t) ## HAVE_TRACING @@ -139,4 +140,3 @@ Proc - set_category (void) (synchro, void*, smx_synchro_t) (category, const char ## HAVE_MC Func H mc_snapshot (void*, mc_snapshot_t) Func H mc_compare_snapshots (int) (s1, void*, mc_snapshot_t) (s2, void*, mc_snapshot_t) -Func H mc_random (int) (min, int) (max, int) diff --git a/src/simix/smx_global.c b/src/simix/smx_global.c index cbf502fc52..6d52482a29 100644 --- a/src/simix/smx_global.c +++ b/src/simix/smx_global.c @@ -16,6 +16,7 @@ #ifdef HAVE_MC #include "mc/mc_private.h" #endif +#include "mc/mc_record.h" #ifdef HAVE_SMPI #include "smpi/private.h" @@ -306,6 +307,11 @@ static int process_syscall_color(void *p) */ void SIMIX_run(void) { + if(MC_record_path) { + MC_record_replay_from_string(MC_record_path); + return; + } + double time = 0; smx_process_t process; surf_action_t action; @@ -607,4 +613,3 @@ xbt_dict_t SIMIX_asr_get_properties(const char *name) { return xbt_lib_get_or_null(as_router_lib, name, ROUTING_PROP_ASR_LEVEL); } - diff --git a/src/smpi/smpi_global.c b/src/smpi/smpi_global.c index 4f001b6736..16899d192c 100644 --- a/src/smpi/smpi_global.c +++ b/src/smpi/smpi_global.c @@ -7,6 +7,7 @@ #include "private.h" #include "smpi_mpi_dt_private.h" #include "mc/mc.h" +#include "mc/mc_record.h" #include "xbt/replay.h" #include "surf/surf.h" #include "simix/smx_private.h" diff --git a/src/surf/simgrid_dtd.c b/src/surf/simgrid_dtd.c index f7d9cde9ce..c110244cf3 100644 --- a/src/surf/simgrid_dtd.c +++ b/src/surf/simgrid_dtd.c @@ -4681,366 +4681,366 @@ const char surfxml_flexml_version[] = "1.9.6"; int surfxml_pcdata_ix; extern char *surfxml_bufferstack; #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix) -AT_surfxml_cluster_radical AX_surfxml_cluster_radical; -#define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical) -short int surfxml_cluster_radical_isset; -AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat; -#define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat) -short int surfxml_cluster_bb___lat_isset; -AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity; -#define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity) -short int surfxml_trace_periodicity_isset; -AT_surfxml_cluster_core AX_surfxml_cluster_core; -#define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core) -short int surfxml_cluster_core_isset; -AT_surfxml_config_id AX_surfxml_config_id; -#define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id) -short int surfxml_config_id_isset; -AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst; -#define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst) -short int surfxml_bypassASroute_gw___dst_isset; -AT_surfxml_AS_id AX_surfxml_AS_id; -#define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id) -short int surfxml_AS_id_isset; -AT_surfxml_trace_file AX_surfxml_trace_file; -#define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file) -short int surfxml_trace_file_isset; -AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw; -#define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw) -short int surfxml_cabinet_bw_isset; -AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters; -#define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters) -short int surfxml_cluster_topo___parameters_isset; -AT_surfxml_host___link_up AX_surfxml_host___link_up; -#define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up) -short int surfxml_host___link_up_isset; -AT_surfxml_storage_attach AX_surfxml_storage_attach; -#define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach) -short int surfxml_storage_attach_isset; -AT_surfxml_peer_power AX_surfxml_peer_power; -#define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power) -short int surfxml_peer_power_isset; -AT_surfxml_storage___type_content___type AX_surfxml_storage___type_content___type; -#define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type) -short int surfxml_storage___type_content___type_isset; -AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix; -#define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix) -short int surfxml_cluster_prefix_isset; -AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst; -#define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst) -short int surfxml_ASroute_dst_isset; -AT_surfxml_ASroute_src AX_surfxml_ASroute_src; -#define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src) -short int surfxml_ASroute_src_isset; -AT_surfxml_peer_state___file AX_surfxml_peer_state___file; -#define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file) -short int surfxml_peer_state___file_isset; -AT_surfxml_prop_id AX_surfxml_prop_id; -#define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id) -short int surfxml_prop_id_isset; -AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id; -#define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id) -short int surfxml_cluster_router___id_isset; -AT_surfxml_host___link_down AX_surfxml_host___link_down; -#define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down) -short int surfxml_host___link_down_isset; -AT_surfxml_random_min AX_surfxml_random_min; -#define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min) -short int surfxml_random_min_isset; -AT_surfxml_cluster_power AX_surfxml_cluster_power; -#define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power) -short int surfxml_cluster_power_isset; -AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file; -#define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file) -short int surfxml_cluster_availability___file_isset; -AT_surfxml_process_start___time AX_surfxml_process_start___time; -#define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time) -short int surfxml_process_start___time_isset; +AT_surfxml_platform_version AX_surfxml_platform_version; +#define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version) +short int surfxml_platform_version_isset; +AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id; +#define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id) +short int surfxml_link___ctn_id_isset; AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file; #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file) short int surfxml_peer_availability___file_isset; -AT_surfxml_random_generator AX_surfxml_random_generator; -#define A_surfxml_random_generator AX_surfxml_random_generator -short int surfxml_random_generator_isset; -AT_surfxml_host___link_id AX_surfxml_host___link_id; -#define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id) -short int surfxml_host___link_id_isset; -AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file; -#define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file) -short int surfxml_link_bandwidth___file_isset; -AT_surfxml_storage_id AX_surfxml_storage_id; -#define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id) -short int surfxml_storage_id_isset; -AT_surfxml_AS_routing AX_surfxml_AS_routing; -#define A_surfxml_AS_routing AX_surfxml_AS_routing -short int surfxml_AS_routing_isset; -AT_surfxml_host_availability___file AX_surfxml_host_availability___file; -#define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file) -short int surfxml_host_availability___file_isset; -AT_surfxml_cluster_lat AX_surfxml_cluster_lat; -#define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat) -short int surfxml_cluster_lat_isset; AT_surfxml_storage_content AX_surfxml_storage_content; #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content) short int surfxml_storage_content_isset; -AT_surfxml_host_availability AX_surfxml_host_availability; -#define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability) -short int surfxml_host_availability_isset; -AT_surfxml_link_latency___file AX_surfxml_link_latency___file; -#define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file) -short int surfxml_link_latency___file_isset; -AT_surfxml_cabinet_power AX_surfxml_cabinet_power; -#define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power) -short int surfxml_cabinet_power_isset; -AT_surfxml_host_core AX_surfxml_host_core; -#define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core) -short int surfxml_host_core_isset; -AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy; -#define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy -short int surfxml_cluster_bb___sharing___policy_isset; -AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat; -#define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat) -short int surfxml_cabinet_lat_isset; +AT_surfxml_route_dst AX_surfxml_route_dst; +#define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst) +short int surfxml_route_dst_isset; +AT_surfxml_mount_storageId AX_surfxml_mount_storageId; +#define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId) +short int surfxml_mount_storageId_isset; +AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src; +#define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src) +short int surfxml_bypassASroute_src_isset; +AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id; +#define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id) +short int surfxml_cluster_router___id_isset; +AT_surfxml_cluster_topology AX_surfxml_cluster_topology; +#define A_surfxml_cluster_topology AX_surfxml_cluster_topology +short int surfxml_cluster_topology_isset; +AT_surfxml_host___link_id AX_surfxml_host___link_id; +#define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id) +short int surfxml_host___link_id_isset; +AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace; +#define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace) +short int surfxml_trace___connect_trace_isset; +AT_surfxml_host_pstate AX_surfxml_host_pstate; +#define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate) +short int surfxml_host_pstate_isset; +AT_surfxml_storage___type_content___type AX_surfxml_storage___type_content___type; +#define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type) +short int surfxml_storage___type_content___type_isset; +AT_surfxml_model___prop_value AX_surfxml_model___prop_value; +#define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value) +short int surfxml_model___prop_value_isset; +AT_surfxml_prop_id AX_surfxml_prop_id; +#define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id) +short int surfxml_prop_id_isset; +AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical; +#define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical +short int surfxml_ASroute_symmetrical_isset; +AT_surfxml_link_id AX_surfxml_link_id; +#define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id) +short int surfxml_link_id_isset; AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src; #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src) short int surfxml_ASroute_gw___src_isset; AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical; #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical) short int surfxml_cabinet_radical_isset; -AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src; -#define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src) -short int surfxml_bypassRoute_src_isset; -AT_surfxml_host_state AX_surfxml_host_state; -#define A_surfxml_host_state AX_surfxml_host_state -short int surfxml_host_state_isset; -AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix; -#define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix) -short int surfxml_cabinet_prefix_isset; -AT_surfxml_random_mean AX_surfxml_random_mean; -#define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean) -short int surfxml_random_mean_isset; -AT_surfxml_backbone_latency AX_surfxml_backbone_latency; -#define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency) -short int surfxml_backbone_latency_isset; -AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out; -#define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out) -short int surfxml_peer_bw___out_isset; -AT_surfxml_argument_value AX_surfxml_argument_value; -#define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value) -short int surfxml_argument_value_isset; -AT_surfxml_process_on___failure AX_surfxml_process_on___failure; -#define A_surfxml_process_on___failure AX_surfxml_process_on___failure -short int surfxml_process_on___failure_isset; -AT_surfxml_route_dst AX_surfxml_route_dst; -#define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst) -short int surfxml_route_dst_isset; -AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix; -#define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix) -short int surfxml_cluster_suffix_isset; -AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind; -#define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind -short int surfxml_trace___connect_kind_isset; AT_surfxml_cabinet_id AX_surfxml_cabinet_id; #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id) short int surfxml_cabinet_id_isset; -AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link; -#define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link) -short int surfxml_cluster_limiter___link_isset; -AT_surfxml_mount_name AX_surfxml_mount_name; -#define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name) -short int surfxml_mount_name_isset; -AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src; -#define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src) -short int surfxml_bypassASroute_src_isset; -AT_surfxml_host_coordinates AX_surfxml_host_coordinates; -#define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates) -short int surfxml_host_coordinates_isset; -AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction; -#define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction -short int surfxml_link___ctn_direction_isset; +AT_surfxml_argument_value AX_surfxml_argument_value; +#define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value) +short int surfxml_argument_value_isset; +AT_surfxml_random_seed AX_surfxml_random_seed; +#define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed) +short int surfxml_random_seed_isset; +AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity; +#define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity) +short int surfxml_trace_periodicity_isset; +AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file; +#define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file) +short int surfxml_cluster_state___file_isset; +AT_surfxml_model___prop_id AX_surfxml_model___prop_id; +#define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id) +short int surfxml_model___prop_id_isset; +AT_surfxml_host_state AX_surfxml_host_state; +#define A_surfxml_host_state AX_surfxml_host_state +short int surfxml_host_state_isset; +AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth; +#define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth) +short int surfxml_link_bandwidth_isset; +AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth; +#define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth) +short int surfxml_backbone_bandwidth_isset; +AT_surfxml_host_availability___file AX_surfxml_host_availability___file; +#define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file) +short int surfxml_host_availability___file_isset; AT_surfxml_mstorage_name AX_surfxml_mstorage_name; #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name) short int surfxml_mstorage_name_isset; +AT_surfxml_cluster_core AX_surfxml_cluster_core; +#define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core) +short int surfxml_cluster_core_isset; +AT_surfxml_trace_id AX_surfxml_trace_id; +#define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id) +short int surfxml_trace_id_isset; +AT_surfxml_process_function AX_surfxml_process_function; +#define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function) +short int surfxml_process_function_isset; +AT_surfxml_backbone_id AX_surfxml_backbone_id; +#define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id) +short int surfxml_backbone_id_isset; +AT_surfxml_host_coordinates AX_surfxml_host_coordinates; +#define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates) +short int surfxml_host_coordinates_isset; +AT_surfxml_storage___type_model AX_surfxml_storage___type_model; +#define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model) +short int surfxml_storage___type_model_isset; +AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw; +#define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw) +short int surfxml_cluster_loopback___bw_isset; +AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst; +#define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst) +short int surfxml_ASroute_gw___dst_isset; +AT_surfxml_mount_name AX_surfxml_mount_name; +#define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name) +short int surfxml_mount_name_isset; +AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element; +#define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element) +short int surfxml_trace___connect_element_isset; AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy; #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy short int surfxml_cluster_sharing___policy_isset; -AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical; -#define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical -short int surfxml_ASroute_symmetrical_isset; +AT_surfxml_random_generator AX_surfxml_random_generator; +#define A_surfxml_random_generator AX_surfxml_random_generator +short int surfxml_random_generator_isset; +AT_surfxml_config_id AX_surfxml_config_id; +#define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id) +short int surfxml_config_id_isset; +AT_surfxml_storage_typeId AX_surfxml_storage_typeId; +#define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId) +short int surfxml_storage_typeId_isset; AT_surfxml_host_power AX_surfxml_host_power; #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power) short int surfxml_host_power_isset; -AT_surfxml_model___prop_id AX_surfxml_model___prop_id; -#define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id) -short int surfxml_model___prop_id_isset; -AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId; -#define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId) -short int surfxml_mstorage_typeId_isset; -AT_surfxml_cluster_id AX_surfxml_cluster_id; -#define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id) -short int surfxml_cluster_id_isset; -AT_surfxml_cluster_topology AX_surfxml_cluster_topology; -#define A_surfxml_cluster_topology AX_surfxml_cluster_topology -short int surfxml_cluster_topology_isset; -AT_surfxml_include_file AX_surfxml_include_file; -#define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file) -short int surfxml_include_file_isset; -AT_surfxml_link_state AX_surfxml_link_state; -#define A_surfxml_link_state AX_surfxml_link_state -short int surfxml_link_state_isset; -AT_surfxml_random_max AX_surfxml_random_max; -#define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max) -short int surfxml_random_max_isset; -AT_surfxml_storage___type_content AX_surfxml_storage___type_content; -#define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content) -short int surfxml_storage___type_content_isset; -AT_surfxml_host_state___file AX_surfxml_host_state___file; -#define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file) -short int surfxml_host_state___file_isset; -AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical; -#define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical -short int surfxml_route_symmetrical_isset; -AT_surfxml_random_id AX_surfxml_random_id; -#define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id) -short int surfxml_random_id_isset; -AT_surfxml_link_state___file AX_surfxml_link_state___file; -#define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file) -short int surfxml_link_state___file_isset; -AT_surfxml_gpu_name AX_surfxml_gpu_name; -#define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name) -short int surfxml_gpu_name_isset; -AT_surfxml_backbone_id AX_surfxml_backbone_id; -#define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id) -short int surfxml_backbone_id_isset; -AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id; -#define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id) -short int surfxml_link___ctn_id_isset; -AT_surfxml_router_id AX_surfxml_router_id; -#define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id) -short int surfxml_router_id_isset; AT_surfxml_process_host AX_surfxml_process_host; #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host) short int surfxml_process_host_isset; +AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical; +#define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical +short int surfxml_route_symmetrical_isset; +AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind; +#define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind +short int surfxml_trace___connect_kind_isset; +AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix; +#define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix) +short int surfxml_cluster_suffix_isset; AT_surfxml_random_radical AX_surfxml_random_radical; #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical) short int surfxml_random_radical_isset; -AT_surfxml_host_id AX_surfxml_host_id; -#define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id) -short int surfxml_host_id_isset; -AT_surfxml_peer_lat AX_surfxml_peer_lat; -#define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat) -short int surfxml_peer_lat_isset; -AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw; -#define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw) -short int surfxml_cluster_loopback___bw_isset; -AT_surfxml_process_function AX_surfxml_process_function; -#define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function) -short int surfxml_process_function_isset; -AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst; -#define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst) -short int surfxml_ASroute_gw___dst_isset; -AT_surfxml_mount_storageId AX_surfxml_mount_storageId; -#define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId) -short int surfxml_mount_storageId_isset; -AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst; -#define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst) -short int surfxml_bypassRoute_dst_isset; -AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file; -#define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file) -short int surfxml_cluster_state___file_isset; -AT_surfxml_storage___type_model AX_surfxml_storage___type_model; -#define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model) -short int surfxml_storage___type_model_isset; -AT_surfxml_trace_id AX_surfxml_trace_id; -#define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id) -short int surfxml_trace_id_isset; -AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src; -#define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src) -short int surfxml_bypassASroute_gw___src_isset; -AT_surfxml_host_pstate AX_surfxml_host_pstate; -#define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate) -short int surfxml_host_pstate_isset; -AT_surfxml_process_kill___time AX_surfxml_process_kill___time; -#define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time) -short int surfxml_process_kill___time_isset; -AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation; -#define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation) -short int surfxml_random_std___deviation_isset; -AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth; -#define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth) -short int surfxml_link_bandwidth_isset; -AT_surfxml_route_src AX_surfxml_route_src; -#define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src) -short int surfxml_route_src_isset; +AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction; +#define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction +short int surfxml_link___ctn_direction_isset; +AT_surfxml_random_max AX_surfxml_random_max; +#define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max) +short int surfxml_random_max_isset; +AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId; +#define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId) +short int surfxml_mstorage_typeId_isset; +AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat; +#define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat) +short int surfxml_cluster_loopback___lat_isset; +AT_surfxml_storage_attach AX_surfxml_storage_attach; +#define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach) +short int surfxml_storage_attach_isset; +AT_surfxml_backbone_latency AX_surfxml_backbone_latency; +#define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency) +short int surfxml_backbone_latency_isset; +AT_surfxml_trace_file AX_surfxml_trace_file; +#define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file) +short int surfxml_trace_file_isset; +AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates; +#define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates) +short int surfxml_peer_coordinates_isset; AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw; #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw) short int surfxml_cluster_bb___bw_isset; +AT_surfxml_link_state___file AX_surfxml_link_state___file; +#define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file) +short int surfxml_link_state___file_isset; +AT_surfxml_link_latency___file AX_surfxml_link_latency___file; +#define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file) +short int surfxml_link_latency___file_isset; +AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw; +#define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw) +short int surfxml_cabinet_bw_isset; +AT_surfxml_prop_value AX_surfxml_prop_value; +#define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value) +short int surfxml_prop_value_isset; +AT_surfxml_ASroute_src AX_surfxml_ASroute_src; +#define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src) +short int surfxml_ASroute_src_isset; +AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst; +#define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst) +short int surfxml_ASroute_dst_isset; AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy; #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy short int surfxml_link_sharing___policy_isset; +AT_surfxml_router_id AX_surfxml_router_id; +#define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id) +short int surfxml_router_id_isset; +AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link; +#define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link) +short int surfxml_cluster_limiter___link_isset; +AT_surfxml_route_src AX_surfxml_route_src; +#define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src) +short int surfxml_route_src_isset; +AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in; +#define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in) +short int surfxml_peer_bw___in_isset; +AT_surfxml_AS_routing AX_surfxml_AS_routing; +#define A_surfxml_AS_routing AX_surfxml_AS_routing +short int surfxml_AS_routing_isset; +AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix; +#define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix) +short int surfxml_cabinet_suffix_isset; +AT_surfxml_cluster_radical AX_surfxml_cluster_radical; +#define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical) +short int surfxml_cluster_radical_isset; AT_surfxml_storage___type_id AX_surfxml_storage___type_id; #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id) short int surfxml_storage___type_id_isset; -AT_surfxml_platform_version AX_surfxml_platform_version; -#define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version) -short int surfxml_platform_version_isset; -AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat; -#define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat) -short int surfxml_cluster_loopback___lat_isset; -AT_surfxml_storage_typeId AX_surfxml_storage_typeId; -#define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId) -short int surfxml_storage_typeId_isset; -AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth; -#define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth) -short int surfxml_backbone_bandwidth_isset; -AT_surfxml_cluster_bw AX_surfxml_cluster_bw; -#define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw) -short int surfxml_cluster_bw_isset; +AT_surfxml_peer_power AX_surfxml_peer_power; +#define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power) +short int surfxml_peer_power_isset; +AT_surfxml_include_file AX_surfxml_include_file; +#define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file) +short int surfxml_include_file_isset; +AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src; +#define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src) +short int surfxml_bypassRoute_src_isset; +AT_surfxml_cluster_lat AX_surfxml_cluster_lat; +#define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat) +short int surfxml_cluster_lat_isset; +AT_surfxml_link_state AX_surfxml_link_state; +#define A_surfxml_link_state AX_surfxml_link_state +short int surfxml_link_state_isset; +AT_surfxml_host_availability AX_surfxml_host_availability; +#define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability) +short int surfxml_host_availability_isset; +AT_surfxml_cabinet_power AX_surfxml_cabinet_power; +#define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power) +short int surfxml_cabinet_power_isset; +AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy; +#define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy +short int surfxml_cluster_bb___sharing___policy_isset; +AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file; +#define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file) +short int surfxml_cluster_availability___file_isset; +AT_surfxml_host___link_up AX_surfxml_host___link_up; +#define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up) +short int surfxml_host___link_up_isset; +AT_surfxml_process_on___failure AX_surfxml_process_on___failure; +#define A_surfxml_process_on___failure AX_surfxml_process_on___failure +short int surfxml_process_on___failure_isset; +AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file; +#define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file) +short int surfxml_link_bandwidth___file_isset; +AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters; +#define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters) +short int surfxml_cluster_topo___parameters_isset; +AT_surfxml_random_min AX_surfxml_random_min; +#define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min) +short int surfxml_random_min_isset; AT_surfxml_peer_id AX_surfxml_peer_id; #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id) short int surfxml_peer_id_isset; +AT_surfxml_cluster_id AX_surfxml_cluster_id; +#define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id) +short int surfxml_cluster_id_isset; +AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out; +#define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out) +short int surfxml_peer_bw___out_isset; +AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst; +#define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst) +short int surfxml_bypassASroute_gw___dst_isset; +AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat; +#define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat) +short int surfxml_cluster_bb___lat_isset; AT_surfxml_storage___type_size AX_surfxml_storage___type_size; #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size) short int surfxml_storage___type_size_isset; -AT_surfxml_link_id AX_surfxml_link_id; -#define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id) -short int surfxml_link_id_isset; -AT_surfxml_model___prop_value AX_surfxml_model___prop_value; -#define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value) -short int surfxml_model___prop_value_isset; +AT_surfxml_AS_id AX_surfxml_AS_id; +#define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id) +short int surfxml_AS_id_isset; AT_surfxml_storage_content___type AX_surfxml_storage_content___type; #define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type) short int surfxml_storage_content___type_isset; -AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element; -#define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element) -short int surfxml_trace___connect_element_isset; -AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates; -#define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates) -short int surfxml_peer_coordinates_isset; -AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace; -#define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace) -short int surfxml_trace___connect_trace_isset; -AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix; -#define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix) -short int surfxml_cabinet_suffix_isset; -AT_surfxml_random_seed AX_surfxml_random_seed; -#define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed) -short int surfxml_random_seed_isset; -AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in; -#define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in) -short int surfxml_peer_bw___in_isset; +AT_surfxml_process_start___time AX_surfxml_process_start___time; +#define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time) +short int surfxml_process_start___time_isset; AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst; #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst) short int surfxml_bypassASroute_dst_isset; -AT_surfxml_prop_value AX_surfxml_prop_value; -#define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value) -short int surfxml_prop_value_isset; -AT_surfxml_router_coordinates AX_surfxml_router_coordinates; -#define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates) -short int surfxml_router_coordinates_isset; +AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst; +#define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst) +short int surfxml_bypassRoute_dst_isset; +AT_surfxml_gpu_name AX_surfxml_gpu_name; +#define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name) +short int surfxml_gpu_name_isset; +AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix; +#define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix) +short int surfxml_cluster_prefix_isset; +AT_surfxml_peer_state___file AX_surfxml_peer_state___file; +#define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file) +short int surfxml_peer_state___file_isset; +AT_surfxml_process_kill___time AX_surfxml_process_kill___time; +#define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time) +short int surfxml_process_kill___time_isset; +AT_surfxml_storage_id AX_surfxml_storage_id; +#define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id) +short int surfxml_storage_id_isset; +AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat; +#define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat) +short int surfxml_cabinet_lat_isset; +AT_surfxml_random_mean AX_surfxml_random_mean; +#define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean) +short int surfxml_random_mean_isset; +AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation; +#define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation) +short int surfxml_random_std___deviation_isset; +AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix; +#define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix) +short int surfxml_cabinet_prefix_isset; +AT_surfxml_peer_lat AX_surfxml_peer_lat; +#define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat) +short int surfxml_peer_lat_isset; AT_surfxml_link_latency AX_surfxml_link_latency; #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency) short int surfxml_link_latency_isset; +AT_surfxml_host_state___file AX_surfxml_host_state___file; +#define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file) +short int surfxml_host_state___file_isset; +AT_surfxml_cluster_power AX_surfxml_cluster_power; +#define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power) +short int surfxml_cluster_power_isset; +AT_surfxml_random_id AX_surfxml_random_id; +#define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id) +short int surfxml_random_id_isset; +AT_surfxml_router_coordinates AX_surfxml_router_coordinates; +#define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates) +short int surfxml_router_coordinates_isset; +AT_surfxml_host_core AX_surfxml_host_core; +#define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core) +short int surfxml_host_core_isset; +AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src; +#define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src) +short int surfxml_bypassASroute_gw___src_isset; +AT_surfxml_host_id AX_surfxml_host_id; +#define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id) +short int surfxml_host_id_isset; +AT_surfxml_host___link_down AX_surfxml_host___link_down; +#define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down) +short int surfxml_host___link_down_isset; +AT_surfxml_cluster_bw AX_surfxml_cluster_bw; +#define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw) +short int surfxml_cluster_bw_isset; +AT_surfxml_storage___type_content AX_surfxml_storage___type_content; +#define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content) +short int surfxml_storage___type_content_isset; /* XML state. */ #ifdef FLEX_DEBUG @@ -5927,12 +5927,12 @@ case 26: YY_RULE_SETUP FAIL("Unexpected character `%c': `' expected.",surf_parse_text[0]); YY_BREAK -case YY_STATE_EOF(S_surfxml_platform_3): -case YY_STATE_EOF(S_surfxml_platform_6): case YY_STATE_EOF(S_surfxml_platform_1): +case YY_STATE_EOF(E_surfxml_platform): +case YY_STATE_EOF(S_surfxml_platform_3): case YY_STATE_EOF(S_surfxml_platform_8): case YY_STATE_EOF(S_surfxml_platform_4): -case YY_STATE_EOF(E_surfxml_platform): +case YY_STATE_EOF(S_surfxml_platform_6): case YY_STATE_EOF(S_surfxml_platform): if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `' expected."); YY_BREAK @@ -5975,10 +5975,10 @@ YY_RULE_SETUP if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element."); LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_14); break; - case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break; - case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break; - case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break; + case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break; + case S_surfxml_platform_3: case S_surfxml_platform_6: case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break; + case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break; + case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break; } } YY_BREAK @@ -6002,10 +6002,10 @@ YY_RULE_SETUP ETag_surfxml_include(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_14); break; - case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break; - case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break; - case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break; + case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break; + case S_surfxml_platform_3: case S_surfxml_platform_6: case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break; + case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break; + case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break; } } YY_BREAK @@ -6018,9 +6018,9 @@ case 37: YY_RULE_SETUP FAIL("Unexpected character `%c': `' expected.",surf_parse_text[0]); YY_BREAK -case YY_STATE_EOF(S_surfxml_include): case YY_STATE_EOF(E_surfxml_include): case YY_STATE_EOF(S_surfxml_include_2): +case YY_STATE_EOF(S_surfxml_include): if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `' expected."); YY_BREAK @@ -6088,13 +6088,13 @@ YY_RULE_SETUP if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element."); LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break; - case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break; - case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break; - case S_surfxml_AS_10: case S_surfxml_AS_7: case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS_11: SET(S_surfxml_AS_11); break; - case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break; - case S_surfxml_AS_13: SET(S_surfxml_AS_14); break; - case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS: case S_surfxml_AS_16: case S_surfxml_AS_12: SET(S_surfxml_AS_16); break; + case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break; + case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break; + case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break; + case S_surfxml_AS_8: SET(S_surfxml_AS_9); break; + case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break; + case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break; + case S_surfxml_AS_9: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_10: case S_surfxml_AS: case S_surfxml_AS_4: case S_surfxml_AS_11: SET(S_surfxml_AS_11); break; } } YY_BREAK @@ -6120,13 +6120,13 @@ YY_RULE_SETUP surfxml_pcdata_ix = popbuffer(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break; - case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break; - case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break; - case S_surfxml_AS_10: case S_surfxml_AS_7: case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS_11: SET(S_surfxml_AS_11); break; - case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break; - case S_surfxml_AS_13: SET(S_surfxml_AS_14); break; - case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS: case S_surfxml_AS_16: case S_surfxml_AS_12: SET(S_surfxml_AS_16); break; + case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break; + case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break; + case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break; + case S_surfxml_AS_8: SET(S_surfxml_AS_9); break; + case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break; + case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break; + case S_surfxml_AS_9: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_10: case S_surfxml_AS: case S_surfxml_AS_4: case S_surfxml_AS_11: SET(S_surfxml_AS_11); break; } } YY_BREAK @@ -6287,7 +6287,7 @@ YY_RULE_SETUP if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element."); LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_2: SET(S_surfxml_platform_3); break; + case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break; } } YY_BREAK @@ -6311,7 +6311,7 @@ YY_RULE_SETUP ETag_surfxml_random(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_2: SET(S_surfxml_platform_3); break; + case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break; } } YY_BREAK @@ -6417,13 +6417,13 @@ YY_RULE_SETUP if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element."); LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break; - case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break; - case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break; - case S_surfxml_AS_10: case S_surfxml_AS_7: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_1: SET(S_surfxml_AS_11); break; - case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break; - case S_surfxml_AS_13: SET(S_surfxml_AS_14); break; - case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_12: case S_surfxml_AS: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break; + case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break; + case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break; + case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break; + case S_surfxml_AS_8: SET(S_surfxml_AS_9); break; + case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break; + case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break; + case S_surfxml_AS_9: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS: case S_surfxml_AS_10: case S_surfxml_AS_4: case S_surfxml_AS_11: SET(S_surfxml_AS_11); break; } } YY_BREAK @@ -6447,13 +6447,13 @@ YY_RULE_SETUP ETag_surfxml_trace___connect(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break; - case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break; - case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break; - case S_surfxml_AS_10: case S_surfxml_AS_7: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_1: SET(S_surfxml_AS_11); break; - case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break; - case S_surfxml_AS_13: SET(S_surfxml_AS_14); break; - case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_12: case S_surfxml_AS: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break; + case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break; + case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break; + case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break; + case S_surfxml_AS_8: SET(S_surfxml_AS_9); break; + case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break; + case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break; + case S_surfxml_AS_9: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS: case S_surfxml_AS_10: case S_surfxml_AS_4: case S_surfxml_AS_11: SET(S_surfxml_AS_11); break; } } YY_BREAK @@ -6575,9 +6575,9 @@ YY_RULE_SETUP if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element."); LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break; - case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break; - case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS: SET(S_surfxml_AS_6); break; + case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break; + case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break; + case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break; } } YY_BREAK @@ -6601,9 +6601,9 @@ YY_RULE_SETUP ETag_surfxml_AS(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break; - case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break; - case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS: SET(S_surfxml_AS_6); break; + case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break; + case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break; + case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break; } } YY_BREAK @@ -6616,18 +6616,18 @@ case 134: YY_RULE_SETUP FAIL("Unexpected character `%c': `' expected.",surf_parse_text[0]); YY_BREAK +case YY_STATE_EOF(S_surfxml_AS): +case YY_STATE_EOF(S_surfxml_AS_12): case YY_STATE_EOF(S_surfxml_AS_4): -case YY_STATE_EOF(S_surfxml_AS_1): -case YY_STATE_EOF(S_surfxml_AS_3): -case YY_STATE_EOF(S_surfxml_AS_11): -case YY_STATE_EOF(S_surfxml_AS_14): -case YY_STATE_EOF(E_surfxml_AS): -case YY_STATE_EOF(S_surfxml_AS_6): case YY_STATE_EOF(S_surfxml_AS_7): +case YY_STATE_EOF(S_surfxml_AS_14): case YY_STATE_EOF(S_surfxml_AS_9): +case YY_STATE_EOF(S_surfxml_AS_6): +case YY_STATE_EOF(S_surfxml_AS_11): +case YY_STATE_EOF(S_surfxml_AS_3): case YY_STATE_EOF(S_surfxml_AS_16): -case YY_STATE_EOF(S_surfxml_AS): -case YY_STATE_EOF(S_surfxml_AS_12): +case YY_STATE_EOF(S_surfxml_AS_1): +case YY_STATE_EOF(E_surfxml_AS): if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `' expected."); YY_BREAK @@ -6721,8 +6721,8 @@ YY_RULE_SETUP if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element."); LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break; - case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break; + case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break; + case S_surfxml_AS_1: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_14); break; } } YY_BREAK @@ -6746,8 +6746,8 @@ YY_RULE_SETUP ETag_surfxml_storage___type(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break; - case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break; + case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break; + case S_surfxml_AS_1: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_14); break; } } YY_BREAK @@ -6760,9 +6760,9 @@ case 153: YY_RULE_SETUP FAIL("Unexpected character `%c': `' expected.",surf_parse_text[0]); YY_BREAK -case YY_STATE_EOF(E_surfxml_storage___type): case YY_STATE_EOF(S_surfxml_storage___type_2): case YY_STATE_EOF(S_surfxml_storage___type): +case YY_STATE_EOF(E_surfxml_storage___type): if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `' expected."); YY_BREAK @@ -6818,7 +6818,7 @@ YY_RULE_SETUP if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element."); LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_host_1: case S_surfxml_host: case S_surfxml_host_2: SET(S_surfxml_host_2); break; + case S_surfxml_host: case S_surfxml_host_2: case S_surfxml_host_1: SET(S_surfxml_host_2); break; } } YY_BREAK @@ -6842,7 +6842,7 @@ YY_RULE_SETUP ETag_surfxml_mount(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_host_1: case S_surfxml_host: case S_surfxml_host_2: SET(S_surfxml_host_2); break; + case S_surfxml_host: case S_surfxml_host_2: case S_surfxml_host_1: SET(S_surfxml_host_2); break; } } YY_BREAK @@ -6911,7 +6911,7 @@ YY_RULE_SETUP if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element."); LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break; + case S_surfxml_host_2: case S_surfxml_host_1: case S_surfxml_host: SET(S_surfxml_host_2); break; } } YY_BREAK @@ -6935,7 +6935,7 @@ YY_RULE_SETUP ETag_surfxml_mstorage(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break; + case S_surfxml_host_2: case S_surfxml_host_1: case S_surfxml_host: SET(S_surfxml_host_2); break; } } YY_BREAK @@ -7092,7 +7092,7 @@ YY_RULE_SETUP if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element."); LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break; + case S_surfxml_AS_1: case S_surfxml_AS_13: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_14); break; } } YY_BREAK @@ -7116,7 +7116,7 @@ YY_RULE_SETUP ETag_surfxml_host(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break; + case S_surfxml_AS_1: case S_surfxml_AS_13: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_14); break; } } YY_BREAK @@ -7129,9 +7129,9 @@ case 208: YY_RULE_SETUP FAIL("Unexpected character `%c': `' expected.",surf_parse_text[0]); YY_BREAK -case YY_STATE_EOF(S_surfxml_host_2): case YY_STATE_EOF(S_surfxml_host): case YY_STATE_EOF(E_surfxml_host): +case YY_STATE_EOF(S_surfxml_host_2): if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `' expected."); YY_BREAK @@ -7225,8 +7225,8 @@ YY_RULE_SETUP if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element."); LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break; - case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break; + case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break; + case S_surfxml_AS_1: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break; } } YY_BREAK @@ -7250,8 +7250,8 @@ YY_RULE_SETUP ETag_surfxml_storage(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break; - case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break; + case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break; + case S_surfxml_AS_1: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break; } } YY_BREAK @@ -7265,8 +7265,8 @@ YY_RULE_SETUP FAIL("Unexpected character `%c': `' expected.",surf_parse_text[0]); YY_BREAK case YY_STATE_EOF(E_surfxml_storage): -case YY_STATE_EOF(S_surfxml_storage): case YY_STATE_EOF(S_surfxml_storage_2): +case YY_STATE_EOF(S_surfxml_storage): if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `' expected."); YY_BREAK @@ -7308,7 +7308,7 @@ YY_RULE_SETUP if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element."); LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break; + case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break; } } YY_BREAK @@ -7332,7 +7332,7 @@ YY_RULE_SETUP ETag_surfxml_gpu(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break; + case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break; } } YY_BREAK @@ -7415,7 +7415,7 @@ YY_RULE_SETUP if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element."); LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break; + case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break; } } YY_BREAK @@ -7439,7 +7439,7 @@ YY_RULE_SETUP ETag_surfxml_host___link(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break; + case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break; } } YY_BREAK @@ -7760,9 +7760,9 @@ YY_RULE_SETUP if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element."); LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS: case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break; - case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_6); break; case S_surfxml_include_1: case S_surfxml_include_2: case S_surfxml_include: SET(S_surfxml_include_2); break; + case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_1: SET(S_surfxml_AS_6); break; + case S_surfxml_platform_6: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_5: SET(S_surfxml_platform_6); break; } } YY_BREAK @@ -7786,9 +7786,9 @@ YY_RULE_SETUP ETag_surfxml_cluster(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS: case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break; - case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_6); break; case S_surfxml_include_1: case S_surfxml_include_2: case S_surfxml_include: SET(S_surfxml_include_2); break; + case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_1: SET(S_surfxml_AS_6); break; + case S_surfxml_platform_6: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_5: SET(S_surfxml_platform_6); break; } } YY_BREAK @@ -7802,8 +7802,8 @@ YY_RULE_SETUP FAIL("Unexpected character `%c': `' expected.",surf_parse_text[0]); YY_BREAK case YY_STATE_EOF(S_surfxml_cluster): -case YY_STATE_EOF(S_surfxml_cluster_2): case YY_STATE_EOF(E_surfxml_cluster): +case YY_STATE_EOF(S_surfxml_cluster_2): if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `' expected."); YY_BREAK @@ -7929,10 +7929,10 @@ YY_RULE_SETUP if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element."); LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break; - case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break; - case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform_6: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break; - case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break; + case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_14); break; + case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break; + case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break; + case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break; } } YY_BREAK @@ -7956,10 +7956,10 @@ YY_RULE_SETUP ETag_surfxml_cabinet(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break; - case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break; - case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform_6: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break; - case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break; + case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_14); break; + case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break; + case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break; + case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break; } } YY_BREAK @@ -8106,9 +8106,9 @@ YY_RULE_SETUP if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element."); LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */ switch (YY_START) { + case S_surfxml_platform_6: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break; + case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break; case S_surfxml_include_1: case S_surfxml_include_2: case S_surfxml_include: SET(S_surfxml_include_2); break; - case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_1: SET(S_surfxml_AS_6); break; - case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break; } } YY_BREAK @@ -8132,9 +8132,9 @@ YY_RULE_SETUP ETag_surfxml_peer(); popbuffer(); /* attribute */ switch (YY_START) { + case S_surfxml_platform_6: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break; + case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break; case S_surfxml_include_1: case S_surfxml_include_2: case S_surfxml_include: SET(S_surfxml_include_2); break; - case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_1: SET(S_surfxml_AS_6); break; - case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break; } } YY_BREAK @@ -8201,7 +8201,7 @@ YY_RULE_SETUP if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element."); LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break; + case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break; } } YY_BREAK @@ -8225,7 +8225,7 @@ YY_RULE_SETUP ETag_surfxml_router(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break; + case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break; } } YY_BREAK @@ -8308,8 +8308,8 @@ YY_RULE_SETUP if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element."); LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break; - case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_1: SET(S_surfxml_AS_6); break; + case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break; + case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break; } } YY_BREAK @@ -8333,8 +8333,8 @@ YY_RULE_SETUP ETag_surfxml_backbone(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break; - case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_1: SET(S_surfxml_AS_6); break; + case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break; + case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break; } } YY_BREAK @@ -8490,8 +8490,8 @@ YY_RULE_SETUP if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element."); LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_1: SET(S_surfxml_AS_6); break; - case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break; + case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break; + case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break; } } YY_BREAK @@ -8515,8 +8515,8 @@ YY_RULE_SETUP ETag_surfxml_link(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_1: SET(S_surfxml_AS_6); break; - case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break; + case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break; + case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break; } } YY_BREAK @@ -8530,8 +8530,8 @@ YY_RULE_SETUP FAIL("Unexpected character `%c': `' expected.",surf_parse_text[0]); YY_BREAK case YY_STATE_EOF(S_surfxml_link_2): -case YY_STATE_EOF(E_surfxml_link): case YY_STATE_EOF(S_surfxml_link): +case YY_STATE_EOF(E_surfxml_link): if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `' expected."); YY_BREAK @@ -8603,7 +8603,7 @@ YY_RULE_SETUP if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element."); LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS: case S_surfxml_AS_16: case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break; + case S_surfxml_AS_3: case S_surfxml_AS_16: case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_12: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break; } } YY_BREAK @@ -8627,7 +8627,7 @@ YY_RULE_SETUP ETag_surfxml_route(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS: case S_surfxml_AS_16: case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break; + case S_surfxml_AS_3: case S_surfxml_AS_16: case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_12: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break; } } YY_BREAK @@ -8640,8 +8640,8 @@ case 436: YY_RULE_SETUP FAIL("Unexpected character `%c': `' expected.",surf_parse_text[0]); YY_BREAK -case YY_STATE_EOF(S_surfxml_route_2): case YY_STATE_EOF(S_surfxml_route): +case YY_STATE_EOF(S_surfxml_route_2): case YY_STATE_EOF(E_surfxml_route): if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `' expected."); YY_BREAK @@ -8742,7 +8742,7 @@ YY_RULE_SETUP if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element."); LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_6: case S_surfxml_AS_9: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break; + case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_1: case S_surfxml_AS_9: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_4: SET(S_surfxml_AS_9); break; } } YY_BREAK @@ -8766,7 +8766,7 @@ YY_RULE_SETUP ETag_surfxml_ASroute(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_6: case S_surfxml_AS_9: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break; + case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_1: case S_surfxml_AS_9: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_4: SET(S_surfxml_AS_9); break; } } YY_BREAK @@ -8779,8 +8779,8 @@ case 457: YY_RULE_SETUP FAIL("Unexpected character `%c': `' expected.",surf_parse_text[0]); YY_BREAK -case YY_STATE_EOF(S_surfxml_ASroute): case YY_STATE_EOF(E_surfxml_ASroute): +case YY_STATE_EOF(S_surfxml_ASroute): case YY_STATE_EOF(S_surfxml_ASroute_2): if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `' expected."); YY_BREAK @@ -8846,10 +8846,10 @@ YY_RULE_SETUP if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element."); LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_route_1: case S_surfxml_route_2: case S_surfxml_route: SET(S_surfxml_route_2); break; - case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: SET(S_surfxml_bypassASroute_2); break; - case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break; - case S_surfxml_ASroute: case S_surfxml_ASroute_2: case S_surfxml_ASroute_1: SET(S_surfxml_ASroute_2); break; + case S_surfxml_route_2: case S_surfxml_route: case S_surfxml_route_1: SET(S_surfxml_route_2); break; + case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute: SET(S_surfxml_bypassRoute_2); break; + case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: case S_surfxml_ASroute: SET(S_surfxml_ASroute_2); break; + case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break; } } YY_BREAK @@ -8873,10 +8873,10 @@ YY_RULE_SETUP ETag_surfxml_link___ctn(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_route_1: case S_surfxml_route_2: case S_surfxml_route: SET(S_surfxml_route_2); break; - case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: SET(S_surfxml_bypassASroute_2); break; - case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break; - case S_surfxml_ASroute: case S_surfxml_ASroute_2: case S_surfxml_ASroute_1: SET(S_surfxml_ASroute_2); break; + case S_surfxml_route_2: case S_surfxml_route: case S_surfxml_route_1: SET(S_surfxml_route_2); break; + case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute: SET(S_surfxml_bypassRoute_2); break; + case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: case S_surfxml_ASroute: SET(S_surfxml_ASroute_2); break; + case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break; } } YY_BREAK @@ -8945,7 +8945,7 @@ YY_RULE_SETUP if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element."); LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_12: case S_surfxml_AS_16: case S_surfxml_AS: case S_surfxml_AS_1: SET(S_surfxml_AS_16); break; + case S_surfxml_AS_1: case S_surfxml_AS_15: case S_surfxml_AS_12: case S_surfxml_AS_16: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_16); break; } } YY_BREAK @@ -8969,7 +8969,7 @@ YY_RULE_SETUP ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_12: case S_surfxml_AS_16: case S_surfxml_AS: case S_surfxml_AS_1: SET(S_surfxml_AS_16); break; + case S_surfxml_AS_1: case S_surfxml_AS_15: case S_surfxml_AS_12: case S_surfxml_AS_16: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_16); break; } } YY_BREAK @@ -9068,7 +9068,7 @@ YY_RULE_SETUP if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element."); LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_4: case S_surfxml_AS_3: case S_surfxml_AS_8: case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break; + case S_surfxml_AS_1: case S_surfxml_AS_8: case S_surfxml_AS_6: case S_surfxml_AS_9: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_4: SET(S_surfxml_AS_9); break; } } YY_BREAK @@ -9092,7 +9092,7 @@ YY_RULE_SETUP ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_AS_4: case S_surfxml_AS_3: case S_surfxml_AS_8: case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break; + case S_surfxml_AS_1: case S_surfxml_AS_8: case S_surfxml_AS_6: case S_surfxml_AS_9: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_4: SET(S_surfxml_AS_9); break; } } YY_BREAK @@ -9105,8 +9105,8 @@ case 504: YY_RULE_SETUP FAIL("Unexpected character `%c': `' expected.",surf_parse_text[0]); YY_BREAK -case YY_STATE_EOF(S_surfxml_bypassASroute): case YY_STATE_EOF(E_surfxml_bypassASroute): +case YY_STATE_EOF(S_surfxml_bypassASroute): case YY_STATE_EOF(S_surfxml_bypassASroute_2): if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `' expected."); YY_BREAK @@ -9203,7 +9203,7 @@ YY_RULE_SETUP if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element."); LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_platform_7: case S_surfxml_platform_6: case S_surfxml_platform_1: case S_surfxml_platform_4: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break; + case S_surfxml_platform_7: case S_surfxml_platform_6: case S_surfxml_platform_4: case S_surfxml_platform_8: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_8); break; } } YY_BREAK @@ -9227,7 +9227,7 @@ YY_RULE_SETUP ETag_surfxml_process(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_platform_7: case S_surfxml_platform_6: case S_surfxml_platform_1: case S_surfxml_platform_4: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break; + case S_surfxml_platform_7: case S_surfxml_platform_6: case S_surfxml_platform_4: case S_surfxml_platform_8: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_8); break; } } YY_BREAK @@ -9240,9 +9240,9 @@ case 525: YY_RULE_SETUP FAIL("Unexpected character `%c': `' expected.",surf_parse_text[0]); YY_BREAK -case YY_STATE_EOF(S_surfxml_process_2): case YY_STATE_EOF(S_surfxml_process): case YY_STATE_EOF(E_surfxml_process): +case YY_STATE_EOF(S_surfxml_process_2): if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `' expected."); YY_BREAK @@ -9398,8 +9398,8 @@ case 547: YY_RULE_SETUP FAIL("Unexpected character `%c': `' expected.",surf_parse_text[0]); YY_BREAK -case YY_STATE_EOF(S_surfxml_config_2): case YY_STATE_EOF(E_surfxml_config): +case YY_STATE_EOF(S_surfxml_config_2): case YY_STATE_EOF(S_surfxml_config): if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `' expected."); YY_BREAK @@ -9458,14 +9458,14 @@ YY_RULE_SETUP if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element."); LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_config: case S_surfxml_config_2: case S_surfxml_config_1: SET(S_surfxml_config_2); break; - case S_surfxml_storage_2: case S_surfxml_storage_1: case S_surfxml_storage: SET(S_surfxml_storage_2); break; - case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: case S_surfxml_storage___type: SET(S_surfxml_storage___type_2); break; - case S_surfxml_link: case S_surfxml_link_2: case S_surfxml_link_1: SET(S_surfxml_link_2); break; - case S_surfxml_process_1: case S_surfxml_process_2: case S_surfxml_process: SET(S_surfxml_process_2); break; - case S_surfxml_host_1: case S_surfxml_host: case S_surfxml_host_2: SET(S_surfxml_host_2); break; - case S_surfxml_AS_2: case S_surfxml_AS_3: case S_surfxml_AS: SET(S_surfxml_AS_3); break; - case S_surfxml_cluster_1: case S_surfxml_cluster: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break; + case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break; + case S_surfxml_host_2: case S_surfxml_host_1: case S_surfxml_host: SET(S_surfxml_host_2); break; + case S_surfxml_config_2: case S_surfxml_config: case S_surfxml_config_1: SET(S_surfxml_config_2); break; + case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break; + case S_surfxml_link_2: case S_surfxml_link: case S_surfxml_link_1: SET(S_surfxml_link_2); break; + case S_surfxml_cluster_1: case S_surfxml_cluster_2: case S_surfxml_cluster: SET(S_surfxml_cluster_2); break; + case S_surfxml_storage___type_2: case S_surfxml_storage___type_1: case S_surfxml_storage___type: SET(S_surfxml_storage___type_2); break; + case S_surfxml_storage_2: case S_surfxml_storage: case S_surfxml_storage_1: SET(S_surfxml_storage_2); break; } } YY_BREAK @@ -9489,14 +9489,14 @@ YY_RULE_SETUP ETag_surfxml_prop(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_config: case S_surfxml_config_2: case S_surfxml_config_1: SET(S_surfxml_config_2); break; - case S_surfxml_storage_2: case S_surfxml_storage_1: case S_surfxml_storage: SET(S_surfxml_storage_2); break; - case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: case S_surfxml_storage___type: SET(S_surfxml_storage___type_2); break; - case S_surfxml_link: case S_surfxml_link_2: case S_surfxml_link_1: SET(S_surfxml_link_2); break; - case S_surfxml_process_1: case S_surfxml_process_2: case S_surfxml_process: SET(S_surfxml_process_2); break; - case S_surfxml_host_1: case S_surfxml_host: case S_surfxml_host_2: SET(S_surfxml_host_2); break; - case S_surfxml_AS_2: case S_surfxml_AS_3: case S_surfxml_AS: SET(S_surfxml_AS_3); break; - case S_surfxml_cluster_1: case S_surfxml_cluster: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break; + case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break; + case S_surfxml_host_2: case S_surfxml_host_1: case S_surfxml_host: SET(S_surfxml_host_2); break; + case S_surfxml_config_2: case S_surfxml_config: case S_surfxml_config_1: SET(S_surfxml_config_2); break; + case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break; + case S_surfxml_link_2: case S_surfxml_link: case S_surfxml_link_1: SET(S_surfxml_link_2); break; + case S_surfxml_cluster_1: case S_surfxml_cluster_2: case S_surfxml_cluster: SET(S_surfxml_cluster_2); break; + case S_surfxml_storage___type_2: case S_surfxml_storage___type_1: case S_surfxml_storage___type: SET(S_surfxml_storage___type_2); break; + case S_surfxml_storage_2: case S_surfxml_storage: case S_surfxml_storage_1: SET(S_surfxml_storage_2); break; } } YY_BREAK @@ -9567,7 +9567,7 @@ YY_RULE_SETUP if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element."); LEAVE; STag_surfxml_model___prop(); surfxml_pcdata_ix = 0; ETag_surfxml_model___prop(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_storage___type_2: case S_surfxml_storage___type: case S_surfxml_storage___type_1: SET(S_surfxml_storage___type_2); break; + case S_surfxml_storage___type: case S_surfxml_storage___type_2: case S_surfxml_storage___type_1: SET(S_surfxml_storage___type_2); break; } } YY_BREAK @@ -9591,7 +9591,7 @@ YY_RULE_SETUP ETag_surfxml_model___prop(); popbuffer(); /* attribute */ switch (YY_START) { - case S_surfxml_storage___type_2: case S_surfxml_storage___type: case S_surfxml_storage___type_1: SET(S_surfxml_storage___type_2); break; + case S_surfxml_storage___type: case S_surfxml_storage___type_2: case S_surfxml_storage___type_1: SET(S_surfxml_storage___type_2); break; } } YY_BREAK diff --git a/src/xbt/graphxml.c b/src/xbt/graphxml.c index 4a3c959823..9391589c9e 100644 --- a/src/xbt/graphxml.c +++ b/src/xbt/graphxml.c @@ -481,7 +481,7 @@ static yyconst flex_int16_t yy_accept[564] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 15, 0, 0, 14, + 0, 0, 0, 0, 0, 0, 14, 0, 0, 15, 0, 13, 0 } ; @@ -1142,42 +1142,42 @@ const char graphxml_flexml_version[] = "1.9.6"; int graphxml_pcdata_ix; extern char *graphxml_bufferstack; #define graphxml_pcdata (graphxml_bufferstack + graphxml_pcdata_ix) -AT_graphxml_graph_isDirected AX_graphxml_graph_isDirected; -#define A_graphxml_graph_isDirected AX_graphxml_graph_isDirected -short int graphxml_graph_isDirected_isset; -AT_graphxml_node_label AX_graphxml_node_label; -#define A_graphxml_node_label (graphxml_bufferstack + AX_graphxml_node_label) -short int graphxml_node_label_isset; -AT_graphxml_edge_target AX_graphxml_edge_target; -#define A_graphxml_edge_target (graphxml_bufferstack + AX_graphxml_edge_target) -short int graphxml_edge_target_isset; -AT_graphxml_edge_name AX_graphxml_edge_name; -#define A_graphxml_edge_name (graphxml_bufferstack + AX_graphxml_edge_name) -short int graphxml_edge_name_isset; -AT_graphxml_node_data AX_graphxml_node_data; -#define A_graphxml_node_data (graphxml_bufferstack + AX_graphxml_node_data) -short int graphxml_node_data_isset; AT_graphxml_node_position___y AX_graphxml_node_position___y; #define A_graphxml_node_position___y (graphxml_bufferstack + AX_graphxml_node_position___y) short int graphxml_node_position___y_isset; -AT_graphxml_edge_data AX_graphxml_edge_data; -#define A_graphxml_edge_data (graphxml_bufferstack + AX_graphxml_edge_data) -short int graphxml_edge_data_isset; -AT_graphxml_node_position___x AX_graphxml_node_position___x; -#define A_graphxml_node_position___x (graphxml_bufferstack + AX_graphxml_node_position___x) -short int graphxml_node_position___x_isset; AT_graphxml_edge_label AX_graphxml_edge_label; #define A_graphxml_edge_label (graphxml_bufferstack + AX_graphxml_edge_label) short int graphxml_edge_label_isset; +AT_graphxml_graph_isDirected AX_graphxml_graph_isDirected; +#define A_graphxml_graph_isDirected AX_graphxml_graph_isDirected +short int graphxml_graph_isDirected_isset; +AT_graphxml_node_label AX_graphxml_node_label; +#define A_graphxml_node_label (graphxml_bufferstack + AX_graphxml_node_label) +short int graphxml_node_label_isset; AT_graphxml_edge_length AX_graphxml_edge_length; #define A_graphxml_edge_length (graphxml_bufferstack + AX_graphxml_edge_length) short int graphxml_edge_length_isset; AT_graphxml_edge_source AX_graphxml_edge_source; #define A_graphxml_edge_source (graphxml_bufferstack + AX_graphxml_edge_source) short int graphxml_edge_source_isset; +AT_graphxml_edge_target AX_graphxml_edge_target; +#define A_graphxml_edge_target (graphxml_bufferstack + AX_graphxml_edge_target) +short int graphxml_edge_target_isset; AT_graphxml_node_name AX_graphxml_node_name; #define A_graphxml_node_name (graphxml_bufferstack + AX_graphxml_node_name) short int graphxml_node_name_isset; +AT_graphxml_edge_data AX_graphxml_edge_data; +#define A_graphxml_edge_data (graphxml_bufferstack + AX_graphxml_edge_data) +short int graphxml_edge_data_isset; +AT_graphxml_node_data AX_graphxml_node_data; +#define A_graphxml_node_data (graphxml_bufferstack + AX_graphxml_node_data) +short int graphxml_node_data_isset; +AT_graphxml_edge_name AX_graphxml_edge_name; +#define A_graphxml_edge_name (graphxml_bufferstack + AX_graphxml_edge_name) +short int graphxml_edge_name_isset; +AT_graphxml_node_position___x AX_graphxml_node_position___x; +#define A_graphxml_node_position___x (graphxml_bufferstack + AX_graphxml_node_position___x) +short int graphxml_node_position___x_isset; /* XML state. */ #ifdef FLEX_DEBUG @@ -1758,12 +1758,12 @@ SET(ROOT_graphxml_graph); case 14: /* rule 14 can match eol */ YY_RULE_SETUP -SET(ROOT_graphxml_node); +SET(ROOT_graphxml_edge); YY_BREAK case 15: /* rule 15 can match eol */ YY_RULE_SETUP -SET(ROOT_graphxml_edge); +SET(ROOT_graphxml_node); YY_BREAK case 16: /* rule 16 can match eol */ @@ -1860,11 +1860,11 @@ case 30: YY_RULE_SETUP FAIL("Unexpected character `%c': `' expected.",xbt_graph_parse_text[0]); YY_BREAK +case YY_STATE_EOF(S_graphxml_graph): +case YY_STATE_EOF(E_graphxml_graph): case YY_STATE_EOF(S_graphxml_graph_3): case YY_STATE_EOF(S_graphxml_graph_5): -case YY_STATE_EOF(E_graphxml_graph): case YY_STATE_EOF(S_graphxml_graph_1): -case YY_STATE_EOF(S_graphxml_graph): FAIL("Premature EOF: `' expected."); YY_BREAK @@ -1960,7 +1960,7 @@ YY_RULE_SETUP if (!AX_graphxml_node_name) FAIL("Required attribute `name' not set for `node' element."); LEAVE; STag_graphxml_node(); graphxml_pcdata_ix = 0; ETag_graphxml_node(); popbuffer(); /* attribute */ switch (YY_START) { - case S_graphxml_graph_2: case S_graphxml_graph_3: case S_graphxml_graph: SET(S_graphxml_graph_3); break; + case S_graphxml_graph: case S_graphxml_graph_2: case S_graphxml_graph_3: SET(S_graphxml_graph_3); break; case ROOT_graphxml_node: SET(EPILOG); break; } } @@ -1985,7 +1985,7 @@ YY_RULE_SETUP ETag_graphxml_node(); popbuffer(); /* attribute */ switch (YY_START) { - case S_graphxml_graph_2: case S_graphxml_graph_3: case S_graphxml_graph: SET(S_graphxml_graph_3); break; + case S_graphxml_graph: case S_graphxml_graph_2: case S_graphxml_graph_3: SET(S_graphxml_graph_3); break; case ROOT_graphxml_node: SET(EPILOG); break; } } @@ -2111,7 +2111,7 @@ YY_RULE_SETUP LEAVE; STag_graphxml_edge(); graphxml_pcdata_ix = 0; ETag_graphxml_edge(); popbuffer(); /* attribute */ switch (YY_START) { case ROOT_graphxml_edge: SET(EPILOG); break; - case S_graphxml_graph_4: case S_graphxml_graph_5: case S_graphxml_graph_3: case S_graphxml_graph_1: case S_graphxml_graph: SET(S_graphxml_graph_5); break; + case S_graphxml_graph_5: case S_graphxml_graph_4: case S_graphxml_graph_1: case S_graphxml_graph: case S_graphxml_graph_3: SET(S_graphxml_graph_5); break; } } YY_BREAK @@ -2136,7 +2136,7 @@ YY_RULE_SETUP popbuffer(); /* attribute */ switch (YY_START) { case ROOT_graphxml_edge: SET(EPILOG); break; - case S_graphxml_graph_4: case S_graphxml_graph_5: case S_graphxml_graph_3: case S_graphxml_graph_1: case S_graphxml_graph: SET(S_graphxml_graph_5); break; + case S_graphxml_graph_5: case S_graphxml_graph_4: case S_graphxml_graph_1: case S_graphxml_graph: case S_graphxml_graph_3: SET(S_graphxml_graph_5); break; } } YY_BREAK diff --git a/teshsuite/mc/replay/CMakeLists.txt b/teshsuite/mc/replay/CMakeLists.txt new file mode 100644 index 0000000000..d875af7a45 --- /dev/null +++ b/teshsuite/mc/replay/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 2.6) + +set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}") +add_executable(random_bug random_bug.c) +target_link_libraries(random_bug simgrid) + +set(tesh_files + ${tesh_files} + PARENT_SCOPE + ) +set(testsuite_src + ${testsuite_src} + ${CMAKE_CURRENT_SOURCE_DIR}/random_bug.c + PARENT_SCOPE + ) diff --git a/teshsuite/mc/replay/random_bug.c b/teshsuite/mc/replay/random_bug.c new file mode 100644 index 0000000000..80bcf410eb --- /dev/null +++ b/teshsuite/mc/replay/random_bug.c @@ -0,0 +1,37 @@ +/* Copyright (c) 2014. 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. */ + +#include + +#include +#include + +/** An (fake) application with a bug occuring for some random values + */ +static int app(int argc, char *argv[]) +{ + int x = MC_random(0, 5); + int y = MC_random(0, 5); + + if (MC_is_active()) { + MC_assert(x !=3 || y !=4); + } + if (x ==3 && y ==4) { + fprintf(stderr, "Error reached\n"); + } + + return 0; +} + +/** Main function */ +int main(int argc, char *argv[]) +{ + MSG_init(&argc, argv); + MSG_function_register("app", &app); + MSG_create_environment(argv[1]); + MSG_launch_application(argv[2]); + return (int) MSG_main(); +} diff --git a/teshsuite/mc/replay/random_bug.tesh b/teshsuite/mc/replay/random_bug.tesh new file mode 100644 index 0000000000..63b5b8f13d --- /dev/null +++ b/teshsuite/mc/replay/random_bug.tesh @@ -0,0 +1,18 @@ +#!/usr/bin/env tesh +!expect signal SIGABRT +$ ${bindir:=.}/random_bug ${srcdir:=.}/../../../examples/platforms/small_platform.xml ${srcdir:=.}/random_bug.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" --cfg=model-check:1 --cfg=model-check/record:1 +> [ 0.000000] (0:@) Configuration change: Set 'model-check' to '1' +> [ 0.000000] (0:@) Configuration change: Set 'model-check/record' to '1' +> [ 0.000000] (0:@) Check a safety property +> [ 0.000000] (0:@) Get debug information ... +> [ 0.000000] (0:@) Get debug information done ! +> [ 0.000000] (1:app@Tremblay) ************************** +> [ 0.000000] (1:app@Tremblay) *** PROPERTY NOT VALID *** +> [ 0.000000] (1:app@Tremblay) ************************** +> [ 0.000000] (1:app@Tremblay) Counter-example execution trace: +> [ 0.000000] (1:app@Tremblay) Path = 1/3;1/4 +> [ 0.000000] (1:app@Tremblay) [(1)Tremblay (app)] MC_RANDOM(3) +> [ 0.000000] (1:app@Tremblay) [(1)Tremblay (app)] MC_RANDOM(4) +> [ 0.000000] (1:app@Tremblay) Expanded states = 27 +> [ 0.000000] (1:app@Tremblay) Visited states = 68 +> [ 0.000000] (1:app@Tremblay) Executed transitions = 46 diff --git a/teshsuite/mc/replay/random_bug.xml b/teshsuite/mc/replay/random_bug.xml new file mode 100644 index 0000000000..46b16ec035 --- /dev/null +++ b/teshsuite/mc/replay/random_bug.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/teshsuite/mc/replay/random_bug_replay.tesh b/teshsuite/mc/replay/random_bug_replay.tesh new file mode 100644 index 0000000000..4f60925ac8 --- /dev/null +++ b/teshsuite/mc/replay/random_bug_replay.tesh @@ -0,0 +1,5 @@ +#!/usr/bin/env tesh +$ ${bindir:=.}/random_bug ${srcdir:=.}/../../../examples/platforms/small_platform.xml ${srcdir:=.}/random_bug.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" "--cfg=model-check/replay:1/3;1/4" +> [ 0.000000] (0:@) Configuration change: Set 'model-check/replay' to '1/3;1/4' +> [ 0.000000] (0:@) path=1/3;1/4 +> Error reached -- 2.20.1