41 #ifndef __ARCH_X86_PAGETABLE_HH__
42 #define __ARCH_X86_PAGETABLE_HH__
52 #include "debug/MMU.hh"
131 bool uncacheable,
bool read_only);
148 return (1 << logBytes);
186 DPRINTF(MMU,
"CR3: %d\n", cr3);
217 X86ISA::VAddr
addr(vaddr);
218 return {addr.longl1, addr.longl2, addr.longl3, addr.longl4};
Trie< Addr, X86ISA::TlbEntry > TlbEntryTrie
EndBitUnion(TriggerIntMessage) namespace DeliveryMode
void setPTEFields(PageTableEntry &PTE, uint64_t flags=0)
Page table operations specific to x86 ISA.
ThreadContext is the external interface to all thread state for anything outside of the CPU...
Addr getPnum(PageTableEntry PTE)
returns the page number out of a page table entry
Bitfield< 47, 39 > longl4
const uint64_t pageTablePhysAddr
Bitfield< 31, 22 > norml2
Bitfield< 29, 21 > longl2
bool isReadOnly(PageTableEntry PTE)
void setPnum(PageTableEntry &PTE, Addr paddr)
sets the page number in a page table entry
Bitfield< 38, 30 > longl3
std::vector< uint64_t > getOffsets(Addr vaddr)
returns the offsets to index in every level of a page table, contained in a virtual address ...
BitUnion64(VAddr) Bitfield< 20
TlbEntry(Addr asn, Addr _vaddr, Addr _paddr, bool uncacheable, bool read_only)
TlbEntryTrie::Handle trieHandle
Addr getBasePtr(ThreadContext *tc)
returns the physical memory address of the page table
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,16,32,64}_t.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
const std::vector< uint8_t > PageTableLayout
The size of each level of the page table expressed in base 2 logarithmic values.
bool isUncacheable(const PageTableEntry PTE)
Basic support for object serialization.
std::ostream CheckpointOut
EndBitUnion(PageTableEntry) struct TlbEntry Addr vaddr
void updateVaddr(Addr new_vaddr)
Bitfield< 21, 12 > norml1
void serialize(CheckpointOut &cp) const override
void unserialize(CheckpointIn &cp) override