- 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

@ -813,6 +813,19 @@ i8042KbdInterruptService(
{
DeviceExtension->TabPressed = FALSE;
/* 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',
@ -824,6 +837,7 @@ i8042KbdInterruptService(
KernelMode);
}
}
}
if (i8042KbdCallIsrHook(DeviceExtension, PortStatus, Output, &ToReturn))
return ToReturn;

View file

@ -56,10 +56,6 @@ KdpServiceDispatcher(ULONG Service,
{
switch ((ULONG_PTR)Buffer1)
{
case ManualBugCheck:
KeBugCheck(MANUALLY_INITIATED_CRASH);
break;
case DumpAllThreads:
PspDumpThreads(TRUE);
break;
@ -68,10 +64,6 @@ KdpServiceDispatcher(ULONG Service,
PspDumpThreads(FALSE);
break;
case EnterDebugger:
DbgBreakPoint();
break;
case KdSpare3:
MmDumpArmPfnDatabase(FALSE);
break;

View file

@ -1953,14 +1953,6 @@ KdSystemDebugControl(IN SYSDBG_COMMAND Command,
{
switch ((ULONG_PTR)InputBuffer)
{
case 0x30: // ManualBugCheck:
KeBugCheck(MANUALLY_INITIATED_CRASH);
break;
case 0x25: // EnterDebugger:
DbgBreakPoint();
break;
case 0x24:
MmDumpArmPfnDatabase(FALSE);
break;