summaryrefslogtreecommitdiff
path: root/src/sim/pseudo_inst.cc
diff options
context:
space:
mode:
authorNathan Binkert <nate@binkert.org>2009-01-24 07:27:22 -0800
committerNathan Binkert <nate@binkert.org>2009-01-24 07:27:22 -0800
commit64ed39f61b89675237e145ed4a81b49f353921ed (patch)
treeb1338a651e9b428e0e748c8000840390d0498f16 /src/sim/pseudo_inst.cc
parentf0fb3ac060234ed5860c8d5bca3e84dbd8d30c36 (diff)
downloadgem5-64ed39f61b89675237e145ed4a81b49f353921ed.tar.xz
pseudo inst: Add new wake cpu instruction for sending a message to wake a cpu.
It's instantaneous and so it's somewhat bogus, but it's a first step.
Diffstat (limited to 'src/sim/pseudo_inst.cc')
-rw-r--r--src/sim/pseudo_inst.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/sim/pseudo_inst.cc b/src/sim/pseudo_inst.cc
index 130a2f0fe..f1cf2835d 100644
--- a/src/sim/pseudo_inst.cc
+++ b/src/sim/pseudo_inst.cc
@@ -138,6 +138,15 @@ rpns(ThreadContext *tc)
}
void
+wakeCPU(ThreadContext *tc, uint64_t cpuid)
+{
+ System *sys = tc->getSystemPtr();
+ ThreadContext *other_tc = sys->threadContexts[cpuid];
+ if (other_tc->status() == ThreadContext::Suspended)
+ other_tc->activate();
+}
+
+void
m5exit(ThreadContext *tc, Tick delay)
{
Tick when = curTick + delay * Clock::Int::ns;