sim: Remove SimObject::setMemoryMode
authorAndreas Sandberg <Andreas.Sandberg@arm.com>
Tue, 25 Sep 2012 16:49:40 +0000 (11:49 -0500)
committerAndreas Sandberg <Andreas.Sandberg@arm.com>
Tue, 25 Sep 2012 16:49:40 +0000 (11:49 -0500)
Remove SimObject::setMemoryMode from the main SimObject class since it
is only valid for the System class. In addition to removing the method
from the C++ sources, this patch also removes getMemoryMode and
changeTiming from SimObject.py and updates the simulation code to call
the (get|set)MemoryMode method on the System object instead.

src/python/m5/SimObject.py
src/python/m5/simulate.py
src/sim/sim_object.cc
src/sim/sim_object.hh

index ae6b2035e0949bb6dd76e2da880fcad4b45ea463..c8227c0674493333a9a4ec4ed32040b300257ace 100644 (file)
@@ -1050,19 +1050,6 @@ class SimObject(object):
         for portRef in self._port_refs.itervalues():
             portRef.ccConnect()
 
-    def getMemoryMode(self):
-        if not isinstance(self, m5.objects.System):
-            return None
-
-        return self._ccObject.getMemoryMode()
-
-    def changeTiming(self, mode):
-        if isinstance(self, m5.objects.System):
-            # i don't know if there's a better way to do this - calling
-            # setMemoryMode directly from self._ccObject results in calling
-            # SimObject::setMemoryMode, not the System::setMemoryMode
-            self._ccObject.setMemoryMode(mode)
-
     def takeOverFrom(self, old_cpu):
         self._ccObject.takeOverFrom(old_cpu._ccObject)
 
index 0f2a546c14b2c6068d9db0d89404339678717e32..17150cd4f108569c55aabc2af48659c7c4e6f2dc 100644 (file)
@@ -194,8 +194,7 @@ def changeToAtomic(system):
     if system.getMemoryMode() != objects.params.atomic:
         doDrain(system)
         print "Changing memory mode to atomic"
-        for obj in system.descendants():
-            obj.changeTiming(objects.params.atomic)
+        system.setMemoryMode(objects.params.atomic)
 
 def changeToTiming(system):
     if not isinstance(system, (objects.Root, objects.System)):
@@ -204,8 +203,7 @@ def changeToTiming(system):
 
     if system.getMemoryMode() != objects.params.timing:
         print "Changing memory mode to timing"
-        for obj in system.descendants():
-            obj.changeTiming(objects.params.timing)
+        system.setMemoryMode(objects.params.timing)
 
 def switchCpus(cpuList):
     print "switching cpus"
index 571989b02bbc0139e51ff0c88bba8ab646bf0fd7..866ce0ce2d23453ba0a0437b07d92f81783b720b 100644 (file)
@@ -163,12 +163,6 @@ SimObject::resume()
     state = Running;
 }
 
-void
-SimObject::setMemoryMode(Enums::MemoryMode new_mode)
-{
-    panic("setMemoryMode() should only be called on systems");
-}
-
 void
 SimObject::switchOut()
 {
index 1640be404c44b6c5877ab67e64210061e12c4fd5..4fa2b7f05bb3f69c4996340cf9db4cb6f287354b 100644 (file)
@@ -255,13 +255,6 @@ class SimObject : public EventManager, public Serializable
      */
     virtual void resume();
 
-    /**
-     * Change the memory mode the simulator operates in.
-     *
-     * @note Should only be implemented in the System object.
-     */
-    virtual void setMemoryMode(Enums::MemoryMode new_mode);
-
     /**
      * Prepare a CPU model to be switched out, invoked on active CPUs
      * that are about to be replaced.