summaryrefslogtreecommitdiff
path: root/src/mem/ruby/system/DirectoryMemory.hh
diff options
context:
space:
mode:
authorNilay Vaish <nilay@cs.wisc.edu>2011-12-31 16:38:30 -0600
committerNilay Vaish <nilay@cs.wisc.edu>2011-12-31 16:38:30 -0600
commit734ef9a209279ea3c391bcb0097241b2235661dc (patch)
treed6be8c137f17431a2c8ec5556899df02c495c087 /src/mem/ruby/system/DirectoryMemory.hh
parent19e65a650266a526ca47389188f21bbde79d5054 (diff)
downloadgem5-734ef9a209279ea3c391bcb0097241b2235661dc.tar.xz
SLICC: Use pointers for directory entries
SLICC uses pointers for cache and TBE entries but not for directory entries. This patch changes the protocols, SLICC and Ruby memory system so that even directory entries are referenced using pointers. --HG-- extra : rebase_source : abeb4ac78033d003153751f216fd1948251fcfad
Diffstat (limited to 'src/mem/ruby/system/DirectoryMemory.hh')
-rw-r--r--src/mem/ruby/system/DirectoryMemory.hh8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/mem/ruby/system/DirectoryMemory.hh b/src/mem/ruby/system/DirectoryMemory.hh
index 79b04726a..7005ce234 100644
--- a/src/mem/ruby/system/DirectoryMemory.hh
+++ b/src/mem/ruby/system/DirectoryMemory.hh
@@ -32,9 +32,9 @@
#include <iostream>
#include <string>
-#include "mem/protocol/Directory_Entry.hh"
#include "mem/ruby/common/Address.hh"
#include "mem/ruby/common/Global.hh"
+#include "mem/ruby/slicc_interface/AbstractEntry.hh"
#include "mem/ruby/system/MemoryVector.hh"
#include "mem/ruby/system/SparseMemory.hh"
#include "params/RubyDirectoryMemory.hh"
@@ -58,7 +58,9 @@ class DirectoryMemory : public SimObject
void printConfig(std::ostream& out) const;
static void printGlobalConfig(std::ostream & out);
bool isPresent(PhysAddress address);
- Directory_Entry& lookup(PhysAddress address);
+ AbstractEntry* lookup(PhysAddress address);
+ AbstractEntry* allocate(const PhysAddress& address,
+ AbstractEntry* new_entry);
void invalidateBlock(PhysAddress address);
@@ -72,7 +74,7 @@ class DirectoryMemory : public SimObject
private:
const std::string m_name;
- Directory_Entry **m_entries;
+ AbstractEntry **m_entries;
// int m_size; // # of memory module blocks this directory is
// responsible for
uint64 m_size_bytes;