dramsim2.cc (11190:0964165d1857) dramsim2.cc (11192:4c28abcf8249)
1/*
2 * Copyright (c) 2013 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

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

170 pkt->checkFunctional(*i);
171
172 pkt->popLabel();
173}
174
175bool
176DRAMSim2::recvTimingReq(PacketPtr pkt)
177{
1/*
2 * Copyright (c) 2013 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

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

170 pkt->checkFunctional(*i);
171
172 pkt->popLabel();
173}
174
175bool
176DRAMSim2::recvTimingReq(PacketPtr pkt)
177{
178 // we should never see a new request while in retry
179 assert(!retryReq);
180
178 // sink inhibited packets without further action
181 if (pkt->memInhibitAsserted()) {
179 if (pkt->memInhibitAsserted()) {
182 // snooper will supply based on copy of packet
183 // still target's responsibility to delete packet
184 pendingDelete.reset(pkt);
185 return true;
186 }
187
180 pendingDelete.reset(pkt);
181 return true;
182 }
183
184 // we should not get a new request after committing to retry the
185 // current one, but unfortunately the CPU violates this rule, so
186 // simply ignore it for now
187 if (retryReq)
188 return false;
189
188 // if we cannot accept we need to send a retry once progress can
189 // be made
190 bool can_accept = nbrOutstanding() < wrapper.queueSize();
191
192 // keep track of the transaction
193 if (pkt->isRead()) {
194 if (can_accept) {
195 outstandingReads[pkt->getAddr()].push(pkt);

--- 200 unchanged lines hidden ---
190 // if we cannot accept we need to send a retry once progress can
191 // be made
192 bool can_accept = nbrOutstanding() < wrapper.queueSize();
193
194 // keep track of the transaction
195 if (pkt->isRead()) {
196 if (can_accept) {
197 outstandingReads[pkt->getAddr()].push(pkt);

--- 200 unchanged lines hidden ---