1/* 2 * Copyright 2014 Google, Inc. 3 * Copyright (c) 2010-2013 ARM Limited 4 * All rights reserved 5 * 6 * The license below extends only to copyright in the software and shall 7 * not be construed as granting a license to any other intellectual 8 * property including but not limited to intellectual property relating --- 256 unchanged lines hidden (view full) --- 265 } 266 return dcache_pkt == NULL; 267} 268 269void 270TimingSimpleCPU::sendData(RequestPtr req, uint8_t *data, uint64_t *res, 271 bool read) 272{ |
273 PacketPtr pkt = buildPacket(req, read); |
274 pkt->dataDynamic<uint8_t>(data); 275 if (req->getFlags().isSet(Request::NO_ACCESS)) { 276 assert(!dcache_pkt); 277 pkt->makeResponse(); 278 completeDataAccess(pkt); 279 } else if (read) { 280 handleReadPacket(pkt); 281 } else { --- 66 unchanged lines hidden (view full) --- 348 traceData = NULL; 349 } 350 351 postExecute(); 352 353 advanceInst(fault); 354} 355 |
356PacketPtr 357TimingSimpleCPU::buildPacket(RequestPtr req, bool read) |
358{ |
359 return read ? Packet::createRead(req) : Packet::createWrite(req); |
360} 361 362void 363TimingSimpleCPU::buildSplitPacket(PacketPtr &pkt1, PacketPtr &pkt2, 364 RequestPtr req1, RequestPtr req2, RequestPtr req, 365 uint8_t *data, bool read) 366{ 367 pkt1 = pkt2 = NULL; 368 369 assert(!req1->isMmappedIpr() && !req2->isMmappedIpr()); 370 371 if (req->getFlags().isSet(Request::NO_ACCESS)) { |
372 pkt1 = buildPacket(req, read); |
373 return; 374 } 375 |
376 pkt1 = buildPacket(req1, read); 377 pkt2 = buildPacket(req2, read); |
378 |
379 PacketPtr pkt = new Packet(req, pkt1->cmd.responseCommand()); 380 381 pkt->dataDynamic<uint8_t>(data); 382 pkt1->dataStatic<uint8_t>(data); 383 pkt2->dataStatic<uint8_t>(data + req1->getSize()); 384 385 SplitMainSenderState * main_send_state = new SplitMainSenderState; 386 pkt->senderState = main_send_state; --- 564 unchanged lines hidden --- |