summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev/acpica/uteval.c
diff options
context:
space:
mode:
authornjl <njl@FreeBSD.org>2004-03-18 17:42:14 +0000
committernjl <njl@FreeBSD.org>2004-03-18 17:42:14 +0000
commit61c302fc074304c548f2de409a49f0c6c9564470 (patch)
treec3d67f348307b618a7d26de7d74397f4eb6d7a53 /sys/contrib/dev/acpica/uteval.c
parentd4d5fa01f81a58ab630067ec21e8a10390ff6c28 (diff)
downloadFreeBSD-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.c62
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
OpenPOWER on IntegriCloud