summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev/acpica/components/debugger/dbdisply.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/dev/acpica/components/debugger/dbdisply.c')
-rw-r--r--sys/contrib/dev/acpica/components/debugger/dbdisply.c202
1 files changed, 110 insertions, 92 deletions
diff --git a/sys/contrib/dev/acpica/components/debugger/dbdisply.c b/sys/contrib/dev/acpica/components/debugger/dbdisply.c
index 507c2b0..8db59bc 100644
--- a/sys/contrib/dev/acpica/components/debugger/dbdisply.c
+++ b/sys/contrib/dev/acpica/components/debugger/dbdisply.c
@@ -5,7 +5,7 @@
******************************************************************************/
/*
- * Copyright (C) 2000 - 2015, Intel Corp.
+ * Copyright (C) 2000 - 2016, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -48,12 +48,10 @@
#include <contrib/dev/acpica/include/acnamesp.h>
#include <contrib/dev/acpica/include/acparser.h>
#include <contrib/dev/acpica/include/acinterp.h>
+#include <contrib/dev/acpica/include/acevents.h>
#include <contrib/dev/acpica/include/acdebug.h>
-#include <contrib/dev/acpica/include/acdisasm.h>
-#ifdef ACPI_DEBUGGER
-
#define _COMPONENT ACPI_CA_DEBUGGER
ACPI_MODULE_NAME ("dbdisply")
@@ -141,7 +139,7 @@ AcpiDbGetPointer (
ACPI_SIZE Address;
- Address = ACPI_STRTOUL (Target, NULL, 16);
+ Address = strtoul (Target, NULL, 16);
ObjPtr = ACPI_TO_POINTER (Address);
return (ObjPtr);
}
@@ -243,7 +241,8 @@ AcpiDbDecodeAndDisplayObject (
ObjPtr = AcpiDbGetPointer (Target);
if (!AcpiOsReadable (ObjPtr, 16))
{
- AcpiOsPrintf ("Address %p is invalid in this address space\n",
+ AcpiOsPrintf (
+ "Address %p is invalid in this address space\n",
ObjPtr);
return;
}
@@ -259,7 +258,8 @@ AcpiDbDecodeAndDisplayObject (
if (!AcpiOsReadable (ObjPtr, sizeof (ACPI_NAMESPACE_NODE)))
{
AcpiOsPrintf (
- "Cannot read entire Named object at address %p\n", ObjPtr);
+ "Cannot read entire Named object at address %p\n",
+ ObjPtr);
return;
}
@@ -272,13 +272,14 @@ AcpiDbDecodeAndDisplayObject (
if (!AcpiOsReadable (ObjPtr, sizeof (ACPI_OPERAND_OBJECT)))
{
- AcpiOsPrintf ("Cannot read entire ACPI object at address %p\n",
+ AcpiOsPrintf (
+ "Cannot read entire ACPI object at address %p\n",
ObjPtr);
return;
}
- AcpiUtDebugDumpBuffer (ObjPtr, sizeof (ACPI_OPERAND_OBJECT), Display,
- ACPI_UINT32_MAX);
+ AcpiUtDebugDumpBuffer (ObjPtr, sizeof (ACPI_OPERAND_OBJECT),
+ Display, ACPI_UINT32_MAX);
AcpiExDumpObjectDescriptor (ObjPtr, 1);
break;
@@ -289,12 +290,13 @@ AcpiDbDecodeAndDisplayObject (
if (!AcpiOsReadable (ObjPtr, sizeof (ACPI_PARSE_OBJECT)))
{
AcpiOsPrintf (
- "Cannot read entire Parser object at address %p\n", ObjPtr);
+ "Cannot read entire Parser object at address %p\n",
+ ObjPtr);
return;
}
- AcpiUtDebugDumpBuffer (ObjPtr, sizeof (ACPI_PARSE_OBJECT), Display,
- ACPI_UINT32_MAX);
+ AcpiUtDebugDumpBuffer (ObjPtr, sizeof (ACPI_PARSE_OBJECT),
+ Display, ACPI_UINT32_MAX);
AcpiDbDumpParserDescriptor ((ACPI_PARSE_OBJECT *) ObjPtr);
break;
@@ -333,7 +335,7 @@ AcpiDbDecodeAndDisplayObject (
DumpNode:
/* Now dump the NS node */
- Status = AcpiGetName (Node, ACPI_FULL_PATHNAME, &RetBuf);
+ Status = AcpiGetName (Node, ACPI_FULL_PATHNAME_NO_TRAILING, &RetBuf);
if (ACPI_FAILURE (Status))
{
AcpiOsPrintf ("Could not convert name to pathname\n");
@@ -366,8 +368,8 @@ DumpNode:
return;
}
- AcpiUtDebugDumpBuffer ((void *) ObjDesc, sizeof (ACPI_OPERAND_OBJECT),
- Display, ACPI_UINT32_MAX);
+ AcpiUtDebugDumpBuffer ((void *) ObjDesc,
+ sizeof (ACPI_OPERAND_OBJECT), Display, ACPI_UINT32_MAX);
AcpiExDumpObjectDescriptor (ObjDesc, 1);
}
}
@@ -412,14 +414,13 @@ AcpiDbDisplayMethodInfo (
}
ObjDesc = WalkState->MethodDesc;
- Node = WalkState->MethodNode;
+ Node = WalkState->MethodNode;
AcpiOsPrintf ("Currently executing control method is [%4.4s]\n",
- AcpiUtGetNodeName (Node));
+ AcpiUtGetNodeName (Node));
AcpiOsPrintf ("%X Arguments, SyncLevel = %X\n",
- (UINT32) ObjDesc->Method.ParamCount,
- (UINT32) ObjDesc->Method.SyncLevel);
-
+ (UINT32) ObjDesc->Method.ParamCount,
+ (UINT32) ObjDesc->Method.SyncLevel);
RootOp = StartOp;
while (RootOp->Common.Parent)
@@ -513,7 +514,7 @@ AcpiDbDisplayLocals (
return;
}
- AcpiDmDisplayLocals (WalkState);
+ AcpiDbDecodeLocals (WalkState);
}
@@ -543,7 +544,7 @@ AcpiDbDisplayArguments (
return;
}
- AcpiDmDisplayArguments (WalkState);
+ AcpiDbDecodeArguments (WalkState);
}
@@ -580,7 +581,7 @@ AcpiDbDisplayResults (
}
ObjDesc = WalkState->MethodDesc;
- Node = WalkState->MethodNode;
+ Node = WalkState->MethodNode;
if (WalkState->Results)
{
@@ -588,7 +589,7 @@ AcpiDbDisplayResults (
}
AcpiOsPrintf ("Method [%4.4s] has %X stacked result objects\n",
- AcpiUtGetNodeName (Node), ResultCount);
+ AcpiUtGetNodeName (Node), ResultCount);
/* From the top element of result stack */
@@ -599,12 +600,14 @@ AcpiDbDisplayResults (
{
ObjDesc = Frame->Results.ObjDesc[Index];
AcpiOsPrintf ("Result%u: ", i);
- AcpiDmDisplayInternalObject (ObjDesc, WalkState);
+ AcpiDbDisplayInternalObject (ObjDesc, WalkState);
+
if (Index == 0)
{
Frame = Frame->Results.Next;
Index = ACPI_RESULTS_FRAME_OBJ_NUM;
}
+
Index--;
}
}
@@ -643,7 +646,6 @@ AcpiDbDisplayCallingTree (
while (WalkState)
{
Node = WalkState->MethodNode;
-
AcpiOsPrintf (" [%4.4s]\n", AcpiUtGetNodeName (Node));
WalkState = WalkState->Next;
@@ -655,7 +657,7 @@ AcpiDbDisplayCallingTree (
*
* FUNCTION: AcpiDbDisplayObjectType
*
- * PARAMETERS: Name - User entered NS node handle or name
+ * PARAMETERS: ObjectArg - User entered NS node handle
*
* RETURN: None
*
@@ -665,21 +667,19 @@ AcpiDbDisplayCallingTree (
void
AcpiDbDisplayObjectType (
- char *Name)
+ char *ObjectArg)
{
- ACPI_NAMESPACE_NODE *Node;
+ ACPI_SIZE Arg;
+ ACPI_HANDLE Handle;
ACPI_DEVICE_INFO *Info;
ACPI_STATUS Status;
UINT32 i;
- Node = AcpiDbConvertToNode (Name);
- if (!Node)
- {
- return;
- }
+ Arg = strtoul (ObjectArg, NULL, 16);
+ Handle = ACPI_TO_POINTER (Arg);
- Status = AcpiGetObjectInfo (ACPI_CAST_PTR (ACPI_HANDLE, Node), &Info);
+ Status = AcpiGetObjectInfo (Handle, &Info);
if (ACPI_FAILURE (Status))
{
AcpiOsPrintf ("Could not get object info, %s\n",
@@ -687,38 +687,29 @@ AcpiDbDisplayObjectType (
return;
}
- if (Info->Valid & ACPI_VALID_ADR)
- {
- AcpiOsPrintf ("ADR: %8.8X%8.8X, STA: %8.8X, Flags: %X\n",
- ACPI_FORMAT_UINT64 (Info->Address),
- Info->CurrentStatus, Info->Flags);
- }
- if (Info->Valid & ACPI_VALID_SXDS)
- {
- AcpiOsPrintf ("S1D-%2.2X S2D-%2.2X S3D-%2.2X S4D-%2.2X\n",
- Info->HighestDstates[0], Info->HighestDstates[1],
- Info->HighestDstates[2], Info->HighestDstates[3]);
- }
- if (Info->Valid & ACPI_VALID_SXWS)
- {
- AcpiOsPrintf ("S0W-%2.2X S1W-%2.2X S2W-%2.2X S3W-%2.2X S4W-%2.2X\n",
- Info->LowestDstates[0], Info->LowestDstates[1],
- Info->LowestDstates[2], Info->LowestDstates[3],
- Info->LowestDstates[4]);
- }
+ AcpiOsPrintf ("ADR: %8.8X%8.8X, STA: %8.8X, Flags: %X\n",
+ ACPI_FORMAT_UINT64 (Info->Address),
+ Info->CurrentStatus, Info->Flags);
+
+ AcpiOsPrintf ("S1D-%2.2X S2D-%2.2X S3D-%2.2X S4D-%2.2X\n",
+ Info->HighestDstates[0], Info->HighestDstates[1],
+ Info->HighestDstates[2], Info->HighestDstates[3]);
+
+ AcpiOsPrintf ("S0W-%2.2X S1W-%2.2X S2W-%2.2X S3W-%2.2X S4W-%2.2X\n",
+ Info->LowestDstates[0], Info->LowestDstates[1],
+ Info->LowestDstates[2], Info->LowestDstates[3],
+ Info->LowestDstates[4]);
if (Info->Valid & ACPI_VALID_HID)
{
AcpiOsPrintf ("HID: %s\n", Info->HardwareId.String);
}
+
if (Info->Valid & ACPI_VALID_UID)
{
AcpiOsPrintf ("UID: %s\n", Info->UniqueId.String);
}
- if (Info->Valid & ACPI_VALID_SUB)
- {
- AcpiOsPrintf ("SUB: %s\n", Info->SubsystemId.String);
- }
+
if (Info->Valid & ACPI_VALID_CID)
{
for (i = 0; i < Info->CompatibleIdList.Count; i++)
@@ -755,6 +746,13 @@ AcpiDbDisplayResultObject (
ACPI_WALK_STATE *WalkState)
{
+#ifndef ACPI_APPLICATION
+ if (AcpiGbl_DbThreadId != AcpiOsGetThreadId())
+ {
+ return;
+ }
+#endif
+
/* Only display if single stepping */
if (!AcpiGbl_CmSingleStep)
@@ -763,7 +761,7 @@ AcpiDbDisplayResultObject (
}
AcpiOsPrintf ("ResultObj: ");
- AcpiDmDisplayInternalObject (ObjDesc, WalkState);
+ AcpiDbDisplayInternalObject (ObjDesc, WalkState);
AcpiOsPrintf ("\n");
}
@@ -787,13 +785,20 @@ AcpiDbDisplayArgumentObject (
ACPI_WALK_STATE *WalkState)
{
+#ifndef ACPI_APPLICATION
+ if (AcpiGbl_DbThreadId != AcpiOsGetThreadId())
+ {
+ return;
+ }
+#endif
+
if (!AcpiGbl_CmSingleStep)
{
return;
}
AcpiOsPrintf ("ArgObj: ");
- AcpiDmDisplayInternalObject (ObjDesc, WalkState);
+ AcpiDbDisplayInternalObject (ObjDesc, WalkState);
}
@@ -843,7 +848,8 @@ AcpiDbDisplayGpes (
GpeBlock = GpeXruptInfo->GpeBlockListHead;
while (GpeBlock)
{
- Status = AcpiGetName (GpeBlock->Node, ACPI_FULL_PATHNAME, &RetBuf);
+ Status = AcpiGetName (GpeBlock->Node,
+ ACPI_FULL_PATHNAME_NO_TRAILING, &RetBuf);
if (ACPI_FAILURE (Status))
{
AcpiOsPrintf ("Could not convert name to pathname\n");
@@ -858,13 +864,16 @@ AcpiDbDisplayGpes (
GpeType = "GPE Block Device";
}
- AcpiOsPrintf ("\nBlock %u - Info %p DeviceNode %p [%s] - %s\n",
+ AcpiOsPrintf (
+ "\nBlock %u - Info %p DeviceNode %p [%s] - %s\n",
Block, GpeBlock, GpeBlock->Node, Buffer, GpeType);
- AcpiOsPrintf (" Registers: %u (%u GPEs)\n",
+ AcpiOsPrintf (
+ " Registers: %u (%u GPEs)\n",
GpeBlock->RegisterCount, GpeBlock->GpeCount);
- AcpiOsPrintf (" GPE range: 0x%X to 0x%X on interrupt %u\n",
+ AcpiOsPrintf (
+ " GPE range: 0x%X to 0x%X on interrupt %u\n",
GpeBlock->BlockBaseNumber,
GpeBlock->BlockBaseNumber + (GpeBlock->GpeCount - 1),
GpeXruptInfo->InterruptNumber);
@@ -872,8 +881,10 @@ AcpiDbDisplayGpes (
AcpiOsPrintf (
" RegisterInfo: %p Status %8.8X%8.8X Enable %8.8X%8.8X\n",
GpeBlock->RegisterInfo,
- ACPI_FORMAT_UINT64 (GpeBlock->RegisterInfo->StatusAddress.Address),
- ACPI_FORMAT_UINT64 (GpeBlock->RegisterInfo->EnableAddress.Address));
+ ACPI_FORMAT_UINT64 (
+ GpeBlock->RegisterInfo->StatusAddress.Address),
+ ACPI_FORMAT_UINT64 (
+ GpeBlock->RegisterInfo->EnableAddress.Address));
AcpiOsPrintf (" EventInfo: %p\n", GpeBlock->EventInfo);
@@ -884,14 +895,18 @@ AcpiDbDisplayGpes (
GpeRegisterInfo = &GpeBlock->RegisterInfo[i];
AcpiOsPrintf (
- " Reg %u: (GPE %.2X-%.2X) RunEnable %2.2X WakeEnable %2.2X"
+ " Reg %u: (GPE %.2X-%.2X) "
+ "RunEnable %2.2X WakeEnable %2.2X"
" Status %8.8X%8.8X Enable %8.8X%8.8X\n",
i, GpeRegisterInfo->BaseGpeNumber,
- GpeRegisterInfo->BaseGpeNumber + (ACPI_GPE_REGISTER_WIDTH - 1),
+ GpeRegisterInfo->BaseGpeNumber +
+ (ACPI_GPE_REGISTER_WIDTH - 1),
GpeRegisterInfo->EnableForRun,
GpeRegisterInfo->EnableForWake,
- ACPI_FORMAT_UINT64 (GpeRegisterInfo->StatusAddress.Address),
- ACPI_FORMAT_UINT64 (GpeRegisterInfo->EnableAddress.Address));
+ ACPI_FORMAT_UINT64 (
+ GpeRegisterInfo->StatusAddress.Address),
+ ACPI_FORMAT_UINT64 (
+ GpeRegisterInfo->EnableAddress.Address));
/* Now look at the individual GPEs in this byte register */
@@ -959,7 +974,9 @@ AcpiDbDisplayGpes (
Count++;
Notify = Notify->Next;
}
- AcpiOsPrintf ("Implicit Notify on %u devices", Count);
+
+ AcpiOsPrintf ("Implicit Notify on %u devices",
+ Count);
break;
case ACPI_GPE_DISPATCH_RAW_HANDLER:
@@ -977,9 +994,11 @@ AcpiDbDisplayGpes (
AcpiOsPrintf (")\n");
}
}
+
Block++;
GpeBlock = GpeBlock->Next;
}
+
GpeXruptInfo = GpeXruptInfo->Next;
}
}
@@ -1018,23 +1037,21 @@ AcpiDbDisplayHandlers (
for (i = 0; i < ACPI_ARRAY_LENGTH (AcpiGbl_SpaceIdList); i++)
{
SpaceId = AcpiGbl_SpaceIdList[i];
- HandlerObj = ObjDesc->Device.Handler;
AcpiOsPrintf (ACPI_PREDEFINED_PREFIX,
AcpiUtGetRegionName ((UINT8) SpaceId), SpaceId);
- while (HandlerObj)
+ HandlerObj = AcpiEvFindRegionHandler (
+ SpaceId, ObjDesc->CommonNotify.Handler);
+ if (HandlerObj)
{
- if (AcpiGbl_SpaceIdList[i] == HandlerObj->AddressSpace.SpaceId)
- {
- AcpiOsPrintf (ACPI_HANDLER_PRESENT_STRING,
- (HandlerObj->AddressSpace.HandlerFlags &
- ACPI_ADDR_HANDLER_DEFAULT_INSTALLED) ? "Default" : "User",
- HandlerObj->AddressSpace.Handler);
- goto FoundHandler;
- }
+ AcpiOsPrintf (ACPI_HANDLER_PRESENT_STRING,
+ (HandlerObj->AddressSpace.HandlerFlags &
+ ACPI_ADDR_HANDLER_DEFAULT_INSTALLED) ?
+ "Default" : "User",
+ HandlerObj->AddressSpace.Handler);
- HandlerObj = HandlerObj->AddressSpace.Next;
+ goto FoundHandler;
}
/* There is no handler for this SpaceId */
@@ -1046,7 +1063,7 @@ AcpiDbDisplayHandlers (
/* Find all handlers for user-defined SpaceIDs */
- HandlerObj = ObjDesc->Device.Handler;
+ HandlerObj = ObjDesc->CommonNotify.Handler;
while (HandlerObj)
{
if (HandlerObj->AddressSpace.SpaceId >= ACPI_USER_REGION_BEGIN)
@@ -1055,7 +1072,8 @@ AcpiDbDisplayHandlers (
"User-defined ID", HandlerObj->AddressSpace.SpaceId);
AcpiOsPrintf (ACPI_HANDLER_PRESENT_STRING,
(HandlerObj->AddressSpace.HandlerFlags &
- ACPI_ADDR_HANDLER_DEFAULT_INSTALLED) ? "Default" : "User",
+ ACPI_ADDR_HANDLER_DEFAULT_INSTALLED) ?
+ "Default" : "User",
HandlerObj->AddressSpace.Handler);
}
@@ -1091,7 +1109,9 @@ AcpiDbDisplayHandlers (
for (i = 0; i < ACPI_ARRAY_LENGTH (AcpiGbl_HandlerList); i++)
{
- AcpiOsPrintf (ACPI_HANDLER_NAME_STRING, AcpiGbl_HandlerList[i].Name);
+ AcpiOsPrintf (ACPI_HANDLER_NAME_STRING,
+ AcpiGbl_HandlerList[i].Name);
+
if (AcpiGbl_HandlerList[i].Handler)
{
AcpiOsPrintf (ACPI_HANDLER_PRESENT_STRING, "User",
@@ -1109,8 +1129,8 @@ AcpiDbDisplayHandlers (
AcpiOsPrintf ("\nOperation Region Handlers for specific devices:\n");
(void) AcpiWalkNamespace (ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT,
- ACPI_UINT32_MAX, AcpiDbDisplayNonRootHandlers,
- NULL, NULL, NULL);
+ ACPI_UINT32_MAX, AcpiDbDisplayNonRootHandlers,
+ NULL, NULL, NULL);
}
@@ -1146,7 +1166,7 @@ AcpiDbDisplayNonRootHandlers (
return (AE_OK);
}
- Pathname = AcpiNsGetExternalPathname (Node);
+ Pathname = AcpiNsGetNormalizedPathname (Node, TRUE);
if (!Pathname)
{
return (AE_OK);
@@ -1154,7 +1174,7 @@ AcpiDbDisplayNonRootHandlers (
/* Display all handlers associated with this device */
- HandlerObj = ObjDesc->Device.Handler;
+ HandlerObj = ObjDesc->CommonNotify.Handler;
while (HandlerObj)
{
AcpiOsPrintf (ACPI_PREDEFINED_PREFIX,
@@ -1174,5 +1194,3 @@ AcpiDbDisplayNonRootHandlers (
ACPI_FREE (Pathname);
return (AE_OK);
}
-
-#endif /* ACPI_DEBUGGER */
OpenPOWER on IntegriCloud