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