Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add VM energy extensions - Adrien
[simgrid.git] / src / surf / cpu_interface.hpp
index 595ff81..6ac0ad9 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2004-2014. The SimGrid Team.
+/* Copyright (c) 2004-2015. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -202,6 +202,41 @@ public:
   /* Note (hypervisor): */
   lmm_constraint_t *p_constraintCore;
   void **p_constraintCoreId;
+
+  // ////
+  // Adrien - Oct 2015. Additional code related to VM energy extensions
+  /* TODO: 
+     1./ create a VirtualCpuModel that inherits from CpuModel or create
+     a VirtualCpuCas01Model that inherist from CpuCas01Model
+         => Question: not sure which one is really usefull :( The objective is to
+     be able to create a VirtualCpu instead of a Cpu (i.e. a CpuCas01 to be exact). 
+     2. create VirtualCpu class that inherits from Cpu or create
+     a VirtualCpuCas01 class that inherits from CpuCas01 (same issue as the one described above).      
+         Such modifications would enable us to remove the isVirtual method and
+     actually use the polymorphism feature of C++. It will also enable us 
+     to overwrite the cpu_energy hashmap in energyCpuCreateCallBack instead of invoking
+     setVirtual(). 
+     So to make a long story short, it will be cleaner from the software viewpoint 
+     and patches welcome ;) - Adrien October 20 2015 
+  */
+  Cpu *physCpu = NULL;
+
+       /**
+        * @brief Set the current Cpu as virtual or physical
+        *
+        * @param isVirtual true to indicate this Cpu is virtual, false otherwise
+        */
+       void setVirtual(Cpu *physCpu);
+
+       /**
+        * @brief Learn if this Cpu is physical or virtual
+        *
+        * @return phys CPU  if the current Cpu is a VM, null otherwise
+        */
+       Cpu* isVirtual(void);
+   
+   // Adrien - Oct 2015. End of additional code related to VM energy extensions
+   // ////
 };
 
 /**********