https://git.reactos.org/?p=reactos.git;a=commitdiff;h=cb0c9a4570b2c563c866d07d98be1b7729cbbc26

commit cb0c9a4570b2c563c866d07d98be1b7729cbbc26
Author:     Hermès Bélusca-Maïto <hermes.belusca-ma...@reactos.org>
AuthorDate: Thu Nov 28 20:07:25 2024 +0100
Commit:     Hermès Bélusca-Maïto <hermes.belusca-ma...@reactos.org>
CommitDate: Sat Dec 14 23:31:46 2024 +0100

    [NTOS:KD64] KdInitSystem(): Minor code enhancements.
    
    - Move local variables to the code blocks where they are used.
    - if-s one-line bodies on their own lines.
    - Massage the boot-images symbols loading, using a for-loop.
---
 ntoskrnl/kd64/kdinit.c | 71 +++++++++++++++++++++++---------------------------
 1 file changed, 32 insertions(+), 39 deletions(-)

diff --git a/ntoskrnl/kd64/kdinit.c b/ntoskrnl/kd64/kdinit.c
index 93f2bd7dfca..99ff187b962 100644
--- a/ntoskrnl/kd64/kdinit.c
+++ b/ntoskrnl/kd64/kdinit.c
@@ -162,21 +162,10 @@ KdInitSystem(
     _In_ ULONG BootPhase,
     _In_opt_ PLOADER_PARAMETER_BLOCK LoaderBlock)
 {
-    BOOLEAN EnableKd, DisableKdAfterInit = FALSE, BlockEnable;
-    PSTR CommandLine, DebugLine, DebugOptionStart, DebugOptionEnd;
-    STRING ImageName;
+    BOOLEAN EnableKd, DisableKdAfterInit = FALSE, BlockEnable = FALSE;
     PLDR_DATA_TABLE_ENTRY LdrEntry;
-    PLIST_ENTRY NextEntry;
-    ULONG i, j, Length;
-    SIZE_T DebugOptionLength;
+    ULONG i;
     SIZE_T MemSizeMBs;
-    CHAR NameBuffer[256];
-    PWCHAR Name;
-
-#if defined(__GNUC__)
-    /* Make gcc happy */
-    BlockEnable = FALSE;
-#endif
 
     /* Check if this is Phase 1 */
     if (BootPhase)
@@ -187,7 +176,8 @@ KdInitSystem(
     }
 
     /* Check if we already initialized once */
-    if (KdDebuggerEnabled) return TRUE;
+    if (KdDebuggerEnabled)
+        return TRUE;
 
     /* Set the Debug Routine as the Stub for now */
     KiDebugRoutine = KdpStub;
@@ -233,6 +223,8 @@ KdInitSystem(
     /* Check if we have a loader block */
     if (LoaderBlock)
     {
+        PSTR CommandLine, DebugLine;
+
         /* Get the image entry */
         LdrEntry = CONTAINING_RECORD(LoaderBlock->LoadOrderListHead.Flink,
                                      LDR_DATA_TABLE_ENTRY,
@@ -263,7 +255,7 @@ KdInitSystem(
                 /* Don't enable KD and don't let it be enabled later */
                 KdPitchDebugger = TRUE;
             }
-            else if ((DebugLine = strstr(CommandLine, "DEBUG")) != NULL)
+            else if ((DebugLine = strstr(CommandLine, "DEBUG")))
             {
                 /* Enable KD */
                 EnableKd = TRUE;
@@ -272,11 +264,14 @@ KdInitSystem(
                 if (DebugLine[5] == '=')
                 {
                     /* Save pointers */
+                    PSTR DebugOptionStart, DebugOptionEnd;
                     DebugOptionStart = DebugOptionEnd = &DebugLine[6];
 
                     /* Scan the string for debug options */
                     for (;;)
                     {
+                        SIZE_T DebugOptionLength;
+
                         /* Loop until we reach the end of the string */
                         while (*DebugOptionEnd != ANSI_NULL)
                         {
@@ -287,7 +282,7 @@ KdInitSystem(
                             {
                                 /*
                                  * We reached the end of the option or
-                                 * the end of the string, break out
+                                 * the end of the string, break out.
                                  */
                                 break;
                             }
@@ -301,20 +296,19 @@ KdInitSystem(
                         /* Calculate the length of the current option */
                         DebugOptionLength = (DebugOptionEnd - 
DebugOptionStart);
 
-                       /*
-                        * Break out if we reached the last option
-                        * or if there were no options at all
-                        */
-                       if (!DebugOptionLength) break;
+                        /*
+                         * Break out if we reached the last option
+                         * or if there were no options at all.
+                         */
+                        if (!DebugOptionLength)
+                            break;
 
                         /* Now check which option this is */
                         if ((DebugOptionLength == 10) &&
                             !(strncmp(DebugOptionStart, "AUTOENABLE", 10)))
                         {
-                            /*
-                             * Disable the debugger, but
-                             * allow it to be reenabled
-                             */
+                            /* Disable the debugger, but
+                             * allow to re-enable it later */
                             DisableKdAfterInit = TRUE;
                             BlockEnable = FALSE;
                             KdAutoEnableOnEvent = TRUE;
@@ -335,14 +329,11 @@ KdInitSystem(
                         }
 
                         /*
-                         * If there are more options then
-                         * the next character should be a comma
+                         * If there are more options then the next character
+                         * should be a comma. Break out if it isn't.
                          */
                         if (*DebugOptionEnd != ',')
-                        {
-                            /* It isn't, break out  */
                             break;
-                        }
 
                         /* Move on to the next option */
                         DebugOptionEnd++;
@@ -431,10 +422,16 @@ KdInitSystem(
         /* Check if we have a loader block */
         if (LoaderBlock)
         {
-            /* Loop boot images */
-            NextEntry = LoaderBlock->LoadOrderListHead.Flink;
-            i = 0;
-            while ((NextEntry != &LoaderBlock->LoadOrderListHead) && (i < 2))
+            PLIST_ENTRY NextEntry;
+            ULONG j, Length;
+            PWCHAR Name;
+            STRING ImageName;
+            CHAR NameBuffer[256];
+
+            /* Loop over the first two boot images: HAL and kernel */
+            for (NextEntry = LoaderBlock->LoadOrderListHead.Flink, i = 0;
+                 NextEntry != &LoaderBlock->LoadOrderListHead && (i < 2);
+                 NextEntry = NextEntry->Flink, ++i)
             {
                 /* Get the image entry */
                 LdrEntry = CONTAINING_RECORD(NextEntry,
@@ -454,15 +451,11 @@ KdInitSystem(
                 /* Null-terminate */
                 NameBuffer[j] = ANSI_NULL;
 
-                /* Load symbols for image */
+                /* Load the symbols */
                 RtlInitString(&ImageName, NameBuffer);
                 DbgLoadImageSymbols(&ImageName,
                                     LdrEntry->DllBase,
                                     (ULONG_PTR)PsGetCurrentProcessId());
-
-                /* Go to the next entry */
-                NextEntry = NextEntry->Flink;
-                i++;
             }
 
             /* Check for incoming break-in and break on symbol load

Reply via email to