(physmem_offset: VirtAddr)
| 78 | |
| 79 | |
| 80 | unsafe fn active_lvl4_tab(physmem_offset: VirtAddr) -> &'static mut PageTable |
| 81 | { |
| 82 | use x86_64::registers::control::Cr3; |
| 83 | let(lvl4_tab_frame, _) = Cr3::read(); |
| 84 | let phys = lvl4_tab_frame.start_address(); |
| 85 | let virt = physmem_offset + phys.as_u64(); |
| 86 | let pagetab_ptr: *mut PageTable = virt.as_mut_ptr(); |
| 87 | &mut *pagetab_ptr |
| 88 | } |
| 89 | |
| 90 | |
| 91 | // Deallocate pages |