Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix function get_route
authorthiery <thiery@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Tue, 20 Jun 2006 07:06:05 +0000 (07:06 +0000)
committerthiery <thiery@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Tue, 20 Jun 2006 07:06:05 +0000 (07:06 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@2399 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/include/surf/surf.h
src/surf/network.c
src/surf/network_dassf.c
src/surf/workstation.c
src/surf/workstation_KCCFLN05.c

index eede32a..893a87e 100644 (file)
@@ -130,7 +130,7 @@ void surf_cpu_resource_init_Cas01(const char *filename);
 typedef struct surf_network_resource_extension_public {
   surf_action_t(*communicate) (void *src, void *dst, double size,
                               double max_rate);
-  void* (*get_route) (void *src, void *dst);
+  const void** (*get_route) (void *src, void *dst);
 } s_surf_network_resource_extension_public_t,
     *surf_network_resource_extension_public_t;
 
@@ -160,7 +160,7 @@ typedef struct surf_workstation_resource_extension_public {
                                         double *communication_amount,
                                         double amount,
                                         double rate);
-  void* (*get_route) (void *src, void *dst);
+  const void** (*get_route) (void *src, void *dst);
 } s_surf_workstation_resource_extension_public_t,
     *surf_workstation_resource_extension_public_t;
 
index edb762e..99b301f 100644 (file)
@@ -458,7 +458,7 @@ static surf_action_t communicate(void *src, void *dst, double size, double rate)
   return (surf_action_t) action;
 }
 
-static void* get_route(void *src, void *dst) {
+static const void** get_route(void *src, void *dst) {
   /* TODO */
 
   return NULL;
index 553d851..1a4651f 100644 (file)
@@ -410,7 +410,7 @@ static surf_action_t communicate(void *src, void *dst, double size, double rate)
   return (surf_action_t) action;
 }
 
-static void* get_route(void *src, void *dst) {
+static const void** get_route(void *src, void *dst) {
   /* TODO */
 
   return NULL;
index 2c0e553..f559003 100644 (file)
@@ -387,7 +387,7 @@ static surf_action_t execute_parallel_task (int workstation_nb,
   return (surf_action_t) action;
 }
 
-static void* get_route(void *src, void *dst) {
+static const void** get_route(void *src, void *dst) {
   /* TODO */
 
   return NULL;
index 1c3288c..c91ad04 100644 (file)
@@ -560,19 +560,18 @@ static surf_action_t execute_parallel_task(int cpu_nb,
   return NULL;
 }
 
-static void* get_route(void *src, void *dst) {
-  /* TODO: return a NULL-terminated array of network_link_KCCFLN05_t */
-
+/* returns a NULL-terminated array of network_link_KCCFLN05_t */
+static const void** get_route(void *src, void *dst) {
   cpu_KCCFLN05_t card_src = src;
   cpu_KCCFLN05_t card_dst = dst;
   route_KCCFLN05_t route = &(ROUTE(card_src->id, card_dst->id));
   int route_size = route->size;
 
-  network_link_KCCFLN05_t *link_list = route->links;
-  link_list = xbt_realloc(link_list, (route_size+1) * sizeof(route_KCCFLN05_t));
-  link_list[route_size] = NULL;
+  /* add NULL at the end of the array if not present */
+  route->links = xbt_realloc(route->links, (route_size+1) * sizeof(route_KCCFLN05_t));
+  route->links[route_size] = NULL;
 
-  return link_list;
+  return (const void**) route->links;
 }
 
 /**************************************/