From f985051d876e5c9a7107e9d45fe296e0bc6c98c1 Mon Sep 17 00:00:00 2001 From: Matheus Date: Wed, 10 May 2023 20:38:15 -0300 Subject: [PATCH] mmap: do MAP_FIXED --- kernel-src/sys/syscalls/mmap.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel-src/sys/syscalls/mmap.c b/kernel-src/sys/syscalls/mmap.c index e3ddadaf..5ac10da8 100644 --- a/kernel-src/sys/syscalls/mmap.c +++ b/kernel-src/sys/syscalls/mmap.c @@ -41,9 +41,12 @@ syscallret_t syscall_mmap(context_t *context, void *hint, size_t len, int prot, mmuflags |= ARCH_MMU_FLAGS_NOEXEC; bool file = (flags & MAP_ANONYMOUS) == 0; - // TODO MAP_FIXED - __assert((flags & MAP_FIXED) == 0); int vmmflags = 0; + + // XXX this isn't the correct behaviour for MAP_FIXED + if (flags & MAP_FIXED) + vmmflags |= VMM_FLAGS_EXACT; + vmmfiledesc_t vfd; // TODO file mappings __assert(file == false);