request: add accessor and constructor for setting time other than curTick
authorNathan Binkert <nate@binkert.org>
Fri, 29 May 2009 22:30:16 +0000 (15:30 -0700)
committerNathan Binkert <nate@binkert.org>
Fri, 29 May 2009 22:30:16 +0000 (15:30 -0700)
src/mem/packet.hh
src/mem/request.hh

index 6e804b726b647aa05eb73d0ec11fef8008d16f04..672b00e3c44c25c8ffc6f97b008e427e6f77a831 100644 (file)
@@ -537,7 +537,7 @@ class Packet : public FastAlloc, public Printable
         flags = 0;
         addr = req->getPaddr();
         size = req->getSize();
-        time = req->getTime();
+        time = req->time();
 
         flags.set(VALID_ADDR|VALID_SIZE);
         deleteData();
index 901a24f478ff68e26bd1eadc8479aff383886c97..87093031754548ac7fb76acd12237d917308693a 100644 (file)
@@ -152,7 +152,7 @@ class Request : public FastAlloc
      * latencies. This field is set to curTick any time paddr or vaddr
      * is written.
      */
-    Tick time;
+    Tick _time;
 
     /** The address space ID. */
     int asid;
@@ -188,6 +188,11 @@ class Request : public FastAlloc
         setPhys(paddr, size, flags);
     }
 
+    Request(Addr paddr, int size, Flags flags, Tick time)
+    {
+        setPhys(paddr, size, flags, time);
+    }
+
     Request(int asid, Addr vaddr, int size, Flags flags, Addr pc,
             int cid, ThreadID tid)
     {
@@ -213,12 +218,12 @@ class Request : public FastAlloc
      * allocated Request object.
      */
     void
-    setPhys(Addr _paddr, int _size, Flags _flags)
+    setPhys(Addr _paddr, int _size, Flags _flags, Tick time)
     {
         assert(_size >= 0);
         paddr = _paddr;
         size = _size;
-        time = curTick;
+        _time = time;
 
         flags.clear(~STICKY_FLAGS);
         flags.set(_flags);
@@ -226,6 +231,12 @@ class Request : public FastAlloc
         privateFlags.set(VALID_PADDR|VALID_SIZE);
     }
 
+    void
+    setPhys(Addr _paddr, int _size, Flags _flags)
+    {
+        setPhys(_paddr, _size, _flags, curTick);
+    }
+
     /**
      * Set up a virtual (e.g., CPU) request in a previously
      * allocated Request object.
@@ -239,7 +250,7 @@ class Request : public FastAlloc
         size = _size;
         flags = _flags;
         pc = _pc;
-        time = curTick;
+        _time = curTick;
 
         flags.clear(~STICKY_FLAGS);
         flags.set(_flags);
@@ -313,10 +324,17 @@ class Request : public FastAlloc
 
     /** Accessor for time. */
     Tick
-    getTime()
+    time() const
+    {
+        assert(privateFlags.isSet(VALID_PADDR|VALID_VADDR));
+        return _time;
+    }
+
+    void
+    time(Tick time)
     {
         assert(privateFlags.isSet(VALID_PADDR|VALID_VADDR));
-        return time;
+        _time = time;
     }
 
     /** Accessor for flags. */