From 7491519823ce5cf565e41022f0d5bfb88a008e1b Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Mon, 28 Nov 2016 04:21:11 +0000 Subject: [PATCH] alpha: print struct timeval32 consistently * defs.h [ALPHA] (timeval32_t): New type. [ALPHA] (print_timeval32_t): New prototype. * print_timeval.c [ALPHA] (timeval32_t): Remove. [ALPHA] (print_timeval32_t): Remove static keyword. * printrusage.c [ALPHA] (printrusage32): Use timeval32_t instead of local definition of struct timeval32. Use print_timeval32_t. --- defs.h | 20 +++++++++++++------- print_timeval.c | 6 +----- printrusage.c | 50 ++++++++++++++++++++++++------------------------- 3 files changed, 39 insertions(+), 37 deletions(-) diff --git a/defs.h b/defs.h index bf465780..3e0c0745 100644 --- a/defs.h +++ b/defs.h @@ -633,13 +633,6 @@ extern bool print_sockaddr_by_inode(const unsigned long, const enum sock_proto); extern bool print_sockaddr_by_inode_cached(const unsigned long); extern void print_dirfd(struct tcb *, int); extern int decode_sockaddr(struct tcb *, long, int); -#ifdef ALPHA -extern void printrusage32(struct tcb *, long); -extern const char *sprint_timeval32(struct tcb *tcp, long); -extern void print_timeval32(struct tcb *tcp, long); -extern void print_timeval32_pair(struct tcb *tcp, long); -extern void print_itimerval32(struct tcb *tcp, long); -#endif extern void printuid(const char *, const unsigned int); extern void print_sigset_addr_len(struct tcb *, long, long); extern const char *sprintsigmask_n(const char *, const void *, unsigned int); @@ -734,6 +727,19 @@ printxval_long(const struct xlat *x, const unsigned long val, const char *dflt) printxvals(val, dflt, x, NULL); } +#ifdef ALPHA +typedef struct { + int tv_sec, tv_usec; +} timeval32_t; + +extern void print_timeval32_t(const timeval32_t *); +extern void printrusage32(struct tcb *, long); +extern const char *sprint_timeval32(struct tcb *tcp, long); +extern void print_timeval32(struct tcb *tcp, long); +extern void print_timeval32_pair(struct tcb *tcp, long); +extern void print_itimerval32(struct tcb *tcp, long); +#endif + /* Strace log generation machinery. * * printing_tcp: tcb which has incomplete line being printed right now. diff --git a/print_timeval.c b/print_timeval.c index 6bb3e697..77220621 100644 --- a/print_timeval.c +++ b/print_timeval.c @@ -108,11 +108,7 @@ MPERS_PRINTER_DECL(void, print_itimerval, #ifdef ALPHA -typedef struct { - int tv_sec, tv_usec; -} timeval32_t; - -static void +void print_timeval32_t(const timeval32_t *t) { tprintf(timeval_fmt, (intmax_t) t->tv_sec, (intmax_t) t->tv_usec); diff --git a/printrusage.c b/printrusage.c index fce4e325..09f8d453 100644 --- a/printrusage.c +++ b/printrusage.c @@ -76,13 +76,9 @@ MPERS_PRINTER_DECL(void, printrusage, struct tcb *tcp, long addr) void printrusage32(struct tcb *tcp, long addr) { - struct timeval32 { - unsigned tv_sec; - unsigned tv_usec; - }; struct rusage32 { - struct timeval32 ru_utime; /* user time used */ - struct timeval32 ru_stime; /* system time used */ + timeval32_t ru_utime; /* user time used */ + timeval32_t ru_stime; /* system time used */ long ru_maxrss; /* maximum resident set size */ long ru_ixrss; /* integral shared memory size */ long ru_idrss; /* integral unshared data size */ @@ -102,27 +98,31 @@ printrusage32(struct tcb *tcp, long addr) if (umove_or_printaddr(tcp, addr, &ru)) return; - tprintf("{ru_utime={tv_sec=%lu, tv_usec=%lu}, " - "ru_stime={tv_sec=%lu, tv_usec=%lu}, ", - (long) ru.ru_utime.tv_sec, (long) ru.ru_utime.tv_usec, - (long) ru.ru_stime.tv_sec, (long) ru.ru_stime.tv_usec); + tprints("{ru_utime="); + print_timeval32_t(&ru.ru_utime); + tprints(", ru_stime="); + print_timeval32_t(&ru.ru_stime); if (abbrev(tcp)) - tprints("...}"); + tprints(", ..."); else { - tprintf("ru_maxrss=%lu, ", ru.ru_maxrss); - tprintf("ru_ixrss=%lu, ", ru.ru_ixrss); - tprintf("ru_idrss=%lu, ", ru.ru_idrss); - tprintf("ru_isrss=%lu, ", ru.ru_isrss); - tprintf("ru_minflt=%lu, ", ru.ru_minflt); - tprintf("ru_majflt=%lu, ", ru.ru_majflt); - tprintf("ru_nswap=%lu, ", ru.ru_nswap); - tprintf("ru_inblock=%lu, ", ru.ru_inblock); - tprintf("ru_oublock=%lu, ", ru.ru_oublock); - tprintf("ru_msgsnd=%lu, ", ru.ru_msgsnd); - tprintf("ru_msgrcv=%lu, ", ru.ru_msgrcv); - tprintf("ru_nsignals=%lu, ", ru.ru_nsignals); - tprintf("ru_nvcsw=%lu, ", ru.ru_nvcsw); - tprintf("ru_nivcsw=%lu}", ru.ru_nivcsw); +# define PRINT_RUSAGE_MEMBER(member) \ + tprintf(", " #member "=%lu", ru.member) + PRINT_RUSAGE_MEMBER(ru_maxrss); + PRINT_RUSAGE_MEMBER(ru_ixrss); + PRINT_RUSAGE_MEMBER(ru_idrss); + PRINT_RUSAGE_MEMBER(ru_isrss); + PRINT_RUSAGE_MEMBER(ru_minflt); + PRINT_RUSAGE_MEMBER(ru_majflt); + PRINT_RUSAGE_MEMBER(ru_nswap); + PRINT_RUSAGE_MEMBER(ru_inblock); + PRINT_RUSAGE_MEMBER(ru_oublock); + PRINT_RUSAGE_MEMBER(ru_msgsnd); + PRINT_RUSAGE_MEMBER(ru_msgrcv); + PRINT_RUSAGE_MEMBER(ru_nsignals); + PRINT_RUSAGE_MEMBER(ru_nvcsw); + PRINT_RUSAGE_MEMBER(ru_nivcsw); +# undef PRINT_RUSAGE_MEMBER } + tprints("}"); } #endif