X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/127880536a17bd02faba5e25df542b50c9fe72cc..d482805b62c75964684b8b409a043198281c3b27:/src/include/surf/surf.h?ds=sidebyside diff --git a/src/include/surf/surf.h b/src/include/surf/surf.h index 309e5ac3a0..6a7131dd94 100644 --- a/src/include/surf/surf.h +++ b/src/include/surf/surf.h @@ -34,6 +34,7 @@ XBT_PUBLIC(e_surf_network_element_type_t) /** @Brief Specify that we use that action */ XBT_PUBLIC(void) surf_action_ref(surf_action_t action); + /** @brief Creates a new action. * * @param size The size is the one of the subtype you want to create @@ -105,6 +106,7 @@ typedef struct surf_action_lmm { s_xbt_swag_hookup_t action_list_hookup; int index_heap; double last_update; + double last_value; enum heap_action_type hat; } s_surf_action_lmm_t, *surf_action_lmm_t; @@ -147,8 +149,8 @@ typedef struct surf_action_state { /***************************/ /* Generic model object */ /***************************/ -typedef struct s_routing_global s_routing_global_t, *routing_global_t; -XBT_PUBLIC_DATA(routing_global_t) global_routing; +typedef struct s_routing_platf s_routing_platf_t, *routing_platf_t; +XBT_PUBLIC_DATA(routing_platf_t) routing_platf; /** \ingroup SURF_models @@ -179,8 +181,6 @@ typedef struct surf_cpu_model_extension_public { void (*add_traces) (void); } s_surf_model_extension_cpu_t; -typedef struct s_network_element_info *network_element_t; - /* Network model */ /** \ingroup SURF_models @@ -189,8 +189,8 @@ typedef struct s_network_element_info *network_element_t; * Public functions specific to the network model */ typedef struct surf_network_model_extension_public { - surf_action_t (*communicate) (network_element_t src, - network_element_t dst, + surf_action_t (*communicate) (sg_routing_edge_t src, + sg_routing_edge_t dst, double size, double rate); xbt_dynar_t(*get_route) (void *src, void *dst); //FIXME: kill field? That is done by the routing nowadays double (*get_link_bandwidth) (const void *link); @@ -248,7 +248,7 @@ typedef struct surf_workstation_model_extension_public { void **workstation_list, double *computation_amount, double *communication_amount, - double amount, double rate); + double rate); double (*get_link_bandwidth) (const void *link); /**< Return the current bandwidth of a network link */ double (*get_link_latency) (const void *link); /**< Return the current latency of a network link */ surf_action_t(*open) (void *workstation, const char* storage, const char* path, const char* mode); @@ -299,7 +299,7 @@ typedef struct surf_model { double (*action_get_start_time) (surf_action_t action); /**< Return the start time of an action */ double (*action_get_finish_time) (surf_action_t action); /**< Return the finish time of an action */ - int (*action_unref) (surf_action_t action); /**< Specify that we don't use that action anymore */ + int (*action_unref) (surf_action_t action); /**< Specify that we don't use that action anymore. Returns true if the action was destroyed and false if someone still has references on it. */ void (*action_cancel) (surf_action_t action); /**< Cancel a running action */ void (*action_recycle) (surf_action_t action); /**< Recycle an action */ void (*action_data_set) (surf_action_t action, void *data); /**< Set the user data of an action */ @@ -316,6 +316,8 @@ typedef struct surf_model { int (*get_latency_limited) (surf_action_t action); /**< Return 1 if action is limited by latency, 0 otherwise */ #endif + void (*gap_remove) (surf_action_lmm_t action); + surf_model_private_t model_private; union extension { @@ -335,11 +337,6 @@ static inline void *surf_cpu_resource_by_name(const char *name) { static inline void *surf_workstation_resource_by_name(const char *name){ return xbt_lib_get_or_null(host_lib, name, SURF_WKS_LEVEL); } -static inline void *surf_network_resource_by_name(const char *name){ - network_element_t net_elm = xbt_lib_get_or_null(host_lib, name, ROUTING_HOST_LEVEL); - if(!net_elm) net_elm = xbt_lib_get_or_null(as_router_lib, name, ROUTING_ASR_LEVEL); - return net_elm; -} static inline void *surf_storage_resource_by_name(const char *name){ return xbt_lib_get_or_null(storage_lib, name, SURF_STORAGE_LEVEL); }