diff options
Diffstat (limited to 'src/arch/x86/pagetable.hh')
-rw-r--r-- | src/arch/x86/pagetable.hh | 16 |
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() {} |