* Sync up to trunk head (r64959).
[reactos.git] / drivers / base / kdcom / kddll.h
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@ewactos.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 typedef ULONG (*PFNDBGPRNT)(const char *Format, ...);
19 extern PFNDBGPRNT KdpDbgPrint;
20
21 #ifndef KDDEBUG
22 #define KDDBGPRINT(...)
23 #else
24 #define KDDBGPRINT KdpDbgPrint
25 #endif
26
27 typedef enum
28 {
29 KDP_PACKET_RECEIVED = 0,
30 KDP_PACKET_TIMEOUT = 1,
31 KDP_PACKET_RESEND = 2
32 } KDP_STATUS;
33
34 VOID
35 NTAPI
36 KdpSendBuffer(
37 IN PVOID Buffer,
38 IN ULONG Size);
39
40 KDP_STATUS
41 NTAPI
42 KdpReceiveBuffer(
43 OUT PVOID Buffer,
44 IN ULONG Size);
45
46 KDP_STATUS
47 NTAPI
48 KdpReceivePacketLeader(
49 OUT PULONG PacketLeader);
50
51 VOID
52 NTAPI
53 KdpSendByte(IN UCHAR Byte);
54
55 KDP_STATUS
56 NTAPI
57 KdpPollByte(OUT PUCHAR OutByte);
58
59 KDP_STATUS
60 NTAPI
61 KdpReceiveByte(OUT PUCHAR OutByte);
62
63 KDP_STATUS
64 NTAPI
65 KdpPollBreakIn(VOID);
66
67 #endif /* _KDDLL_H_ */