From ff16ca3dafcb2228843502d20a5288fdd64a9538 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Tue, 27 Sep 2022 02:52:42 -0700 Subject: [PATCH] mem: Add a class to describe a back door request. In cases where a back door is not being requested alongside a packet or request, there needs to be a structure which describes the address range to use, and what type of access the back door should support. It would be possible to make a Packet/Request to carry that information, but those types are actually pretty big, and have a lot of extra overhead which would be overkill for this purpose. Change-Id: I3638361ffa758ee959cb3bc57f7c35f2aa34a36c Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/65751 Reviewed-by: Jason Lowe-Power Maintainer: Gabe Black Tested-by: kokoro --- src/mem/backdoor.hh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/mem/backdoor.hh b/src/mem/backdoor.hh index 73e667017d..54fe4acbd1 100644 --- a/src/mem/backdoor.hh +++ b/src/mem/backdoor.hh @@ -126,6 +126,25 @@ class MemBackdoor typedef MemBackdoor *MemBackdoorPtr; +class MemBackdoorReq +{ + private: + AddrRange _range; + MemBackdoor::Flags _flags; + + public: + MemBackdoorReq(AddrRange r, MemBackdoor::Flags new_flags) : + _range(r), _flags(new_flags) + {} + + const AddrRange &range() const { return _range; } + + bool readable() const { return _flags & MemBackdoor::Readable; } + bool writeable() const { return _flags & MemBackdoor::Writeable; } + + MemBackdoor::Flags flags() const { return _flags; } +}; + } // namespace gem5 #endif //__MEM_BACKDOOR_HH__