summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev/acpica/dsobject.c
diff options
context:
space:
mode:
authormsmith <msmith@FreeBSD.org>2001-10-04 23:12:13 +0000
committermsmith <msmith@FreeBSD.org>2001-10-04 23:12:13 +0000
commitba72040ab6da527cb4f4a663259ca7417976499a (patch)
tree3c5d09bf67f1ee0a9b4f77e77f3a31bdd33a253f /sys/contrib/dev/acpica/dsobject.c
parent9d39e615a85d5e81e8442ec3bf65c8dff5e393c5 (diff)
downloadFreeBSD-src-ba72040ab6da527cb4f4a663259ca7417976499a.zip
FreeBSD-src-ba72040ab6da527cb4f4a663259ca7417976499a.tar.gz
Import of the Intel ACPI CA 20010920 snapshot.
Diffstat (limited to 'sys/contrib/dev/acpica/dsobject.c')
-rw-r--r--sys/contrib/dev/acpica/dsobject.c71
1 files changed, 11 insertions, 60 deletions
diff --git a/sys/contrib/dev/acpica/dsobject.c b/sys/contrib/dev/acpica/dsobject.c
index 2857ec0..558154c 100644
--- a/sys/contrib/dev/acpica/dsobject.c
+++ b/sys/contrib/dev/acpica/dsobject.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: dsobject - Dispatcher object management routines
- * $Revision: 74 $
+ * $Revision: 76 $
*
*****************************************************************************/
@@ -214,16 +214,15 @@ AcpiDsInitOneObject (
* Always parse methods to detect errors, we may delete
* the parse tree below
*/
-
Status = AcpiDsParseMethod (ObjHandle);
-
- /* TBD: [Errors] what do we do with an error? */
-
if (ACPI_FAILURE (Status))
{
- ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Method %p [%4.4s] parse failed! %s\n",
+ ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Method %p [%4.4s] - parse failure, %s\n",
ObjHandle, &((ACPI_NAMESPACE_NODE *)ObjHandle)->Name,
AcpiFormatException (Status)));
+
+ /* This parse failed, but we will continue parsing more methods */
+
break;
}
@@ -448,6 +447,12 @@ AcpiDsInitObjectFromOp (
case ACPI_TYPE_STRING:
ObjDesc->String.Pointer = Op->Value.String;
ObjDesc->String.Length = STRLEN (Op->Value.String);
+
+ /*
+ * The string is contained in the ACPI table, don't ever try
+ * to delete it
+ */
+ ObjDesc->Common.Flags |= AOPOBJ_STATIC_POINTER;
break;
@@ -477,60 +482,6 @@ AcpiDsInitObjectFromOp (
break;
-#ifdef INTEGER_CONST__
- case OPTYPE_CONSTANT:
-
- /* TBD: Why is the DEBUG object a CONSTANT? */
-
- if (Op->Opcode == AML_DEBUG_OP)
- {
- break;
- }
-
- /* Reference object no longer needed */
-
- AcpiUtRemoveReference (ObjDesc);
-
- /* Create/Init a new Integer object */
-
- ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
- if (!ObjDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /*
- * Decode constants here. Turn them into real integer objects
- * that are initialized to the value of the constant.
- */
- switch (Op->Opcode)
- {
- case AML_ONE_OP:
- ObjDesc->Integer.Value = 1;
- break;
-
- case AML_ONES_OP:
- ObjDesc->Integer.Value = ACPI_INTEGER_MAX;
- break;
-
- case AML_REVISION_OP:
- ObjDesc->Integer.Value = ACPI_CA_VERSION;
- break;
-
- case AML_ZERO_OP:
- ObjDesc->Integer.Flags |= AOPOBJ_ZERO_CONST;
- ObjDesc->Integer.Value = 0;
- break;
-
- default:
- ObjDesc->Integer.Value = 0;
- break;
- }
-
- *RetObjDesc = ObjDesc;
- break;
-#endif
-
default: /* Constants, Literals, etc.. */
if (Op->Opcode == AML_INT_NAMEPATH_OP)
OpenPOWER on IntegriCloud