diff options
author | msmith <msmith@FreeBSD.org> | 2001-10-04 23:12:13 +0000 |
---|---|---|
committer | msmith <msmith@FreeBSD.org> | 2001-10-04 23:12:13 +0000 |
commit | ba72040ab6da527cb4f4a663259ca7417976499a (patch) | |
tree | 3c5d09bf67f1ee0a9b4f77e77f3a31bdd33a253f /sys/contrib/dev/acpica/dsobject.c | |
parent | 9d39e615a85d5e81e8442ec3bf65c8dff5e393c5 (diff) | |
download | FreeBSD-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.c | 71 |
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) |