diff options
Diffstat (limited to 'src/mem/ruby/buffers/MessageBuffer.hh')
-rw-r--r-- | src/mem/ruby/buffers/MessageBuffer.hh | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/mem/ruby/buffers/MessageBuffer.hh b/src/mem/ruby/buffers/MessageBuffer.hh index e4bee5cf6..e09abeb7d 100644 --- a/src/mem/ruby/buffers/MessageBuffer.hh +++ b/src/mem/ruby/buffers/MessageBuffer.hh @@ -45,6 +45,7 @@ #include "mem/ruby/common/Global.hh" #include "mem/ruby/eventqueue/RubyEventQueue.hh" #include "mem/ruby/slicc_interface/Message.hh" +#include "mem/ruby/common/Address.hh" class MessageBuffer { @@ -58,6 +59,9 @@ class MessageBuffer m_recycle_latency = recycle_latency; } + void reanalyzeMessages(const Address& addr); + void stallMessage(const Address& addr); + // TRUE if head of queue timestamp <= SystemTime bool isReady() const @@ -150,6 +154,11 @@ class MessageBuffer // Data Members (m_ prefix) Consumer* m_consumer_ptr; // Consumer to signal a wakeup(), can be NULL std::vector<MessageBufferNode> m_prio_heap; + + typedef m5::hash_map< Address, std::list<MsgPtr> > StallMsgMapType; + typedef std::vector<MsgPtr>::iterator MsgListIter; + + StallMsgMapType m_stall_msg_map; std::string m_name; int m_max_size; |