Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add MSG_host_on and MSG_host_off
[simgrid.git] / src / include / surf / surf.h
index 74133ae..68597e2 100644 (file)
@@ -208,6 +208,8 @@ typedef struct surf_cpu_model_extension_public {
   surf_action_t(*execute) (void *cpu, double size);
   surf_action_t(*sleep) (void *cpu, double duration);
   e_surf_resource_state_t(*get_state) (void *cpu);
+  void(*set_state) (void *cpu, e_surf_resource_state_t state);
+
   double (*get_speed) (void *cpu, double load);
   double (*get_available_speed) (void *cpu);
   void (*add_traces) (void);
@@ -262,6 +264,7 @@ typedef struct surf_workstation_model_extension_public {
                                       and create the corresponding action */
   surf_action_t(*sleep) (void *workstation, double duration);                              /**< Make a workstation sleep during a given duration */
   e_surf_resource_state_t(*get_state) (void *workstation);                                      /**< Return the CPU state of a workstation */
+  void(*set_state) (void *workstation, e_surf_resource_state_t state);
   double (*get_speed) (void *workstation, double load);                                    /**< Return the speed of a workstation */
   double (*get_available_speed) (void *workstation);                                       /**< Return tha available speed of a workstation */
    surf_action_t(*communicate) (void *workstation_src,                                     /**< Execute a communication amount between two workstations */
@@ -713,6 +716,17 @@ XBT_PUBLIC_DATA(s_surf_model_description_t) surf_new_model_description[];
 XBT_PUBLIC_DATA(xbt_dynar_t) model_list;
 XBT_PUBLIC_DATA(xbt_dynar_t) model_list_invoke;
 
+/*******************************************/
+/*** SURF Platform *************************/
+/*******************************************/
+typedef struct s_as *AS_t;
+
+XBT_PUBLIC_DATA(AS_t) surf_AS_get_routing_root(void); 
+XBT_PUBLIC_DATA(const char *) surf_AS_get_name(AS_t as);
+XBT_PUBLIC_DATA(xbt_dict_t) surf_AS_get_routing_sons(AS_t as);
+XBT_PUBLIC_DATA(const char *) surf_AS_get_model(AS_t as);
+XBT_PUBLIC_DATA(xbt_dynar_t) surf_AS_get_hosts(AS_t as);
+
 /*******************************************/
 /*** SURF Globals **************************/
 /*******************************************/