strace/utimes.c
Dmitry V. Levin b5a23ed381 Mpersify parsers of utimes, futimesat, and utimensat syscalls
Fix multiple personalities support in parsers of utimes, futimesat,
and utimensat syscalls by introducing two mpersified printers:
print_timeval_pair and print_timespec_utime_pair.

* print_time.c: New file.
* Makefile.am (strace_SOURCES): Add it.
* utimes.c (decode_utimes): Remove.
(sys_utimes, sys_futimesat): Use print_timeval_pair instead
of decode_utimes.
(sys_utimensat): Use print_timespec_utime_pair instead of decode_utimes.
2015-08-28 08:46:23 +00:00

44 lines
807 B
C

#include "defs.h"
SYS_FUNC(utimes)
{
printpath(tcp, tcp->u_arg[0]);
tprints(", ");
MPERS_PRINTER_NAME(print_timeval_pair)(tcp, tcp->u_arg[1]);
return RVAL_DECODED;
}
SYS_FUNC(futimesat)
{
print_dirfd(tcp, tcp->u_arg[0]);
printpath(tcp, tcp->u_arg[1]);
tprints(", ");
MPERS_PRINTER_NAME(print_timeval_pair)(tcp, tcp->u_arg[2]);
return RVAL_DECODED;
}
SYS_FUNC(utimensat)
{
print_dirfd(tcp, tcp->u_arg[0]);
printpath(tcp, tcp->u_arg[1]);
tprints(", ");
MPERS_PRINTER_NAME(print_timespec_utime_pair)(tcp, tcp->u_arg[2]);
tprints(", ");
printflags(at_flags, tcp->u_arg[3], "AT_???");
return RVAL_DECODED;
}
#ifdef ALPHA
SYS_FUNC(osf_utimes)
{
printpath(tcp, tcp->u_arg[0]);
tprints(", ");
printtv_bitness(tcp, tcp->u_arg[1], BITNESS_32, 0);
return RVAL_DECODED;
}
#endif /* ALPHA */