Deleted Added
sdiff udiff text old ( 13351:1d456a63bfbc ) new ( 13859:4156ac0c7257 )
full compact
1/*
2 * Copyright (c) 2012-2013, 2015-2016, 2018 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

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

119 public:
120
121 /** Track if we sent this as a whole line write or not */
122 bool wasWholeLineWrite;
123
124 /** True if the entry is just a simple forward from an upper level */
125 bool isForward;
126
127 class Target {
128 public:
129
130 enum Source {
131 FromCPU,
132 FromSnoop,
133 FromPrefetcher
134 };
135
136 const Tick recvTime; //!< Time when request was received (for stats)
137 const Tick readyTime; //!< Time when request is ready to be serviced
138 const Counter order; //!< Global order (for memory consistency mgmt)
139 const PacketPtr pkt; //!< Pending request packet.
140 const Source source; //!< Request from cpu, memory, or prefetcher?
141
142 /**
143 * We use this flag to track whether we have cleared the
144 * downstreamPending flag for the MSHR of the cache above
145 * where this packet originates from and guard noninitial
146 * attempts to clear it.
147 *

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

156 */
157 bool markedPending;
158
159 const bool allocOnFill; //!< Should the response servicing this
160 //!< target list allocate in the cache?
161
162 Target(PacketPtr _pkt, Tick _readyTime, Counter _order,
163 Source _source, bool _markedPending, bool alloc_on_fill)
164 : recvTime(curTick()), readyTime(_readyTime), order(_order),
165 pkt(_pkt), source(_source), markedPending(_markedPending),
166 allocOnFill(alloc_on_fill)
167 {}
168 };
169
170 class TargetList : public std::list<Target> {
171
172 public:
173 bool needsWritable;
174 bool hasUpgrade;

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

471 * @return true if there are targets
472 */
473 bool hasTargets() const { return !targets.empty(); }
474
475 /**
476 * Returns a reference to the first target.
477 * @return A pointer to the first target.
478 */
479 Target *getTarget()
480 {
481 assert(hasTargets());
482 return &targets.front();
483 }
484
485 /**
486 * Pop first target.
487 */

--- 54 unchanged lines hidden ---