Added two initialization examples (within a comment block) that
show how to init ACPI for early table access and for a normal
initialization. Same code will appear in the ACPICA reference
manual.
Use a global pointer instead of using AcpiGetTableByIndex for each
FACS access. This simplifies the code for the Global Lock and the
Firmware Waking Vector(s).
Add a loop counter to force exit from AML While loops if the count
becomes too large. This can occur in poorly written AML when the
hardware does not respond within a while loop and the loop does not
implement a timeout. The maximum loop count is configurable. A new
exception code is returned when a loop is broken, AE_AML_INFINITE_LOOP.
Bob Moore, Alexey Starikovskiy.
Previously, a control state object was allocated and freed for each
execution of the loop. The optimization is to simply reuse the control
state for each iteration. This speeds up the raw loop execution time by
about 5%.
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.
Split AcpiSetFirmwareWakingVector into two: one for the 32-bit vector,
another for the 64-bit vector. This is required because the host OS must
setup the wake much differently for each vector (real vs. protected mode,
etc.) and the interface should not be deciding which vector to use.
Also eliminate the GetFirmwareWakingVector interface, as it served no
purpose (only the firmware reads the vector, OS only writes the vector.)
ACPICA BZ 731.
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.
Allow zero length strings during interpreter buffer-to-string
conversions. For example, during the ToDecimalString and ToHexString
operaters, as well as implicit conversions. Fiodor Suietov.
ACPICA BZ 585.
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.
Fixed two possible memory leaks in the error exit paths of
AcpiUtUpdateObjectReference and AcpiUtWalkPackageTree. These functions
are similar in that they use a stack of state objects in order to
eliminate recursion. The stack must be fully deallocated if an error
occurs. Lin Ming. BZ 383.
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
Previously aborted with error if too few arguments were passed to a
control method via the external ACPICA interface. Now issue a warning
instead and continue. Handles the case where the method inadvertently
declares too many arguments, but does not actually use the extra ones.
Applies mainly to the predefined methods. Lin Ming. Linux BZ 11032.
Check for zero-length subtables when disassembling ACPI tables.
Also fixes a couple of errors where a full 16-bit table type
was not extracted from the input properly.
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.
These changes affected the tests:
iASL: error if named object created in while loop
iASL: minimum 1 interrupt in interrupt macro
Table Load: table is now loaded at namespace root