aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/parser/psopcode.c
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2008-04-10 11:06:37 -0400
committerLen Brown <len.brown@intel.com>2008-04-22 14:29:21 -0400
commit4e3156b183aa087bc19804b3295c7c1a71f64752 (patch)
tree5db51b2351f4d919b36364681e594d2b6daa3860 /drivers/acpi/parser/psopcode.c
parentba886cd4ac957608777fbc8d137f6b9f0450e775 (diff)
ACPICA: changed order of interpretation of operand objects
The interpreter now evaluates operands in the order that they appear (both in the AML and ASL), instead of in reverse order. This previously caused subtle incompatibilities with the MS interpreter as well as being non-intuitive. Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/parser/psopcode.c')
-rw-r--r--drivers/acpi/parser/psopcode.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/acpi/parser/psopcode.c b/drivers/acpi/parser/psopcode.c
index 9296e86761d..3bf8105d634 100644
--- a/drivers/acpi/parser/psopcode.c
+++ b/drivers/acpi/parser/psopcode.c
@@ -49,6 +49,8 @@
49#define _COMPONENT ACPI_PARSER 49#define _COMPONENT ACPI_PARSER
50ACPI_MODULE_NAME("psopcode") 50ACPI_MODULE_NAME("psopcode")
51 51
52const u8 acpi_gbl_argument_count[] = { 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 6 };
53
52/******************************************************************************* 54/*******************************************************************************
53 * 55 *
54 * NAME: acpi_gbl_aml_op_info 56 * NAME: acpi_gbl_aml_op_info
@@ -59,6 +61,7 @@ ACPI_MODULE_NAME("psopcode")
59 * the operand type. 61 * the operand type.
60 * 62 *
61 ******************************************************************************/ 63 ******************************************************************************/
64
62/* 65/*
63 * Summary of opcode types/flags 66 * Summary of opcode types/flags
64 * 67 *
@@ -176,6 +179,7 @@ ACPI_MODULE_NAME("psopcode")
176 AML_CREATE_QWORD_FIELD_OP 179 AML_CREATE_QWORD_FIELD_OP
177 180
178 ******************************************************************************/ 181 ******************************************************************************/
182
179/* 183/*
180 * Master Opcode information table. A summary of everything we know about each 184 * Master Opcode information table. A summary of everything we know about each
181 * opcode, all in one place. 185 * opcode, all in one place.
@@ -779,3 +783,25 @@ char *acpi_ps_get_opcode_name(u16 opcode)
779 783
780#endif 784#endif
781} 785}
786
787/*******************************************************************************
788 *
789 * FUNCTION: acpi_ps_get_argument_count
790 *
791 * PARAMETERS: op_type - Type associated with the AML opcode
792 *
793 * RETURN: Argument count
794 *
795 * DESCRIPTION: Obtain the number of expected arguments for an AML opcode
796 *
797 ******************************************************************************/
798
799u8 acpi_ps_get_argument_count(u32 op_type)
800{
801
802 if (op_type <= AML_TYPE_EXEC_6A_0T_1R) {
803 return (acpi_gbl_argument_count[op_type]);
804 }
805
806 return (0);
807}