both the kernel and glibc agree that this argument is unsigned; the
incorrect type ssize_t came from erroneous man pages.
#ifdef _GNU_SOURCE
void *mremap (void *, size_t, size_t, int, ...);
-int remap_file_pages (void *, size_t, int, ssize_t, int);
+int remap_file_pages (void *, size_t, int, size_t, int);
#endif
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
#include <sys/mman.h>
#include "syscall.h"
-int remap_file_pages(void *addr, size_t size, int prot, ssize_t pgoff, int flags)
+int remap_file_pages(void *addr, size_t size, int prot, size_t pgoff, int flags)
{
return syscall(SYS_remap_file_pages, addr, size, prot, pgoff, flags);
}