Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'dvfs'
[simgrid.git] / src / surf / cpu_cas01_private.h
1
2 /* Copyright (c) 2009, 2010. The SimGrid Team.
3  * All rights reserved.                                                     */
4
5 /* This program is free software; you can redistribute it and/or modify it
6  * under the terms of the license (GNU LGPL) which comes with this package. */
7
8 #ifndef _SURF_CPU_CAS01_PRIVATE_H
9 #define _SURF_CPU_CAS01_PRIVATE_H
10
11 #undef GENERIC_LMM_ACTION
12 #undef GENERIC_ACTION
13 #undef ACTION_GET_CPU
14 #define GENERIC_LMM_ACTION(action) action->generic_lmm_action
15 #define GENERIC_ACTION(action) GENERIC_LMM_ACTION(action).generic_action
16 #define ACTION_GET_CPU(action) ((surf_action_cpu_Cas01_t) action)->cpu
17
18 typedef struct surf_action_cpu_cas01 {
19   s_surf_action_lmm_t generic_lmm_action;
20 } s_surf_action_cpu_Cas01_t, *surf_action_cpu_Cas01_t;
21
22
23 typedef struct energy_cpu_cas01 {
24         xbt_dynar_t power_range_watts_list;
25         double total_energy;
26         double last_updated;
27 } s_energy_cpu_cas01_t, *energy_cpu_cas01_t;
28
29
30 typedef struct cpu_Cas01 {
31   s_surf_resource_t generic_resource;
32   s_xbt_swag_hookup_t modified_cpu_hookup;
33   double power_peak;
34   double power_scale;
35   tmgr_trace_event_t power_event;
36   int core;
37   e_surf_resource_state_t state_current;
38   tmgr_trace_event_t state_event;
39   lmm_constraint_t constraint;
40
41   xbt_dynar_t power_peak_list;
42   int pstate;
43   energy_cpu_cas01_t energy;
44
45 } s_cpu_Cas01_t, *cpu_Cas01_t;
46
47 xbt_dynar_t cpu_get_watts_range_list(cpu_Cas01_t cpu_model);
48 void cpu_update_energy(cpu_Cas01_t cpu_model, double cpu_load);
49
50 #endif                          /* _SURF_CPU_CAS01_PRIVATE_H */