diff options
author | Nathan Binkert <binkertn@umich.edu> | 2004-11-03 20:46:33 -0500 |
---|---|---|
committer | Nathan Binkert <binkertn@umich.edu> | 2004-11-03 20:46:33 -0500 |
commit | d82e0d11d12cdc75ab3c7a51a36630f5bd0c0e11 (patch) | |
tree | 64a77bbf08c9bfe7e7d21a8bf3ea5d2ff2a7495c /sim/system.cc | |
parent | 129b885abd30e72c0b3e19787da385af4af6e53e (diff) | |
download | gem5-d82e0d11d12cdc75ab3c7a51a36630f5bd0c0e11.tar.xz |
make activation of exec contexts happen in startup
the registration stuff all moves into BaseCPU
cpu/base_cpu.cc:
Move the registration stuff into the BaseCPU since all
other CPUs use it.
cpu/base_cpu.hh:
Move the defer registration stuff into the BaseCPU since all
other CPUs use it.
cpu/simple_cpu/simple_cpu.cc:
cpu/simple_cpu/simple_cpu.hh:
registration stuff moved to base class
sim/system.cc:
the activation of exec contexts should happen at startup, not
when they are registered.
sim/system.hh:
the system now has a startup function
--HG--
extra : convert_revision : bb6a7c2da5a1ecf5fe7ede1078200bfe5245f8ef
Diffstat (limited to 'sim/system.cc')
-rw-r--r-- | sim/system.cc | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/sim/system.cc b/sim/system.cc index 9fdadf649..1b1a145c6 100644 --- a/sim/system.cc +++ b/sim/system.cc @@ -194,12 +194,6 @@ System::registerExecContext(ExecContext *xc) int xcIndex = execContexts.size(); execContexts.push_back(xc); - if (xcIndex == 0) { - // activate with zero delay so that we start ticking right - // away on cycle 0 - xc->activate(0); - } - RemoteGDB *rgdb = new RemoteGDB(this, xc); GDBListener *gdbl = new GDBListener(rgdb, 7000 + xcIndex); gdbl->listen(); @@ -219,6 +213,16 @@ System::registerExecContext(ExecContext *xc) } void +System::startup() +{ + if (!execContexts.empty()) { + // activate with zero delay so that we start ticking right + // away on cycle 0 + execContexts[0]->activate(0); + } +} + +void System::replaceExecContext(ExecContext *xc, int xcIndex) { if (xcIndex >= execContexts.size()) { |