X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/fa42487c90223126c2e27ff12ca34ad4f22bb2a1..a243b4c3535f516d05259cac06963c422d4aadc0:/src/surf/network_constant.c diff --git a/src/surf/network_constant.c b/src/surf/network_constant.c index e1be0fe41a..7eaa9d89bc 100644 --- a/src/surf/network_constant.c +++ b/src/surf/network_constant.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2008, 2009, 2010. The SimGrid Team. +/* Copyright (c) 2008-2013. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -18,7 +18,6 @@ typedef struct surf_action_network_Constant { } s_surf_action_network_Constant_t, *surf_action_network_Constant_t; XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_network); -static random_data_t random_latency = NULL; static int host_number_int = 0; static void netcste_count_hosts(sg_platf_host_cbarg_t h) { @@ -50,11 +49,11 @@ static void netcste_action_cancel(surf_action_t action) return; } -static double netcste_share_resources(double now) +static double netcste_share_resources(surf_model_t network_model, double now) { surf_action_network_Constant_t action = NULL; xbt_swag_t running_actions = - surf_network_model->states.running_action_set; + network_model->states.running_action_set; double min = -1.0; xbt_swag_foreach(action, running_actions) { @@ -69,12 +68,12 @@ static double netcste_share_resources(double now) return min; } -static void netcste_update_actions_state(double now, double delta) +static void netcste_update_actions_state(surf_model_t network_model, double now, double delta) { surf_action_network_Constant_t action = NULL; surf_action_network_Constant_t next_action = NULL; xbt_swag_t running_actions = - surf_network_model->states.running_action_set; + network_model->states.running_action_set; xbt_swag_foreach_safe(action, next_action, running_actions) { if (action->latency > 0) { @@ -91,12 +90,12 @@ static void netcste_update_actions_state(double now, double delta) if (action->generic_action.remains <= 0) { action->generic_action.finish = surf_get_clock(); - surf_network_model->action_state_set((surf_action_t) action, + network_model->action_state_set((surf_action_t) action, SURF_ACTION_DONE); } else if ((action->generic_action.max_duration != NO_MAX_DURATION) && (action->generic_action.max_duration <= 0)) { action->generic_action.finish = surf_get_clock(); - surf_network_model->action_state_set((surf_action_t) action, + network_model->action_state_set((surf_action_t) action, SURF_ACTION_DONE); } } @@ -126,7 +125,7 @@ static surf_action_t netcste_communicate(sg_routing_edge_t src, action->suspended = 0; - action->latency = sg_latency_factor; //random_generate(random_latency); + action->latency = sg_latency_factor; action->lat_init = action->latency; if (action->latency <= 0.0) { @@ -150,19 +149,19 @@ static void netcste_action_set_category(surf_action_t action, const char *catego static double netcste_get_link_bandwidth(const void *link) { DIE_IMPOSSIBLE; - return -1.0; + return -1.0; /* useless since DIE actually abort(), but eclipse prefer to have a useless and harmless return */ } static double netcste_get_link_latency(const void *link) { DIE_IMPOSSIBLE; - return -1.0; + return -1.0; /* useless since DIE actually abort(), but eclipse prefer to have a useless and harmless return */ } static int link_shared(const void *link) { DIE_IMPOSSIBLE; - return -1; + return -1; /* useless since DIE actually abort(), but eclipse prefer to have a useless and harmless return */ } static void netcste_action_suspend(surf_action_t action) @@ -181,10 +180,10 @@ static int netcste_action_is_suspended(surf_action_t action) return ((surf_action_network_Constant_t) action)->suspended; } -static void netcste_finalize(void) +static void netcste_finalize(surf_model_t network_model) { - surf_model_exit(surf_network_model); - surf_network_model = NULL; + surf_model_exit(network_model); + network_model = NULL; } @@ -217,7 +216,11 @@ void surf_network_model_init_Constant() surf_network_model->suspend = netcste_action_suspend; surf_network_model->resume = netcste_action_resume; surf_network_model->is_suspended = netcste_action_is_suspended; - surf_cpu_model->set_max_duration = surf_action_set_max_duration; + + xbt_assert(surf_cpu_model_pm); + xbt_assert(surf_cpu_model_vm); + surf_cpu_model_pm->set_max_duration = surf_action_set_max_duration; + surf_cpu_model_vm->set_max_duration = surf_action_set_max_duration; surf_network_model->extension.network.communicate = netcste_communicate; surf_network_model->extension.network.get_link_bandwidth = @@ -229,8 +232,6 @@ void surf_network_model_init_Constant() surf_network_model->set_category = netcste_action_set_category; #endif - if (!random_latency) - random_latency = random_new(RAND, 100, 0.0, 1.0, .125, .034); netcste_define_callbacks(); xbt_dynar_push(model_list, &surf_network_model);