xref: /reactos/ntoskrnl/include/internal/kd.h (revision 2046a17e)
1 #pragma once
2 
3 #include <cportlib/cportlib.h>
4 
5 //
6 // Kernel Debugger Port Definition
7 //
8 
9 BOOLEAN
10 NTAPI
11 KdPortInitializeEx(
12     PCPPORT PortInformation,
13     ULONG ComPortNumber
14 );
15 
16 BOOLEAN
17 NTAPI
18 KdPortGetByteEx(
19     PCPPORT PortInformation,
20     PUCHAR ByteReceived);
21 
22 VOID
23 NTAPI
24 KdPortPutByteEx(
25     PCPPORT PortInformation,
26     UCHAR ByteToSend
27 );
28 
29 #ifdef _NTOSKRNL_
30 
31 /* KD GLOBALS ****************************************************************/
32 
33 /* KD Internal Debug Services */
34 typedef enum _KDP_DEBUG_SERVICE
35 {
36     DumpNonPagedPool = 0x1e, /* a */
37     ManualBugCheck = 0x30, /* b */
38     DumpNonPagedPoolStats = 0x2e, /* c */
39     DumpNewNonPagedPool = 0x20, /* d */
40     DumpNewNonPagedPoolStats = 0x12, /* e */
41     DumpAllThreads = 0x21, /* f */
42     DumpUserThreads = 0x22, /* g */
43     KdSpare1 = 0x23, /* h */
44     KdSpare2 = 0x17, /* i */
45     KdSpare3 = 0x24, /* j */
46     EnterDebugger = 0x25,  /* k */
47     ThatsWhatSheSaid = 69 /* FIGURE IT OUT */
48 } KDP_DEBUG_SERVICE;
49 
50 #endif // _NTOSKRNL_
51 
52 #if DBG && defined(_M_IX86) && !defined(_WINKD_) // See ke/i386/traphdlr.c
53 #define ID_Win32PreServiceHook 'WSH0'
54 #define ID_Win32PostServiceHook 'WSH1'
55 typedef void (NTAPI *PKDBG_PRESERVICEHOOK)(ULONG, PULONG_PTR);
56 typedef ULONG_PTR (NTAPI *PKDBG_POSTSERVICEHOOK)(ULONG, ULONG_PTR);
57 extern PKDBG_PRESERVICEHOOK KeWin32PreServiceHook;
58 extern PKDBG_POSTSERVICEHOOK KeWin32PostServiceHook;
59 #endif
60