Deleted Added
sdiff udiff text old ( 12823:ba630bc7a36d ) new ( 13847:c9b92a513019 )
full compact
1/*
2 * Copyright (c) 2011-2015, 2018 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

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

239{
240 // responses never block on forwarding them, so the retry will
241 // always be coming from a port to which we tried to forward a
242 // request
243 reqLayers[master_port_id]->recvRetry();
244}
245
246Tick
247NoncoherentXBar::recvAtomic(PacketPtr pkt, PortID slave_port_id)
248{
249 DPRINTF(NoncoherentXBar, "recvAtomic: packet src %s addr 0x%x cmd %s\n",
250 slavePorts[slave_port_id]->name(), pkt->getAddr(),
251 pkt->cmdString());
252
253 unsigned int pkt_size = pkt->hasData() ? pkt->getSize() : 0;
254 unsigned int pkt_cmd = pkt->cmdToIndex();
255
256 // determine the destination port
257 AddrRange addr_range = RangeSize(pkt->getAddr(), pkt->getSize());
258 PortID master_port_id = findPort(addr_range);
259
260 // stats updates for the request
261 pktCount[slave_port_id][master_port_id]++;
262 pktSize[slave_port_id][master_port_id] += pkt_size;
263 transDist[pkt_cmd]++;
264
265 // forward the request to the appropriate destination
266 Tick response_latency = masterPorts[master_port_id]->sendAtomic(pkt);
267
268 // add the response data
269 if (pkt->isResponse()) {
270 pkt_size = pkt->hasData() ? pkt->getSize() : 0;
271 pkt_cmd = pkt->cmdToIndex();
272
273 // stats updates
274 pktCount[slave_port_id][master_port_id]++;

--- 56 unchanged lines hidden ---