windows-nt/Source/XPSP1/NT/base/busdrv/acpi/tools/kdext/udebug.c

197 lines
3.1 KiB
C
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
/*++
Copyright (c) 1997 Microsoft Corporation
Module Name:
debug.c
Abstract:
Various helpful debugging functions
Author:
Based on code by Mike Tsang (MikeTs)
Stephane Plante (Splante)
Environment:
User mode only
Revision History:
--*/
#include "pch.h"
ULONG globalDebugIndentLevel = 0;
ULONG globalVerbosityLevel = 0;
UCHAR DebugMessageBuffer[2048];
VOID
IndentProcedure(
VOID
)
{
ULONG i;
for (i = 0; i < globalDebugIndentLevel; i++) {
if (GlobalPrintFnc != NULL) {
GlobalPrintFnc("| ");
} else {
fprintf( stderr, "| ");
}
}
}
VOID
DebugEnterProcedure(
ULONG VerbosityLevel,
PCCHAR Format,
...
)
/*++
Routine Description:
This routine handles displaying of information when a procedure is
entered
Arguments:
Verbosity - We have to be at this verbosity level to display a string
Format - String to print
... - Arguments
Return Value:
None
--*/
{
va_list marker;
if (VerbosityLevel <= globalVerbosityLevel) {
IndentProcedure();
va_start( marker, Format );
if (GlobalPrintFnc != NULL) {
vsprintf( DebugMessageBuffer, Format, marker );
GlobalPrintFnc( DebugMessageBuffer );
} else {
vfprintf( stderr, Format, marker );
fflush( stderr );
}
va_end ( marker );
}
globalDebugIndentLevel++;
}
VOID
DebugExitProcedure(
ULONG VerbosityLevel,
PCCHAR Format,
...
)
/*++
Routine Description:
This routine handles displaying of information when a procedure is
exited
Arguments:
Verbosity - We have to be at this verbosity level to display a string
Format - String to print
... - Arguments
Return Value:
None
--*/
{
va_list marker;
globalDebugIndentLevel--;
if (VerbosityLevel <= globalVerbosityLevel) {
IndentProcedure();
va_start( marker, Format );
if (GlobalPrintFnc != NULL) {
vsprintf( DebugMessageBuffer, Format, marker );
GlobalPrintFnc( DebugMessageBuffer );
} else {
vfprintf( stderr, Format, marker );
fflush( stderr );
}
va_end ( marker );
}
}
VOID
DebugPrintProcedure(
ULONG VerbosityLevel,
PCCHAR Format,
...
)
/*++
Routine Description:
This routine handles displaying of information when a procedure is
exited
Arguments:
Verbosity - We have to be at this verbosity level to display a string
Format - String to print
... - Arguments
Return Value:
None
--*/
{
va_list marker;
if (VerbosityLevel <= globalVerbosityLevel) {
IndentProcedure();
va_start( marker, Format );
if (GlobalPrintFnc != NULL) {
vsprintf( DebugMessageBuffer, Format, marker );
GlobalPrintFnc( DebugMessageBuffer );
} else {
vfprintf( stderr, Format, marker );
fflush( stderr );
}
va_end ( marker );
}
}