/**************************************************************************** | | (C) Copyright 1985, 1991, 1993, 1996 Novell, Inc. | All Rights Reserved. | | This program is free software; you can redistribute it and/or | modify it under the terms of version 2 of the GNU General Public | License as published by the Free Software Foundation. | | This program is distributed in the hope that it will be useful, | but WITHOUT ANY WARRANTY; without even the implied warranty of | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | GNU General Public License for more details. | | You should have received a copy of the GNU General Public License | along with this program; if not, contact Novell, Inc. | | To contact Novell about this file by physical or electronic mail, | you may find current contact information at www.novell.com | |*************************************************************************** | | NetWare Advance File Services (NSS) module | |--------------------------------------------------------------------------- | | $Author: vandana $ | $Date: 2005-08-10 01:03:51 +0530 (Wed, 10 Aug 2005) $ | | $RCSfile$ | $Revision: 1177 $ | |--------------------------------------------------------------------------- | This module is used to: | NSS Library source | | WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! | | This header file should ONLY be used for NSS internal development. | This includes Semantic Agents (SA) and Loadable Storage Services (LSS). | Any other use may cause conflicts which NSS will NOT fix. +-------------------------------------------------------------------------*/ #ifndef _PSSDEBUG_H_ #define _PSSDEBUG_H_ #ifdef __cplusplus extern "C" { #endif #ifndef _OMNI_H_ # include #endif #if NSS_DEBUG IS_ENABLED #ifndef _SCHEDULE_H_ # include #endif #endif #ifndef _XSTDIO_H_ # include #endif #ifndef _INLINES_H_ # include #endif /* Pre-define struct(s) so Linux compiler doesn't complain */ struct ScreenStruct; struct StackFrame; /*- internal prototype -*/ extern void freeDebugContext(); /* basic I/O device to do debug output to*/ extern struct WFile_s *DBG_DbgScreen; /* basic MACROS for doing I/O*/ #if NSS_DEBUG IS_ENABLED # define PRINT(attr) DBG_DebugPrintf(attr, #else # define PRINT(attr) LB_aprintf(attr, #endif #define PRSEQ(attr) DBG_prseq(), DBG_DebugPrintf(attr, typedef struct DebugEntryHeader_s { LONG DEH_attribute; LONG DEH_utc; /* UTC time of debug print call */ QUAD DEH_mask; WORD DEH_length; /* Length of STRING (includes NULL) */ } DebugEntryHeader_s; typedef struct DebugEntryTail_s { WORD DET_length; /* Length of STRING (includes NULL) */ } DebugEntryTail_s; #define MAX_LOG_ELEMENT_SIZE (1024) #define MAX_LOG_ENTRY_SIZE (MAX_LOG_ELEMENT_SIZE + sizeof(DebugEntryHeader_s) + sizeof(DebugEntryTail_s)) /* EOS is End Of String */ #define DBG_EOS_INDEX_FROM_TAIL (-2) /* Location of strings last non-NULL * character relative to the records * tail pointer. */ #define DBG_EOS_INDEX_PREV(_index) \ (((_index) - sizeof(DebugEntryTail_s)) + DBG_EOS_INDEX_FROM_TAIL) #define DBG_EOS_CHAR_PREV(_index) \ DBG_debugLogBuffer[DBG_EOS_INDEX_PREV(_index)] #define DBG_EOS_INDEX_OF_END_RECORD() \ (DBG_debugLogEndRecordTail + DBG_EOS_INDEX_FROM_TAIL) #define DBG_EOS_CHAR_OF_END_RECORD() \ DBG_debugLogBuffer[DBG_EOS_INDEX_OF_END_RECORD()] #define DBG_BEGIN_LINE(_current) \ (_current == DBG_debugLogBufferRemove) || \ (DBG_EOS_CHAR_PREV(_current) == 0x0A) ) #define DBG_TIME_NONE 0 #define DBG_TIME_PARTIAL 1 #define DBG_TIME_FULL 2 extern void DBG_prseq(void); //extern int DBG_grabdebug(void); //extern int bugAbort(char *what, int error); extern int DBG_fatal(char *where, char *string, int errCode); extern int DBG_error(char *where, char *string, int value); //extern int debug(char *what); //extern int here(char *where); //extern int stop(char *where); //extern int pr(char *what); //extern int tr(char *what); //extern int prx(char *what, unsigned value); //extern int prd(char *what, unsigned value); //extern int prc(char *what, char value); //extern int prs(char *what, char *value); //extern int debugCount(char *what); extern void DBG_Startup(void); extern void DBG_Shutdown(void); extern void DBG_Denter(char *where, QUAD trace, char *name); extern void DBG_Dindent(void); extern void DBG_Dexit(char *where); extern void DBG_DrtnVoid(char *where); extern void DBG_DrtnSNINT(char *where, SNINT returnCode); extern void DBG_DrtnNINT(char *where, NINT returnCode); extern void DBG_DrtnStatus(char *where, STATUS status); extern void DBG_DrtnPtr(char *where, void *returnCode); extern void DBG_DrtnQUAD(char *where, QUAD returnCode); #define DBG_LOG_MAX_DISP_LINES 8 /* Used to clear area for '=s' command * display information. */ extern LONG DBG_IsDOSFATLoaded( ); //int ztrace(char *msg, Zid_t zid, Blknum_t logical, Blknum_t physical); //void zdumpMap(); extern char *DBG_DebugFormatBinary(char *buf,NINT len); extern void DBG_SaveDebugLogToFile(struct ScreenStruct *debugScreen); extern void DBG_DumpLogBuffer(struct ScreenStruct *debugScreen); extern void DBG_DebugLogProcessBuffer(void); extern void DBG_InitDebug(void); extern void DBG_FlushDebug(void); extern void DBG_UninitDebug(void); extern LONG DBG_DoNSSDebuggerCommand( struct ScreenStruct *debugScreen, char *commandLine, struct StackFrame *StkFrm); //extern void printBitMap(NINT *map, NINT numBits); extern int DBG_Depth; extern int DBG_printDebug(char *string); extern NINT DBG_Sequence; extern NINT DBG_DebugLogBufferSize; extern QUAD DBG_DebugFlag; extern QUAD DBG_SavedDebugFlag; extern QUAD DBG_TraceFlag; extern QUAD DBG_SavedTraceFlag; extern BOOL DBG_ScreenDebug; extern BOOL DBG_DebugEnabled; extern BOOL DBG_TraceEnabled; //extern NINT DBG_Audit; //extern NINT DBG_TraceLevel; extern NINT DBG_PageSize; extern BOOL DBG_Paging; //extern NINT DBG_Matcher; extern BOOL DBG_Stub; //extern BYTE *DBG_debugLogStack; extern BYTE *DBG_debugLogBuffer; extern NINT DBG_debugLogBufferInsert; extern NINT DBG_debugLogBufferRemove; extern NINT DBG_debugLogMask; //extern char *DBG_DebugWhere; extern char DBG_NotImpDbgMsg[]; //extern char DBG_StubbedMsg[]; /* Routines to hook TRACING of NCPS */ extern void DBG_HookNCPTrace(void); extern void DBG_UnHookNCPTrace(void); extern void DBG_HookNCPLog(void); extern void DBG_UnHookNCPLog(void); /**************************************************************************** * Defines for tracing & debug ****************************************************************************/ #define TDEFAULT UI64_CONST(0x0000000000000001) /* Default value when DBG_DebugPrintf * is called directly. */ #define TCACHE UI64_CONST(0x0000000000000002) #define TFSM UI64_CONST(0x0000000000000004) #define TBOND UI64_CONST(0x0000000000000008) #define TZLOG UI64_CONST(0x0000000000000010) /* zfs logging system */ #define TZCB UI64_CONST(0x0000000000000020) /* Entry points into Beast B-tree */ #define TZTREE UI64_CONST(0x0000000000000040) /* Beast B-tree */ #define TBIO UI64_CONST(0x0000000000000080) /* Beast IO */ #define TAUTH UI64_CONST(0x0000000000000100) /* ZAS Auth System */ #define TCOMMON UI64_CONST(0x0000000000000200) #define TZPOOL UI64_CONST(0x0000000000000400) #define TZVOL UI64_CONST(0x0000000000000800) #define TXACTION UI64_CONST(0x0000000000001000) #define TZPOOLIO UI64_CONST(0x0000000000002000) #define TNAMING UI64_CONST(0x0000000000004000) #define TZFREETREE UI64_CONST(0x0000000000008000) #define TLOCKING UI64_CONST(0x0000000000010000) #define TMAL UI64_CONST(0x0000000000020000) #define TNWSAAPI UI64_CONST(0x0000000000040000) /* NWSA NLM APIs */ #define TPLOG UI64_CONST(0x0000000000080000) /* purge log */ #define TZLOG2 UI64_CONST(0x0000000000100000) /* ZLOG extra hex dump */ #define TADMVOL UI64_CONST(0x0000000000200000) #define TNCP UI64_CONST(0x0000000000400000) /* NWSA NCPs */ #define TCNTRL UI64_CONST(0x0000000000800000) /* control.c */ #define TWILD UI64_CONST(0x0000000001000000) /* wildcarding */ #define TMATCHATTR UI64_CONST(0x0000000002000000) /* match attributes */ #define TTIMER UI64_CONST(0x0000000004000000) /* timer */ #define TCREATE UI64_CONST(0x0000000008000000) /* create debug */ #define TNAMETREE UI64_CONST(0x0000000010000000) /* Name Tree */ #define TNAMECACHE UI64_CONST(0x0000000020000000) /* Name cache */ #define TLOCK UI64_CONST(0x0000000040000000) /* Locking */ #define TYIELDS UI64_CONST(0x0000000080000000) #define TDELETE UI64_CONST(0x0000000100000000) /* common delete stuff */ #define TUSERSPC UI64_CONST(0x0000000200000000) /* user space restrictions */ #define TLVOLUMES UI64_CONST(0x0000000400000000) /* Common Logical Volume items */ #define TPOOL UI64_CONST(0x0000000800000000) /* Common Pool items */ #define TUSERX UI64_CONST(0x0000001000000000) /* User tasks and xations */ #define TLATCH UI64_CONST(0x0000002000000000) #define TVIRT UI64_CONST(0x0000004000000000) /* virtual file */ #define TCONNECT UI64_CONST(0x0000008000000000) /* connection info */ #define TUXACTION UI64_CONST(0x0000010000000000) /* user transaction debug */ #define TLVDELETE UI64_CONST(0x0000020000000000) /* LV delete info */ #define TZAPI UI64_CONST(0x0000080000000000) /* zAPIs */ #define TNWSACHAIN UI64_CONST(0x0000100000000000) /* NWSA chain to legacy calls */ #define TDIRQCACHE UI64_CONST(0x0000200000000000) /* directory quota */ #define TCIFS UI64_CONST(0x0000400000000000) /* CIFS SMB packets */ #define TPSA UI64_CONST(0x0000800000000000) #define TALL UI64_CONST(0xffffffffffffffff) #define TNONE UI64_CONST(0) #define TZLOG_COLOR CYAN #define TZLOG2_COLOR LGREEN #define NAME(_x_) static char __NAME__[] = #_x_; #define ABORT(_err_) DBG_bugAbort(WHERE " " #_err_, _err_) #define ERR(_string_, _err_) DBG_error(WHERE, _string_, _err_) #define NSS_ERROR(_err_) DBG_error(WHERE, #_err_, _err_) ///Abhijit 12/21/98 Error by OS #define ERRNULL(_string_) DBG_error(WHERE, _string_, 0) #define FATAL(_string_, _err_) DBG_fatal(WHERE, _string_, _err_) char *DBG_UTCTime2Str( Time_t utcTime, char *str); #if NSS_DEBUG IS_ENABLED #define NOT_IMPLEMENTED() /*fatal*/DBG_error(WHERE, DBG_NotImpDbgMsg, 0) #ifdef UNIX #define CHOKE_DEBUG_LOG() ((void)0) #define DBGLOCK() ((void)0) #define DBGUNLOCK() ((void)0) #define INITDBGIO() ((void)0) #else #define CHOKE_DEBUG_LOG() ((void)0) #define DBGLOCK() \ ASSERT_MPKNSS_LOCK(); \ wLock(DBG_DbgScreen); #define DBGUNLOCK() wUnlock(DBG_DbgScreen) #define INITDBGIO() ((DBG_DbgScreen == NULL) ? DBG_InitDebug() : (void)0) #endif //#define STUBBED() if (DBG_Stub) DBG_error(WHERE, DBG_StubbedMsg, 0) /* defines for debugLogMask */ #define DEBUG_LOG_MEMORY 1 #define DEBUG_LOG_SCREEN 2 /* The "_ioprms" must contains the following fields: * (color,formatstr,optParameters) * They are used for printing information to the trace or log display */ #if 0 //#define DEBUG_PRINTF(_dmask,_ioprms) \ // if (DBG_DebugFlag & (_dmask)) \ // { \ // DebugPrintf _ioprms; \ // } #endif extern QUAD DBG_ScreenSwitches; #define DBG_SS_WHERE 0x00000001 #define DBG_SS_UTC 0x00000002 #define DBG_SS_MASK 0x00000004 extern QUAD DBG_DebugMask; #define DBG_NOINDENT 0x01 /* use the debug mask -- do not indent */ #define DBG_INDENT 0x02 /* use the debug mask -- indent if trace on */ #define DBG_TRACE_NOINDENT 0x04 /* use the trace mask -- don't indent*/ #define DBG_TRACE 0x08 /* use the trace mask -- indent*/ #define DBG_BOTH_NOINDENT 0x10 /* use the trace mask and the debug mask -- don't indent*/ #define DBG_BOTH 0x20 /* use the trace mask and the debug mask -- indent if trace on*/ #define DEBUG_PRINTF(_mask,_flag,_ioprms) \ { \ NINT _temp_; \ BOOL _printFlag_=FALSE; \ _temp_ = (_flag); \ if (DBG_TraceFlag & (_mask)) \ { \ if (_temp_ & (DBG_TRACE | DBG_BOTH)) \ { \ DBG_DebugMask = _mask; \ INDENT(); DBG_prseq(); \ } \ if (_temp_ & (DBG_TRACE | DBG_TRACE_NOINDENT | DBG_BOTH_NOINDENT | DBG_BOTH)) \ { \ DBG_DebugMask = _mask; \ DBG_DebugPrintf _ioprms; \ _printFlag_ = TRUE; \ } \ } \ if ((DBG_DebugFlag & (_mask)) && !_printFlag_) \ { \ if ((_temp_ & (DBG_INDENT | DBG_BOTH)) && DBG_TraceFlag) \ { \ DBG_DebugMask = _mask; \ INDENT(); DBG_prseq(); \ } \ if (_temp_ & (DBG_INDENT | DBG_BOTH | DBG_NOINDENT | DBG_BOTH_NOINDENT)) \ { \ DBG_DebugMask = _mask; \ DBG_DebugPrintf _ioprms; \ } \ } \ } #if 0 //#define TRACE_NOINDENT_PRINTF(_dmask,_tmask,_ioprms) \ // if ((DBG_DebugFlag & (_dmask)) || (DBG_TraceFlag & (_tmask))) \ // { \ // DBG_DebugPrintf _ioprms; \ // } #endif #define DEBUG_HEX_DUMP(_dmask, _color, _mode, _memory, _len) \ if (DBG_DebugFlag & (_dmask)) \ { \ DBG_DebugHexDump( _dmask, _color, _mode, _memory, _len); \ } /* Defines for Debug Hex Dump's Debug Mode flag */ #define DHD_DM_BYTE 0x0001 #define DHD_DM_ASCII 0x8000 extern void DBG_DebugHexDump( NINT debugMask, NINT debugColor, NINT displayMode, void *userArea, int len ); /* basic I/O routine for output to the PSS screen, do NOT call this directly*/ extern void DBG_DebugPrintf( NINT attr, const char *formatStr, ...); /* basic I/O routine for output to the NSS Debug Screen */ extern void DBG_ScreenAPrintf( char *maskString, char *where, NINT attr, const char *formatStr, ...); /*------------------------------------------------------------------------- * Macros used for TRACING code to the trace screen. *-------------------------------------------------------------------------*/ #if 0 #define ENTER(_tmask, _s_) \ { \ /*CHECK_INTERRUPTS();*/ \ if (DBG_TraceFlag != TNONE) \ { \ DBG_Denter(WHERE, _tmask, # _s_);\ } \ } #endif #define ENTER(_tamsk, _s_) \ { \ extern int pr(const char *); \ pr(WHERE # _s_); \ } #define INDENT() (DBG_Dindent()) /* * The exit routines prepare to return but * don't return. Useful in our MP code. */ #define EXIT_VOID() \ { \ if (DBG_TraceFlag != TNONE) \ DBG_DrtnVoid(WHERE); \ } #define RTN_VOID() \ { \ /*CHECK_INTERRUPTS();*/ \ if (DBG_TraceFlag != TNONE) \ DBG_DrtnVoid(WHERE); \ return; \ } #define RTN_SNINT(_i) \ { \ SNINT __i = (_i); \ /*CHECK_INTERRUPTS();*/ \ \ if (DBG_TraceFlag != TNONE) \ DBG_DrtnSNINT(WHERE, __i); \ return __i; \ } #define RTN_NINT(_i) \ { \ NINT __i = (_i); \ /*CHECK_INTERRUPTS();*/ \ \ if (DBG_TraceFlag != TNONE) \ DBG_DrtnNINT(WHERE, __i); \ return __i; \ } #define RTN_BLOCK(_i) \ { \ Blknum_t __i = (_i); \ /*CHECK_INTERRUPTS();*/ \ \ if (DBG_TraceFlag != TNONE) \ DBG_DrtnNINT(WHERE, __i); \ return __i; \ } #define RTN_BYTE(_i) \ { \ BYTE __i = (_i); \ /*CHECK_INTERRUPTS();*/ \ \ if (DBG_TraceFlag != TNONE) \ DBG_DrtnNINT(WHERE, __i); \ return __i; \ } #define RTN_BOOL(_i) \ { \ BOOL __i = (_i); \ /*CHECK_INTERRUPTS();*/ \ \ if (DBG_TraceFlag != TNONE) \ DBG_DrtnNINT(WHERE, __i); \ return __i; \ } #define RTN_STATUS(_i) \ { \ STATUS __i = (_i); \ /*CHECK_INTERRUPTS();*/ \ \ if (DBG_TraceFlag != TNONE) \ DBG_DrtnStatus(WHERE, __i); \ return __i; \ } #define RTN_PTR(_p) \ { \ void *__p = (_p); \ /*CHECK_INTERRUPTS();*/ \ \ if (DBG_TraceFlag != TNONE) \ DBG_DrtnPtr(WHERE, __p); \ return __p; \ } #define RTN_LONG(_i) \ { \ NINT __i = (_i); \ /*CHECK_INTERRUPTS();*/ \ \ if (DBG_TraceFlag != TNONE) \ DBG_DrtnNINT(WHERE, __i); \ return __i; \ } #define RTN_ZID(_i) \ { \ Zid_t __i = (_i); \ /*CHECK_INTERRUPTS();*/ \ \ if (DBG_TraceFlag != TNONE) \ DBG_DrtnQUAD(WHERE, __i); \ return __i; \ } #define RTN_MPKUNLOCK_VOID() \ { \ /*CHECK_INTERRUPTS();*/ \ if (DBG_TraceFlag != TNONE) \ DBG_DrtnVoid(WHERE); \ MPKNSS_UNLOCK(); \ return; \ } #define RTN_MPKUNLOCK_SNINT(_i) \ { \ SNINT __i = (_i); \ /*CHECK_INTERRUPTS();*/ \ \ if (DBG_TraceFlag != TNONE) \ DBG_DrtnSNINT(WHERE, __i); \ MPKNSS_UNLOCK(); \ return __i; \ } #define RTN_MPKUNLOCK_NINT(_i) \ { \ NINT __i = (_i); \ /*CHECK_INTERRUPTS();*/ \ \ if (DBG_TraceFlag != TNONE) \ DBG_DrtnNINT(WHERE, __i); \ MPKNSS_UNLOCK(); \ return __i; \ } #define RTN_MPKUNLOCK_BLOCK(_i) \ { \ Blknum_t __i = (_i); \ /*CHECK_INTERRUPTS();*/ \ \ if (DBG_TraceFlag != TNONE) \ DBG_DrtnNINT(WHERE, __i); \ MPKNSS_UNLOCK(); \ return __i; \ } #define RTN_MPKUNLOCK_BYTE(_i) \ { \ BYTE __i = (_i); \ /*CHECK_INTERRUPTS();*/ \ \ if (DBG_TraceFlag != TNONE) \ DBG_DrtnNINT(WHERE, __i); \ MPKNSS_UNLOCK(); \ return __i; \ } #define RTN_MPKUNLOCK_BOOL(_i) \ { \ BOOL __i = (_i); \ /*CHECK_INTERRUPTS();*/ \ \ if (DBG_TraceFlag != TNONE) \ DBG_DrtnNINT(WHERE, __i); \ MPKNSS_UNLOCK(); \ return __i; \ } #define RTN_MPKUNLOCK_STATUS(_i) \ { \ STATUS __i = (_i); \ /*CHECK_INTERRUPTS();*/ \ \ if (DBG_TraceFlag != TNONE) \ DBG_DrtnStatus(WHERE, __i); \ MPKNSS_UNLOCK(); \ return __i; \ } #define RTN_MPKUNLOCK_PTR(_p) \ { \ void *__p = (_p); \ /*CHECK_INTERRUPTS();*/ \ \ if (DBG_TraceFlag != TNONE) \ DBG_DrtnPtr(WHERE, __p); \ MPKNSS_UNLOCK(); \ return __p; \ } #define RTN_MPKUNLOCK_LONG(_i) \ { \ NINT __i = (_i); \ /*CHECK_INTERRUPTS();*/ \ \ if (DBG_TraceFlag != TNONE) \ DBG_DrtnNINT(WHERE, __i); \ MPKNSS_UNLOCK(); \ return __i; \ } #define RTN_MPKUNLOCK_ZID(_i) \ { \ Zid_t __i = (_i); \ /*CHECK_INTERRUPTS();*/ \ \ if (DBG_TraceFlag != TNONE) \ DBG_DrtnQUAD(WHERE, __i); \ MPKNSS_UNLOCK(); \ return __i; \ } #if 0 //#define DEBUG(_x_) ((void) (zDebug && (_x_))) //#define BUG(_x_) ((void)((_x_) && debug(WHERE " " #_x_))) //#define PRx(_x_) (prx(WHERE " " #_x_, (unsigned long)_x_)) //#define PRd(_x_) (prd(WHERE " " #_x_, (unsigned long)_x_)) //#define PRc(_x_) (prc(WHERE " " #_x_, (char)_x_)) //#define PRs(_x_) (prs(WHERE " " #_x_, (char *)_x_)) //#define PR(_s_) (pr(WHERE " " #_s_)) //#define HERE (here(WHERE)) //#define STOP (stop(WHERE)) // //#define TPRx(_t_,_x_) ((void)(zDebug && (_t_) && \ // prx(WHERE " " #_x_, (unsigned long)_x_))) // //#define TPRd(_t_,_x_) ((void)(zDebug && (_t_) && \ // prd(WHERE " " #_x_, (unsigned long)_x_))) // //#define TPRc(_t_,_x_) ((void)(zDebug && (_t_) && \ // prc(WHERE " " #_x_, (char)_x_))) // //#define TPR(_t_,_x_) ((void)(zDebug && (_t_) && \ // pr(WHERE, #_x_))) // //#define TSPY(_t_) ((void)(zDebug && (_t_) && SPY)) //#define TSTOP(_t_) ((void)(zDebug && (_t_) && STOP)) //#define TEST(_t_) ((void)(zDebug && (_t_) && \ // pr(WHERE " " #_t_))) //#define T(_t_,_x_) ((void)(zDebug && (_t_) && \ // pr(WHERE " " #_x_))) // // //#define DPRx(_x_) ((void)(zDebug && \ // prx(WHERE " " #_x_, (unsigned long)_x_))) // //#define DPRd(_x_) ((void)(zDebug && \ // prd(WHERE " " #_x_, (unsigned long)_x_))) // //#define DPRc(_x_) ((void)(zDebug && \ // prc(WHERE " " #_x_, (char)_x_))) // //#define DPRs(_x_) ((void)(zDebug && \ // prs(WHERE " " #_x_, (char *)_x_))) // //#define DPR(_x_) ((void)(zDebug && \ // pr(WHERE " " #_x_))) // //#define DHERE ((void)(zDebug && HERE)) //#define DSTOP ((void)(zDebug && STOP)) // //#define TR(_t_, _x_) ((void)((zTrace & (_t_)) && \ // tr(WHERE " " #_x_))) // //#define TR1(_t_, _x_) ((void)((zTrace & (_t_)) && \ // (zTraceLevel >= 1) && \ // tr(WHERE " " #_x_))) // //#define TR2(_t_, _x_) ((void)((zTrace & (_t_)) && \ // (zTraceLevel >= 2) && \ // tr(WHERE " " #_x_))) // //#define TR3(_t_, _x_) ((void)((zTrace & (_t_)) && \ // (zTraceLevel >= 3) && \ // tr(WHERE " " #_x_))) // //#define TR4(_t_, _x_) ((void)((zTrace & (_t_)) && \ // (zTraceLevel >= 4) && \ // tr(WHERE " " #_x_))) // //#define TR5(_t_, _x_) ((void)((zTrace & (_t_)) && \ // (zTraceLevel >= 5) && \ // tr(WHERE " " #_x_))) // //#define CNT(id) debugCount(WHERE " " # id) // //#define SETWHERE() (zDebugWhere = WHERE) //#define CLRWHERE() (zDebugWhere = NULL) // /*#define IN(_x_) (printDepth("in" #_x_), ++Depth)*/ /*#define OUT(_x_) (--Depth, printDepth("out" #_x_))*/ // // //#define ZIN(_msg, _zid, _logical, _physical) \ // (ztrace("IN " #_msg, (_zid), (_logical), (_physical))) // //#define ZOUT(_msg, _zid, _logical, _physical) \ // (ztrace("OUT " #_msg, (_zid), (_logical), (_physical))) #endif #else /* NSS_DEBUG */ /*========================================================================= * These are versions of the debug macros that do nothing *=========================================================================*/ #define NOT_IMPLEMENTED() ((void)0) #define CHOKE_DEBUG_LOG() ((void)0) #define INITDBGIO() ((void)0) #define DBGLOCK() ((void)0) #define DBGUNLOCK() ((void)0) //#define STUBBED() ((void)0) #if 0 //#define DEBUG(_x_) ((void) 0) // //#define PRx(_x_) ((void) 0) //#define PRd(_x_) ((void) 0) //#define PRc(_x_) ((void) 0) //#define PRs(_x_) ((void) 0) //#define PR(_s_) ((void) 0) //#define HERE ((void) 0) //#define STOP ((void) 0) // //#define TPRx(_x_) ((void) 0) //#define TPRd(_x_) ((void) 0) //#define TPRc(_x_) ((void) 0) //#define TPR(_s_) ((void) 0) //#define TSPY ((void) 0) //#define TSTOP ((void) 0) //#define T ((void) 0) // //#define DPRx(_x_) ((void) 0) //#define DPRd(_x_) ((void) 0) //#define DPRc(_x_) ((void) 0) //#define DPR(_s_) ((void) 0) //#define DSPY ((void) 0) //#define DSTOP ((void) 0) //#define TR(_t_, _x_) ((void) 0) //#define TR1(_t_, _x_) ((void) 0) //#define TR2(_t_, _x_) ((void) 0) //#define TR3(_t_, _x_) ((void) 0) //#define TR4(_t_, _x_) ((void) 0) //#define TR5(_t_, _x_) ((void) 0) // //#define CNT(id) ((void) 0) // //#define SETWHERE() ((void) 0) //#define CLRWHERE() ((void) 0) // //#define IN(_x_) ((void) 0) //#define OUT(_x_) ((void) 0) // //#define ZIN(_msg, _zid, _logical, _physical) ((void) 0) //#define ZOUT(_msg, _zid, _logical, _physical) ((void) 0) #endif #define DEBUG_PRINTF(_mask,_flag,_ioprms) ((void) 0) //#define TRACE_PRINTF(_dmask,_tmask,_ioprms) ((void) 0) //#define TRACE_NOINDENT_PRINTF(_dmask,_tmask,_ioprms) ((void) 0) #define DEBUG_HEX_DUMP(_dmask, _color, _mode, _memory, _len) ((void) 0) #define ENTER(_t,_s) ((void) 0) #define INDENT() ((void) 0) #define EXIT_VOID() ((void) 0) #define RTN_VOID() return #define RTN_SNINT(_i) return (_i) #define RTN_NINT(_i) return (_i) #define RTN_BLOCK(_i) return (_i) #define RTN_BYTE(_i) return (_i) #define RTN_BOOL(_i) return (_i) #define RTN_STATUS(_i) return (_i) #define RTN_PTR(_p) return (_p) #define RTN_LONG(_p) return (_p) #define RTN_ZID(_q) return (_q) #define RTN_MPKUNLOCK_VOID() MPKNSS_UNLOCK(); return #define RTN_MPKUNLOCK_SNINT(_i) MPKNSS_UNLOCK(); return (_i) #define RTN_MPKUNLOCK_NINT(_i) MPKNSS_UNLOCK(); return (_i) #define RTN_MPKUNLOCK_BLOCK(_i) MPKNSS_UNLOCK(); return (_i) #define RTN_MPKUNLOCK_BYTE(_i) MPKNSS_UNLOCK(); return (_i) #define RTN_MPKUNLOCK_BOOL(_i) MPKNSS_UNLOCK(); return (_i) #define RTN_MPKUNLOCK_STATUS(_i) MPKNSS_UNLOCK(); return (_i) #define RTN_MPKUNLOCK_PTR(_p) MPKNSS_UNLOCK(); return (_p) #define RTN_MPKUNLOCK_LONG(_p) MPKNSS_UNLOCK(); return (_p) #define RTN_MPKUNLOCK_ZID(_q) MPKNSS_UNLOCK(); return (_q) #endif /* NSS_DEBUG */ #ifdef __cplusplus } #endif #endif /* _PSSDEBUG_H_ */