Validates predefined ACPI objects that appear in the namespace, at the
time they are evaluated. The argument count and the type of the returned
object are validated. The purpose of this validation is to detect problems
with the BIOS-exposed predefined ACPI objects before the results are
returned to the ACPI-related drivers.
Removed the ACPI_BITREG_WAKE_ENABLE definition and entry in the global
register table. This bit does not exist and is unused. Lin Ming, Bob Moore
BZ 442.
Fix some sloppiness in the Reference object. No longer use AML opcodes to
differentiate the types, introduce new reference Class. Cleanup the debug
output code.
1) Add new field for use by DdbHandle (Value)
2) Use ACPI_CAST_INDIRECT_PTR to eliminate strict type warnings
3) Cleanup debug output
Lin Ming, Bob Moore
Add ACPI_NAMESPACE_NODE to the ACPI_OPERAND_OBJECT in order to simplify
code that accepts both of these objects. A common type field is used
to differentiate them.
Removed ACPI_DB_WARN and ACPI_DB_ERROR. These debug levels were made
obsolete by the ACPI_WARNING and ACPI_ERROR/ACPI_EXCEPTION interfaces.
Also added ACPI_DB_EVENTS to correspond with the existing
ACPI_LV_EVENTS.
Add error check after all calls to AcpiNsGetPathnameLength.
Add status return from AcpiNsBuildExternalPath and check after all calls.
Add parameter validation to AcpiUtInitializeBuffer.
Reported by and initial patch by Ingo Molnar.
Support for the x2APIC. There are 2 new subtables for the MADT and one new
subtable for the SRAT. Includes disassembler and AcpiSrc support. Data from
the Intel 64 Architecture x2APIC Specification, June 2008.
Return status from AcpiUtGlobalInitialize. This is used by both
the kernel subsystem and the utilities such as iASL compiler.
The function could possibly fail when the caches are initialized.
Yang Yi.
The "minimal" descriptors such as EndTag are calculated as 12 bytes
long, but the actual length in the internal descriptor is 16 because
of the round-up to 8 on 64-bit build. BZ 728
Fix the ordering of the ASCII names in the table to match the actual
mutex IDs. Used by AcpiUtGetMutexName, a function used for debug only.
Vegard Nossum. BZ 726
We now perform a read-change-write of the enable register instead of
simply writing out the cached enable mask. This will prevent inadvertent
enabling of GPEs if a rogue GPE is received during initialization
(before GPE handlers are installed.)
Now calls _CFG method to pass address of table to the AML. Added option
to disable opregion simulation to allow creation of opregion with real
address that was passed to _CFG. All of this allows testing of the Load
and Unload operators from AcpiExec.
Fixes problem introduced in 20080514 where the new method argument count
validation mechanism will enter an infinite loop when a GPE method is
dispatched. Problem fixed be removing the obsolete code that passes GPE
block information to the notify handler via the control method parameter
pointer.
Error if too few arguments, warning if too many. This applies only to external
programmatic control method execution, not method-to-method calls within the
AML.
Implemented a change/cleanup for the handling of invalid ACPI names. Names are now validated and repaired only when 1) entering a new name into the namespace and 2) disassembling a named AML opcode. A warning is only displayed in debug mode or when the interpreter is in "strict" mode, since some working machines do in fact contain invalid ACPI names.
Implemented several changes for Notify handling: Added support for new Notify values (ACPI 2.0+) and improved the Notify debug output. Notify on PowerResource objects is no longer allowed, as per the ACPI specification. (Bob Moore, Zhang Rui)
Fixed problem where NULL package elements were not returned to the AcpiEvaluateObject interface correctly. Instead of returning a NULL ACPI_OBJECT package element, the element was simply ignored, potentially causing a buffer overflow and/or confusing the caller who expected a fixed number of elements. BZ 10132 (Lin Ming, Bob Moore)
Fixed a regression introduced in version 20071114. The ACPI_HIDWORD macro was inadvertently changed to return a 16-bit value instead of a 32-bit value, truncating the upper dword of a 64-bit value. This macro is only used to display debug output, so no incorrect calculations were made. Also, reimplemented the macro so that a 64-bit shift is not performed by inefficient compilers.
Fixed a problem where resource descriptor size optimization could cause a problem when a _CRS resource template is passed to a _SRS method. The _SRS resource template must use the same descriptors (with the same size) as returned from _CRS. This change affects the following resource descriptors: IRQ/IRQNoFlags and StartDependendentFn/StartDependentFnNoPri. (BZ 9487)
Implemented full disassembler support for the following new ACPI tables: BERT, EINJ, and ERST. Partial disassembler support for the complicated HEST table. These tables support the Windows Hardware Error Architecture (WHEA).
Fixed a regression introduced in version 20071114. The ACPI_HIDWORD macro was inadvertently changed to return a 16-bit value instead of a 32-bit value, truncating the upper Dword of a 64-bit value. This macro is only used to display debug output, so no incorrect calculations were made.
Added 2008 copyright to all module headers and signons. This affects virtually every file in the ACPICA core subsystem, iASL compiler, and the utilities.