From f3f9bcbde806c68ce64ccd8ae4d97630c03414f3 Mon Sep 17 00:00:00 2001 From: Sameeh Jubran Date: Wed, 24 Aug 2016 15:39:17 +0300 Subject: [PATCH] Add debug print macro to dump debug print statements to kernel debugger output Signed-off-by: Sameeh Jubran Acked-by: Frediano Ziglio --- qxldod/driver.cpp | 14 +++++++++++++- qxldod/driver.h | 14 +++++++++----- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/qxldod/driver.cpp b/qxldod/driver.cpp index 4d1913c..10a24f4 100755 --- a/qxldod/driver.cpp +++ b/qxldod/driver.cpp @@ -667,7 +667,19 @@ void DebugPrintFunc(const char *format, ...) va_start(list, format); vDbgPrintEx(DPFLTR_DEFAULT_ID, 9 | DPFLTR_MASK, format, list); } + +void DebugPrint(int level, const char *fmt, ...) +{ + static const ULONG xlate[] = { 0, 0, 1, 2, 3 }; + if (level <= 0 || level > 5) + return; + + va_list list; + va_start(list, fmt); + vDbgPrintEx(DPFLTR_IHVVIDEO_ID, xlate[level - 1], fmt, list); + va_end(list); +} + #endif #pragma code_seg(pop) // End Non-Paged Code - diff --git a/qxldod/driver.h b/qxldod/driver.h index c1ed7e3..07dc17d 100755 --- a/qxldod/driver.h +++ b/qxldod/driver.h @@ -211,14 +211,18 @@ DodSystemDisplayWrite( extern int nDebugLevel; void DebugPrintFuncSerial(const char *format, ...); - void DebugPrintFunc(const char *format, ...); +void DebugPrint(int level, const char *fmt, ...); + +#define DbgExpandArguments(...) __VA_ARGS__ + +#define DbgPrint(level, line) do { \ + if (level <= nDebugLevel) DebugPrintFuncSerial line; \ + DebugPrint(level, DbgExpandArguments line); \ +} while(0) -#define DbgPrint(level, line) \ - if (level > nDebugLevel) {} \ - else DebugPrintFuncSerial line #else -#define DbgPrint(level, line) +#define DbgPrint(level, line) #endif // else if (0) DebugPrintFuncSerial line \