From: Roland McGrath Date: Wed, 5 Mar 2003 04:08:00 +0000 (+0000) Subject: 2003-03-04 Ulrich Drepper X-Git-Tag: v4.5.18~805 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=72c5b7bf739c707a7f8cd006050f1302c0e618e7;p=strace 2003-03-04 Ulrich Drepper * mem.c [LINUX] (sys_remap_file_pages): New function. * linux/syscall.h: Declare it. * linux/syscallent.h: Use it. * linux/powerpc/syscallent.h: Likewise. --- diff --git a/linux/powerpc/syscallent.h b/linux/powerpc/syscallent.h index d9585471..b5006966 100644 --- a/linux/powerpc/syscallent.h +++ b/linux/powerpc/syscallent.h @@ -268,7 +268,7 @@ { 1, 0, printargs, "epoll_create" }, /* 236 */ { 4, 0, printargs, "epoll_ctl" }, /* 237 */ { 4, 0, printargs, "epoll_wait" }, /* 238 */ - { 5, 0, printargs, "remap_file_pages" }, /* 239 */ + { 5, 0, sys_remap_file_pages, "remap_file_pages" }, /* 239 */ { 1, 0, printargs, "set_tid_address" }, /* 240 */ { 5, 0, printargs, "SYS_241" }, /* 241 */ { 5, 0, printargs, "SYS_242" }, /* 242 */ diff --git a/linux/syscall.h b/linux/syscall.h index 6b782f15..51d0139e 100644 --- a/linux/syscall.h +++ b/linux/syscall.h @@ -88,7 +88,7 @@ int sys_getpmsg(), sys_putpmsg(), sys_readahead(), sys_sendfile64(); int sys_setxattr(), sys_fsetxattr(), sys_getxattr(), sys_fgetxattr(); int sys_listxattr(), sys_flistxattr(), sys_removexattr(), sys_fremovexattr(); int sys_sched_setaffinity(), sys_sched_getaffinity(), sys_futex(); -int sys_set_thread_area(), sys_get_thread_area(); +int sys_set_thread_area(), sys_get_thread_area(), sys_remap_file_pages(); /* sys_socketcall subcalls */ diff --git a/linux/syscallent.h b/linux/syscallent.h index 5aa5f709..5c331694 100644 --- a/linux/syscallent.h +++ b/linux/syscallent.h @@ -303,7 +303,7 @@ { 1, 0, printargs, "epoll_create" }, /* 254 */ { 4, 0, printargs, "epoll_ctl" }, /* 255 */ { 4, 0, printargs, "epoll_wait" }, /* 256 */ - { 5, 0, printargs, "remap_file_pages"}, /* 257 */ + { 5, 0, sys_remap_file_pages, "remap_file_pages"}, /* 257 */ { 1, 0, printargs, "set_tid_address"}, /* 258 */ { 5, 0, printargs, "SYS_259" }, /* 259 */ { 5, 0, printargs, "SYS_260" }, /* 260 */ diff --git a/mem.c b/mem.c index 6d2e6534..7f9c8d7a 100644 --- a/mem.c +++ b/mem.c @@ -92,6 +92,12 @@ static struct xlat mmap_flags[] = { #endif #ifdef MAP_NORESERVE { MAP_NORESERVE,"MAP_NORESERVE" }, +#endif +#ifdef MAP_POPULATE + { MAP_POPULATE, "MAP_POPULATE" }, +#endif +#ifdef MAP_NONBLOCK + { MAP_NONBLOCK, "MAP_NONBLOCK" }, #endif /* * XXX - this was introduced in SunOS 4.x to distinguish between @@ -601,3 +607,23 @@ struct tcb *tcp; } #endif /* LINUX && __i386__ */ + +#if defined(LINUX) +int +sys_remap_file_pages(tcp) +struct tcb *tcp; +{ + if (entering(tcp)) { + tprintf("%#lx, %lu, ", tcp->u_arg[0], tcp->u_arg[1]); + printflags(mmap_prot, tcp->u_arg[2]); + tprintf(", %lu, ", tcp->u_arg[3]); +#ifdef MAP_TYPE + printxval(mmap_flags, tcp->u_arg[4] & MAP_TYPE, "MAP_???"); + addflags(mmap_flags, tcp->u_arg[4] & ~MAP_TYPE); +#else + printflags(mmap_flags, tcp->u_arg[4]); +#endif + } + return 0; +} +#endif