]> granicus.if.org Git - strace/commitdiff
Decode fifth argument of mremap syscall
authorDmitry V. Levin <ldv@altlinux.org>
Thu, 24 Dec 2009 23:34:58 +0000 (23:34 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Fri, 25 Dec 2009 00:20:12 +0000 (00:20 +0000)
* mem.c (sys_mremap): Decode fifth argument.
* linux/*/syscallent.h: Update the number of mremap syscall arguments.

16 files changed:
linux/arm/syscallent.h
linux/avr32/syscallent.h
linux/bfin/syscallent.h
linux/hppa/syscallent.h
linux/i386/syscallent.h
linux/ia64/syscallent.h
linux/m68k/syscallent.h
linux/mips/syscallent.h
linux/powerpc/syscallent.h
linux/s390/syscallent.h
linux/s390x/syscallent.h
linux/sh/syscallent.h
linux/sh64/syscallent.h
linux/sparc/syscallent.h
linux/x86_64/syscallent.h
mem.c

index b9eac0fe048aef7bbc6324c38fbf2b2da1ebe7c8..9d7802b71dad6d19e61e241e7e428e6de896120f 100644 (file)
        { 1,    0,      sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
        { 2,    0,      sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
        { 2,    0,      sys_nanosleep,          "nanosleep"     }, /* 162 */
-       { 4,    0,      sys_mremap,             "mremap"        }, /* 163 */
+       { 5,    0,      sys_mremap,             "mremap"        }, /* 163 */
        { 3,    0,      sys_setresuid,          "setresuid"     }, /* 164 */
        { 3,    0,      sys_getresuid,          "getresuid"     }, /* 165 */
        { 5,    0,      printargs,              "vm86"          }, /* 166 */
index 1bfd68a3e2cc05ecb4a04f832db376817ea3c42a..57c133691d961668cfaa97e26e54d256394a00a6 100644 (file)
@@ -84,7 +84,7 @@
        { 3,    TD,     sys_ioctl,              "ioctl"         }, /* 54 */
        { 3,    TD,     sys_fcntl,              "fcntl"         }, /* 55 */
        { 2,    0,      sys_setpgid,            "setpgid"       }, /* 56 */
-       { 4,    0,      sys_mremap,             "mremap"        }, /* 57 */
+       { 5,    0,      sys_mremap,             "mremap"        }, /* 57 */
        { 3,    0,      sys_setresuid,          "setresuid"     }, /* 58 */
        { 3,    0,      sys_getresuid,          "getresuid"     }, /* 59 */
        { 2,    0,      sys_setreuid,           "setreuid"      }, /* 60 */
index 658e4b86652141f193fe3dcdb7c5c64f42dff1ce..9577d1f6497adb76ef8aa7afe34a9db3c4da33fb 100644 (file)
        { 1,    0,      sys_sched_get_priority_min,     "sched_get_priority_min"        }, /* 160 */
        { 2,    0,      sys_sched_rr_get_interval,      "sched_rr_get_interval" }, /* 161 */
        { 2,    0,      sys_nanosleep,          "nanosleep"     }, /* 162 */
-       { 4,    0,      sys_mremap,             "mremap"        }, /* 163 */
+       { 5,    0,      sys_mremap,             "mremap"        }, /* 163 */
        { 3,    0,      sys_setresuid,          "setresuid"     }, /* 164 */
        { 3,    0,      sys_getresuid,          "getresuid"     }, /* 165 */
        { 5,    0,      printargs,              "vm86"          }, /* 166 */
index 0906b58532fcaa7fe7e07232e60b6139dc421739..256e9a327f089d8e4712f9135a4ec7b664f821fb 100644 (file)
        { 1,    0,      sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
        { 2,    0,      sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
        { 2,    0,      sys_nanosleep,          "nanosleep"             }, /* 162 */
-       { 4,    0,      sys_mremap,             "mremap"                }, /* 163 */
+       { 5,    0,      sys_mremap,             "mremap"                }, /* 163 */
        { 3,    0,      sys_setresuid,          "setresuid"             }, /* 164 */
        { 3,    0,      sys_setresuid,          "getresuid"             }, /* 165 */
        { 2,    TS,     sys_sigaltstack,        "sigaltstack"           }, /* 166 */
index 9c75a1cbfdbf0428bb79419dfbad947a3909b805..6f264674e021f3d76a8ba11e952c849dbe38b43c 100644 (file)
        { 1,    0,      sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
        { 2,    0,      sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
        { 2,    0,      sys_nanosleep,          "nanosleep"     }, /* 162 */
-       { 4,    0,      sys_mremap,             "mremap"        }, /* 163 */
+       { 5,    0,      sys_mremap,             "mremap"        }, /* 163 */
        { 3,    0,      sys_setresuid,          "setresuid"     }, /* 164 */
        { 3,    0,      sys_getresuid,          "getresuid"     }, /* 165 */
        { 5,    0,      printargs,              "vm86"          }, /* 166 */
index 5d2be4751d70d0c472ad71331030b688693ef381..2391fcf4960d414791836f26b1c7a94e973a49d6 100644 (file)
        { 2,    0,      sys_mlock,              "mlock"         }, /* 1153 */
        { 1,    0,      sys_mlockall,           "mlockall"      }, /* 1154 */
        { 3,    0,      sys_mprotect,           "mprotect"      }, /* 1155 */
-       { 4,    0,      sys_mremap,             "mremap"        }, /* 1156 */
+       { 5,    0,      sys_mremap,             "mremap"        }, /* 1156 */
        { 3,    0,      sys_msync,              "msync"         }, /* 1157 */
        { 2,    0,      sys_munlock,            "munlock"       }, /* 1158 */
        { 0,    0,      sys_munlockall,         "munlockall"    }, /* 1159 */
index 4fc3564a06947ba0f5f2eea3fdf24395e6122f63..f24bf31955906220678cf5efacf36c6bd2f23e15 100644 (file)
        { 1,    0,      sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
        { 2,    0,      sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
        { 2,    0,      sys_nanosleep,          "nanosleep"     }, /* 162 */
-       { 4,    0,      sys_mremap,             "mremap"        }, /* 163 */
+       { 5,    0,      sys_mremap,             "mremap"        }, /* 163 */
        { 3,    0,      sys_setresuid,          "setresuid"     }, /* 164 */
        { 3,    0,      sys_getresuid,          "getresuid"     }, /* 165 */
        { 5,    0,      printargs,              "getpagesize"   }, /* 166 */
index 11d638d79ffa5ba7ff47c5ec9c304b5dbc16b43a..e2fe509ed8a3b812212c43fca6aaf66f022fa95e 100644 (file)
        { 1,    0,      sys_sched_get_priority_min,"sched_get_priority_min"}, /* 4164 */
        { 2,    0,      sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 4165 */
        { 2,    0,      sys_nanosleep,          "nanosleep"     }, /* 4166 */
-       { 4,    0,      sys_mremap,             "mremap"        }, /* 4167 */
+       { 5,    0,      sys_mremap,             "mremap"        }, /* 4167 */
        { 3,    TN,     sys_accept,             "accept"        }, /* 4168 */
        { 3,    TN,     sys_bind,               "bind"          }, /* 4169 */
        { 3,    TN,     sys_connect,            "connect"       }, /* 4170 */
        { 1,    0,      sys_pipe,               "pipe"          }, /* 5021 */
        { 5,    0,      sys_select,             "_newselect"    }, /* 5022 */
        { 0,    0,      sys_sched_yield,        "sched_yield"   }, /* 5023 */
-       { 4,    0,      sys_mremap,             "mremap"        }, /* 5024 */
+       { 5,    0,      sys_mremap,             "mremap"        }, /* 5024 */
        { 3,    0,      sys_msync,              "msync"         }, /* 5025 */
        { 3,    0,      printargs,              "mincore"       }, /* 5026 */
        { 3,    0,      sys_madvise,            "madvise"       }, /* 5027 */
        { 1,    0,      sys_pipe,               "pipe"          }, /* 6021 */
        { 5,    0,      sys_select,             "_newselect"    }, /* 6022 */
        { 0,    0,      sys_sched_yield,        "sched_yield"   }, /* 6023 */
-       { 4,    0,      sys_mremap,             "mremap"        }, /* 6024 */
+       { 5,    0,      sys_mremap,             "mremap"        }, /* 6024 */
        { 3,    0,      sys_msync,              "msync"         }, /* 6025 */
        { 3,    0,      printargs,              "mincore"       }, /* 6026 */
        { 3,    0,      sys_madvise,            "madvise"       }, /* 6027 */
index 5529324f446e8da5afeb00f8e3b2488c1f21ba04..12e9ba1faab3ef545744a8be21603590bde63a33 100644 (file)
        { 1,    0,      sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
        { 2,    0,      sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
        { 2,    0,      sys_nanosleep,          "nanosleep"             }, /* 162 */
-       { 4,    0,      sys_mremap,             "mremap"                }, /* 163 */
+       { 5,    0,      sys_mremap,             "mremap"                }, /* 163 */
        { 3,    0,      sys_setresuid,          "setresuid"             }, /* 164 */
        { 3,    0,      sys_getresuid,          "getresuid"             }, /* 165 */
        { 5,    0,      sys_query_module,       "query_module"          }, /* 166 */
index 287f70d9899b0546104e655d1311bf08367c6f49..112d18e54ff5dbd7906cb6c019f8988dc7f16094 100644 (file)
        { 1,    0,      sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
        { 2,    0,      sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
        { 2,    0,      sys_nanosleep,          "nanosleep"     }, /* 162 */
-       { 4,    0,      sys_mremap,             "mremap"        }, /* 163 */
+       { 5,    0,      sys_mremap,             "mremap"        }, /* 163 */
        { 3,    0,      sys_setresuid,          "setresuid"     }, /* 164 */
        { 3,    0,      sys_getresuid,          "getresuid"     }, /* 165 */
        { -1,   0,      printargs,              "SYS_166"       }, /* 166 */
index 2149a5eb0d04ac036d06b75ab4e353ab049b7ee5..24a43cac32ed321d7fdec4b30f4f7296f6261e62 100644 (file)
        { 1,    0,      sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
        { 2,    0,      sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
        { 2,    0,      sys_nanosleep,          "nanosleep"     }, /* 162 */
-       { 4,    0,      sys_mremap,             "mremap"        }, /* 163 */
+       { 5,    0,      sys_mremap,             "mremap"        }, /* 163 */
        { -1,   0,      printargs,              "SYS_164"       }, /* 164 */
        { -1,   0,      printargs,              "SYS_165"       }, /* 165 */
        { -1,   0,      printargs,              "SYS_166"       }, /* 166 */
index 614dd3044195e2d133075e02110774c3eb939f0a..e5af00ed38c1d19e8e313f10f94d5c2823a1b814 100644 (file)
        { 1,    0,      sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
        { 2,    0,      sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
        { 2,    0,      sys_nanosleep,          "nanosleep"     }, /* 162 */
-       { 4,    0,      sys_mremap,             "mremap"        }, /* 163 */
+       { 5,    0,      sys_mremap,             "mremap"        }, /* 163 */
        { 3,    0,      sys_setresuid,          "setresuid"     }, /* 164 */
        { 3,    0,      sys_getresuid,          "getresuid"     }, /* 165 */
        { 5,    0,      printargs,              "vm86"          }, /* 166 */
index 25d06bd93f3a016a0606c94ce3d06ef988efd783..f3a6404aa05e2ef5aa94a15b2e084566c423cc7b 100644 (file)
        { 1,    0,      sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */
        { 2,    0,      sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */
        { 2,    0,      sys_nanosleep,          "nanosleep"     }, /* 162 */
-       { 4,    0,      sys_mremap,             "mremap"        }, /* 163 */
+       { 5,    0,      sys_mremap,             "mremap"        }, /* 163 */
        { 3,    0,      sys_setresuid,          "setresuid"     }, /* 164 */
        { 3,    0,      sys_getresuid,          "getresuid"     }, /* 165 */
        { 5,    0,      printargs,              "SYS_166"       }, /* 166 */
index d97394ed9ac82f62e31677ecb7dd5a719f43cff7..3c6b2f807c161a2ba216ac3db682b2d71f93fc48 100644 (file)
        { 1,0,sys_sched_get_priority_min,"sched_get_priority_min"},/* 247 */
        { 2,    0,sys_sched_rr_get_interval,"sched_rr_get_interval"},/* 248 */
        { 2,    0,      sys_nanosleep,  "nanosleep" },          /* 249 */
-       { 4,    0,      sys_mremap,     "mremap" },             /* 250 */
+       { 5,    0,      sys_mremap,     "mremap" },             /* 250 */
        { 1,    0,      sys_sysctl,     "_sysctl" },            /* 251 */
        { 1,    0,      sys_getsid,     "getsid" },             /* 252 */
        { 1,    TD,     sys_fdatasync,  "fdatasync" },          /* 253 */
index a941dcb130fa4d7864d112d341679a4bea822d61..69916de10a0b4c3c80d5fb320bd04cd932108942 100644 (file)
@@ -23,7 +23,7 @@
        { 1,    TD,     sys_pipe,               "pipe"          },  /* 22 */
        { 5,    TD,     sys_select,             "select"        },  /* 23 */
        { 0,    0,      sys_sched_yield,        "sched_yield"},  /* 24 */
-       { 4,    0,      sys_mremap,             "mremap"        },  /* 25 */
+       { 5,    0,      sys_mremap,             "mremap"        },  /* 25 */
        { 3,    0,      sys_msync,              "msync"         },  /* 26 */
        { 3,    0,      sys_mincore,            "mincore"       },  /* 27 */
        { 3,    0,      sys_madvise,            "madvise"       },  /* 28 */
diff --git a/mem.c b/mem.c
index 49abf6682b71727ee4a5123e52b724d259e5c648..49e3a1c03db63b21de6714624457a8a765c5dd70 100644 (file)
--- a/mem.c
+++ b/mem.c
@@ -377,13 +377,17 @@ static const struct xlat mremap_flags[] = {
 };
 
 int
-sys_mremap(tcp)
-struct tcb *tcp;
+sys_mremap(struct tcb *tcp)
 {
        if (entering(tcp)) {
                tprintf("%#lx, %lu, %lu, ", tcp->u_arg[0], tcp->u_arg[1],
                        tcp->u_arg[2]);
                printflags(mremap_flags, tcp->u_arg[3], "MREMAP_???");
+#ifdef MREMAP_FIXED
+               if ((tcp->u_arg[3] & (MREMAP_MAYMOVE | MREMAP_FIXED)) ==
+                   (MREMAP_MAYMOVE | MREMAP_FIXED))
+                       tprintf(", %#lx", tcp->u_arg[4]);
+#endif
        }
        return RVAL_HEX;
 }