]> granicus.if.org Git - strace/commitdiff
Remove getarg_klu
authorDmitry V. Levin <ldv@altlinux.org>
Mon, 26 Dec 2016 02:28:04 +0000 (05:28 +0300)
committerDmitry V. Levin <ldv@altlinux.org>
Mon, 26 Dec 2016 10:43:35 +0000 (10:43 +0000)
After transition from long to kernel_ulong_t we no longer need
tcp->ext_arg, and therefore a function to access it is also no longer
needed.

* defs.h (getarg_klu): Remove prototype.
* util.c (getarg_klu): Remove.
(printargs): Access tcp->u_arg directly
* bjm.c (SYS_FUNC(init_module)): Likewise.
* clone.c (SYS_FUNC(unshare)): Likewise.
* fadvise.c (SYS_FUNC(fadvise64)): Likewise.
* kcmp.c (SYS_FUNC(kcmp)): Likewise.
* kexec.c (SYS_FUNC(kexec_file_load)): Likewise.
* keyctl.c (SYS_FUNC(keyctl)): Likewise.
* lookup_dcookie.c (SYS_FUNC(lookup_dcookie)): Likewise.
* mem.c (do_mprotect): Likewise.
* mq.c (SYS_FUNC(mq_timedsend), SYS_FUNC(mq_timedreceive)): Likewise.
* pkeys.c (SYS_FUNC(pkey_alloc)): Likewise.
* prctl.c (print_prctl_args, SYS_FUNC(prctl), SYS_FUNC(arch_prctl)):
Likewise.

13 files changed:
bjm.c
clone.c
defs.h
fadvise.c
kcmp.c
kexec.c
keyctl.c
lookup_dcookie.c
mem.c
mq.c
pkeys.c
prctl.c
util.c

diff --git a/bjm.c b/bjm.c
index 5d3b6053e283745dd179c9a1565e93dd03d83586..926add3c4c2ed047022820a4c62bde956d0ba0a1 100644 (file)
--- a/bjm.c
+++ b/bjm.c
@@ -44,8 +44,8 @@ SYS_FUNC(delete_module)
 
 SYS_FUNC(init_module)
 {
-       printaddr(getarg_klu(tcp, 0));
-       tprintf(", %" PRI_klu ", ", getarg_klu(tcp, 1));
+       printaddr(tcp->u_arg[0]);
+       tprintf(", %" PRI_klu ", ", tcp->u_arg[1]);
        printstr(tcp, tcp->u_arg[2]);
 
        return RVAL_DECODED;
diff --git a/clone.c b/clone.c
index fdebf59471bfde0474194b4d181f64d35a67fbeb..b5221f9da6b3f8dd3130e73e7a123de3ad280632 100644 (file)
--- a/clone.c
+++ b/clone.c
@@ -154,7 +154,7 @@ SYS_FUNC(setns)
 
 SYS_FUNC(unshare)
 {
-       printflags64(unshare_flags, getarg_klu(tcp, 0), "CLONE_???");
+       printflags64(unshare_flags, tcp->u_arg[0], "CLONE_???");
        return RVAL_DECODED;
 }
 
diff --git a/defs.h b/defs.h
index c161de9b4e30a3b27ff646091d3912bfa41c6b7d..71c1d7a10e0252807a9939580804b8ddb8637508 100644 (file)
--- a/defs.h
+++ b/defs.h
@@ -587,7 +587,6 @@ extern int printxval_searchn(const struct xlat *xlat, size_t xlat_size,
        uint64_t val, const char *dflt);
 #define printxval_search(xlat__, val__, dflt__) \
        printxval_searchn(xlat__, ARRAY_SIZE(xlat__), val__, dflt__)
-extern kernel_ulong_t getarg_klu(struct tcb *tcp, int argn);
 extern int printargs(struct tcb *);
 extern int printargs_u(struct tcb *);
 extern int printargs_d(struct tcb *);
index 909da5def99f577180180af9d629b6a490e2b676..f0d057b70a5627961ad00684a076f1b15bb160a0 100644 (file)
--- a/fadvise.c
+++ b/fadvise.c
@@ -42,7 +42,7 @@ SYS_FUNC(fadvise64)
 
        printfd(tcp, tcp->u_arg[0]);
        argn = printllval(tcp, ", %lld", 1);
-       tprintf(", %" PRI_klu ", ", getarg_klu(tcp, argn++));
+       tprintf(", %" PRI_klu ", ", tcp->u_arg[argn++]);
        printxval(advise, tcp->u_arg[argn], "POSIX_FADV_???");
 
        return RVAL_DECODED;
diff --git a/kcmp.c b/kcmp.c
index 8b5bd708be449567f5078fca97f0bbe657507644..97795e639fb9e42183ff387c4cfde963bfcef68b 100644 (file)
--- a/kcmp.c
+++ b/kcmp.c
@@ -33,8 +33,8 @@ SYS_FUNC(kcmp)
        pid_t pid1 = tcp->u_arg[0];
        pid_t pid2 = tcp->u_arg[1];
        int type = tcp->u_arg[2];
-       kernel_ulong_t idx1 = getarg_klu(tcp, 3);
-       kernel_ulong_t idx2 = getarg_klu(tcp, 4);
+       kernel_ulong_t idx1 = tcp->u_arg[3];
+       kernel_ulong_t idx2 = tcp->u_arg[4];
 
        tprintf("%d, %d, ", pid1, pid2);
        printxval(kcmp_types, type, "KCMP_???");
diff --git a/kexec.c b/kexec.c
index 0917e24f73ee16151ef67ab49b082f440b7f1cd7..44d5bd185d3adb43e40bd95d7f47f8dab27ae2d3 100644 (file)
--- a/kexec.c
+++ b/kexec.c
@@ -111,12 +111,12 @@ SYS_FUNC(kexec_file_load)
        printfd(tcp, tcp->u_arg[1]);
        tprints(", ");
        /* cmdline_len */
-       tprintf("%" PRI_klu ", ", getarg_klu(tcp, 2));
+       tprintf("%" PRI_klu ", ", tcp->u_arg[2]);
        /* cmdline */
        printstrn(tcp, tcp->u_arg[3], tcp->u_arg[2]);
        tprints(", ");
        /* flags */
-       printflags64(kexec_file_load_flags, getarg_klu(tcp, 4), "KEXEC_FILE_???");
+       printflags64(kexec_file_load_flags, tcp->u_arg[4], "KEXEC_FILE_???");
 
        return RVAL_DECODED;
 }
