diff options
Diffstat (limited to 'src/mem/ruby/slicc_interface/AbstractController.cc')
-rw-r--r-- | src/mem/ruby/slicc_interface/AbstractController.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/mem/ruby/slicc_interface/AbstractController.cc b/src/mem/ruby/slicc_interface/AbstractController.cc index 930f3a70f..2e4109c01 100644 --- a/src/mem/ruby/slicc_interface/AbstractController.cc +++ b/src/mem/ruby/slicc_interface/AbstractController.cc @@ -182,3 +182,19 @@ AbstractController::wakeUpAllBuffers() m_waiting_buffers.clear(); } } + +void +AbstractController::blockOnQueue(Address addr, MessageBuffer* port) +{ + m_is_blocking = true; + m_block_map[addr] = port; +} + +void +AbstractController::unblock(Address addr) +{ + m_block_map.erase(addr); + if (m_block_map.size() == 0) { + m_is_blocking = false; + } +} |