mirror of
https://github.com/QB64Official/qb64.git
synced 2024-08-22 02:05:08 +00:00
142 lines
3.2 KiB
C
142 lines
3.2 KiB
C
/*
|
|
* ksdebug.h
|
|
*
|
|
* This file is part of the ReactOS PSDK package.
|
|
*
|
|
* Contributors:
|
|
* Created by Magnus Olsen.
|
|
*
|
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
|
*
|
|
* This source code is offered for use in the public domain. You may
|
|
* use, modify or distribute it freely.
|
|
*
|
|
* This code is distributed in the hope that it will be useful but
|
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
|
* DISCLAIMED. This includes but is not limited to warranties of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
*
|
|
*/
|
|
|
|
#include <evntrace.h>
|
|
|
|
#if !defined(_KSDEBUG_)
|
|
#define _KSDEBUG_
|
|
|
|
#if !defined(REMIND)
|
|
#define QUOTE(x) #x
|
|
#define QQUOTE(y) QUOTE(y)
|
|
#define REMIND(str) __FILE__ "(" QQUOTE(__LINE__) ") : " str
|
|
#endif
|
|
|
|
#if defined(__cplusplus)
|
|
extern "C" {
|
|
#endif
|
|
|
|
#if (DBG)
|
|
|
|
#if defined(IRPMJFUNCDESC)
|
|
static const PCHAR IrpMjFuncDesc[] = {
|
|
"IRP_MJ_CREATE",
|
|
"IRP_MJ_CREATE_NAMED_PIPE",
|
|
"IRP_MJ_CLOSE",
|
|
"IRP_MJ_READ",
|
|
"IRP_MJ_WRITE",
|
|
"IRP_MJ_QUERY_INFORMATION",
|
|
"IRP_MJ_SET_INFORMATION",
|
|
"IRP_MJ_QUERY_EA",
|
|
"IRP_MJ_SET_EA",
|
|
"IRP_MJ_FLUSH_BUFFERS",
|
|
"IRP_MJ_QUERY_VOLUME_INFORMATION",
|
|
"IRP_MJ_SET_VOLUME_INFORMATION",
|
|
"IRP_MJ_DIRECTORY_CONTROL",
|
|
"IRP_MJ_FILE_SYSTEM_CONTROL",
|
|
"IRP_MJ_DEVICE_CONTROL",
|
|
"IRP_MJ_INTERNAL_DEVICE_CONTROL",
|
|
"IRP_MJ_SHUTDOWN",
|
|
"IRP_MJ_LOCK_CONTROL",
|
|
"IRP_MJ_CLEANUP",
|
|
"IRP_MJ_CREATE_MAILSLOT",
|
|
"IRP_MJ_QUERY_SECURITY",
|
|
"IRP_MJ_SET_SECURITY",
|
|
"IRP_MJ_SET_POWER",
|
|
"IRP_MJ_QUERY_POWER"
|
|
};
|
|
#endif /* defined(IRPMJFUNCDESC) */
|
|
|
|
#endif /* DBG */
|
|
|
|
#if defined(_NTDDK_)
|
|
|
|
#define DEBUGLVL_BLAB TRACE_LEVEL_VERBOSE
|
|
#define DEBUGLVL_VERBOSE TRACE_LEVEL_VERBOSE
|
|
#define DEBUGLVL_TERSE TRACE_LEVEL_INFORMATION
|
|
#define DEBUGLVL_ERROR TRACE_LEVEL_ERROR
|
|
|
|
#define DEBUGLVL_WARNING TRACE_LEVEL_WARNING
|
|
#define DEBUGLVL_INFO TRACE_LEVEL_INFORMATION
|
|
|
|
#if (DBG)
|
|
# if !defined( DEBUG_LEVEL )
|
|
# if defined( DEBUG_VARIABLE )
|
|
# if defined( KSDEBUG_INIT )
|
|
ULONG DEBUG_VARIABLE = DEBUGLVL_TERSE;
|
|
# else
|
|
extern ULONG DEBUG_VARIABLE;
|
|
# endif
|
|
# else
|
|
# define DEBUG_VARIABLE DEBUGLVL_TERSE
|
|
# endif
|
|
# else
|
|
# if defined( DEBUG_VARIABLE )
|
|
# if defined( KSDEBUG_INIT )
|
|
ULONG DEBUG_VARIABLE = DEBUG_LEVEL;
|
|
# else
|
|
extern ULONG DEBUG_VARIABLE;
|
|
# endif
|
|
# else
|
|
# define DEBUG_VARIABLE DEBUG_LEVEL
|
|
# endif
|
|
# endif
|
|
|
|
#if (NTDDI_VERSION >= NTDDI_WINXP)
|
|
# define _DbgPrintFEx(component, lvl, strings) { \
|
|
if ((lvl) <= DEBUG_VARIABLE) { \
|
|
DbgPrintEx(component, lvl, STR_MODULENAME); \
|
|
DbgPrintEx(component, lvl, strings); \
|
|
DbgPrintEx(component, lvl, "\n"); \
|
|
if ((lvl) == DEBUGLVL_ERROR) { \
|
|
DbgBreakPoint(); \
|
|
} \
|
|
} \
|
|
}
|
|
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
|
|
|
|
# define _DbgPrintF(lvl, strings) { \
|
|
if (((lvl)==DEBUG_VARIABLE) || (lvl < DEBUG_VARIABLE)) { \
|
|
DbgPrint(STR_MODULENAME); \
|
|
DbgPrint##strings; \
|
|
DbgPrint("\n"); \
|
|
if ((lvl) == DEBUGLVL_ERROR) { \
|
|
DbgBreakPoint(); \
|
|
} \
|
|
} \
|
|
}
|
|
|
|
#else /* ! DBG */
|
|
|
|
#define _DbgPrintF(lvl, strings)
|
|
|
|
#if (NTDDI_VERSION >= NTDDI_WINXP)
|
|
#define _DbgPrintFEx(component, lvl, strings)
|
|
#endif
|
|
|
|
#endif /* DBG */
|
|
|
|
#endif /* defined(_NTDDK_) */
|
|
|
|
#if defined(__cplusplus)
|
|
}
|
|
#endif
|
|
|
|
#endif /* _KSDEBUG_ */
|