From: Martin Quinson Date: Wed, 24 Feb 2016 18:47:27 +0000 (+0100) Subject: Merge branch 'master' of github.com:mquinson/simgrid X-Git-Tag: v3_13~689 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/a13d43daf0284cec291d65f0585fd2a44e9d87fd?hp=2e4ecba44c084819a4f16bd827545ed169b2d3be Merge branch 'master' of github.com:mquinson/simgrid --- diff --git a/CMakeLists.txt b/CMakeLists.txt index cabb55c2b6..51bd4bbdd2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -608,10 +608,7 @@ if(WIN32) try_compile(HAVE_UCONTEXT ${CMAKE_BINARY_DIR} ${CMAKE_HOME_DIRECTORY}/tools/cmake/test_prog/prog_AC_CHECK_MCSC.c - COMPILE_DEFINITIONS _XBT_WIN32 - INCLUDE_DIRECTORIES - ${CMAKE_HOME_DIRECTORY}/src/include - ${CMAKE_HOME_DIRECTORY}/src/xbt + COMPILE_DEFINITIONS -D_XBT_WIN32 -I${CMAKE_HOME_DIRECTORY}/src/include -I${CMAKE_HOME_DIRECTORY}/src/xbt ) else() # We always provide our own implementation of ucontext on Windows. diff --git a/src/bindings/lua/lua_platf.cpp b/src/bindings/lua/lua_platf.cpp index 8065bc6f86..8d07cfbad2 100644 --- a/src/bindings/lua/lua_platf.cpp +++ b/src/bindings/lua/lua_platf.cpp @@ -7,7 +7,7 @@ /* SimGrid Lua bindings */ #include "lua_private.h" -#include "src/surf/xml/platf.hpp" +#include "src/surf/xml/platf_private.hpp" #include "surf/surf_routing.h" #include #include diff --git a/src/include/mc/datatypes.h b/src/include/mc/datatypes.h index 0b45c09f97..82a1146d70 100644 --- a/src/include/mc/datatypes.h +++ b/src/include/mc/datatypes.h @@ -7,7 +7,12 @@ #ifndef MC_DATATYPE_H #define MC_DATATYPE_H -#include +#ifdef _XBT_WIN32 +# include /* context relative declarations */ +#else +# include /* context relative declarations */ +#endif + #include "xbt/misc.h" #include "xbt/swag.h" diff --git a/src/include/mc/mc.h b/src/include/mc/mc.h index d3eadeabe2..606538a78f 100644 --- a/src/include/mc/mc.h +++ b/src/include/mc/mc.h @@ -7,7 +7,12 @@ #ifndef _MC_MC_H #define _MC_MC_H -#include +#ifdef _XBT_WIN32 +# include /* context relative declarations */ +#else +# include /* context relative declarations */ +#endif + #include "xbt/base.h" #include "xbt/misc.h" diff --git a/src/include/surf/surfxml_parse_values.h b/src/include/surf/surfxml_parse_values.h deleted file mode 100644 index 3d6db8b3f5..0000000000 --- a/src/include/surf/surfxml_parse_values.h +++ /dev/null @@ -1,17 +0,0 @@ -/* Copyright (c) 2011-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 SURFXML_PARSE_VALUES_H_ -#define SURFXML_PARSE_VALUES_H_ - - -typedef struct s_surf_parsing_link_up_down *surf_parsing_link_up_down_t; -typedef struct s_surf_parsing_link_up_down { - void* link_up; - void* link_down; -} s_surf_parsing_link_up_down_t; - -#endif /* SURFXML_PARSE_VALUES_H_ */ diff --git a/src/include/xbt/win32_ucontext.h b/src/include/xbt/win32_ucontext.h index 12665bfd2b..76360dbee5 100644 --- a/src/include/xbt/win32_ucontext.h +++ b/src/include/xbt/win32_ucontext.h @@ -4,49 +4,57 @@ /* 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. */ -/* - * win32-ucontext: Unix ucontext_t operations on Windows platforms - * Copyright(C) 2007 Panagiotis E. Hadjidoukas - * - * Contact Email: phadjido@cs.uoi.gr, xdoukas@ceid.upatras.gr - * - * win32-ucontext is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * win32-ucontext is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with SimGrid in the file LICENSE-LGPL-2.1; - * if not, write to the Free Software Foundation, Inc., - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - */ - -#ifndef UCONTEXT_H -#define UCONTEXT_H - -#include - typedef struct __stack { - void *ss_sp; - size_t ss_size; - int ss_flags; -} stack_t; -typedef CONTEXT mcontext_t; -typedef unsigned long __sigset_t; -typedef struct __ucontext { - unsigned long int uc_flags; - struct __ucontext *uc_link; - stack_t uc_stack; - mcontext_t uc_mcontext; - __sigset_t uc_sigmask; -} ucontext_t; -int getcontext(ucontext_t * ucp); -int setcontext(const ucontext_t * ucp); -int makecontext(ucontext_t *, void (*)(), int, ...); -int swapcontext(ucontext_t *, const ucontext_t *); - -#endif /* UCONTEXT_H */ +/* + * win32-ucontext: Unix ucontext_t operations on Windows platforms + * Copyright(C) 2007 Panagiotis E. Hadjidoukas + * + * Contact Email: phadjido@cs.uoi.gr, xdoukas@ceid.upatras.gr + * + * win32-ucontext is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * win32-ucontext is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with SimGrid in the file LICENSE-LGPL-2.1; + * if not, write to the Free Software Foundation, Inc., + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#ifndef UCONTEXT_H +#define UCONTEXT_H + +#ifdef __cplusplus +extern "C" +{ +#endif + +#include + typedef struct __stack { + void *ss_sp; + size_t ss_size; + int ss_flags; +} stack_t; +typedef CONTEXT mcontext_t; +typedef unsigned long __sigset_t; +typedef struct __ucontext { + unsigned long int uc_flags; + struct __ucontext *uc_link; + stack_t uc_stack; + mcontext_t uc_mcontext; + __sigset_t uc_sigmask; +} ucontext_t; +int getcontext(ucontext_t * ucp); +int setcontext(const ucontext_t * ucp); +int makecontext(ucontext_t *, void (*)(), int, ...); +int swapcontext(ucontext_t *, const ucontext_t *); + +#ifdef __cplusplus +} +#endif +#endif /* UCONTEXT_H */ diff --git a/src/simix/smx_global.cpp b/src/simix/smx_global.cpp index 54cf74d888..ac04a45f6c 100644 --- a/src/simix/smx_global.cpp +++ b/src/simix/smx_global.cpp @@ -12,6 +12,7 @@ #endif #include "src/surf/surf_interface.hpp" +#include "src/surf/xml/platf.hpp" #include "smx_private.h" #include "smx_private.hpp" #include "xbt/heap.h" diff --git a/src/surf/cpu_interface.cpp b/src/surf/cpu_interface.cpp index 296877e6cb..e6a50ecba5 100644 --- a/src/surf/cpu_interface.cpp +++ b/src/surf/cpu_interface.cpp @@ -7,6 +7,7 @@ #include #include "cpu_interface.hpp" #include "plugins/energy.hpp" +#include "src/instr/instr_private.h" // TRACE_is_enabled(). FIXME: remove by subscribing tracing to the surf signals XBT_LOG_EXTERNAL_CATEGORY(surf_kernel); XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_cpu, surf, diff --git a/src/surf/instr_routing.cpp b/src/surf/instr_routing.cpp index e79947ac4c..fc53997091 100644 --- a/src/surf/instr_routing.cpp +++ b/src/surf/instr_routing.cpp @@ -6,7 +6,8 @@ #include "src/instr/instr_private.h" -#include "src/surf/surf_private.h" +#include "src/surf/surf_routing.hpp" +#include "src/surf/xml/platf_private.hpp" #include "xbt/graph.h" XBT_LOG_NEW_DEFAULT_SUBCATEGORY (instr_routing, instr, "Tracing platform hierarchy"); @@ -122,14 +123,14 @@ static void linkContainers (container_t src, container_t dst, xbt_dict_t filter) XBT_DEBUG (" linkContainers %s <-> %s", src->name, dst->name); } -static void recursiveGraphExtraction (AS_t rc, container_t container, xbt_dict_t filter) +static void recursiveGraphExtraction (simgrid::surf::As *rc, container_t container, xbt_dict_t filter) { if (!TRACE_platform_topology()){ XBT_DEBUG("Graph extraction disabled by user."); return; } - XBT_DEBUG ("Graph extraction for routing_component = %s", surf_AS_get_name(rc)); - if (!xbt_dict_is_empty(surf_AS_get_routing_sons(rc))){ + XBT_DEBUG ("Graph extraction for routing_component = %s", rc->name_); + if (!xbt_dict_is_empty(rc->sons_)){ xbt_dict_cursor_t cursor = NULL; AS_t rc_son; char *child_name; diff --git a/src/surf/network_cm02.cpp b/src/surf/network_cm02.cpp index 52188807b4..c866290c1d 100644 --- a/src/surf/network_cm02.cpp +++ b/src/surf/network_cm02.cpp @@ -9,6 +9,7 @@ #include "network_cm02.hpp" #include "maxmin_private.hpp" #include "simgrid/sg_config.h" +#include "src/instr/instr_private.h" // TRACE_is_enabled(). FIXME: remove by subscribing tracing to the surf signals XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_network); diff --git a/src/surf/network_ns3.cpp b/src/surf/network_ns3.cpp index c5af3bf080..3e0e899633 100644 --- a/src/surf/network_ns3.cpp +++ b/src/surf/network_ns3.cpp @@ -8,6 +8,7 @@ #include "src/surf/surf_private.h" #include "src/surf/host_interface.hpp" #include "simgrid/sg_config.h" +#include "src/instr/instr_private.h" // TRACE_is_enabled(). FIXME: remove by subscribing tracing to the surf signals XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(ns3); diff --git a/src/surf/surf_interface.cpp b/src/surf/surf_interface.cpp index a2624dd729..d138d20652 100644 --- a/src/surf/surf_interface.cpp +++ b/src/surf/surf_interface.cpp @@ -14,6 +14,8 @@ #include "simgrid/sg_config.h" #include "mc/mc.h" #include "virtual_machine.hpp" +#include "src/instr/instr_private.h" // TRACE_is_enabled(). FIXME: remove by subscribing tracing to the surf signals + XBT_LOG_NEW_CATEGORY(surf, "All SURF categories"); XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_kernel, surf, diff --git a/src/surf/surf_interface.hpp b/src/surf/surf_interface.hpp index 2719ed63aa..4b3a940dd0 100644 --- a/src/surf/surf_interface.hpp +++ b/src/surf/surf_interface.hpp @@ -54,6 +54,10 @@ extern XBT_PRIVATE simgrid::xbt::signal surfExitCallbacks; int XBT_PRIVATE __surf_is_absolute_file_path(const char *file_path); +static inline char* sg_storage_name(sg_storage_t storage) { + return storage->key; +} + /*********** * Classes * ***********/ diff --git a/src/surf/surf_private.h b/src/surf/surf_private.h index 1e189ef9bb..336a532a84 100644 --- a/src/surf/surf_private.h +++ b/src/surf/surf_private.h @@ -7,15 +7,9 @@ #ifndef _SURF_SURF_PRIVATE_H #define _SURF_SURF_PRIVATE_H -#include - #include "surf/surf.h" #include "surf/maxmin.h" -#include "xbt/log.h" #include "src/surf/trace_mgr.hpp" -#include "src/instr/instr_private.h" -#include "surf/surfxml_parse_values.h" -#include "src/surf/xml/platf_private.hpp" #define NO_MAX_DURATION -1.0 @@ -65,7 +59,6 @@ XBT_PUBLIC(void) routing_exit(void); XBT_PUBLIC(void) storage_register_callbacks(void); XBT_PUBLIC(void) routing_register_callbacks(void); -XBT_PUBLIC(void) routing_route_free(sg_platf_route_cbarg_t route); // FIXME: make previous function private to routing again? XBT_PUBLIC(void) generic_get_graph(xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges, AS_t rc); XBT_PRIVATE void parse_after_config(void); @@ -75,13 +68,6 @@ XBT_PRIVATE void parse_after_config(void); void TRACE_surf_host_set_speed(double date, const char *resource, double power); void TRACE_surf_link_set_bandwidth(double date, const char *resource, double bandwidth); -/********** Instr. **********/ - -XBT_PRIVATE void sg_instr_AS_begin(sg_platf_AS_cbarg_t AS); -XBT_PRIVATE void sg_instr_new_router(sg_platf_router_cbarg_t router); -XBT_PRIVATE void sg_instr_new_host(sg_platf_host_cbarg_t host); -XBT_PRIVATE void sg_instr_AS_end(void); - SG_END_DECL() #endif /* _SURF_SURF_PRIVATE_H */ diff --git a/src/surf/surf_routing.cpp b/src/surf/surf_routing.cpp index 69c04af09b..073de7043f 100644 --- a/src/surf/surf_routing.cpp +++ b/src/surf/surf_routing.cpp @@ -5,12 +5,10 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include "surf_routing.hpp" -#include "surf_routing_private.hpp" #include "surf_routing_cluster.hpp" #include "simgrid/sg_config.h" #include "storage_interface.hpp" -#include "surf/surfxml_parse_values.h" #include "src/surf/surf_routing_cluster_torus.hpp" #include "src/surf/surf_routing_cluster_fat_tree.hpp" @@ -667,9 +665,9 @@ void sg_platf_new_peer(sg_platf_peer_cbarg_t peer) char *router_id = NULL; XBT_DEBUG(" "); - host_id = HOST_PEER(peer->id); - link_id = LINK_PEER(peer->id); - router_id = ROUTER_PEER(peer->id); + host_id = bprintf("peer_%s", peer->id); + link_id = bprintf("link_%s", peer->id); + router_id = bprintf("router_%s", peer->id); XBT_DEBUG("", peer->id); s_sg_platf_AS_cbarg_t AS = SG_PLATF_AS_INITIALIZER; diff --git a/src/surf/surf_routing.hpp b/src/surf/surf_routing.hpp index 5671de1d3e..c3b614bdd8 100644 --- a/src/surf/surf_routing.hpp +++ b/src/surf/surf_routing.hpp @@ -11,12 +11,17 @@ #include #include "surf_interface.hpp" +#include "src/surf/xml/platf_private.hpp" // FIXME: including this here is pure madness. KILKILKIL XML. #include #include #include +SG_BEGIN_DECL() XBT_PUBLIC(void) routing_model_create( void *loopback); +XBT_PRIVATE xbt_node_t new_xbt_graph_node (xbt_graph_t graph, const char *name, xbt_dict_t nodes); +XBT_PRIVATE xbt_edge_t new_xbt_graph_edge (xbt_graph_t graph, xbt_node_t s, xbt_node_t d, xbt_dict_t edges); +SG_END_DECL() namespace simgrid { namespace surf { diff --git a/src/surf/surf_routing_RoutedGraph.cpp b/src/surf/surf_routing_RoutedGraph.cpp index c5e1d634d7..6af5f560a9 100644 --- a/src/surf/surf_routing_RoutedGraph.cpp +++ b/src/surf/surf_routing_RoutedGraph.cpp @@ -16,7 +16,6 @@ #include "xbt/dynar.h" #include "xbt/graph.h" -#include "surf_routing_private.hpp" #include "network_interface.hpp" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_routing_generic, surf_route, "Generic implementation of the surf routing"); diff --git a/src/surf/surf_routing_cluster.cpp b/src/surf/surf_routing_cluster.cpp index b5732dc5b5..be5d60692b 100644 --- a/src/surf/surf_routing_cluster.cpp +++ b/src/surf/surf_routing_cluster.cpp @@ -5,7 +5,6 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include "surf_routing_cluster.hpp" -#include "surf_routing_private.hpp" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_cluster, surf, "Routing part of surf"); diff --git a/src/surf/surf_routing_cluster_fat_tree.cpp b/src/surf/surf_routing_cluster_fat_tree.cpp index 7f56f1f39c..93ba4eba94 100644 --- a/src/surf/surf_routing_cluster_fat_tree.cpp +++ b/src/surf/surf_routing_cluster_fat_tree.cpp @@ -6,7 +6,6 @@ #include #include -#include "src/surf/surf_routing_private.hpp" #include "src/surf/surf_routing_cluster_fat_tree.hpp" #include "xbt/lib.h" diff --git a/src/surf/surf_routing_cluster_torus.cpp b/src/surf/surf_routing_cluster_torus.cpp index a3f38c3fda..8cd9b740aa 100644 --- a/src/surf/surf_routing_cluster_torus.cpp +++ b/src/surf/surf_routing_cluster_torus.cpp @@ -4,7 +4,6 @@ /* 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 "src/surf/surf_routing_private.hpp" #include "src/surf/surf_routing_cluster_torus.hpp" #include "src/surf/xml/platf.hpp" // FIXME: move that back to the parsing area diff --git a/src/surf/surf_routing_dijkstra.cpp b/src/surf/surf_routing_dijkstra.cpp index c0ae31a736..0d2108d4d7 100644 --- a/src/surf/surf_routing_dijkstra.cpp +++ b/src/surf/surf_routing_dijkstra.cpp @@ -4,7 +4,6 @@ /* 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 "src/surf/surf_routing_private.hpp" #include "src/surf/surf_routing_dijkstra.hpp" #include "src/surf/network_interface.hpp" diff --git a/src/surf/surf_routing_floyd.cpp b/src/surf/surf_routing_floyd.cpp index 9601c1b8f5..2f297fd65a 100644 --- a/src/surf/surf_routing_floyd.cpp +++ b/src/surf/surf_routing_floyd.cpp @@ -4,7 +4,6 @@ /* 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 "src/surf/surf_routing_private.hpp" #include "src/surf/surf_routing_floyd.hpp" #include "src/surf/network_interface.hpp" diff --git a/src/surf/surf_routing_full.cpp b/src/surf/surf_routing_full.cpp index f23626aecc..9a000f4731 100644 --- a/src/surf/surf_routing_full.cpp +++ b/src/surf/surf_routing_full.cpp @@ -4,7 +4,6 @@ /* 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 "src/surf/surf_routing_private.hpp" #include "src/surf/surf_routing_full.hpp" #include "src/surf/network_interface.hpp" diff --git a/src/surf/surf_routing_none.cpp b/src/surf/surf_routing_none.cpp index 887e9aca37..1e9014f7ed 100644 --- a/src/surf/surf_routing_none.cpp +++ b/src/surf/surf_routing_none.cpp @@ -4,7 +4,6 @@ /* 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 "src/surf/surf_routing_private.hpp" #include "src/surf/surf_routing_none.hpp" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_none, surf, "Routing part of surf"); diff --git a/src/surf/surf_routing_private.hpp b/src/surf/surf_routing_private.hpp deleted file mode 100644 index 041dda823f..0000000000 --- a/src/surf/surf_routing_private.hpp +++ /dev/null @@ -1,75 +0,0 @@ -/* Copyright (c) 2009-2011, 2013-2015. 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 _SURF_SURF_ROUTING_PRIVATE_H -#define _SURF_SURF_ROUTING_PRIVATE_H - -#include -#include "src/internal_config.h" - -#include "surf_interface.hpp" -#include "xbt/base.h" -#include "xbt/dynar.h" -#include "xbt/str.h" -#include "xbt/config.h" -#include "xbt/graph.h" - -/* ************************************************************************** */ -/* ******************************* NO ROUTING ******************************* */ -/* Only save the AS tree, and forward calls to child ASes */ -XBT_PRIVATE AS_t model_none_create(void); -XBT_PRIVATE AS_t model_none_create_sized(size_t childsize); -XBT_PRIVATE void model_none_finalize(AS_t as); -/* ************************************************************************** */ -/* ***************** GENERIC PARSE FUNCTIONS (declarations) ***************** */ -XBT_PRIVATE AS_t model_generic_create_sized(size_t childsize); -XBT_PRIVATE void model_generic_finalize(AS_t as); - -XBT_PRIVATE int generic_parse_PU(AS_t rc, sg_netcard_t elm); -XBT_PRIVATE int generic_parse_AS(AS_t rc, sg_netcard_t elm); -XBT_PRIVATE void generic_parse_bypassroute(AS_t rc, sg_platf_route_cbarg_t e_route); - -/* ************************************************************************** */ -/* *************** GENERIC BUSINESS METHODS (declarations) ****************** */ - -XBT_PRIVATE xbt_dynar_t generic_get_onelink_routes(AS_t rc); -XBT_PRIVATE sg_platf_route_cbarg_t generic_get_bypassroute(AS_t rc, - sg_netcard_t src, - sg_netcard_t dst, - double *lat); - -/* ************************************************************************** */ -/* ****************** GENERIC AUX FUNCTIONS (declarations) ****************** */ - -/* change a route containing link names into a route containing link entities. - * If change_order is true, the links are put in reverse order in the - * produced route */ -XBT_PRIVATE sg_platf_route_cbarg_t generic_new_extended_route(e_surf_routing_hierarchy_t hierarchy, - sg_platf_route_cbarg_t data, int preserve_order); -XBT_PRIVATE AS_t generic_autonomous_system_exist(AS_t rc, char *element); -XBT_PRIVATE AS_t generic_processing_units_exist(AS_t rc, char *element); -void generic_src_dst_check(AS_t rc, sg_netcard_t src, sg_netcard_t dst); - -/* ************************************************************************** */ -/* *************************** FLOYD ROUTING ******************************** */ -XBT_PRIVATE void model_floyd_parse_route(AS_t rc, sg_platf_route_cbarg_t route); - -#define HOST_PEER(peername) bprintf("peer_%s", peername) -#define ROUTER_PEER(peername) bprintf("router_%s", peername) -#define LINK_PEER(peername) bprintf("link_%s", peername) - -/* ************************************************************************** */ -/* ********** Dijkstra & Dijkstra Cached ROUTING **************************** */ -XBT_PRIVATE void model_dijkstra_both_parse_route (AS_t rc, sg_platf_route_cbarg_t route); -XBT_PRIVATE void model_full_set_route( /* Set the route and ASroute between src and dst */ - AS_t rc, sg_platf_route_cbarg_t route); -/* ************************************************************************** */ -/* ************************* GRAPH EXPORTING FUNCTIONS ********************** */ -XBT_PRIVATE xbt_node_t new_xbt_graph_node (xbt_graph_t graph, const char *name, xbt_dict_t nodes); -XBT_PRIVATE xbt_edge_t new_xbt_graph_edge (xbt_graph_t graph, xbt_node_t s, xbt_node_t d, xbt_dict_t edges); - - -#endif /* _SURF_SURF_ROUTING_PRIVATE_H */ diff --git a/src/surf/trace_mgr.hpp b/src/surf/trace_mgr.hpp index eb301828fd..ffb7620036 100644 --- a/src/surf/trace_mgr.hpp +++ b/src/surf/trace_mgr.hpp @@ -78,6 +78,9 @@ XBT_PUBLIC(void) tmgr_trace_event_unref(tmgr_trace_iterator_t *trace_event); XBT_PUBLIC(void) tmgr_finalize(void); +XBT_PUBLIC(tmgr_trace_t) tmgr_trace_new_from_file(const char *filename); +XBT_PUBLIC(tmgr_trace_t) tmgr_trace_new_from_string(const char *id, const char *input, double periodicity); + SG_END_DECL() #ifdef __cplusplus diff --git a/src/surf/xml/platf.hpp b/src/surf/xml/platf.hpp index 64e16dcb15..d001631679 100644 --- a/src/surf/xml/platf.hpp +++ b/src/surf/xml/platf.hpp @@ -30,8 +30,17 @@ XBT_PUBLIC(double) surf_parse_get_size(const char *string, const char *entity_ki XBT_PUBLIC(double) surf_parse_get_bandwidth(const char *string, const char *entity_kind, const char *name); XBT_PUBLIC(double) surf_parse_get_speed(const char *string, const char *entity_kind, const char *name); -/* What is needed to bypass the parser. */ XBT_PUBLIC_DATA(int_f_void_t) surf_parse; /* Entry-point to the parser. Set this to your function. */ + SG_END_DECL() + +namespace simgrid { +namespace surf { + +extern XBT_PRIVATE xbt::signal on_postparse; + +} +} + #endif diff --git a/src/surf/xml/platf_private.hpp b/src/surf/xml/platf_private.hpp index 6c72ca57cb..260e117c49 100644 --- a/src/surf/xml/platf_private.hpp +++ b/src/surf/xml/platf_private.hpp @@ -20,16 +20,8 @@ SG_BEGIN_DECL() typedef size_t yy_size_t; #endif -static inline char* sg_storage_name(sg_storage_t storage) { - return storage->key; -} - XBT_PUBLIC(sg_netcard_t) sg_netcard_by_name_or_null(const char *name); -XBT_PUBLIC(tmgr_trace_t) tmgr_trace_new_from_file(const char *filename); -XBT_PUBLIC(tmgr_trace_t) tmgr_trace_new_from_string(const char *id, - const char *input, - double periodicity); typedef enum { SURF_CLUSTER_FAT_TREE=2, SURF_CLUSTER_FLAT = 1, @@ -304,6 +296,20 @@ XBT_PRIVATE void surfxml_bufferstack_push(int _new); XBT_PRIVATE void surfxml_bufferstack_pop(int _new); XBT_PUBLIC_DATA(int) surfxml_bufferstack_size; +XBT_PUBLIC(void) routing_route_free(sg_platf_route_cbarg_t route); +/********** Instr. **********/ +XBT_PRIVATE void sg_instr_AS_begin(sg_platf_AS_cbarg_t AS); +XBT_PRIVATE void sg_instr_new_router(sg_platf_router_cbarg_t router); +XBT_PRIVATE void sg_instr_new_host(sg_platf_host_cbarg_t host); +XBT_PRIVATE void sg_instr_AS_end(void); + +typedef struct s_surf_parsing_link_up_down *surf_parsing_link_up_down_t; +typedef struct s_surf_parsing_link_up_down { + void* link_up; + void* link_down; +} s_surf_parsing_link_up_down_t; + + SG_END_DECL() namespace simgrid { @@ -311,7 +317,6 @@ namespace surf { extern XBT_PRIVATE simgrid::xbt::signal on_link; extern XBT_PRIVATE simgrid::xbt::signal on_cluster; -extern XBT_PRIVATE simgrid::xbt::signal on_postparse; } } diff --git a/src/surf/xml/surfxml_parseplatf.cpp b/src/surf/xml/surfxml_parseplatf.cpp index 0c85993e43..02f8ccdeda 100644 --- a/src/surf/xml/surfxml_parseplatf.cpp +++ b/src/surf/xml/surfxml_parseplatf.cpp @@ -10,6 +10,7 @@ #include "xbt/dict.h" #include "src/surf/cpu_interface.hpp" #include "src/surf/network_interface.hpp" +#include "src/instr/instr_private.h" // TRACE_start(). FIXME: remove by subscribing tracing to the surf signals #include "src/surf/xml/platf.hpp" diff --git a/src/surf/xml/surfxml_sax_cb.cpp b/src/surf/xml/surfxml_sax_cb.cpp index 45febe1b24..ea86273e04 100644 --- a/src/surf/xml/surfxml_sax_cb.cpp +++ b/src/surf/xml/surfxml_sax_cb.cpp @@ -15,6 +15,7 @@ #include "xbt/dict.h" #include "src/surf/surf_private.h" #include "simgrid/sg_config.h" +#include "simgrid/link.h" #include "src/surf/xml/platf_private.hpp" diff --git a/teshsuite/simdag/platforms/CMakeLists.txt b/teshsuite/simdag/platforms/CMakeLists.txt index 34ec88cca1..bcfa70b983 100644 --- a/teshsuite/simdag/platforms/CMakeLists.txt +++ b/teshsuite/simdag/platforms/CMakeLists.txt @@ -30,6 +30,7 @@ set(xml_files ${CMAKE_CURRENT_SOURCE_DIR}/four_hosts_floyd_ns3.xml ${CMAKE_CURRENT_SOURCE_DIR}/four_hosts_floyd.xml ${CMAKE_CURRENT_SOURCE_DIR}/two_hosts_multi_hop.xml + ${CMAKE_CURRENT_SOURCE_DIR}/link_attributes.xml ${CMAKE_CURRENT_SOURCE_DIR}/one_cluster_file.xml ${CMAKE_CURRENT_SOURCE_DIR}/one_cluster_multicore.xml ${CMAKE_CURRENT_SOURCE_DIR}/one_cluster_fullduplex.xml @@ -41,10 +42,6 @@ set(xml_files ${CMAKE_CURRENT_SOURCE_DIR}/one_host_trace_file.xml ${CMAKE_CURRENT_SOURCE_DIR}/one_host_trace_inside.xml ${CMAKE_CURRENT_SOURCE_DIR}/one_host.xml - ${CMAKE_CURRENT_SOURCE_DIR}/one_link_availability.xml - ${CMAKE_CURRENT_SOURCE_DIR}/one_link_fatpipe.xml - ${CMAKE_CURRENT_SOURCE_DIR}/one_link_shared.xml - ${CMAKE_CURRENT_SOURCE_DIR}/one_link_state_file.xml ${CMAKE_CURRENT_SOURCE_DIR}/platform_include.xml ${CMAKE_CURRENT_SOURCE_DIR}/properties.xml ${CMAKE_CURRENT_SOURCE_DIR}/test_of_is_router.xml @@ -56,7 +53,6 @@ set(xml_files ${CMAKE_CURRENT_SOURCE_DIR}/bogus_missing_src_gateway.xml ${CMAKE_CURRENT_SOURCE_DIR}/bogus_missing_dst_gateway.xml ${CMAKE_CURRENT_SOURCE_DIR}/bogus_two_hosts_asymetric.xml - ${CMAKE_CURRENT_SOURCE_DIR}/bogus_two_hosts_asymetric-2.xml ${CMAKE_CURRENT_SOURCE_DIR}/two_hosts_one_link_fullduplex.xml ${CMAKE_CURRENT_SOURCE_DIR}/two_hosts_one_link_symmetrical.xml ${CMAKE_CURRENT_SOURCE_DIR}/two_hosts_one_link.xml @@ -76,13 +72,9 @@ set(teshsuite_src PARENT_SCOPE) set(txt_files ${txt_files} - ${CMAKE_CURRENT_SOURCE_DIR}/bob0_availability_file.trace - ${CMAKE_CURRENT_SOURCE_DIR}/bob0_state_file.trace - ${CMAKE_CURRENT_SOURCE_DIR}/bob2_availability_file.trace - ${CMAKE_CURRENT_SOURCE_DIR}/bob2_state_file.trace ${CMAKE_CURRENT_SOURCE_DIR}/bob.fail ${CMAKE_CURRENT_SOURCE_DIR}/bob.trace - ${CMAKE_CURRENT_SOURCE_DIR}/link1.bw - ${CMAKE_CURRENT_SOURCE_DIR}/link1.fail - ${CMAKE_CURRENT_SOURCE_DIR}/link1.lat + ${CMAKE_CURRENT_SOURCE_DIR}/link.bw + ${CMAKE_CURRENT_SOURCE_DIR}/link.fail + ${CMAKE_CURRENT_SOURCE_DIR}/link.lat PARENT_SCOPE) diff --git a/teshsuite/simdag/platforms/Dijkstra.xml b/teshsuite/simdag/platforms/Dijkstra.xml index 64b39c8be6..39e7fb33a2 100644 --- a/teshsuite/simdag/platforms/Dijkstra.xml +++ b/teshsuite/simdag/platforms/Dijkstra.xml @@ -1,32 +1,27 @@ - - - + - - - + + + - + - + - + - - - + - diff --git a/teshsuite/simdag/platforms/basic_parsing_test.tesh b/teshsuite/simdag/platforms/basic_parsing_test.tesh index 76cc76f082..5fa9374e2d 100644 --- a/teshsuite/simdag/platforms/basic_parsing_test.tesh +++ b/teshsuite/simdag/platforms/basic_parsing_test.tesh @@ -28,21 +28,9 @@ $ ${bindir:=.}/basic_parsing_test one_host.xml "--log=root.fmt:[%10.6r]%e(%i:%P@ > [ 0.000000] (0:maestro@) Switching to the L07 model to handle parallel tasks. > Workstation number: 1, link number: 1 -$ ${bindir:=.}/basic_parsing_test one_link_availability.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" +$ ${bindir:=.}/basic_parsing_test link_attributes.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" > [ 0.000000] (0:maestro@) Switching to the L07 model to handle parallel tasks. -> Workstation number: 1, link number: 2 - -$ ${bindir:=.}/basic_parsing_test one_link_fatpipe.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" -> [ 0.000000] (0:maestro@) Switching to the L07 model to handle parallel tasks. -> Workstation number: 1, link number: 2 - -$ ${bindir:=.}/basic_parsing_test one_link_shared.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" -> [ 0.000000] (0:maestro@) Switching to the L07 model to handle parallel tasks. -> Workstation number: 1, link number: 2 - -$ ${bindir:=.}/basic_parsing_test one_link_state_file.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" -> [ 0.000000] (0:maestro@) Switching to the L07 model to handle parallel tasks. -> Workstation number: 1, link number: 2 +> Workstation number: 1, link number: 5 $ ${bindir:=.}/basic_parsing_test three_hosts_non_symmetric_route.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" > [ 0.000000] (0:maestro@) Switching to the L07 model to handle parallel tasks. @@ -79,9 +67,14 @@ $ ${bindir:=.}/basic_parsing_test ./properties.xml --cfg=cpu/optim:TI > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'Vegas' > Workstation number: 1, link number: 1 +$ cp -f ./bob.trace ./bob0_availability_file.trace +$ cp -f ./bob.trace ./bob2_availability_file.trace +$ cp -f ./bob.trace ./bob0_state_file.trace +$ cp -f ./bob.trace ./bob2_state_file.trace $ ${bindir:=.}/basic_parsing_test ./one_cluster_file.xml > [0.000000] [xbt_cfg/INFO] Switching to the L07 model to handle parallel tasks. > Workstation number: 2, link number: 6 +$ rm -f ./bob0_availability_file.trace ./bob2_availability_file.trace ./bob0_state_file.trace ./bob2_state_file.trace $ ${bindir:=.}/is_router_test ./test_of_is_router.xml > [0.000000] [xbt_cfg/INFO] Switching to the L07 model to handle parallel tasks. diff --git a/teshsuite/simdag/platforms/bob0_availability_file.trace b/teshsuite/simdag/platforms/bob0_availability_file.trace deleted file mode 100644 index 019c2c8a2c..0000000000 --- a/teshsuite/simdag/platforms/bob0_availability_file.trace +++ /dev/null @@ -1,4 +0,0 @@ -PERIODICITY 1.0 -0.0 1.0 -11.0 0.5 -20.0 0.8 diff --git a/teshsuite/simdag/platforms/bob0_state_file.trace b/teshsuite/simdag/platforms/bob0_state_file.trace deleted file mode 100644 index 019c2c8a2c..0000000000 --- a/teshsuite/simdag/platforms/bob0_state_file.trace +++ /dev/null @@ -1,4 +0,0 @@ -PERIODICITY 1.0 -0.0 1.0 -11.0 0.5 -20.0 0.8 diff --git a/teshsuite/simdag/platforms/bob2_availability_file.trace b/teshsuite/simdag/platforms/bob2_availability_file.trace deleted file mode 100644 index 019c2c8a2c..0000000000 --- a/teshsuite/simdag/platforms/bob2_availability_file.trace +++ /dev/null @@ -1,4 +0,0 @@ -PERIODICITY 1.0 -0.0 1.0 -11.0 0.5 -20.0 0.8 diff --git a/teshsuite/simdag/platforms/bob2_state_file.trace b/teshsuite/simdag/platforms/bob2_state_file.trace deleted file mode 100644 index 019c2c8a2c..0000000000 --- a/teshsuite/simdag/platforms/bob2_state_file.trace +++ /dev/null @@ -1,4 +0,0 @@ -PERIODICITY 1.0 -0.0 1.0 -11.0 0.5 -20.0 0.8 diff --git a/teshsuite/simdag/platforms/bogus_two_hosts_asymetric-2.xml b/teshsuite/simdag/platforms/bogus_two_hosts_asymetric-2.xml deleted file mode 100644 index 10c9d3b3c3..0000000000 --- a/teshsuite/simdag/platforms/bogus_two_hosts_asymetric-2.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/teshsuite/simdag/platforms/bogus_two_hosts_asymetric.tesh b/teshsuite/simdag/platforms/bogus_two_hosts_asymetric.tesh index efcf85d071..e3381ed4a1 100644 --- a/teshsuite/simdag/platforms/bogus_two_hosts_asymetric.tesh +++ b/teshsuite/simdag/platforms/bogus_two_hosts_asymetric.tesh @@ -2,8 +2,3 @@ $ ${bindir:=.}/flatifier bogus_two_hosts_asymetric.xml "--log=root.fmt:[%10.6r]%e[%i:%P@%h]%e%m%n" > [ 0.000000] [0:maestro@] Switching to the L07 model to handle parallel tasks. > [ 0.000000] [0:maestro@] Error while loading bogus_two_hosts_asymetric.xml: The route between alice and bob already exists (Rq: routes are symmetrical by default). - -! expect signal SIGABRT -$ ${bindir:=.}/flatifier bogus_two_hosts_asymetric-2.xml "--log=root.fmt:[%10.6r]%e[%i:%P@%h]%e%m%n" -> [ 0.000000] [0:maestro@] Switching to the L07 model to handle parallel tasks. -> [ 0.000000] [0:maestro@] Error while loading bogus_two_hosts_asymetric-2.xml: The route between alice and bob already exists (Rq: routes are symmetrical by default). diff --git a/teshsuite/simdag/platforms/flatifier.tesh b/teshsuite/simdag/platforms/flatifier.tesh index c9103c24c6..3db5c7c731 100644 --- a/teshsuite/simdag/platforms/flatifier.tesh +++ b/teshsuite/simdag/platforms/flatifier.tesh @@ -357,37 +357,7 @@ $ ${bindir:=.}/flatifier$EXEEXT one_host.xml "--log=root.fmt:[%10.6r]%e[%i:%P@%h > > -$ ${bindir:=.}/flatifier$EXEEXT one_link_availability.xml "--log=root.fmt:[%10.6r]%e[%i:%P@%h]%e%m%n" -> [ 0.000000] [0:maestro@] Switching to the L07 model to handle parallel tasks. -> -> -> -> -> -> -> -> -> -> -> -> - -$ ${bindir:=.}/flatifier$EXEEXT one_link_fatpipe.xml "--log=root.fmt:[%10.6r]%e[%i:%P@%h]%e%m%n" -> [ 0.000000] [0:maestro@] Switching to the L07 model to handle parallel tasks. -> -> -> -> -> -> -> -> -> -> -> -> - -$ ${bindir:=.}/flatifier$EXEEXT one_link_shared.xml "--log=root.fmt:[%10.6r]%e[%i:%P@%h]%e%m%n" +$ ${bindir:=.}/flatifier$EXEEXT link_attributes.xml "--log=root.fmt:[%10.6r]%e[%i:%P@%h]%e%m%n" > [ 0.000000] [0:maestro@] Switching to the L07 model to handle parallel tasks. > > @@ -396,21 +366,9 @@ $ ${bindir:=.}/flatifier$EXEEXT one_link_shared.xml "--log=root.fmt:[%10.6r]%e[% > > > -> -> -> -> -> - -$ ${bindir:=.}/flatifier$EXEEXT one_link_state_file.xml "--log=root.fmt:[%10.6r]%e[%i:%P@%h]%e%m%n" -> [ 0.000000] [0:maestro@] Switching to the L07 model to handle parallel tasks. -> -> -> -> -> -> -> +> +> +> > > > diff --git a/teshsuite/simdag/platforms/four_hosts_Dijkstra_ns3.xml b/teshsuite/simdag/platforms/four_hosts_Dijkstra_ns3.xml index 58ca33404b..b293a8ac10 100644 --- a/teshsuite/simdag/platforms/four_hosts_Dijkstra_ns3.xml +++ b/teshsuite/simdag/platforms/four_hosts_Dijkstra_ns3.xml @@ -1,7 +1,7 @@ - + @@ -10,11 +10,9 @@ - + - - - - + + diff --git a/teshsuite/simdag/platforms/link1.bw b/teshsuite/simdag/platforms/link.bw similarity index 100% rename from teshsuite/simdag/platforms/link1.bw rename to teshsuite/simdag/platforms/link.bw diff --git a/teshsuite/simdag/platforms/link1.fail b/teshsuite/simdag/platforms/link.fail similarity index 100% rename from teshsuite/simdag/platforms/link1.fail rename to teshsuite/simdag/platforms/link.fail diff --git a/teshsuite/simdag/platforms/link1.lat b/teshsuite/simdag/platforms/link.lat similarity index 100% rename from teshsuite/simdag/platforms/link1.lat rename to teshsuite/simdag/platforms/link.lat diff --git a/teshsuite/simdag/platforms/link_attributes.xml b/teshsuite/simdag/platforms/link_attributes.xml new file mode 100644 index 0000000000..ee944055c8 --- /dev/null +++ b/teshsuite/simdag/platforms/link_attributes.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/teshsuite/simdag/platforms/one_link_availability.xml b/teshsuite/simdag/platforms/one_link_availability.xml deleted file mode 100644 index 85dd598c70..0000000000 --- a/teshsuite/simdag/platforms/one_link_availability.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/teshsuite/simdag/platforms/one_link_fatpipe.xml b/teshsuite/simdag/platforms/one_link_fatpipe.xml deleted file mode 100644 index 103a5401f5..0000000000 --- a/teshsuite/simdag/platforms/one_link_fatpipe.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/teshsuite/simdag/platforms/one_link_shared.xml b/teshsuite/simdag/platforms/one_link_shared.xml deleted file mode 100644 index 1b427f0a1a..0000000000 --- a/teshsuite/simdag/platforms/one_link_shared.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/teshsuite/simdag/platforms/one_link_state_file.xml b/teshsuite/simdag/platforms/one_link_state_file.xml deleted file mode 100644 index 7eeea58056..0000000000 --- a/teshsuite/simdag/platforms/one_link_state_file.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/teshsuite/surf/surf_usage/surf_usage.cpp b/teshsuite/surf/surf_usage/surf_usage.cpp index a012ff1746..e0ec894599 100644 --- a/teshsuite/surf/surf_usage/surf_usage.cpp +++ b/teshsuite/surf/surf_usage/surf_usage.cpp @@ -8,6 +8,7 @@ #include #include "simgrid/sg_config.h" +#include "simgrid/host.h" #include "surf/surf.h" #include "src/surf/surf_interface.hpp" #include "src/surf/cpu_interface.hpp" diff --git a/teshsuite/surf/surf_usage/surf_usage2.cpp b/teshsuite/surf/surf_usage/surf_usage2.cpp index 7480397b93..0fc3a43d78 100644 --- a/teshsuite/surf/surf_usage/surf_usage2.cpp +++ b/teshsuite/surf/surf_usage/surf_usage2.cpp @@ -7,6 +7,7 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include "simgrid/sg_config.h" +#include "simgrid/host.h" #include "surf/surf.h" #include "src/surf/surf_interface.hpp" #include "src/surf/cpu_interface.hpp" diff --git a/tools/cmake/DefinePackages.cmake b/tools/cmake/DefinePackages.cmake index d2528431d4..4fe036a375 100644 --- a/tools/cmake/DefinePackages.cmake +++ b/tools/cmake/DefinePackages.cmake @@ -13,7 +13,6 @@ set(EXTRA_DIST src/include/surf/datatypes.h src/include/surf/maxmin.h src/include/surf/surf.h - src/include/surf/surfxml_parse_values.h src/include/xbt/win32_ucontext.h src/include/xbt/wine_dbghelp.h src/msg/msg_mailbox.h @@ -77,7 +76,6 @@ set(EXTRA_DIST src/surf/surf_routing_full.hpp src/surf/surf_routing_RoutedGraph.hpp src/surf/surf_routing_none.hpp - src/surf/surf_routing_private.hpp src/surf/surf_routing_vivaldi.hpp src/surf/vm_hl13.hpp src/surf/PropertyHolder.hpp