Nucleus
Barry Page functions + User memory functions 73145c0 (3 years, 3 months ago)
diff --git a/memory/fault.c b/memory/fault.c
index e8d66a7..dd7953f 100644
--- a/memory/fault.c
+++ b/memory/fault.c
@@ -16,8 +16,12 @@ early_page_fault_handler(struct InterruptFrame *frame, uint32_t err)
{
uintptr_t addr;
asm volatile("mov %%cr2, %0" : "=r" (addr));
+ uint8_t present = err & (1 << 0);
+ uint8_t write = err & (1 << 1);
+ uint8_t user = err & (1 << 2);
if (!PAGE_ADDR(addr))
panic("Null dereference @ %#.8x", frame->eip);
+ ASSERT(!present);
/* Allocate a page */
set_page(addr, alloc_frame() | PTE_PRESENT | PTE_WRITE | PTE_GLOBAL);
}