From d5250059902d506adf2f0728e5f6a04e63748fac Mon Sep 17 00:00:00 2001 From: Richard Hellwig <richard.hellwig@tu-dortmund.de> Date: Fri, 3 May 2013 15:53:43 +0200 Subject: [PATCH] gem5: save/restore moved to Gem5Controller Change-Id: I0ce72f04a8de88f4f8b6c1f0bba7a9097c82e107 --- 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, 15 insertions(+), 56 deletions(-) delete mode 100644 src/core/sal/gem5/Gem5Connector.cc delete mode 100644 src/core/sal/gem5/Gem5Connector.hpp diff --git a/src/core/sal/gem5/Gem5Connector.cc b/src/core/sal/gem5/Gem5Connector.cc deleted file mode 100644 index 81ef19ba..00000000 --- a/src/core/sal/gem5/Gem5Connector.cc +++ /dev/null @@ -1,28 +0,0 @@ -#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 deleted file mode 100644 index 25631223..00000000 --- a/src/core/sal/gem5/Gem5Connector.hpp +++ /dev/null @@ -1,23 +0,0 @@ -#if 0 -// TODO: Incorporate this code into Gem5Controller.{hpp,cc} - -#ifndef __GEM5_CONNECTOR_HPP__ - #define __GEM5_CONNECTOR_HPP__ - -#include <string> - -/** - * \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 e5b2a1af..b00a8d99 100644 --- a/src/core/sal/gem5/Gem5Controller.cc +++ b/src/core/sal/gem5/Gem5Controller.cc @@ -1,10 +1,13 @@ #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() @@ -34,16 +37,23 @@ Gem5Controller::~Gem5Controller() delete m_Mem; } -bool Gem5Controller::save(const std::string &path) +void Gem5Controller::save(const std::string &path) { -// connector.save(path); // FIXME: not working?! + DPRINTF(FailState, "Saving state to %s.\n", path); + + Root* root = Root::root(); + root->Serializable::serializeAll(path); return true; } void Gem5Controller::restore(const std::string &path) { -// connector.restore(path); // FIXME: not working?! + // FIXME: not working currently + Root* root = Root::root(); + Checkpoint cp(path); + + root->loadState(&cp); } // TODO: Implement reboot diff --git a/src/core/sal/gem5/Gem5Controller.hpp b/src/core/sal/gem5/Gem5Controller.hpp index 70bdf38a..6af78880 100644 --- a/src/core/sal/gem5/Gem5Controller.hpp +++ b/src/core/sal/gem5/Gem5Controller.hpp @@ -30,7 +30,7 @@ public: void startup(); ~Gem5Controller(); - bool save(const std::string &path); + void save(const std::string &path); void restore(const std::string &path); void reboot(); #if defined(CONFIG_EVENT_BREAKPOINTS) ||\ -- GitLab