Version 20170728

28 July 2017. Summary of changes for version 20170728:

1) ACPICA kernel-resident subsystem:

Fixed a regression seen with small resource descriptors that could cause an inadvertent AE_AML_NO_RESOURCE_END_TAG exception.

AML interpreter: Implemented a new feature that allows forward references from individual named references within package objects that are contained within blocks of "module-level code". This provides compatibility with other ACPI implementations and supports existing firmware that depends on this feature. Example:

Name (ABCD, 1)
If (ABCD) /* An If() at module-level */
Name (PKG1, Package()
INT1 /* Forward reference to object INT1 */
Name (INT1, 0x1234)

AML Interpreter: Fixed a problem with the Alias() operator where aliases to some ASL objects were not handled properly. Objects affected are: Mutex, Event, and OperationRegion.

AML Debugger: Enhanced to properly handle AML Alias objects. These objects have one level of indirection which was not fully supported by the debugger.

Table Manager: Added support to detect and ignore duplicate SSDTs within the XSDT/RSDT. This error in the XSDT has been seen in the field.

EFI and EDK2 support:
Enabled /WX flag for MSVC builds
Added support for AcpiOsStall, AcpiOsSleep, and AcpiOsGetTimer
Added local support for 64-bit multiply and shift operations
Added support to compile acpidump.efi on Windows
Added OSL function stubs for interfaces not used under EFI

Added additional support for the _DMA predefined name. _DMA returns a buffer containing a resource template. This change add support within the resource manager (AcpiWalkResourceBuffer) to walk and parse this list of resource descriptors. Lorenzo Pieralisi

2) iASL Compiler/Disassembler and Tools:

iASL: Fixed a problem where the internal input line buffer(s) could overflow if there are very long lines in the input ASL source code file. Implemented buffer management that automatically increases the size of the buffers as necessary.

iASL: Added an option (-vx) to "expect" particular remarks, warnings and errors. If the specified exception is not raised during compilation, the compiler emits an error. This is intended to support the ASL test suite, but may be useful in other contexts.

iASL: Implemented a new predefined macro, __METHOD__, which returns a string containing the name of the current control method that is being compiled.

iASL: Implemented debugger and table compiler support for the SDEI ACPI table (Software Delegated Exception Interface). James Morse

Unix/Linux makefiles: Added an option to disable compile optimizations. The disable occurs when the NOOPT flag is set to TRUE.

Acpidump: Added support for multiple DSDT and FACS tables. This can occur when there are different tables for 32-bit versus 64-bit.

Enhanced error reporting for the ASL test suite (ASLTS) by removing unnecessary/verbose text, and emit the actual line number where an error has occurred. These changes are intended to improve the usefulness of the test suite.

28 July, 2017