[Spice-devel] [PATCH v3 05/28] Add debug print macro to dump debug print statements to kernel debugger output

Sameeh Jubran sameeh at daynix.com
Wed Sep 7 13:10:23 UTC 2016


Acked-by: Frediano Ziglio <fziglio at redhat.com>

Signed-off-by: Sameeh Jubran <sameeh at daynix.com>
---
 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 0fd6b01..f3acd0a 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 c9037c0..2058369 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 \
-- 
2.7.0.windows.1



More information about the Spice-devel mailing list