- There is no need for the i8042 driver to use a hacked KdSystemDebugControl call to breakpoint or crash on TAB+k/TAB+b. Just call DbgBreakPoint or KeBugCheck directly.

svn path=/trunk/; revision=56336
This commit is contained in:
Stefan Ginsberg 2012-04-08 15:57:04 +00:00
parent 51de801d45
commit e15e4f0c7e
3 changed files with 24 additions and 26 deletions

View file

@ -812,16 +812,30 @@ i8042KbdInterruptService(
else if (DeviceExtension->TabPressed) else if (DeviceExtension->TabPressed)
{ {
DeviceExtension->TabPressed = FALSE; DeviceExtension->TabPressed = FALSE;
/* Send request to the kernel debugger. /* Check which action to do */
* Unknown requests will be ignored. */ if (InputData->MakeCode == 0x25)
KdSystemDebugControl(' soR', {
(PVOID)(ULONG_PTR)InputData->MakeCode, /* k - Breakpoint */
0, DbgBreakPoint();
NULL, }
0, else if (InputData->MakeCode == 0x30)
NULL, {
KernelMode); /* 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);
}
} }
} }

View 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: case DumpAllThreads:
PspDumpThreads(TRUE); PspDumpThreads(TRUE);
break; break;
@ -68,10 +64,6 @@ KdpServiceDispatcher(ULONG Service,
PspDumpThreads(FALSE); PspDumpThreads(FALSE);
break; break;
case EnterDebugger:
DbgBreakPoint();
break;
case KdSpare3: case KdSpare3:
MmDumpArmPfnDatabase(FALSE); MmDumpArmPfnDatabase(FALSE);
break; break;

View 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: case 0x24:
MmDumpArmPfnDatabase(FALSE); MmDumpArmPfnDatabase(FALSE);
break; break;