-/* Copyright (c) 2006, 2007, 2008, 2009, 2010. The SimGrid Team.
+/* Copyright (c) 2006-2011. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
#include "xbt/dict.h"
#include "xbt/sysdep.h"
#include "surf/surf.h"
+#include "surf/surf_resource.h"
+
+
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(sd_workstation, sd,
"Logging specific to SimDag (workstation)");
if (sd_global->workstation_list == NULL) { /* this is the first time the function is called */
sd_global->workstation_list =
- xbt_new(SD_workstation_t, host_lib->count);
+ xbt_new(SD_workstation_t, xbt_lib_length(host_lib));
i = 0;
xbt_lib_foreach(host_lib, cursor, key, data) {
*/
int SD_workstation_get_number(void)
{
- return host_lib->count;
+ return xbt_lib_length(host_lib);
}
/**
}
+/** @brief Displays debugging informations about a workstation */
+void SD_workstation_dump(SD_workstation_t ws)
+{
+ xbt_dict_t props;
+ xbt_dict_cursor_t cursor=NULL;
+ char *key,*data;
+ SD_task_t task = NULL;
+
+ XBT_INFO("Displaying workstation %s", SD_workstation_get_name(ws));
+ XBT_INFO(" - power: %.0f", SD_workstation_get_power(ws));
+ XBT_INFO(" - available power: %.2f", SD_workstation_get_available_power(ws));
+ switch (ws->access_mode){
+ case SD_WORKSTATION_SHARED_ACCESS:
+ XBT_INFO(" - access mode: Space shared");
+ break;
+ case SD_WORKSTATION_SEQUENTIAL_ACCESS:
+ XBT_INFO(" - access mode: Exclusive");
+ task = SD_workstation_get_current_task(ws);
+ if(task)
+ XBT_INFO(" current running task: %s",
+ SD_task_get_name(task));
+ else
+ XBT_INFO(" no task running");
+ break;
+ default:
+ XBT_INFO(" - (unknown access mode)");
+ }
+ props = SD_workstation_get_properties(ws);
+
+ if (!xbt_dict_is_empty(props)){
+ XBT_INFO(" - properties:");
+
+ xbt_dict_foreach(props,cursor,key,data) {
+ XBT_INFO(" %s->%s",key,data);
+ }
+ }
+}
/**
* \brief Returns the route between two workstations
}
/**
- * \brief Returns the latency of the route between two workstations, i.e. the sum of all link latencies
+ * \brief Returns the latency of the route between two workstations, i.e. the sum of all link latencies
* between the workstations.
*
* \param src the first workstation
}
/**
- * \brief Returns the bandwidth of the route between two workstations, i.e. the minimum link bandwidth of all
+ * \brief Returns the bandwidth of the route between two workstations, i.e. the minimum link bandwidth of all
* between the workstations.
*
* \param src the first workstation