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
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).