X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9889deb10c0b29c3c5a2ae25ac0c4b9e25e8334e..51dcb8e712855f3cb16800ddea745ef6fc8d79e9:/src/include/surf/surf.h diff --git a/src/include/surf/surf.h b/src/include/surf/surf.h index d072e4bd91..6100dfaa76 100644 --- a/src/include/surf/surf.h +++ b/src/include/surf/surf.h @@ -22,6 +22,21 @@ SG_BEGIN_DECL() /* Actions and models are highly connected structures... */ +/* user-visible parameters */ +extern double sg_tcp_gamma; +extern double sg_sender_gap; +extern double sg_latency_factor; +extern double sg_bandwidth_factor; +extern double sg_weight_S_parameter; +extern int sg_maxmin_selective_update; +extern int sg_network_crosstraffic; +#ifdef HAVE_GTNETS +extern double sg_gtnets_jitter; +extern int sg_gtnets_jitter_seed; +#endif +extern xbt_dynar_t surf_path; + + typedef enum { SURF_NETWORK_ELEMENT_NULL = 0, /* NULL */ SURF_NETWORK_ELEMENT_HOST, /* host type */ @@ -153,17 +168,16 @@ typedef struct surf_action_state { typedef struct s_routing_platf s_routing_platf_t, *routing_platf_t; XBT_PUBLIC_DATA(routing_platf_t) routing_platf; -/** +/******************************************* * TUTORIAL: New model * New model extension public * Public functions specific to a New model. */ - typedef struct surf_new_model_extension_public { surf_action_t(*fct) (); void* (*create_resource) (); } s_surf_model_extension_new_model_t; - +/*******************************************/ /** \ingroup SURF_models * \brief Private data available on all models @@ -183,13 +197,6 @@ typedef struct surf_cpu_model_extension_public { e_surf_resource_state_t(*get_state) (void *cpu); double (*get_speed) (void *cpu, double load); double (*get_available_speed) (void *cpu); - void* (*create_resource) (const char *name, double power_peak, - double power_scale, - tmgr_trace_t power_trace, - int core, - e_surf_resource_state_t state_initial, - tmgr_trace_t state_trace, - xbt_dict_t cpu_properties); void (*add_traces) (void); } s_surf_model_extension_cpu_t; @@ -209,16 +216,6 @@ typedef struct surf_network_model_extension_public { double (*get_link_latency) (const void *link); int (*link_shared) (const void *link); void (*add_traces) (void); - void* (*create_resource) (const char *name, - double bw_initial, - tmgr_trace_t bw_trace, - double lat_initial, - tmgr_trace_t lat_trace, - e_surf_resource_state_t - state_initial, - tmgr_trace_t state_trace, - e_surf_link_sharing_policy_t policy, - xbt_dict_t properties); } s_surf_model_extension_network_t; /* Storage model */ @@ -237,7 +234,6 @@ typedef struct surf_storage_model_extension_public { surf_action_t(*stat) (void *storage, surf_file_t stream); surf_action_t(*unlink) (void *storage, surf_file_t stream); surf_action_t(*ls) (void *storage, const char *path); - void* (*create_resource) (const char* id, const char* model, const char* type_id, const char *content); } s_surf_model_extension_storage_t; /** \ingroup SURF_models @@ -275,22 +271,6 @@ typedef struct surf_workstation_model_extension_public { int (*link_shared) (const void *link); xbt_dict_t(*get_properties) (const void *resource); - void* (*link_create_resource) (const char *name, - double bw_initial, - tmgr_trace_t bw_trace, - double lat_initial, - tmgr_trace_t lat_trace, - e_surf_resource_state_t - state_initial, - tmgr_trace_t state_trace, - e_surf_link_sharing_policy_t - policy, xbt_dict_t properties); - void* (*cpu_create_resource) (const char *name, double power_peak, - double power_scale, - tmgr_trace_t power_trace, - e_surf_resource_state_t state_initial, - tmgr_trace_t state_trace, - xbt_dict_t cpu_properties); void (*add_traces) (void); } s_surf_model_extension_workstation_t; @@ -342,7 +322,10 @@ typedef struct surf_model { s_surf_model_extension_network_t network; s_surf_model_extension_storage_t storage; s_surf_model_extension_workstation_t workstation; + /*******************************************/ + /* TUTORIAL: New model */ s_surf_model_extension_new_model_t new_model; + /*******************************************/ } extension; } s_surf_model_t; @@ -655,6 +638,13 @@ XBT_PUBLIC(void) surf_workstation_model_init_ptask_L07(void); XBT_PUBLIC_DATA(s_surf_model_description_t) surf_workstation_model_description[]; +/******************************************* + * TUTORIAL: New model + */ +XBT_PUBLIC(void) surf_new_model_init_default(void); +XBT_PUBLIC_DATA(s_surf_model_description_t) surf_new_model_description[]; +/*******************************************/ + /** \ingroup SURF_models * \brief List of initialized models */ @@ -663,7 +653,6 @@ XBT_PUBLIC_DATA(xbt_dynar_t) model_list; /*******************************************/ /*** SURF Globals **************************/ /*******************************************/ -XBT_PUBLIC_DATA(xbt_cfg_t) _surf_cfg_set; /** \ingroup SURF_simulation * \brief Initialize SURF @@ -743,5 +732,13 @@ void surf_set_nthreads(int nthreads); void surf_watched_hosts(void); +/* + * Returns the initial path. On Windows the initial path is + * the current directory for the current process in the other + * case the function returns "./" that represents the current + * directory on Unix/Linux platforms. + */ +const char *__surf_get_initial_path(void); + SG_END_DECL() #endif /* _SURF_SURF_H */