external_slave.cc (10694:1a6785e37d81) external_slave.cc (10713:eddb533708cb)
1/*
2 * Copyright (c) 2012-2014 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

--- 66 unchanged lines hidden (view full) ---

75 ExternalSlave::Port(name_, owner_),
76 responseEvent(*this), responsePacket(NULL), mustRetry(false)
77 { }
78
79 Tick recvAtomic(PacketPtr packet);
80 void recvFunctional(PacketPtr packet);
81 bool recvTimingReq(PacketPtr packet);
82 bool recvTimingSnoopResp(PacketPtr packet);
1/*
2 * Copyright (c) 2012-2014 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

--- 66 unchanged lines hidden (view full) ---

75 ExternalSlave::Port(name_, owner_),
76 responseEvent(*this), responsePacket(NULL), mustRetry(false)
77 { }
78
79 Tick recvAtomic(PacketPtr packet);
80 void recvFunctional(PacketPtr packet);
81 bool recvTimingReq(PacketPtr packet);
82 bool recvTimingSnoopResp(PacketPtr packet);
83 void recvRetry();
83 void recvRespRetry();
84 void recvFunctionalSnoop(PacketPtr packet);
85};
86
87class StubSlavePortHandler : public
88 ExternalSlave::Handler
89{
90 public:
91 ExternalSlave::Port *getExternalPort(

--- 34 unchanged lines hidden (view full) ---

126 owner.responsePacket->makeResponse();
127 owner.responsePacket->headerDelay = 0;
128 owner.responsePacket->payloadDelay = 0;
129
130 if (owner.sendTimingResp(owner.responsePacket)) {
131 owner.responsePacket = NULL;
132
133 if (owner.mustRetry)
84 void recvFunctionalSnoop(PacketPtr packet);
85};
86
87class StubSlavePortHandler : public
88 ExternalSlave::Handler
89{
90 public:
91 ExternalSlave::Port *getExternalPort(

--- 34 unchanged lines hidden (view full) ---

126 owner.responsePacket->makeResponse();
127 owner.responsePacket->headerDelay = 0;
128 owner.responsePacket->payloadDelay = 0;
129
130 if (owner.sendTimingResp(owner.responsePacket)) {
131 owner.responsePacket = NULL;
132
133 if (owner.mustRetry)
134 owner.sendRetry();
134 owner.sendRetryReq();
135 owner.mustRetry = false;
136 }
137}
138
139bool
140StubSlavePort::recvTimingReq(PacketPtr packet)
141{
142 if (responsePacket) {

--- 13 unchanged lines hidden (view full) ---

156bool
157StubSlavePort::recvTimingSnoopResp(PacketPtr packet)
158{
159 fatal("StubSlavePort: function: %s\n", __func__);
160 return false;
161}
162
163void
135 owner.mustRetry = false;
136 }
137}
138
139bool
140StubSlavePort::recvTimingReq(PacketPtr packet)
141{
142 if (responsePacket) {

--- 13 unchanged lines hidden (view full) ---

156bool
157StubSlavePort::recvTimingSnoopResp(PacketPtr packet)
158{
159 fatal("StubSlavePort: function: %s\n", __func__);
160 return false;
161}
162
163void
164StubSlavePort::recvRetry()
164StubSlavePort::recvRespRetry()
165{
166 assert(responsePacket);
167 /* Stub handles only one response at a time so responseEvent should never
168 * be scheduled at this point. Retrys shouldn't need to schedule, we
169 * can safely send the response here */
170 responseEvent.process();
171}
172

--- 80 unchanged lines hidden ---
165{
166 assert(responsePacket);
167 /* Stub handles only one response at a time so responseEvent should never
168 * be scheduled at this point. Retrys shouldn't need to schedule, we
169 * can safely send the response here */
170 responseEvent.process();
171}
172

--- 80 unchanged lines hidden ---