summaryrefslogtreecommitdiff
path: root/src/mem/ruby/slicc_interface/Message.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/ruby/slicc_interface/Message.hh')
-rw-r--r--src/mem/ruby/slicc_interface/Message.hh8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/mem/ruby/slicc_interface/Message.hh b/src/mem/ruby/slicc_interface/Message.hh
index e78ad9a76..1c842ae69 100644
--- a/src/mem/ruby/slicc_interface/Message.hh
+++ b/src/mem/ruby/slicc_interface/Message.hh
@@ -71,7 +71,13 @@ class Message : public RefCounted
virtual bool functionalWrite(Packet *pkt) = 0;
//{ fatal("Write functional access not implemented!"); }
- void setDelayedTicks(const Tick ticks) { m_DelayedTicks = ticks; }
+ //! Update the delay this message has experienced so far.
+ void updateDelayedTicks(Tick curTime)
+ {
+ assert(m_LastEnqueueTime <= curTime);
+ Tick delta = curTime - m_LastEnqueueTime;
+ m_DelayedTicks += delta;
+ }
const Tick getDelayedTicks() const {return m_DelayedTicks;}
void setLastEnqueueTime(const Tick& time) { m_LastEnqueueTime = time; }