/****************************************************************************** * debug.h * Debugging macros. * * Copyright (c)1994-95 David R. Tribble, all rights reserved. * * 1.00 09-17-1994 drt. First cut. * 1.01 09-24-1994 drt. Made C and C++ compatible. * 1.02 04-20-1995 drt. Added dbg_hexdump(). * 1.03 04-25-1995 drt. Added dbg_dump() macro. */ #ifndef DEBUG_H #define DEBUG_H 103 /* Includes */ #include /* Model-dependent aliases */ #ifdef __MSDOS__ #ifdef __cplusplus #if defined(__SMALL__) #define dbg_f cSdbg_f #define dbg_flags cSdbg_flags #define dbg_fname cSdbg_fname #define dbgf cSdbgf #define dbg_open cSdbg_open #define dbg_close cSdbg_close #define dbg_hexdump cSdbg_hexdump #elif defined(__LARGE__) #define dbg_f cLdbg_f #define dbg_flags cLdbg_flags #define dbg_fname cLdbg_fname #define dbgf cLdbgf #define dbg_open cLdbg_open #define dbg_close cLdbg_close #define dbg_hexdump cLdbg_hexdump #elif defined(__COMPACT__) #define dbg_f cCdbg_f #define dbg_flags cCdbg_flags #define dbg_fname cCdbg_fname #define dbgf cCdbgf #define dbg_open cCdbg_open #define dbg_close cCdbg_close #define dbg_hexdump cCdbg_hexdump #elif defined(__MEDIUM__) #define dbg_f cMdbg_f #define dbg_flags cMdbg_flags #define dbg_fname cMdbg_fname #define dbgf cMdbgf #define dbg_open cMdbg_open #define dbg_close cMdbg_close #define dbg_hexdump cMdbg_hexdump #elif defined(__HUGE__) #define dbg_f cHdbg_f #define dbg_flags cHdbg_flags #define dbg_fname cHdbg_fname #define dbgf cHdbgf #define dbg_open cHdbg_open #define dbg_close cHdbg_close #define dbg_hexdump cHdbg_hexdump #elif defined(__TINY__) #define dbg_f cTdbg_f #define dbg_flags cTdbg_flags #define dbg_fname cTdbg_fname #define dbgf cTdbgf #define dbg_open cTdbg_open #define dbg_close cTdbg_close #define dbg_hexdump cTdbg_hexdump #else #error "Memory model is not defined." #endif #else /* __cplusplus */ #if defined(__SMALL__) #define dbg_f Sdbg_f #define dbg_flags Sdbg_flags #define dbg_fname Sdbg_fname #define dbgf Sdbgf #define dbg_open Sdbg_open #define dbg_close Sdbg_close #define dbg_hexdump Sdbg_hexdump #elif defined(__LARGE__) #define dbg_f Ldbg_f #define dbg_flags Ldbg_flags #define dbg_fname Ldbg_fname #define dbgf Ldbgf #define dbg_open Ldbg_open #define dbg_close Ldbg_close #define dbg_hexdump Ldbg_hexdump #elif defined(__COMPACT__) #define dbg_f Cdbg_f #define dbg_flags Cdbg_flags #define dbg_fname Cdbg_fname #define dbgf Cdbgf #define dbg_open Cdbg_open #define dbg_close Cdbg_close #define dbg_hexdump Cdbg_hexdump #elif defined(__MEDIUM__) #define dbg_f Mdbg_f #define dbg_flags Mdbg_flags #define dbg_fname Mdbg_fname #define dbgf Mdbgf #define dbg_open Mdbg_open #define dbg_close Mdbg_close #define dbg_hexdump Mdbg_hexdump #elif defined(__HUGE__) #define dbg_f Hdbg_f #define dbg_flags Hdbg_flags #define dbg_fname Hdbg_fname #define dbgf Hdbgf #define dbg_open Hdbg_open #define dbg_close Hdbg_close #define dbg_hexdump Hdbg_hexdump #elif defined(__TINY__) #define dbg_f Tdbg_f #define dbg_flags Tdbg_flags #define dbg_fname Tdbg_fname #define dbgf Tdbgf #define dbg_open Tdbg_open #define dbg_close Tdbg_close #define dbg_hexdump Tdbg_hexdump #else #error "Memory model is not defined." #endif #endif /* __cplusplus */ #endif /* __MSDOS__ */ /* Debugging constants */ #ifndef DEBUG #define DEBUG 0 /* Default to FALSE */ #elif DEBUG-0 <= 0 #undef DEBUG #define DEBUG 0 /* Default to TRUE */ #endif #if DEBUG-0 <= 0 #undef DEBUG #define DEBUG 0 /* Default to FALSE */ #endif /* Debugging macros */ #if DEBUG #define DS(s) s #define DL(e) (dbg_f ? (void)(e) : (void)0) #else #define DS(s) #define DL(e) ((void)0) #endif /* Debugging bitflags */ #define DBG_DFL 0x0000 /* Default */ #define DBG_REOPEN 0x0001 /* Close/reopen file each time */ /* Public variables */ extern FILE * dbg_f; extern int dbg_flags; extern const char * dbg_fname; /* Public functions */ extern int dbgf(const char *fmt, ...); extern FILE * dbg_open(const char *fname, const char *mode); extern int dbg_close(void); extern int dbg_hexdump(const void *dat, unsigned len); /* Function macros */ #define dbg_dump dbg_hexdump #endif /* DEBUG_H */ /* End debug.h */