xref: /reactos/drivers/base/kdcom/kddll.h (revision 5100859e)
1 /*
2  * COPYRIGHT:       GPL, see COPYING in the top level directory
3  * PROJECT:         ReactOS kernel
4  * FILE:            drivers/base/kddll/kddll.h
5  * PURPOSE:         Base definitions for the kernel debugger.
6  * PROGRAMMER:      Timo Kreuzer (timo.kreuzer@reactos.org)
7  */
8 
9 #ifndef _KDDLL_H_
10 #define _KDDLL_H_
11 
12 #define NOEXTAPI
13 #include <ntifs.h>
14 #include <windbgkd.h>
15 
16 // #define KDDEBUG /* uncomment to enable debugging this dll */
17 
18 #ifndef KDDEBUG
19 #define KDDBGPRINT(...)
20 #else
21 extern ULONG KdpDbgPrint(const char* Format, ...);
22 #define KDDBGPRINT KdpDbgPrint
23 #endif
24 
25 typedef enum
26 {
27     KDP_PACKET_RECEIVED = 0,
28     KDP_PACKET_TIMEOUT  = 1,
29     KDP_PACKET_RESEND   = 2
30 } KDP_STATUS;
31 
32 VOID
33 NTAPI
34 KdpSendBuffer(
35     IN PVOID Buffer,
36     IN ULONG Size);
37 
38 KDP_STATUS
39 NTAPI
40 KdpReceiveBuffer(
41     OUT PVOID Buffer,
42     IN  ULONG Size);
43 
44 KDP_STATUS
45 NTAPI
46 KdpReceivePacketLeader(
47     OUT PULONG PacketLeader);
48 
49 VOID
50 NTAPI
51 KdpSendByte(IN UCHAR Byte);
52 
53 KDP_STATUS
54 NTAPI
55 KdpPollByte(OUT PUCHAR OutByte);
56 
57 KDP_STATUS
58 NTAPI
59 KdpReceiveByte(OUT PUCHAR OutByte);
60 
61 KDP_STATUS
62 NTAPI
63 KdpPollBreakIn(VOID);
64 
65 #endif /* _KDDLL_H_ */
66