Luna/libs/libc/src/sys/mman.cpp
2022-11-08 19:07:43 +01:00

24 lines
737 B
C++

#include <luna/syscall.h>
#include <sys/mman.h>
#include <sys/syscall.h>
extern "C"
{
// FIXME: Implement a POSIX-compliant mmap.
void* mmap(void* addr, size_t len, int prot, int flags, int fd, off_t offset)
{
long result = __luna_syscall5(SYS_mmap, (sysarg_t)addr, (sysarg_t)len, (sysarg_t)prot,
flags & MAP_ANONYMOUS ? (sysarg_t)-1 : (sysarg_t)fd, (sysarg_t)offset);
_RETURN_WITH_MEMORY_ERRNO(result, void*);
}
int munmap(void* addr, size_t len)
{
return (int)__lc_fast_syscall2(SYS_munmap, addr, len);
}
int mprotect(void* addr, size_t size, int prot)
{
return (int)__lc_fast_syscall3(SYS_mprotect, addr, size, prot);
}
}