1*8462SApril.Chin@Sun.COM /*********************************************************************** 2*8462SApril.Chin@Sun.COM * * 3*8462SApril.Chin@Sun.COM * This software is part of the ast package * 4*8462SApril.Chin@Sun.COM * Copyright (c) 1985-2008 AT&T Intellectual Property * 5*8462SApril.Chin@Sun.COM * and is licensed under the * 6*8462SApril.Chin@Sun.COM * Common Public License, Version 1.0 * 7*8462SApril.Chin@Sun.COM * by AT&T Intellectual Property * 8*8462SApril.Chin@Sun.COM * * 9*8462SApril.Chin@Sun.COM * A copy of the License is available at * 10*8462SApril.Chin@Sun.COM * http://www.opensource.org/licenses/cpl1.0.txt * 11*8462SApril.Chin@Sun.COM * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 12*8462SApril.Chin@Sun.COM * * 13*8462SApril.Chin@Sun.COM * Information and Software Systems Research * 14*8462SApril.Chin@Sun.COM * AT&T Research * 15*8462SApril.Chin@Sun.COM * Florham Park NJ * 16*8462SApril.Chin@Sun.COM * * 17*8462SApril.Chin@Sun.COM * Glenn Fowler <gsf@research.att.com> * 18*8462SApril.Chin@Sun.COM * David Korn <dgk@research.att.com> * 19*8462SApril.Chin@Sun.COM * Phong Vo <kpv@research.att.com> * 20*8462SApril.Chin@Sun.COM * * 21*8462SApril.Chin@Sun.COM ***********************************************************************/ 22*8462SApril.Chin@Sun.COM #pragma prototyped 23*8462SApril.Chin@Sun.COM /* 24*8462SApril.Chin@Sun.COM * <debug.h> support 25*8462SApril.Chin@Sun.COM */ 26*8462SApril.Chin@Sun.COM 27*8462SApril.Chin@Sun.COM #include <ast.h> 28*8462SApril.Chin@Sun.COM #include <error.h> 29*8462SApril.Chin@Sun.COM #include <debug.h> 30*8462SApril.Chin@Sun.COM 31*8462SApril.Chin@Sun.COM void 32*8462SApril.Chin@Sun.COM debug_fatal(const char* file, int line) 33*8462SApril.Chin@Sun.COM { 34*8462SApril.Chin@Sun.COM error(2, "%s:%d: debug error", file, line); 35*8462SApril.Chin@Sun.COM abort(); 36*8462SApril.Chin@Sun.COM } 37*8462SApril.Chin@Sun.COM 38*8462SApril.Chin@Sun.COM #if _sys_times 39*8462SApril.Chin@Sun.COM 40*8462SApril.Chin@Sun.COM #include <sys/times.h> 41*8462SApril.Chin@Sun.COM #include <sys/resource.h> 42*8462SApril.Chin@Sun.COM 43*8462SApril.Chin@Sun.COM double 44*8462SApril.Chin@Sun.COM debug_elapsed(int set) 45*8462SApril.Chin@Sun.COM { 46*8462SApril.Chin@Sun.COM double tm; 47*8462SApril.Chin@Sun.COM struct rusage ru; 48*8462SApril.Chin@Sun.COM 49*8462SApril.Chin@Sun.COM static double prev; 50*8462SApril.Chin@Sun.COM 51*8462SApril.Chin@Sun.COM getrusage(RUSAGE_SELF, &ru); 52*8462SApril.Chin@Sun.COM tm = (double)ru.ru_utime.tv_sec + (double)ru.ru_utime.tv_usec/1000000.0; 53*8462SApril.Chin@Sun.COM if (set) 54*8462SApril.Chin@Sun.COM return prev = tm; 55*8462SApril.Chin@Sun.COM return tm - prev; 56*8462SApril.Chin@Sun.COM } 57*8462SApril.Chin@Sun.COM 58*8462SApril.Chin@Sun.COM #else 59*8462SApril.Chin@Sun.COM 60*8462SApril.Chin@Sun.COM double 61*8462SApril.Chin@Sun.COM debug_elapsed(int set) 62*8462SApril.Chin@Sun.COM { 63*8462SApril.Chin@Sun.COM return 0; 64*8462SApril.Chin@Sun.COM } 65*8462SApril.Chin@Sun.COM 66*8462SApril.Chin@Sun.COM #endif 67