ExtMaster.cc (11618:37b0af2c7ba8) ExtMaster.cc (12749:223c83ed9979)
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

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

166 if (ev->isLoadLink()) {
167 assert(cmdI == GetS);
168 cmdO = MemCmd::LoadLockedReq;
169 } else if (ev->isStoreConditional()) {
170 assert(cmdI == GetX);
171 cmdO = MemCmd::StoreCondReq;
172 }
173
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

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

166 if (ev->isLoadLink()) {
167 assert(cmdI == GetS);
168 cmdO = MemCmd::LoadLockedReq;
169 } else if (ev->isStoreConditional()) {
170 assert(cmdI == GetX);
171 cmdO = MemCmd::StoreCondReq;
172 }
173
174 auto req = new Request(ev->getAddr(), ev->getSize(), flags, 0);
174 auto req = std::make_shared<Request>(ev->getAddr(), ev->getSize(), flags, 0);
175 req->setContext(ev->getGroupId());
176
177 auto pkt = new Packet(req, cmdO);
178 pkt->allocate();
179 if (data) {
180 pkt->setData(ev->getPayload().data());
181 }
182 pkt->pushSenderState(new SenderState(ev));

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

200 MemEvent* ev = senderState->event;
201 delete senderState;
202
203 MemEvent* resp = ev->makeResponse();
204 delete ev;
205
206 // copy the payload and then destroy gem5 packet
207 resp->setPayload(pkt->getSize(), pkt->getPtr<uint8_t>());
175 req->setContext(ev->getGroupId());
176
177 auto pkt = new Packet(req, cmdO);
178 pkt->allocate();
179 if (data) {
180 pkt->setData(ev->getPayload().data());
181 }
182 pkt->pushSenderState(new SenderState(ev));

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

200 MemEvent* ev = senderState->event;
201 delete senderState;
202
203 MemEvent* resp = ev->makeResponse();
204 delete ev;
205
206 // copy the payload and then destroy gem5 packet
207 resp->setPayload(pkt->getSize(), pkt->getPtr<uint8_t>());
208 delete pkt->req;
209 delete pkt;
210
211 nic->send(resp);
212 return true;
213}
214
215void
216ExtMaster::recvReqRetry() {

--- 19 unchanged lines hidden ---
208 delete pkt;
209
210 nic->send(resp);
211 return true;
212}
213
214void
215ExtMaster::recvReqRetry() {

--- 19 unchanged lines hidden ---