X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a185be0269391eb526a7d6e34e3ff917a1908ad1..180febe078089bb7d5e6ee141fc17115c2f8a0a1:/src/surf/surf_private.h diff --git a/src/surf/surf_private.h b/src/surf/surf_private.h index 5c3eaa7e94..61a374b0fb 100644 --- a/src/surf/surf_private.h +++ b/src/surf/surf_private.h @@ -1,10 +1,8 @@ -/* $Id$ */ - -/* Copyright (c) 2004 Arnaud Legrand. All rights reserved. */ +/* Copyright (c) 2004, 2005, 2006, 2007, 2008, 2009, 2010. 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_PRIVATE_H #define _SURF_SURF_PRIVATE_H @@ -14,9 +12,22 @@ #include "xbt/log.h" #include "surf/surfxml_parse_private.h" #include "surf/random_mgr.h" +#include "instr/private.h" #define NO_MAX_DURATION -1.0 + +/* user-visible parameters */ extern double sg_tcp_gamma; +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_fullduplex; +#ifdef HAVE_GTNETS + extern double sg_gtnets_jitter; + extern int sg_gtnets_jitter_seed; +#endif + extern const char *surf_action_state_names[6]; @@ -43,13 +54,13 @@ double generic_maxmin_share_resources(xbt_swag_t running_actions, void (*solve) (lmm_system_t)); /* Generic functions common to all models */ -e_surf_action_state_t surf_action_state_get(surf_action_t action); -double surf_action_get_start_time(surf_action_t action); -double surf_action_get_finish_time(surf_action_t action); +e_surf_action_state_t surf_action_state_get(surf_action_t action); /* cannot declare inline since we use a pointer to it */ +double surf_action_get_start_time(surf_action_t action); /* cannot declare inline since we use a pointer to it */ +double surf_action_get_finish_time(surf_action_t action); /* cannot declare inline since we use a pointer to it */ void surf_action_free(surf_action_t * action); void surf_action_state_set(surf_action_t action, e_surf_action_state_t state); -void surf_action_data_set(surf_action_t action, void *data); +void surf_action_data_set(surf_action_t action, void *data); /* cannot declare inline since we use a pointer to it */ FILE *surf_fopen(const char *name, const char *mode); extern tmgr_history_t history; @@ -74,24 +85,43 @@ const char *__surf_get_initial_path(void); */ int __surf_is_absolute_file_path(const char *file_path); +/* + * One link routing list + */ +typedef struct { + int src_id; + int dst_id; + void *link_ptr; +}s_onelink, *s_onelink_t; + + /* * Routing logic */ struct s_routing { const char *name; xbt_dict_t host_id; /* char* -> int* */ - xbt_dynar_t (*get_route)(int src, int dst); + xbt_dict_t (*get_onelink_routes)(void); + int (*is_router)(int id); void (*finalize)(void); int host_count; + int router_count; }; XBT_PUBLIC(void) routing_model_create(size_t size_of_link,void *loopback); +/* + * generic methods to create resources bypassing the parser + * FIXME : better if added to the routing model instead + */ +XBT_PUBLIC(void) routing_add_route(char *source_id,char *destination_id,xbt_dynar_t links_id,int action); +XBT_PUBLIC(void) routing_add_host(char* host_id); +XBT_PUBLIC(void) routing_set_routes(void); /* * Resource protected methods */ -XBT_PUBLIC(xbt_dict_t) surf_resource_properties(const void *resource); +xbt_dict_t surf_resource_properties(const void *resource); XBT_PUBLIC(void) surfxml_bufferstack_push(int new); XBT_PUBLIC(void) surfxml_bufferstack_pop(int new);