Print this page
acpica-unix2-20130823
PANKOVs restructure
@@ -1,14 +1,13 @@
-
/******************************************************************************
*
* Module Name: exresop - AML Interpreter operand/object resolution
*
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2011, Intel Corp.
+ * Copyright (C) 2000 - 2013, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
@@ -223,11 +222,10 @@
*StackPtr = ObjDesc;
ObjectType = ((ACPI_NAMESPACE_NODE *) ObjDesc)->Type;
}
break;
-
case ACPI_DESC_TYPE_OPERAND:
/* ACPI internal object */
ObjectType = ObjDesc->Common.Type;
@@ -276,11 +274,10 @@
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
}
}
break;
-
default:
/* Invalid descriptor */
ACPI_ERROR ((AE_INFO, "Invalid descriptor %p [%s]",
@@ -323,11 +320,10 @@
case ARGI_OBJECT_REF:
case ARGI_DEVICE_REF:
case ARGI_TARGETREF: /* Allows implicit conversion rules before store */
case ARGI_FIXED_TARGET: /* No implicit conversion before store to target */
case ARGI_SIMPLE_TARGET: /* Name, Local, or Arg - no implicit conversion */
-
/*
* Need an operand of type ACPI_TYPE_LOCAL_REFERENCE
* A Namespace Node is OK as-is
*/
if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == ACPI_DESC_TYPE_NAMED)
@@ -341,13 +337,11 @@
{
return_ACPI_STATUS (Status);
}
goto NextOperand;
-
case ARGI_DATAREFOBJ: /* Store operator only */
-
/*
* We don't want to resolve IndexOp reference objects during
* a store because this would be an implicit DeRefOf operation.
* Instead, we just want to store the reference object.
* -- All others must be resolved below.
@@ -359,11 +353,13 @@
goto NextOperand;
}
break;
default:
+
/* All cases covered above */
+
break;
}
/*
* Resolve this object to a value
@@ -452,13 +448,11 @@
{
AcpiUtRemoveReference (ObjDesc);
}
goto NextOperand;
-
case ARGI_BUFFER:
-
/*
* Need an operand of type ACPI_TYPE_BUFFER,
* But we can implicitly convert from a STRING or INTEGER
* Aka - "Implicit Source Operand Conversion"
*/
@@ -481,13 +475,11 @@
{
AcpiUtRemoveReference (ObjDesc);
}
goto NextOperand;
-
case ARGI_STRING:
-
/*
* Need an operand of type ACPI_TYPE_STRING,
* But we can implicitly convert from a BUFFER or INTEGER
* Aka - "Implicit Source Operand Conversion"
*/
@@ -511,11 +503,10 @@
{
AcpiUtRemoveReference (ObjDesc);
}
goto NextOperand;
-
case ARGI_COMPUTEDATA:
/* Need an operand of type INTEGER, STRING or BUFFER */
switch (ObjDesc->Common.Type)
@@ -534,11 +525,10 @@
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
}
goto NextOperand;
-
case ARGI_BUFFER_OR_STRING:
/* Need an operand of type STRING or BUFFER */
switch (ObjDesc->Common.Type)
@@ -572,11 +562,10 @@
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
}
goto NextOperand;
-
case ARGI_DATAOBJECT:
/*
* ARGI_DATAOBJECT is only used by the SizeOf operator.
* Need a buffer, string, package, or RefOf reference.
*
@@ -592,19 +581,19 @@
/* Valid operand */
break;
default:
+
ACPI_ERROR ((AE_INFO,
"Needed [Buffer/String/Package/Reference], found [%s] %p",
AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
}
goto NextOperand;
-
case ARGI_COMPLEXOBJ:
/* Need a buffer or package or (ACPI 2.0) String */
switch (ObjDesc->Common.Type)
@@ -615,19 +604,19 @@
/* Valid operand */
break;
default:
+
ACPI_ERROR ((AE_INFO,
"Needed [Buffer/String/Package], found [%s] %p",
AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
}
goto NextOperand;
-
case ARGI_REGION_OR_BUFFER: /* Used by Load() only */
/* Need an operand of type REGION or a BUFFER (which could be a resolved region field) */
switch (ObjDesc->Common.Type)
@@ -637,19 +626,19 @@
/* Valid operand */
break;
default:
+
ACPI_ERROR ((AE_INFO,
"Needed [Region/Buffer], found [%s] %p",
AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
}
goto NextOperand;
-
case ARGI_DATAREFOBJ:
/* Used by the Store() operator only */
switch (ObjDesc->Common.Type)
@@ -693,11 +682,10 @@
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
}
goto NextOperand;
-
default:
/* Unknown type */
ACPI_ERROR ((AE_INFO,
@@ -732,7 +720,5 @@
ACPI_DUMP_OPERANDS (WalkState->Operands,
AcpiPsGetOpcodeName (Opcode), WalkState->NumOperands);
return_ACPI_STATUS (Status);
}
-
-