cpu: Add a sendFunctional function to the ThreadContext.
This can be used to send a functional packet from the perspective of a thread context. Currently this will not consider targets within the CPU like the local APIC on x86. The default implementation sends a packet using the port on the way out of the CPU. Change-Id: Idb311e156a416ad51b585794c1e9fa75711d61f1 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/45861 Maintainer: Gabe Black <gabe.black@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Yu-hsin Wang <yuhsingw@google.com> Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
This commit is contained in:
@@ -48,6 +48,7 @@
|
||||
#include "cpu/base.hh"
|
||||
#include "debug/Context.hh"
|
||||
#include "debug/Quiesce.hh"
|
||||
#include "mem/port.hh"
|
||||
#include "params/BaseCPU.hh"
|
||||
#include "sim/full_system.hh"
|
||||
|
||||
@@ -127,6 +128,15 @@ ThreadContext::compare(ThreadContext *one, ThreadContext *two)
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
ThreadContext::sendFunctional(PacketPtr pkt)
|
||||
{
|
||||
const auto *port =
|
||||
dynamic_cast<const RequestPort *>(&getCpuPtr()->getDataPort());
|
||||
assert(port);
|
||||
port->sendFunctional(pkt);
|
||||
}
|
||||
|
||||
void
|
||||
ThreadContext::quiesce()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user