X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/272ccad1b68b6d9c17069f3c934886925bb15b5d..5572adcb6316b36ca4c10a9b004232f84865592a:/src/surf/surfxml_parse.c diff --git a/src/surf/surfxml_parse.c b/src/surf/surfxml_parse.c index 5f16dce143..4e0804f504 100644 --- a/src/surf/surfxml_parse.c +++ b/src/surf/surfxml_parse.c @@ -66,7 +66,6 @@ int surf_parse_get_int(const char *string) { /* make sure these symbols are defined as strong ones in this file so that the linker can resolve them */ xbt_dynar_t STag_surfxml_route_cb_list = NULL; xbt_dynar_t ETag_surfxml_route_cb_list = NULL; -xbt_dynar_t STag_surfxml_link_ctn_cb_list = NULL; xbt_dynar_t ETag_surfxml_link_ctn_cb_list = NULL; xbt_dynar_t STag_surfxml_process_cb_list = NULL; xbt_dynar_t ETag_surfxml_process_cb_list = NULL; @@ -245,10 +244,6 @@ void surf_parse_init_callbacks(void) STag_surfxml_route_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); ETag_surfxml_route_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); - STag_surfxml_link_ctn_cb_list = - xbt_dynar_new(sizeof(void_f_void_t), NULL); - ETag_surfxml_link_ctn_cb_list = - xbt_dynar_new(sizeof(void_f_void_t), NULL); STag_surfxml_process_cb_list = xbt_dynar_new(sizeof(void_f_void_t), NULL); ETag_surfxml_process_cb_list = @@ -310,8 +305,6 @@ void surf_parse_free_callbacks(void) xbt_dynar_free(&STag_surfxml_route_cb_list); xbt_dynar_free(&ETag_surfxml_route_cb_list); - xbt_dynar_free(&STag_surfxml_link_ctn_cb_list); - xbt_dynar_free(&ETag_surfxml_link_ctn_cb_list); xbt_dynar_free(&STag_surfxml_process_cb_list); xbt_dynar_free(&ETag_surfxml_process_cb_list); xbt_dynar_free(&STag_surfxml_argument_cb_list); @@ -405,6 +398,21 @@ void ETag_surfxml_host(void) { current_property_set = NULL; } +void STag_surfxml_host_link(void){ + XBT_DEBUG("Create a Host_link for %s",A_surfxml_host_link_id); + s_sg_platf_host_link_cbarg_t host_link; + memset(&host_link,0,sizeof(host_link)); + + host_link.id = A_surfxml_host_link_id; + host_link.link_up = A_surfxml_host_link_up; + host_link.link_down = A_surfxml_host_link_down; + sg_platf_new_host_link(&host_link); +} + +void ETag_surfxml_host_link(void){ + XBT_DEBUG("End create a Host_link for %s",A_surfxml_host_link_id); +} + void STag_surfxml_router(void){ s_sg_platf_router_cbarg_t router; memset(&router, 0, sizeof(router)); @@ -468,6 +476,23 @@ void ETag_surfxml_cluster(void){ /* nothing I can think of */ } +void STag_surfxml_cabinet(void){ + s_sg_platf_cabinet_cbarg_t cabinet; + memset(&cabinet,0,sizeof(cabinet)); + cabinet.id = A_surfxml_cabinet_id; + cabinet.prefix = A_surfxml_cabinet_prefix; + cabinet.suffix = A_surfxml_cabinet_suffix; + cabinet.power = surf_parse_get_double(A_surfxml_cabinet_power); + cabinet.bw = surf_parse_get_double(A_surfxml_cabinet_bw); + cabinet.lat = surf_parse_get_double(A_surfxml_cabinet_lat); + cabinet.radical = A_surfxml_cabinet_radical; + + sg_platf_new_cabinet(&cabinet); +} +void ETag_surfxml_cabinet(void){ + /* nothing I can think of */ +} + void STag_surfxml_peer(void){ s_sg_platf_peer_cbarg_t peer; memset(&peer,0,sizeof(peer)); @@ -480,7 +505,6 @@ void STag_surfxml_peer(void){ peer.availability_trace = tmgr_trace_new_from_file(A_surfxml_peer_availability_file); peer.state_trace = tmgr_trace_new_from_file(A_surfxml_peer_state_file); - surfxml_call_cb_functions(STag_surfxml_peer_cb_list); sg_platf_new_peer(&peer); } void ETag_surfxml_peer(void){ @@ -489,6 +513,11 @@ void ETag_surfxml_peer(void){ void STag_surfxml_link(void){ xbt_assert(current_property_set == NULL, "Someone forgot to reset the property set to NULL in its closing tag (or XML malformed)"); } + +void STag_surfxml_backbone(void){ + /* nothing to do here */ +} + void ETag_surfxml_link(void){ s_sg_platf_link_cbarg_t link; memset(&link,0,sizeof(link)); @@ -534,12 +563,51 @@ void ETag_surfxml_link(void){ current_property_set = NULL; } +void STag_surfxml_link_ctn(void){ + s_sg_platf_linkctn_cbarg_t linkctn; + memset(&linkctn,0,sizeof(linkctn)); + + linkctn.id = A_surfxml_link_ctn_id; + + switch (A_surfxml_link_ctn_direction) { + case AU_surfxml_link_ctn_direction: + case A_surfxml_link_ctn_direction_NONE: + linkctn.direction = SURF_LINK_DIRECTION_NONE; + break; + case A_surfxml_link_ctn_direction_UP: + linkctn.direction = SURF_LINK_DIRECTION_UP; + break; + case A_surfxml_link_ctn_direction_DOWN: + linkctn.direction = SURF_LINK_DIRECTION_DOWN; + break; + } + sg_platf_new_linkctn(&linkctn); + +} + +void ETag_surfxml_link_ctn(void){ + // NOTHING TO DO +} +void ETag_surfxml_backbone(void){ + s_sg_platf_link_cbarg_t link; + memset(&link,0,sizeof(link)); + + link.properties = NULL; + + link.id = A_surfxml_backbone_id; + link.bandwidth = surf_parse_get_double(A_surfxml_backbone_bandwidth); + link.latency = surf_parse_get_double(A_surfxml_backbone_latency); + link.state = SURF_RESOURCE_ON; + link.policy = SURF_LINK_SHARED; + + sg_platf_new_link(&link); + routing_cluster_add_backbone(xbt_lib_get_or_null(link_lib, A_surfxml_backbone_id, SURF_LINK_LEVEL)); + current_property_set = NULL; +} + void STag_surfxml_route(void){ surfxml_call_cb_functions(STag_surfxml_route_cb_list); } -void STag_surfxml_link_ctn(void){ - surfxml_call_cb_functions(STag_surfxml_link_ctn_cb_list); -} void STag_surfxml_process(void){ surfxml_call_cb_functions(STag_surfxml_process_cb_list); } @@ -556,7 +624,7 @@ void STag_surfxml_trace_connect(void){ surfxml_call_cb_functions(STag_surfxml_trace_connect_cb_list); } void STag_surfxml_AS(void){ - sg_platf_new_AS_begin(A_surfxml_AS_id,A_surfxml_AS_routing); + sg_platf_new_AS_begin(A_surfxml_AS_id, (int)A_surfxml_AS_routing); } void ETag_surfxml_AS(void){ sg_platf_new_AS_end(); @@ -600,7 +668,6 @@ void STag_surfxml_random(void){ void type##Tag_surfxml_##name(void) parse_method(E, route); -parse_method(E, link_ctn); parse_method(E, process); parse_method(E, argument); parse_method(E, prop);