home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / lan / soss.arj / SRC / DEBUG.H < prev    next >
C/C++ Source or Header  |  1991-02-22  |  4KB  |  130 lines

  1. /* debug.h - Debugging output macros */
  2. /*   Rich Braun @ Kronos, Inc.  Waltham, MA */
  3. /*   31 Jan 91 */
  4.  
  5. #ifndef _DEBUG_H
  6. #define _DEBUG_H
  7.  
  8. #ifndef STDIO_H
  9. #include <stdio.h>
  10. #endif
  11.  
  12. #ifndef _TIME_T_DEFINED
  13. #include <time.h>
  14. #endif
  15.  
  16. typedef struct _dbgflags {
  17.     unsigned rpctrace : 1,
  18.              mountd   : 1,
  19.          nfserr   : 1,
  20.          nfsdebug : 1,
  21.          nfsdisp  : 1,
  22.          nfslookup: 1,
  23.          nfsread  : 1,
  24.          nfswrite : 1,
  25.          nfstime  : 1,
  26.          inode    : 1;
  27.     };
  28.  
  29. extern struct _dbgflags __dbgflags__;
  30. extern FILE   *__dbgfp__;
  31. static char   __dbgbuf__ [200];
  32.  
  33. #ifndef DEBUG
  34. #define DBGPRT0(FLAG,STR) ((void)0)
  35. #define DBGPRT1(FLAG,STR,PARM1)    ((void)0)
  36. #define DBGPRT2(FLAG,STR,PARM1,PARM2) ((void)0)
  37. #define DBGPRT3(FLAG,STR,PARM1,PARM2,PARM3) ((void)0)
  38. #define DBGPRT4(FLAG,STR,PARM1,PARM2,PARM3,PARM4) ((void)0)
  39. #else
  40.  
  41. /* Disable timestamped output for small-model compilation */
  42. #define _TDBG 0
  43.  
  44. #if _TDBG
  45. /*
  46.  * Define DBGPRTx macros to print 0, 1, 2, 3, or 4 parameters following
  47.  * the prefix time-DBG-flagname-string.
  48.  */
  49.  
  50. static time_t __dbgnow__;
  51. #define __DTIME_STAMP (FLAG, STR) \
  52.        if (__dbgflags__.nfstime) {\
  53.         time (&__dbgnow__); \
  54.         (void) sprintf (__dbgbuf__, "%8.8s-DBG-%s-%s\n", \
  55.                 ctime (&__dbgnow__)+11, #FLAG, STR); \
  56.        } else \
  57.             sprintf (__dbgbuf__, "DBG-%s-%s\n", #FLAG, STR)
  58.  
  59. #define DBGPRT0(FLAG,STR) \
  60.     if (__dbgflags__.FLAG) { \
  61.        if (__dbgflags__.nfstime) {\
  62.         time (&__dbgnow__); \
  63.         (void) fprintf (__dbgfp__, "%8.8s-DBG-%s-%s\n", \
  64.                 ctime (&__dbgnow__)+11, #FLAG, STR); \
  65.        } else \
  66.           (void) fprintf (__dbgfp__, "DBG-%s-%s\n", #FLAG, STR); \
  67.     }
  68.  
  69. #define DBGPRT1(FLAG,STR,PARM1) \
  70.     if (__dbgflags__.FLAG) { \
  71.        __DTIME_STAMP(FLAG,STR);
  72.        (void) fprintf (__dbgfp__, __dbgbuf__, PARM1); \
  73.     }
  74.  
  75. #define DBGPRT2(FLAG,STR,PARM1,PARM2) \
  76.     if (__dbgflags__.FLAG) { \
  77.        __DTIME_STAMP(FLAG,STR);
  78.        (void) fprintf (__dbgfp__, __dbgbuf__, PARM1, PARM2); \
  79.     }
  80.     
  81. #define DBGPRT3(FLAG,STR,PARM1,PARM2,PARM3) \
  82.     if (__dbgflags__.FLAG) { \
  83.        __DTIME_STAMP(FLAG,STR);
  84.        (void) fprintf (__dbgfp__, __dbgbuf__, PARM1, PARM2, PARM3); \
  85.     }
  86.  
  87. #define DBGPRT4(FLAG,STR,PARM1,PARM2,PARM3,PARM4) \
  88.     if (__dbgflags__.FLAG) { \
  89.        __DTIME_STAMP(FLAG,STR); \
  90.        (void) fprintf (__dbgfp__, __dbgbuf__, PARM1, PARM2, PARM3,PARM4); \
  91.     }
  92. #else
  93.  
  94. /*
  95.  * Define DBGPRTx macros to print 0, 1, 2, 3, or 4 parameters following
  96.  * the prefix DBG-flagname-string.
  97.  */
  98. #define DBGPRT0(FLAG,STR) \
  99.     if (__dbgflags__.FLAG) { \
  100.           (void) fprintf (__dbgfp__, "DBG-%s-%s\n", #FLAG, STR); \
  101.     }
  102.  
  103. #define DBGPRT1(FLAG,STR,PARM1) \
  104.     if (__dbgflags__.FLAG) { \
  105.        sprintf (__dbgbuf__, "DBG-%s-%s\n", #FLAG, STR); \
  106.        (void) fprintf (__dbgfp__, __dbgbuf__, PARM1); \
  107.     }
  108.  
  109. #define DBGPRT2(FLAG,STR,PARM1,PARM2) \
  110.     if (__dbgflags__.FLAG) { \
  111.        sprintf (__dbgbuf__, "DBG-%s-%s\n", #FLAG, STR); \
  112.        (void) fprintf (__dbgfp__, __dbgbuf__, PARM1, PARM2); \
  113.     }
  114.     
  115. #define DBGPRT3(FLAG,STR,PARM1,PARM2,PARM3) \
  116.     if (__dbgflags__.FLAG) { \
  117.        sprintf (__dbgbuf__, "DBG-%s-%s\n", #FLAG, STR); \
  118.        (void) fprintf (__dbgfp__, __dbgbuf__, PARM1, PARM2, PARM3); \
  119.     }
  120.  
  121. #define DBGPRT4(FLAG,STR,PARM1,PARM2,PARM3,PARM4) \
  122.     if (__dbgflags__.FLAG) { \
  123.        sprintf (__dbgbuf__, "DBG-%s-%s\n", #FLAG, STR); \
  124.        (void) fprintf (__dbgfp__, __dbgbuf__, PARM1, PARM2, PARM3,PARM4); \
  125.     }
  126. #endif /* _TDBG */
  127.     
  128. #endif /* DEBUG */
  129. #endif /* _DEBUG_H */
  130.