1) Ensure that all functions that use the various TRACE macros also
use the appropriate ACPICA return macros.
2) Ensure that all normal return statements surround the return
expression (value) with parens.
Guan Chao, Tang Feng, Zheng Lv, Bob Moore.
ACPICA Bugzilla 972.
Fixes a possible fault during the disassembly of resource descriptors
when a second parse is required because of the invocation of external
control methods within the table. With assistance from adq@lidskialf.net.
ACPICA BZ 976.
This change fixes an issue with method declarations where the SyncLevel
term is a ByteConstExpr, but if a Type3 opcode was used, it would not
be evaluated properly.
This is an interim fix for this single case, specifically to allow the
ASLTS test to run properly.
However, it does not address the general case where parse tree transforms
are applied before the constant folding is performed. In this case, the
SyncLevel is merged with the NumArgs and SerializedFlag to generate a
raw data byte before the constant folding is performed. After this
parse tree transform, no constant folding can be performed on the
Method() parameters.
Two solutions:
1) The general case could possibly be solved by performing parse tree
transforms only after the constant folding has been completed
2) Continue to special-case each of these issues in the various
ASL operators that have similar issues.
An error can occur if the parse node that contains the namepath to be optimized
does not have a parent node that is a named object. This change fixes the
problem.
Problem detected by ASLTS test suite.
Via realloc(), automatically increase the internal line buffer sizes
as necessary to support very long source code lines.
The current version of the preprocessor requires a buffer long enough
to contain full source code lines. This change increases the line
buffer(s) if the input lines go beyond the current buffer size.
This eliminates errors that occurred when a source code line was
longer than the buffer.
Limit the source line output for error messages (256).
For these long lines, do not attempt to have the error message
point to the offending text. Emit the error column number
instead.
Newer versions of Bison apparently automatically emit some of
the necessary externals. This change handles these versions
in order to eliminate generation warnings.
The _GTS (Going To Sleep) and _BFS (Back From Sleep) methods are
essentially deprecated and will probably be removed from the ACPI
specification. Windows does not invoke them, and reportedly never
will. The final nail in the coffin is that the ACPI specification
states that these methods must be run with interrupts off, which
is not going to happen in a kernel interpreter. Tang Feng.
Note: Linux has removed all use of the methods also. It was discovered
that invoking these functions caused failures on some machines,
probably because they were never tested since Windows does not
call them.
This change fixes a problem where the constant folding code was not
invoked for arguments that compile to fixed-length constants (either
Byte, Word, DWord, or QWord.) ACPICA BZ 970.