# define LONG_LONG(a,b) \
((long long)((unsigned long long)(unsigned)(b) | ((unsigned long long)(a)<<32)))
#endif
-extern int printllval(struct tcb *, const char *, int, bool);
-#define printllval_aligned(tcp, fmt, arg) \
- printllval((tcp), (fmt), (arg), true)
-#define printllval_unaligned(tcp, fmt, arg) \
- printllval((tcp), (fmt), (arg), false)
+extern int printllval(struct tcb *, const char *, int);
extern void printxval(const struct xlat *, int, const char *);
extern int printargs(struct tcb *);
if (entering(tcp)) {
int argn;
printfd(tcp, tcp->u_arg[0]);
- argn = printllval_aligned(tcp, ", %lld", 1);
+ argn = printllval(tcp, ", %lld", 1);
tprintf(", %ld", tcp->u_arg[argn]);
}
return 0;
{
if (entering(tcp)) {
printpath(tcp, tcp->u_arg[0]);
- printllval_aligned(tcp, ", %llu", 1);
+ printllval(tcp, ", %llu", 1);
}
return 0;
}
{
if (entering(tcp)) {
printfd(tcp, tcp->u_arg[0]);
- printllval_aligned(tcp, ", %llu", 1);
+ printllval(tcp, ", %llu", 1);
}
return 0;
}
if (entering(tcp)) {
int argn;
printfd(tcp, tcp->u_arg[0]);
- argn = printllval_aligned(tcp, ", %lld", 1);
+ argn = printllval(tcp, ", %lld", 1);
tprintf(", %ld, ", tcp->u_arg[argn++]);
printxval(advise, tcp->u_arg[argn], "POSIX_FADV_???");
}
if (entering(tcp)) {
int argn;
printfd(tcp, tcp->u_arg[0]);
- argn = printllval_aligned(tcp, ", %lld, ", 1);
- argn = printllval_aligned(tcp, "%lld, ", argn);
+ argn = printllval(tcp, ", %lld, ", 1);
+ argn = printllval(tcp, "%lld, ", argn);
#if defined __ARM_EABI__ || defined AARCH64 || defined POWERPC || defined XTENSA
printxval(advise, tcp->u_arg[1], "POSIX_FADV_???");
#else
if (entering(tcp)) {
int argn;
printfd(tcp, tcp->u_arg[0]);
- argn = printllval_aligned(tcp, ", %lld, ", 1);
- argn = printllval_aligned(tcp, "%lld, ", argn);
+ argn = printllval(tcp, ", %lld, ", 1);
+ argn = printllval(tcp, "%lld, ", argn);
printflags(sync_file_range_flags, tcp->u_arg[argn],
"SYNC_FILE_RANGE_???");
}
printfd(tcp, tcp->u_arg[0]);
printflags(sync_file_range_flags, 1,
"SYNC_FILE_RANGE_???");
- argn = printllval_aligned(tcp, ", %lld, ", 2);
- argn = printllval_aligned(tcp, "%lld, ", argn);
+ argn = printllval(tcp, ", %lld, ", 2);
+ argn = printllval(tcp, "%lld, ", argn);
}
return 0;
}
int argn;
printfd(tcp, tcp->u_arg[0]); /* fd */
tprintf(", %#lo, ", tcp->u_arg[1]); /* mode */
- argn = printllval_aligned(tcp, "%llu, ", 2); /* offset */
- printllval_aligned(tcp, "%llu", argn); /* len */
+ argn = printllval(tcp, "%llu, ", 2); /* offset */
+ printllval(tcp, "%llu", argn); /* len */
}
return 0;
}
else
printstr(tcp, tcp->u_arg[1], tcp->u_rval);
tprintf(", %lu, ", tcp->u_arg[2]);
- printllval_aligned(tcp, "%llu", PREAD_OFFSET_ARG);
+ printllval(tcp, "%llu", PREAD_OFFSET_ARG);
}
return 0;
}
tprints(", ");
printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
tprintf(", %lu, ", tcp->u_arg[2]);
- printllval_aligned(tcp, "%llu", PREAD_OFFSET_ARG);
+ printllval(tcp, "%llu", PREAD_OFFSET_ARG);
}
return 0;
}
#if HAVE_SYS_UIO_H
+
+static void
+print_llu_from_low_high_val(struct tcb *tcp, int arg)
+{
+#if SIZEOF_LONG == SIZEOF_LONG_LONG
+ tprintf("%llu", (unsigned long long) tcp->u_arg[arg]);
+#elif defined(LINUX_MIPSN32)
+ tprintf("%llu", (unsigned long long) tcp->ext_arg[arg]);
+#else
+# ifdef X32
+ if (current_personality == 0)
+ tprintf("%llu", (unsigned long long) tcp->ext_arg[arg]);
+ else
+# endif
+ tprintf("%llu",
+ ((unsigned long long) tcp->u_arg[arg + 1] << (sizeof(long) * 8))
+ | (unsigned long long) tcp->u_arg[arg]);
+#endif
+}
+
int
sys_preadv(struct tcb *tcp)
{
}
tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1], 1);
tprintf(", %lu, ", tcp->u_arg[2]);
- printllval_unaligned(tcp, "%llu", 3);
+ print_llu_from_low_high_val(tcp, 3);
}
return 0;
}
tprints(", ");
tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1], 1);
tprintf(", %lu, ", tcp->u_arg[2]);
- printllval_unaligned(tcp, "%llu", 3);
+ print_llu_from_low_high_val(tcp, 3);
}
return 0;
}
* argument.
*/
int
-printllval(struct tcb *tcp, const char *format, int arg_no, bool align)
+printllval(struct tcb *tcp, const char *format, int arg_no)
{
#if SIZEOF_LONG > 4 && SIZEOF_LONG == SIZEOF_LONG_LONG
# if SUPPORTED_PERSONALITIES > 1
# if SUPPORTED_PERSONALITIES > 1
} else {
# if defined(AARCH64) || defined(POWERPC64)
- if (align) {
- /* Align arg_no to the next even number. */
- arg_no = (arg_no + 1) & 0xe;
- }
+ /* Align arg_no to the next even number. */
+ arg_no = (arg_no + 1) & 0xe;
# endif
tprintf(format, LONG_LONG(tcp->u_arg[arg_no], tcp->u_arg[arg_no + 1]));
arg_no += 2;
defined LINUX_MIPSO32 || \
defined POWERPC || \
defined XTENSA
- if (align) {
- /* Align arg_no to the next even number. */
- arg_no = (arg_no + 1) & 0xe;
- }
+ /* Align arg_no to the next even number. */
+ arg_no = (arg_no + 1) & 0xe;
# endif
tprintf(format, LONG_LONG(tcp->u_arg[arg_no], tcp->u_arg[arg_no + 1]));
arg_no += 2;