18 October 2012. Summary of changes for version 20121018:
This release is available at https://www.acpica.org/downloads
The ACPI 5.0 specification is available at www.acpi.info
1) ACPICA Kernel-resident Subsystem:
Updated support for the ACPI 5.0 MPST table. Fixes some problems introduced by late
changes to the table as it was added to the ACPI 5.0 specification. Includes header,
disassembler, and data table compiler support as well as a new version of the MPST
AcpiGetObjectInfo: Enhanced the device object support to include the ACPI 5.0 _SUB method.
Now calls _SUB in addition to the other PNP-related ID methods: _HID, _CID, and _UID.
Changed ACPI_DEVICE_ID to ACPI_PNP_DEVICE_ID. Also changed ACPI_DEVICE_ID_LIST to
ACPI_PNP_DEVICE_ID_LIST. These changes prevent name collisions on hosts that reserve the
*_DEVICE_ID (or *DeviceId) names for their various drivers. Affects the AcpiGetObjectInfo
external interface, and other internal interfaces as well.
Added and deployed a new macro for ACPI_NAME management: ACPI_MOVE_NAME. This macro
resolves to a simple 32-bit move of the 4-character ACPI_NAME on machines that support
non-aligned transfers. Optimizes for this case rather than using a strncpy. With
assistance from Zheng Lv.
Resource Manager: Small fix for buffer size calculation. Fixed a one byte error in the
output buffer calculation. Feng Tang. ACPICA BZ 849.
Added a new debug print message for AML mutex objects that are force-released. At control
method termination, any currently acquired mutex objects are force-released. Adds a new
debug-only message for each one that is released.
Audited/updated all ACPICA return macros and the function debug depth counter: 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 to ensure consistency across the ACPICA code base. Guan Chao, Tang
Feng, Zheng Lv, Bob Moore. ACPICA Bugzilla 972.
Global source code changes/maintenance: All extra lines at the start and end of each
source file have been removed for consistency. Also, within comments, all new sentences
start with a single space instead of a double space, again for consistency across the code
Example Code and Data Size: These are the sizes for the OS-independent acpica.lib produced
by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of the code includes
the debug output trace mechanism and has a much larger code and data size.
Non-Debug Version: 93.7K Code, 25.3K Data, 119.0K Total
Debug Version: 175.0K Code, 74.4K Data, 249.4K Total
Non-Debug Version: 93.9K Code, 25.2K Data, 119.1K Total
Debug Version: 175.5K Code, 74.5K Data, 250.0K Total
2) iASL Compiler/Disassembler and Tools:
AcpiExec: Improved the algorithm used for memory leak/corruption detection. Added some
intelligence to the code that maintains the global list of allocated memory. The list is
now ordered by allocated memory address, significantly improving performance. When running
AcpiExec on the ASLTS test suite, speed improvements of 3X to 5X are seen, depending on
the platform and/or the environment. Note, this performance enhancement affects the
AcpiExec utility only, not the kernel-resident ACPICA code.
Enhanced error reporting for invalid AML opcodes and bad ACPI_NAMEs. For the disassembler,
dump the 48 bytes surrounding the invalid opcode. Fix incorrect table offset reported for
invalid opcodes. Report the original 32-bit value for bad ACPI_NAMEs (as well as the
Disassembler: Enhanced the -vt option to emit the binary table data in hex format to
assist with debugging.
Fixed a potential filename buffer overflow in osunixdir.c. Increased the size of file
structure. Colin Ian King.