summaryrefslogtreecommitdiff
path: root/sim
diff options
context:
space:
mode:
authorSteve Reinhardt <stever@eecs.umich.edu>2004-04-05 11:00:48 -0700
committerSteve Reinhardt <stever@eecs.umich.edu>2004-04-05 11:00:48 -0700
commit0ef91aa905df33bc013b223513982da898a8bed3 (patch)
tree29d598064dae05ff93f0eee6b2fdecbd2432ee18 /sim
parent65205b82acee56b0034c0122d5f5a89f57c760fc (diff)
downloadgem5-0ef91aa905df33bc013b223513982da898a8bed3.tar.xz
Changes to config to allow everything (including 'children'
and 'type') to be specified via instance name and not just config class. Old code only did instance-name lookup for SimObject parameters. This feature makes life easier for transitioning to the Python script-based config. sim/builder.cc: Use ConfigNode::find to look for "type" parameter so it can be found if set under instance name (not config class). sim/param.cc: Make Param<bool> accept "1" for true and "0" for false. --HG-- extra : convert_revision : f40d0878d0f03b2e216f0506c05d0e52db608cca
Diffstat (limited to 'sim')
-rw-r--r--sim/builder.cc3
-rw-r--r--sim/param.cc6
2 files changed, 5 insertions, 4 deletions
diff --git a/sim/builder.cc b/sim/builder.cc
index e2345556e..110c42f25 100644
--- a/sim/builder.cc
+++ b/sim/builder.cc
@@ -32,6 +32,7 @@
#include "base/misc.hh"
#include "sim/builder.hh"
#include "sim/configfile.hh"
+#include "sim/config_node.hh"
#include "sim/host.hh"
#include "sim/sim_object.hh"
#include "sim/universe.hh"
@@ -153,7 +154,7 @@ SimObjectClass::createObject(IniFile &configDB,
// (specified by 'type=' parameter)
string simObjClassName;
- if (!configDB.findDefault(configClassName, "type", simObjClassName)) {
+ if (!configNode->find("type", simObjClassName)) {
cerr << "Configuration class '" << configClassName << "' not found."
<< endl;
abort();
diff --git a/sim/param.cc b/sim/param.cc
index 7affe4786..bb372f631 100644
--- a/sim/param.cc
+++ b/sim/param.cc
@@ -147,14 +147,14 @@ template <>
bool
parseParam(const string &s, bool &value)
{
- const string &lower = to_lower(s);
+ const string &ls = to_lower(s);
- if (lower == "true" || lower == "t" || lower == "yes" || lower == "y") {
+ if (ls == "true" || ls == "t" || ls == "yes" || ls == "y" || ls == "1") {
value = true;
return true;
}
- if (lower == "false" || lower == "f" || lower == "no" || lower == "n") {
+ if (ls == "false" || ls == "f" || ls == "no" || ls == "n" || ls == "0") {
value = false;
return true;
}