10288 Commits

Author SHA1 Message Date
Robert Moore
4fa895bc2f Move all public H/W interfaces to new hwxface.c
Move public interfaces from hwregs.c to new file, hwxface.c -
similar to the structure of the other ACPICA components.
2008-11-20 19:31:55 -07:00
Robert Moore
8ce404a262 New: AcpiRead and AcpiWrite public interfaces.
Changed the HwLowLevelRead and HwLowLevelWrite functions to the public
AcpiRead and AcpiWrite to allow direct access to ACPI registers.
Removed the "width" parameter since the width can be obtained from the
input GAS structure. Updated the FADT initialization to setup the GAS
structures with the proper widths. Some widths are still hardcoded
because many FADTs have incorrect register lengths.
2008-11-20 19:31:55 -07:00
Robert Moore
73b9a81c06 New: Public GPE group enable/disable interfaces.
Added AcpiDisableAllGpes and AcpeEnableAllRuntimeGpes for
public use.
2008-11-18 14:57:10 -08:00
Robert Moore
320b444e76 New: AcpiGetGpeDevice interface.
This function maps an input GPE index to a GPE block device. Also
Added AcpiCurrentGpeCount to track the current number of GPEs that
are being managed by the ACPICA core (both FADT-based GPEs and the GPEs
contained in GPE block devices.)
2008-11-18 14:02:50 -08:00
Robert Moore
4d33d4e392 Fix reference count issue in NsRepairObject.
Fixes a problem where object reference counts were not properly
updated if the original object was an element of a Package object.
Lin Ming.
2008-11-13 13:42:22 -08:00
Robert Moore
6c9b3b5723 Cleanup platform header files.
Cleanup acenv.h; remove unused defines from all platform headers.
added vxworks to acenv.h
2008-11-13 13:35:53 -08:00
Robert Moore
05046496ee GetExternalPathname is no longer debug-only.
Function is used by the predefined validation module.
2008-11-12 15:04:06 -08:00
Robert Moore
186aaca9a7 Add semaphores to Linux/Unix application OSL.
Use libsemaphore and libpthread to implement OSL synchronization
interfaces for Linux/Unix.
2008-11-12 13:03:01 -08:00
Robert Moore
e747da4ccd iASL: Remove 'named object in loop' error.
Previously did not allow the creation of named objects within a while
loop. However, it is not possible to analyze the loop to determine if
a named object would actually be created twice. Also, compiling
disassembled code with switch statements would raise this error even
though the compiler-emitted while(one) loop only executed once (there
is a break statement at the bottom of the loop. Chalk this one up to
'a nice try'.
2008-11-12 12:40:17 -08:00
Robert Moore
3ff3d1d615 Disassembler: Support for FADT version 2 (MS extension).
Adds support for the the version 2 FADT, which is an MS extension
that was added between ACPI 1.0B and ACPI 2.0.
2008-11-12 09:55:05 -08:00
Robert Moore
c53bf5ab21 Update aclinux.h for ACPI_MUTEX_TYPE.
Only __KERNEL__ case will use actual mutexes. Linux apps will
use the semaphore interfaces.
2008-11-12 09:53:35 -08:00
Robert Moore
f0190b5bdd Add ACPI_MUTEX_TYPE configuration option.
Used to specify whether the OSL mutex interfaces should be used,
or binary semaphores instead.
2008-11-11 15:23:48 -08:00
Robert Moore
560ef13921 Disassembler: Fixes for various ACPI data tables.
Eliminate extraneous "zero length subtable" messages.
Fix subtable output for ERST, MCFG, EINJ tables.
Implement all subtables for HEST.
2008-11-11 14:04:37 -08:00
Robert Moore
705cbfffe2 Update acfreebsd.h header.
Add define for ACPI_THREAD_ID.
2008-11-07 13:49:22 -08:00
Robert Moore
9f920c6306 Scripts: update build.sh for new file.
Add source/tools/examples directory.
2008-11-07 13:47:12 -08:00
Robert Moore
fb210c4daa Update version to 20081031.
Update version to 20081031.
ACPI_CA_VERSION has been moved to acpixf.h so that it is publically
available.
2008-10-31 08:02:10 -07:00
Robert Moore
ab4b2e1768 Logfile: changes for version 20081031.
updated changes.txt.
2008-10-31 08:01:11 -07:00
Robert Moore
2c374de91d Windows binaries: update for version 20081031.
Update binaries.
2008-10-31 07:59:00 -07:00
Robert Moore
5bc05cb1b3 Enhance implicit return mechanism.
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.
2008-10-30 10:26:41 -07:00
Robert Moore
299f92c264 iASL: Fix compile warning.
Update for external method changes, ACPICA BZ 740 Lin Ming.
2008-10-30 10:17:42 -07:00
Robert Moore
815c680951 Consolidate method arg count validation code.
Merge the code that validates control method argument counts into
the predefined validation module. Eliminates possible multiple
warnings for incorrect counts.
2008-10-30 09:55:05 -07:00
Robert Moore
a0cc21b568 Header restructuring, part two.
Made some globals "public" for ease-of-use, and to preserve
legacy code that uses them.
2008-10-29 14:01:32 -07:00
Robert Moore
12be0af9ef Allow _WAK method to return an Integer.
This can happen if the _WAK method returns nothing (as per ACPI 1.0)
but does return an integer if the implicit return mechanism is enabled.
This is the only method that has this problem, since it is also
defined to return a package of two integers (ACPI 1.0b+). In all
other cases, if a method returns an object when one was not expected,
no warning is issued.
2008-10-29 13:36:59 -07:00
Robert Moore
68f8e613f1 iASL: Additional changes for external methods.
Fixes issues with the methods that are permanently defined
in the namespace (such as _OSI, etc.) ACPICA BZ 740 Lin Ming.
2008-10-29 13:34:15 -07:00
Robert Moore
c2794d1983 Add Buffer->String conversion for predefined methods.
For predefined methods (such as _BIF), add automatic conversion for
objects that are required to be a String, but a Buffer was found
instead. This can happen when reading string battery data from
an operation region, because it used to be difficult to convert
the data from buffer to string from within the ASL. Linux BZ 11822.
2008-10-29 13:26:15 -07:00
Robert Moore
3f686d7e38 Allow multiple backslash prefix in namepaths.
In a fully qualified namepath, allow multiple backslash prefixes.
This can happen because of the use of a double-backslash in
strings (since backslash is the escape character) causing confusion.
ACPICA BZ 739 Lin Ming.
2008-10-29 10:20:06 -07:00
Robert Moore
7723fbcee1 New: ACPICA example code.
Includes code for ACPICA initialization, handler installation,
calling a control method.
2008-10-28 14:41:48 -07:00
Robert Moore
56b2001556 Move some additional symbols to public headers.
Moved some commonly-used defines and global variables from the
private headers to the public headers. Split the resource descriptor
structs out of actypes.h to a new file, acrestyp.h
2008-10-24 14:18:37 -07:00
Robert Moore
3c27b8f4e0 iASL: Fix to allow aliases within ASL namepaths.
Fixes a problem 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 from the Alias operator itself.
ACPICA BZ 738.
2008-10-24 13:33:44 -07:00
Robert Moore
2f705a1b06 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 the 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 DSDT.
Lin Ming.

Example: To disassemble an SSDT with calls to DSDT:

    iasl -d -e dsdt.aml ssdt1.aml
2008-10-23 15:04:38 -07:00
Robert Moore
010cfd7683 Remove references to obsolete ACPI_DUMP_APP.
This define is no longer used.
2008-10-23 10:35:34 -07:00
Robert Moore
28da268b28 Add support to externally execute _OSI method.
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.
2008-10-23 10:28:17 -07:00
Robert Moore
f5e2380443 Update Windows project files.
New file, accommon.h, and added the new Examples project.
updated .gitignore
2008-10-22 14:48:28 -07:00
Robert Moore
085ae7362c Restructure includes into public/private.
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.
2008-10-22 14:31:40 -07:00
Robert Moore
5d21155b98 Reformat comments, no functional changes.
Reformat comments to use fewer lines.
2008-10-17 10:00:52 -07:00
Robert Moore
77f5bcb46f AcpiExec: Add example ACPICA initialization code.
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.
2008-10-16 15:18:36 -07:00
Robert Moore
8b97ef8273 Add global pointer for FACS table to simplify FACS access.
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).
2008-10-16 15:03:46 -07:00
Robert Moore
7f7dc8c45b Emit warning if two FACS or DSDT tables found in the FADT.
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.)
2008-10-16 09:07:33 -07:00
Robert Moore
a00834d1f7 Fix namestring for the SystemCMOS address space.
This fixes the name of this address space, changing it from the
incorrect CMOS to the correct SystemCMOS.
2008-10-15 11:02:35 -07:00
Robert Moore
52192200fe Update debug output for IndexField I/O.
Split the "data register I/O" with more informative read and write
messages.
2008-10-14 14:37:01 -07:00
Robert Moore
dc3e72f35a Add a mechanism to escape infinite AML While() loops.
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.
2008-10-09 14:37:11 -07:00
Robert Moore
d2a82ede58 Optimize execution of AML While loops.
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%.
2008-10-09 10:11:53 -07:00
Robert Moore
2107ff8b75 Fix possible memory leak on error in parser.
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.
2008-10-07 14:56:34 -07:00
Robert Moore
b43930c742 Update FACS waking vector interfaces.
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.
2008-10-03 13:58:08 -07:00
Robert Moore
d0eacedb10 Fix several warnings under gcc 4.0 compiler.
New compiler is pickier than older versions.
Joerg Sonnenberger. From ACPICA BZ 732.
2008-10-02 13:02:12 -07:00
Robert Moore
0ff41f9bad Update version to 20080926.
Update version to 20080926.
2008-09-26 09:23:56 -07:00
Robert Moore
ca10c01a78 Logfile: changes for version 20080926.
updated changes.txt.
2008-09-26 09:22:13 -07:00
Robert Moore
fb3f1bdda3 Windows binaries: update for version 20080926.
Updated binaries.
2008-09-26 09:20:52 -07:00
Robert Moore
ca6111179b Test suite: update for implicit return changes.
Update for recent changes to the implicit return mechanism.
Resolved predicate values can now be returned implicitly,
for MS compatibility.
2008-09-26 08:45:36 -07:00
Robert Moore
0b09da4ebd Remove obsolete version number in module headers.
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.
2008-09-25 12:56:30 -07:00