X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/217b4afb954d1795f011f060767b8d89533f2b71..71a5e1d7943f1ee568b39c6975f1129229fb943b:/src/include/surf/surf.h diff --git a/src/include/surf/surf.h b/src/include/surf/surf.h index d8f73c5b55..2d4e5b4193 100644 --- a/src/include/surf/surf.h +++ b/src/include/surf/surf.h @@ -11,6 +11,7 @@ #include "xbt/dynar.h" #include "xbt/dict.h" #include "xbt/misc.h" +#include "xbt/file_stat.h" #include "portable.h" #include "xbt/config.h" #include "surf/datatypes.h" @@ -93,8 +94,8 @@ typedef struct surf_action { #ifdef HAVE_TRACING char *category; /**< tracing category for categorized resource utilization monitoring */ #endif - void* file; /**< m_file_t for storage model */ - size_t read_write; + surf_file_t file; /**< surf_file_t for storage model */ + s_file_stat_t stat; /**< surf_file_t for storage model */ } s_surf_action_t; typedef struct surf_action_lmm { @@ -104,6 +105,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; @@ -146,8 +148,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 @@ -178,8 +180,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 @@ -188,8 +188,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); @@ -218,10 +218,10 @@ typedef struct surf_network_model_extension_public { typedef struct surf_storage_model_extension_public { surf_action_t(*open) (void *storage, const char* path, const char* mode); - surf_action_t(*close) (void *storage, m_file_t fp); - surf_action_t(*read) (void *storage, void* ptr, size_t size, size_t nmemb, m_file_t stream); - surf_action_t(*write) (void *storage, const void* ptr, size_t size, size_t nmemb, m_file_t stream); - surf_action_t(*stat) (void *storage, int fd, void* buf); + surf_action_t(*close) (void *storage, surf_file_t fp); + surf_action_t(*read) (void *storage, void* ptr, size_t size, size_t nmemb, surf_file_t stream); + surf_action_t(*write) (void *storage, const void* ptr, size_t size, size_t nmemb, surf_file_t stream); + surf_action_t(*stat) (void *storage, surf_file_t stream); void* (*create_resource) (const char* id, const char* model,const char* type_id); } s_surf_model_extension_storage_t; @@ -251,10 +251,10 @@ typedef struct surf_workstation_model_extension_public { 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); - surf_action_t(*close) (void *workstation, const char* storage, m_file_t fp); - surf_action_t(*read) (void *workstation, const char* storage, void* ptr, size_t size, size_t nmemb, m_file_t stream); - surf_action_t(*write) (void *workstation, const char* storage, const void* ptr, size_t size, size_t nmemb, m_file_t stream); - surf_action_t(*stat) (void *workstation, const char* storage, int fd, void* buf); + surf_action_t(*close) (void *workstation, const char* storage, surf_file_t fp); + surf_action_t(*read) (void *workstation, const char* storage, void* ptr, size_t size, size_t nmemb, surf_file_t stream); + surf_action_t(*write) (void *workstation, const char* storage, const void* ptr, size_t size, size_t nmemb, surf_file_t stream); + surf_action_t(*stat) (void *workstation, const char* storage, surf_file_t stream); int (*link_shared) (const void *link); xbt_dict_t(*get_properties) (const void *resource); void* (*link_create_resource) (const char *name, @@ -334,11 +334,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); } @@ -349,30 +344,6 @@ typedef struct surf_resource { xbt_dict_t properties; } s_surf_resource_t, *surf_resource_t; -/** - * Storage struct - */ -typedef struct s_storage_type { - char *model; - xbt_dict_t content; - char *type_id; - xbt_dict_t properties; -} s_storage_type_t, *storage_type_t; - -typedef struct s_mount { - void *id; - char *name; -} s_mount_t, *mount_t; - -typedef struct s_content { - char *user_rights; - char *user; - char *group; - char *date; - char *time; - size_t size; -} s_content_t, *content_t; - /** * Resource which have a metric handled by a maxmin system */