summaryrefslogtreecommitdiff
path: root/source/components/dispatcher/dsopcode.c
diff options
context:
space:
mode:
authorRobert Moore <Robert.Moore@intel.com>2009-04-14 10:50:38 -0700
committerRobert Moore <Robert.Moore@intel.com>2009-04-14 10:50:38 -0700
commitef30c375918509887f66200d8a70c42b7869ca28 (patch)
treebe1c423585aae5655302a1c3721d57a88c6ac006 /source/components/dispatcher/dsopcode.c
parent4012f44bbb5bef30a09d01dd3359fb4989d2b84d (diff)
downloadacpica-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.c16
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;