diff options
author | Bob Moore <robert.moore@intel.com> | 2008-04-10 11:06:37 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2008-04-22 14:29:21 -0400 |
commit | 4e3156b183aa087bc19804b3295c7c1a71f64752 (patch) | |
tree | 5db51b2351f4d919b36364681e594d2b6daa3860 /drivers/acpi/parser/psopcode.c | |
parent | ba886cd4ac957608777fbc8d137f6b9f0450e775 (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.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/acpi/parser/psopcode.c b/drivers/acpi/parser/psopcode.c index 9296e86761d7..3bf8105d6348 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 |
50 | ACPI_MODULE_NAME("psopcode") | 50 | ACPI_MODULE_NAME("psopcode") |
51 | 51 | ||
52 | const 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 | |||
799 | u8 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 | } | ||