Version 20161222

22 December 2016. Summary of changes for version 20161222:

This release is available at

1) ACPICA kernel-resident subsystem:

AML Debugger: Implemented a new mechanism to simplify and enhance debugger integration into all environments, including kernel debuggers and user-space utilities, as well as remote debug services. This mechanism essentially consists of new OSL interfaces to support debugger initialization/termination, as well as wait/notify interfaces to perform the debugger handshake with the host. Lv Zheng.

New OSL interfaces:
AcpiOsInitializeDebugger (void)
AcpiOsTerminateDebugger (void)
AcpiOsWaitCommandReady (void)
AcpiOsNotifyCommandComplete (void)

New OS services layer:
osgendbg.c -- Example implementation, and used for AcpiExec

Update for Generic Address Space (GAS) support: Although the AccessWidth and/or BitOffset fields of the GAS are not often used, this change now fully supports these fields. This affects the internal support for FADT registers, registers in other ACPI data tables, and the AcpiRead and AcpiWrite public interfaces. Lv Zheng.

Sleep support: In order to simplify integration of ACPI sleep for the various host operating systems, a new OSL interface has been introduced. AcpiOsEnterSleep allows the host to perform any required operations before the final write to the sleep control register(s) is performed by ACPICA. Lv Zheng.

New OSL interface:
AcpiOsEnterSleep(SleepState, RegisterAValue, RegisterBValue)

Called from these internal interfaces:

EFI support: Added a very small EFI/ACPICA example application. Provides a simple demo for EFI integration, as well as assisting with resolution of issues related to customer ACPICA/EFI integration. Lv Zheng. See:


Local C library: Implemented several new functions to enhance ACPICA portability, for environments where these clib functions are not available (such as EFI). Lv Zheng:

Fixed a regression where occasionally a valid resource descriptor was incorrectly detected as invalid at runtime, and a AE_AML_NO_RESOURCE_END_TAG was returned.

Fixed a problem with the recently implemented support that enables control method invocations as Target operands to many ASL operators. Warnings of this form: "Needed type [Reference], found [Processor]" were seen at runtime for some method invocations.

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.

Current Release:
Non-Debug Version: 141.5K Code, 58.5K Data, 200.0K Total
Debug Version: 201.7K Code, 82.7K Data, 284.4K Total
Previous Release:
Non-Debug Version: 140.5K Code, 58.5K Data, 198.9K Total
Debug Version: 201.3K Code, 82.7K Data, 284.0K Total

2) iASL Compiler/Disassembler and Tools:

Disassembler: Enhanced output by adding the capability to detect and disassemble ASL Switch/Case statements back to the original ASL source code instead of if/else blocks. David Box.

AcpiHelp: Split a large file into separate files based upon functionality/purpose. New files are:

22 December, 2016