mirror of
https://github.com/acpica/acpica/
synced 2025-02-25 01:44:33 +03:00
Fix implementation of AML BreakPoint operator (break to debugger).
The AML BreakPoint opcode will now cause a break into the AML debugger if it is present/configured. This matches the expected behavior per the ACPI specification. Previously, only a message was output.
This commit is contained in:
parent
4012f44bbb
commit
ef30c37591
@ -1551,12 +1551,20 @@ AcpiDsExecEndControlOp (
|
||||
|
||||
case AML_BREAK_POINT_OP:
|
||||
|
||||
/* Call up to the OS service layer to handle this */
|
||||
/*
|
||||
* Set the single-step flag. This will cause the debugger (if present)
|
||||
* to break to the console within the AML debugger at the start of the
|
||||
* next AML instruction.
|
||||
*/
|
||||
ACPI_DEBUGGER_EXEC (
|
||||
AcpiGbl_CmSingleStep = TRUE);
|
||||
ACPI_DEBUGGER_EXEC (
|
||||
AcpiOsPrintf ("**break** Executed AML BreakPoint opcode\n"));
|
||||
|
||||
Status = AcpiOsSignal (ACPI_SIGNAL_BREAKPOINT, "Executed AML Breakpoint opcode");
|
||||
|
||||
/* If and when it returns, all done. */
|
||||
/* Call to the OSL in case OS wants a piece of the action */
|
||||
|
||||
Status = AcpiOsSignal (ACPI_SIGNAL_BREAKPOINT,
|
||||
"Executed AML Breakpoint opcode");
|
||||
break;
|
||||
|
||||
|
||||
|
@ -812,36 +812,6 @@ AcpiOsExecute (
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiOsBreakpoint
|
||||
*
|
||||
* PARAMETERS: Msg Message to print
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Print a message and break to the debugger.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsBreakpoint (
|
||||
char *Msg)
|
||||
{
|
||||
|
||||
if (Msg)
|
||||
{
|
||||
AcpiOsPrintf ("AcpiOsBreakpoint: %s ****\n", Msg);
|
||||
}
|
||||
else
|
||||
{
|
||||
AcpiOsPrintf ("At AcpiOsBreakpoint ****\n");
|
||||
}
|
||||
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiOsStall
|
||||
@ -1207,7 +1177,7 @@ AcpiOsGetThreadId (void)
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Miscellaneous functions
|
||||
* DESCRIPTION: Miscellaneous functions. Example implementation only.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -1223,15 +1193,6 @@ AcpiOsSignal (
|
||||
break;
|
||||
|
||||
case ACPI_SIGNAL_BREAKPOINT:
|
||||
|
||||
if (Info)
|
||||
{
|
||||
AcpiOsPrintf ("AcpiOsBreakpoint: %s ****\n", Info);
|
||||
}
|
||||
else
|
||||
{
|
||||
AcpiOsPrintf ("At AcpiOsBreakpoint ****\n");
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -1382,7 +1382,7 @@ AcpiOsWriteMemory (
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Miscellaneous functions
|
||||
* DESCRIPTION: Miscellaneous functions. Example implementation only.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -1398,16 +1398,9 @@ AcpiOsSignal (
|
||||
break;
|
||||
|
||||
case ACPI_SIGNAL_BREAKPOINT:
|
||||
break;
|
||||
|
||||
if (Info)
|
||||
{
|
||||
AcpiOsPrintf ("AcpiOsBreakpoint: %s ****\n", Info);
|
||||
}
|
||||
else
|
||||
{
|
||||
AcpiOsPrintf ("At AcpiOsBreakpoint ****\n");
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user