]> granicus.if.org Git - strace/commitdiff
2003-03-04 Ulrich Drepper <drepper@redhat.com>
authorRoland McGrath <roland@redhat.com>
Wed, 5 Mar 2003 04:08:00 +0000 (04:08 +0000)
committerRoland McGrath <roland@redhat.com>
Wed, 5 Mar 2003 04:08:00 +0000 (04:08 +0000)
* mem.c [LINUX] (sys_remap_file_pages): New function.
* linux/syscall.h: Declare it.
* linux/syscallent.h: Use it.
* linux/powerpc/syscallent.h: Likewise.

linux/powerpc/syscallent.h
linux/syscall.h
linux/syscallent.h
mem.c

index d95854714acb14ba27916d34b97e03a6846eb783..b5006966754018a026db10acb2717d626cd01a21 100644 (file)
        { 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 */
index 6b782f15aa54b43f1613010d8dbe8ebc2950a4c6..51d0139edbb98b6d4ba252d5ee9f29a3beca1c96 100644 (file)
@@ -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 */
index 5aa5f709b0c1ba06e7e2e2af08d31cd85c1f4bf4..5c3316941eab05947811211058e01031d6ddb6f9 100644 (file)
        { 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 6d2e6534473b284a6841cb5f1610a9cfc9d895c6..7f9c8d7ad125134eac38ef391b2c824caf7fce34 100644 (file)
--- 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