diff options
author | Robert Moore <Robert.Moore@intel.com> | 2009-04-14 10:50:38 -0700 |
---|---|---|
committer | Robert Moore <Robert.Moore@intel.com> | 2009-04-14 10:50:38 -0700 |
commit | ef30c375918509887f66200d8a70c42b7869ca28 (patch) | |
tree | be1c423585aae5655302a1c3721d57a88c6ac006 /source/components/dispatcher/dsopcode.c | |
parent | 4012f44bbb5bef30a09d01dd3359fb4989d2b84d (diff) | |
download | acpica-ef30c375918509887f66200d8a70c42b7869ca28.tar.gz |
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.
Diffstat (limited to 'source/components/dispatcher/dsopcode.c')
-rw-r--r-- | source/components/dispatcher/dsopcode.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/source/components/dispatcher/dsopcode.c b/source/components/dispatcher/dsopcode.c index 20761c5af..3edbacc1d 100644 --- a/source/components/dispatcher/dsopcode.c +++ b/source/components/dispatcher/dsopcode.c @@ -1551,12 +1551,20 @@ AcpiDsExecEndControlOp ( case AML_BREAK_POINT_OP: - /* Call up to the OS service layer to handle this */ - - Status = AcpiOsSignal (ACPI_SIGNAL_BREAKPOINT, "Executed AML Breakpoint opcode"); + /* + * 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")); - /* 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; |