Author: tkreuzer
Date: Fri Feb 18 14:35:44 2011
New Revision: 50799

URL: http://svn.reactos.org/svn/reactos?rev=50799&view=rev
Log:
[WIN32K]
compile gdidebug code as a seperate file and give it a seperate header

Added:
    trunk/reactos/subsystems/win32/win32k/include/gdidebug.h   (with props)
Modified:
    trunk/reactos/subsystems/win32/win32k/include/win32kp.h
    trunk/reactos/subsystems/win32/win32k/objects/gdidbg.c
    trunk/reactos/subsystems/win32/win32k/objects/gdiobj.c
    trunk/reactos/subsystems/win32/win32k/win32k.rbuild

Added: trunk/reactos/subsystems/win32/win32k/include/gdidebug.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/include/gdidebug.h?rev=50799&view=auto
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/include/gdidebug.h (added)
+++ trunk/reactos/subsystems/win32/win32k/include/gdidebug.h [iso-8859-1] Fri 
Feb 18 14:35:44 2011
@@ -1,0 +1,75 @@
+#pragma once
+
+extern ULONG gulDebugChannels;
+
+enum _DEBUGCHANNELS
+{
+    DbgCustom = 1,
+    DbgObjects = 2,
+    DbgBitBlt = 4,
+    DbgXlate = 8,
+    DbgModeSwitch = 16,
+};
+
+#define DBGENABLE(ch) gulDebugChannels |= (ch);
+#define DBGDISABLE(ch) gulDebugChannels &= ~(ch);
+#define DPRINTCH(ch) if (gulDebugChannels & (ch)) DbgPrint
+
+#ifdef GDI_DEBUG
+
+#define KeRosDumpStackFrames(Frames, Count) KdSystemDebugControl('DsoR', 
(PVOID)Frames, Count, NULL, 0, NULL, KernelMode)
+NTSYSAPI ULONG APIENTRY RtlWalkFrameChain(OUT PVOID *Callers, IN ULONG Count, 
IN ULONG Flags);
+
+#define IS_HANDLE_VALID(idx) \
+    ((GdiHandleTable->Entries[idx].Type & GDI_ENTRY_BASETYPE_MASK) != 0)
+
+#define GDIDBG_TRACECALLER() \
+  DPRINT1("-> called from:\n"); \
+  KeRosDumpStackFrames(NULL, 20);
+#define GDIDBG_TRACEALLOCATOR(handle) \
+  DPRINT1("-> allocated from:\n"); \
+  KeRosDumpStackFrames(GDIHandleAllocator[GDI_HANDLE_GET_INDEX(handle)], 
GDI_STACK_LEVELS);
+#define GDIDBG_TRACELOCKER(handle) \
+  DPRINT1("-> locked from:\n"); \
+  KeRosDumpStackFrames(GDIHandleLocker[GDI_HANDLE_GET_INDEX(handle)], 
GDI_STACK_LEVELS);
+#define GDIDBG_TRACESHARELOCKER(handle) \
+  DPRINT1("-> locked from:\n"); \
+  KeRosDumpStackFrames(GDIHandleShareLocker[GDI_HANDLE_GET_INDEX(handle)], 
GDI_STACK_LEVELS);
+#define GDIDBG_TRACEDELETER(handle) \
+  DPRINT1("-> deleted from:\n"); \
+  KeRosDumpStackFrames(GDIHandleDeleter[GDI_HANDLE_GET_INDEX(handle)], 
GDI_STACK_LEVELS);
+#define GDIDBG_CAPTUREALLOCATOR(handle) \
+  
CaptureStackBackTace((PVOID*)GDIHandleAllocator[GDI_HANDLE_GET_INDEX(handle)], 
GDI_STACK_LEVELS);
+#define GDIDBG_CAPTURELOCKER(handle) \
+  CaptureStackBackTace((PVOID*)GDIHandleLocker[GDI_HANDLE_GET_INDEX(handle)], 
GDI_STACK_LEVELS);
+#define GDIDBG_CAPTURESHARELOCKER(handle) \
+  
CaptureStackBackTace((PVOID*)GDIHandleShareLocker[GDI_HANDLE_GET_INDEX(handle)],
 GDI_STACK_LEVELS);
