windows-nt/Source/XPSP1/NT/base/busdrv/acpi/tools/kdext/udebug.c
2020-09-26 16:20:57 +08:00

197 lines
3.1 KiB
C
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*++
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 );
}
}