xref: /onnv-gate/usr/src/lib/libast/sparcv9/include/ast/debug.h (revision 12068:08a39a083754)
14887Schin 
24887Schin /* : : generated by proto : : */
34887Schin /***********************************************************************
44887Schin *                                                                      *
54887Schin *               This software is part of the ast package               *
6*12068SRoger.Faulkner@Oracle.COM *          Copyright (c) 1985-2010 AT&T Intellectual Property          *
74887Schin *                      and is licensed under the                       *
84887Schin *                  Common Public License, Version 1.0                  *
98462SApril.Chin@Sun.COM *                    by AT&T Intellectual Property                     *
104887Schin *                                                                      *
114887Schin *                A copy of the License is available at                 *
124887Schin *            http://www.opensource.org/licenses/cpl1.0.txt             *
134887Schin *         (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9)         *
144887Schin *                                                                      *
154887Schin *              Information and Software Systems Research               *
164887Schin *                            AT&T Research                             *
174887Schin *                           Florham Park NJ                            *
184887Schin *                                                                      *
194887Schin *                 Glenn Fowler <gsf@research.att.com>                  *
204887Schin *                  David Korn <dgk@research.att.com>                   *
214887Schin *                   Phong Vo <kpv@research.att.com>                    *
224887Schin *                                                                      *
234887Schin ***********************************************************************/
244887Schin 
254887Schin /*
264887Schin  * common ast debug definitions
274887Schin  * include after the ast headers
284887Schin  */
294887Schin 
304887Schin #ifndef _DEBUG_H
314887Schin #if !defined(__PROTO__)
324887Schin #include <prototyped.h>
334887Schin #endif
344887Schin #if !defined(__LINKAGE__)
354887Schin #define __LINKAGE__		/* 2004-08-11 transition */
364887Schin #endif
374887Schin 
384887Schin #define _DEBUG_H
394887Schin 
404887Schin #include <ast.h>
414887Schin #include <error.h>
424887Schin 
438462SApril.Chin@Sun.COM #if !defined(DEBUG) && _BLD_DEBUG
448462SApril.Chin@Sun.COM #define DEBUG		_BLD_DEBUG
458462SApril.Chin@Sun.COM #endif
468462SApril.Chin@Sun.COM 
474887Schin #if DEBUG || _BLD_DEBUG
488462SApril.Chin@Sun.COM 
494887Schin #define debug(x)	x
504887Schin #define message(x)	do if (error_info.trace < 0) { error x; } while (0)
514887Schin #define messagef(x)	do if (error_info.trace < 0) { errorf x; } while (0)
528462SApril.Chin@Sun.COM 
538462SApril.Chin@Sun.COM #define DEBUG_BEGTIME()		debug_elapsed(1)
548462SApril.Chin@Sun.COM #define DEBUG_GETTIME()		debug_elapsed(0)
558462SApril.Chin@Sun.COM #define DEBUG_ASSERT(p)		((p) ? 0 : (debug_fatal(__FILE__, __LINE__),0))
568462SApril.Chin@Sun.COM #define DEBUG_COUNT(n)		((n) += 1)
578462SApril.Chin@Sun.COM #define DEBUG_TALLY(c,n,v)	((c) ? ((n) += (v)) : (n))
5810898Sroland.mainz@nrubsig.org #define DEBUG_INCREASE(n)	((n) += 1)
5910898Sroland.mainz@nrubsig.org #define DEBUG_DECREASE(n)	((n) -= 1)
608462SApril.Chin@Sun.COM #define DEBUG_DECLARE(t,v)	t v
618462SApril.Chin@Sun.COM #define DEBUG_SET(n,v)		((n) = (v))
628462SApril.Chin@Sun.COM #define DEBUG_PRINT(fd,s,v)	do {char _b[1024];write(fd,_b,sfsprintf(_b,sizeof(_b),s,v));} while(0)
638462SApril.Chin@Sun.COM #define DEBUG_WRITE(fd,d,n)	write((fd),(d),(n))
648462SApril.Chin@Sun.COM #define DEBUG_TEMP(temp)	(temp) /* debugging stuff that should be removed */
6510898Sroland.mainz@nrubsig.org #define DEBUG_BREAK		break
6610898Sroland.mainz@nrubsig.org #define DEBUG_CONTINUE		continue
678462SApril.Chin@Sun.COM #define DEBUG_GOTO(label)	do { debug_fatal(__FILE__, __LINE__); goto label; } while(0)
6810898Sroland.mainz@nrubsig.org #define DEBUG_RETURN(x)		do { debug_fatal(__FILE__, __LINE__); return(x); } while(0)
698462SApril.Chin@Sun.COM 
704887Schin #else
718462SApril.Chin@Sun.COM 
724887Schin #define debug(x)
734887Schin #define message(x)
744887Schin #define messagef(x)
758462SApril.Chin@Sun.COM 
768462SApril.Chin@Sun.COM #define DEBUG_BEGTIME()
778462SApril.Chin@Sun.COM #define DEBUG_GETTIME()
788462SApril.Chin@Sun.COM #define DEBUG_ASSERT(p)
798462SApril.Chin@Sun.COM #define DEBUG_COUNT(n)
808462SApril.Chin@Sun.COM #define DEBUG_TALLY(c,n,v)
8110898Sroland.mainz@nrubsig.org #define DEBUG_INCREASE(n)
8210898Sroland.mainz@nrubsig.org #define DEBUG_DECREASE(n)
838462SApril.Chin@Sun.COM #define DEBUG_DECLARE(t,v)
848462SApril.Chin@Sun.COM #define DEBUG_SET(n,v)
858462SApril.Chin@Sun.COM #define DEBUG_PRINT(fd,s,v)
868462SApril.Chin@Sun.COM #define DEBUG_WRITE(fd,d,n)
8710898Sroland.mainz@nrubsig.org #define DEBUG_TEMP(x)
888462SApril.Chin@Sun.COM #define DEBUG_BREAK		break
8910898Sroland.mainz@nrubsig.org #define DEBUG_CONTINUE		continue
908462SApril.Chin@Sun.COM #define DEBUG_GOTO(label)	goto label
9110898Sroland.mainz@nrubsig.org #define DEBUG_RETURN(x)		return(x)
928462SApril.Chin@Sun.COM 
934887Schin #endif
944887Schin 
9510898Sroland.mainz@nrubsig.org #ifndef BREAK
9610898Sroland.mainz@nrubsig.org #define BREAK			DEBUG_BREAK
9710898Sroland.mainz@nrubsig.org #endif
9810898Sroland.mainz@nrubsig.org #ifndef CONTINUE
9910898Sroland.mainz@nrubsig.org #define CONTINUE		DEBUG_CONTINUE
10010898Sroland.mainz@nrubsig.org #endif
10110898Sroland.mainz@nrubsig.org #ifndef GOTO
10210898Sroland.mainz@nrubsig.org #define GOTO(label)		DEBUG_GOTO(label)
10310898Sroland.mainz@nrubsig.org #endif
10410898Sroland.mainz@nrubsig.org #ifndef RETURN
10510898Sroland.mainz@nrubsig.org #define RETURN(x)		DEBUG_RETURN(x)
10610898Sroland.mainz@nrubsig.org #endif
10710898Sroland.mainz@nrubsig.org 
1084887Schin #if _BLD_ast && defined(__EXPORT__)
1094887Schin #undef __MANGLE__
1104887Schin #define __MANGLE__ __LINKAGE__		__EXPORT__
1114887Schin #endif
1124887Schin 
1138462SApril.Chin@Sun.COM extern __MANGLE__ double		debug_elapsed __PROTO__((int));
1148462SApril.Chin@Sun.COM extern __MANGLE__ void		debug_fatal __PROTO__((const char*, int));
1154887Schin extern __MANGLE__ void		systrace __PROTO__((const char*));
1164887Schin 
1174887Schin #undef __MANGLE__
1184887Schin #define __MANGLE__ __LINKAGE__
1194887Schin 
1204887Schin #endif
121