Print this page
acpica-unix2-20130823
PANKOVs restructure
*** 1,14 ****
-
/******************************************************************************
*
* Module Name: exmisc - ACPI AML (p-code) execution - specific opcodes
*
*****************************************************************************/
/*
! * Copyright (C) 2000 - 2011, 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:
--- 1,13 ----
/******************************************************************************
*
* Module Name: exmisc - ACPI AML (p-code) execution - specific opcodes
*
*****************************************************************************/
/*
! * 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,133 ****
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);
--- 113,129 ----
*** 285,307 ****
--- 281,307 ----
* 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,489 ****
{
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.
--- 449,482 ----
*** 492,502 ****
{
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.
--- 485,494 ----
*** 505,515 ****
{
return (0);
}
return (Integer0 >> Integer1);
-
case AML_SUBTRACT_OP: /* Subtract (Integer0, Integer1, Result) */
return (Integer0 - Integer1);
default:
--- 497,506 ----
*** 570,579 ****
--- 561,571 ----
LocalResult = TRUE;
}
break;
default:
+
Status = AE_AML_INTERNAL;
break;
}
/* Return the logical result and status */
*** 637,659 ****
--- 629,655 ----
* 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,707 ****
--- 694,704 ----
LocalResult = TRUE;
}
break;
default:
+
Status = AE_AML_INTERNAL;
break;
}
}
else
*** 775,784 ****
--- 772,782 ----
LocalResult = TRUE;
}
break;
default:
+
Status = AE_AML_INTERNAL;
break;
}
}
*** 794,800 ****
/* Return the logical result and status */
*LogicalResult = LocalResult;
return_ACPI_STATUS (Status);
}
-
-
--- 792,796 ----