[ros-diffs] [fireball] 31213: - Add debugging macros support to CmLib (to use, set the CmlibTraceLevel debugging mask in cminit.c). - Add tracing to hivecell.c.

fireball at svn.reactos.org fireball at svn.reactos.org
Fri Dec 14 14:02:39 CET 2007


Author: fireball
Date: Fri Dec 14 16:02:39 2007
New Revision: 31213

URL: http://svn.reactos.org/svn/reactos?rev=31213&view=rev
Log:
- Add debugging macros support to CmLib (to use, set the CmlibTraceLevel debugging mask in cminit.c).
- Add tracing to hivecell.c.

Modified:
    trunk/reactos/lib/cmlib/cminit.c
    trunk/reactos/lib/cmlib/cmlib.h
    trunk/reactos/lib/cmlib/hivecell.c
    trunk/reactos/lib/cmlib/hivewrt.c
    trunk/reactos/tools/mkhive/rtl.c

Modified: trunk/reactos/lib/cmlib/cminit.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/cmlib/cminit.c?rev=31213&r1=31212&r2=31213&view=diff
==============================================================================
--- trunk/reactos/lib/cmlib/cminit.c (original)
+++ trunk/reactos/lib/cmlib/cminit.c Fri Dec 14 16:02:39 2007
@@ -6,6 +6,8 @@
  */
 
 #include "cmlib.h"
+
+ULONG CmlibTraceLevel = 0;
 
 BOOLEAN CMAPI
 CmCreateRootNode(

Modified: trunk/reactos/lib/cmlib/cmlib.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/cmlib/cmlib.h?rev=31213&r1=31212&r2=31213&view=diff
==============================================================================
--- trunk/reactos/lib/cmlib/cmlib.h (original)
+++ trunk/reactos/lib/cmlib/cmlib.h Fri Dec 14 16:02:39 2007
@@ -23,6 +23,30 @@
 #define STATUS_NOT_REGISTRY_FILE         ((NTSTATUS)0xC000015C)
 #define STATUS_REGISTRY_RECOVERED        ((NTSTATUS)0x40000009)
 
+#endif
+
+//
+// Debug support switch
+//
+#define _CMLIB_DEBUG_ 1
+
+//
+// These define the Debug Masks Supported
+//
+#define CMLIB_HCELL_DEBUG                                 0x01
+
+//
+// Debug/Tracing support
+//
+#if _CMLIB_DEBUG_
+#ifdef NEW_DEBUG_SYSTEM_IMPLEMENTED // enable when Debug Filters are implemented
+#define CMLTRACE DbgPrintEx
+#else
+#define CMLTRACE(x, ...)                                 \
+    if (x & CmlibTraceLevel) DbgPrint(__VA_ARGS__)
+#endif
+#else
+#define CMLTRACE(x, ...) DPRINT(__VA_ARGS__)
 #endif
 
 #ifndef _TYPEDEFS_HOST_H
@@ -158,6 +182,7 @@
 
 #endif
 
+extern ULONG CmlibTraceLevel;
 
 /*
  * Public functions.

Modified: trunk/reactos/lib/cmlib/hivecell.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/cmlib/hivecell.c?rev=31213&r1=31212&r2=31213&view=diff
==============================================================================
--- trunk/reactos/lib/cmlib/hivecell.c (original)
+++ trunk/reactos/lib/cmlib/hivecell.c Fri Dec 14 16:02:39 2007
@@ -15,6 +15,9 @@
    HCELL_INDEX CellIndex)
 {
    PVOID Block;
+
+   CMLTRACE(CMLIB_HCELL_DEBUG, "%s - Hive %p, CellIndex %08lx\n",
+       __FUNCTION__, RegistryHive, CellIndex);
 
    ASSERT(CellIndex != HCELL_NIL);
    if (!RegistryHive->Flat)
@@ -105,6 +108,9 @@
    ULONG CellLastBlock;
 
    ASSERT(RegistryHive->ReadOnly == FALSE);
+
+   CMLTRACE(CMLIB_HCELL_DEBUG, "%s - Hive %p, CellIndex %08lx, HoldingLock %b\n",
+       __FUNCTION__, RegistryHive, CellIndex, HoldingLock);
 
    if ((CellIndex & HCELL_TYPE_MASK) >> HCELL_TYPE_SHIFT != Stable)
       return FALSE;
@@ -321,6 +327,9 @@
 
    ASSERT(RegistryHive->ReadOnly == FALSE);
 
+   CMLTRACE(CMLIB_HCELL_DEBUG, "%s - Hive %p, Size %x, %s, Vicinity %08lx\n",
+       __FUNCTION__, RegistryHive, Size, (Storage == 0) ? "Stable" : "Volatile", Vicinity);
+
    /* Round to 16 bytes multiple. */
    Size = ROUND_UP(Size + sizeof(HCELL), 16);
 
@@ -356,6 +365,9 @@
    FreeCell->Size = -FreeCell->Size;
    RtlZeroMemory(FreeCell + 1, Size - sizeof(HCELL));
 
+   CMLTRACE(CMLIB_HCELL_DEBUG, "%s - CellIndex %08lx\n",
+       __FUNCTION__, FreeCellOffset);
+
    return FreeCellOffset;
 }
 
