| Age | Commit message (Collapse) | Author |
|
Added 2005 copyright to all ACPICA files.
Fixed an issue with the String-to-Buffer conversion code
where the string null terminator was not included in the
buffer after conversion, but there is existing ASL that
assumes the string null terminator is included. This is the
root of the ACPI_AML_BUFFER_LIMIT regression. This problem
was introduced in the previous version when the code was
updated to correctly set the converted buffer size as per
the ACPI specification. The ACPI spec is ambiguous and
will be updated to specify that the null terminator must
be included in the converted buffer. This also affects
the ToBuffer() ASL operator.
Fixed a problem with the Mid() ASL/AML operator where it
did not work correctly on Buffer objects. Newly created
sub-buffers were not being marked as initialized.
Fixed a problem in acpi_tb_find_table where incorrect string
compares were performed on the oem_id and oem_table_d table
header fields. These fields are not null terminated,
so strncmp is now used instead of strcmp.
Implemented a restriction on the Store() ASL/AML operator
to align the behavior with the ACPI specification.
Previously, any object could be used as the source
operand. Now, the only objects that may be used are
Integers, Buffers, Strings, Packages, Object References,
and DDB Handles. As acpi_gbl_enable_interpreter_slack
is FALSE by default, "acpi=strict" is needed to enable
this check.
Enhanced the optional "implicit return" support to allow
an implicit return value from methods that are invoked
externally via the AcpiEvaluateObject interface. This
enables implicit returns from the _STA and _INI methods,
for example.
Changed the Revision() ASL/AML operator to return the
current version of the AML interpreter, in the YYYYMMDD
format. Previously, it incorrectly returned the supported
ACPI version (This is the function of the _REV method).
Updated the _REV predefined method to return the currently
supported version of ACPI, now 3.
|
|
The low-level field insertion/extraction code (exfldio)
has been completely rewritten to eliminate unnecessary
complexity, bugs, and boundary conditions.
Fixed a problem in the ToInteger, ToBuffer, ToHexString,
and ToDecimalString operators where the input operand could
be inadvertently deleted if no conversion was necessary
(e.g., if the input to ToInteger was an Integer object.)
Fixed a problem with the ToDecimalString and ToHexString
where an incorrect exception code was returned if the
resulting string would be > 200 chars. AE_STRING_LIMIT is
now returned.
Fixed a problem with the Concatenate operator where AE_OK
was always returned, even if the operation failed.
Fixed a problem in oswinxf (used by AcpiExec and iASL)
to allow > 128 semaphores to be allocated.
Signed-off-by: Len Brown <len.brown@intel.com>
|
|
Signed-off-by: Len Brown <len.brown@intel.com>
Added a new OSL interface, acpi_os_get_timer. This
interface implements a 64-bit monotonic timer in 100
nanosecond units.
Implemented support for the ACPI 3.0 Timer operator.
This 64-bit timer utilizes the timer provided by the
acpi_os_get_timer interface.
|
|
Signed-off-by: Len Brown <len.brown@intel.com>
Implemented support for implicit object conversion in
the non-numeric logical operators (LEqual, LGreater,
LGreaterEqual, LLess, LLessEqual, and LNotEqual.) Any
combination of Integers/Strings/Buffers may now be used;
the second operand is implicitly converted on the fly to
match the type of the first operand. For example:
LEqual (Source1, Source2)
Source1 and Source2 must each evaluate to an integer, a
string, or a buffer. The data type of Source1 dictates the
required type of Source2. Source2 is implicitly converted
if necessary to match the type of Source1.
Updated and corrected the behavior of the string
conversion support. The rules concerning conversion of
buffers to strings (according to the ACPI specification)
are as follows:
ToDecimalString - explicit byte-wise conversion of buffer
to string of decimal values (0-255) separated by commas.
ToHexString - explicit byte-wise conversion of buffer to
string of hex values (0-FF) separated by commas.
ToString - explicit byte-wise conversion of buffer to
string. Byte-by-byte copy with no transform except NULL
terminated. Any other implicit buffer-to-string conversion
byte-wise conversion of buffer to string of hex values
(0-FF) separated by spaces.
Fixed a problem in acpi_ns_get_pathname_length where the
returned length was one byte too short in the case of a
node in the root scope. This could cause a fault during
debug output.
|
|
Fixed a problem where errors occurring during the parse phase of control
method execution did not abort cleanly. For example, objects created
and installed in the namespace were not deleted. This caused all
subsequent invocations of the method to return the AE_ALREADY_EXISTS
exception.
Implemented a mechanism to force a control method to "Serialized"
execution if the method attempts to create namespace objects.
(The root of the AE_ALREADY_EXISTS problem.)
Implemented support for the predefined _OSI "internal" control method.
Initial supported strings are "Linux", "Windows 2000", "Windows 2001",
and "Windows 2001.1", and can be easily upgraded for new strings as
necessary. This feature allows Linux to execute
the fully tested, "Windows" code path through the ASL code
Global Lock Support: Now allows multiple acquires and releases with any
internal thread. Removed concept of "owning thread" for this special
mutex.
Fixed two functions that were inappropriately declaring large objects on
the CPU stack: ps_parse_loop() and ns_evaluate_relative().
Reduces the stack usage during method execution considerably.
Fixed a problem in the ACPI 2.0 FACS descriptor (actbl2.h) where the
S4Bios_f field was incorrectly defined as UINT32 instead of UINT32_BIT.
Fixed a problem where acpi_ev_gpe_detect() would fault
if there were no GPEs defined on the machine.
Implemented two runtime options: One to force all control method
execution to "Serialized" to mimic Windows behavior, another to disable
_OSI support if it causes problems on a given machine.
|
|
The purpose of this release is primarily to update the copyright years
in each module, thus causing a huge number of diffs. There are a few
small functional changes, however.
Improved error messages when there is a problem finding one or more of
the required base ACPI tables
Reintroduced the definition of APIC_HEADER in actbl.h
Changed definition of MADT_ADDRESS_OVERRIDE to 64 bits (actbl.h)
Removed extraneous reference to NewObj in dsmthdat.c
|
|
|
|
|
|
|