This change implements the rules for LEN/MIF/MAF/MIN/MAX/GRA that come
from the ACPI specification (Table 6-40). Also added a special
case for IO descriptor where MIN/MAX are both start addresses, not
a start and end address. ACPICA BZ 840.
This change implements validation for the address fields that are
common to all address-type resource descriptors. These checks
are implemented: Checks for valid min/max, length within the
min/max window, valid granularity and min/max a multiple of
granularity. ACPICA BZ 840.
If no return value is expected from this predefined name, then
it follows that it must be implemented as a control method
(with zero args, because the args > 0 case was handled above)
Examples are: _DIS, _INI, _IRC, _OFF, _ON, _PSx
For all GPEs, including FADT-based and GPE Block Devices, execute
any _PRW methods in the new table, and process any _Lxx/_Exx GPE
methods in the new table. Any runtime GPE that is referred to by
an _Lxx/_Exx method in the new table is immediately enabled.
ACPICA BZ 833. Lin Ming, Bob Moore.
_Wxx is a GPE method type, similar to the _Lxx/Exx methods.
Adds support for all _Wxx names, which were not previously
recognized as valid predefined names.
Add ascii dump for partial last lines.
For C, omit comma after last byte.
Add total AML size in comment.
Update to improve general appearance and usefullness.
Adds a reference count mechanism to simplify support of shared GPEs that
require multiple device drivers. Several external interfaces have changed.
One external interface has been removed.
Changed:
AcpiEnableGpe
AcpiDisableGpe
AcpiClearGpe
AcpiGetGpeStatus
Removed:
AcpiSetGpeType
New:
AcpiSetGpe
See the ACPICA Programmer Reference for details.
Matthew Garrett
Bob Moore
Rafael Wysocki
Optionally copy the entire DSDT to local memory (instead of simply
mapping it.) There are some BIOSs that corrupt or replace the original
DSDT, creating the need for this option. Default is FALSE, do not copy
the DSDT.
This change adds support to detect a DSDT that has been corrupted
and/or replaced from outside the OS (by firmware). This is typically
catastrophic for the system, but has been seen on some machines.
Lin Ming, Bob Moore.
The original implementation only supported reading from a DataTable
region. However, some machines have been seen that actually write to
the ACPI table contained in such a region. This change adds support
for writing to a DataTable region.
Implements some typechecking for values returned by any ACPI
predefiend control methods. Only the direct return of static (unnamed)
values are checked. For example, Return(1). ACPICA BZ 786.
When copying the root table to the new allocation, the length used
was incorrect. The new size was used instead of the current table size,
meaning too much data was copied. Alexey Starikovskiy.
Introduced in commit ae7d6fd(Disassembler: Properly handle externals
with parent-prefix (carat). Fixes a string length allocation calculation.
Lin Ming.
Fixes a problem introduced in version 20100304. An error is incorrectly
generated if a predefined name is declared as a static named object with
a value defined using the keywords "Zero", "One", or "Ones". Lin Ming.
Fixed a problem with the AML Mutex handling function AcpiExReleaseMutex
where the function could fault under the very rare condition when the
interpreter has blocked, the interpreter lock is released, the
interpreter is then reentered via the same thread, and attempts to
acquire a mutex that was previously acquired. FreeBSD report 140979. Lin Ming.