Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 31 Oct 2008 09:39:16 -0700
From:      "Moore, Robert" <robert.moore@intel.com>
To:        "Moore, Robert" <robert.moore@intel.com>
Subject:   ACPICA version 20081031 released
Message-ID:  <4911F71203A09E4D9981D27F9D8308580AEC1809@orsmsx503.amr.corp.intel.com>

next in thread | raw e-mail | index | archive | help
31 October 2008. Summary of changes for version 20081031:

This release is available at www.acpica.org/downloads.

1) ACPI CA Core Subsystem:

Restructured the ACPICA header files into public/private. acpi.h now includ=
es 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 us=
ed to include the commonly used private headers for acpica code generation.=
 Future plans include moving all private headers to a new subdirectory.

Implemented an automatic Buffer->String return value conversion for predefi=
ned ACPI methods. For these methods (such as _BIF), added automatic convers=
ion for return objects that are required to be a String, but a Buffer was f=
ound instead. This can happen when reading string battery data from an oper=
ation region, because it used to be difficult to convert the data from buff=
er to string from within the ASL. Ensures that the host OS is provided with=
 a valid null-terminated string. Linux BZ 11822.

Updated the FACS waking vector interfaces. Split AcpiSetFirmwareWakingVecto=
r 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 ea=
ch vector (real vs. protected mode, etc.) and the interface itself should n=
ot be deciding which vector to use. Also, eliminated the GetFirmwareWakingV=
ector interface, as it served no purpose (only the firmware reads the vecto=
r, OS only writes the vector.) ACPICA BZ 731.

Implemented a mechanism to escape infinite AML While() loops. Added 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 wit=
hin a while loop and the loop does not implement a timeout. The maximum loo=
p count is configurable. A new exception code is returned when a loop is br=
oken, AE_AML_INFINITE_LOOP. Alexey Starikovskiy, Bob Moore.

Optimized the execution of AML While loops. Previously, a control state obj=
ect was allocated and freed for each execution of the loop. The optimizatio=
n is to simply reuse the control state for each iteration. This speeds up t=
he raw loop execution time by about 5%.

Enhanced the implicit return mechanism. For Windows compatibility, return a=
n implicit integer of value zero for methods that contain no executable cod=
e. Such methods are seen in the field as stubs (presumably), and can cause =
drivers to fail if they expect a return value. Lin Ming.

Allow multiple backslashes as root prefixes in namepaths. In a fully qualif=
ied namepath, allow multiple backslash prefixes. This can happen (and is se=
en in the field) because of the use of a double-backslash in strings (since=
 backslash is the escape character) causing confusion. ACPICA BZ 739 Lin Mi=
ng.

Emit a warning if two different FACS or DSDT tables are discovered in the F=
ADT. Checks if there are two valid but different addresses for the FACS and=
 DSDT within the FADT (mismatch between the 32-bit and 64-bit fields.)

Consolidated the method argument count validation code. Merged the code tha=
t validates control method argument counts into the predefined validation m=
odule. Eliminates possible multiple warnings for incorrect argument counts.

Implemented ACPICA example code. Includes code for ACPICA initialization, h=
andler installation, and calling a control method. Available at source/tool=
s/examples.

Added a global pointer for FACS table to simplify internal FACS access. Use=
 the global pointer instead of using AcpiGetTableByIndex for each FACS acce=
ss. This simplifies the code for the Global Lock and the Firmware Waking Ve=
ctor(s).

Example Code and Data Size: These are the sizes for the OS-independent acpi=
ca.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The debug =
version of the code includes the debug output trace mechanism and has a muc=
h larger code and data size.

  Previous Release:
    Non-Debug Version:  81.2K Code, 17.0K Data,  98.2K Total
    Debug Version:     155.8K Code, 49.1K Data, 204.9K Total
  Current Release:
    Non-Debug Version:  81.7K Code, 17.3K Data,  99.0K Total
    Debug Version:     156.4K Code, 49.4K Data, 205.8K Total

2) iASL Compiler/Disassembler and Tools:

iASL: Improved disassembly of external method calls. Added the -e option to=
 allow the inclusion of additional ACPI tables to help with the disassembly=
 of method invocations and the generation of external declarations during t=
he disassembly. Certain external method invocations cannot be disassembled =
properly without the actual declaration of the method. Use the -e option to=
 include the table where the external method(s) are actually declared. Most=
 useful for disassembling SSDTs that make method calls back to the master D=
SDT. Lin Ming. Example: To disassemble an SSDT with calls to DSDT:  iasl -d=
 -e dsdt.aml ssdt1.aml

iASL: Fix to allow references to aliases within ASL namepaths. Fixes a prob=
lem where the use of an alias within a namepath would result in a not found=
 error or cause the compiler to fault. Also now allows forward references f=
rom the Alias operator itself. ACPICA BZ 738.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4911F71203A09E4D9981D27F9D8308580AEC1809>