From 17f9270dada824ab7a1b52ed4470abef5aa56d6c Mon Sep 17 00:00:00 2001 From: Andreas Hansson Date: Mon, 9 Jul 2012 12:35:31 -0400 Subject: Port: Move retry from port base class to Master/SlavePort This patch is the last part of moving all protocol-related functionality out of the Port base class. All the send/recv functions are already moved, and the retry (which still governs all the timing transport functions) is the only part that remained in the base class. The only point where this currently causes a bit of inconvenience is in the bus where the retry list is global and holds Port pointers (not Master/SlavePort). This is about to change with the split into a request/response bus and will soon be removed anyway. The patch has no impact on any regressions. --- src/mem/bus.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/mem/bus.cc') diff --git a/src/mem/bus.cc b/src/mem/bus.cc index 8040118d2..648b66f4d 100644 --- a/src/mem/bus.cc +++ b/src/mem/bus.cc @@ -218,7 +218,10 @@ BaseBus::retryWaiting() // note that we might have blocked on the receiving port being // busy (rather than the bus itself) and now call retry before the // destination called retry on the bus - retryList.front()->sendRetry(); + if (dynamic_cast(retryList.front()) != NULL) + (dynamic_cast(retryList.front()))->sendRetry(); + else + (dynamic_cast(retryList.front()))->sendRetry(); // If inRetry is still true, sendTiming wasn't called in zero time // (e.g. the cache does this) -- cgit v1.2.3