summaryrefslogtreecommitdiff
path: root/sim/system.cc
diff options
context:
space:
mode:
authorSteve Reinhardt <stever@eecs.umich.edu>2006-03-10 10:01:29 -0500
committerSteve Reinhardt <stever@eecs.umich.edu>2006-03-10 10:01:29 -0500
commite3d96aa889680469be44bb9cd59d3db837cb4dc4 (patch)
tree5dbb9b1342e4e9cc0a86b36687e17e41b15f8a9a /sim/system.cc
parentf102365bfe14d25e40fb6d5cbd184138c0593c55 (diff)
downloadgem5-e3d96aa889680469be44bb9cd59d3db837cb4dc4.tar.xz
Compiles now (with CPU_MODELS=SimpleCPU), but hangs
on execution. configs/test/test.py: Move test binary out of m5-test, don't depend on m5-test/Benchmarks. python/m5/objects/System.py: Split out full-system-only parameters (lost in merge). sim/system.cc: Need to be able to instantiate System directly in SE mode (lost in merge). sim/system.hh: A few more functions here are FS-only. configs/test/hello: Add in binary. --HG-- rename : configs/test.py => configs/test/test.py extra : convert_revision : 4051b18772e0a0dcb97eb591d4373683be9f4395
Diffstat (limited to 'sim/system.cc')
-rw-r--r--sim/system.cc30
1 files changed, 30 insertions, 0 deletions
diff --git a/sim/system.cc b/sim/system.cc
index f1d0579d7..05b41e32b 100644
--- a/sim/system.cc
+++ b/sim/system.cc
@@ -217,5 +217,35 @@ printSystems()
System::printSystems();
}
+#if FULL_SYSTEM
+
+// In full system mode, only derived classes (e.g. AlphaLinuxSystem)
+// can be created directly.
+
DEFINE_SIM_OBJECT_CLASS_NAME("System", System)
+#else
+
+BEGIN_DECLARE_SIM_OBJECT_PARAMS(System)
+
+ SimObjectParam<Memory *> physmem;
+
+END_DECLARE_SIM_OBJECT_PARAMS(System)
+
+BEGIN_INIT_SIM_OBJECT_PARAMS(System)
+
+ INIT_PARAM(physmem, "physical memory")
+
+END_INIT_SIM_OBJECT_PARAMS(System)
+
+CREATE_SIM_OBJECT(System)
+{
+ System::Params *p = new System::Params;
+ p->name = getInstanceName();
+ p->physmem = physmem;
+ return new System(p);
+}
+
+REGISTER_SIM_OBJECT("System", System)
+
+#endif