148 lines
2.1 KiB
C
148 lines
2.1 KiB
C
/*++
|
||
|
||
Copyright (c) 1993 Microsoft Corporation
|
||
Copyright (c) 1993 Logitech Inc.
|
||
|
||
Module Name:
|
||
|
||
debug.c
|
||
|
||
Abstract:
|
||
|
||
Debugging support routines.
|
||
|
||
Environment:
|
||
|
||
Kernel mode only.
|
||
|
||
Notes:
|
||
|
||
Revision History:
|
||
|
||
--*/
|
||
|
||
#include "stdarg.h"
|
||
#include "stdio.h"
|
||
#include "string.h"
|
||
#include "ntddk.h"
|
||
#include "debug.h"
|
||
|
||
|
||
#if DBG
|
||
//
|
||
// Declare the global debug flag for this driver.
|
||
//
|
||
|
||
ULONG SerialMouseDebug = 0;
|
||
|
||
//
|
||
// Undocumented call (prototype).
|
||
// Use it to avoid timing problems and conflicts with the serial device.
|
||
// This call is valid only during initialization and before the display
|
||
// driver takes ownership of the display.
|
||
//
|
||
|
||
VOID HalDisplayString(PSZ Buffer);
|
||
|
||
static ULONG DebugOutput = DBG_SERIAL;
|
||
|
||
VOID
|
||
_SerMouSetDebugOutput(
|
||
IN ULONG Destination
|
||
)
|
||
/*++
|
||
|
||
Routine Description:
|
||
|
||
Set the destination of the debugging string. The options are:
|
||
DBG_COLOR: Main computer screen.
|
||
DBG_SERIAL: Serial debugger port
|
||
|
||
Note: The output to the DBG_COLOR screen can be used only during
|
||
initilialization before we switch to graphical mode.
|
||
|
||
Arguments:
|
||
|
||
Destination - The debugging string destination.
|
||
|
||
Return Value:
|
||
|
||
None.
|
||
|
||
--*/
|
||
{
|
||
DebugOutput = Destination;
|
||
return;
|
||
}
|
||
|
||
int
|
||
_SerMouGetDebugOutput(
|
||
VOID
|
||
)
|
||
/*++
|
||
|
||
Routine Description:
|
||
|
||
Get the current debugger string output destination.
|
||
|
||
Arguments:
|
||
|
||
None.
|
||
|
||
Return Value:
|
||
|
||
Current debugging output destination.
|
||
|
||
--*/
|
||
{
|
||
return DebugOutput;
|
||
}
|
||
|
||
VOID
|
||
SerMouDebugPrint(
|
||
ULONG DebugPrintLevel,
|
||
PCSZ DebugMessage,
|
||
...
|
||
)
|
||
|
||
/*++
|
||
|
||
Routine Description:
|
||
|
||
Debug print routine.
|
||
|
||
Arguments:
|
||
|
||
Debug print level between 0 and 3, with 3 being the most verbose.
|
||
|
||
Return Value:
|
||
|
||
None.
|
||
|
||
--*/
|
||
|
||
{
|
||
va_list ap;
|
||
|
||
va_start(ap, DebugMessage);
|
||
|
||
if (DebugPrintLevel <= SerialMouseDebug) {
|
||
|
||
CHAR buffer[128];
|
||
|
||
(VOID) vsprintf(buffer, DebugMessage, ap);
|
||
|
||
if (DebugOutput & DBG_SERIAL) {
|
||
DbgPrint(buffer);
|
||
}
|
||
|
||
if (DebugOutput & DBG_COLOR) {
|
||
HalDisplayString(buffer);
|
||
}
|
||
}
|
||
|
||
va_end(ap);
|
||
|
||
}
|
||
#endif
|