home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Geek Gadgets 1
/
ADE-1.bin
/
ade-dist
/
pdksh-4.9-src.tgz
/
tar.out
/
contrib
/
pdksh
/
sh
/
trace.h
< prev
next >
Wrap
C/C++ Source or Header
|
1996-09-28
|
2KB
|
107 lines
/* NAME:
* trace.h - definitions for a simple trace facility
*
* SYNOPSIS:
* #include "trace.h"
*
* DESCRIPTION:
* Defines the macro _TRACE().
* Also declares Trace_log and Trace_level.
*
* SEE ALSO:
*
*
* AMENDED:
* 91/11/22 22:53:58 (sjg)
*
* RELEASED:
* 91/11/22 22:54:18 v1.2
*
* SCCSID:
* @(#)trace.h 1.2 91/11/22 22:53:58 (sjg)
*
* @(#)Copyright (c) 1990 Simon J. Gerraty.
*/
/* some useful #defines */
#ifndef EXTERN
# define EXTERN extern
# define EXTERN_DEFINED
#endif
#ifndef TRUE
# define TRUE 1
# define FALSE 0
#endif
#ifndef ARGS
# if defined(__STDC__) || defined(PROTO)
# define ARGS(p) p
# else
# define ARGS(p) ()
# endif
#endif
/*
* this garbage is sometimes needed when mixing
* langauges or calling conventions under DOS.
*/
#ifndef _CDECL
# if defined(MSDOS) || defined(MSC)
# ifndef NO_EXT_KEYS
# define _CDECL cdecl
# define _NEAR near
# else
# define _CDECL
# define _NEAR
# endif
# else /* not DrOS */
# define _CDECL
# define _NEAR
# endif /* DOS */
#endif /* _CDECL */
/* manifest constants */
/* struct / union */
/* macros */
#ifdef USE_TRACE
EXTERN char * _CDECL Trace_log;
EXTERN int _CDECL Trace_level;
void _CDECL checkpoint ARGS((char *fmt, ...));
/*
* This macro takes a variabel number of args.
* examples:
* _TRACE(5, ("The current Debug level is %d\n", Debug));
* Note that if more than two args are provided, all but the
* first (which should be an integer indicating the Trace-level
* required for this message to be printed) must be enclosed in
* parenthesis.
*/
# define _TRACE(lev, args) if (Trace_level >= lev) checkpoint args
#else /* don't USE_TRACE */
/*
* this macro evaluates to a harmless no entry
* loop that most optimizers will remove all together.
*/
# define _TRACE(l, args) while (0)
#endif /* USE_TRACE */
/* This lot goes at the END */
/* be sure not to interfere with anyone else's idea about EXTERN */
#ifdef EXTERN_DEFINED
# undef EXTERN_DEFINED
# undef EXTERN
#endif
/*
* Local Variables:
* version-control:t
* comment-column:40
* End:
*/