2c2
< * Copyright (c) 2011 ARM Limited
---
> * Copyright (c) 2011-2012 ARM Limited
44,50c44,54
< * Port proxies are used when non structural entities need access to
< * the memory system. Proxy objects replace the previous
< * FunctionalPort, TranslatingPort and VirtualPort objects, which
< * provided the same functionality as the proxies, but were instances
< * of ports not corresponding to real structural ports of the
< * simulated system. Via the port proxies all the accesses go through
< * an actual port and thus are transparent to a potentially
---
> * Port proxies are used when non-structural entities need access to
> * the memory system (or structural entities that want to peak into
> * the memory system without making a real memory access).
> *
> * Proxy objects replace the previous FunctionalPort, TranslatingPort
> * and VirtualPort objects, which provided the same functionality as
> * the proxies, but were instances of ports not corresponding to real
> * structural ports of the simulated system. Via the port proxies all
> * the accesses go through an actual port (either the system port,
> * e.g. for processes or initialisation, or a the data port of the
> * CPU, e.g. for threads) and thus are transparent to a potentially
63d66
< #include "base/types.hh"
68,69c71,72
< * This object is a proxy for a structural port,
< * to be used for debug accesses.
---
> * This object is a proxy for a structural port, to be used for debug
> * accesses.
83c86,88
< protected:
---
> private:
>
> /** The actual physical port used by this proxy. */
85a91,92
> void blobHelper(Addr addr, uint8_t *p, int size, MemCmd cmd);
>
90d96
< public:
94,95c100,101
< virtual void readBlob(Addr address, uint8_t* p, int size)
< { _port.readBlob(address, p, size); }
---
> virtual void readBlob(Addr addr, uint8_t* p, int size)
> { blobHelper(addr, p, size, MemCmd::ReadReq); }
100,101c106,107
< virtual void writeBlob(Addr address, uint8_t* p, int size)
< { _port.writeBlob(address, p, size); }
---
> virtual void writeBlob(Addr addr, uint8_t* p, int size)
> { blobHelper(addr, p, size, MemCmd::WriteReq); }
106,107c112
< virtual void memsetBlob(Addr address, uint8_t v, int size)
< { _port.memsetBlob(address, v, size); }
---
> virtual void memsetBlob(Addr addr, uint8_t v, int size);