[ros-diffs] [gvg] 14707: Hervé Poussineau <poussine@freesurf.fr>

gvg at svn.reactos.com gvg at svn.reactos.com
Wed Apr 20 00:33:10 CEST 2005


Hervé Poussineau <poussine at freesurf.fr>
Solve quarrel between GDB stub and serenum
Modified: trunk/reactos/ntoskrnl/io/pnpreport.c
  _____  

Modified: trunk/reactos/ntoskrnl/io/pnpreport.c
--- trunk/reactos/ntoskrnl/io/pnpreport.c	2005-04-19 21:47:05 UTC
(rev 14706)
+++ trunk/reactos/ntoskrnl/io/pnpreport.c	2005-04-19 22:33:09 UTC
(rev 14707)
@@ -1,4 +1,4 @@

-/* $Id:$
+/* $Id$
  * 
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -116,7 +116,37 @@
       }
     }
   }
-  
+
+  if ((KdDebugState & KD_DEBUG_GDB) && DriverList != NULL)
+  {
+    ULONG ComPortBase = 0;
+    ULONG i;
+    PCM_PARTIAL_RESOURCE_DESCRIPTOR ResourceDescriptor;
+    
+    switch (GdbPortInfo.ComPort)
+    {
+      case 1: ComPortBase = 0x3f8; break;
+      case 2: ComPortBase = 0x2f8; break;
+      case 3: ComPortBase = 0x3e8; break;
+      case 4: ComPortBase = 0x2e8; break;
+    }
+    
+    /* search for this port address in DriverList */
+    for (i = 0; i < DriverList->List[0].PartialResourceList.Count; i++)
+    {
+      ResourceDescriptor =
&DriverList->List[0].PartialResourceList.PartialDescriptors[i];
+      if (ResourceDescriptor->Type == CmResourceTypePort)
+      {
+        if (ResourceDescriptor->u.Port.Start.u.LowPart <= ComPortBase
+         && ResourceDescriptor->u.Port.Start.u.LowPart +
ResourceDescriptor->u.Port.Length > ComPortBase)
+        {
+          *ConflictDetected = TRUE;
+          return STATUS_CONFLICTING_ADDRESSES;
+        }
+      }
+    }
+  }
+    
   if (PopSystemPowerDeviceNode != NULL && DriverListSize > 0)
   {
     /* We hope legacy devices will be enumerated by ACPI */




More information about the Ros-diffs mailing list