6 #include "mem_layout.h"
19 Valid = 0x00000001LL, ///< Valid
20 Writable = 0x00000002LL, ///< Writable
21 User = 0x00000004LL, ///< User accessible
22 Write_through = 0x00000008LL, ///< Write through
23 Cacheable = 0x00000000LL, ///< Cache is enabled
24 Noncacheable = 0x00000010LL, ///< Caching is off
25 Referenced = 0x00000020LL, ///< Page was referenced
26 Dirty = 0x00000040LL, ///< Page was modified
27 Pse_bit = 0x00000080LL, ///< Indicates a super page
28 Cpu_global = 0x00000100LL, ///< pinned in the TLB
29 L4_global = 0x00000200LL, ///< pinned in the TLB
30 XD = 0x8000000000000000ULL,
31 ATTRIBS_MASK = 0x8000000000000006ULL
38 Pte_ptr(void *pte, unsigned char level) : pte((Mword*)pte), level(level) {}
46 typedef Ptab::Tupel< Ptab::Traits<Unsigned64, 39, 9, false>,
47 Ptab::Traits<Unsigned64, 30, 9, true>,
48 Ptab::Traits<Unsigned64, 21, 9, true>,
49 Ptab::Traits<Unsigned64, 12, 9, true> >::List Ptab_traits;
51 typedef Ptab::Shift<Ptab_traits, Virt_addr::Shift>::List Ptab_traits_vpn;
52 typedef Ptab::Page_addr_wrap<Page_number, Virt_addr::Shift> Ptab_va_vpn;