- There is no need for the i8042 driver to use a hacked KdSystemDebugControl call...
authorStefan Ginsberg <stefanginsberg@gmail.com>
Sun, 8 Apr 2012 15:57:04 +0000 (15:57 +0000)
committerStefan Ginsberg <stefanginsberg@gmail.com>
Sun, 8 Apr 2012 15:57:04 +0000 (15:57 +0000)
svn path=/trunk/; revision=56336

reactos/drivers/input/i8042prt/keyboard.c
reactos/ntoskrnl/kd/kdmain.c
reactos/ntoskrnl/kd64/kdapi.c

index 9d6bc13..2752608 100644 (file)
@@ -812,16 +812,30 @@ i8042KbdInterruptService(
                else if (DeviceExtension->TabPressed)
                {
                        DeviceExtension->TabPressed = FALSE;
                else if (DeviceExtension->TabPressed)
                {
                        DeviceExtension->TabPressed = FALSE;
-
-                       /* Send request to the kernel debugger. 
-                        * Unknown requests will be ignored. */
-                       KdSystemDebugControl(' soR',
-                                            (PVOID)(ULONG_PTR)InputData->MakeCode,
-                                            0,
-                                            NULL,
-                                            0,
-                                            NULL,
-                                            KernelMode);
+            
+            /* Check which action to do */
+            if (InputData->MakeCode == 0x25)
+            {
+                /* k - Breakpoint */
+                DbgBreakPoint();
+            }
+            else if (InputData->MakeCode == 0x30)
+            {
+                /* b - Bugcheck */
+                KeBugCheck(MANUALLY_INITIATED_CRASH);
+            }
+            else
+            {
+                           /* Send request to the kernel debugger. 
+                            * Unknown requests will be ignored. */
+                           KdSystemDebugControl(' soR',
+                                                (PVOID)(ULONG_PTR)InputData->MakeCode,
+                                                0,
+                                                NULL,
+                                                0,
+                                                NULL,
+                                                KernelMode);
+            }
                }
        }
 
                }
        }
 
index ac1f0bc..bacb9b3 100644 (file)
@@ -56,10 +56,6 @@ KdpServiceDispatcher(ULONG Service,
         {
             switch ((ULONG_PTR)Buffer1)
             {
         {
             switch ((ULONG_PTR)Buffer1)
             {
-                case ManualBugCheck:
-                    KeBugCheck(MANUALLY_INITIATED_CRASH);
-                    break;
-
                 case DumpAllThreads:
                     PspDumpThreads(TRUE);
                     break;
                 case DumpAllThreads:
                     PspDumpThreads(TRUE);
                     break;
@@ -68,10 +64,6 @@ KdpServiceDispatcher(ULONG Service,
                     PspDumpThreads(FALSE);
                     break;
 
                     PspDumpThreads(FALSE);
                     break;
 
-                case EnterDebugger:
-                    DbgBreakPoint();
-                    break;
-
                 case KdSpare3:
                     MmDumpArmPfnDatabase(FALSE);
                     break;
                 case KdSpare3:
                     MmDumpArmPfnDatabase(FALSE);
                     break;
index 4e008e7..3f477c2 100644 (file)
@@ -1953,14 +1953,6 @@ KdSystemDebugControl(IN SYSDBG_COMMAND Command,
     {
         switch ((ULONG_PTR)InputBuffer)
         {
     {
         switch ((ULONG_PTR)InputBuffer)
         {
-            case 0x30: // ManualBugCheck:
-                KeBugCheck(MANUALLY_INITIATED_CRASH);
-                break;
-
-             case 0x25: // EnterDebugger:
-                DbgBreakPoint();
-                break;
-
             case 0x24:
                 MmDumpArmPfnDatabase(FALSE);
                 break;
             case 0x24:
                 MmDumpArmPfnDatabase(FALSE);
                 break;