From 0be9ddc03e7b6378788ce71676be118f7909e353 Mon Sep 17 00:00:00 2001 From: Sir Richard Date: Sat, 7 Aug 2010 16:01:30 +0000 Subject: [PATCH] [KERNEL32]: Aleksey wants debug channels, I agree this is the way forward. Leverage existing NT infrastructure to enable Windows-compatible debug channel support, instead of using a UNIX-based 3rd party library. Same debug channel names as before have been re-added, but using NT Debug Filters. svn path=/trunk/; revision=48477 --- reactos/dll/win32/kernel32/file/bintype.c | 2 ++ reactos/dll/win32/kernel32/file/copy.c | 1 + reactos/dll/win32/kernel32/file/create.c | 1 + reactos/dll/win32/kernel32/file/curdir.c | 1 + reactos/dll/win32/kernel32/file/delete.c | 1 + reactos/dll/win32/kernel32/file/deviceio.c | 2 +- reactos/dll/win32/kernel32/file/dir.c | 1 + reactos/dll/win32/kernel32/file/dosdev.c | 1 + reactos/dll/win32/kernel32/file/file.c | 1 + reactos/dll/win32/kernel32/file/find.c | 1 + reactos/dll/win32/kernel32/file/hardlink.c | 1 + reactos/dll/win32/kernel32/file/lock.c | 1 + reactos/dll/win32/kernel32/file/mailslot.c | 1 + reactos/dll/win32/kernel32/file/move.c | 1 + reactos/dll/win32/kernel32/file/npipe.c | 1 + reactos/dll/win32/kernel32/file/pipe.c | 1 + reactos/dll/win32/kernel32/file/rw.c | 1 + reactos/dll/win32/kernel32/file/volume.c | 1 + reactos/dll/win32/kernel32/include/kernel32.h | 18 ++++++++++++++---- reactos/dll/win32/kernel32/misc/actctx.c | 1 + reactos/dll/win32/kernel32/misc/format_msg.c | 1 + reactos/dll/win32/kernel32/misc/lcformat.c | 1 + reactos/dll/win32/kernel32/misc/version.c | 1 + reactos/dll/win32/kernel32/process/session.c | 1 + reactos/include/reactos/debug.h | 10 ++++++++++ 25 files changed, 48 insertions(+), 5 deletions(-) diff --git a/reactos/dll/win32/kernel32/file/bintype.c b/reactos/dll/win32/kernel32/file/bintype.c index 9da05e5a3e6..2722ba54134 100644 --- a/reactos/dll/win32/kernel32/file/bintype.c +++ b/reactos/dll/win32/kernel32/file/bintype.c @@ -16,6 +16,8 @@ #define NDEBUG #include +static ULONG gDebugChannel = kernel32file; + /* FUNCTIONS ****************************************************************/ /* Check whether a file is an OS/2 or a very old Windows executable diff --git a/reactos/dll/win32/kernel32/file/copy.c b/reactos/dll/win32/kernel32/file/copy.c index dbfc37baf51..4055f876342 100644 --- a/reactos/dll/win32/kernel32/file/copy.c +++ b/reactos/dll/win32/kernel32/file/copy.c @@ -15,6 +15,7 @@ #include #define NDEBUG #include +static ULONG gDebugChannel = kernel32file; /* FUNCTIONS ****************************************************************/ diff --git a/reactos/dll/win32/kernel32/file/create.c b/reactos/dll/win32/kernel32/file/create.c index 002df3ab729..894970a4c2e 100644 --- a/reactos/dll/win32/kernel32/file/create.c +++ b/reactos/dll/win32/kernel32/file/create.c @@ -17,6 +17,7 @@ #include #define NDEBUG #include +static ULONG gDebugChannel = kernel32file; #define SYMLINK_FLAG_RELATIVE 1 diff --git a/reactos/dll/win32/kernel32/file/curdir.c b/reactos/dll/win32/kernel32/file/curdir.c index 8c45a06cfb6..ee6d8553128 100644 --- a/reactos/dll/win32/kernel32/file/curdir.c +++ b/reactos/dll/win32/kernel32/file/curdir.c @@ -19,6 +19,7 @@ #include #define NDEBUG #include +static ULONG gDebugChannel = kernel32file; /* GLOBAL VARIABLES **********************************************************/ diff --git a/reactos/dll/win32/kernel32/file/delete.c b/reactos/dll/win32/kernel32/file/delete.c index b3b95cf859d..333851655c8 100644 --- a/reactos/dll/win32/kernel32/file/delete.c +++ b/reactos/dll/win32/kernel32/file/delete.c @@ -14,6 +14,7 @@ #include #define NDEBUG #include +static ULONG gDebugChannel = kernel32file; /* FUNCTIONS ****************************************************************/ diff --git a/reactos/dll/win32/kernel32/file/deviceio.c b/reactos/dll/win32/kernel32/file/deviceio.c index ead93868b41..a3016ed75b9 100644 --- a/reactos/dll/win32/kernel32/file/deviceio.c +++ b/reactos/dll/win32/kernel32/file/deviceio.c @@ -10,7 +10,7 @@ #include #define NDEBUG -#include +#include /* FUNCTIONS ******************************************************************/ diff --git a/reactos/dll/win32/kernel32/file/dir.c b/reactos/dll/win32/kernel32/file/dir.c index 9baab1dff75..5d352b172b0 100644 --- a/reactos/dll/win32/kernel32/file/dir.c +++ b/reactos/dll/win32/kernel32/file/dir.c @@ -18,6 +18,7 @@ #include #define NDEBUG #include +static ULONG gDebugChannel = kernel32file; UNICODE_STRING DllDirectory = {0, 0, NULL}; diff --git a/reactos/dll/win32/kernel32/file/dosdev.c b/reactos/dll/win32/kernel32/file/dosdev.c index 054bbaa68e3..0ac01917680 100644 --- a/reactos/dll/win32/kernel32/file/dosdev.c +++ b/reactos/dll/win32/kernel32/file/dosdev.c @@ -14,6 +14,7 @@ #include #define NDEBUG #include +static ULONG gDebugChannel = kernel32file; /* FUNCTIONS *****************************************************************/ diff --git a/reactos/dll/win32/kernel32/file/file.c b/reactos/dll/win32/kernel32/file/file.c index cbe7656a241..7210147a031 100644 --- a/reactos/dll/win32/kernel32/file/file.c +++ b/reactos/dll/win32/kernel32/file/file.c @@ -15,6 +15,7 @@ #include #define NDEBUG #include +static ULONG gDebugChannel = kernel32file; /* GLOBALS ******************************************************************/ diff --git a/reactos/dll/win32/kernel32/file/find.c b/reactos/dll/win32/kernel32/file/find.c index faaf0a6447b..e2d476c10b3 100644 --- a/reactos/dll/win32/kernel32/file/find.c +++ b/reactos/dll/win32/kernel32/file/find.c @@ -14,6 +14,7 @@ #include #define NDEBUG #include +static ULONG gDebugChannel = kernel32file; /* TYPES ********************************************************************/ diff --git a/reactos/dll/win32/kernel32/file/hardlink.c b/reactos/dll/win32/kernel32/file/hardlink.c index ff47324afe0..5e8e91f50b9 100644 --- a/reactos/dll/win32/kernel32/file/hardlink.c +++ b/reactos/dll/win32/kernel32/file/hardlink.c @@ -14,6 +14,7 @@ #include #define NDEBUG #include +static ULONG gDebugChannel = kernel32file; /* FUNCTIONS ****************************************************************/ diff --git a/reactos/dll/win32/kernel32/file/lock.c b/reactos/dll/win32/kernel32/file/lock.c index d3ef604ae94..6cb386025d1 100644 --- a/reactos/dll/win32/kernel32/file/lock.c +++ b/reactos/dll/win32/kernel32/file/lock.c @@ -16,6 +16,7 @@ #include #define NDEBUG #include +static ULONG gDebugChannel = kernel32file; /* FUNCTIONS ****************************************************************/ diff --git a/reactos/dll/win32/kernel32/file/mailslot.c b/reactos/dll/win32/kernel32/file/mailslot.c index 355fd8a9884..cbc7900b3eb 100644 --- a/reactos/dll/win32/kernel32/file/mailslot.c +++ b/reactos/dll/win32/kernel32/file/mailslot.c @@ -13,6 +13,7 @@ #include #define NDEBUG #include +static ULONG gDebugChannel = kernel32file; /* FUNCTIONS ****************************************************************/ diff --git a/reactos/dll/win32/kernel32/file/move.c b/reactos/dll/win32/kernel32/file/move.c index 20552f9c028..cdf53527fbd 100644 --- a/reactos/dll/win32/kernel32/file/move.c +++ b/reactos/dll/win32/kernel32/file/move.c @@ -19,6 +19,7 @@ #include #define NDEBUG #include +static ULONG gDebugChannel = kernel32file; /* GLOBALS *****************************************************************/ diff --git a/reactos/dll/win32/kernel32/file/npipe.c b/reactos/dll/win32/kernel32/file/npipe.c index 3ec1091aeb5..3896e9b2b38 100644 --- a/reactos/dll/win32/kernel32/file/npipe.c +++ b/reactos/dll/win32/kernel32/file/npipe.c @@ -12,6 +12,7 @@ #include #define NDEBUG #include +static ULONG gDebugChannel = kernel32file; //#define USING_PROPER_NPFS_WAIT_SEMANTICS diff --git a/reactos/dll/win32/kernel32/file/pipe.c b/reactos/dll/win32/kernel32/file/pipe.c index fa0e7e08db1..a48150d5156 100644 --- a/reactos/dll/win32/kernel32/file/pipe.c +++ b/reactos/dll/win32/kernel32/file/pipe.c @@ -13,6 +13,7 @@ #include #define NDEBUG #include +static ULONG gDebugChannel = kernel32file; /* GLOBALS ******************************************************************/ diff --git a/reactos/dll/win32/kernel32/file/rw.c b/reactos/dll/win32/kernel32/file/rw.c index 8f970284590..dc89e4da8bc 100644 --- a/reactos/dll/win32/kernel32/file/rw.c +++ b/reactos/dll/win32/kernel32/file/rw.c @@ -14,6 +14,7 @@ #include #define NDEBUG #include +static ULONG gDebugChannel = kernel32file; /* FUNCTIONS ****************************************************************/ diff --git a/reactos/dll/win32/kernel32/file/volume.c b/reactos/dll/win32/kernel32/file/volume.c index c91284056ce..2af3e8ed03d 100644 --- a/reactos/dll/win32/kernel32/file/volume.c +++ b/reactos/dll/win32/kernel32/file/volume.c @@ -22,6 +22,7 @@ #include #define NDEBUG #include +static ULONG gDebugChannel = kernel32file; #define MAX_DOS_DRIVES 26 diff --git a/reactos/dll/win32/kernel32/include/kernel32.h b/reactos/dll/win32/kernel32/include/kernel32.h index 79eec59f7a1..55b1338786c 100755 --- a/reactos/dll/win32/kernel32/include/kernel32.h +++ b/reactos/dll/win32/kernel32/include/kernel32.h @@ -1,9 +1,19 @@ #pragma once -#define TRACE DPRINT -#define WARN DPRINT1 -#define FIXME DPRINT1 -#define ERR DPRINT1 +// +// Kernel32 Filter IDs +// +#define kernel32file 200 +#define kernel32ver 201 +#define actctx 202 +#define resource 203 +#define kernel32session 204 + +#define TRACE(fmt, ...) TRACE__(gDebugChannel, fmt, ##__VA_ARGS__) +#define WARN(fmt, ...) WARN__(gDebugChannel, fmt, ##__VA_ARGS__) +#define FIXME(fmt, ...) WARN__(gDebugChannel, fmt,## __VA_ARGS__) +#define ERR(fmt, ...) ERR__(gDebugChannel, fmt, ##__VA_ARGS__) + #define debugstr_a #define debugstr_w #define wine_dbgstr_w diff --git a/reactos/dll/win32/kernel32/misc/actctx.c b/reactos/dll/win32/kernel32/misc/actctx.c index af73705bc84..2cf99fef463 100644 --- a/reactos/dll/win32/kernel32/misc/actctx.c +++ b/reactos/dll/win32/kernel32/misc/actctx.c @@ -15,6 +15,7 @@ #include #define NDEBUG #include +static ULONG gDebugChannel = actctx; #define ACTCTX_FAKE_HANDLE ((HANDLE) 0xf00baa) diff --git a/reactos/dll/win32/kernel32/misc/format_msg.c b/reactos/dll/win32/kernel32/misc/format_msg.c index 337dc05443c..122cac57f6e 100644 --- a/reactos/dll/win32/kernel32/misc/format_msg.c +++ b/reactos/dll/win32/kernel32/misc/format_msg.c @@ -22,6 +22,7 @@ #include #define NDEBUG #include +static ULONG gDebugChannel = resource; struct format_args { diff --git a/reactos/dll/win32/kernel32/misc/lcformat.c b/reactos/dll/win32/kernel32/misc/lcformat.c index 326f2242c67..72f909d959e 100644 --- a/reactos/dll/win32/kernel32/misc/lcformat.c +++ b/reactos/dll/win32/kernel32/misc/lcformat.c @@ -32,6 +32,7 @@ #include #define NDEBUG #include +static ULONG gDebugChannel = resource; #define DATE_DATEVARSONLY 0x0100 /* only date stuff: yMdg */ #define TIME_TIMEVARSONLY 0x0200 /* only time stuff: hHmst */ diff --git a/reactos/dll/win32/kernel32/misc/version.c b/reactos/dll/win32/kernel32/misc/version.c index 1ba4a8f0085..bb9288e930f 100644 --- a/reactos/dll/win32/kernel32/misc/version.c +++ b/reactos/dll/win32/kernel32/misc/version.c @@ -11,6 +11,7 @@ #include #define NDEBUG #include +static ULONG gDebugChannel = kernel32ver; #define UNICODIZE1(x) L##x #define UNICODIZE(x) UNICODIZE1(x) diff --git a/reactos/dll/win32/kernel32/process/session.c b/reactos/dll/win32/kernel32/process/session.c index 76591e058fd..3c61ebec7a6 100644 --- a/reactos/dll/win32/kernel32/process/session.c +++ b/reactos/dll/win32/kernel32/process/session.c @@ -11,6 +11,7 @@ #include #define NDEBUG #include +//static ULONG gDebugChannel = kernel32session; not actually used DWORD ActiveConsoleSessionId = 0; diff --git a/reactos/include/reactos/debug.h b/reactos/include/reactos/debug.h index 3cead4a47bb..11626d296f4 100644 --- a/reactos/include/reactos/debug.h +++ b/reactos/include/reactos/debug.h @@ -107,6 +107,11 @@ RtlAssert( #define WARN_(ch, fmt, ...) DbgPrintEx(DPFLTR_##ch##_ID, DPFLTR_WARNING_LEVEL, "(%s:%d) " fmt, __FILE__, __LINE__, ##__VA_ARGS__) #define TRACE_(ch, fmt, ...) DbgPrintEx(DPFLTR_##ch##_ID, DPFLTR_TRACE_LEVEL, "(%s:%d) " fmt, __FILE__, __LINE__, ##__VA_ARGS__) #define INFO_(ch, fmt, ...) DbgPrintEx(DPFLTR_##ch##_ID, DPFLTR_INFO_LEVEL, "(%s:%d) " fmt, __FILE__, __LINE__, ##__VA_ARGS__) + + #define ERR__(ch, fmt, ...) DbgPrintEx(ch, DPFLTR_ERROR_LEVEL, "(%s:%d) " fmt, __FILE__, __LINE__, ##__VA_ARGS__) + #define WARN__(ch, fmt, ...) DbgPrintEx(ch, DPFLTR_WARNING_LEVEL, "(%s:%d) " fmt, __FILE__, __LINE__, ##__VA_ARGS__) + #define TRACE__(ch, fmt, ...) DbgPrintEx(ch, DPFLTR_TRACE_LEVEL, "(%s:%d) " fmt, __FILE__, __LINE__, ##__VA_ARGS__) + #define INFO__(ch, fmt, ...) DbgPrintEx(ch, DPFLTR_INFO_LEVEL, "(%s:%d) " fmt, __FILE__, __LINE__, ##__VA_ARGS__) #else /* not DBG */ /* On non-debug builds, we never show these */ @@ -119,6 +124,11 @@ RtlAssert( #define WARN_(ch, ...) do { if(0) { DbgPrint(__VA_ARGS__); } } while(0) #define TRACE_(ch, ...) do { if(0) { DbgPrint(__VA_ARGS__); } } while(0) #define INFO_(ch, ...) do { if(0) { DbgPrint(__VA_ARGS__); } } while(0) + + #define ERR__(ch, ...) do { if(0) { DbgPrint(__VA_ARGS__); } } while(0) + #define WARN__(ch, ...) do { if(0) { DbgPrint(__VA_ARGS__); } } while(0) + #define TRACE__(ch, ...) do { if(0) { DbgPrint(__VA_ARGS__); } } while(0) + #define INFO__(ch, ...) do { if(0) { DbgPrint(__VA_ARGS__); } } while(0) #endif /* not DBG */ #define ASSERT_IRQL_LESS_OR_EQUAL(x) ASSERT(KeGetCurrentIrql()<=(x)) -- 2.17.1