summaryrefslogtreecommitdiff
path: root/src/base/statistics.cc
diff options
context:
space:
mode:
authorNathan Binkert <nate@binkert.org>2009-02-23 12:22:19 -0800
committerNathan Binkert <nate@binkert.org>2009-02-23 12:22:19 -0800
commitf3090e5b704a2b7a02a736ec8601cd961fe3a865 (patch)
treece984800907b21e7da5e046c1a2a3e50e1ad01c5 /src/base/statistics.cc
parentaaf98aaa326e79710af0fdcb2425ef2f6a5e82f1 (diff)
downloadgem5-f3090e5b704a2b7a02a736ec8601cd961fe3a865.tar.xz
stats: reorganize how parameters are stored and accessed.
Diffstat (limited to 'src/base/statistics.cc')
-rw-r--r--src/base/statistics.cc24
1 files changed, 20 insertions, 4 deletions
diff --git a/src/base/statistics.cc b/src/base/statistics.cc
index 63741d4c6..032cbf689 100644
--- a/src/base/statistics.cc
+++ b/src/base/statistics.cc
@@ -36,6 +36,7 @@
#include "base/callback.hh"
#include "base/cprintf.hh"
+#include "base/debug.hh"
#include "base/hostinfo.hh"
#include "base/misc.hh"
#include "base/statistics.hh"
@@ -81,6 +82,12 @@ InfoAccess::setInfo(Info *info)
}
void
+InfoAccess::setParams(const StorageParams *params)
+{
+ info()->storageParams = params;
+}
+
+void
InfoAccess::setInit()
{
info()->flags |= init;
@@ -102,11 +109,20 @@ InfoAccess::info() const
return (*i).second;
}
+StorageParams::~StorageParams()
+{
+}
+
+int Info::id_count = 0;
+
+int debug_break_id = -1;
+
Info::Info()
- : flags(none), precision(-1), prereq(0)
+ : flags(none), precision(-1), prereq(0), storageParams(NULL)
{
- static int count = 0;
- id = count++;
+ id = id_count++;
+ if (debug_break_id >= 0 and debug_break_id == id)
+ debug_break();
}
Info::~Info()
@@ -249,7 +265,7 @@ check()
Info *info = *i;
assert(info);
if (!info->check() || !info->baseCheck())
- panic("stat check failed for %s\n", info->name);
+ panic("stat check failed for '%s' %d\n", info->name, info->id);
}
off_t j = 0;