/*++ Copyright (c) 1992-1996 Microsoft Corporation Module Name: debug.h Abstract: This file contains the macros for debugging. Author: Jameel Hyder (jameelh@microsoft.com) July 1996 Environment: Kernel mode Revision History: --*/ #ifndef _DEBUG_ #define _DEBUG_ #define FILENUM_ARPS 0x010000 #define FILENUM_MARS 0x020000 #define FILENUM_NDIS 0x040000 #define FILENUM_TIMER 0x080000 #define FILENUM_DATA 0x100000 #define FILENUM_REGISTRY 0x200000 #define FILENUM_IOCTL 0x400000 #define FILENUM_UTIL 0x800000 #define DBG_LEVEL_LOUD 0x0000 #define DBG_LEVEL_INFO 0x1000 #define DBG_LEVEL_NOTICE 0x2000 #define DBG_LEVEL_WARN 0x3000 #define DBG_LEVEL_ERROR 0x4000 #define DBG_LEVEL_FATAL 0x4000 #define DBG_NO_HDR 0x0001 #if DBG extern ULONG ArpSDebugLevel; extern ULONG MarsDebugLevel; #define ARPS_PAGED_CODE() \ if (KeGetCurrentIrql() > APC_LEVEL) \ { \ DbgPrint("Pageable code called at IRQL %d, file %s, line %d\n", \ KeGetCurrentIrql(), __FILE__, __LINE__); \ } #define ARPS_GET_IRQL(_pIrql) *(_pIrql) = KeGetCurrentIrql(); #define ARPS_CHECK_IRQL(_Irql) \ { \ KIRQL NowIrql = KeGetCurrentIrql(); \ if (_Irql != NowIrql) \ { \ DbgPrint("***ATMARPS***: old irq %d != new irq %d!\n", \ _Irql, NowIrql); \ DbgPrint("File: %s, line %d\n", __FILE__, __LINE__);\ DbgBreakPoint(); \ } \ } #define DBGPRINT(Level, Fmt) \ { \ if ((Level) >= ArpSDebugLevel) \ { \ if (((Level) & DBG_NO_HDR) == 0) \ DbgPrint("***ATMARPS*** "); \ DbgPrint Fmt; \ } \ } #define MARSDBGPRINT(Level, Fmt) \ { \ if ((Level) >= MarsDebugLevel) \ { \ if (((Level) & DBG_NO_HDR) == 0) \ DbgPrint("MARS: "); \ DbgPrint Fmt; \ } \ } #define MARSDUMPIPADDR(Level, Addr, Str) \ { \ if ((Level) >= MarsDebugLevel) \ { \ MarsDumpIpAddr(Addr, Str); \ } \ } #define MARSDUMPATMADDR(Level, Addr, Str) \ { \ if ((Level) >= MarsDebugLevel) \ { \ MarsDumpAtmAddr(Addr, Str); \ } \ } #define MARSDUMPMAP(Level, Str, IpAddr, pAtmAddr) \ { \ if ((Level) >= MarsDebugLevel) \ { \ MarsDumpMap(Str, IpAddr, pAtmAddr); \ } \ } #define DBGBRK(Level) \ { \ if ((Level) >= ArpSDebugLevel) \ DbgBreakPoint(); \ } #define LOG_ERROR(_s) DBGPRINT(DBG_LEVEL_ERROR, \ ("***ATMARPS*** ErrLog (%lx)@ %s (%ld)\n", \ _s, __FILE__, __LINE__)); #define ARPS_ASSERT(exp) \ { \ if (!(exp)) \ { \ DbgPrint("***ATMARPS*** Assert " #exp " failed: file %s, line %d\n", \ __FILE__, __LINE__); \ DbgBreakPoint(); \ } \ } #else #define ARPS_PAGED_CODE() #define ARPS_GET_IRQL(_pIrql) #define ARPS_CHECK_IRQL(Irql) #define DBGPRINT(Level, Fmt) #define MARSDBGPRINT(Level, Fmt) #define MARSDUMPIPADDR(Level, Addr, Str) #define MARSDUMPATMADDR(Level, Addr, Str) #define MARSDUMPMAP(Level, Str, IpAddr, pAtmAddr) #define DBGBRK(Level) #define LOG_ERROR(s) #define ARPS_ASSERT(exp) #endif // DBG #endif // _DEBUG_