Add support for Buffer arguments for Connection.
AccessAs now has a separate opcode for the AccessLength case.
Both are per the latest ACPI 5 proposals.
History: This support changes a method to "serialized" on the fly if the
method generates an AE_ALREADY_EXISTS error, indicating the possibility
that it cannot handle reentrancy.
This fix repairs a couple of issues seen in the field, especially on
machines with many cores.
1) Delete method children only upon the exit of the last thread, so
as to not delete objects out from under running threads.
2) Set the "serialized" bit for the method only upon the exit of the
last thread, so as to not cause deadlock when running threads attempt
to exit.
3) Cleanup the use of the AML "MethodFlags" and internal method flags
so that there is no longer any confustion between the two.
Lin Ming, Bob Moore. Reported by dana.myers@oracle.com.
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.
Always use 0x prefix for hex output, use %u for integer output (all
integers are unsigned.)
Affects ACPI_INFO, ACPI_ERROR, ACPI_WARNING, and ACPI_EXCEPTION.
ACPICA BZ 835.
This type was introduced as the code was migrated from ACPI 1.0 (with 32-bit
AML integers) to ACPI 2.0 (with 64-bit integers). It is now obsolete and
this change removes it from the ACPICA code base, replaced by UINT64.
The original typedef has been retained for now for compatibility with
existing device driver code.
Add 2010 copyright to all module headers and signons, including the Linux
header. This affects virtually every file in the ACPICA core subsystem,
iASL compiler, and all utilities.
This change enables the execution of _REG methods that appear in the
same scope as the module-level code, in resonse to an operation region
declaration within the module-level code.
Add limited support for executable AML code that exists outside of
any control method. This type of code has been illegal since ACPI 2.0.
The code must exist in an If/Else/While block. All AML tables are
supported, including tables that are dynamically loaded.
ACPICA BZ 762. Lin Ming.
Add 2009 copyright to all module headers and signons, including the Linux
header. This affects virtually every file in the ACPICA core subsystem,
iASL compiler, and all utilities.
For Windows compatibility, return an implicit integer of value
zero for methods that have no executable code. A default implicit
value of zero is provided for methods.
Such methods are seen in the field as stubs (presumably), and can
cause drivers to fail if they expect a return value. Lin Ming.
The current implemenation of _OSI within ACPICA only allows other
control methods to execute _OSI. This change allows the host OS
to execute _OSI via the AcpiEvaluateObject interface. _OSI is a
special method -- it does not exist in the AML code, it is
implemented within ACPICA.
acpi.h now includes only the "public" acpica headers. All other
acpica headers are "private" and should not be included by acpica
users. One new file, accommon.h is used to include the commonly
used private headers for acpica code generation. Future plans are
to move all private headers to a new subdirectory.
Fixes a possible memory leak if an allocation failure happens in
the parse loop. Must terminate an executing control method. Lin Ming,
Bob Moore. ACPICA BZ 489.
Removed the "$Revision" number that appeared in each module header.
This version number was useful under SourceSafe and CVS, but has no
meaning under git. It is not only incorrect, it could also be
misleading.
Fixes problem introduced in 20080123, with fix for Unload operator.
Parse tree object can be already deleted; must use the opcode within
the WalkState.
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.
Implemented support for the use of DDBHandles as an Indexed Reference, as per the ACPI spec. (Lin Ming) BZ 486. Implemented support for UserTerm (Method invocation) for the Unload operator as per the ACPI spec. (Lin Ming) BZ 580
Implemented an enhancement to the interpreter "slack mode". In the absence of an explicit return or an implicitly returned object from the last executed opcode, a control method will now implicitly return an integer of value 0 for Microsoft compatibility. (Lin Ming) BZ 392
Added 2008 copyright to all module headers and signons. This affects virtually every file in the ACPICA core subsystem, iASL compiler, and the utilities.
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.
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.
Added 2007 copyright to all module headers and signons. This affects virtually every file in the ACPICA core subsystem, iASL compiler, and the utilities.
Completed an AML interpreter performance enhancement for control method execution. Previously a 2-pass parse/execution, control methods are now completely parsed and executed in single pass. This improves overall interpreter performance by ~25%, reduces code size, and reduces CPU stack use.