Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
added dvfs support
[simgrid.git] / src / include / surf / surf.h
index 1483505..a9d5330 100644 (file)
@@ -197,6 +197,11 @@ typedef struct surf_cpu_model_extension_public {
   e_surf_resource_state_t(*get_state) (void *cpu);
   double (*get_speed) (void *cpu, double load);
   double (*get_available_speed) (void *cpu);
+  double (*get_current_power_peak) (void *cpu);
+  double (*get_power_peak_at) (void *cpu, int pstate_index);
+  int (*get_nb_pstates) (void *cpu);
+  void (*set_power_peak_at) (void *cpu, int pstate_index);
+  double (*get_consumed_energy) (void *cpu);
   void (*add_traces) (void);
 } s_surf_model_extension_cpu_t;
 
@@ -246,7 +251,13 @@ 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 */
-  double (*get_speed) (void *workstation, double load);                                    /**< Return the speed of a workstation */
+  double (*get_speed) (void *workstation, double load); /**< Return the speed of a workstation */
+
+  double (*get_current_power_peak) (void *workstation);
+  double (*get_power_peak_at) (void *workstation, int pstate_index);
+  int (*get_nb_pstates) (void *workstation);
+  void (*set_power_peak_at) (void *workstation, int pstate_index);
+  double (*get_consumed_energy) (void *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 */
                                 void *workstation_dst, double size,