diff options
author | njl <njl@FreeBSD.org> | 2004-03-18 17:42:14 +0000 |
---|---|---|
committer | njl <njl@FreeBSD.org> | 2004-03-18 17:42:14 +0000 |
commit | 61c302fc074304c548f2de409a49f0c6c9564470 (patch) | |
tree | c3d67f348307b618a7d26de7d74397f4eb6d7a53 /sys/contrib/dev/acpica/uteval.c | |
parent | d4d5fa01f81a58ab630067ec21e8a10390ff6c28 (diff) | |
download | FreeBSD-src-61c302fc074304c548f2de409a49f0c6c9564470.zip FreeBSD-src-61c302fc074304c548f2de409a49f0c6c9564470.tar.gz |
Import of Intel ACPI-CA 20040311.
Diffstat (limited to 'sys/contrib/dev/acpica/uteval.c')
-rw-r--r-- | sys/contrib/dev/acpica/uteval.c | 62 |
1 files changed, 61 insertions, 1 deletions
diff --git a/sys/contrib/dev/acpica/uteval.c b/sys/contrib/dev/acpica/uteval.c index cf45786..635d711 100644 --- a/sys/contrib/dev/acpica/uteval.c +++ b/sys/contrib/dev/acpica/uteval.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: uteval - Object evaluation - * $Revision: 51 $ + * $Revision: 52 $ * *****************************************************************************/ @@ -127,6 +127,66 @@ /******************************************************************************* * + * FUNCTION: AcpiUtOsiImplementation + * + * PARAMETERS: WalkState - Current walk state + * + * RETURN: Status + * + * DESCRIPTION: Implementation of _OSI predefined control method + * Supported = _OSI (String) + * + ******************************************************************************/ + +ACPI_STATUS +AcpiUtOsiImplementation ( + ACPI_WALK_STATE *WalkState) +{ + ACPI_OPERAND_OBJECT *StringDesc; + ACPI_OPERAND_OBJECT *ReturnDesc; + ACPI_NATIVE_UINT i; + + + ACPI_FUNCTION_TRACE ("UtOsiImplementation"); + + + /* Validate the string input argument */ + + StringDesc = WalkState->Arguments[0].Object; + if (!StringDesc || (StringDesc->Common.Type != ACPI_TYPE_STRING)) + { + return_ACPI_STATUS (AE_TYPE); + } + + /* Create a return object (Default value = 0) */ + + ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER); + if (!ReturnDesc) + { + return_ACPI_STATUS (AE_NO_MEMORY); + } + + /* Compare input string to table of supported strings */ + + for (i = 0; i < ACPI_NUM_OSI_STRINGS; i++) + { + if (!ACPI_STRCMP (StringDesc->String.Pointer, + (char *) AcpiGbl_ValidOsiStrings[i])) + { + /* This string is supported */ + + ReturnDesc->Integer.Value = 0xFFFFFFFF; + break; + } + } + + WalkState->ReturnDesc = ReturnDesc; + return_ACPI_STATUS (AE_CTRL_TERMINATE); +} + + +/******************************************************************************* + * * FUNCTION: AcpiUtEvaluateObject * * PARAMETERS: PrefixNode - Starting node |