50         uintptr_t current_virt = virt + 
offset;
    56             auto &&pml4_map = make_unique_map_x64<uintptr_t>(
cr3);
    60             expects(pml4_pte.phys_addr() != 0);
    64             auto &&pdpt_map = make_unique_map_x64<uintptr_t>(pml4_pte.phys_addr());
    68             expects(pdpt_pte.phys_addr() != 0);
    72                 phys = pdpt_pte.phys_addr();
    73                 pati = pdpt_pte.pat_index_large();
    79             auto &&pd_map = make_unique_map_x64<uintptr_t>(pdpt_pte.phys_addr());
    83             expects(pd_pte.phys_addr() != 0);
    87                 phys = pd_pte.phys_addr();
    88                 pati = pd_pte.pat_index_large();
    94             auto &&pt_map = make_unique_map_x64<uintptr_t>(pd_pte.phys_addr());
    98             expects(pt_pte.phys_addr() != 0);
   100             phys = pt_pte.phys_addr();
   101             pati = pt_pte.pat_index_4k();
   105         auto &&vadr = vmap + 
offset;
   106         auto &&padr = 
upper(phys, from) | 
lower(current_virt, from);
 void uintptr_t uintptr_t cr3
void __attribute__((weak)) map_with_cr3(uintptr_t vmap
constexpr const auto from
auto upper(T ptr) noexcept
void uintptr_t uintptr_t size_t x64::msrs::value_type pat
constexpr const auto from
constexpr const auto from
auto index(const T virt, const F from)
void uintptr_t uintptr_t size_t size
constexpr const auto page_size
auto mem_type_to_attr(P perm, T type)
auto lower(T ptr) noexcept
constexpr const auto from
constexpr const auto from
void map_with_cr3(uintptr_t vmap, uintptr_t virt, uintptr_t cr3, size_t size, x64::msrs::value_type pat)