Fixed a problem with the Alias operator when the target of the alias is a named ASL operator that opens a new scope -- Scope, Device, PowerResource, Processor, and ThermalZone. In these cases, any children of the original operator could not be accessed via the alias, potentially causing unexpected AE_NOT_FOUND exceptions.
Fixed a problem where objects of certain types (Device, ThermalZone, Processor, PowerResource) can be not found if they are declared and referenced from within the same control method (Lin Ming) BZ 341.
Fixed a problem where the use of the AcpiGbl_AllMethodsSerialized flag (acpi_serialized option on Linux) could cause some systems to hang during initialization. (Bob Moore) BZ 8171
Designed and implemented new external interfaces to install and remove handlers for ACPI table-related events. Current events that are defined are LOAD and UNLOAD. These interfaces allow the host to track ACPI tables as they are dynamically loaded and unloaded. See AcpiInstallTableHandler and AcpiRemoveTableHandler. (Lin Ming and Bob Moore)
Implemented support to allow multiple files to be compiled/disassembled in a single invocation. This includes command line wildcard support for both the Windows and Unix versions of the compiler. This feature simplifies the disassembly and compilation of multiple ACPI tables in a single directory.
Fixed a problem with the internal FADT conversion where ACPI 1.0 FADTs that contained invalid non-zero values in reserved fields could cause later failures because these fields have meaning in later revisions of the FADT. For incoming ACPI 1.0 FADTs, these fields are now always zeroed. (Preferred_PM_Profile, PSTATE_CNT, CST_CNT, IAPC_BOOT_FLAGS.)
Implemented a design change for the handling of the Notify AML operator. Previously, notify handlers were dispatched and executed completely asynchronously in a deferred thread. The new design still executes the notify handlers in a different thread, but the original thread that executed the Notify() now waits at a synchronization point for the notify handler to complete. Some machines depend on a synchronous Notify operator in order to operate correctly.
Fixed a problem where the global lock handle was not properly updated if a thread that acquired the global lock via executing AML code then attempted to acquire the lock via the AcpiAcquireGlobalLock interface.
Fixed a problem in AcpiEvDeleteGpeXrupt where the global interrupt list could be corrupted if the interrupt being removed was at the head of the list. Reported by Linn Crosetto.
Implemented support to allow Package objects to be passed as method arguments to the AcpiEvaluateObject interface. Previously, this would return an AE_NOT_IMPLEMENTED exception.
The interpreter now evaluates operands in the order that they appear (both in the
AML and ASL), instead of in reverse order. This previously caused subtle incompatibilities with the MS interpreter as well as being non-intuitive.
Allows AcpiAcquireGlobalLock external interface to be called multiple times by the
same thread. Allows use of AML fields that require the global lock while the running
AML is already holding the global lock.