+#define GDIDBG_CAPTUREDELETER(handle) \
+  CaptureStackBackTace((PVOID*)GDIHandleDeleter[GDI_HANDLE_GET_INDEX(handle)], 
GDI_STACK_LEVELS);
+#define GDIDBG_DUMPHANDLETABLE() \
+  IntDumpHandleTable(GdiHandleTable)
+#define GDIDBG_INITLOOPTRACE() \
+  ULONG Attempts = 0;
+#define GDIDBG_TRACELOOP(Handle, PrevThread, Thread) \
+  if ((++Attempts % 20) == 0) \
+  { \
+    DPRINT1("[%d] Handle 0x%p Locked by 0x%x (we're 0x%x)\n", Attempts, 
Handle, PrevThread, Thread); \
+  }
+
+#else
+
+#define GDIDBG_TRACECALLER()
+#define GDIDBG_TRACEALLOCATOR(index)
+#define GDIDBG_TRACELOCKER(index)
+#define GDIDBG_TRACESHARELOCKER(index)
+#define GDIDBG_CAPTUREALLOCATOR(index)
+#define GDIDBG_CAPTURELOCKER(index)
+#define GDIDBG_CAPTURESHARELOCKER(index)
+#define GDIDBG_CAPTUREDELETER(handle)
+#define GDIDBG_DUMPHANDLETABLE()
+#define GDIDBG_INITLOOPTRACE()
+#define GDIDBG_TRACELOOP(Handle, PrevThread, Thread)
+#define GDIDBG_TRACEDELETER(handle)
+
+#endif /* GDI_DEBUG */
+

Propchange: trunk/reactos/subsystems/win32/win32k/include/gdidebug.h
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: trunk/reactos/subsystems/win32/win32k/include/win32kp.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/include/win32kp.h?rev=50799&r1=50798&r2=50799&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/include/win32kp.h [iso-8859-1] 
(original)
+++ trunk/reactos/subsystems/win32/win32k/include/win32kp.h [iso-8859-1] Fri 
Feb 18 14:35:44 2011
@@ -87,3 +87,4 @@
 #include <include/ldevobj.h>
 #include <include/device.h>
 #include <dib/dib.h>
+#include <include/gdidebug.h>

Modified: trunk/reactos/subsystems/win32/win32k/objects/gdidbg.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/gdidbg.c?rev=50799&r1=50798&r2=50799&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/gdidbg.c [iso-8859-1] 
(original)
+++ trunk/reactos/subsystems/win32/win32k/objects/gdidbg.c [iso-8859-1] Fri Feb 
18 14:35:44 2011
@@ -1,7 +1,21 @@
+/*
+ * PROJECT:         ReactOS win32 kernel mode subsystem
+ * LICENSE:         GPL - See COPYING in the top level directory
+ * FILE:            subsystems/win32/win32k/objects/gdidbg.c
+ * PURPOSE:         Special debugging functions for gdi
+ * PROGRAMMERS:     Timo Kreuzer
+ */
+
+/** INCLUDES 
******************************************************************/
+
+#include <win32k.h>
+#define NDEBUG
+#include <debug.h>
+
+
+ULONG gulDebugChannels = 0;
+
 #ifdef GDI_DEBUG
-
-#define KeRosDumpStackFrames(Frames, Count) KdSystemDebugControl('DsoR', 
(PVOID)Frames, Count, NULL, 0, NULL, KernelMode)
-NTSYSAPI ULONG APIENTRY RtlWalkFrameChain(OUT PVOID *Callers, IN ULONG Count, 
IN ULONG Flags);
 
 #define GDI_STACK_LEVELS 20
 static ULONG_PTR GDIHandleAllocator[GDI_HANDLE_COUNT][GDI_STACK_LEVELS+1];
@@ -36,9 +50,6 @@
 
     return TRUE;
 }
