From 362f6f1a16a68a99c962628bcda00c7c576f935c Mon Sep 17 00:00:00 2001 From: Andreas Hansson Date: Tue, 26 Mar 2013 14:46:46 -0400 Subject: mem: Introduce a variable for the retrying port This patch introduces a variable to keep track of the retrying port instead of relying on it being the front of the retryList. Besides the improvement in readability, this patch is a step towards separating out the two cases where a port is waiting for the bus to be free, and where the forwarding did not succeed and the bus is waiting for a retry to pass on to the original initiator of the transaction. The changes made are currently such that the regressions are not affected. This is ensured by always prioritizing the currently retrying port and putting it back at the front of the retry list. --- src/mem/bus.hh | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/mem/bus.hh') diff --git a/src/mem/bus.hh b/src/mem/bus.hh index 705a3a999..2cd21ff85 100644 --- a/src/mem/bus.hh +++ b/src/mem/bus.hh @@ -211,6 +211,14 @@ class BaseBus : public MemObject */ std::deque retryList; + /** + * Port that we are currently in the process of telling to + * retry a previously failed attempt to perform a timing + * transaction. This is a valid port when in the retry state, + * and NULL when in busy or idle. + */ + PortClass* retryingPort; + /** * Release the bus layer after being occupied and return to an * idle state where we proceed to send a retry to any -- cgit v1.2.3