abbd6d31d4495f84aaccac50c8d26225a6266927
[reactos.git] / reactos / drivers / base / kddll / 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 #pragma once
10
11 #define NOEXTAPI
12 #include <ntifs.h>
13 #define NDEBUG
14 #include <halfuncs.h>
15 #include <stdio.h>
16 #include <stdlib.h>
17 #include <debug.h>
18 #include "arc/arc.h"
19 #include "windbgkd.h"
20
21 #include <wdbgexts.h>
22 #include <ioaccess.h> /* port intrinsics */
23
24 typedef UCHAR BYTE, *PBYTE;
25
26 typedef ULONG (*PFNDBGPRNT)(const char *Format, ...);
27 extern PFNDBGPRNT KdpDbgPrint;
28
29 typedef enum
30 {
31 KDP_PACKET_RECEIVED = 0,
32 KDP_PACKET_TIMEOUT = 1,
33 KDP_PACKET_RESEND = 2
34 } KDP_STATUS;
35
36 #ifndef KDDEBUG
37 #define KDDBGPRINT(...)
38 #else
39 #define KDDBGPRINT KdpDbgPrint
40 #endif
41
42 VOID
43 NTAPI
44 KdpSendBuffer(
45 IN PVOID Buffer,
46 IN ULONG Size);
47
48 KDP_STATUS
49 NTAPI
50 KdpReceiveBuffer(
51 OUT PVOID Buffer,
52 IN ULONG Size);
53
54 KDP_STATUS
55 NTAPI
56 KdpReceivePacketLeader(
57 OUT PULONG PacketLeader);
58
59 VOID
60 NTAPI
61 KdpSendByte(IN BYTE Byte);
62
63 KDP_STATUS
64 NTAPI
65 KdpPollByte(OUT PBYTE OutByte);
66
67 KDP_STATUS
68 NTAPI
69 KdpReceiveByte(OUT PBYTE OutByte);
70
71 KDP_STATUS
72 NTAPI
73 KdpPollBreakIn();
74
75
76 #if 0
77 NTSTATUS
78 NTAPI
79 KdDebuggerInitialize0(
80 IN PLOADER_PARAMETER_BLOCK LoaderBlock OPTIONAL);
81 #endif