summaryrefslogtreecommitdiff
path: root/src/sim
diff options
context:
space:
mode:
authorAndreas Sandberg <andreas.sandberg@arm.com>2016-10-04 11:22:16 +0100
committerAndreas Sandberg <andreas.sandberg@arm.com>2016-10-04 11:22:16 +0100
commit18135ce6abc0ee02e36aef424be183cd7238a558 (patch)
treed42079cc180d7f385e2efff5594964b6dfc5db39 /src/sim
parentee7875885783d8b0945d27052bbf1e0a43aca18e (diff)
downloadgem5-18135ce6abc0ee02e36aef424be183cd7238a558.tar.xz
sim: Add a checkpoint function to test for entries
When loading a checkpoint, it's sometimes desirable to be able to test whether an entry within a secion exists. This is currently done automatically in the UNSERIALIZE_OPT_SCALAR macro, but it isn't possible to do for arrays, containers, or enums. Instead of adding even more macros, add a helper function (CheckpointIn::entryExists()) that tests for the presence of an entry. Change-Id: I4b4646b03276b889fd3916efefff3bd552317dbc Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Diffstat (limited to 'src/sim')
-rw-r--r--src/sim/serialize.cc6
-rw-r--r--src/sim/serialize.hh2
2 files changed, 8 insertions, 0 deletions
diff --git a/src/sim/serialize.cc b/src/sim/serialize.cc
index e55107b79..d2e699c28 100644
--- a/src/sim/serialize.cc
+++ b/src/sim/serialize.cc
@@ -693,6 +693,12 @@ CheckpointIn::~CheckpointIn()
}
bool
+CheckpointIn::entryExists(const string &section, const string &entry)
+{
+ return db->entryExists(section, entry);
+}
+
+bool
CheckpointIn::find(const string &section, const string &entry, string &value)
{
return db->find(section, entry, value);
diff --git a/src/sim/serialize.hh b/src/sim/serialize.hh
index 2f0340e4b..4c5e9d79c 100644
--- a/src/sim/serialize.hh
+++ b/src/sim/serialize.hh
@@ -359,6 +359,8 @@ class CheckpointIn
bool findObj(const std::string &section, const std::string &entry,
SimObject *&value);
+
+ bool entryExists(const std::string &section, const std::string &entry);
bool sectionExists(const std::string &section);
// The following static functions have to do with checkpoint