-
-#define IS_HANDLE_VALID(idx) \
-    ((GdiHandleTable->Entries[idx].Type & GDI_ENTRY_BASETYPE_MASK) != 0)
 
 void IntDumpHandleTable(PGDI_HANDLE_TABLE HandleTable)
 {
@@ -110,8 +121,8 @@
     for (i = 0; i < nTraces && AllocatorTable[i].count > 1; i++)
     {
         /* Print out the allocation count */
-        DbgPrint(" %i allocs, type = 0x%lx:\n", 
-                 AllocatorTable[i].count, 
+        DbgPrint(" %i allocs, type = 0x%lx:\n",
+                 AllocatorTable[i].count,
                  GdiHandleTable->Entries[AllocatorTable[i].idx].Type);
 
         /* Dump the frames */
@@ -271,39 +282,6 @@
 
        return r;
 }
-
-#define GDIDBG_TRACECALLER() \
-  DPRINT1("-> called from:\n"); \
-  KeRosDumpStackFrames(NULL, 20);
-#define GDIDBG_TRACEALLOCATOR(handle) \
-  DPRINT1("-> allocated from:\n"); \
-  KeRosDumpStackFrames(GDIHandleAllocator[GDI_HANDLE_GET_INDEX(handle)], 
GDI_STACK_LEVELS);
-#define GDIDBG_TRACELOCKER(handle) \
-  DPRINT1("-> locked from:\n"); \
-  KeRosDumpStackFrames(GDIHandleLocker[GDI_HANDLE_GET_INDEX(handle)], 
GDI_STACK_LEVELS);
-#define GDIDBG_TRACESHARELOCKER(handle) \
-  DPRINT1("-> locked from:\n"); \
-  KeRosDumpStackFrames(GDIHandleShareLocker[GDI_HANDLE_GET_INDEX(handle)], 
GDI_STACK_LEVELS);
-#define GDIDBG_TRACEDELETER(handle) \
-  DPRINT1("-> deleted from:\n"); \
-  KeRosDumpStackFrames(GDIHandleDeleter[GDI_HANDLE_GET_INDEX(handle)], 
GDI_STACK_LEVELS);
-#define GDIDBG_CAPTUREALLOCATOR(handle) \
-  
CaptureStackBackTace((PVOID*)GDIHandleAllocator[GDI_HANDLE_GET_INDEX(handle)], 
GDI_STACK_LEVELS);
-#define GDIDBG_CAPTURELOCKER(handle) \
-  CaptureStackBackTace((PVOID*)GDIHandleLocker[GDI_HANDLE_GET_INDEX(handle)], 
GDI_STACK_LEVELS);
-#define GDIDBG_CAPTURESHARELOCKER(handle) \
-  
CaptureStackBackTace((PVOID*)GDIHandleShareLocker[GDI_HANDLE_GET_INDEX(handle)],
 GDI_STACK_LEVELS);
-#define GDIDBG_CAPTUREDELETER(handle) \
-  CaptureStackBackTace((PVOID*)GDIHandleDeleter[GDI_HANDLE_GET_INDEX(handle)], 
GDI_STACK_LEVELS);
-#define GDIDBG_DUMPHANDLETABLE() \
-  IntDumpHandleTable(GdiHandleTable)
-#define GDIDBG_INITLOOPTRACE() \
-  ULONG Attempts = 0;
-#define GDIDBG_TRACELOOP(Handle, PrevThread, Thread) \
-  if ((++Attempts % 20) == 0) \
-  { \
-    DPRINT1("[%d] Handle 0x%p Locked by 0x%x (we're 0x%x)\n", Attempts, 
Handle, PrevThread, Thread); \
-  }
 
 ULONG
 FASTCALL
@@ -315,20 +293,5 @@
     return cLocks;
 }
 
-#else
-
-#define GDIDBG_TRACECALLER()
-#define GDIDBG_TRACEALLOCATOR(index)
-#define GDIDBG_TRACELOCKER(index)
-#define GDIDBG_TRACESHARELOCKER(index)
-#define GDIDBG_CAPTUREALLOCATOR(index)
-#define GDIDBG_CAPTURELOCKER(index)
-#define GDIDBG_CAPTURESHARELOCKER(index)
-#define GDIDBG_CAPTUREDELETER(handle)
-#define GDIDBG_DUMPHANDLETABLE()
-#define GDIDBG_INITLOOPTRACE()
-#define GDIDBG_TRACELOOP(Handle, PrevThread, Thread)
-#define GDIDBG_TRACEDELETER(handle)
-
 #endif /* GDI_DEBUG */
 

Modified: trunk/reactos/subsystems/win32/win32k/objects/gdiobj.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/gdiobj.c?rev=50799&r1=50798&r2=50799&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/gdiobj.c [iso-8859-1] 
(original)
+++ trunk/reactos/subsystems/win32/win32k/objects/gdiobj.c [iso-8859-1] Fri Feb 
18 14:35:44 2011
@@ -8,8 +8,6 @@
 
 /** INCLUDES 
******************************************************************/
 
-//#define GDI_DEBUG
-
 #include <win32k.h>
 #define NDEBUG
 #include <debug.h>
@@ -27,8 +25,6 @@
 #define DelayExecution() \
   DPRINT("%s:%i: Delay\n", __FILE__, __LINE__); \
   KeDelayExecutionThread(KernelMode, FALSE, &ShortDelay)
-
-#include "gdidbg.c"
 
 static
 BOOL INTERNAL_CALL GDI_CleanupDummy(PVOID ObjectBody);

Modified: trunk/reactos/subsystems/win32/win32k/win32k.rbuild
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/win32k.rbuild?rev=50799&r1=50798&r2=50799&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/win32k.rbuild [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/win32k.rbuild [iso-8859-1] Fri Feb 18 
14:35:44 2011
@@ -184,6 +184,7 @@
                <file>freetype.c</file>
                <file>gdibatch.c</file>
                <file>gdiobj.c</file>
+               <file>gdidbg.c</file>
                <file>icm.c</file>
                <file>line.c</file>
                <file>metafile.c</file>


Reply via email to