[NTOSKRNL]
[reactos.git] / reactos / ntoskrnl / include / internal / dbgk.h
1 /*
2 * PROJECT: ReactOS Kernel
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: ntoskrnl/include/dbgk.h
5 * PURPOSE: Internal header for the User-Mode Debugging Backend
6 * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
7 */
8
9 //
10 // Define this if you want debugging support
11 //
12 #define _DBGK_DEBUG_ 0x00
13
14 //
15 // These define the Debug Masks Supported
16 //
17 #define DBGK_THREAD_DEBUG 0x01
18 #define DBGK_PROCESS_DEBUG 0x02
19 #define DBGK_OBJECT_DEBUG 0x04
20 #define DBGK_MESSAGE_DEBUG 0x08
21 #define DBGK_EXCEPTION_DEBUG 0x10
22
23 //
24 // Debug/Tracing support
25 //
26 #if _DBGK_DEBUG_
27 #ifdef NEW_DEBUG_SYSTEM_IMPLEMENTED // enable when Debug Filters are implemented
28 #define DBGKTRACE(x, ...) \
29 { \
30 DbgPrintEx("%s [%.16s] - ", \
31 __FUNCTION__, \
32 PsGetCurrentProcess()->ImageFileName); \
33 DbgPrintEx(__VA_ARGS__); \
34 }
35 #else
36 #define DBGKTRACE(x, ...) \
37 if (x & DbgkpTraceLevel) \
38 { \
39 DbgPrint("%s [%.16s] - ", \
40 __FUNCTION__, \
41 PsGetCurrentProcess()->ImageFileName); \
42 DbgPrint(__VA_ARGS__); \
43 }
44 #endif
45 #else
46 #define DBGKTRACE(x, ...) DPRINT(__VA_ARGS__)
47 #endif
48
49 VOID
50 INIT_FUNCTION
51 NTAPI
52 DbgkInitialize(
53 VOID
54 );
55
56 VOID
57 NTAPI
58 DbgkCreateThread(
59 IN PETHREAD Thread,
60 IN PVOID StartAddress
61 );
62
63 VOID
64 NTAPI
65 DbgkExitProcess(
66 IN NTSTATUS ExitStatus
67 );
68
69 VOID
70 NTAPI
71 DbgkExitThread(
72 IN NTSTATUS ExitStatus
73 );
74
75 VOID
76 NTAPI
77 DbgkMapViewOfSection(
78 IN PVOID Section,
79 IN PVOID BaseAddress,
80 IN ULONG SectionOffset,
81 IN ULONG_PTR ViewSize
82 );
83
84 VOID
85 NTAPI
86 DbgkUnMapViewOfSection(
87 IN PVOID BaseAddress
88 );
89
90 BOOLEAN
91 NTAPI
92 DbgkpSuspendProcess(
93 VOID
94 );
95
96 VOID
97 NTAPI
98 DbgkpResumeProcess(
99 VOID
100 );
101
102 NTSTATUS
103 NTAPI
104 DbgkpSendApiMessage(
105 IN OUT PDBGKM_MSG ApiMsg,
106 IN BOOLEAN SuspendProcess
107 );
108
109 HANDLE
110 NTAPI
111 DbgkpSectionToFileHandle(
112 IN PVOID Section
113 );
114
115 VOID
116 NTAPI
117 DbgkCopyProcessDebugPort(
118 IN PEPROCESS Process,
119 IN PEPROCESS Parent
120 );
121
122 BOOLEAN
123 NTAPI
124 DbgkForwardException(
125 IN PEXCEPTION_RECORD ExceptionRecord,
126 IN BOOLEAN DebugPort,
127 IN BOOLEAN SecondChance
128 );
129
130 NTSTATUS
131 NTAPI
132 DbgkClearProcessDebugObject(
133 IN PEPROCESS Process,
134 IN PDEBUG_OBJECT SourceDebugObject
135 );
136
137 extern ULONG DbgkpTraceLevel;
138 extern POBJECT_TYPE DbgkDebugObjectType;
139
140 /* EOF */