aboutsummaryrefslogtreecommitdiff
path: root/sys/contrib/dev/acpica/components/executer/exoparg1.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/dev/acpica/components/executer/exoparg1.c')
-rw-r--r--sys/contrib/dev/acpica/components/executer/exoparg1.c24
1 files changed, 21 insertions, 3 deletions
diff --git a/sys/contrib/dev/acpica/components/executer/exoparg1.c b/sys/contrib/dev/acpica/components/executer/exoparg1.c
index f3f53b62a02c..e92cbcbca174 100644
--- a/sys/contrib/dev/acpica/components/executer/exoparg1.c
+++ b/sys/contrib/dev/acpica/components/executer/exoparg1.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2023, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -323,6 +323,7 @@ AcpiExOpcode_1A_0T_0R (
}
+#ifdef _OBSOLETE_CODE /* Was originally used for Load() operator */
/*******************************************************************************
*
* FUNCTION: AcpiExOpcode_1A_1T_0R
@@ -352,10 +353,12 @@ AcpiExOpcode_1A_1T_0R (
switch (WalkState->Opcode)
{
+#ifdef _OBSOLETE_CODE
case AML_LOAD_OP:
Status = AcpiExLoadOp (Operand[0], Operand[1], WalkState);
break;
+#endif
default: /* Unknown opcode */
@@ -370,7 +373,7 @@ Cleanup:
return_ACPI_STATUS (Status);
}
-
+#endif
/*******************************************************************************
*
@@ -382,6 +385,8 @@ Cleanup:
*
* DESCRIPTION: Execute opcode with one argument, one target, and a
* return value.
+ * January 2022: Added Load operator, with new ACPI 6.4
+ * semantics.
*
******************************************************************************/
@@ -411,6 +416,7 @@ AcpiExOpcode_1A_1T_1R (
case AML_FIND_SET_LEFT_BIT_OP:
case AML_FIND_SET_RIGHT_BIT_OP:
case AML_FROM_BCD_OP:
+ case AML_LOAD_OP:
case AML_TO_BCD_OP:
case AML_CONDITIONAL_REF_OF_OP:
@@ -512,6 +518,18 @@ AcpiExOpcode_1A_1T_1R (
}
break;
+ case AML_LOAD_OP: /* Result1 = Load (Operand[0], Result1) */
+
+ ReturnDesc->Integer.Value = 0;
+ Status = AcpiExLoadOp (Operand[0], ReturnDesc, WalkState);
+ if (ACPI_SUCCESS (Status))
+ {
+ /* Return -1 (non-zero) indicates success */
+
+ ReturnDesc->Integer.Value = 0xFFFFFFFFFFFFFFFF;
+ }
+ break;
+
case AML_TO_BCD_OP: /* ToBcd (Operand, Result) */
ReturnDesc->Integer.Value = 0;
@@ -1193,7 +1211,7 @@ AcpiExOpcode_1A_0T_1R (
WalkState, ReturnDesc, &TempDesc);
if (ACPI_FAILURE (Status))
{
- goto Cleanup;
+ return_ACPI_STATUS (Status);
}
ReturnDesc = TempDesc;