@@ -372,6 +384,9 @@
    HSTORAGE_TYPE Storage;
 
    ASSERT(CellIndex != HCELL_NIL);
+
+   CMLTRACE(CMLIB_HCELL_DEBUG, "%s - Hive %p, CellIndex %08lx, Size %x\n",
+       __FUNCTION__, RegistryHive, CellIndex, Size);
 
    Storage = (CellIndex & HCELL_TYPE_MASK) >> HCELL_TYPE_SHIFT;
 
@@ -415,6 +430,9 @@
    ULONG CellBlock;
 
    ASSERT(RegistryHive->ReadOnly == FALSE);
+
+   CMLTRACE(CMLIB_HCELL_DEBUG, "%s - Hive %p, CellIndex %08lx\n",
+       __FUNCTION__, RegistryHive, CellIndex);
 
    Free = HvpGetCellHeader(RegistryHive, CellIndex);
 

Modified: trunk/reactos/lib/cmlib/hivewrt.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/cmlib/hivewrt.c?rev=31213&r1=31212&r2=31213&view=diff
==============================================================================
--- trunk/reactos/lib/cmlib/hivewrt.c (original)
+++ trunk/reactos/lib/cmlib/hivewrt.c Fri Dec 14 16:02:39 2007
@@ -163,7 +163,7 @@
    RegistryHive->BaseBlock->Type = HFILE_TYPE_PRIMARY;
    RegistryHive->BaseBlock->Sequence1++;
    RegistryHive->BaseBlock->CheckSum =
-      HvpHiveHeaderChecksum(RegistryHive->BaseBlock);
+   HvpHiveHeaderChecksum(RegistryHive->BaseBlock);
 
    /* Write hive block */
    FileOffset = 0;

Modified: trunk/reactos/tools/mkhive/rtl.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/mkhive/rtl.c?rev=31213&r1=31212&r2=31213&view=diff
==============================================================================
--- trunk/reactos/tools/mkhive/rtl.c (original)
+++ trunk/reactos/tools/mkhive/rtl.c Fri Dec 14 16:02:39 2007
@@ -5,6 +5,7 @@
  */
 
 #include <stdlib.h>
+#include <stdarg.h>
 
 #include "mkhive.h"
 #include <bitmap.c>
@@ -157,3 +158,14 @@
 	free(p);
 }
 
+ULONG
+__cdecl
+DbgPrint(
+  IN CHAR *Format,
+  IN ...)
+{
+    va_list ap;
+    va_start(ap, Format);
+    vprintf(Format, ap);
+    va_end(ap);
+}




More information about the Ros-diffs mailing list