From 1e08a160f7ca3c5e2dd28ff060323f5818934141 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Fri, 17 Jul 2015 23:50:02 +0000 Subject: [PATCH] resource.c: move printrusage and printrusage32 to a separate file * printrusage.c: New file. * Makefile.am (strace_SOURCES): Add it. * resource.c (printrusage, [ALPHA] printrusage32): Move to printrusage.c. --- Makefile.am | 1 + printrusage.c | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++ resource.c | 86 ------------------------------------- 3 files changed, 118 insertions(+), 86 deletions(-) create mode 100644 printrusage.c diff --git a/Makefile.am b/Makefile.am index 451a7dab..ed5b625c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -77,6 +77,7 @@ strace_SOURCES = \ personality.c \ prctl.c \ printmode.c \ + printrusage.c \ printsiginfo.c \ printstat.h \ process.c \ diff --git a/printrusage.c b/printrusage.c new file mode 100644 index 00000000..7661e7d1 --- /dev/null +++ b/printrusage.c @@ -0,0 +1,117 @@ +/* + * Copyright (c) 1991, 1992 Paul Kranenburg + * Copyright (c) 1993 Branko Lankester + * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey + * Copyright (c) 1996-1999 Wichert Akkerman + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "defs.h" +#include + +void +printrusage(struct tcb *tcp, long addr) +{ + struct rusage ru; + + if (umove_or_printaddr(tcp, addr, &ru)) + return; + if (!abbrev(tcp)) { + tprintf("{ru_utime={%lu, %lu}, ru_stime={%lu, %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); + tprintf("ru_maxrss=%lu, ru_ixrss=%lu, ", + ru.ru_maxrss, ru.ru_ixrss); + tprintf("ru_idrss=%lu, ru_isrss=%lu, ", + ru.ru_idrss, ru.ru_isrss); + tprintf("ru_minflt=%lu, ru_majflt=%lu, ru_nswap=%lu, ", + ru.ru_minflt, ru.ru_majflt, ru.ru_nswap); + tprintf("ru_inblock=%lu, ru_oublock=%lu, ", + ru.ru_inblock, ru.ru_oublock); + tprintf("ru_msgsnd=%lu, ru_msgrcv=%lu, ", + ru.ru_msgsnd, ru.ru_msgrcv); + tprintf("ru_nsignals=%lu, ru_nvcsw=%lu, ru_nivcsw=%lu}", + ru.ru_nsignals, ru.ru_nvcsw, ru.ru_nivcsw); + } + else { + tprintf("{ru_utime={%lu, %lu}, ru_stime={%lu, %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); + } +} + +#ifdef ALPHA +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 */ + long ru_maxrss; /* maximum resident set size */ + long ru_ixrss; /* integral shared memory size */ + long ru_idrss; /* integral unshared data size */ + long ru_isrss; /* integral unshared stack size */ + long ru_minflt; /* page reclaims */ + long ru_majflt; /* page faults */ + long ru_nswap; /* swaps */ + long ru_inblock; /* block input operations */ + long ru_oublock; /* block output operations */ + long ru_msgsnd; /* messages sent */ + long ru_msgrcv; /* messages received */ + long ru_nsignals; /* signals received */ + long ru_nvcsw; /* voluntary context switches */ + long ru_nivcsw; /* involuntary " */ + } ru; + + if (umove_or_printaddr(tcp, addr, &ru)) + return; + if (!abbrev(tcp)) { + tprintf("{ru_utime={%lu, %lu}, ru_stime={%lu, %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); + tprintf("ru_maxrss=%lu, ru_ixrss=%lu, ", + ru.ru_maxrss, ru.ru_ixrss); + tprintf("ru_idrss=%lu, ru_isrss=%lu, ", + ru.ru_idrss, ru.ru_isrss); + tprintf("ru_minflt=%lu, ru_majflt=%lu, ru_nswap=%lu, ", + ru.ru_minflt, ru.ru_majflt, ru.ru_nswap); + tprintf("ru_inblock=%lu, ru_oublock=%lu, ", + ru.ru_inblock, ru.ru_oublock); + tprintf("ru_msgsnd=%lu, ru_msgrcv=%lu, ", + ru.ru_msgsnd, ru.ru_msgrcv); + tprintf("ru_nsignals=%lu, ru_nvcsw=%lu, ru_nivcsw=%lu}", + ru.ru_nsignals, ru.ru_nvcsw, ru.ru_nivcsw); + } + else { + tprintf("{ru_utime={%lu, %lu}, ru_stime={%lu, %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); + } +} +#endif diff --git a/resource.c b/resource.c index e3c9a02d..39f2e99d 100644 --- a/resource.c +++ b/resource.c @@ -31,7 +31,6 @@ #include "defs.h" #include #include -#include #include "xlat/resources.h" @@ -157,91 +156,6 @@ SYS_FUNC(prlimit64) #include "xlat/usagewho.h" -#ifdef ALPHA -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 */ - long ru_maxrss; /* maximum resident set size */ - long ru_ixrss; /* integral shared memory size */ - long ru_idrss; /* integral unshared data size */ - long ru_isrss; /* integral unshared stack size */ - long ru_minflt; /* page reclaims */ - long ru_majflt; /* page faults */ - long ru_nswap; /* swaps */ - long ru_inblock; /* block input operations */ - long ru_oublock; /* block output operations */ - long ru_msgsnd; /* messages sent */ - long ru_msgrcv; /* messages received */ - long ru_nsignals; /* signals received */ - long ru_nvcsw; /* voluntary context switches */ - long ru_nivcsw; /* involuntary " */ - } ru; - - if (umove_or_printaddr(tcp, addr, &ru)) - return; - if (!abbrev(tcp)) { - tprintf("{ru_utime={%lu, %lu}, ru_stime={%lu, %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); - tprintf("ru_maxrss=%lu, ru_ixrss=%lu, ", - ru.ru_maxrss, ru.ru_ixrss); - tprintf("ru_idrss=%lu, ru_isrss=%lu, ", - ru.ru_idrss, ru.ru_isrss); - tprintf("ru_minflt=%lu, ru_majflt=%lu, ru_nswap=%lu, ", - ru.ru_minflt, ru.ru_majflt, ru.ru_nswap); - tprintf("ru_inblock=%lu, ru_oublock=%lu, ", - ru.ru_inblock, ru.ru_oublock); - tprintf("ru_msgsnd=%lu, ru_msgrcv=%lu, ", - ru.ru_msgsnd, ru.ru_msgrcv); - tprintf("ru_nsignals=%lu, ru_nvcsw=%lu, ru_nivcsw=%lu}", - ru.ru_nsignals, ru.ru_nvcsw, ru.ru_nivcsw); - } - else { - tprintf("{ru_utime={%lu, %lu}, ru_stime={%lu, %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); - } -} -#endif - -void -printrusage(struct tcb *tcp, long addr) -{ - struct rusage ru; - - if (umove_or_printaddr(tcp, addr, &ru)) - return; - if (!abbrev(tcp)) { - tprintf("{ru_utime={%lu, %lu}, ru_stime={%lu, %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); - tprintf("ru_maxrss=%lu, ru_ixrss=%lu, ", - ru.ru_maxrss, ru.ru_ixrss); - tprintf("ru_idrss=%lu, ru_isrss=%lu, ", - ru.ru_idrss, ru.ru_isrss); - tprintf("ru_minflt=%lu, ru_majflt=%lu, ru_nswap=%lu, ", - ru.ru_minflt, ru.ru_majflt, ru.ru_nswap); - tprintf("ru_inblock=%lu, ru_oublock=%lu, ", - ru.ru_inblock, ru.ru_oublock); - tprintf("ru_msgsnd=%lu, ru_msgrcv=%lu, ", - ru.ru_msgsnd, ru.ru_msgrcv); - tprintf("ru_nsignals=%lu, ru_nvcsw=%lu, ru_nivcsw=%lu}", - ru.ru_nsignals, ru.ru_nvcsw, ru.ru_nivcsw); - } - else { - tprintf("{ru_utime={%lu, %lu}, ru_stime={%lu, %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); - } -} - SYS_FUNC(getrusage) { if (entering(tcp)) { -- 2.40.0