Index: uClibc_trunk/libc/sysdeps/linux/common/mremap.c =================================================================== --- uClibc_trunk/libc/sysdeps/linux/common/mremap.c (revision 17813) +++ uClibc_trunk/libc/sysdeps/linux/common/mremap.c (working copy) @@ -9,6 +9,7 @@ #include #include +#include #ifdef __NR_mremap @@ -16,11 +17,24 @@ #include #undef mremap -void *mremap(void *, size_t, size_t, int, void *); +#define __NR___syscall_mremap __NR_mremap +void *mremap(void *, size_t, size_t, int, ...); + +static inline _syscall5(void *, __syscall_mremap, void *, + old_address, size_t, old_size, + size_t, new_size, int, may_move, void *, new_address); libc_hidden_proto(mremap) -_syscall5(void *, mremap, void *, old_address, size_t, old_size, size_t, - new_size, int, may_move, void *, new_address); +void *mremap(void * old_address, size_t old_size, size_t new_size, + int may_move, ...) +{ + va_list args; + void *newaddr; + va_start(args, may_move); + newaddr = (may_move & MREMAP_FIXED) ? va_arg (args, void *) : NULL; + va_end(args); + return __syscall_mremap(old_address, old_size, new_size, may_move, newaddr); +} libc_hidden_def(mremap) #endif