RubyPort.cc (10713:eddb533708cb) | RubyPort.cc (10886:fdd4a895f325) |
---|---|
1/* 2 * Copyright (c) 2012-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 --- 535 unchanged lines hidden (view full) --- 544 DPRINTF(RubyPort, "Sending invalidations.\n"); 545 // This request is deleted in the stack-allocated packet destructor 546 // when this function exits 547 // TODO: should this really be using funcMasterId? 548 RequestPtr req = 549 new Request(address.getAddress(), 0, 0, Request::funcMasterId); 550 // Use a single packet to signal all snooping ports of the invalidation. 551 // This assumes that snooping ports do NOT modify the packet/request | 1/* 2 * Copyright (c) 2012-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 --- 535 unchanged lines hidden (view full) --- 544 DPRINTF(RubyPort, "Sending invalidations.\n"); 545 // This request is deleted in the stack-allocated packet destructor 546 // when this function exits 547 // TODO: should this really be using funcMasterId? 548 RequestPtr req = 549 new Request(address.getAddress(), 0, 0, Request::funcMasterId); 550 // Use a single packet to signal all snooping ports of the invalidation. 551 // This assumes that snooping ports do NOT modify the packet/request |
552 Packet pkt(req, MemCmd::InvalidationReq); | 552 Packet pkt(req, MemCmd::InvalidateReq); |
553 for (CpuPortIter p = slave_ports.begin(); p != slave_ports.end(); ++p) { 554 // check if the connected master port is snooping 555 if ((*p)->isSnooping()) { 556 // send as a snoop request 557 (*p)->sendTimingSnoopReq(&pkt); 558 } 559 } 560} 561 562void 563RubyPort::PioMasterPort::recvRangeChange() 564{ 565 RubyPort &r = static_cast<RubyPort &>(owner); 566 r.gotAddrRanges--; 567 if (r.gotAddrRanges == 0 && FullSystem) { 568 r.pioSlavePort.sendRangeChange(); 569 } 570} | 553 for (CpuPortIter p = slave_ports.begin(); p != slave_ports.end(); ++p) { 554 // check if the connected master port is snooping 555 if ((*p)->isSnooping()) { 556 // send as a snoop request 557 (*p)->sendTimingSnoopReq(&pkt); 558 } 559 } 560} 561 562void 563RubyPort::PioMasterPort::recvRangeChange() 564{ 565 RubyPort &r = static_cast<RubyPort &>(owner); 566 r.gotAddrRanges--; 567 if (r.gotAddrRanges == 0 && FullSystem) { 568 r.pioSlavePort.sendRangeChange(); 569 } 570} |