summaryrefslogtreecommitdiff
path: root/vm.c
diff options
context:
space:
mode:
Diffstat (limited to 'vm.c')
-rw-r--r--vm.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/vm.c b/vm.c
index 247fede..c717baf 100644
--- a/vm.c
+++ b/vm.c
@@ -363,3 +363,16 @@ copyout(pde_t *pgdir, uint va, void *p, uint len)
}
return 0;
}
+
+// Clear PTE_U on a page. Used to create an inaccessible
+// page beneath the user stack.
+void
+clear_pte_u(pde_t *pgdir, char *uva)
+{
+ pte_t *pte;
+
+ pte = walkpgdir(pgdir, uva, 0);
+ if(pte == 0)
+ panic("clear_pte_u");
+ *pte &= ~PTE_U;
+}