From a6c24489f6dcafd777a557462c1b34ef43dec3cc Mon Sep 17 00:00:00 2001 From: Richard Hellwig Date: Wed, 22 May 2013 17:38:56 +0200 Subject: [PATCH] Revert "gem5: save/restore moved to Gem5Controller" This reverts commit d5250059902d506adf2f0728e5f6a04e63748fac. --- src/core/sal/gem5/Gem5Connector.cc | 28 ++++++++++++++++++++++++++++ src/core/sal/gem5/Gem5Connector.hpp | 23 +++++++++++++++++++++++ src/core/sal/gem5/Gem5Controller.cc | 18 ++++-------------- src/core/sal/gem5/Gem5Controller.hpp | 2 +- 4 files changed, 56 insertions(+), 15 deletions(-) create mode 100644 src/core/sal/gem5/Gem5Connector.cc create mode 100644 src/core/sal/gem5/Gem5Connector.hpp diff --git a/src/core/sal/gem5/Gem5Connector.cc b/src/core/sal/gem5/Gem5Connector.cc new file mode 100644 index 00000000..81ef19ba --- /dev/null +++ b/src/core/sal/gem5/Gem5Connector.cc @@ -0,0 +1,28 @@ +#if 0 +#include "Gem5Connector.hpp" + +#include "base/trace.hh" +#include "debug/FailState.hh" +#include "sim/root.hh" + +Gem5Connector connector; + +void Gem5Connector::save(const std::string &path) +{ + DPRINTF(FailState, "Saving state to %s.\n", path); + + Root* root = Root::root(); + root->Serializable::serializeAll(path); +} + +void Gem5Connector::restore(const std::string &path) +{ + DPRINTF(FailState, "Restoring state from %s.\n", path); + + Root* root = Root::root(); + Checkpoint cp(path); + + root->loadState(&cp); +} + +#endif diff --git a/src/core/sal/gem5/Gem5Connector.hpp b/src/core/sal/gem5/Gem5Connector.hpp new file mode 100644 index 00000000..25631223 --- /dev/null +++ b/src/core/sal/gem5/Gem5Connector.hpp @@ -0,0 +1,23 @@ +#if 0 +// TODO: Incorporate this code into Gem5Controller.{hpp,cc} + +#ifndef __GEM5_CONNECTOR_HPP__ + #define __GEM5_CONNECTOR_HPP__ + +#include + +/** + * \class Gem5Connector + * This class will be compiled inside the gem5 context and provides the + * Gem5Controller a way to call gem5 functions. + */ +class Gem5Connector { +public: + void save(const std::string &path); + void restore(const std::string &path); +}; + +extern Gem5Connector connector; + +#endif // __GEM5_CONNECTOR_HPP__ +#endif diff --git a/src/core/sal/gem5/Gem5Controller.cc b/src/core/sal/gem5/Gem5Controller.cc index b00a8d99..e5b2a1af 100644 --- a/src/core/sal/gem5/Gem5Controller.cc +++ b/src/core/sal/gem5/Gem5Controller.cc @@ -1,13 +1,10 @@ #include "Gem5Controller.hpp" +//#include "Gem5Connector.hpp" #include "../Listener.hpp" #include "Gem5Wrapper.hpp" -#include "base/trace.hh" -#include "debug/FailState.hh" -#include "sim/root.hh" - namespace fail { void Gem5Controller::startup() @@ -37,23 +34,16 @@ Gem5Controller::~Gem5Controller() delete m_Mem; } -void Gem5Controller::save(const std::string &path) +bool Gem5Controller::save(const std::string &path) { - DPRINTF(FailState, "Saving state to %s.\n", path); - - Root* root = Root::root(); - root->Serializable::serializeAll(path); +// connector.save(path); // FIXME: not working?! return true; } void Gem5Controller::restore(const std::string &path) { - // FIXME: not working currently - Root* root = Root::root(); - Checkpoint cp(path); - - root->loadState(&cp); +// connector.restore(path); // FIXME: not working?! } // TODO: Implement reboot diff --git a/src/core/sal/gem5/Gem5Controller.hpp b/src/core/sal/gem5/Gem5Controller.hpp index 6af78880..70bdf38a 100644 --- a/src/core/sal/gem5/Gem5Controller.hpp +++ b/src/core/sal/gem5/Gem5Controller.hpp @@ -30,7 +30,7 @@ public: void startup(); ~Gem5Controller(); - void save(const std::string &path); + bool save(const std::string &path); void restore(const std::string &path); void reboot(); #if defined(CONFIG_EVENT_BREAKPOINTS) ||\