76,77c76
< * accesses to the peer port: sendFunctional, sendAtomic and
< * sendTiming.
---
> * accesses to the peer port: functional, atomic and timing.
133,135d131
< /** These functions are protected because they should only be
< * called by a peer port, never directly by any outside object. */
<
137c133,134
< * Receive a timing request or response packet from the peer port.
---
> * Called by a peer port if sendTimingReq, sendTimingResp or
> * sendTimingSnoopResp was unsuccesful, and had to wait.
139,154d135
< virtual bool recvTiming(PacketPtr pkt) = 0;
<
< /**
< * Receive a timing snoop request or snoop response packet from
< * the peer port.
< */
< virtual bool recvTimingSnoop(PacketPtr pkt)
< {
< panic("%s was not expecting a timing snoop\n", name());
< return false;
< }
<
< /**
< * Called by a peer port if sendTiming or sendTimingSnoop was
< * unsuccesful, and had to wait.
< */
160,185d140
< * Attempt to send a timing request or response packet to the peer
< * port by calling its receive function. If the send does not
< * succeed, as indicated by the return value, then the sender must
< * wait for a recvRetry at which point it can re-issue a
< * sendTiming.
< *
< * @param pkt Packet to send.
< *
< * @return If the send was succesful or not.
< */
< bool sendTiming(PacketPtr pkt) { return peer->recvTiming(pkt); }
<
< /**
< * Attempt to send a timing snoop request or snoop response packet
< * to the peer port by calling its receive function. If the send
< * does not succeed, as indicated by the return value, then the
< * sender must wait for a recvRetry at which point it can re-issue
< * a sendTimingSnoop.
< *
< * @param pkt Packet to send.
< *
< * @return If the send was succesful or not.
< */
< bool sendTimingSnoop(PacketPtr pkt) { return peer->recvTimingSnoop(pkt); }
<
< /**
187c142,143
< * sendTiming or sendTimingSnoop which was unsuccessful.
---
> * sendTimingReq, sendTimingResp or sendTimingSnoopResp which was
> * unsuccessful.
204a161,162
> friend class SlavePort;
>
240,246c198,208
< * Receive an atomic snoop request packet from the slave port.
< */
< virtual Tick recvAtomicSnoop(PacketPtr pkt)
< {
< panic("%s was not expecting an atomic snoop\n", name());
< return 0;
< }
---
> * Attempt to send a timing request to the slave port by calling
> * its corresponding receive function. If the send does not
> * succeed, as indicated by the return value, then the sender must
> * wait for a recvRetry at which point it can re-issue a
> * sendTimingReq.
> *
> * @param pkt Packet to send.
> *
> * @return If the send was succesful or not.
> */
> bool sendTimingReq(PacketPtr pkt);
249c211,217
< * Receive a functional snoop request packet from the slave port.
---
> * Attempt to send a timing snoop response packet to the slave
> * port by calling its corresponding receive function. If the send
> * does not succeed, as indicated by the return value, then the
> * sender must wait for a recvRetry at which point it can re-issue
> * a sendTimingSnoopResp.
> *
> * @param pkt Packet to send.
251,254c219
< virtual void recvFunctionalSnoop(PacketPtr pkt)
< {
< panic("%s was not expecting a functional snoop\n", name());
< }
---
> bool sendTimingSnoopResp(PacketPtr pkt);
257,265d221
< * Called to receive an address range change from the peer slave
< * port. the default implementation ignored the change and does
< * nothing. Override this function in a derived class if the owner
< * needs to be aware of he laesddress ranges, e.g. in an
< * interconnect component like a bus.
< */
< virtual void recvRangeChange() { }
<
< /**
290a247,287
>
> protected:
>
> /**
> * Receive an atomic snoop request packet from the slave port.
> */
> virtual Tick recvAtomicSnoop(PacketPtr pkt)
> {
> panic("%s was not expecting an atomic snoop request\n", name());
> return 0;
> }
>
> /**
> * Receive a functional snoop request packet from the slave port.
> */
> virtual void recvFunctionalSnoop(PacketPtr pkt)
> {
> panic("%s was not expecting a functional snoop request\n", name());
> }
>
> /**
> * Receive a timing response from the slave port.
> */
> virtual bool recvTimingResp(PacketPtr pkt) = 0;
>
> /**
> * Receive a timing snoop request from the slave port.
> */
> virtual void recvTimingSnoopReq(PacketPtr pkt)
> {
> panic("%s was not expecting a timing snoop request\n", name());
> }
>
> /**
> * Called to receive an address range change from the peer slave
> * port. the default implementation ignored the change and does
> * nothing. Override this function in a derived class if the owner
> * needs to be aware of he laesddress ranges, e.g. in an
> * interconnect component like a bus.
> */
> virtual void recvRangeChange() { }
301a299,300
> friend class MasterPort;
>
337,339c336,346
< * Receive an atomic request packet from the master port.
< */
< virtual Tick recvAtomic(PacketPtr pkt) = 0;
---
> * Attempt to send a timing response to the master port by calling
> * its corresponding receive function. If the send does not
> * succeed, as indicated by the return value, then the sender must
> * wait for a recvRetry at which point it can re-issue a
> * sendTimingResp.
> *
> * @param pkt Packet to send.
> *
> * @return If the send was succesful or not.
> */
> bool sendTimingResp(PacketPtr pkt);
342c349,353
< * Receive a functional request packet from the master port.
---
> * Attempt to send a timing snoop request packet to the master port
> * by calling its corresponding receive function. Snoop requests
> * always succeed and hence no return value is needed.
> *
> * @param pkt Packet to send.
344c355
< virtual void recvFunctional(PacketPtr pkt) = 0;
---
> void sendTimingSnoopReq(PacketPtr pkt);
369a381,406
>
> protected:
>
> /**
> * Receive an atomic request packet from the master port.
> */
> virtual Tick recvAtomic(PacketPtr pkt) = 0;
>
> /**
> * Receive a functional request packet from the master port.
> */
> virtual void recvFunctional(PacketPtr pkt) = 0;
>
> /**
> * Receive a timing request from the master port.
> */
> virtual bool recvTimingReq(PacketPtr pkt) = 0;
>
> /**
> * Receive a timing snoop response from the master port.
> */
> virtual bool recvTimingSnoopResp(PacketPtr pkt)
> {
> panic("%s was not expecting a timing snoop response\n", name());
> }
>