3 #include DEF_MPERS_TYPE(time_t)
4 #include DEF_MPERS_TYPE(timespec_t)
5 #include DEF_MPERS_TYPE(timeval_t)
7 typedef struct timespec timespec_t;
8 typedef struct timeval timeval_t;
13 # define UTIME_NOW ((1l << 30) - 1l)
16 # define UTIME_OMIT ((1l << 30) - 2l)
19 static const char time_fmt[] = "{%jd, %jd}";
22 print_timespec_t(const timespec_t *t)
24 tprintf(time_fmt, (intmax_t) t->tv_sec, (intmax_t) t->tv_nsec);
28 print_timespec_t_utime(const timespec_t *t)
35 tprints("UTIME_OMIT");
44 print_timeval_t(const timeval_t *t)
46 tprintf(time_fmt, (intmax_t) t->tv_sec, (intmax_t) t->tv_usec);
49 MPERS_PRINTER_DECL(void, print_timespec)(struct tcb *tcp, const long addr)
53 if (umove_or_printaddr(tcp, addr, &t))
59 MPERS_PRINTER_DECL(void, print_timespec_utime_pair)(struct tcb *tcp, const long addr)
63 if (umove_or_printaddr(tcp, addr, &t))
67 print_timespec_t_utime(&t[0]);
69 print_timespec_t_utime(&t[1]);
73 MPERS_PRINTER_DECL(void, print_itimerspec)(struct tcb *tcp, const long addr)
77 if (umove_or_printaddr(tcp, addr, &t))
80 tprints("{it_interval=");
81 print_timespec_t(&t[0]);
82 tprints(", it_value=");
83 print_timespec_t(&t[1]);
87 MPERS_PRINTER_DECL(void, print_timeval)(struct tcb *tcp, const long addr)
91 if (umove_or_printaddr(tcp, addr, &t))
97 MPERS_PRINTER_DECL(void, print_timeval_pair)(struct tcb *tcp, const long addr)
101 if (umove_or_printaddr(tcp, addr, &t))
105 print_timeval_t(&t[0]);
107 print_timeval_t(&t[1]);
111 MPERS_PRINTER_DECL(void, print_itimerval)(struct tcb *tcp, const long addr)
115 if (umove_or_printaddr(tcp, addr, &t))
118 tprints("{it_interval=");
119 print_timeval_t(&t[0]);
120 tprints(", it_value=");
121 print_timeval_t(&t[1]);
130 if (!umove_or_printaddr(tcp, tcp->u_arg[0], &t))
131 tprintf("[%jd]", (intmax_t) t);
144 print_timeval32_t(const timeval32_t *t)
146 tprintf(time_fmt, (intmax_t) t->tv_sec, (intmax_t) t->tv_usec);
150 print_timeval32(struct tcb *tcp, const long addr)
154 if (umove_or_printaddr(tcp, addr, &t))
157 print_timeval32_t(&t);
161 print_timeval32_pair(struct tcb *tcp, const long addr)
165 if (umove_or_printaddr(tcp, addr, &t))
169 print_timeval32_t(&t[0]);
171 print_timeval32_t(&t[1]);
176 print_itimerval32(struct tcb *tcp, const long addr)
180 if (umove_or_printaddr(tcp, addr, &t))
183 tprints("{it_interval=");
184 print_timeval32_t(&t[0]);
185 tprints(", it_value=");
186 print_timeval32_t(&t[1]);