summaryrefslogtreecommitdiff
path: root/src/mem/ruby/recorder
diff options
context:
space:
mode:
authorNilay Vaish <nilay@cs.wisc.edu>2011-11-14 17:44:35 -0600
committerNilay Vaish <nilay@cs.wisc.edu>2011-11-14 17:44:35 -0600
commitf3b4d10a05d902f34ccd3bee7154b46ee8320fb6 (patch)
tree611091998480962f5cf0fd561382c0b58e78e745 /src/mem/ruby/recorder
parent2ee59cee1b6130359b127c4d74d3d10bd01853a9 (diff)
downloadgem5-f3b4d10a05d902f34ccd3bee7154b46ee8320fb6.tar.xz
Ruby: Process packet instead of RubyRequest in Sequencer
This patch changes the implementation of Ruby's recvTiming() function so that it pushes a packet in to the Sequencer instead of a RubyRequest. This requires changes in the Sequencer's makeRequest() and issueRequest() functions, as they also need to operate on a Packet instead of RubyRequest.
Diffstat (limited to 'src/mem/ruby/recorder')
-rw-r--r--src/mem/ruby/recorder/TraceRecord.cc8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/mem/ruby/recorder/TraceRecord.cc b/src/mem/ruby/recorder/TraceRecord.cc
index aa54ee53c..79186d33b 100644
--- a/src/mem/ruby/recorder/TraceRecord.cc
+++ b/src/mem/ruby/recorder/TraceRecord.cc
@@ -73,17 +73,15 @@ void
TraceRecord::issueRequest() const
{
assert(m_sequencer_ptr != NULL);
-
- RubyRequest request(m_data_address.getAddress(), NULL,
- RubySystem::getBlockSizeBytes(), m_pc_address.getAddress(),
- m_type, RubyAccessMode_User, NULL);
+ Request req(m_data_address.getAddress(), 0, 0);
+ Packet *pkt = new Packet(&req, MemCmd(MemCmd::InvalidCmd), -1);
// Clear out the sequencer
while (!m_sequencer_ptr->empty()) {
g_eventQueue_ptr->triggerEvents(g_eventQueue_ptr->getTime() + 100);
}
- m_sequencer_ptr->makeRequest(request);
+ m_sequencer_ptr->makeRequest(pkt);
// Clear out the sequencer
while (!m_sequencer_ptr->empty()) {