summaryrefslogtreecommitdiff
path: root/src/kernel/arch/generic.h
diff options
context:
space:
mode:
authordzwdz2021-08-24 19:05:46 +0200
committerdzwdz2021-08-24 19:05:46 +0200
commitb988b821372466ed58eb1d2116bcbb158f70346c (patch)
tree669bb9331082848277031632e818e8293fb6e44c /src/kernel/arch/generic.h
parent04878a07e587f26fe6d5a1044b69651406e3aa1c (diff)
switch to using user_ptr for pointers coming from userland
this avoid accidental dereferences, and now it's easy to tell apart which pointers are safe to directly read and which aren't. cons: - const is completely discarded
Diffstat (limited to 'src/kernel/arch/generic.h')
-rw-r--r--src/kernel/arch/generic.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/kernel/arch/generic.h b/src/kernel/arch/generic.h
index 1fa716b..e7afeff 100644
--- a/src/kernel/arch/generic.h
+++ b/src/kernel/arch/generic.h
@@ -1,5 +1,6 @@
#pragma once
+#include <kernel/types.h>
#include <kernel/arch/i386/registers.h>
#include <kernel/arch/log.h>
#include <stdbool.h>
@@ -22,11 +23,11 @@ int syscall_handler(int, int, int, int);
// all of those can allocate memory
struct pagedir *pagedir_new(void);
struct pagedir *pagedir_copy(const struct pagedir *orig);
-void pagedir_map(struct pagedir *dir, void *virt, void *phys,
+void pagedir_map(struct pagedir *dir, user_ptr virt, void *phys,
bool user, bool writeable);
void pagedir_switch(struct pagedir *);
// return 0 on failure
-void *pagedir_virt2phys(struct pagedir *dir, const void *virt,
+void *pagedir_virt2phys(struct pagedir *dir, const user_ptr virt,
bool user, bool writeable);