18462SApril.Chin@Sun.COM /*********************************************************************** 28462SApril.Chin@Sun.COM * * 38462SApril.Chin@Sun.COM * This software is part of the ast package * 4*12068SRoger.Faulkner@Oracle.COM * Copyright (c) 1985-2010 AT&T Intellectual Property * 58462SApril.Chin@Sun.COM * and is licensed under the * 68462SApril.Chin@Sun.COM * Common Public License, Version 1.0 * 78462SApril.Chin@Sun.COM * by AT&T Intellectual Property * 88462SApril.Chin@Sun.COM * * 98462SApril.Chin@Sun.COM * A copy of the License is available at * 108462SApril.Chin@Sun.COM * http://www.opensource.org/licenses/cpl1.0.txt * 118462SApril.Chin@Sun.COM * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 128462SApril.Chin@Sun.COM * * 138462SApril.Chin@Sun.COM * Information and Software Systems Research * 148462SApril.Chin@Sun.COM * AT&T Research * 158462SApril.Chin@Sun.COM * Florham Park NJ * 168462SApril.Chin@Sun.COM * * 178462SApril.Chin@Sun.COM * Glenn Fowler <gsf@research.att.com> * 188462SApril.Chin@Sun.COM * David Korn <dgk@research.att.com> * 198462SApril.Chin@Sun.COM * Phong Vo <kpv@research.att.com> * 208462SApril.Chin@Sun.COM * * 218462SApril.Chin@Sun.COM ***********************************************************************/ 228462SApril.Chin@Sun.COM #pragma prototyped 238462SApril.Chin@Sun.COM /* 248462SApril.Chin@Sun.COM * <debug.h> support 258462SApril.Chin@Sun.COM */ 268462SApril.Chin@Sun.COM 278462SApril.Chin@Sun.COM #include <ast.h> 288462SApril.Chin@Sun.COM #include <error.h> 298462SApril.Chin@Sun.COM #include <debug.h> 308462SApril.Chin@Sun.COM 318462SApril.Chin@Sun.COM void debug_fatal(const char * file,int line)328462SApril.Chin@Sun.COMdebug_fatal(const char* file, int line) 338462SApril.Chin@Sun.COM { 348462SApril.Chin@Sun.COM error(2, "%s:%d: debug error", file, line); 358462SApril.Chin@Sun.COM abort(); 368462SApril.Chin@Sun.COM } 378462SApril.Chin@Sun.COM 388462SApril.Chin@Sun.COM #if _sys_times 398462SApril.Chin@Sun.COM 408462SApril.Chin@Sun.COM #include <sys/times.h> 418462SApril.Chin@Sun.COM #include <sys/resource.h> 428462SApril.Chin@Sun.COM 438462SApril.Chin@Sun.COM double debug_elapsed(int set)448462SApril.Chin@Sun.COMdebug_elapsed(int set) 458462SApril.Chin@Sun.COM { 468462SApril.Chin@Sun.COM double tm; 478462SApril.Chin@Sun.COM struct rusage ru; 488462SApril.Chin@Sun.COM 498462SApril.Chin@Sun.COM static double prev; 508462SApril.Chin@Sun.COM 518462SApril.Chin@Sun.COM getrusage(RUSAGE_SELF, &ru); 528462SApril.Chin@Sun.COM tm = (double)ru.ru_utime.tv_sec + (double)ru.ru_utime.tv_usec/1000000.0; 538462SApril.Chin@Sun.COM if (set) 548462SApril.Chin@Sun.COM return prev = tm; 558462SApril.Chin@Sun.COM return tm - prev; 568462SApril.Chin@Sun.COM } 578462SApril.Chin@Sun.COM 588462SApril.Chin@Sun.COM #else 598462SApril.Chin@Sun.COM 608462SApril.Chin@Sun.COM double debug_elapsed(int set)618462SApril.Chin@Sun.COMdebug_elapsed(int set) 628462SApril.Chin@Sun.COM { 638462SApril.Chin@Sun.COM return 0; 648462SApril.Chin@Sun.COM } 658462SApril.Chin@Sun.COM 668462SApril.Chin@Sun.COM #endif 67