-/* Copyright (c) 2007-2012. The SimGrid Team.
+/* Copyright (c) 2007-2013. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
/* Update global variables */
xbt_lib_set(host_lib,name,SIMIX_HOST_LEVEL,smx_host);
-
- return xbt_lib_get_elm_or_null(host_lib, name);
+
+ return xbt_lib_get_or_null(host_lib, name, SIMIX_HOST_LEVEL);
}
/**
get_available_speed(host);
}
+double SIMIX_pre_host_get_current_power_peak(smx_simcall_t simcall, smx_host_t host){
+ return SIMIX_host_get_current_power_peak(host);
+}
+double SIMIX_host_get_current_power_peak(smx_host_t host) {
+ xbt_assert((host != NULL), "Invalid parameters (simix host is NULL)");
+ return surf_workstation_model->extension.workstation.
+ get_current_power_peak(host);
+}
+
+double SIMIX_pre_host_get_power_peak_at(smx_simcall_t simcall, smx_host_t host, int pstate_index){
+ return SIMIX_host_get_power_peak_at(host, pstate_index);
+}
+double SIMIX_host_get_power_peak_at(smx_host_t host, int pstate_index) {
+ xbt_assert((host != NULL), "Invalid parameters (simix host is NULL)");
+
+ return surf_workstation_model->extension.workstation.
+ get_power_peak_at(host, pstate_index);
+}
+
+int SIMIX_pre_host_get_nb_pstates(smx_simcall_t simcall, smx_host_t host){
+ return SIMIX_host_get_nb_pstates(host);
+}
+int SIMIX_host_get_nb_pstates(smx_host_t host) {
+ xbt_assert((host != NULL), "Invalid parameters (simix host is NULL)");
+
+ return surf_workstation_model->extension.workstation.
+ get_nb_pstates(host);
+}
+
+
+void SIMIX_pre_host_set_power_peak_at(smx_simcall_t simcall, smx_host_t host, int pstate_index){
+ SIMIX_host_set_power_peak_at(host, pstate_index);
+}
+void SIMIX_host_set_power_peak_at(smx_host_t host, int pstate_index) {
+ xbt_assert((host != NULL), "Invalid parameters (simix host is NULL)");
+
+ surf_workstation_model->extension.workstation.
+ set_power_peak_at(host, pstate_index);
+}
+
+double SIMIX_pre_host_get_consumed_energy(smx_simcall_t simcall, smx_host_t host){
+ return SIMIX_host_get_consumed_energy(host);
+}
+double SIMIX_host_get_consumed_energy(smx_host_t host) {
+ xbt_assert((host != NULL), "Invalid parameters (simix host is NULL)");
+ return surf_workstation_model->extension.workstation.
+ get_consumed_energy(host);
+}
+
int SIMIX_pre_host_get_state(smx_simcall_t simcall, smx_host_t host){
return SIMIX_host_get_state(host);
}
if( SIMIX_host_get_state(host) == SURF_RESOURCE_OFF
&& !xbt_dict_get_or_null(watched_hosts_lib,sg_host_name(host))){
xbt_dict_set(watched_hosts_lib,sg_host_name(host),host,NULL);
- XBT_DEBUG("Have push host %s to watched_hosts_lib because state == SURF_RESOURCE_OFF",sg_host_name(host));
+ XBT_DEBUG("Have pushed host %s to watched_hosts_lib because state == SURF_RESOURCE_OFF",sg_host_name(host));
}
xbt_dynar_push_as(SIMIX_host_priv(host)->auto_restart_processes,smx_process_arg_t,arg);
}
{
unsigned int cpt;
smx_process_arg_t arg;
- xbt_dynar_foreach(SIMIX_host_priv(host)->auto_restart_processes,cpt,arg) {
+ xbt_dynar_t process_list = SIMIX_host_priv(host)->auto_restart_processes;
+ if(!process_list) return;
+
+ xbt_dynar_foreach(process_list,cpt,arg) {
smx_process_t process;
}
}
- xbt_dynar_reset(SIMIX_host_priv(host)->auto_restart_processes);
+ xbt_dynar_reset(process_list);
}
void SIMIX_host_autorestart(smx_host_t host)
case SIMIX_FAILED:
XBT_DEBUG("SIMIX_execution_finished: host '%s' failed", sg_host_name(simcall->issuer->smx_host));
simcall->issuer->context->iwannadie = 1;
- //SMX_EXCEPTION(simcall->issuer, host_error, 0, "Host failed");
+ SMX_EXCEPTION(simcall->issuer, host_error, 0, "Host failed");
break;
case SIMIX_CANCELED:
}
#endif
+xbt_dict_t SIMIX_pre_host_get_storage_list(smx_simcall_t simcall, smx_host_t host){
+ return SIMIX_host_get_storage_list(host);
+}
+xbt_dict_t SIMIX_host_get_storage_list(smx_host_t host){
+ xbt_assert((host != NULL), "Invalid parameters (simix host is NULL)");
+
+ return surf_workstation_model->extension.workstation.get_storage_list(host);
+}