request.hh (10020:2f33cb012383) request.hh (10024:fc10e1f9f124)
1/*
2 * Copyright (c) 2012-2013 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

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

214
215 /**
216 * The time this request was started. Used to calculate
217 * latencies. This field is set to curTick() any time paddr or vaddr
218 * is written.
219 */
220 Tick _time;
221
1/*
2 * Copyright (c) 2012-2013 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

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

214
215 /**
216 * The time this request was started. Used to calculate
217 * latencies. This field is set to curTick() any time paddr or vaddr
218 * is written.
219 */
220 Tick _time;
221
222 /**
223 * The task id associated with this request
224 */
225 uint32_t _taskId;
226
222 /** The address space ID. */
223 int _asid;
224
225 /** The virtual address of the request. */
226 Addr _vaddr;
227
228 /**
229 * Extra data for the request, such as the return value of

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

239 Addr _pc;
240
241 public:
242 /** Minimal constructor. No fields are initialized.
243 * (Note that _flags and privateFlags are cleared by Flags
244 * default constructor.)
245 */
246 Request()
227 /** The address space ID. */
228 int _asid;
229
230 /** The virtual address of the request. */
231 Addr _vaddr;
232
233 /**
234 * Extra data for the request, such as the return value of

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

244 Addr _pc;
245
246 public:
247 /** Minimal constructor. No fields are initialized.
248 * (Note that _flags and privateFlags are cleared by Flags
249 * default constructor.)
250 */
251 Request()
247 : translateDelta(0), accessDelta(0), depth(0)
252 : _taskId(ContextSwitchTaskId::Unknown),
253 translateDelta(0), accessDelta(0), depth(0)
248 {}
249
250 /**
251 * Constructor for physical (e.g. device) requests. Initializes
252 * just physical address, size, flags, and timestamp (to curTick()).
253 * These fields are adequate to perform a request.
254 */
255 Request(Addr paddr, int size, Flags flags, MasterID mid)
254 {}
255
256 /**
257 * Constructor for physical (e.g. device) requests. Initializes
258 * just physical address, size, flags, and timestamp (to curTick()).
259 * These fields are adequate to perform a request.
260 */
261 Request(Addr paddr, int size, Flags flags, MasterID mid)
262 : _taskId(ContextSwitchTaskId::Unknown)
256 {
257 setPhys(paddr, size, flags, mid);
258 }
259
260 Request(Addr paddr, int size, Flags flags, MasterID mid, Tick time)
263 {
264 setPhys(paddr, size, flags, mid);
265 }
266
267 Request(Addr paddr, int size, Flags flags, MasterID mid, Tick time)
268 : _taskId(ContextSwitchTaskId::Unknown)
261 {
262 setPhys(paddr, size, flags, mid, time);
263 }
264
265 Request(Addr paddr, int size, Flags flags, MasterID mid, Tick time, Addr pc)
269 {
270 setPhys(paddr, size, flags, mid, time);
271 }
272
273 Request(Addr paddr, int size, Flags flags, MasterID mid, Tick time, Addr pc)
274 : _taskId(ContextSwitchTaskId::Unknown)
266 {
267 setPhys(paddr, size, flags, mid, time);
268 privateFlags.set(VALID_PC);
269 _pc = pc;
270 }
271
272 Request(int asid, Addr vaddr, int size, Flags flags, MasterID mid, Addr pc,
273 int cid, ThreadID tid)
275 {
276 setPhys(paddr, size, flags, mid, time);
277 privateFlags.set(VALID_PC);
278 _pc = pc;
279 }
280
281 Request(int asid, Addr vaddr, int size, Flags flags, MasterID mid, Addr pc,
282 int cid, ThreadID tid)
283 : _taskId(ContextSwitchTaskId::Unknown)
274 {
275 setVirt(asid, vaddr, size, flags, mid, pc);
276 setThreadContext(cid, tid);
277 }
278
279 ~Request() {}
280
281 /**

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

472
473 /** Accesssor for the requestor id. */
474 MasterID
475 masterId()
476 {
477 return _masterId;
478 }
479
284 {
285 setVirt(asid, vaddr, size, flags, mid, pc);
286 setThreadContext(cid, tid);
287 }
288
289 ~Request() {}
290
291 /**

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

482
483 /** Accesssor for the requestor id. */
484 MasterID
485 masterId()
486 {
487 return _masterId;
488 }
489
490 uint32_t
491 taskId() const
492 {
493 return _taskId;
494 }
495
496 void
497 taskId(uint32_t id) {
498 _taskId = id;
499 }
500
480 /** Accessor function for asid.*/
481 int
482 getAsid()
483 {
484 assert(privateFlags.isSet(VALID_VADDR));
485 return _asid;
486 }
487

--- 109 unchanged lines hidden ---
501 /** Accessor function for asid.*/
502 int
503 getAsid()
504 {
505 assert(privateFlags.isSet(VALID_VADDR));
506 return _asid;
507 }
508

--- 109 unchanged lines hidden ---