aboutsummaryrefslogtreecommitdiff
path: root/sys/contrib/dev/acpica/compiler/aslcompiler.y
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2011-03-17 00:29:53 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2011-03-17 00:29:53 +0000
commitdcbce41eb01f6089df0375d9a4fcfbc47de2324b (patch)
treefe5f720ee49b8903a9521b4bfb2be2eccb814c80 /sys/contrib/dev/acpica/compiler/aslcompiler.y
parente22b8a5a3b64fae412818dd70c82d067b434c88a (diff)
parent4d8fe534b7309d798d941e14e51985eed6b511bc (diff)
Merge ACPICA 20110316.
Notes
Notes: svn path=/head/; revision=219707
Diffstat (limited to 'sys/contrib/dev/acpica/compiler/aslcompiler.y')
-rw-r--r--sys/contrib/dev/acpica/compiler/aslcompiler.y15
1 files changed, 15 insertions, 0 deletions
diff --git a/sys/contrib/dev/acpica/compiler/aslcompiler.y b/sys/contrib/dev/acpica/compiler/aslcompiler.y
index 6a8d4a42d98d..cc57aaa4e0ce 100644
--- a/sys/contrib/dev/acpica/compiler/aslcompiler.y
+++ b/sys/contrib/dev/acpica/compiler/aslcompiler.y
@@ -728,6 +728,21 @@ ASLCode
| error {YYABORT; $$ = NULL;}
;
+/*
+ * Note concerning support for "module-level code".
+ *
+ * ACPI 1.0 allowed Type1 and Type2 executable opcodes outside of control
+ * methods (the so-called module-level code.) This support was explicitly
+ * removed in ACPI 2.0, but this type of code continues to be created by
+ * BIOS vendors. In order to support the disassembly and recompilation of
+ * such code (and the porting of ASL code to iASL), iASL supports this
+ * code in violation of the current ACPI specification.
+ *
+ * The grammar change to support module-level code is to revert the
+ * {ObjectList} portion of the DefinitionBlockTerm in ACPI 2.0 to the
+ * original use of {TermList} instead (see below.) This allows the use
+ * of Type1 and Type2 opcodes at module level.
+ */
DefinitionBlockTerm
: PARSEOP_DEFINITIONBLOCK '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEFINITIONBLOCK);}
String ','