Kernel/LibC: add mmap for private anonymous mappings
This will be used by the userspace to get more memory. Currently kernel handles all allocations, which is not preferable.
This commit is contained in:
23
libc/sys/mman.cpp
Normal file
23
libc/sys/mman.cpp
Normal file
@@ -0,0 +1,23 @@
|
||||
#include <sys/mman.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <unistd.h>
|
||||
|
||||
void* mmap(void* addr, size_t len, int prot, int flags, int fildes, off_t off)
|
||||
{
|
||||
sys_mmap_t args {
|
||||
.addr = addr,
|
||||
.len = len,
|
||||
.prot = prot,
|
||||
.flags = flags,
|
||||
.off = off
|
||||
};
|
||||
long ret = syscall(SYS_MMAP, &args);
|
||||
if (ret == -1)
|
||||
return nullptr;
|
||||
return (void*)ret;
|
||||
}
|
||||
|
||||
int munmap(void* addr, size_t len)
|
||||
{
|
||||
return syscall(SYS_MUNMAP, addr, len);
|
||||
}
|
||||
Reference in New Issue
Block a user