summaryrefslogtreecommitdiff
path: root/src/mem/physical.hh
diff options
context:
space:
mode:
authorAli Saidi <saidi@eecs.umich.edu>2006-08-16 19:01:23 -0400
committerAli Saidi <saidi@eecs.umich.edu>2006-08-16 19:01:23 -0400
commit402fbda3df18ff1e4581d441a7ddd59f006926c0 (patch)
tree6d6d7a9c345d29e32343baa73419dd3bbcdc8eb2 /src/mem/physical.hh
parent759626bdeeff140849d464b1fd3ec668f8169504 (diff)
parent2f145ac54ab3a9ed2c00e80460a10782da895604 (diff)
downloadgem5-402fbda3df18ff1e4581d441a7ddd59f006926c0.tar.xz
Merge zizzer:/bk/newmem
into zeep.pool:/z/saidi/tmp/m5.newmem --HG-- extra : convert_revision : f4fa62290ca2bbd4726fb6c8e89655dade53bb68
Diffstat (limited to 'src/mem/physical.hh')
-rw-r--r--src/mem/physical.hh25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/mem/physical.hh b/src/mem/physical.hh
index b549c1f8b..c0a5523ba 100644
--- a/src/mem/physical.hh
+++ b/src/mem/physical.hh
@@ -80,19 +80,28 @@ class PhysicalMemory : public MemObject
const PhysicalMemory &operator=(const PhysicalMemory &specmem);
protected:
- Addr base_addr;
- Addr pmem_size;
- uint8_t *pmem_addr;
+ uint8_t *pmemAddr;
MemoryPort *port;
- int page_ptr;
+ int pagePtr;
Tick lat;
public:
Addr new_page();
- uint64_t size() { return pmem_size; }
+ uint64_t size() { return params()->addrRange.size(); }
+
+ struct Params
+ {
+ std::string name;
+ Range<Addr> addrRange;
+ Tick latency;
+ };
+
+ protected:
+ Params *_params;
public:
- PhysicalMemory(const std::string &n, Tick latency);
+ const Params *params() const { return _params; }
+ PhysicalMemory(Params *p);
virtual ~PhysicalMemory();
public:
@@ -102,9 +111,9 @@ class PhysicalMemory : public MemObject
void virtual init();
unsigned int drain(Event *de);
- private:
+ protected:
Tick doFunctionalAccess(Packet *pkt);
-
+ virtual Tick calculateLatency(Packet *pkt);
void recvStatusChange(Port::Status status);
public: