61a62
> #include <functional>
68,69c69,70
< * This object is a proxy for a structural port, to be used for debug
< * accesses.
---
> * This object is a proxy for a port or other object which implements the
> * functional response protocol, to be used for debug accesses.
74c75
< * structural port, and provides templatized convenience access functions.
---
> * protocol, and provides templatized convenience access functions.
81c82
< class PortProxy
---
> class PortProxy : FunctionalRequestProtocol
82a84,86
> public:
> typedef std::function<void(PacketPtr pkt)> SendFunctionalFunc;
>
83a88
> SendFunctionalFunc sendFunctional;
85,87d89
< /** The actual physical port used by this proxy. */
< MasterPort &_port;
<
90a93,100
> void
> recvFunctionalSnoop(PacketPtr pkt) override
> {
> // Since port proxies aren't anyone else's peer, they should never
> // receive snoops.
> panic("Port proxies should never receive snoops.");
> }
>
92,93c102,103
< PortProxy(MasterPort &port, unsigned int cacheLineSize) :
< _port(port), _cacheLineSize(cacheLineSize)
---
> PortProxy(SendFunctionalFunc func, unsigned int cacheLineSize) :
> sendFunctional(func), _cacheLineSize(cacheLineSize)
94a105,109
> PortProxy(const MasterPort &port, unsigned int cacheLineSize) :
> sendFunctional([&port](PacketPtr pkt)->void {
> port.sendFunctional(pkt);
> }), _cacheLineSize(cacheLineSize)
> {}