X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/242fde5e8077f8193db4df5f262a9672085c8d8a..b1da263522ee9c5ca0b60d0ce75d3f06a2e641ba:/src/surf/cpu_interface.hpp diff --git a/src/surf/cpu_interface.hpp b/src/surf/cpu_interface.hpp index 595ff81173..6ac0ad9cfb 100644 --- a/src/surf/cpu_interface.hpp +++ b/src/surf/cpu_interface.hpp @@ -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 + // //// }; /**********