Use FastAlloc for Packet, Request, CoherenceState, and SenderState so we don't spend...
authorAli Saidi <saidi@eecs.umich.edu>
Thu, 21 Jun 2007 17:50:35 +0000 (13:50 -0400)
committerAli Saidi <saidi@eecs.umich.edu>
Thu, 21 Jun 2007 17:50:35 +0000 (13:50 -0400)
--HG--
extra : convert_revision : a946564eee46ed7d2aed41c32d488ca7f036c32f

src/mem/packet.hh
src/mem/request.hh

index c1e6a1e7ffb60001031cd91e3f395bce11226917..fb077901ec6fe5dde703637635db9ef726024ada 100644 (file)
@@ -43,6 +43,7 @@
 #include <bitset>
 
 #include "base/compiler.hh"
+#include "base/fast_alloc.hh"
 #include "base/misc.hh"
 #include "mem/request.hh"
 #include "sim/host.hh"
@@ -182,7 +183,7 @@ class MemCmd
  * ultimate destination and back, possibly being conveyed by several
  * different Packets along the way.)
  */
-class Packet
+class Packet : public FastAlloc
 {
   public:
 
@@ -257,7 +258,7 @@ class Packet
     /** A virtual base opaque structure used to hold coherence-related
      *    state.  A specific subclass would be derived from this to
      *    carry state specific to a particular coherence protocol.  */
-    class CoherenceState {
+    class CoherenceState : public FastAlloc {
       public:
         virtual ~CoherenceState() {}
     };
@@ -274,7 +275,7 @@ class Packet
      *    needed to process it.  A specific subclass would be derived
      *    from this to carry state specific to a particular sending
      *    device.  */
-    class SenderState {
+    class SenderState : public FastAlloc {
       public:
         virtual ~SenderState() {}
     };
index d2ebc91d3eed31d49adfa176e2dcb1c45f637cce..e08593f0dbad078608155a78ca7d6e419e2fcfd0 100644 (file)
@@ -39,6 +39,7 @@
 #ifndef __MEM_REQUEST_HH__
 #define __MEM_REQUEST_HH__
 
+#include "base/fast_alloc.hh"
 #include "sim/host.hh"
 #include "sim/core.hh"
 
@@ -76,7 +77,7 @@ const uint32_t MEM_SWAP         = 0x100000;
 const uint32_t MEM_SWAP_COND    = 0x200000;
 
 
-class Request
+class Request : public FastAlloc
 {
   private:
     /**
@@ -153,6 +154,8 @@ class Request
         setVirt(_asid, _vaddr, _size, _flags, _pc);
     }
 
+    ~Request() {}  // for FastAlloc
+
     /**
      * Set up CPU and thread numbers. */
     void setThreadContext(int _cpuNum, int _threadNum)