diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2007-08-26 20:33:57 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2007-08-26 20:33:57 -0700 |
commit | 9b49a78cfdc0bd6f8afdb0d066ea39778095d7ac (patch) | |
tree | b4a977c8d7379ac552d245847825a73b61bf8c5b /src/arch/x86/tlb.hh | |
parent | 80d51650c8bce1503e5ce3877f3bfe21d3e57d45 (diff) | |
download | gem5-9b49a78cfdc0bd6f8afdb0d066ea39778095d7ac.tar.xz |
Address translation: Make the page table more flexible.
The page table now stores actual page table entries. It is still a templated
class here, but this will be corrected in the near future.
--HG--
extra : convert_revision : 804dcc6320414c2b3ab76a74a15295bd24e1d13d
Diffstat (limited to 'src/arch/x86/tlb.hh')
-rw-r--r-- | src/arch/x86/tlb.hh | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/arch/x86/tlb.hh b/src/arch/x86/tlb.hh index cfd61e3c9..4cf65ac08 100644 --- a/src/arch/x86/tlb.hh +++ b/src/arch/x86/tlb.hh @@ -58,21 +58,37 @@ #ifndef __ARCH_X86_TLB_HH__ #define __ARCH_X86_TLB_HH__ +#include <iostream> +#include <string> + +#include "sim/host.hh" #include "sim/tlb.hh" +class Checkpoint; + namespace X86ISA { - class ITB : public GenericITB + struct TlbEntry + { + Addr pageStart; + TlbEntry() {} + TlbEntry(Addr paddr) : pageStart(paddr) {} + + void serialize(std::ostream &os); + void unserialize(Checkpoint *cp, const std::string §ion); + }; + + class ITB : public GenericITB<false, false> { public: - ITB(const std::string &name) : GenericITB(name) + ITB(const std::string &name) : GenericITB<false, false>(name) {} }; - class DTB : public GenericDTB + class DTB : public GenericDTB<false, false> { public: - DTB(const std::string &name) : GenericDTB(name) + DTB(const std::string &name) : GenericDTB<false, false>(name) {} }; }; |