summaryrefslogtreecommitdiff
path: root/source/components/executer/exdebug.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/components/executer/exdebug.c')
-rw-r--r--source/components/executer/exdebug.c384
1 files changed, 6 insertions, 378 deletions
diff --git a/source/components/executer/exdebug.c b/source/components/executer/exdebug.c
index f50d07b17945..4d97cda0d372 100644
--- a/source/components/executer/exdebug.c
+++ b/source/components/executer/exdebug.c
@@ -43,26 +43,13 @@
#include "acpi.h"
#include "accommon.h"
-#include "acnamesp.h"
#include "acinterp.h"
-#include "acparser.h"
#define _COMPONENT ACPI_EXECUTER
ACPI_MODULE_NAME ("exdebug")
-static ACPI_OPERAND_OBJECT *AcpiGbl_TraceMethodObject = NULL;
-
-/* Local prototypes */
-
-#ifdef ACPI_DEBUG_OUTPUT
-static const char *
-AcpiExGetTraceEventName (
- ACPI_TRACE_EVENT_TYPE Type);
-#endif
-
-
#ifndef ACPI_NO_ERROR_MESSAGES
/*******************************************************************************
*
@@ -153,7 +140,7 @@ AcpiExDoDebugObject (
{
AcpiOsPrintf ("%s: %p\n",
AcpiUtGetTypeName (((ACPI_NAMESPACE_NODE *) SourceDesc)->Type),
- SourceDesc);
+ SourceDesc);
return_VOID;
}
else
@@ -205,7 +192,7 @@ AcpiExDoDebugObject (
for (i = 0; i < SourceDesc->Package.Count; i++)
{
AcpiExDoDebugObject (SourceDesc->Package.Elements[i],
- Level+4, i+1);
+ Level + 4, i + 1);
}
break;
@@ -241,7 +228,7 @@ AcpiExDoDebugObject (
if (SourceDesc->Reference.Node)
{
if (ACPI_GET_DESCRIPTOR_TYPE (SourceDesc->Reference.Node) !=
- ACPI_DESC_TYPE_NAMED)
+ ACPI_DESC_TYPE_NAMED)
{
AcpiOsPrintf (" %p - Not a valid namespace node\n",
SourceDesc->Reference.Node);
@@ -266,7 +253,7 @@ AcpiExDoDebugObject (
default:
AcpiExDoDebugObject ((SourceDesc->Reference.Node)->Object,
- Level+4, 0);
+ Level + 4, 0);
break;
}
}
@@ -274,11 +261,11 @@ AcpiExDoDebugObject (
else if (SourceDesc->Reference.Object)
{
if (ACPI_GET_DESCRIPTOR_TYPE (SourceDesc->Reference.Object) ==
- ACPI_DESC_TYPE_NAMED)
+ ACPI_DESC_TYPE_NAMED)
{
AcpiExDoDebugObject (((ACPI_NAMESPACE_NODE *)
SourceDesc->Reference.Object)->Object,
- Level+4, 0);
+ Level + 4, 0);
}
else
{
@@ -327,362 +314,3 @@ AcpiExDoDebugObject (
return_VOID;
}
#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExInterpreterTraceEnabled
- *
- * PARAMETERS: Name - Whether method name should be matched,
- * this should be checked before starting
- * the tracer
- *
- * RETURN: TRUE if interpreter trace is enabled.
- *
- * DESCRIPTION: Check whether interpreter trace is enabled
- *
- ******************************************************************************/
-
-static BOOLEAN
-AcpiExInterpreterTraceEnabled (
- char *Name)
-{
-
- /* Check if tracing is enabled */
-
- if (!(AcpiGbl_TraceFlags & ACPI_TRACE_ENABLED))
- {
- return (FALSE);
- }
-
- /*
- * Check if tracing is filtered:
- *
- * 1. If the tracer is started, AcpiGbl_TraceMethodObject should have
- * been filled by the trace starter
- * 2. If the tracer is not started, AcpiGbl_TraceMethodName should be
- * matched if it is specified
- * 3. If the tracer is oneshot style, AcpiGbl_TraceMethodName should
- * not be cleared by the trace stopper during the first match
- */
- if (AcpiGbl_TraceMethodObject)
- {
- return (TRUE);
- }
- if (Name &&
- (AcpiGbl_TraceMethodName &&
- strcmp (AcpiGbl_TraceMethodName, Name)))
- {
- return (FALSE);
- }
- if ((AcpiGbl_TraceFlags & ACPI_TRACE_ONESHOT) &&
- !AcpiGbl_TraceMethodName)
- {
- return (FALSE);
- }
-
- return (TRUE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExGetTraceEventName
- *
- * PARAMETERS: Type - Trace event type
- *
- * RETURN: Trace event name.
- *
- * DESCRIPTION: Used to obtain the full trace event name.
- *
- ******************************************************************************/
-
-#ifdef ACPI_DEBUG_OUTPUT
-
-static const char *
-AcpiExGetTraceEventName (
- ACPI_TRACE_EVENT_TYPE Type)
-{
- switch (Type)
- {
- case ACPI_TRACE_AML_METHOD:
-
- return "Method";
-
- case ACPI_TRACE_AML_OPCODE:
-
- return "Opcode";
-
- case ACPI_TRACE_AML_REGION:
-
- return "Region";
-
- default:
-
- return "";
- }
-}
-
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExTracePoint
- *
- * PARAMETERS: Type - Trace event type
- * Begin - TRUE if before execution
- * Aml - Executed AML address
- * Pathname - Object path
- *
- * RETURN: None
- *
- * DESCRIPTION: Internal interpreter execution trace.
- *
- ******************************************************************************/
-
-void
-AcpiExTracePoint (
- ACPI_TRACE_EVENT_TYPE Type,
- BOOLEAN Begin,
- UINT8 *Aml,
- char *Pathname)
-{
-
- ACPI_FUNCTION_NAME (ExTracePoint);
-
-
- if (Pathname)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_TRACE_POINT,
- "%s %s [0x%p:%s] execution.\n",
- AcpiExGetTraceEventName (Type), Begin ? "Begin" : "End",
- Aml, Pathname));
- }
- else
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_TRACE_POINT,
- "%s %s [0x%p] execution.\n",
- AcpiExGetTraceEventName (Type), Begin ? "Begin" : "End",
- Aml));
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExStartTraceMethod
- *
- * PARAMETERS: MethodNode - Node of the method
- * ObjDesc - The method object
- * WalkState - current state, NULL if not yet executing
- * a method.
- *
- * RETURN: None
- *
- * DESCRIPTION: Start control method execution trace
- *
- ******************************************************************************/
-
-void
-AcpiExStartTraceMethod (
- ACPI_NAMESPACE_NODE *MethodNode,
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status;
- char *Pathname = NULL;
- BOOLEAN Enabled = FALSE;
-
-
- ACPI_FUNCTION_NAME (ExStartTraceMethod);
-
-
- if (MethodNode)
- {
- Pathname = AcpiNsGetNormalizedPathname (MethodNode, TRUE);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- goto Exit;
- }
-
- Enabled = AcpiExInterpreterTraceEnabled (Pathname);
- if (Enabled && !AcpiGbl_TraceMethodObject)
- {
- AcpiGbl_TraceMethodObject = ObjDesc;
- AcpiGbl_OriginalDbgLevel = AcpiDbgLevel;
- AcpiGbl_OriginalDbgLayer = AcpiDbgLayer;
- AcpiDbgLevel = ACPI_TRACE_LEVEL_ALL;
- AcpiDbgLayer = ACPI_TRACE_LAYER_ALL;
-
- if (AcpiGbl_TraceDbgLevel)
- {
- AcpiDbgLevel = AcpiGbl_TraceDbgLevel;
- }
- if (AcpiGbl_TraceDbgLayer)
- {
- AcpiDbgLayer = AcpiGbl_TraceDbgLayer;
- }
- }
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-
-Exit:
- if (Enabled)
- {
- ACPI_TRACE_POINT (ACPI_TRACE_AML_METHOD, TRUE,
- ObjDesc ? ObjDesc->Method.AmlStart : NULL, Pathname);
- }
- if (Pathname)
- {
- ACPI_FREE (Pathname);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExStopTraceMethod
- *
- * PARAMETERS: MethodNode - Node of the method
- * ObjDesc - The method object
- * WalkState - current state, NULL if not yet executing
- * a method.
- *
- * RETURN: None
- *
- * DESCRIPTION: Stop control method execution trace
- *
- ******************************************************************************/
-
-void
-AcpiExStopTraceMethod (
- ACPI_NAMESPACE_NODE *MethodNode,
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status;
- char *Pathname = NULL;
- BOOLEAN Enabled;
-
-
- ACPI_FUNCTION_NAME (ExStopTraceMethod);
-
-
- if (MethodNode)
- {
- Pathname = AcpiNsGetNormalizedPathname (MethodNode, TRUE);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- goto ExitPath;
- }
-
- Enabled = AcpiExInterpreterTraceEnabled (NULL);
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-
- if (Enabled)
- {
- ACPI_TRACE_POINT (ACPI_TRACE_AML_METHOD, FALSE,
- ObjDesc ? ObjDesc->Method.AmlStart : NULL, Pathname);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- goto ExitPath;
- }
-
- /* Check whether the tracer should be stopped */
-
- if (AcpiGbl_TraceMethodObject == ObjDesc)
- {
- /* Disable further tracing if type is one-shot */
-
- if (AcpiGbl_TraceFlags & ACPI_TRACE_ONESHOT)
- {
- AcpiGbl_TraceMethodName = NULL;
- }
-
- AcpiDbgLevel = AcpiGbl_OriginalDbgLevel;
- AcpiDbgLayer = AcpiGbl_OriginalDbgLayer;
- AcpiGbl_TraceMethodObject = NULL;
- }
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-
-ExitPath:
- if (Pathname)
- {
- ACPI_FREE (Pathname);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExStartTraceOpcode
- *
- * PARAMETERS: Op - The parser opcode object
- * WalkState - current state, NULL if not yet executing
- * a method.
- *
- * RETURN: None
- *
- * DESCRIPTION: Start opcode execution trace
- *
- ******************************************************************************/
-
-void
-AcpiExStartTraceOpcode (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState)
-{
-
- ACPI_FUNCTION_NAME (ExStartTraceOpcode);
-
-
- if (AcpiExInterpreterTraceEnabled (NULL) &&
- (AcpiGbl_TraceFlags & ACPI_TRACE_OPCODE))
- {
- ACPI_TRACE_POINT (ACPI_TRACE_AML_OPCODE, TRUE,
- Op->Common.Aml, Op->Common.AmlOpName);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExStopTraceOpcode
- *
- * PARAMETERS: Op - The parser opcode object
- * WalkState - current state, NULL if not yet executing
- * a method.
- *
- * RETURN: None
- *
- * DESCRIPTION: Stop opcode execution trace
- *
- ******************************************************************************/
-
-void
-AcpiExStopTraceOpcode (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState)
-{
-
- ACPI_FUNCTION_NAME (ExStopTraceOpcode);
-
-
- if (AcpiExInterpreterTraceEnabled (NULL) &&
- (AcpiGbl_TraceFlags & ACPI_TRACE_OPCODE))
- {
- ACPI_TRACE_POINT (ACPI_TRACE_AML_OPCODE, FALSE,
- Op->Common.Aml, Op->Common.AmlOpName);
- }
-}