summaryrefslogtreecommitdiff
path: root/sim/serialize.cc
diff options
context:
space:
mode:
authorNathan Binkert <binkertn@umich.edu>2004-01-30 16:01:26 -0500
committerNathan Binkert <binkertn@umich.edu>2004-01-30 16:01:26 -0500
commit4ae64216c3c27e9f1e35ce93114f932f3d2c3361 (patch)
treefe3ca24667628af7c2e5a94a3bcae585fb492855 /sim/serialize.cc
parenta0c3e61d320e72bbdddf4cea1413f6638e0faf45 (diff)
parent2f4f7aacf77dea16795a4052613da6092f6efc31 (diff)
downloadgem5-4ae64216c3c27e9f1e35ce93114f932f3d2c3361.tar.xz
Merge
--HG-- extra : convert_revision : 8690e31b64235874d74ea4a1123a408610fb115b
Diffstat (limited to 'sim/serialize.cc')
-rw-r--r--sim/serialize.cc18
1 files changed, 12 insertions, 6 deletions
diff --git a/sim/serialize.cc b/sim/serialize.cc
index 33956c6e7..281e7cfc8 100644
--- a/sim/serialize.cc
+++ b/sim/serialize.cc
@@ -305,10 +305,9 @@ class SerializeParamContext : public ParamContext
SerializeParamContext serialParams("serialize");
-Param<string> serialize_dir(&serialParams,
- "dir",
+Param<string> serialize_dir(&serialParams, "dir",
"dir to stick checkpoint in "
- "(sprintf format with cycle #)", "m5.%012d");
+ "(sprintf format with cycle #)");
Param<Counter> serialize_cycle(&serialParams,
"cycle",
@@ -333,11 +332,18 @@ SerializeParamContext::~SerializeParamContext()
void
SerializeParamContext::checkParams()
{
- checkpointDirBase = serialize_dir;
+ if (serialize_dir.isValid()) {
+ checkpointDirBase = serialize_dir;
+ } else {
+ if (outputDirectory.empty())
+ checkpointDirBase = "m5.%012d";
+ else
+ checkpointDirBase = outputDirectory + "cpt.%012d";
+ }
+
// guarantee that directory ends with a '/'
- if (checkpointDirBase[checkpointDirBase.size() - 1] != '/') {
+ if (checkpointDirBase[checkpointDirBase.size() - 1] != '/')
checkpointDirBase += "/";
- }
if (serialize_cycle > 0)
Checkpoint::setup(serialize_cycle, serialize_period);