summaryrefslogtreecommitdiff
path: root/src/python
diff options
context:
space:
mode:
authorAndreas Sandberg <Andreas.Sandberg@arm.com>2012-11-02 11:32:02 -0500
committerAndreas Sandberg <Andreas.Sandberg@arm.com>2012-11-02 11:32:02 -0500
commit196397fea4e25f097b4a1624ee16fbbbc1c45b64 (patch)
tree3fe772ae6f94043b08311e08ea43b1cd9af23609 /src/python
parentb81a977e6ab7dbfd122cb778cfe3d40ca7451198 (diff)
downloadgem5-196397fea4e25f097b4a1624ee16fbbbc1c45b64.tar.xz
sim: Reuse the code to change memory mode.
changeToAtomic and changeToTiming both do essentially the same thing, they check the type of their input argument, drain the system, and switch to the desired memory mode. This patch moves all of that code to a separate method (changeMemoryMode) and calls that from both changeToAtomic and changeToTiming.
Diffstat (limited to 'src/python')
-rw-r--r--src/python/m5/simulate.py23
1 files changed, 11 insertions, 12 deletions
diff --git a/src/python/m5/simulate.py b/src/python/m5/simulate.py
index df30f654a..4c6076581 100644
--- a/src/python/m5/simulate.py
+++ b/src/python/m5/simulate.py
@@ -192,24 +192,23 @@ def checkpoint(dir):
internal.core.serializeAll(dir)
resume(root)
-def changeToAtomic(system):
+def changeMemoryMode(system, mode):
if not isinstance(system, (objects.Root, objects.System)):
raise TypeError, "Parameter of type '%s'. Must be type %s or %s." % \
(type(system), objects.Root, objects.System)
- if system.getMemoryMode() != objects.params.atomic:
+ if system.getMemoryMode() != mode:
doDrain(system)
- print "Changing memory mode to atomic"
- system.setMemoryMode(objects.params.atomic)
+ system.setMemoryMode(mode)
+ else:
+ print "System already in target mode. Memory mode unchanged."
-def changeToTiming(system):
- if not isinstance(system, (objects.Root, objects.System)):
- raise TypeError, "Parameter of type '%s'. Must be type %s or %s." % \
- (type(system), objects.Root, objects.System)
+def changeToAtomic(system, **kwargs):
+ print "Changing memory mode to atomic"
+ changeMemoryMode(system, objects.params.atomic, **kwargs)
- if system.getMemoryMode() != objects.params.timing:
- doDrain(system)
- print "Changing memory mode to timing"
- system.setMemoryMode(objects.params.timing)
+def changeToTiming(system, **kwargs):
+ print "Changing memory mode to timing"
+ changeMemoryMode(system, objects.params.timing, **kwargs)
def switchCpus(cpuList):
print "switching cpus"