SYS_FUNC(init_module)
{
- printaddr_ull(getarg_ull(tcp, 0));
- tprintf(", %llu, ", getarg_ull(tcp, 1));
+ printaddr_klu(getarg_klu(tcp, 0));
+ tprintf(", %" PRI_klu ", ", getarg_klu(tcp, 1));
printstr(tcp, tcp->u_arg[2], -1);
return RVAL_DECODED;
SYS_FUNC(unshare)
{
- printflags64(unshare_flags, getarg_ull(tcp, 0), "CLONE_???");
+ printflags64(unshare_flags, getarg_klu(tcp, 0), "CLONE_???");
return RVAL_DECODED;
}
extern int printllval(struct tcb *, const char *, int)
ATTRIBUTE_FORMAT((printf, 2, 0));
-extern void printaddr_ull(unsigned long long);
+extern void printaddr_klu(kernel_ulong_t addr);
extern int printxvals(const uint64_t, const char *, const struct xlat *, ...)
ATTRIBUTE_SENTINEL;
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 unsigned long long getarg_ull(struct tcb *tcp, int argn);
+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 *);
static inline void
printaddr(unsigned long addr)
{
- printaddr_ull(addr);
+ printaddr_klu(addr);
}
static inline void
#define SYS_FUNC(syscall_name) int SYS_FUNC_NAME(sys_ ## syscall_name)(struct tcb *tcp)
+#if SIZEOF_KERNEL_LONG_T > SIZEOF_LONG
+# define PRI_kl "ll"
+#else
+# define PRI_kl "l"
+#endif
+
+#define PRI_kld PRI_kl"d"
+#define PRI_klu PRI_kl"u"
+#define PRI_klx PRI_kl"x"
+
/*
* The kernel used to define 64-bit types on 64-bit systems on a per-arch
* basis. Some architectures would use unsigned long and others would use
/* NB: kernel requires data[1] == NSIG / 8 */
print_sigset_addr_len(tcp, (unsigned long) data[0],
(unsigned long) data[1]);
- tprintf(", %llu}", (unsigned long long) data[1]);
+ tprintf(", %" PRI_klu "}", data[1]);
}
}
printfd(tcp, tcp->u_arg[0]);
argn = printllval(tcp, ", %lld", 1);
- tprintf(", %llu, ", getarg_ull(tcp, argn++));
+ tprintf(", %" PRI_klu ", ", getarg_klu(tcp, 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];
- unsigned long long idx1 = getarg_ull(tcp, 3);
- unsigned long long idx2 = getarg_ull(tcp, 4);
+ kernel_ulong_t idx1 = getarg_klu(tcp, 3);
+ kernel_ulong_t idx2 = getarg_klu(tcp, 4);
tprintf("%d, %d, ", pid1, pid2);
printxval(kcmp_types, type, "KCMP_???");
case KCMP_VM:
break;
default:
- tprintf(", %#llx, %#llx", idx1, idx2);
+ tprintf(", %#" PRI_klx ", %#" PRI_klx, idx1, idx2);
}
return RVAL_DECODED;
SYS_FUNC(keyctl)
{
int cmd = tcp->u_arg[0];
- unsigned long long arg2 = getarg_ull(tcp, 1);
- unsigned long long arg3 = getarg_ull(tcp, 2);
- unsigned long long arg4 = getarg_ull(tcp, 3);
- unsigned long long arg5 = getarg_ull(tcp, 4);
+ 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);
if (entering(tcp)) {
printxval(keyctl_commands, cmd, "KEYCTL_???");
return 0;
default:
- tprintf("%#llx, %#llx, %#llx, %#llx", arg2, arg3, arg4, arg5);
+ tprintf("%#" PRI_klx ", %#" PRI_klx
+ ", %#" PRI_klx ", %#" PRI_klx,
+ arg2, arg3, arg4, arg5);
break;
}
printstr(tcp, tcp->u_arg[argn], tcp->u_rval);
/* len */
- tprintf(", %llu", getarg_ull(tcp, argn + 1));
+ tprintf(", %" PRI_klu, getarg_klu(tcp, argn + 1));
return 0;
}
{
tprintf("%d, ", (int) tcp->u_arg[0]);
printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
- tprintf(", %llu, %u, ", getarg_ull(tcp, 2),
+ tprintf(", %" PRI_klu ", %u, ", getarg_klu(tcp, 2),
(unsigned int) tcp->u_arg[3]);
print_timespec(tcp, tcp->u_arg[4]);
return RVAL_DECODED;
printstr(tcp, tcp->u_arg[1], tcp->u_rval);
else
printaddr(tcp->u_arg[1]);
- tprintf(", %llu, ", getarg_ull(tcp, 2));
+ tprintf(", %" PRI_klu ", ", getarg_klu(tcp, 2));
printnum_int(tcp, tcp->u_arg[3], "%u");
tprintf(", ");
/*
SYS_FUNC(pkey_alloc)
{
- tprintf("%#llx, ", getarg_ull(tcp, 0));
- printflags64(pkey_access, getarg_ull(tcp, 1), "PKEY_???");
+ tprintf("%#" PRI_klx ", ", getarg_klu(tcp, 0));
+ printflags64(pkey_access, getarg_klu(tcp, 1), "PKEY_???");
return RVAL_DECODED;
}
unsigned int i;
for (i = first; i < tcp->s_ent->nargs; ++i)
- tprintf(", %#llx", getarg_ull(tcp, i));
+ tprintf(", %#" PRI_klx, getarg_klu(tcp, i));
}
SYS_FUNC(prctl)
{
const unsigned int option = tcp->u_arg[0];
- const unsigned long long arg2 = getarg_ull(tcp, 1);
- const unsigned long long arg3 = getarg_ull(tcp, 2);
+ const kernel_ulong_t arg2 = getarg_klu(tcp, 1);
+ const kernel_ulong_t arg3 = getarg_klu(tcp, 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 unsigned long long arg4 = getarg_ull(tcp, 3);
- const unsigned long long arg5 = getarg_ull(tcp, 4);
+ const kernel_ulong_t arg4 = getarg_klu(tcp, 3);
+ const kernel_ulong_t arg5 = getarg_klu(tcp, 4);
#endif
unsigned int i;
case PR_SET_FPEXC:
case PR_SET_KEEPCAPS:
case PR_SET_TIMING:
- tprintf(", %llu", arg2);
+ tprintf(", %" PRI_klu, arg2);
return RVAL_DECODED;
case PR_SET_DUMPABLE:
printxval64(pr_mce_kill_policy, arg3,
"PR_MCE_KILL_???");
else
- tprintf("%#llx", arg3);
+ tprintf("%#" PRI_klx, arg3);
print_prctl_args(tcp, 3);
return RVAL_DECODED;
# endif
case PR_SET_VMA:
if (arg2 == PR_SET_VMA_ANON_NAME) {
- tprintf(", PR_SET_VMA_ANON_NAME, %#llx", arg3);
- tprintf(", %llu, ", arg4);
+ tprintf(", PR_SET_VMA_ANON_NAME, %#" PRI_klx, arg3);
+ tprintf(", %" PRI_klu ", ", arg4);
printstr(tcp, arg5, -1);
} else {
/* There are no other sub-options now, but there
case PR_SET_PDEATHSIG:
tprints(", ");
if (arg2 > 128)
- tprintf("%llu", arg2);
+ tprintf("%" PRI_klu, arg2);
else
tprints(signame(arg2));
return RVAL_DECODED;
if ((int) arg2 == -1)
tprints("PR_SET_PTRACER_ANY");
else
- tprintf("%llu", arg2);
+ tprintf("%" PRI_klu, arg2);
return RVAL_DECODED;
case PR_SET_SECCOMP:
return RVAL_DECODED;
case PR_SET_TIMERSLACK:
- tprintf(", %lld", arg2);
+ tprintf(", %" PRI_kld, arg2);
return RVAL_DECODED;
case PR_SET_TSC:
case PR_SET_NO_NEW_PRIVS:
case PR_SET_THP_DISABLE:
- tprintf(", %llu", arg2);
+ tprintf(", %" PRI_klu, arg2);
print_prctl_args(tcp, 2);
return RVAL_DECODED;
SYS_FUNC(arch_prctl)
{
const unsigned int option = tcp->u_arg[0];
- const unsigned long long addr = getarg_ull(tcp, 1);
+ const kernel_ulong_t addr = getarg_klu(tcp, 1);
if (entering(tcp))
printxval(archvals, option, "ARCH_???");
return 0;
}
- tprintf(", %#llx", addr);
+ tprintf(", %#" PRI_klx, addr);
return RVAL_DECODED;
}
#endif /* X86_64 || X32 */
}
void
-printaddr_ull(const unsigned long long addr)
+printaddr_klu(const kernel_ulong_t addr)
{
if (!addr)
tprints("NULL");
else
- tprintf("%#llx", addr);
+ tprintf("%#" PRI_klx, addr);
}
#define DEF_PRINTNUM(name, type) \
return cur >= end_addr;
}
-unsigned long long
-getarg_ull(struct tcb *tcp, int argn)
+kernel_ulong_t
+getarg_klu(struct tcb *tcp, int argn)
{
#if HAVE_STRUCT_TCB_EXT_ARG
# if SUPPORTED_PERSONALITIES > 1
const int n = tcp->s_ent->nargs;
int i;
for (i = 0; i < n; ++i)
- tprintf("%s%#llx", i ? ", " : "", getarg_ull(tcp, i));
+ tprintf("%s%#" PRI_klx, i ? ", " : "", getarg_klu(tcp, i));
return RVAL_DECODED;
}