summaryrefslogtreecommitdiff
path: root/LibC/mman.cpp
blob: 5e13e8e2683abcaa7d12d79049d1a901053099a1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "mman.h"
#include "errno.h"
#include <Kernel/Syscall.h>

extern "C" {

void* mmap(void* addr, size_t size)
{
    int rc = Syscall::invoke(Syscall::SC_mmap, (dword)addr, (dword)size);
    __RETURN_WITH_ERRNO(rc, (void*)rc, (void*)-1);
}

int munmap(void* addr, size_t size)
{
    int rc = Syscall::invoke(Syscall::SC_munmap, (dword)addr, (dword)size);
    __RETURN_WITH_ERRNO(rc, rc, -1);
}

int set_mmap_name(void* addr, size_t size, const char* name)
{
    int rc = Syscall::invoke(Syscall::SC_set_mmap_name, (dword)addr, (dword)size, (dword)name);
    __RETURN_WITH_ERRNO(rc, rc, -1);
}

}