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;
SYS_FUNC(unshare)
{
- printflags64(unshare_flags, getarg_klu(tcp, 0), "CLONE_???");
+ printflags64(unshare_flags, tcp->u_arg[0], "CLONE_???");
return RVAL_DECODED;
}
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 *);
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;
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_???");
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;
}
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_???");
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;
}
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]);
{
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;
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(", ");
/*
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;
}
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;
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_???");
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;
}