Go to the documentation of this file.
36 #include "debug/ProtocolTest.hh"
70 DPRINTF(ProtocolTest,
"%s Episode %d: Issuing Load - Addr %s\n",
74 int load_size =
sizeof(
Value);
77 assert(address % load_size == 0);
79 auto req = std::make_shared<Request>(address, load_size,
82 req->setPaddr(address);
86 uint8_t*
data =
new uint8_t[load_size];
91 panic(
"Not expected failed sendTimingReq\n");
125 assert(address %
sizeof(
Value) == 0);
127 DPRINTF(ProtocolTest,
"%s Episode %d: Issuing Store - Addr %s - "
132 auto req = std::make_shared<Request>(address,
sizeof(
Value),
135 req->setPaddr(address);
139 uint8_t *writeData =
new uint8_t[
sizeof(
Value)];
140 for (
int j = 0;
j <
sizeof(
Value); ++
j) {
141 writeData[
j] = ((uint8_t*)&new_value)[
j];
147 panic(
"Not expecting a failed sendTimingReq\n");
162 DPRINTF(ProtocolTest,
"Issuing Atomic Op ...\n");
177 DPRINTF(ProtocolTest,
"Issuing Acquire Op ...\n");
192 DPRINTF(ProtocolTest,
"Issuing Release Op ...\n");
211 DPRINTF(ProtocolTest,
"%s Episode %d: hitCallback - Command %s -"
226 assert(req.
lane == 0);
246 assert(req.
lane == 0);
275 panic(
"UnsupportedMemCmd response type: %s",
Location getLocation(int lane) const
RequestorID requestorId()
OutstandingReqTable outstandingStores
bool scheduled() const
Determine if the current event is scheduled.
void setDesc(std::string _description)
Addr getAddress(Location loc)
const std::string to_string(sc_enc enc)
void dataDynamic(T *p)
Set the data pointer to a value that should have delete [] called on it.
AddressManager * addrManager
OutstandingReqTable outstandingLoads
Value getLoggedValue(Location loc) const
bool sendTimingReq(PacketPtr pkt)
Attempt to send a timing request to the responder port by calling its corresponding receive function.
const std::string & toString() const
Return the string to a cmd given by idx.
RubyTester::SenderState SenderState
Cycles curCycle() const
Determine the current cycle, corresponding to a tick aligned to a clock edge.
DmaThread(const Params &_params)
const Episode::Action * curAction
OutstandingReq popOutstandingReq(OutstandingReqTable &req_table, Addr address)
ProbePointArg< PacketInfo > Packet
Packet probe point.
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)
MemCmd cmd
The command field of the packet.
AddressManager::Value Value
OutstandingReqTable outstandingAtomics
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
void hitCallback(PacketPtr pkt)
AddressManager::Location Location
TesterThreadEvent threadEvent
T * getPtr()
get a pointer to the data ptr.
Tick curTick()
The universal simulation clock.
SenderState * senderState
This packet's sender state.
void addOutstandingReqs(OutstandingReqTable &req_table, Addr addr, int lane, Location loc, Value stored_val=AddressManager::INVALID_VALUE)
const std::string & getName() const
void updateLogTable(Location loc, int threadId, int episodeId, Value new_value, Tick curTick, int cuId=-1)
static const int INVALID_LOCATION
std::string printAddress(Addr addr)
ProtocolTester::SeqPort * port
void validateLoadResp(Location loc, int lane, Value ret_val)
#define panic(...)
This implements a cprintf based panic() function.
static const int INVALID_VALUE
Generated on Tue Jun 22 2021 15:28:27 for gem5 by doxygen 1.8.17