coherent_xbar.cc (11188:091531fa23ad) | coherent_xbar.cc (11190:0964165d1857) |
---|---|
1/* 2 * Copyright (c) 2011-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 --- 126 unchanged lines hidden (view full) --- 135 // its own internal representation 136 if (snoopFilter) 137 snoopFilter->setSlavePorts(slavePorts); 138} 139 140bool 141CoherentXBar::recvTimingReq(PacketPtr pkt, PortID slave_port_id) 142{ | 1/* 2 * Copyright (c) 2011-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 --- 126 unchanged lines hidden (view full) --- 135 // its own internal representation 136 if (snoopFilter) 137 snoopFilter->setSlavePorts(slavePorts); 138} 139 140bool 141CoherentXBar::recvTimingReq(PacketPtr pkt, PortID slave_port_id) 142{ |
143 // @todo temporary hack to deal with memory corruption issue until 144 // 4-phase transactions are complete 145 for (int x = 0; x < pendingDelete.size(); x++) 146 delete pendingDelete[x]; 147 pendingDelete.clear(); 148 | |
149 // determine the source port based on the id 150 SlavePort *src_port = slavePorts[slave_port_id]; 151 152 // remember if the packet is an express snoop 153 bool is_express_snoop = pkt->isExpressSnoop(); 154 bool is_inhibited = pkt->memInhibitAsserted(); 155 // for normal requests, going downstream, the express snoop flag 156 // and the inhibited flag should always be the same --- 61 unchanged lines hidden (view full) --- 218 // this is a clean evict, but the packet is found in a cache, do 219 // not forward it 220 if (pkt->cmd == MemCmd::CleanEvict && pkt->isBlockCached()) { 221 DPRINTF(CoherentXBar, "recvTimingReq: Clean evict 0x%x still cached, " 222 "not forwarding\n", pkt->getAddr()); 223 224 // update the layer state and schedule an idle event 225 reqLayers[master_port_id]->succeededTiming(packetFinishTime); | 143 // determine the source port based on the id 144 SlavePort *src_port = slavePorts[slave_port_id]; 145 146 // remember if the packet is an express snoop 147 bool is_express_snoop = pkt->isExpressSnoop(); 148 bool is_inhibited = pkt->memInhibitAsserted(); 149 // for normal requests, going downstream, the express snoop flag 150 // and the inhibited flag should always be the same --- 61 unchanged lines hidden (view full) --- 212 // this is a clean evict, but the packet is found in a cache, do 213 // not forward it 214 if (pkt->cmd == MemCmd::CleanEvict && pkt->isBlockCached()) { 215 DPRINTF(CoherentXBar, "recvTimingReq: Clean evict 0x%x still cached, " 216 "not forwarding\n", pkt->getAddr()); 217 218 // update the layer state and schedule an idle event 219 reqLayers[master_port_id]->succeededTiming(packetFinishTime); |
226 pendingDelete.push_back(pkt); | 220 221 // queue the packet for deletion 222 pendingDelete.reset(pkt); 223 |
227 return true; 228 } 229 230 // remember if the packet will generate a snoop response 231 const bool expect_snoop_resp = !is_inhibited && pkt->memInhibitAsserted(); 232 const bool expect_response = pkt->needsResponse() && 233 !pkt->memInhibitAsserted(); 234 --- 663 unchanged lines hidden --- | 224 return true; 225 } 226 227 // remember if the packet will generate a snoop response 228 const bool expect_snoop_resp = !is_inhibited && pkt->memInhibitAsserted(); 229 const bool expect_response = pkt->needsResponse() && 230 !pkt->memInhibitAsserted(); 231 --- 663 unchanged lines hidden --- |