summaryrefslogtreecommitdiff
path: root/src/arch/x86/pagetable.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/x86/pagetable.hh')
-rw-r--r--src/arch/x86/pagetable.hh16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/arch/x86/pagetable.hh b/src/arch/x86/pagetable.hh
index 768de65bc..8a6e71f3b 100644
--- a/src/arch/x86/pagetable.hh
+++ b/src/arch/x86/pagetable.hh
@@ -46,11 +46,19 @@
#include "base/bitunion.hh"
#include "base/misc.hh"
#include "base/types.hh"
+#include "base/trie.hh"
class Checkpoint;
namespace X86ISA
{
+ struct TlbEntry;
+}
+
+typedef Trie<Addr, X86ISA::TlbEntry> TlbEntryTrie;
+
+namespace X86ISA
+{
BitUnion64(VAddr)
Bitfield<20, 12> longl1;
Bitfield<29, 21> longl2;
@@ -72,8 +80,8 @@ namespace X86ISA
// The beginning of the virtual page this entry maps.
Addr vaddr;
- // The size of the page this entry represents.
- Addr size;
+ // The size of the page this represents, in address bits.
+ unsigned logBytes;
// Read permission is always available, assuming it isn't blocked by
// other mechanisms.
@@ -91,6 +99,10 @@ namespace X86ISA
bool patBit;
// Whether or not memory on this page can be executed.
bool noExec;
+ // A sequence number to keep track of LRU.
+ uint64_t lruSeq;
+
+ TlbEntryTrie::Handle trieHandle;
TlbEntry(Addr asn, Addr _vaddr, Addr _paddr);
TlbEntry() {}