From f1b17bf1576bbc7c5786194cb9a02e3e52dbd1e6 Mon Sep 17 00:00:00 2001 From: Nilay Vaish Date: Wed, 7 Aug 2013 14:51:18 -0500 Subject: ruby: slicc: move some code to AbstractController Some of the code in StateMachine.py file is added to all the controllers and is independent of the controller definition. This code is being moved to the AbstractController class which is the parent class of all controllers. --- src/mem/ruby/slicc_interface/AbstractController.cc | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/mem/ruby/slicc_interface/AbstractController.cc') 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; + } +} -- cgit v1.2.3