mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
151 lines
3.5 KiB
151 lines
3.5 KiB
/*++
|
|
|
|
Copyright (c) 1992-1996 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
debug.h
|
|
|
|
Abstract:
|
|
|
|
This file contains the macros for debugging.
|
|
|
|
Author:
|
|
|
|
Jameel Hyder ([email protected]) 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_
|