f0c755dbfe2361157068f7d5a20269988175e0a2
[reactos.git] / ntoskrnl / dbg / print.c
1 /*
2  *  ReactOS kernel
3  *  Copyright (C) 1998, 1999, 2000, 2001 ReactOS Team
4  *
5  *  This program is free software; you can redistribute it and/or modify
6  *  it under the terms of the GNU General Public License as published by
7  *  the Free Software Foundation; either version 2 of the License, or
8  *  (at your option) any later version.
9  *
10  *  This program is distributed in the hope that it will be useful,
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  *  GNU General Public License for more details.
14  *
15  *  You should have received a copy of the GNU General Public License
16  *  along with this program; if not, write to the Free Software
17  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  */
19 /* $Id$
20  *
21  * COPYRIGHT:       See COPYING in the top level directory
22  * PROJECT:         ReactOS kernel
23  * FILE:            ntoskrnl/dbg/print.c
24  * PURPOSE:         Debug output 
25  * PROGRAMMER:      Eric Kohl (ekohl@abo.rhein-zeitung.de)
26  * PORTABILITY:     Unchecked
27  * UPDATE HISTORY:
28  *                  14/10/99: Created
29  */
30
31 /* INCLUDES *****************************************************************/
32
33 #include <ddk/ntddk.h>
34 #include <internal/kd.h>
35
36
37 /* FUNCTIONS ****************************************************************/
38
39 #if 0
40 ULONG DbgService (ULONG Service, PVOID Context1, PVOID Context2);
41 __asm__ ("\n\t.global _DbgService\n\t"
42          "_DbgService:\n\t"
43          "mov 4(%esp), %eax\n\t"
44          "mov 8(%esp), %ecx\n\t"
45          "mov 12(%esp), %edx\n\t"
46          "int $0x2D\n\t"
47          "ret\n\t");
48 #endif
49
50 /*
51  * Note: DON'T CHANGE THIS FUNCTION!!!
52  *       DON'T CALL HalDisplayString OR SOMETING ELSE!!!
53  *       You'll only break the serial/bochs debugging feature!!!
54  */
55
56 ULONG 
57 DbgPrint(PCH Format, ...)
58 {
59    ANSI_STRING DebugString;
60    CHAR Buffer[1024];
61    va_list ap;
62
63    /* init ansi string */
64    DebugString.Buffer = Buffer;
65    DebugString.MaximumLength = sizeof(Buffer);
66
67    va_start (ap, Format);
68    DebugString.Length = _vsnprintf (Buffer, sizeof( Buffer ), Format, ap);
69    va_end (ap);
70
71    KdpPrintString (&DebugString);
72
73    return (ULONG)DebugString.Length;
74 }
75
76
77 VOID STDCALL
78 DbgPrompt (PCH OutputString,
79            PCH InputString,
80            USHORT InputSize)
81 {
82    ANSI_STRING Output;
83    ANSI_STRING Input;
84    
85    Input.Length = 0;
86    Input.MaximumLength = InputSize;
87    Input.Buffer = InputString;
88    
89    Output.Length = strlen (OutputString);
90    Output.MaximumLength = Output.Length + 1;
91    Output.Buffer = OutputString;
92
93    /* FIXME: Not implemented yet! */
94    //   KdpPromptString (&Output,
95    //                    &Input);
96 }
97
98 /* EOF */