port_proxy.cc (8853:0216ed80991b) port_proxy.cc (8861:56d011130987)
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)
44PortProxy::blobHelper(Addr addr, uint8_t *p, int size, MemCmd cmd) const
45{
46 Request req;
47
48 for (ChunkGenerator gen(addr, size, _port.peerBlockSize());
49 !gen.done(); gen.next()) {
50 req.setPhys(gen.addr(), gen.size(), 0, Request::funcMasterId);
51 Packet pkt(&req, cmd, Packet::Broadcast);
52 pkt.dataStatic(p);
53 _port.sendFunctional(&pkt);
54 p += gen.size();
55 }
56}
57
58void
45{
46 Request req;
47
48 for (ChunkGenerator gen(addr, size, _port.peerBlockSize());
49 !gen.done(); gen.next()) {
50 req.setPhys(gen.addr(), gen.size(), 0, Request::funcMasterId);
51 Packet pkt(&req, cmd, Packet::Broadcast);
52 pkt.dataStatic(p);
53 _port.sendFunctional(&pkt);
54 p += gen.size();
55 }
56}
57
58void
59PortProxy::memsetBlob(Addr addr, uint8_t v, int size)
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);
65 blobHelper(addr, buf, size, MemCmd::WriteReq);
66
67 delete [] buf;
68}
60{
61 // quick and dirty...
62 uint8_t *buf = new uint8_t[size];
63
64 std::memset(buf, v, size);
65 blobHelper(addr, buf, size, MemCmd::WriteReq);
66
67 delete [] buf;
68}