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.
This commit is contained in:
parent
8aab60e8d3
commit
50b50e78f6
4
bjm.c
4
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;
|
||||
|
2
clone.c
2
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;
|
||||
}
|
||||
|
||||
|
1
defs.h
1
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 *);
|
||||
|
@ -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;
|
||||
|
4
kcmp.c
4
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_???");
|
||||
|
4
kexec.c
4
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;
|
||||
}
|
||||
|
8
keyctl.c
8
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_???");
|
||||
|
@ -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;
|
||||
}
|
||||
|
6
mem.c
6
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]);
|
||||
|
4
mq.c
4
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(", ");
|
||||
/*
|
||||
|
4
pkeys.c
4
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;
|
||||
}
|
||||
|
12
prctl.c
12
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_???");
|
||||
|
19
util.c
19
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;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user