From: Martin Quinson Date: Tue, 8 Nov 2011 15:38:54 +0000 (+0100) Subject: /me also hates void* pointers X-Git-Tag: exp_20120216~417 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/6d64076cb863913f0443de9e191934756abdae9c?ds=sidebyside /me also hates void* pointers --- diff --git a/src/surf/surf_private.h b/src/surf/surf_private.h index 1c7b932174..ad8bde924f 100644 --- a/src/surf/surf_private.h +++ b/src/surf/surf_private.h @@ -101,11 +101,12 @@ typedef struct s_onelink { /** * Routing logic */ +typedef struct s_routing_component *routing_component_t; typedef struct s_model_type { const char *name; const char *desc; - void *(*create) (); + routing_component_t (*create) (); void (*load) (); void (*unload) (); void (*end) (); diff --git a/src/surf/surf_routing_cluster.c b/src/surf/surf_routing_cluster.c index 5a8d22b3a3..45f09cc486 100644 --- a/src/surf/surf_routing_cluster.c +++ b/src/surf/surf_routing_cluster.c @@ -48,12 +48,12 @@ static route_extended_t cluster_get_route(routing_component_t rc, } /* Creation routing model functions */ -void *model_cluster_create(void) +routing_component_t model_cluster_create(void) { - routing_component_cluster_t new_component = model_rulebased_create(); - new_component->generic_routing.get_route = cluster_get_route; + routing_component_t new_component = model_rulebased_create(); + new_component->get_route = cluster_get_route; - return new_component; + return (routing_component_t) new_component; } void model_cluster_unload(void) { // xbt_dict_free(&cluster_host_link); //FIXME: do it once the module management is clean in routing diff --git a/src/surf/surf_routing_dijkstra.c b/src/surf/surf_routing_dijkstra.c index 6a89c34957..cced8132db 100644 --- a/src/surf/surf_routing_dijkstra.c +++ b/src/surf/surf_routing_dijkstra.c @@ -447,7 +447,7 @@ static void dijkstra_finalize(routing_component_t rc) /* Creation routing model functions */ -void *model_dijkstra_both_create(int cached) +routing_component_t model_dijkstra_both_create(int cached) { routing_component_dijkstra_t new_component = xbt_new0(s_routing_component_dijkstra_t, 1); @@ -469,15 +469,15 @@ void *model_dijkstra_both_create(int cached) new_component->generic_routing.to_index = xbt_dict_new(); new_component->generic_routing.bypassRoutes = xbt_dict_new(); new_component->generic_routing.get_network_element_type = get_network_element_type; - return new_component; + return (routing_component_t)new_component; } -void *model_dijkstra_create(void) +routing_component_t model_dijkstra_create(void) { return model_dijkstra_both_create(0); } -void *model_dijkstracache_create(void) +routing_component_t model_dijkstracache_create(void) { return model_dijkstra_both_create(1); } diff --git a/src/surf/surf_routing_floyd.c b/src/surf/surf_routing_floyd.c index e744b8670e..390a28ef52 100644 --- a/src/surf/surf_routing_floyd.c +++ b/src/surf/surf_routing_floyd.c @@ -174,7 +174,7 @@ static void floyd_finalize(routing_component_t rc) } } -void *model_floyd_create(void) +routing_component_t model_floyd_create(void) { routing_component_floyd_t new_component = xbt_new0(s_routing_component_floyd_t, 1); @@ -195,7 +195,7 @@ void *model_floyd_create(void) new_component->generic_routing.to_index = xbt_dict_new(); new_component->generic_routing.bypassRoutes = xbt_dict_new(); new_component->generic_routing.get_network_element_type = get_network_element_type; - return new_component; + return (routing_component_t)new_component; } void model_floyd_load(void) diff --git a/src/surf/surf_routing_full.c b/src/surf/surf_routing_full.c index be6166c689..1673f86226 100644 --- a/src/surf/surf_routing_full.c +++ b/src/surf/surf_routing_full.c @@ -17,7 +17,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_full, surf, "Routing part of surf"); /* Routing model structure */ -typedef struct { +typedef struct s_routing_component_full { s_routing_component_t generic_routing; route_extended_t *routing_table; } s_routing_component_full_t, *routing_component_full_t; @@ -124,7 +124,7 @@ static void full_finalize(routing_component_t rc) /* Creation routing model functions */ -void *model_full_create(void) +routing_component_t model_full_create(void) { routing_component_full_t new_component = xbt_new0(s_routing_component_full_t, 1); @@ -145,7 +145,7 @@ void *model_full_create(void) new_component->generic_routing.to_index = xbt_dict_new(); new_component->generic_routing.bypassRoutes = xbt_dict_new(); new_component->generic_routing.get_network_element_type = get_network_element_type; - return new_component; + return (routing_component_t) new_component; } void model_full_load(void) diff --git a/src/surf/surf_routing_none.c b/src/surf/surf_routing_none.c index 43b347b48e..c26c777fa1 100644 --- a/src/surf/surf_routing_none.c +++ b/src/surf/surf_routing_none.c @@ -53,7 +53,7 @@ static void none_set_autonomous_system(routing_component_t rc, } /* Creation routing model functions */ -void *model_none_create(void) +routing_component_t model_none_create(void) { routing_component_none_t new_component = xbt_new0(s_routing_component_none_t, 1); @@ -69,7 +69,7 @@ void *model_none_create(void) none_get_onelink_routes; new_component->generic_routing.get_bypass_route = none_get_bypass_route; new_component->generic_routing.finalize = none_finalize; - return new_component; + return (routing_component_t) new_component; } void model_none_load(void) diff --git a/src/surf/surf_routing_private.h b/src/surf/surf_routing_private.h index 15a2090272..a18de1e281 100644 --- a/src/surf/surf_routing_private.h +++ b/src/surf/surf_routing_private.h @@ -64,7 +64,7 @@ void generic_src_dst_check(routing_component_t rc, const char *src, /* ************************************************************************** */ /* *************************** FLOYD ROUTING ******************************** */ -void *model_floyd_create(void); /* create structures for floyd routing model */ +routing_component_t model_floyd_create(void); /* create structures for floyd routing model */ void model_floyd_load(void); /* load parse functions for floyd routing model */ void model_floyd_unload(void); /* unload parse functions for floyd routing model */ void model_floyd_end(void); /* finalize the creation of floyd routing model */ @@ -73,18 +73,18 @@ void model_floyd_set_route(routing_component_t rc, const char *src, /* ************************************************** */ /* ************** RULE-BASED ROUTING **************** */ -void *model_rulebased_create(void); /* create structures for rulebased routing model */ +routing_component_t model_rulebased_create(void); /* create structures for rulebased routing model */ /* ************************************************** */ /* ************** Cluster ROUTING **************** */ -void *model_cluster_create(void); /* create structures for cluster routing model */ +routing_component_t model_cluster_create(void); /* create structures for cluster routing model */ void model_cluster_unload(void); /* Finalize the routing model */ void surf_routing_cluster_add_link(const char* host_id,surf_parsing_link_up_down_t info); /* ************************************************** */ /* ************** Vivaldi ROUTING **************** */ -void *model_vivaldi_create(void); /* create structures for vivaldi routing model */ +routing_component_t model_vivaldi_create(void); /* create structures for vivaldi routing model */ #define HOST_PEER(peername) bprintf("peer_%s", peername) #define ROUTER_PEER(peername) bprintf("router_%s", peername) #define LINK_UP_PEER(peername) bprintf("link_%s_up", peername) @@ -92,9 +92,9 @@ void *model_vivaldi_create(void); /* create structures for vivaldi routing /* ************************************************************************** */ /* ********** Dijkstra & Dijkstra Cached ROUTING **************************** */ -void *model_dijkstra_both_create(int cached); /* create by calling dijkstra or dijkstracache */ -void *model_dijkstra_create(void); /* create structures for dijkstra routing model */ -void *model_dijkstracache_create(void); /* create structures for dijkstracache routing model */ +routing_component_t model_dijkstra_both_create(int cached); /* create by calling dijkstra or dijkstracache */ +routing_component_t model_dijkstra_create(void); /* create structures for dijkstra routing model */ +routing_component_t model_dijkstracache_create(void); /* create structures for dijkstracache routing model */ void model_dijkstra_both_load(void); /* load parse functions for dijkstra routing model */ void model_dijkstra_both_unload(void); /* unload parse functions for dijkstra routing model */ void model_dijkstra_both_end(void); /* finalize the creation of dijkstra routing model */ @@ -103,7 +103,7 @@ void model_dijkstra_both_set_route (routing_component_t rc, const char *src, /* ************************************************************************** */ /* *************************** FULL ROUTING ********************************* */ -void *model_full_create(void); /* create structures for full routing model */ +routing_component_t model_full_create(void); /* create structures for full routing model */ void model_full_load(void); /* load parse functions for full routing model */ void model_full_unload(void); /* unload parse functions for full routing model */ void model_full_end(void); /* finalize the creation of full routing model */ @@ -112,7 +112,7 @@ void model_full_set_route( /* Set the route and ASroute between src and dst */ /* ************************************************************************** */ /* ******************************* NO ROUTING ******************************* */ -void *model_none_create(void); /* none routing model */ +routing_component_t model_none_create(void); /* none routing model */ void model_none_load(void); /* none routing model */ void model_none_unload(void); /* none routing model */ void model_none_end(void); /* none routing model */ diff --git a/src/surf/surf_routing_rulebased.c b/src/surf/surf_routing_rulebased.c index 03ae1a4d93..611ad3eebd 100644 --- a/src/surf/surf_routing_rulebased.c +++ b/src/surf/surf_routing_rulebased.c @@ -394,7 +394,7 @@ static void rulebased_finalize(routing_component_t rc) } /* Creation routing model functions */ -void *model_rulebased_create(void) +routing_component_t model_rulebased_create(void) { routing_component_rulebased_t new_component = xbt_new0(s_routing_component_rulebased_t, 1); @@ -418,5 +418,5 @@ void *model_rulebased_create(void) new_component->list_ASroute = xbt_dynar_new(sizeof(rule_route_extended_t), &rule_route_extended_free); - return new_component; + return (routing_component_t) new_component; } diff --git a/src/surf/surf_routing_vivaldi.c b/src/surf/surf_routing_vivaldi.c index d53c81233f..85b8fabd61 100644 --- a/src/surf/surf_routing_vivaldi.c +++ b/src/surf/surf_routing_vivaldi.c @@ -7,20 +7,6 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_vivaldi, surf, "Routing part of surf"); -/* Routing model structure */ - -typedef struct { - s_routing_component_t generic_routing; - xbt_dict_t dict_processing_units; - xbt_dict_t dict_autonomous_systems; -} s_routing_component_vivaldi_t, *routing_component_vivaldi_t; - -/* Parse routing model functions */ - -static route_extended_t vivaldi_get_route(routing_component_t rc, - const char *src, - const char *dst); - /* Business methods */ static route_extended_t vivaldi_get_route(routing_component_t rc, const char *src, @@ -85,10 +71,10 @@ static double vivaldi_get_link_latency (routing_component_t rc,const char *src, } /* Creation routing model functions */ -void *model_vivaldi_create(void) +routing_component_t model_vivaldi_create(void) { - routing_component_vivaldi_t new_component = model_none_create(); - new_component->generic_routing.get_route = vivaldi_get_route; - new_component->generic_routing.get_latency = vivaldi_get_link_latency; + routing_component_t new_component = model_none_create(); + new_component->get_route = vivaldi_get_route; + new_component->get_latency = vivaldi_get_link_latency; return new_component; }