mirror of
https://github.com/acpica/acpica/
synced 2025-02-06 08:34:19 +03:00
Fix for RefOf/DeRefOf issue. RefOf now returns an object of type
Reference. date 2002.06.25.20.57.00; author rmoore1; state Exp;
This commit is contained in:
parent
7c61595454
commit
0c07f3a718
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: dbdisply - debug display commands
|
||||
* $Revision: 1.74 $
|
||||
* $Revision: 1.76 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -411,9 +411,15 @@ AcpiDbDecodeInternalObject (
|
||||
return;
|
||||
}
|
||||
|
||||
AcpiOsPrintf (" %s", AcpiUtGetTypeName (ObjDesc->Common.Type));
|
||||
if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) != ACPI_DESC_TYPE_OPERAND)
|
||||
{
|
||||
AcpiOsPrintf ("%p", ObjDesc);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (ObjDesc->Common.Type)
|
||||
AcpiOsPrintf (" %s", AcpiUtGetObjectTypeName (ObjDesc));
|
||||
|
||||
switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
|
||||
{
|
||||
case ACPI_TYPE_INTEGER:
|
||||
|
||||
@ -449,12 +455,47 @@ AcpiDbDecodeInternalObject (
|
||||
|
||||
|
||||
default:
|
||||
/* No additional display for other types */
|
||||
|
||||
AcpiOsPrintf ("%p", ObjDesc);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiDbDecodeNode
|
||||
*
|
||||
* PARAMETERS: Node - Object to be displayed
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Short display of a namespace node
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AcpiDbDecodeNode (
|
||||
ACPI_NAMESPACE_NODE *Node)
|
||||
{
|
||||
|
||||
|
||||
AcpiOsPrintf ("<Node> Name %4.4s Type-%s",
|
||||
Node->Name.Ascii, AcpiUtGetTypeName (Node->Type));
|
||||
|
||||
if (Node->Flags & ANOBJ_METHOD_ARG)
|
||||
{
|
||||
AcpiOsPrintf (" [Method Arg]");
|
||||
}
|
||||
if (Node->Flags & ANOBJ_METHOD_LOCAL)
|
||||
{
|
||||
AcpiOsPrintf (" [Method Local]");
|
||||
}
|
||||
|
||||
AcpiDbDecodeInternalObject (AcpiNsGetAttachedObject (Node));
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiDbDisplayInternalObject
|
||||
@ -496,24 +537,13 @@ AcpiDbDisplayInternalObject (
|
||||
|
||||
case ACPI_DESC_TYPE_NAMED:
|
||||
|
||||
AcpiOsPrintf ("<Node> Name %4.4s Type-%s",
|
||||
((ACPI_NAMESPACE_NODE *)ObjDesc)->Name.Ascii,
|
||||
AcpiUtGetTypeName (((ACPI_NAMESPACE_NODE *) ObjDesc)->Type));
|
||||
|
||||
if (((ACPI_NAMESPACE_NODE *) ObjDesc)->Flags & ANOBJ_METHOD_ARG)
|
||||
{
|
||||
AcpiOsPrintf (" [Method Arg]");
|
||||
}
|
||||
if (((ACPI_NAMESPACE_NODE *) ObjDesc)->Flags & ANOBJ_METHOD_LOCAL)
|
||||
{
|
||||
AcpiOsPrintf (" [Method Local]");
|
||||
}
|
||||
AcpiDbDecodeNode ((ACPI_NAMESPACE_NODE *) ObjDesc);
|
||||
break;
|
||||
|
||||
|
||||
case ACPI_DESC_TYPE_OPERAND:
|
||||
|
||||
Type = ObjDesc->Common.Type;
|
||||
Type = ACPI_GET_OBJECT_TYPE (ObjDesc);
|
||||
if (Type > INTERNAL_TYPE_MAX)
|
||||
{
|
||||
AcpiOsPrintf (" Type %hX [Invalid Type]", Type);
|
||||
@ -522,12 +552,14 @@ AcpiDbDisplayInternalObject (
|
||||
|
||||
/* Decode the ACPI object type */
|
||||
|
||||
switch (ObjDesc->Common.Type)
|
||||
switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
|
||||
{
|
||||
case INTERNAL_TYPE_REFERENCE:
|
||||
|
||||
switch (ObjDesc->Reference.Opcode)
|
||||
{
|
||||
case AML_LOCAL_OP:
|
||||
|
||||
AcpiOsPrintf ("[Local%d] ", ObjDesc->Reference.Offset);
|
||||
if (WalkState)
|
||||
{
|
||||
@ -537,7 +569,9 @@ AcpiDbDisplayInternalObject (
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case AML_ARG_OP:
|
||||
|
||||
AcpiOsPrintf ("[Arg%d] ", ObjDesc->Reference.Offset);
|
||||
if (WalkState)
|
||||
{
|
||||
@ -547,24 +581,52 @@ AcpiDbDisplayInternalObject (
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case AML_DEBUG_OP:
|
||||
|
||||
AcpiOsPrintf ("[Debug] ");
|
||||
break;
|
||||
|
||||
|
||||
case AML_INDEX_OP:
|
||||
AcpiOsPrintf ("[Index] ");
|
||||
|
||||
AcpiOsPrintf ("[Index] ");
|
||||
AcpiDbDecodeInternalObject (ObjDesc->Reference.Object);
|
||||
break;
|
||||
|
||||
|
||||
case AML_REF_OF_OP:
|
||||
|
||||
AcpiOsPrintf ("[Reference] ");
|
||||
|
||||
/* Reference can be to a Node or an Operand object */
|
||||
|
||||
switch (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc->Reference.Object))
|
||||
{
|
||||
case ACPI_DESC_TYPE_NAMED:
|
||||
AcpiDbDecodeNode (ObjDesc->Reference.Object);
|
||||
break;
|
||||
|
||||
case ACPI_DESC_TYPE_OPERAND:
|
||||
AcpiDbDecodeInternalObject (ObjDesc->Reference.Object);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
|
||||
AcpiOsPrintf ("Unknown Reference opcode %X\n",
|
||||
ObjDesc->Reference.Opcode);
|
||||
break;
|
||||
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
AcpiOsPrintf ("<Obj> ");
|
||||
AcpiOsPrintf (" ");
|
||||
AcpiDbDecodeInternalObject (ObjDesc);
|
||||
|
Loading…
x
Reference in New Issue
Block a user