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.
This change adds a new _OSI string, "Windows 2012" for both Windows 8
and Windows Server 2012.
From Microsoft document "How to Identify the Windows Version in ACPI
by Using _OSI", July 13, 2012.
The generate/linux makefiles are obsolete and have been removed from
the unix tarball release packages. The replacement makefiles
are under generate/unix, and a top-level makefile under the main
acpica directory.
Update the comments that explain why ACPICA cannot use bitfields.
/*
* Note: C bitfields are not used for this reason:
*
* "Bitfields are great and easy to read, but unfortunately the C language
* does not specify the layout of bitfields in memory, which means they are
* essentially useless for dealing with packed data in on-disk formats or
* binary wire protocols." (Or ACPI tables and buffers.) "If you ask me,
* this decision was a design error in C. Ritchie could have picked an order
* and stuck with it." Norman Ramsey.
* See http://stackoverflow.com/a/1053662/41661
*/
_PLD (Physical Location of Device) returns a bit-packed buffer that
is difficult to parse. This change adds a new interface,
AcpiDecodePldBuffer that parses the buffer into a more usable
local struct. Also adds macros to both get and set individual
fields within the packed _PLD buffer. Adds a new include file,
acbuffer.h - which will be expanded to add structs for other
ACPI names that return buffers. ACPICA BZ 954.