Print this page
acpica-unix2-20130823
PANKOVs restructure
@@ -1,14 +1,13 @@
-
/******************************************************************************
*
* Module Name: exmisc - ACPI AML (p-code) execution - specific opcodes
*
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2011, Intel Corp.
+ * Copyright (C) 2000 - 2013, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
@@ -114,20 +113,17 @@
ObjDesc->Reference.Class));
return_ACPI_STATUS (AE_AML_INTERNAL);
}
break;
-
case ACPI_DESC_TYPE_NAMED:
-
/*
* A named reference that has already been resolved to a Node
*/
ReferencedObj = ObjDesc;
break;
-
default:
ACPI_ERROR ((AE_INFO, "Invalid descriptor type 0x%X",
ACPI_GET_DESCRIPTOR_TYPE (ObjDesc)));
return_ACPI_STATUS (AE_TYPE);
@@ -285,23 +281,27 @@
* resolution mechanism.
*/
switch (Operand0->Common.Type)
{
case ACPI_TYPE_INTEGER:
+
Status = AcpiExConvertToInteger (Operand1, &LocalOperand1, 16);
break;
case ACPI_TYPE_STRING:
+
Status = AcpiExConvertToString (Operand1, &LocalOperand1,
ACPI_IMPLICIT_CONVERT_HEX);
break;
case ACPI_TYPE_BUFFER:
+
Status = AcpiExConvertToBuffer (Operand1, &LocalOperand1);
break;
default:
+
ACPI_ERROR ((AE_INFO, "Invalid object type: 0x%X",
Operand0->Common.Type));
Status = AE_AML_INTERNAL;
}
@@ -449,41 +449,34 @@
{
case AML_ADD_OP: /* Add (Integer0, Integer1, Result) */
return (Integer0 + Integer1);
-
case AML_BIT_AND_OP: /* And (Integer0, Integer1, Result) */
return (Integer0 & Integer1);
-
case AML_BIT_NAND_OP: /* NAnd (Integer0, Integer1, Result) */
return (~(Integer0 & Integer1));
-
case AML_BIT_OR_OP: /* Or (Integer0, Integer1, Result) */
return (Integer0 | Integer1);
-
case AML_BIT_NOR_OP: /* NOr (Integer0, Integer1, Result) */
return (~(Integer0 | Integer1));
-
case AML_BIT_XOR_OP: /* XOr (Integer0, Integer1, Result) */
return (Integer0 ^ Integer1);
-
case AML_MULTIPLY_OP: /* Multiply (Integer0, Integer1, Result) */
return (Integer0 * Integer1);
-
case AML_SHIFT_LEFT_OP: /* ShiftLeft (Operand, ShiftCount, Result)*/
/*
* We need to check if the shiftcount is larger than the integer bit
* width since the behavior of this is not well-defined in the C language.
@@ -492,11 +485,10 @@
{
return (0);
}
return (Integer0 << Integer1);
-
case AML_SHIFT_RIGHT_OP: /* ShiftRight (Operand, ShiftCount, Result) */
/*
* We need to check if the shiftcount is larger than the integer bit
* width since the behavior of this is not well-defined in the C language.
@@ -505,11 +497,10 @@
{
return (0);
}
return (Integer0 >> Integer1);
-
case AML_SUBTRACT_OP: /* Subtract (Integer0, Integer1, Result) */
return (Integer0 - Integer1);
default:
@@ -570,10 +561,11 @@
LocalResult = TRUE;
}
break;
default:
+
Status = AE_AML_INTERNAL;
break;
}
/* Return the logical result and status */
@@ -637,23 +629,27 @@
* resolution mechanism.
*/
switch (Operand0->Common.Type)
{
case ACPI_TYPE_INTEGER:
+
Status = AcpiExConvertToInteger (Operand1, &LocalOperand1, 16);
break;
case ACPI_TYPE_STRING:
+
Status = AcpiExConvertToString (Operand1, &LocalOperand1,
ACPI_IMPLICIT_CONVERT_HEX);
break;
case ACPI_TYPE_BUFFER:
+
Status = AcpiExConvertToBuffer (Operand1, &LocalOperand1);
break;
default:
+
Status = AE_AML_INTERNAL;
break;
}
if (ACPI_FAILURE (Status))
@@ -698,10 +694,11 @@
LocalResult = TRUE;
}
break;
default:
+
Status = AE_AML_INTERNAL;
break;
}
}
else
@@ -775,10 +772,11 @@
LocalResult = TRUE;
}
break;
default:
+
Status = AE_AML_INTERNAL;
break;
}
}
@@ -794,7 +792,5 @@
/* Return the logical result and status */
*LogicalResult = LocalResult;
return_ACPI_STATUS (Status);
}
-
-