mshr.hh (6227:a17798f2a52c) mshr.hh (7667:aa8fd8f6a495)
1/*
2 * Copyright (c) 2002-2005 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

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

129 /** True if we need to get an exclusive copy of the block. */
130 bool needsExclusive() const { return targets->needsExclusive; }
131
132 /** True if the request is uncacheable */
133 bool _isUncacheable;
134
135 bool downstreamPending;
136
1/*
2 * Copyright (c) 2002-2005 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

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

129 /** True if we need to get an exclusive copy of the block. */
130 bool needsExclusive() const { return targets->needsExclusive; }
131
132 /** True if the request is uncacheable */
133 bool _isUncacheable;
134
135 bool downstreamPending;
136
137 bool pendingInvalidate;
138 bool pendingShared;
137 /** The pending* and post* flags are only valid if inService is
138 * true. Using the accessor functions lets us detect if these
139 * flags are accessed improperly.
140 */
139
141
142 /** Will we have a dirty copy after this request? */
143 bool pendingDirty;
144 bool isPendingDirty() const {
145 assert(inService); return pendingDirty;
146 }
147
148 /** Did we snoop an invalidate while waiting for data? */
149 bool postInvalidate;
150 bool hasPostInvalidate() const {
151 assert(inService); return postInvalidate;
152 }
153
154 /** Did we snoop a read while waiting for data? */
155 bool postDowngrade;
156 bool hasPostDowngrade() const {
157 assert(inService); return postDowngrade;
158 }
159
140 /** Thread number of the miss. */
141 ThreadID threadNum;
142 /** The number of currently allocated targets. */
143 unsigned short ntargets;
144
145
146 /** Data buffer (if needed). Currently used only for pending
147 * upgrade handling. */

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

175 * @param addr The address of the miss.
176 * @param asid The address space id of the miss.
177 * @param size The number of bytes to request.
178 * @param pkt The original miss.
179 */
180 void allocate(Addr addr, int size, PacketPtr pkt,
181 Tick when, Counter _order);
182
160 /** Thread number of the miss. */
161 ThreadID threadNum;
162 /** The number of currently allocated targets. */
163 unsigned short ntargets;
164
165
166 /** Data buffer (if needed). Currently used only for pending
167 * upgrade handling. */

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

195 * @param addr The address of the miss.
196 * @param asid The address space id of the miss.
197 * @param size The number of bytes to request.
198 * @param pkt The original miss.
199 */
200 void allocate(Addr addr, int size, PacketPtr pkt,
201 Tick when, Counter _order);
202
183 bool markInService();
203 bool markInService(PacketPtr pkt);
184
185 void clearDownstreamPending();
186
187 /**
188 * Mark this MSHR as free.
189 */
190 void deallocate();
191

--- 72 unchanged lines hidden ---
204
205 void clearDownstreamPending();
206
207 /**
208 * Mark this MSHR as free.
209 */
210 void deallocate();
211

--- 72 unchanged lines hidden ---