Go to the documentation of this file.
38 #ifndef CPU_TESTERS_PROTOCOL_TESTER_TESTER_THREAD_HH_
39 #define CPU_TESTERS_PROTOCOL_TESTER_TESTER_THREAD_HH_
92 void setDesc(std::string _description) {
desc = _description; }
94 const std::string
name()
const override {
return desc; }
113 return "Tester deadlock check";
204 std::stringstream&
ss)
const;
OutstandingReqTable outstandingStores
AddressManager::Value Value
std::vector< Episode * > EpisodeHistory
static const Priority CPU_Tick_Pri
CPU ticks must come after other associated CPU events (such as writebacks).
virtual void issueStoreOps()=0
void setDesc(std::string _description)
ProtocolTester::SeqPort * scalarPort
void printAllOutstandingReqs(std::stringstream &ss) const
virtual void issueReleaseOp()=0
std::unordered_map< Addr, OutstandingReqList > OutstandingReqTable
AddressManager * addrManager
void scheduleDeadlockCheckEvent()
std::vector< OutstandingReq > OutstandingReqList
const std::string name() const override
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
OutstandingReqTable outstandingLoads
virtual void issueAtomicOps()=0
bool checkDRF(Location atomic_loc, Location loc, bool isStore) const
virtual void issueAcquireOp()=0
TesterThreadEvent(TesterThread *_thread, std::string _description)
DeadlockCheckEvent deadlockCheckEvent
OutstandingReq(int _lane, Location _loc, Value _val, Cycles _cycle)
const Episode::Action * curAction
OutstandingReq popOutstandingReq(OutstandingReqTable &req_table, Addr address)
ProtocolTester::SeqPort * sqcPort
const std::string name() const override
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
void validateAtomicResp(Location loc, int lane, Value ret_val)
void printOutstandingReqs(const OutstandingReqTable &table, std::stringstream &ss) const
virtual void issueLoadOps()=0
virtual void hitCallback(PacketPtr pkt)=0
TesterThreadParams Params
TesterThread(const Params &p)
OutstandingReqTable outstandingAtomics
int getTesterThreadId() const
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
EpisodeHistory episodeHistory
Cycles is a wrapper class for representing cycle counts, i.e.
TesterThreadEvent threadEvent
void attachTesterThreadToPorts(ProtocolTester *_tester, ProtocolTester::SeqPort *_port, ProtocolTester::GMTokenPort *_tokenPort=nullptr, ProtocolTester::SeqPort *_sqcPort=nullptr, ProtocolTester::SeqPort *_scalarPort=nullptr)
DeadlockCheckEvent(TesterThread *_thread)
AddressManager::Location Location
void addOutstandingReqs(OutstandingReqTable &req_table, Addr addr, int lane, Location loc, Value stored_val=AddressManager::INVALID_VALUE)
const std::string & getName() const
ProtocolTester::GMTokenPort * tokenPort
ProtocolTester::SeqPort * port
void validateLoadResp(Location loc, int lane, Value ret_val)
static const int INVALID_VALUE
Generated on Tue Mar 23 2021 19:41:25 for gem5 by doxygen 1.8.17