summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2025-09-15 23:41:52 -0400
committerIan Moffett <ian@osmora.org>2025-09-15 23:41:52 -0400
commitfe60a37cfe072ec41663a69aefb02816af4067db (patch)
tree80e164931cd2e21b2c3b5ff87b233b1b38a81f2d
parent06fb71061438ce7c9cf665abcb289221dfa6fca8 (diff)
sys: mman: Add PROT_USER flag
Signed-off-by: Ian Moffett <ian@osmora.org>
-rw-r--r--src/sys/arch/amd64/cpu/mmu.c2
-rw-r--r--src/sys/include/sys/mman.h3
-rw-r--r--src/sys/include/vm/mmu.h1
3 files changed, 6 insertions, 0 deletions
diff --git a/src/sys/arch/amd64/cpu/mmu.c b/src/sys/arch/amd64/cpu/mmu.c
index 974e7d3..60fb4f1 100644
--- a/src/sys/arch/amd64/cpu/mmu.c
+++ b/src/sys/arch/amd64/cpu/mmu.c
@@ -97,6 +97,8 @@ prot_to_pte(int prot)
pte_flags |= PTE_P;
if (ISSET(prot, MMU_PROT_WRITE))
pte_flags |= PTE_RW;
+ if (ISSET(prot, MMU_PROT_USER))
+ pte_flags |= PTE_US;
if (ISSET(prot, MMU_PROT_EXEC))
pte_flags &= ~PTE_NX;
diff --git a/src/sys/include/sys/mman.h b/src/sys/include/sys/mman.h
index 774f152..7ae1ed2 100644
--- a/src/sys/include/sys/mman.h
+++ b/src/sys/include/sys/mman.h
@@ -35,5 +35,8 @@
#define PROT_READ BIT(0)
#define PROT_WRITE BIT(1)
#define PROT_EXEC BIT(2)
+#if defined(_KERNEL)
+#define PROT_USER BIT(3)
+#endif /* _KERNEL */
#endif /* !_SYS_MMAN_H_ */
diff --git a/src/sys/include/vm/mmu.h b/src/sys/include/vm/mmu.h
index 6749254..5c1c2bb 100644
--- a/src/sys/include/vm/mmu.h
+++ b/src/sys/include/vm/mmu.h
@@ -48,6 +48,7 @@
#define MMU_PROT_READ PROT_READ /* Readable */
#define MMU_PROT_WRITE PROT_WRITE /* Writable */
#define MMU_PROT_EXEC PROT_EXEC /* Executable */
+#define MMU_PROT_USER PROT_USER /* User visible */
/*
* This will represent a virtual to