currsos/inc/paging.h

16 lines
408 B
C

#pragma once
#include "cdef.h"
#include "memory_layout.h"
#define PML4_ENTRY(vaddr) ((vaddr >> 39) & 0x1FF)
#define PDPT_ENTRY(vaddr) ((vaddr >> 30) & 0x1FF)
#define PD_ENTRY(vaddr) ((vaddr >> 21) & 0x1FF)
#define PT_ENTRY(vaddr) ((vaddr >> 12) & 0x1FF)
#define KERNEL_PAGE_SIZE (PAGE_SIZE)
uintptr get_paddr(uint64 cr3, uintptr vaddr);
int32 map_vmem(uint64 cr3, uintptr virt_addr, uintptr phys_addr);