1/*************************************************************************** 2 * LPRng - An Extended Print Spooler System 3 * 4 * Copyright 1988-2003, Patrick Powell, San Diego, CA 5 * papowell@lprng.com 6 * See LICENSE for conditions of use. 7 * $Id: debug.h,v 1.1.1.1 2008/10/15 03:28:27 james26_jang Exp $ 8 ***************************************************************************/ 9 10 11 12#ifndef _DEBUG_H_ 13#define _DEBUG_H_ 1 14 15/* to remove all debugging, redefine this as follows 16 * note that a good optimizing compiler should not produce code 17 * for the logDebug call. It may produce lots of warnings, but no code... 18 */ 19 20#if !defined(EXTERN) 21# define EXTERN extern 22#endif 23EXTERN int Debug; /* debug flags */ 24EXTERN int DbgFlag; /* debug flags */ 25EXTERN int DbgTest; /* debug flags */ 26 27#ifdef NODEBUG 28 29#define DEBUGFSET(FLAG) ( 0 ) 30#define DEBUGF(FLAG) if( 0 ) logDebug 31#define DEBUGFC(FLAG) if( 0 ) 32#define DEBUG1 if(0) logDebug 33#define DEBUGL1 (0) 34#define DEBUG2 if(0) logDebug 35#define DEBUGL2 (0) 36#define DEBUG3 if(0) logDebug 37#define DEBUGL3 (0) 38#define DEBUG4 if(0) logDebug 39#define DEBUGL4 (0) 40#define DEBUG5 if(0) logDebug 41#define DEBUGL5 (0) 42#define DEBUG6 if(0) logDebug 43#define DEBUGL6 (0) 44 45#else 46 47/* general purpose debug test */ 48#define DEBUGC(VAL,FLAG) if( (Debug >= (VAL) ) || ((FLAG) & DbgFlag) ) logDebug 49#define DEBUGL(VAL,FLAG) ( (Debug >= (VAL) ) || ((FLAG) & DbgFlag) ) 50#define DEBUGF(FLAG) if( (FLAG & DbgFlag) ) logDebug 51#define DEBUGFC(FLAG) if( (FLAG & DbgFlag) ) 52#define DEBUGFSET(FLAG) ( (FLAG & DbgFlag) ) 53 54 55/* Debug variable level */ 56#define DEBUG1 DEBUGC(1,DRECV1|DCTRL1|DLPQ1|DLPRM1) 57#define DEBUGL1 DEBUGL(1,DRECV1|DCTRL1|DLPQ1|DLPRM1) 58#define DEBUG2 DEBUGC(2,DRECV2|DCTRL2|DLPQ2|DLPRM2) 59#define DEBUGL2 DEBUGL(2,DRECV2|DCTRL2|DLPQ2|DLPRM2) 60#define DEBUG3 DEBUGC(3,DRECV3|DCTRL3|DLPQ3|DLPRM3) 61#define DEBUGL3 DEBUGL(3,DRECV3|DCTRL3|DLPQ3|DLPRM3) 62#define DEBUG4 DEBUGC(4,DRECV4|DCTRL4|DLPQ4|DLPRM4) 63#define DEBUGL4 DEBUGL(4,DRECV4|DCTRL4|DLPQ4|DLPRM4) 64#define DEBUG5 DEBUGC(5,0) 65#define DEBUGL5 DEBUGL(5,0) 66#define DEBUG6 DEBUGC(6,0) 67#define DEBUGL6 DEBUGL(6,0) 68 69/* PROTOTYPES */ 70 71#endif 72 73/* Flags for debugging */ 74 75#define DPRSHIFT 0 76#define DLOGMASK ((0xF<<DPRSHIFT)) 77#define DLOG1 ((0x1<<DPRSHIFT)) 78#define DLOG2 ((0x2<<DPRSHIFT)) 79#define DLOG3 ((0x4<<DPRSHIFT)) 80#define DLOG4 ((0x8<<DPRSHIFT)) 81 82#define DNWSHIFT 4 83#define DNWMASK ((0xF<<DNWSHIFT)) 84#define DNW1 ((0x1<<DNWSHIFT)) 85#define DNW2 ((0x2<<DNWSHIFT)) 86#define DNW3 ((0x4<<DNWSHIFT)) 87#define DNW4 ((0x8<<DNWSHIFT)) 88 89#define DDBSHIFT 8 90#define DDBMASK ((0xF<<DDBSHIFT)) 91#define DDB1 ((0x1<<DDBSHIFT)) 92#define DDB2 ((0x2<<DDBSHIFT)) 93#define DDB3 ((0x4<<DDBSHIFT)) 94#define DDB4 ((0x8<<DDBSHIFT)) 95 96#define DRECVSHIFT 12 97#define DRECVMASK ((0xF<<DRECVSHIFT)) 98#define DRECV1 ((0x1<<DRECVSHIFT)) 99#define DRECV2 ((0x2<<DRECVSHIFT)) 100#define DRECV3 ((0x4<<DRECVSHIFT)) 101#define DRECV4 ((0x8<<DRECVSHIFT)) 102 103#define DCTRLSHIFT 16 104#define DCTRLMASK ((0xF<<DCTRLSHIFT)) 105#define DCTRL1 ((0x1<<DCTRLSHIFT)) 106#define DCTRL2 ((0x2<<DCTRLSHIFT)) 107#define DCTRL3 ((0x4<<DCTRLSHIFT)) 108#define DCTRL4 ((0x8<<DCTRLSHIFT)) 109 110#define DLPRMSHIFT 20 111#define DLPRMMASK ((0xF<<DLPRMSHIFT)) 112#define DLPRM1 ((0x1<<DLPRMSHIFT)) 113#define DLPRM2 ((0x2<<DLPRMSHIFT)) 114#define DLPRM3 ((0x4<<DLPRMSHIFT)) 115#define DLPRM4 ((0x8<<DLPRMSHIFT)) 116 117#define DLPQSHIFT 24 118#define DLPQMASK ((0xF<<DLPQSHIFT)) 119#define DLPQ1 ((0x1<<DLPQSHIFT)) 120#define DLPQ2 ((0x2<<DLPQSHIFT)) 121#define DLPQ3 ((0x4<<DLPQSHIFT)) 122#define DLPQ4 ((0x8<<DLPQSHIFT)) 123 124 125#define IP_TEST 0x0001 /* test IP address */ 126 127void Parse_debug( char *arg, int interactive); 128 129 130/* we define these and then run gcc -Wformat -Wall to find 131 * debug statements with bad formats 132 */ 133#if defined(FORMAT_TEST) 134#undef DEBUG1 135#undef DEBUG2 136#undef DEBUG3 137#undef DEBUG4 138#undef DEBUG5 139#undef DEBUG6 140#undef DEBUG7 141#define DEBUG1 printf 142#define DEBUG2 printf 143#define DEBUG3 printf 144#define DEBUG4 printf 145#define DEBUG5 printf 146#define DEBUG6 printf 147#define DEBUG7 printf 148#endif 149 150/* PROTOTYPES */ 151 152#endif 153