]> granicus.if.org Git - strace/blob - utime.c
net: move fallback definitions of SOL_* constants to xlat/
[strace] / utime.c
1 #include "defs.h"
2
3 SYS_FUNC(utime)
4 {
5         union {
6                 long utl[2];
7                 int uti[2];
8                 long paranoia_for_huge_wordsize[4];
9         } u;
10         unsigned wordsize;
11
12         if (entering(tcp)) {
13                 printpath(tcp, tcp->u_arg[0]);
14                 tprints(", ");
15
16                 wordsize = current_wordsize;
17                 if (!tcp->u_arg[1])
18                         tprints("NULL");
19                 else if (!verbose(tcp))
20                         tprintf("%#lx", tcp->u_arg[1]);
21                 else if (umoven(tcp, tcp->u_arg[1], 2 * wordsize, &u) < 0)
22                         tprints("[?, ?]");
23                 else if (wordsize == sizeof u.utl[0]) {
24                         tprintf("[%s,", sprinttime(u.utl[0]));
25                         tprintf(" %s]", sprinttime(u.utl[1]));
26                 }
27                 else if (wordsize == sizeof u.uti[0]) {
28                         tprintf("[%s,", sprinttime(u.uti[0]));
29                         tprintf(" %s]", sprinttime(u.uti[1]));
30                 }
31                 else
32                         tprintf("<decode error: unsupported wordsize %d>",
33                                 wordsize);
34         }
35         return 0;
36 }