#include "src/simix/smx_private.h"
#include "src/surf/platform.hpp"
+#include "surf/surfxml_parse.h"// FIXME: brain dead public header
+
#include "src/surf/platform.hpp"
#include "src/surf/cpu_interface.hpp"
#include "src/surf/host_interface.hpp"
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_parse);
+XBT_PRIVATE xbt_dynar_t mount_list = NULL;
+
namespace simgrid {
namespace surf {
"Refusing to create a second host named '%s'.", host->id);
simgrid::surf::As* current_routing = routing_get_current();
- if (current_routing->p_hierarchy == SURF_ROUTING_NULL)
- current_routing->p_hierarchy = SURF_ROUTING_BASE;
+ if (current_routing->hierarchy_ == SURF_ROUTING_NULL)
+ current_routing->hierarchy_ = SURF_ROUTING_BASE;
simgrid::surf::NetCard *netcard =
- new simgrid::surf::NetCardImpl(xbt_strdup(host->id), -1, SURF_NETWORK_ELEMENT_HOST, current_routing);
+ new simgrid::surf::NetCardImpl(host->id, SURF_NETWORK_ELEMENT_HOST, current_routing);
- netcard->setId(current_routing->parsePU(netcard));
+ netcard->setId(current_routing->addComponent(netcard));
sg_host_t h = simgrid::s4u::Host::by_name_or_create(host->id);
h->pimpl_netcard = netcard;
simgrid::surf::netcardCreatedCallbacks(netcard);
{
simgrid::surf::As* current_routing = routing_get_current();
- if (current_routing->p_hierarchy == SURF_ROUTING_NULL)
- current_routing->p_hierarchy = SURF_ROUTING_BASE;
+ if (current_routing->hierarchy_ == SURF_ROUTING_NULL)
+ current_routing->hierarchy_ = SURF_ROUTING_BASE;
xbt_assert(!xbt_lib_get_or_null(as_router_lib, router->id, ROUTING_ASR_LEVEL),
"Reading a router, processing unit \"%s\" already exists",
router->id);
- simgrid::surf::NetCard *info = new simgrid::surf::NetCardImpl(
- xbt_strdup(router->id), -1, SURF_NETWORK_ELEMENT_ROUTER, current_routing);
- info->setId(current_routing->parsePU(info));
+ simgrid::surf::NetCard *info = new simgrid::surf::NetCardImpl(router->id, SURF_NETWORK_ELEMENT_ROUTER, current_routing);
+ info->setId(current_routing->addComponent(info));
xbt_lib_set(as_router_lib, router->id, ROUTING_ASR_LEVEL, (void *) info);
XBT_DEBUG("Having set name '%s' id '%d'", router->id, info->getId());
simgrid::surf::netcardCreatedCallbacks(info);
s_sg_platf_link_cbarg_t link = SG_PLATF_LINK_INITIALIZER;
unsigned int iter;
- int start, end, i;
- xbt_dynar_t radical_elements;
- xbt_dynar_t radical_ends;
if ((cluster->availability_trace && strcmp(cluster->availability_trace, ""))
|| (cluster->state_trace && strcmp(cluster->state_trace, ""))) {
switch (cluster->topology) {
case SURF_CLUSTER_TORUS:
- XBT_DEBUG("<AS id=\"%s\"\trouting=\"Torus_Cluster\">", cluster->id);
- AS.routing = A_surfxml_AS_routing_Cluster___torus;
+ AS.routing = A_surfxml_AS_routing_ClusterTorus;
break;
case SURF_CLUSTER_FAT_TREE:
- XBT_DEBUG("<AS id=\"%s\"\trouting=\"Fat_Tree_Cluster\">", cluster->id);
- AS.routing = A_surfxml_AS_routing_Cluster___fat___tree;
+ AS.routing = A_surfxml_AS_routing_ClusterFatTree;
break;
default:
- XBT_DEBUG("<AS id=\"%s\"\trouting=\"Cluster\">", cluster->id);
AS.routing = A_surfxml_AS_routing_Cluster;
break;
}
}
- current_routing->p_linkUpDownList
- = xbt_dynar_new(sizeof(s_surf_parsing_link_up_down_t),NULL);
-
//Make all hosts
- radical_elements = xbt_str_split(cluster->radical, ",");
+ xbt_dynar_t radical_elements = xbt_str_split(cluster->radical, ",");
xbt_dynar_foreach(radical_elements, iter, groups) {
- radical_ends = xbt_str_split(groups, "-");
- start = surf_parse_get_int(xbt_dynar_get_as(radical_ends, 0, char *));
+ xbt_dynar_t radical_ends = xbt_str_split(groups, "-");
+ int start = surf_parse_get_int(xbt_dynar_get_as(radical_ends, 0, char *));
+ int end;
switch (xbt_dynar_length(radical_ends)) {
case 1:
surf_parse_error("Malformed radical");
break;
}
- for (i = start; i <= end; i++) {
- host_id =
- bprintf("%s%d%s", cluster->prefix, i, cluster->suffix);
+ for (int i = start; i <= end; i++) {
+ host_id = bprintf("%s%d%s", cluster->prefix, i, cluster->suffix);
link_id = bprintf("%s_link_%d", cluster->id, i);
XBT_DEBUG("<host\tid=\"%s\"\tpower=\"%f\">", host_id, cluster->speed);
info_loop.link_up = Link::byName(tmp_link);
info_loop.link_down = info_loop.link_up;
free(tmp_link);
- xbt_dynar_set(current_routing->p_linkUpDownList,
+ xbt_dynar_set(current_routing->upDownLinks,
rankId*(static_cast<AsCluster*>(current_routing))->p_nb_links_per_node, &info_loop);
}
info_lim.link_down = info_lim.link_up;
free(tmp_link);
auto as_cluster = static_cast<AsCluster*>(current_routing);
- xbt_dynar_set(current_routing->p_linkUpDownList,
+ xbt_dynar_set(current_routing->upDownLinks,
rankId*(as_cluster)->p_nb_links_per_node + as_cluster->p_has_loopback ,
&info_lim);
void sg_platf_new_mstorage(sg_platf_mstorage_cbarg_t mstorage)
{
THROW_UNIMPLEMENTED;
-// mount_t mnt = xbt_new0(s_mount_t, 1);
-// mnt->id = xbt_strdup(mstorage->type_id);
-// mnt->name = xbt_strdup(mstorage->name);
-//
-// if(!mount_list){
-// XBT_DEBUG("Creata a Mount list for %s",A_surfxml_host_id);
-// mount_list = xbt_dynar_new(sizeof(char *), NULL);
-// }
-// xbt_dynar_push(mount_list,(void *) mnt);
-// free(mnt->id);
-// free(mnt->name);
-// xbt_free(mnt);
-// XBT_DEBUG("ROUTING Mount a storage name '%s' with type_id '%s'",mstorage->name, mstorage->id);
}
static void mount_free(void *p)
void sg_platf_new_mount(sg_platf_mount_cbarg_t mount){
// Verification of an existing storage
-#ifndef NDEBUG
- void* storage = xbt_lib_get_or_null(storage_lib, mount->storageId, ROUTING_STORAGE_LEVEL);
-#endif
- xbt_assert(storage,"Disk id \"%s\" does not exists", mount->storageId);
+ xbt_assert(xbt_lib_get_or_null(storage_lib, mount->storageId, ROUTING_STORAGE_LEVEL),
+ "Cannot mount non-existent disk \"%s\"", mount->storageId);
XBT_DEBUG("ROUTING Mount '%s' on '%s'",mount->storageId, mount->name);