- Add kd64 folder for KD64 6.0 implementation.
[reactos.git] / reactos / ntoskrnl / include / internal / kd.h
1 typedef
2 BOOLEAN
3 (NTAPI *PKDEBUG_ROUTINE)(
4 IN PKTRAP_FRAME TrapFrame,
5 IN PKEXCEPTION_FRAME ExceptionFrame,
6 IN PEXCEPTION_RECORD ExceptionRecord,
7 IN PCONTEXT Context,
8 IN KPROCESSOR_MODE PreviousMode,
9 IN BOOLEAN SecondChance
10 );
11
12 typedef
13 BOOLEAN
14 (NTAPI *PKDEBUG_SWITCH_ROUTINE)(
15 IN PEXCEPTION_RECORD ExceptionRecord,
16 IN PCONTEXT Context,
17 IN BOOLEAN SecondChance
18 );
19
20 BOOLEAN
21 NTAPI
22 KdpEnterDebuggerException(
23 IN PKTRAP_FRAME TrapFrame,
24 IN PKEXCEPTION_FRAME ExceptionFrame,
25 IN PEXCEPTION_RECORD ExceptionRecord,
26 IN PCONTEXT Context,
27 IN KPROCESSOR_MODE PreviousMode,
28 IN BOOLEAN SecondChance
29 );
30
31 VOID
32 NTAPI
33 KdpTimeSlipWork(
34 IN PVOID Context
35 );
36
37 BOOLEAN
38 NTAPI
39 KdpSwitchProcessor(
40 IN PEXCEPTION_RECORD ExceptionRecord,
41 IN OUT PCONTEXT ContextRecord,
42 IN BOOLEAN SecondChanceException
43 );
44
45 VOID
46 NTAPI
47 KdpTimeSlipDpcRoutine(
48 IN PKDPC Dpc,
49 IN PVOID DeferredContext,
50 IN PVOID SystemArgument1,
51 IN PVOID SystemArgument2
52 );
53
54 BOOLEAN
55 NTAPI
56 KdpStub(
57 IN PKTRAP_FRAME TrapFrame,
58 IN PKEXCEPTION_FRAME ExceptionFrame,
59 IN PEXCEPTION_RECORD ExceptionRecord,
60 IN PCONTEXT ContextRecord,
61 IN KPROCESSOR_MODE PreviousMode,
62 IN BOOLEAN SecondChanceException
63 );
64
65 BOOLEAN
66 NTAPI
67 KdpTrap(
68 IN PKTRAP_FRAME TrapFrame,
69 IN PKEXCEPTION_FRAME ExceptionFrame,
70 IN PEXCEPTION_RECORD ExceptionRecord,
71 IN PCONTEXT ContextRecord,
72 IN KPROCESSOR_MODE PreviousMode,
73 IN BOOLEAN SecondChanceException
74 );
75
76 VOID
77 NTAPI
78 KdpPortLock(
79 VOID
80 );
81
82 VOID
83 NTAPI
84 KdpPortUnlock(
85 VOID
86 );
87
88 BOOLEAN
89 NTAPI
90 KdEnterDebugger(
91 IN PKTRAP_FRAME TrapFrame,
92 IN PKEXCEPTION_FRAME ExceptionFrame
93 );
94
95 VOID
96 NTAPI
97 KdExitDebugger(
98 IN BOOLEAN Entered
99 );
100
101 NTSTATUS
102 NTAPI
103 KdEnableDebuggerWithLock(
104 IN BOOLEAN NeedLock
105 );
106
107 extern DBGKD_GET_VERSION64 KdVersionBlock;
108 extern KDDEBUGGER_DATA64 KdDebuggerDataBlock;
109 extern LIST_ENTRY KdpDebuggerDataListHead;
110 extern KSPIN_LOCK KdpDataSpinLock;
111 extern LARGE_INTEGER KdPerformanceCounterRate;
112 extern LARGE_INTEGER KdTimerStart;
113 extern ULONG KdDisableCount;
114 extern KD_CONTEXT KdpContext;
115 extern PKDEBUG_ROUTINE KiDebugRoutine;
116 extern PKDEBUG_SWITCH_ROUTINE KiDebugSwitchRoutine;
117 extern BOOLEAN KdBreakAfterSymbolLoad;
118 extern BOOLEAN KdPitchDebugger;
119 extern BOOLEAN _KdDebuggerNotPresent;
120 extern BOOLEAN _KdDebuggerEnabled;
121 extern BOOLEAN KdAutoEnableOnEvent;
122 extern BOOLEAN KdPreviouslyEnabled;
123 extern BOOLEAN KdpDebuggerStructuresInitialized;
124 extern BOOLEAN KdEnteredDebugger;
125 extern KDPC KdpTimeSlipDpc;
126 extern KTIMER KdpTimeSlipTimer;
127 extern WORK_QUEUE_ITEM KdpTimeSlipWorkItem;
128 extern LONG KdpTimeSlipPending;
129 extern PKEVENT KdpTimeSlipEvent;
130 extern KSPIN_LOCK KdpTimeSlipEventLock;
131 extern BOOLEAN KdpControlCPressed;
132 extern BOOLEAN KdpControlCWaiting;
133 extern BOOLEAN KdpPortLocked;
134 extern KSPIN_LOCK KdpDebuggerLock;
135 extern LARGE_INTEGER KdTimerStop, KdTimerStart, KdTimerDifference;
136