Skip to content

Commit 50b50e7

Browse files
committedDec 26, 2016
Remove getarg_klu
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.
1 parent 8aab60e commit 50b50e7

13 files changed

+27
-45
lines changed
 

‎bjm.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ SYS_FUNC(delete_module)
4444

4545
SYS_FUNC(init_module)
4646
{
47-
printaddr(getarg_klu(tcp, 0));
48-
tprintf(", %" PRI_klu ", ", getarg_klu(tcp, 1));
47+
printaddr(tcp->u_arg[0]);
48+
tprintf(", %" PRI_klu ", ", tcp->u_arg[1]);
4949
printstr(tcp, tcp->u_arg[2]);
5050

5151
return RVAL_DECODED;

‎clone.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ SYS_FUNC(setns)
154154

155155
SYS_FUNC(unshare)
156156
{
157-
printflags64(unshare_flags, getarg_klu(tcp, 0), "CLONE_???");
157+
printflags64(unshare_flags, tcp->u_arg[0], "CLONE_???");
158158
return RVAL_DECODED;
159159
}
160160

‎defs.h

-1
Original file line numberDiff line numberDiff line change
@@ -587,7 +587,6 @@ extern int printxval_searchn(const struct xlat *xlat, size_t xlat_size,
587587
uint64_t val, const char *dflt);
588588
#define printxval_search(xlat__, val__, dflt__) \
589589
printxval_searchn(xlat__, ARRAY_SIZE(xlat__), val__, dflt__)
590-
extern kernel_ulong_t getarg_klu(struct tcb *tcp, int argn);
591590
extern int printargs(struct tcb *);
592591
extern int printargs_u(struct tcb *);
593592
extern int printargs_d(struct tcb *);

‎fadvise.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ SYS_FUNC(fadvise64)
4242

4343
printfd(tcp, tcp->u_arg[0]);
4444
argn = printllval(tcp, ", %lld", 1);
45-
tprintf(", %" PRI_klu ", ", getarg_klu(tcp, argn++));
45+
tprintf(", %" PRI_klu ", ", tcp->u_arg[argn++]);
4646
printxval(advise, tcp->u_arg[argn], "POSIX_FADV_???");
4747

4848
return RVAL_DECODED;

‎kcmp.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ SYS_FUNC(kcmp)
3333
pid_t pid1 = tcp->u_arg[0];
3434
pid_t pid2 = tcp->u_arg[1];
3535
int type = tcp->u_arg[2];
36-
kernel_ulong_t idx1 = getarg_klu(tcp, 3);
37-
kernel_ulong_t idx2 = getarg_klu(tcp, 4);
36+
kernel_ulong_t idx1 = tcp->u_arg[3];
37+
kernel_ulong_t idx2 = tcp->u_arg[4];
3838

3939
tprintf("%d, %d, ", pid1, pid2);
4040
printxval(kcmp_types, type, "KCMP_???");

‎kexec.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -111,12 +111,12 @@ SYS_FUNC(kexec_file_load)
111111
printfd(tcp, tcp->u_arg[1]);
112112
tprints(", ");
113113
/* cmdline_len */
114-
tprintf("%" PRI_klu ", ", getarg_klu(tcp, 2));
114+
tprintf("%" PRI_klu ", ", tcp->u_arg[2]);
115115
/* cmdline */
116116
printstrn(tcp, tcp->u_arg[3], tcp->u_arg[2]);
117117
tprints(", ");
118118
/* flags */
119-
printflags64(kexec_file_load_flags, getarg_klu(tcp, 4), "KEXEC_FILE_???");
119+
printflags64(kexec_file_load_flags, tcp->u_arg[4], "KEXEC_FILE_???");
120120

121121
return RVAL_DECODED;
122122
}

‎keyctl.c

