X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5a875f9205d14b21c58c948ef2c1a80abf1c47d5..2cc8ea0d3fabf1676e26e7361de7c45d09d5a2b6:/src/include/surf/surf.h diff --git a/src/include/surf/surf.h b/src/include/surf/surf.h index 541534bf9c..a1a2837ebd 100644 --- a/src/include/surf/surf.h +++ b/src/include/surf/surf.h @@ -14,6 +14,24 @@ #include "portable.h" #include "xbt/config.h" #include "surf/datatypes.h" +#include "xbt/lib.h" + +xbt_lib_t host_lib; +int ROUTING_HOST_LEVEL; //Routing level +int SURF_CPU_LEVEL; //Surf cpu level +int SURF_WKS_LEVEL; //Surf workstation level +int SIMIX_HOST_LEVEL; //Simix level +int MSG_HOST_LEVEL; //Msg level +int SD_HOST_LEVEL; //Simdag level +int COORD_HOST_LEVEL; //Coordinates level + +xbt_lib_t link_lib; +int SD_LINK_LEVEL; //Simdag level +int SURF_LINK_LEVEL; //Surf level + +xbt_lib_t as_router_lib; +int ROUTING_ASR_LEVEL; //Routing level +int COORD_ASR_LEVEL; //Coordinates level SG_BEGIN_DECL() /* Actions and models are highly connected structures... */ @@ -271,6 +289,9 @@ typedef struct surf_model { int (*is_suspended) (surf_action_t action); /**< Return whether an action is suspended */ void (*set_max_duration) (surf_action_t action, double duration); /**< Set the max duration of an action*/ void (*set_priority) (surf_action_t action, double priority); /**< Set the priority of an action */ +#ifdef HAVE_TRACING + void (*set_category) (surf_action_t action, const char *category); /**< Set the category of an action */ +#endif double (*get_remains) (surf_action_t action); /**< Get the remains of an action */ #ifdef HAVE_LATENCY_BOUND_TRACKING int (*get_latency_limited) (surf_action_t action); /**< Return 1 if action is limited by latency, 0 otherwise */ @@ -403,6 +424,21 @@ XBT_PUBLIC(void) surf_network_model_init_SMPI(const char *filename); XBT_PUBLIC(void) surf_network_model_init_LegrandVelho(const char *filename); + +/** \brief Initializes the platform with the network model 'LV08_im' + * \ingroup SURF_models + * \param filename XML platform file name + * + * This model is adds the lazy management improvement to Legrand and + * Velho model. This improvement essentially replaces the list of actions + * inside the simulation kernel by a heap in order to reduce the complexity + * at each iteration of the simulation kernel. + * + * \see surf_workstation_model_init_LegrandVelho() + */ +XBT_PUBLIC(void) im_surf_network_model_init_LegrandVelho(const char + *filename); + /** \brief Initializes the platform with the network model 'Constant' * \ingroup SURF_models * \param filename XML platform file name @@ -634,7 +670,7 @@ XBT_PUBLIC(double) surf_solve(double max_date); * * Return the current time in millisecond. */ -XBT_PUBLIC(double) surf_get_clock(void); +XBT_INLINE XBT_PUBLIC(double) surf_get_clock(void); /** \brief Exit SURF * \ingroup SURF_simulation