ExtSlave.cc (11158:a84eecaaa866) | ExtSlave.cc (11254:2c263c3426fa) |
---|---|
1// Copyright (c) 2015 ARM Limited 2// All rights reserved. 3// 4// The license below extends only to copyright in the software and shall 5// not be construed as granting a license to any other intellectual 6// property including but not limited to intellectual property relating 7// to a hardware implementation of the functionality of the software 8// licensed hereunder. You may use the software subject to the license --- 78 unchanged lines hidden (view full) --- 87void 88ExtSlave::recvFunctional(PacketPtr pkt) 89{ 90 if (simPhase == CONSTRUCTION) { 91 if (initPackets == NULL) { 92 initPackets = new std::list<MemEvent*>; 93 } 94 ::MemCmd::Command pktCmd = (::MemCmd::Command)pkt->cmd.toInt(); | 1// Copyright (c) 2015 ARM Limited 2// All rights reserved. 3// 4// The license below extends only to copyright in the software and shall 5// not be construed as granting a license to any other intellectual 6// property including but not limited to intellectual property relating 7// to a hardware implementation of the functionality of the software 8// licensed hereunder. You may use the software subject to the license --- 78 unchanged lines hidden (view full) --- 87void 88ExtSlave::recvFunctional(PacketPtr pkt) 89{ 90 if (simPhase == CONSTRUCTION) { 91 if (initPackets == NULL) { 92 initPackets = new std::list<MemEvent*>; 93 } 94 ::MemCmd::Command pktCmd = (::MemCmd::Command)pkt->cmd.toInt(); |
95 assert(pktCmd == ::MemCmd::WriteReq || pktCmd == ::MemCmd::Writeback); | 95 assert(pktCmd == ::MemCmd::WriteReq); |
96 Addr a = pkt->getAddr(); 97 MemEvent* ev = new MemEvent(comp, a, a, GetX); 98 ev->setPayload(pkt->getSize(), pkt->getPtr<uint8_t>()); 99 initPackets->push_back(ev); 100 } else { 101 panic("Functional accesses not allowed after construction phase"); 102 } 103} --- 17 unchanged lines hidden (view full) --- 121 122 auto ev = new MemEvent(comp, pkt->getAddr(), pkt->getAddr(), cmd); 123 ev->setPayload(pkt->getSize(), pkt->getPtr<uint8_t>()); 124 if ((::MemCmd::Command)pkt->cmd.toInt() == ::MemCmd::LoadLockedReq) 125 ev->setLoadLink(); 126 else if ((::MemCmd::Command)pkt->cmd.toInt() == ::MemCmd::StoreCondReq) 127 ev->setStoreConditional(); 128 | 96 Addr a = pkt->getAddr(); 97 MemEvent* ev = new MemEvent(comp, a, a, GetX); 98 ev->setPayload(pkt->getSize(), pkt->getPtr<uint8_t>()); 99 initPackets->push_back(ev); 100 } else { 101 panic("Functional accesses not allowed after construction phase"); 102 } 103} --- 17 unchanged lines hidden (view full) --- 121 122 auto ev = new MemEvent(comp, pkt->getAddr(), pkt->getAddr(), cmd); 123 ev->setPayload(pkt->getSize(), pkt->getPtr<uint8_t>()); 124 if ((::MemCmd::Command)pkt->cmd.toInt() == ::MemCmd::LoadLockedReq) 125 ev->setLoadLink(); 126 else if ((::MemCmd::Command)pkt->cmd.toInt() == ::MemCmd::StoreCondReq) 127 ev->setStoreConditional(); 128 |
129 if (pkt->req->isLockedRMW()) ev->setFlag(MemEvent::F_LOCKED); | 129 if (pkt->req->isLockedRMW()) ev->setFlag(MemEvent::F_LOCKED); |
130 if (pkt->req->isUncacheable()) ev->setFlag(MemEvent::F_NONCACHEABLE); 131 if (pkt->req->hasContextId()) ev->setGroupId(pkt->req->contextId()); 132// Prefetches not working with SST; it maybe be dropping them, treating them 133// as not deserving of responses, or something else -- not sure yet. 134// ev->setPrefetchFlag(pkt->req->isPrefetch()); 135 136 if (simPhase == INIT) { 137 link->sendInitData(ev); --- 66 unchanged lines hidden --- | 130 if (pkt->req->isUncacheable()) ev->setFlag(MemEvent::F_NONCACHEABLE); 131 if (pkt->req->hasContextId()) ev->setGroupId(pkt->req->contextId()); 132// Prefetches not working with SST; it maybe be dropping them, treating them 133// as not deserving of responses, or something else -- not sure yet. 134// ev->setPrefetchFlag(pkt->req->isPrefetch()); 135 136 if (simPhase == INIT) { 137 link->sendInitData(ev); --- 66 unchanged lines hidden --- |