+4-4
Original file line numberDiff line numberDiff line change
@@ -268,10 +268,10 @@ keyctl_dh_compute(struct tcb *tcp, kernel_ulong_t params, kernel_ulong_t buf,
268268
SYS_FUNC(keyctl)
269269
{
270270
int cmd = tcp->u_arg[0];
271-
kernel_ulong_t arg2 = getarg_klu(tcp, 1);
272-
kernel_ulong_t arg3 = getarg_klu(tcp, 2);
273-
kernel_ulong_t arg4 = getarg_klu(tcp, 3);
274-
kernel_ulong_t arg5 = getarg_klu(tcp, 4);
271+
kernel_ulong_t arg2 = tcp->u_arg[1];
272+
kernel_ulong_t arg3 = tcp->u_arg[2];
273+
kernel_ulong_t arg4 = tcp->u_arg[3];
274+
kernel_ulong_t arg5 = tcp->u_arg[4];
275275

276276
if (entering(tcp)) {
277277
printxval(keyctl_commands, cmd, "KEYCTL_???");

‎lookup_dcookie.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ SYS_FUNC(lookup_dcookie)
4343
printstrn(tcp, tcp->u_arg[argn], tcp->u_rval);
4444

4545
/* len */
46-
tprintf(", %" PRI_klu, getarg_klu(tcp, argn + 1));
46+
tprintf(", %" PRI_klu, tcp->u_arg[argn + 1]);
4747

4848
return 0;
4949
}

‎mem.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,9 @@ SYS_FUNC(munmap)
185185
static int
186186
do_mprotect(struct tcb *tcp, bool has_pkey)
187187
{
188-
printaddr(getarg_klu(tcp, 0));
189-
tprintf(", %" PRI_klu ", ", getarg_klu(tcp, 1));
190-
printflags64(mmap_prot, getarg_klu(tcp, 2), "PROT_???");
188+
printaddr(tcp->u_arg[0]);
189+
tprintf(", %" PRI_klu ", ", tcp->u_arg[1]);
190+
printflags64(mmap_prot, tcp->u_arg[2], "PROT_???");
191191

192192
if (has_pkey)
193193
tprintf(", %d", (int) tcp->u_arg[3]);

‎mq.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ SYS_FUNC(mq_timedsend)
4949
{
5050
tprintf("%d, ", (int) tcp->u_arg[0]);
5151
printstrn(tcp, tcp->u_arg[1], tcp->u_arg[2]);
52-
tprintf(", %" PRI_klu ", %u, ", getarg_klu(tcp, 2),
52+
tprintf(", %" PRI_klu ", %u, ", tcp->u_arg[2],
5353
(unsigned int) tcp->u_arg[3]);
5454
print_timespec(tcp, tcp->u_arg[4]);
5555
return RVAL_DECODED;
@@ -64,7 +64,7 @@ SYS_FUNC(mq_timedreceive)
6464
printaddr(tcp->u_arg[1]);
6565
else
6666
printstrn(tcp, tcp->u_arg[1], tcp->u_rval);
67-
tprintf(", %" PRI_klu ", ", getarg_klu(tcp, 2));
67+
tprintf(", %" PRI_klu ", ", tcp->u_arg[2]);
6868
printnum_int(tcp, tcp->u_arg[3], "%u");
6969
tprintf(", ");
7070
/*

‎pkeys.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
SYS_FUNC(pkey_alloc)
66
{
7-
tprintf("%#" PRI_klx ", ", getarg_klu(tcp, 0));
8-
printflags64(pkey_access, getarg_klu(tcp, 1), "PKEY_???");
7+
tprintf("%#" PRI_klx ", ", tcp->u_arg[0]);
8+
printflags64(pkey_access, tcp->u_arg[1], "PKEY_???");
99

1010
return RVAL_DECODED;
1111
}

‎prctl.c

+6-6
Original file line numberDiff line numberDiff line change
@@ -70,21 +70,21 @@ print_prctl_args(struct tcb *tcp, const unsigned int first)
7070
unsigned int i;
7171

7272
for (i = first; i < tcp->s_ent->nargs; ++i)
73-
tprintf(", %#" PRI_klx, getarg_klu(tcp, i));
73+
tprintf(", %#" PRI_klx, tcp->u_arg[i]);
7474
}
7575

7676
SYS_FUNC(prctl)
7777
{
7878
const unsigned int option = tcp->u_arg[0];
79-
const kernel_ulong_t arg2 = getarg_klu(tcp, 1);
80-
const kernel_ulong_t arg3 = getarg_klu(tcp, 2);
79+
const kernel_ulong_t arg2 = tcp->u_arg[1];
80+
const kernel_ulong_t arg3 = tcp->u_arg[2];
8181
/*
8282
* PR_SET_VMA is the only command which actually uses these arguments
8383
* currently, and it is available only on Android for now.
8484
*/
8585
#ifdef __ANDROID__
86-
const kernel_ulong_t arg4 = getarg_klu(tcp, 3);
87-
const kernel_ulong_t arg5 = getarg_klu(tcp, 4);
86+
const kernel_ulong_t arg4 = tcp->u_arg[3];
87+
const kernel_ulong_t arg5 = tcp->u_arg[4];
8888
#endif
8989
unsigned int i;
9090

@@ -356,7 +356,7 @@ SYS_FUNC(prctl)
356356
SYS_FUNC(arch_prctl)
357357
{
358358
const unsigned int option = tcp->u_arg[0];
359-
const kernel_ulong_t addr = getarg_klu(tcp, 1);
359+
const kernel_ulong_t addr = tcp->u_arg[1];
360360

361361
if (entering(tcp))
362362
printxval(archvals, option, "ARCH_???");

‎util.c

+1-18
Original file line numberDiff line numberDiff line change
@@ -1493,30 +1493,13 @@ print_array(struct tcb *const tcp,
14931493
return cur >= end_addr;
14941494
}
14951495

1496-
kernel_ulong_t
1497-
getarg_klu(struct tcb *tcp, int argn)
1498-
{
1499-
#if HAVE_STRUCT_TCB_EXT_ARG
1500-
# ifndef current_klongsize
1501-
if (current_klongsize < sizeof(*tcp->ext_arg)) {
1502-
return tcp->u_arg[argn];
1503-
} else
1504-
# endif /* !current_klongsize */
1505-
{
1506-
return tcp->ext_arg[argn];
1507-
}
1508-
#else
1509-
return tcp->u_arg[argn];
1510-
#endif
1511-
}
1512-
15131496
int
15141497
printargs(struct tcb *tcp)
15151498
{
15161499
const int n = tcp->s_ent->nargs;
15171500
int i;
15181501
for (i = 0; i < n; ++i)
1519-
tprintf("%s%#" PRI_klx, i ? ", " : "", getarg_klu(tcp, i));
1502+
tprintf("%s%#" PRI_klx, i ? ", " : "", tcp->u_arg[i]);
15201503
return RVAL_DECODED;
15211504
}
15221505

0 commit comments

Comments
 (0)
Please sign in to comment.