]> granicus.if.org Git - strace/blob - utimes.c
io.c: use printaddr and umove_or_printaddr
[strace] / utimes.c
1 #include "defs.h"
2
3 static void
4 decode_utimes(struct tcb *tcp, int offset, int special)
5 {
6         printpath(tcp, tcp->u_arg[offset]);
7         tprints(", ");
8         if (tcp->u_arg[offset + 1] == 0)
9                 tprints("NULL");
10         else {
11                 tprints("[");
12                 printtv_bitness(tcp, tcp->u_arg[offset + 1],
13                                 BITNESS_CURRENT, special);
14                 tprints(", ");
15                 printtv_bitness(tcp, tcp->u_arg[offset + 1]
16                                 + sizeof(struct timeval),
17                                 BITNESS_CURRENT, special);
18                 tprints("]");
19         }
20 }
21
22 SYS_FUNC(utimes)
23 {
24         decode_utimes(tcp, 0, 0);
25
26         return RVAL_DECODED;
27 }
28
29 SYS_FUNC(futimesat)
30 {
31         print_dirfd(tcp, tcp->u_arg[0]);
32         decode_utimes(tcp, 1, 0);
33
34         return RVAL_DECODED;
35 }
36
37 SYS_FUNC(utimensat)
38 {
39         print_dirfd(tcp, tcp->u_arg[0]);
40         decode_utimes(tcp, 1, 1);
41         tprints(", ");
42         printflags(at_flags, tcp->u_arg[3], "AT_???");
43
44         return RVAL_DECODED;
45 }
46
47 #ifdef ALPHA
48 SYS_FUNC(osf_utimes)
49 {
50         printpath(tcp, tcp->u_arg[0]);
51         tprints(", ");
52         printtv_bitness(tcp, tcp->u_arg[1], BITNESS_32,  0);
53
54         return RVAL_DECODED;
55 }
56 #endif /* ALPHA */