60 #include "debug/Cache.hh"
70 emplace_back(pkt, readyTime, order);
76 for (
auto&
t : *
this) {
87 const std::string &prefix)
const
89 for (
auto&
t : *
this) {
91 t.pkt->print(os, verbosity,
"");
102 readyTime = when_ready;
110 panic_if(!_isUncacheable && !targets.empty(),
111 "Write queue entry %#llx should never have more than one "
112 "cacheable target", blkAddr);
115 "Write queue entry %#llx should either be uncacheable write or "
116 "a cacheable eviction");
118 targets.add(target, when_ready, _order);
124 assert(targets.empty());
138 return targets.checkFunctional(pkt);
150 const std::string &prefix)
const
152 ccprintf(os,
"%s[%#llx:%#llx](%s) %s %s %s state: %s %s %s %s %s\n",
153 prefix, blkAddr, blkAddr + blkSize - 1,
154 isSecure ?
"s" :
"ns",
155 _isUncacheable ?
"Unc" :
"",
156 inService ?
"InSvc" :
"");
158 ccprintf(os,
"%s Targets:\n", prefix);
159 targets.print(os, verbosity, prefix +
" ");
void ccprintf(cp::Print &print)
bool isUncacheable() const
Accessor functions for flags.
void print(std::ostream &os, int verbosity, const std::string &prefix) const
panic_if(!root,"Invalid expression\n")
bool sendPacket(Cache &cache)
Send this queue entry as a downstream packet, with the exact behaviour depending on the specific entr...
std::string print() const
A no-args wrapper of print(std::ostream...) meant to be invoked from DPRINTFs avoiding string overhea...
void deallocate()
Mark this entry as free.
A template-policy based cache.
bool checkFunctional(PacketPtr pkt)
uint64_t Tick
Tick count type.
bool sendWriteQueuePacket(WriteQueueEntry *wq_entry)
Similar to sendMSHR, but for a write-queue entry instead.
const RequestPtr req
A pointer to the original request.
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,16,32,64}_t.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
bool checkFunctional(PacketPtr pkt)
int64_t Counter
Statistics counter type.
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
bool checkFunctional(PacketPtr other)
Check a functional request against a memory value stored in another packet (i.e.
Describes a cache based on template policies.
void allocate(Addr blk_addr, unsigned blk_size, PacketPtr pkt, Tick when_ready, Counter _order)
Allocate a miss to this entry.
void add(PacketPtr pkt, Tick readyTime, Counter order)