aboutsummaryrefslogtreecommitdiffstats
path: root/libtest/mmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'libtest/mmap.c')
-rw-r--r--libtest/mmap.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/libtest/mmap.c b/libtest/mmap.c
index 62ef06e..c3b3067 100644
--- a/libtest/mmap.c
+++ b/libtest/mmap.c
@@ -24,6 +24,7 @@ void *
libtest_real_mmap(void *addr, size_t len, int prot, int flags, int fd, off_t off)
{
size_t pagesize = libtest_get_pagesize();
+ uintptr_t ret;
IF_MMAP2(assert(pagesize == 4096u));
if (off < 0 || off % (off_t)pagesize)
@@ -34,10 +35,11 @@ libtest_real_mmap(void *addr, size_t len, int prot, int flags, int fd, off_t off
goto einval;
#ifdef SYS_mmap2
- return (void *)syscall(SYS_mmap2, addr, len, prot, flags, fd, off);
+ ret = (uintptr_t)syscall(SYS_mmap2, addr, len, prot, flags, fd, off);
#else
- return (void *)syscall(SYS_mmap, addr, len, prot, flags, fd, off);
+ ret = (uintptr_t)syscall(SYS_mmap, addr, len, prot, flags, fd, off);
#endif
+ return (void *)ret;
einval:
errno = EINVAL;
@@ -48,7 +50,7 @@ einval:
int
libtest_real_munmap(void *addr, size_t len)
{
- return syscall(SYS_munmap, addr, len);
+ return (int)syscall(SYS_munmap, addr, len);
}
@@ -57,6 +59,7 @@ libtest_real_mremap(void *old_addr, size_t old_len, size_t new_len, int flags, .
{
va_list args;
void *new_addr = NULL;
+ uintptr_t ret;
if (flags & MREMAP_FIXED) {
va_start(args, flags);
@@ -64,7 +67,8 @@ libtest_real_mremap(void *old_addr, size_t old_len, size_t new_len, int flags, .
va_end(args);
}
- return (void *)syscall(SYS_mremap, old_addr, old_len, new_len, flags, new_addr);
+ ret = (uintptr_t)syscall(SYS_mremap, old_addr, old_len, new_len, flags, new_addr);
+ return (void *)ret;
}