14 February 2020. Summary of changes for version 20200214:
This release is available at https://acpica.org/downloads
1) ACPICA kernel-resident subsystem:
Enable sleep button on ACPI legacy wake: Hibernation (S4) is triggered in a guest when it receives a sleep trigger from the hypervisor. When the guest resumes from this power state, it does not see the SleepEnabled bit. In other words, the sleepHibernation (S4) is triggered in a guest when it receives a sleep trigger from the hypervisor. When the guest resumes from this power state, it does not see the SleepEnabled bit. In other words, the sleep button is not enabled on waking from an S4 state. This causes subsequent invocation of sleep state to fail since the guest.button is not enabled on waking from an S4 state. This causes subsequent invocation of sleep state to fail in the guest. Fix this problem by enabling the sleep button in ACPI legacy wake. From Anchal Agarwal .
Implemented a new external interface, AcpiAnyGpeStatusSet (). To be used for checking the status bits of all enabled GPEs in one go. It is needed to distinguish spurious SCIs from genuine ones when deciding whether or not to wake up the system from suspend-to-idle.
Generic Makefiles: replace HOST name with ACPI_HOST: Some machines may be using HOST in their environment to represent the host name for their machines. Avoid this problem by renaming this variable from HOST to ACPI_HOST.
MSVC 2017 project files: Enable multiprocessor generation to improve build performance.
Added a macro to get the byte width of a Generic Address structure. New ACPI_ACCESS_BYTE_WIDTH is in addition to the existing ACPI_ACCESS_BIT_WIDTH. From Mika Westerberg.
2) iASL Compiler/Disassembler and ACPICA tools:
iASL: Implemented full support for the (optional, rarely used) ReturnType and ParameterTypesList for the Method, Function, and External operators. For Method declarations, the number of individual ParameterTypes must match the declaration of the number of arguments (NumArgs). This also Fixes a problem with the External operator where extra/extraneous bytes were emitted in the AML code if the optional ReturnType/ParameterTypes were specified for a MethodObj declaration.
New error message:
1) Method NumArgs count does not match length of ParameterTypes list
iASL: Implemented detection of type mismatches between External declarations and named object declarations. Also, detect type mismatches between multiple External declarations of the same Name.
New error messages:
1) Type mismatch between external declaration and actual object declaration detected
2) Type mismatch between multiple external declarations detected
iASL: Implemented new error messages for External operators that specify a ReturnType and/or ParameterTypesList for any object type other than control methods (MethodObj).
New error messages:
1) Return type is only allowed for Externals declared as MethodObj
2) Parameter type is only allowed for Externals declared as MethodObj
iASL: Implemented two new remark/warning messages for ASL code that creates named objects from within a control method. This is very inefficient since the named object must be created and deleted each time the method is executed.
1) Creation of named objects within a method is highly inefficient, use globals or method local variables instead (remark)
2) Static OperationRegion should be declared outside control method (warning)
iASL: Improved illegal forward reference detection by adding support to detect forward-reference method invocations.
iASL: Detect and issue an error message for NameStrings that contain too many individual NameSegs (>255). This is an AML limitation that is defined in the ACPI specification.
1) NameString contains too many NameSegs (>255)
acpidump: windows: use GetSystemFirmwareTable API for all tables except SSDT. By using this API, acpidump is able to get all tables in the XSDT
iASL: Removed unused parser file and updated msvc2017 project files. Removed the obsolete AslCompiler.y from the repository.
iASL: msvc2017: Fixed macros in the file dependency list to prevent unnecessary rebuilds. Replace %(Directory) with %(RelativeDir).
Disassembler: Prevent spilling error messages to the output file. All errors are directed to the console instead. These error messages prevented re-compilation of the resulting disassembled ASL output file (.DSL).