Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add functions SD_link_get_list() and SD_link_get_number() + optimize SD_workstation_g...
[simgrid.git] / src / include / surf / surf.h
index 92e295b..3887011 100644 (file)
@@ -114,6 +114,7 @@ typedef struct surf_cpu_resource_extension_public {
   surf_action_t(*sleep) (void *cpu, double duration);
   e_surf_cpu_state_t(*get_state) (void *cpu);
   double (*get_speed) (void *cpu, double load);
+  double (*get_available_speed) (void *cpu);
 } s_surf_cpu_resource_extension_public_t,
     *surf_cpu_resource_extension_public_t;
 
@@ -129,6 +130,11 @@ 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);
+  const void** (*get_route) (void *src, void *dst);
+  int (*get_route_size) (void *src, void *dst);
+  const char* (*get_link_name) (const void *link);
+  double (*get_link_bandwidth) (const void *link);
+  double (*get_link_latency) (const void *link);
 } s_surf_network_resource_extension_public_t,
     *surf_network_resource_extension_public_t;
 
@@ -140,6 +146,7 @@ typedef struct surf_network_resource {
 
 extern surf_network_resource_t surf_network_resource;
 void surf_network_resource_init_CM02(const char *filename);
+extern xbt_dict_t network_link_set;
 
 /* Workstation resource */
 typedef struct surf_workstation_resource_extension_public {
@@ -147,6 +154,7 @@ typedef struct surf_workstation_resource_extension_public {
   surf_action_t(*sleep) (void *workstation, double duration);
   e_surf_cpu_state_t(*get_state) (void *workstation);
   double (*get_speed) (void *workstation, double load);
+  double (*get_available_speed) (void *workstation);
   surf_action_t(*communicate) (void *workstation_src,
                               void *workstation_dst, double size,
                               double max_rate);
@@ -156,6 +164,11 @@ typedef struct surf_workstation_resource_extension_public {
                                         double *communication_amount,
                                         double amount,
                                         double rate);
+  const void** (*get_route) (void *src, void *dst);
+  int (*get_route_size) (void *src, void *dst);
+  const char* (*get_link_name) (const void *link);
+  double (*get_link_bandwidth) (const void *link);
+  double (*get_link_latency) (const void *link);
 } s_surf_workstation_resource_extension_public_t,
     *surf_workstation_resource_extension_public_t;