summaryrefslogtreecommitdiff
path: root/src/mem/simple_mem.cc
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2019-03-25 18:08:27 -0700
committerGabe Black <gabeblack@google.com>2019-04-14 01:01:56 +0000
commitf9e833b1aba5642df9411fdc5e1ee11456cc6d61 (patch)
tree6bc98d38ac5bc650804733965a139c3434225f6e /src/mem/simple_mem.cc
parent73e14fb3679e1063012b67a33c69473713a12304 (diff)
downloadgem5-f9e833b1aba5642df9411fdc5e1ee11456cc6d61.tar.xz
mem: Teach SimpleMem to return a MemBackdoor when appropriate.
If the back door SimpleMem inherits from AbstractMem has a pointer and is hence valid, SimpleMem will return that pointer when asked. Change-Id: I734daba48e4ae5b4ad8ac9a108e7b12b5e82803f Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17669 Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Maintainer: Jason Lowe-Power <jason@lowepower.com>
Diffstat (limited to 'src/mem/simple_mem.cc')
-rw-r--r--src/mem/simple_mem.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/mem/simple_mem.cc b/src/mem/simple_mem.cc
index 32fea1e89..297aa6135 100644
--- a/src/mem/simple_mem.cc
+++ b/src/mem/simple_mem.cc
@@ -80,6 +80,16 @@ SimpleMemory::recvAtomic(PacketPtr pkt)
return getLatency();
}
+Tick
+SimpleMemory::recvAtomicBackdoor(PacketPtr pkt, MemBackdoorPtr &_backdoor)
+{
+ Tick latency = recvAtomic(pkt);
+
+ if (backdoor.ptr())
+ _backdoor = &backdoor;
+ return latency;
+}
+
void
SimpleMemory::recvFunctional(PacketPtr pkt)
{
@@ -271,6 +281,13 @@ SimpleMemory::MemoryPort::recvAtomic(PacketPtr pkt)
return memory.recvAtomic(pkt);
}
+Tick
+SimpleMemory::MemoryPort::recvAtomicBackdoor(
+ PacketPtr pkt, MemBackdoorPtr &_backdoor)
+{
+ return memory.recvAtomicBackdoor(pkt, _backdoor);
+}
+
void
SimpleMemory::MemoryPort::recvFunctional(PacketPtr pkt)
{