X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=libiberty%2Fgetruntime.c;h=1e0daad19ac0e4bdebbe4b2ed15dc50b6fa40e0d;hb=128e85e3ab36b8e30f6612fb50de3cbb4ede6824;hp=b855ea6e82f56c35ceb92b9a8724c4d571f6be66;hpb=ed288bb597072176e84fc8279707a3f2f475779b;p=deliverable%2Fbinutils-gdb.git diff --git a/libiberty/getruntime.c b/libiberty/getruntime.c index b855ea6e82..1e0daad19a 100644 --- a/libiberty/getruntime.c +++ b/libiberty/getruntime.c @@ -1,5 +1,5 @@ /* Return time used so far, in microseconds. - Copyright (C) 1994, 1999 Free Software Foundation, Inc. + Copyright (C) 1994, 1999, 2002 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or @@ -14,22 +14,36 @@ Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with libiberty; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, +Boston, MA 02110-1301, USA. */ #include "config.h" #include "ansidecl.h" #include "libiberty.h" +/* On some systems (such as WindISS), you must include + to get the definition of "time_t" before you include . */ +#include + /* There are several ways to get elapsed execution time; unfortunately no single way is available for all host systems, nor are there reliable ways to find out which way is correct for a given host. */ -#include +#ifdef TIME_WITH_SYS_TIME +# include +# include +#else +# if HAVE_SYS_TIME_H +# include +# else +# ifdef HAVE_TIME_H +# include +# endif +# endif +#endif #if defined (HAVE_GETRUSAGE) && defined (HAVE_SYS_RESOURCE_H) -#include #include #endif @@ -51,6 +65,10 @@ Boston, MA 02111-1307, USA. */ #define CLOCKS_PER_SEC 1 #endif +#ifndef RUSAGE_SELF +#define RUSAGE_SELF 0 +#endif + #ifdef _SC_CLK_TCK #define GNU_HZ sysconf(_SC_CLK_TCK) #else @@ -63,13 +81,25 @@ Boston, MA 02111-1307, USA. */ #endif #endif +/* + +@deftypefn Replacement long get_run_time (void) + +Returns the time used so far, in microseconds. If possible, this is +the time used by this process, else it is the elapsed time since the +process started. + +@end deftypefn + +*/ + long -get_run_time () +get_run_time (void) { #if defined (HAVE_GETRUSAGE) && defined (HAVE_SYS_RESOURCE_H) struct rusage rusage; - getrusage (0, &rusage); + getrusage (RUSAGE_SELF, &rusage); return (rusage.ru_utime.tv_sec * 1000000 + rusage.ru_utime.tv_usec + rusage.ru_stime.tv_sec * 1000000 + rusage.ru_stime.tv_usec); #else /* ! HAVE_GETRUSAGE */