port_proxy.cc (9814:7ad2b0186a32) | port_proxy.cc (10564:a8c16e2d466a) |
---|---|
1/* 2 * Copyright (c) 2012 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 --- 27 unchanged lines hidden (view full) --- 36 * 37 * Authors: Andreas Hansson 38 */ 39 40#include "base/chunk_generator.hh" 41#include "mem/port_proxy.hh" 42 43void | 1/* 2 * Copyright (c) 2012 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 --- 27 unchanged lines hidden (view full) --- 36 * 37 * Authors: Andreas Hansson 38 */ 39 40#include "base/chunk_generator.hh" 41#include "mem/port_proxy.hh" 42 43void |
44PortProxy::blobHelper(Addr addr, uint8_t *p, int size, MemCmd cmd) const | 44PortProxy::readBlob(Addr addr, uint8_t *p, int size) const |
45{ 46 Request req; 47 | 45{ 46 Request req; 47 |
48 for (ChunkGenerator gen(addr, size, _cacheLineSize); 49 !gen.done(); gen.next()) { | 48 for (ChunkGenerator gen(addr, size, _cacheLineSize); !gen.done(); 49 gen.next()) { |
50 req.setPhys(gen.addr(), gen.size(), 0, Request::funcMasterId); | 50 req.setPhys(gen.addr(), gen.size(), 0, Request::funcMasterId); |
51 Packet pkt(&req, cmd); | 51 Packet pkt(&req, MemCmd::ReadReq); |
52 pkt.dataStatic(p); 53 _port.sendFunctional(&pkt); 54 p += gen.size(); 55 } 56} 57 58void | 52 pkt.dataStatic(p); 53 _port.sendFunctional(&pkt); 54 p += gen.size(); 55 } 56} 57 58void |
59PortProxy::writeBlob(Addr addr, const uint8_t *p, int size) const 60{ 61 Request req; 62 63 for (ChunkGenerator gen(addr, size, _cacheLineSize); !gen.done(); 64 gen.next()) { 65 req.setPhys(gen.addr(), gen.size(), 0, Request::funcMasterId); 66 Packet pkt(&req, MemCmd::WriteReq); 67 pkt.dataStaticConst(p); 68 _port.sendFunctional(&pkt); 69 p += gen.size(); 70 } 71} 72 73void |
|
59PortProxy::memsetBlob(Addr addr, uint8_t v, int size) const 60{ 61 // quick and dirty... 62 uint8_t *buf = new uint8_t[size]; 63 64 std::memset(buf, v, size); | 74PortProxy::memsetBlob(Addr addr, uint8_t v, int size) const 75{ 76 // quick and dirty... 77 uint8_t *buf = new uint8_t[size]; 78 79 std::memset(buf, v, size); |
65 blobHelper(addr, buf, size, MemCmd::WriteReq); | 80 PortProxy::writeBlob(addr, buf, size); |
66 67 delete [] buf; 68} | 81 82 delete [] buf; 83} |