Version 20190816

16 August 2019. Summary of changes for version 20190816:

This release is available at

1) ACPICA kernel-resident subsystem:

Modified the OwnerId mechanism to allow for more Owner Ids. The previous limit was 256 Ids, now it is 4096 Ids. This prevents OWNER_ID_LIMIT exceptions on machines with a large number of initialization threads, many CPU cores and nested initialization control methods.

Introduced acpi_dispatch_gpe() as a wrapper around AcpiEvDetectGpe() for checking if the given GPE (as represented by a GPE device handle and a GPE number) is currently active and dispatching it (if that's the case) outside of interrupt context.

Table load: exit the interpreter before initializing objects within the new table This prevents re-acquiring the interpreter lock when loading tables

Added the "Windows 2019" string to the _OSI support (version 1903).

Macros: removed pointer math on a null pointer. Causes warnings on some compilers and/or tools. Changed ACPI_TO_POINTER to use ACPI_CAST_PTR instead of using arithmetic.

Fully deployed the ACPI_PRINTF_LIKE macro. This macro was not being used across all "printf-like" internal functions. Also, cleanup all calls to such functions (both in 32-bit mode and 64-bit mode) now that they are analyzed by the gcc compiler via ACPI_PRINTF_LIKE.

2) iASL Compiler/Disassembler and ACPICA tools:

iASL: implemented a new data table compiler flex/bison front-end. This change is internal and is not intended to result in changes to the compiled code. This new compiler front-end can be invoked using the -tp option for now, until the old mechanism is removed.

ASLTS: Implemented a new data table compiler test suite. This test suite generates all table templates and compile/disassemble/re-compile/binary-compare each file.

iASL: return -1 if AML files were not generated due to compiler errors

iASL: added a warning on use of the now-legacy ASL Processor () keyword.

iASL: added an error on _UID object declaration that returns a String within a Processor () declaration. A _UID for a processor must be an Integer.

iASL: added a null terminator to name strings that consist only of multiple parent prefixes (^)

iASL: added support to compile both ASL and data table files in a single command.

Updated the tool generation project files that were recently migrated to MSVC 2017 to eliminate all new warnings. The new project files appear in the directory \acpica\generate\msvc2017. This change effectively deprecates the older project files in \acpica\generate\msvc9.

16 August, 2019