index f959ac524dc6e52a21f4ab22c602be1c6dfa5832..c270221ffa24f2fae02ecfe4c1641a770d81ecf1 100644 (file)
--- a/keyctl.c
+++ b/keyctl.c
@@ -268,10 +268,10 @@ keyctl_dh_compute(struct tcb *tcp, kernel_ulong_t params, kernel_ulong_t buf,
 SYS_FUNC(keyctl)
 {
        int cmd = tcp->u_arg[0];
-       kernel_ulong_t arg2 = getarg_klu(tcp, 1);
-       kernel_ulong_t arg3 = getarg_klu(tcp, 2);
-       kernel_ulong_t arg4 = getarg_klu(tcp, 3);
-       kernel_ulong_t arg5 = getarg_klu(tcp, 4);
+       kernel_ulong_t arg2 = tcp->u_arg[1];
+       kernel_ulong_t arg3 = tcp->u_arg[2];
+       kernel_ulong_t arg4 = tcp->u_arg[3];
+       kernel_ulong_t arg5 = tcp->u_arg[4];
 
        if (entering(tcp)) {
                printxval(keyctl_commands, cmd, "KEYCTL_???");
index 079a05818aa1b9c0dbe9f0db8ff9e8e4084dc9a4..279694f17eb7dffc12c6476c8c31f8a51189b8b3 100644 (file)
@@ -43,7 +43,7 @@ SYS_FUNC(lookup_dcookie)
                printstrn(tcp, tcp->u_arg[argn], tcp->u_rval);
 
        /* len */
-       tprintf(", %" PRI_klu, getarg_klu(tcp, argn + 1));
+       tprintf(", %" PRI_klu, tcp->u_arg[argn + 1]);
 
        return 0;
 }
diff --git a/mem.c b/mem.c
index 0a4d3b94762c4024d8ee768be3cbe8d17a5aa7fa..350475da7ef51f58cdec78373de5e75e767802dc 100644 (file)
--- a/mem.c
+++ b/mem.c
@@ -185,9 +185,9 @@ SYS_FUNC(munmap)
 static int
 do_mprotect(struct tcb *tcp, bool has_pkey)
 {
-       printaddr(getarg_klu(tcp, 0));
-       tprintf(", %" PRI_klu ", ", getarg_klu(tcp, 1));
-       printflags64(mmap_prot, getarg_klu(tcp, 2), "PROT_???");
+       printaddr(tcp->u_arg[0]);
+       tprintf(", %" PRI_klu ", ", tcp->u_arg[1]);
+       printflags64(mmap_prot, tcp->u_arg[2], "PROT_???");
 
        if (has_pkey)
                tprintf(", %d", (int) tcp->u_arg[3]);
diff --git a/mq.c b/mq.c
index 26bf6296c0f23d08ef796e163a51bdfdf4792313..5b46d478241dd5d213364a18d391ecfb3617bcaa 100644 (file)
--- a/mq.c
+++ b/mq.c
@@ -49,7 +49,7 @@ SYS_FUNC(mq_timedsend)
 {
        tprintf("%d, ", (int) tcp->u_arg[0]);
        printstrn(tcp, tcp->u_arg[1], tcp->u_arg[2]);
-       tprintf(", %" PRI_klu ", %u, ", getarg_klu(tcp, 2),
+       tprintf(", %" PRI_klu ", %u, ", tcp->u_arg[2],
                (unsigned int) tcp->u_arg[3]);
        print_timespec(tcp, tcp->u_arg[4]);
        return RVAL_DECODED;
@@ -64,7 +64,7 @@ SYS_FUNC(mq_timedreceive)
                        printaddr(tcp->u_arg[1]);
                else
                        printstrn(tcp, tcp->u_arg[1], tcp->u_rval);
-               tprintf(", %" PRI_klu ", ", getarg_klu(tcp, 2));
+               tprintf(", %" PRI_klu ", ", tcp->u_arg[2]);
                printnum_int(tcp, tcp->u_arg[3], "%u");
                tprintf(", ");
                /*
diff --git a/pkeys.c b/pkeys.c
index 91be9158e46b87907237f9c1ee4fdb3c67727657..f5338ab85792095589940d69549e4f097c2254ec 100644 (file)
--- a/pkeys.c
+++ b/pkeys.c
@@ -4,8 +4,8 @@
 
 SYS_FUNC(pkey_alloc)
 {
-       tprintf("%#" PRI_klx ", ", getarg_klu(tcp, 0));
-       printflags64(pkey_access, getarg_klu(tcp, 1), "PKEY_???");
+       tprintf("%#" PRI_klx ", ", tcp->u_arg[0]);
+       printflags64(pkey_access, tcp->u_arg[1], "PKEY_???");
 
        return RVAL_DECODED;
 }
diff --git a/prctl.c b/prctl.c
index 79c9916509adc31cfb11e1efbea5da7b7012e4de..dede4c9dc32f5ef2b984dda5273b9adb19f85b14 100644 (file)
--- a/prctl.c
+++ b/prctl.c
@@ -70,21 +70,21 @@ print_prctl_args(struct tcb *tcp, const unsigned int first)
        unsigned int i;
 
        for (i = first; i < tcp->s_ent->nargs; ++i)
-               tprintf(", %#" PRI_klx, getarg_klu(tcp, i));
+               tprintf(", %#" PRI_klx, tcp->u_arg[i]);
 }
 
 SYS_FUNC(prctl)
 {
        const unsigned int option = tcp->u_arg[0];
-       const kernel_ulong_t arg2 = getarg_klu(tcp, 1);
-       const kernel_ulong_t arg3 = getarg_klu(tcp, 2);
+       const kernel_ulong_t arg2 = tcp->u_arg[1];
+       const kernel_ulong_t arg3 = tcp->u_arg[2];
        /*
         * PR_SET_VMA is the only command which actually uses these arguments
         * currently, and it is available only on Android for now.
         */
 #ifdef __ANDROID__
-       const kernel_ulong_t arg4 = getarg_klu(tcp, 3);
-       const kernel_ulong_t arg5 = getarg_klu(tcp, 4);
+       const kernel_ulong_t arg4 = tcp->u_arg[3];
+       const kernel_ulong_t arg5 = tcp->u_arg[4];
 #endif
        unsigned int i;
 
@@ -356,7 +356,7 @@ SYS_FUNC(prctl)
 SYS_FUNC(arch_prctl)
 {
        const unsigned int option = tcp->u_arg[0];
-       const kernel_ulong_t addr = getarg_klu(tcp, 1);
+       const kernel_ulong_t addr = tcp->u_arg[1];
 
        if (entering(tcp))
                printxval(archvals, option, "ARCH_???");
diff --git a/util.c b/util.c
index 099bd38833bd08bf71f997ed4d30ab5e31ec1af5..49a5c4b7ad3d4d1034fb85d053d4db8a142e931b 100644 (file)
--- a/util.c
+++ b/util.c
@@ -1493,30 +1493,13 @@ print_array(struct tcb *const tcp,
        return cur >= end_addr;
 }
 
-kernel_ulong_t
-getarg_klu(struct tcb *tcp, int argn)
-{
-#if HAVE_STRUCT_TCB_EXT_ARG
-# ifndef current_klongsize
-       if (current_klongsize < sizeof(*tcp->ext_arg)) {
-               return tcp->u_arg[argn];
-       } else
-# endif /* !current_klongsize */
-       {
-               return tcp->ext_arg[argn];
-       }
-#else
-       return tcp->u_arg[argn];
-#endif
-}
-
 int
 printargs(struct tcb *tcp)
 {
        const int n = tcp->s_ent->nargs;
        int i;
        for (i = 0; i < n; ++i)
-               tprintf("%s%#" PRI_klx, i ? ", " : "", getarg_klu(tcp, i));
+               tprintf("%s%#" PRI_klx, i ? ", " : "", tcp->u_arg[i]);
        return RVAL_DECODED;
 }