|
|
1.1 root 1: /*++
2:
3: Copyright (c) 1993 Microsoft Corporation
4: Copyright (c) 1993 Logitech Inc.
5:
6: Module Name:
7:
8: debug.c
9:
10: Abstract:
11:
12: Debugging support routines.
13:
14: Environment:
15:
16: Kernel mode only.
17:
18: Notes:
19:
20: Revision History:
21:
22: --*/
23:
24: #include "stdarg.h"
25: #include "stdio.h"
26: #include "string.h"
27: #include "ntddk.h"
28: #include "debug.h"
29:
30:
31: #if DBG
32: //
33: // Declare the global debug flag for this driver.
34: //
35:
36: ULONG SerialMouseDebug = 0;
37:
38: //
39: // Undocumented call (prototype).
40: // Use it to avoid timing problems and conflicts with the serial device.
41: // This call is valid only during initialization and before the display
42: // driver takes ownership of the display.
43: //
44:
45: VOID HalDisplayString(PSZ Buffer);
46:
47: static ULONG DebugOutput = DBG_SERIAL;
48:
49: VOID
50: _SerMouSetDebugOutput(
51: IN ULONG Destination
52: )
53: /*++
54:
55: Routine Description:
56:
57: Set the destination of the debugging string. The options are:
58: DBG_COLOR: Main computer screen.
59: DBG_SERIAL: Serial debugger port
60:
61: Note: The output to the DBG_COLOR screen can be used only during
62: initilialization before we switch to graphical mode.
63:
64: Arguments:
65:
66: Destination - The debugging string destination.
67:
68: Return Value:
69:
70: None.
71:
72: --*/
73: {
74: DebugOutput = Destination;
75: return;
76: }
77:
78: int
79: _SerMouGetDebugOutput(
80: VOID
81: )
82: /*++
83:
84: Routine Description:
85:
86: Get the current debugger string output destination.
87:
88: Arguments:
89:
90: None.
91:
92: Return Value:
93:
94: Current debugging output destination.
95:
96: --*/
97: {
98: return DebugOutput;
99: }
100:
101: VOID
102: SerMouDebugPrint(
103: ULONG DebugPrintLevel,
104: PCSZ DebugMessage,
105: ...
106: )
107:
108: /*++
109:
110: Routine Description:
111:
112: Debug print routine.
113:
114: Arguments:
115:
116: Debug print level between 0 and 3, with 3 being the most verbose.
117:
118: Return Value:
119:
120: None.
121:
122: --*/
123:
124: {
125: va_list ap;
126:
127: va_start(ap, DebugMessage);
128:
129: if (DebugPrintLevel <= SerialMouseDebug) {
130:
131: CHAR buffer[128];
132:
133: (VOID) vsprintf(buffer, DebugMessage, ap);
134:
135: if (DebugOutput & DBG_SERIAL) {
136: DbgPrint(buffer);
137: }
138:
139: if (DebugOutput & DBG_COLOR) {
140: HalDisplayString(buffer);
141: }
142: }
143:
144: va_end(ap);
145:
146: }
147: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.