diff --git a/src/python/m5/SimObject.py b/src/python/m5/SimObject.py
index 4a509e57d..26463f644 100644
--- a/src/python/m5/SimObject.py
+++ b/src/python/m5/SimObject.py
@@ -922,6 +922,8 @@ class SimObject(object):
void init();
void loadState(CheckpointIn &cp);
void initState();
+ void memInvalidate();
+ void memWriteback();
void regStats();
void resetStats();
void regProbePoints();
diff --git a/src/sim/drain.hh b/src/sim/drain.hh
index ae80fb7e9..4ed6074dd 100644
--- a/src/sim/drain.hh
+++ b/src/sim/drain.hh
@@ -204,29 +204,6 @@ class Drainable
*/
virtual void drainResume();
- /**
- * Write back dirty buffers to memory using functional writes.
- *
- * After returning, an object implementing this method should have
- * written all its dirty data back to memory. This method is
- * typically used to prepare a system with caches for
- * checkpointing.
- */
- virtual void memWriteback() {};
-
- /**
- * Invalidate the contents of memory buffers.
- *
- * When the switching to hardware virtualized CPU models, we need
- * to make sure that we don't have any cached state in the system
- * that might become stale when we return. This method is used to
- * flush all such state back to main memory.
- *
- * @warn This does not cause any dirty state to be written
- * back to memory.
- */
- virtual void memInvalidate() {};
-
DrainState getDrainState() const { return _drainState; }
protected:
diff --git a/src/sim/sim_object.hh b/src/sim/sim_object.hh
index 16237d051..17714740b 100644
--- a/src/sim/sim_object.hh
+++ b/src/sim/sim_object.hh
@@ -1,4 +1,16 @@
/*
+ * Copyright (c) 2015 ARM Limited
+ * All rights reserved
+ *
+ * The license below extends only to copyright in the software and shall
+ * not be construed as granting a license to any other intellectual
+ * property including but not limited to intellectual property relating
+ * to a hardware implementation of the functionality of the software
+ * licensed hereunder. You may use the software subject to the license
+ * terms below provided that you ensure that this notice is replicated
+ * unmodified and in its entirety in all distributions of the software,
+ * modified or unmodified, in source code or in binary form.
+ *
* Copyright (c) 2001-2005 The Regents of The University of Michigan
* Copyright (c) 2010 Advanced Micro Devices, Inc.
* All rights reserved.
@@ -175,6 +187,28 @@ class SimObject : public EventManager, public Serializable, public Drainable
*/
unsigned int drain(DrainManager *drainManger);
+ /**
+ * Write back dirty buffers to memory using functional writes.
+ *
+ * After returning, an object implementing this method should have
+ * written all its dirty data back to memory. This method is
+ * typically used to prepare a system with caches for
+ * checkpointing.
+ */
+ virtual void memWriteback() {};
+
+ /**
+ * Invalidate the contents of memory buffers.
+ *
+ * When the switching to hardware virtualized CPU models, we need
+ * to make sure that we don't have any cached state in the system
+ * that might become stale when we return. This method is used to
+ * flush all such state back to main memory.
+ *
+ * @warn This does not cause any dirty state to be written
+ * back to memory.
+ */
+ virtual void memInvalidate() {};
void serialize(CheckpointOut &cp) const M5_ATTR_OVERRIDE {};
void unserialize(CheckpointIn &cp) M5_ATTR_OVERRIDE {};