mirror of
https://github.com/acpica/acpica/
synced 2025-02-23 08:54:16 +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
56bd071984
commit
2402364a00
@ -2,7 +2,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: exresnte - AML Interpreter object resolution
|
||||
* $Revision: 1.55 $
|
||||
* $Revision: 1.57 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -207,10 +207,10 @@ AcpiExResolveNodeToValue (
|
||||
{
|
||||
case ACPI_TYPE_PACKAGE:
|
||||
|
||||
if (ACPI_TYPE_PACKAGE != SourceDesc->Common.Type)
|
||||
if (ACPI_GET_OBJECT_TYPE (SourceDesc) != ACPI_TYPE_PACKAGE)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Object not a Package, type %s\n",
|
||||
AcpiUtGetTypeName (SourceDesc->Common.Type)));
|
||||
AcpiUtGetObjectTypeName (SourceDesc)));
|
||||
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
|
||||
}
|
||||
|
||||
@ -227,10 +227,10 @@ AcpiExResolveNodeToValue (
|
||||
|
||||
case ACPI_TYPE_BUFFER:
|
||||
|
||||
if (ACPI_TYPE_BUFFER != SourceDesc->Common.Type)
|
||||
if (ACPI_GET_OBJECT_TYPE (SourceDesc) != ACPI_TYPE_BUFFER)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Object not a Buffer, type %s\n",
|
||||
AcpiUtGetTypeName (SourceDesc->Common.Type)));
|
||||
AcpiUtGetObjectTypeName (SourceDesc)));
|
||||
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
|
||||
}
|
||||
|
||||
@ -247,10 +247,10 @@ AcpiExResolveNodeToValue (
|
||||
|
||||
case ACPI_TYPE_STRING:
|
||||
|
||||
if (ACPI_TYPE_STRING != SourceDesc->Common.Type)
|
||||
if (ACPI_GET_OBJECT_TYPE (SourceDesc) != ACPI_TYPE_STRING)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Object not a String, type %s\n",
|
||||
AcpiUtGetTypeName (SourceDesc->Common.Type)));
|
||||
AcpiUtGetObjectTypeName (SourceDesc)));
|
||||
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
|
||||
}
|
||||
|
||||
@ -263,10 +263,10 @@ AcpiExResolveNodeToValue (
|
||||
|
||||
case ACPI_TYPE_INTEGER:
|
||||
|
||||
if (ACPI_TYPE_INTEGER != SourceDesc->Common.Type)
|
||||
if (ACPI_GET_OBJECT_TYPE (SourceDesc) != ACPI_TYPE_INTEGER)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Object not a Integer, type %s\n",
|
||||
AcpiUtGetTypeName (SourceDesc->Common.Type)));
|
||||
AcpiUtGetObjectTypeName (SourceDesc)));
|
||||
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
|
||||
}
|
||||
|
||||
@ -320,7 +320,7 @@ AcpiExResolveNodeToValue (
|
||||
|
||||
/* No named references are allowed here */
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Unsupported reference opcode %X\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Unsupported Reference opcode %X\n",
|
||||
SourceDesc->Reference.Opcode));
|
||||
|
||||
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
|
||||
|
@ -2,7 +2,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: exresolv - AML Interpreter object resolution
|
||||
* $Revision: 1.113 $
|
||||
* $Revision: 1.115 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -227,7 +227,7 @@ AcpiExResolveObjectToValue (
|
||||
|
||||
/* This is an ACPI_OPERAND_OBJECT */
|
||||
|
||||
switch (StackDesc->Common.Type)
|
||||
switch (ACPI_GET_OBJECT_TYPE (StackDesc))
|
||||
{
|
||||
case INTERNAL_TYPE_REFERENCE:
|
||||
|
||||
@ -330,9 +330,11 @@ AcpiExResolveObjectToValue (
|
||||
break;
|
||||
|
||||
|
||||
case AML_REF_OF_OP:
|
||||
case AML_DEBUG_OP:
|
||||
|
||||
/* Just leave the object as-is */
|
||||
|
||||
break;
|
||||
|
||||
|
||||
@ -367,7 +369,7 @@ AcpiExResolveObjectToValue (
|
||||
case INTERNAL_TYPE_INDEX_FIELD:
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "FieldRead SourceDesc=%p Type=%X\n",
|
||||
StackDesc, StackDesc->Common.Type));
|
||||
StackDesc, ACPI_GET_OBJECT_TYPE (StackDesc)));
|
||||
|
||||
Status = AcpiExReadDataFromField (WalkState, StackDesc, &ObjDesc);
|
||||
*StackPtr = (void *) ObjDesc;
|
||||
|
@ -2,7 +2,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: exresop - AML Interpreter operand/object resolution
|
||||
* $Revision: 1.52 $
|
||||
* $Revision: 1.54 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -281,7 +281,7 @@ AcpiExResolveOperands (
|
||||
|
||||
/* ACPI internal object */
|
||||
|
||||
ObjectType = ObjDesc->Common.Type;
|
||||
ObjectType = ACPI_GET_OBJECT_TYPE (ObjDesc);
|
||||
|
||||
/* Check for bad ACPI_OBJECT_TYPE */
|
||||
|
||||
@ -309,6 +309,7 @@ AcpiExResolveOperands (
|
||||
case AML_DEBUG_OP:
|
||||
case AML_NAME_OP:
|
||||
case AML_INDEX_OP:
|
||||
case AML_REF_OF_OP:
|
||||
case AML_ARG_OP:
|
||||
case AML_LOCAL_OP:
|
||||
|
||||
@ -410,7 +411,7 @@ AcpiExResolveOperands (
|
||||
* -- All others must be resolved below.
|
||||
*/
|
||||
if ((Opcode == AML_STORE_OP) &&
|
||||
((*StackPtr)->Common.Type == INTERNAL_TYPE_REFERENCE) &&
|
||||
(ACPI_GET_OBJECT_TYPE (*StackPtr) == INTERNAL_TYPE_REFERENCE) &&
|
||||
((*StackPtr)->Reference.Opcode == AML_INDEX_OP))
|
||||
{
|
||||
goto NextOperand;
|
||||
@ -500,7 +501,7 @@ AcpiExResolveOperands (
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"Needed [Integer/String/Buffer], found [%s] %p\n",
|
||||
AcpiUtGetTypeName ((*StackPtr)->Common.Type), *StackPtr));
|
||||
AcpiUtGetObjectTypeName (*StackPtr), *StackPtr));
|
||||
|
||||
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
|
||||
}
|
||||
@ -523,7 +524,7 @@ AcpiExResolveOperands (
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"Needed [Integer/String/Buffer], found [%s] %p\n",
|
||||
AcpiUtGetTypeName ((*StackPtr)->Common.Type), *StackPtr));
|
||||
AcpiUtGetObjectTypeName (*StackPtr), *StackPtr));
|
||||
|
||||
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
|
||||
}
|
||||
@ -546,7 +547,7 @@ AcpiExResolveOperands (
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"Needed [Integer/String/Buffer], found [%s] %p\n",
|
||||
AcpiUtGetTypeName ((*StackPtr)->Common.Type), *StackPtr));
|
||||
AcpiUtGetObjectTypeName (*StackPtr), *StackPtr));
|
||||
|
||||
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
|
||||
}
|
||||
@ -560,7 +561,7 @@ AcpiExResolveOperands (
|
||||
|
||||
/* Need an operand of type INTEGER, STRING or BUFFER */
|
||||
|
||||
switch ((*StackPtr)->Common.Type)
|
||||
switch (ACPI_GET_OBJECT_TYPE (*StackPtr))
|
||||
{
|
||||
case ACPI_TYPE_INTEGER:
|
||||
case ACPI_TYPE_STRING:
|
||||
@ -572,7 +573,7 @@ AcpiExResolveOperands (
|
||||
default:
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"Needed [Integer/String/Buffer], found [%s] %p\n",
|
||||
AcpiUtGetTypeName ((*StackPtr)->Common.Type), *StackPtr));
|
||||
AcpiUtGetObjectTypeName (*StackPtr), *StackPtr));
|
||||
|
||||
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
|
||||
}
|
||||
@ -587,7 +588,7 @@ AcpiExResolveOperands (
|
||||
* The only reference allowed here is a direct reference to
|
||||
* a namespace node.
|
||||
*/
|
||||
if ((*StackPtr)->Common.Type == INTERNAL_TYPE_REFERENCE)
|
||||
if (ACPI_GET_OBJECT_TYPE (*StackPtr) == INTERNAL_TYPE_REFERENCE)
|
||||
{
|
||||
if (!(*StackPtr)->Reference.Node)
|
||||
{
|
||||
@ -622,7 +623,7 @@ AcpiExResolveOperands (
|
||||
|
||||
/* Need a buffer, string, package */
|
||||
|
||||
switch ((*StackPtr)->Common.Type)
|
||||
switch (ACPI_GET_OBJECT_TYPE (*StackPtr))
|
||||
{
|
||||
case ACPI_TYPE_PACKAGE:
|
||||
case ACPI_TYPE_STRING:
|
||||
@ -634,7 +635,7 @@ AcpiExResolveOperands (
|
||||
default:
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"Needed [Buf/Str/Pkg], found [%s] %p\n",
|
||||
AcpiUtGetTypeName ((*StackPtr)->Common.Type), *StackPtr));
|
||||
AcpiUtGetObjectTypeName (*StackPtr), *StackPtr));
|
||||
|
||||
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
|
||||
}
|
||||
@ -645,7 +646,7 @@ AcpiExResolveOperands (
|
||||
|
||||
/* Need a buffer or package or (ACPI 2.0) String */
|
||||
|
||||
switch ((*StackPtr)->Common.Type)
|
||||
switch (ACPI_GET_OBJECT_TYPE (*StackPtr))
|
||||
{
|
||||
case ACPI_TYPE_PACKAGE:
|
||||
case ACPI_TYPE_STRING:
|
||||
@ -657,7 +658,7 @@ AcpiExResolveOperands (
|
||||
default:
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"Needed [Buf/Str/Pkg], found [%s] %p\n",
|
||||
AcpiUtGetTypeName ((*StackPtr)->Common.Type), *StackPtr));
|
||||
AcpiUtGetObjectTypeName (*StackPtr), *StackPtr));
|
||||
|
||||
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
|
||||
}
|
||||
@ -680,7 +681,7 @@ AcpiExResolveOperands (
|
||||
* required object type (Simple cases only).
|
||||
*/
|
||||
Status = AcpiExCheckObjectType (TypeNeeded,
|
||||
(*StackPtr)->Common.Type, *StackPtr);
|
||||
ACPI_GET_OBJECT_TYPE (*StackPtr), *StackPtr);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
|
@ -2,7 +2,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: exstore - AML Interpreter object store support
|
||||
* $Revision: 1.166 $
|
||||
* $Revision: 1.168 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -185,7 +185,7 @@ AcpiExStore (
|
||||
|
||||
/* Destination object must be a Reference or a Constant object */
|
||||
|
||||
switch (DestDesc->Common.Type)
|
||||
switch (ACPI_GET_OBJECT_TYPE (DestDesc))
|
||||
{
|
||||
case INTERNAL_TYPE_REFERENCE:
|
||||
break;
|
||||
@ -227,6 +227,7 @@ AcpiExStore (
|
||||
switch (RefDesc->Reference.Opcode)
|
||||
{
|
||||
case AML_NAME_OP:
|
||||
case AML_REF_OF_OP:
|
||||
|
||||
/* Storing an object into a Name "container" */
|
||||
|
||||
@ -262,9 +263,9 @@ AcpiExStore (
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "**** Write to Debug Object: ****:\n\n"));
|
||||
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "[ACPI Debug] %s: ",
|
||||
AcpiUtGetTypeName (SourceDesc->Common.Type)));
|
||||
AcpiUtGetObjectTypeName (SourceDesc)));
|
||||
|
||||
switch (SourceDesc->Common.Type)
|
||||
switch (ACPI_GET_OBJECT_TYPE (SourceDesc))
|
||||
{
|
||||
case ACPI_TYPE_INTEGER:
|
||||
|
||||
@ -297,7 +298,7 @@ AcpiExStore (
|
||||
default:
|
||||
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "Type %s %p\n",
|
||||
AcpiUtGetTypeName (SourceDesc->Common.Type), SourceDesc));
|
||||
AcpiUtGetObjectTypeName (SourceDesc), SourceDesc));
|
||||
break;
|
||||
}
|
||||
|
||||
@ -405,7 +406,7 @@ AcpiExStoreObjectToIndex (
|
||||
* Make sure the target is a Buffer
|
||||
*/
|
||||
ObjDesc = IndexDesc->Reference.Object;
|
||||
if (ObjDesc->Common.Type != ACPI_TYPE_BUFFER)
|
||||
if (ACPI_GET_OBJECT_TYPE (ObjDesc) != ACPI_TYPE_BUFFER)
|
||||
{
|
||||
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
|
||||
}
|
||||
@ -414,7 +415,7 @@ AcpiExStoreObjectToIndex (
|
||||
* The assignment of the individual elements will be slightly
|
||||
* different for each source type.
|
||||
*/
|
||||
switch (SourceDesc->Common.Type)
|
||||
switch (ACPI_GET_OBJECT_TYPE (SourceDesc))
|
||||
{
|
||||
case ACPI_TYPE_INTEGER:
|
||||
|
||||
@ -439,7 +440,7 @@ AcpiExStoreObjectToIndex (
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"Source must be Integer/Buffer/String type, not %s\n",
|
||||
AcpiUtGetTypeName (SourceDesc->Common.Type)));
|
||||
AcpiUtGetObjectTypeName (SourceDesc)));
|
||||
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
|
||||
}
|
||||
|
||||
@ -507,7 +508,7 @@ AcpiExStoreObjectToNode (
|
||||
TargetDesc = AcpiNsGetAttachedObject (Node);
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Storing %p(%s) into node %p(%s)\n",
|
||||
SourceDesc, AcpiUtGetTypeName (SourceDesc->Common.Type),
|
||||
SourceDesc, AcpiUtGetObjectTypeName (SourceDesc),
|
||||
Node, AcpiUtGetTypeName (TargetType)));
|
||||
|
||||
/*
|
||||
@ -564,8 +565,8 @@ AcpiExStoreObjectToNode (
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
|
||||
"Store %s into %s via Convert/Attach\n",
|
||||
AcpiUtGetTypeName (SourceDesc->Common.Type),
|
||||
AcpiUtGetTypeName (NewDesc->Common.Type)));
|
||||
AcpiUtGetObjectTypeName (SourceDesc),
|
||||
AcpiUtGetObjectTypeName (NewDesc)));
|
||||
}
|
||||
break;
|
||||
|
||||
@ -574,11 +575,11 @@ AcpiExStoreObjectToNode (
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
|
||||
"Storing %s (%p) directly into node (%p), no implicit conversion\n",
|
||||
AcpiUtGetTypeName (SourceDesc->Common.Type), SourceDesc, Node));
|
||||
AcpiUtGetObjectTypeName (SourceDesc), SourceDesc, Node));
|
||||
|
||||
/* No conversions for all other types. Just attach the source object */
|
||||
|
||||
Status = AcpiNsAttachObject (Node, SourceDesc, SourceDesc->Common.Type);
|
||||
Status = AcpiNsAttachObject (Node, SourceDesc, ACPI_GET_OBJECT_TYPE (SourceDesc));
|
||||
break;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user