table_walker.cc (10873:7c972b9aea16) table_walker.cc (10910:32f3d1c454ec)
1/*
2 * Copyright (c) 2010, 2012-2015 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 125 unchanged lines hidden (view full) ---

134{
135}
136
137void
138TableWalker::completeDrain()
139{
140 if (drainManager && stateQueues[L1].empty() && stateQueues[L2].empty() &&
141 pendingQueue.empty()) {
1/*
2 * Copyright (c) 2010, 2012-2015 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 125 unchanged lines hidden (view full) ---

134{
135}
136
137void
138TableWalker::completeDrain()
139{
140 if (drainManager && stateQueues[L1].empty() && stateQueues[L2].empty() &&
141 pendingQueue.empty()) {
142 setDrainState(Drainable::Drained);
142 setDrainState(DrainState::Drained);
143 DPRINTF(Drain, "TableWalker done draining, processing drain event\n");
144 drainManager->signalDrainDone();
145 drainManager = NULL;
146 }
147}
148
149unsigned int
150TableWalker::drain(DrainManager *dm)

--- 4 unchanged lines hidden (view full) ---

155 if (!stateQueues[i].empty()) {
156 state_queues_not_empty = true;
157 break;
158 }
159 }
160
161 if (state_queues_not_empty || pendingQueue.size()) {
162 drainManager = dm;
143 DPRINTF(Drain, "TableWalker done draining, processing drain event\n");
144 drainManager->signalDrainDone();
145 drainManager = NULL;
146 }
147}
148
149unsigned int
150TableWalker::drain(DrainManager *dm)

--- 4 unchanged lines hidden (view full) ---

155 if (!stateQueues[i].empty()) {
156 state_queues_not_empty = true;
157 break;
158 }
159 }
160
161 if (state_queues_not_empty || pendingQueue.size()) {
162 drainManager = dm;
163 setDrainState(Drainable::Draining);
163 setDrainState(DrainState::Draining);
164 DPRINTF(Drain, "TableWalker not drained\n");
165
166 // return port drain count plus the table walker itself needs to drain
167 return 1;
168 } else {
164 DPRINTF(Drain, "TableWalker not drained\n");
165
166 // return port drain count plus the table walker itself needs to drain
167 return 1;
168 } else {
169 setDrainState(Drainable::Drained);
169 setDrainState(DrainState::Drained);
170 DPRINTF(Drain, "TableWalker free, no need to drain\n");
171
172 // table walker is drained, but its ports may still need to be drained
173 return 0;
174 }
175}
176
177void

--- 2046 unchanged lines hidden ---
170 DPRINTF(Drain, "TableWalker free, no need to drain\n");
171
172 // table walker is drained, but its ports may still need to be drained
173 return 0;
174 }
175}
176
177void

--- 2046 unchanged lines hidden ---