1/*
2 * Copyright (c) 2012-2013, 2015 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

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

156 bool isSecure;
157
158 /** True if the request has been sent to the bus. */
159 bool inService;
160
161 /** True if the request is just a simple forward from an upper level */
162 bool isForward;
163
164 /** Keep track of whether we should allocate on fill or not */
165 bool allocOnFill;
166
167 /** The pending* and post* flags are only valid if inService is
168 * true. Using the accessor functions lets us detect if these
169 * flags are accessed improperly.
170 */
171
172 /** True if we need to get an exclusive copy of the block. */
173 bool needsExclusive() const { return targets.needsExclusive; }
174

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

216
217 /**
218 * Allocate a miss to this MSHR.
219 * @param blk_addr The address of the block.
220 * @param blk_size The number of bytes to request.
221 * @param pkt The original miss.
222 * @param when_ready When should the MSHR be ready to act upon.
223 * @param _order The logical order of this MSHR
224 * @param alloc_on_fill Should the cache allocate a block on fill
225 */
226 void allocate(Addr blk_addr, unsigned blk_size, PacketPtr pkt,
223 Tick when_ready, Counter _order);
227 Tick when_ready, Counter _order, bool alloc_on_fill);
228
229 bool markInService(bool pending_dirty_resp);
230
231 void clearDownstreamPending();
232
233 /**
234 * Mark this MSHR as free.
235 */
236 void deallocate();
237
238 /**
239 * Add a request to the list of targets.
240 * @param target The target.
241 */
238 void allocateTarget(PacketPtr target, Tick when, Counter order);
242 void allocateTarget(PacketPtr target, Tick when, Counter order,
243 bool alloc_on_fill);
244 bool handleSnoop(PacketPtr target, Counter order);
245
246 /** A simple constructor. */
247 MSHR();
248
249 /**
250 * Returns the current number of allocated targets.
251 * @return The current number of allocated targets.

--- 58 unchanged lines hidden ---