9690 Commits

Author SHA1 Message Date
Robert Moore
0c7950d576 iASL: Dump RSDT to file for -g option.
Now dumps the RSDT as well as the FADT and DSDT.
2009-01-20 15:13:36 -08:00
Robert Moore
382b7a021d iASL: Split windows table access to new file (-g).
Split the acpi table access (in registry) to a new file.
Prepares for integrating acpidump utility into acpica.
2009-01-20 15:12:24 -08:00
Robert Moore
416eb5461f Update all copyrights and signons to 2009.
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.
2009-01-08 13:17:27 -08:00
Robert Moore
bddda3d5aa Disassembler: Update handling of FADT flags.
1) Decode all Boot Architecture flags.
2) Decode all flags, regardless of the FADT version. Previously,
only those flags that were actually valid for the FADT version
were displayed. This seemed to omit some information.
2009-01-08 12:56:02 -08:00
Robert Moore
dc767b2527 Update FADT flag definitions.
Add new flags in the Boot Architecture flags field. Update comments
for all FADT flags. Add FADT version when each flag was defined.
2009-01-08 12:53:55 -08:00
Jürg Billeter
81d0f24355 iASL: Fix build error under bison-2.4
Adds the missing type specifiers to fix build with bison 2.4.1
ACPICA BZ 744, Jürg Billeter
2008-12-22 11:28:45 +08:00
Robert Moore
409f5b644f Add override for dynamic tables.
Add a call to AcpiOsTableOverride during the installation of
a dynamic table (loaded via the Load or LoadTable AML operators).
2008-12-11 12:58:42 -08:00
Robert Moore
05224d2cf5 Remove extraneous parameter in table manager.
Removed the Flags parameter from several internal functions
since it was not being used.
2008-12-09 10:02:20 -08:00
Robert Moore
2d8f95c694 Allow OS override of all ACPI tables.
Previously, the table override mechanism was implemented for the
DSDT only. Now, any table in the RSDT/XSDT can be replaced by the
host OS. (including the DSDT).
2008-12-09 09:37:48 -08:00
Robert Moore
7d19af2188 Add error check to debug object dump routine.
Add check for invalid handle in NsDumpOneObject.
2008-12-04 12:39:41 -08:00
Robert Moore
1310e25615 Update version to 20081204.
Update version to 20081204.
2008-12-04 09:19:23 -08:00
Robert Moore
462b1db3db FADT: Update error msgs for consistency.
Update all messages so they look consistent.
2008-12-03 14:59:22 -08:00
Robert Moore
abcfc51e45 FADT: set UseDefaultRegisterWidths to TRUE by default.
This returns the FADT support to the original behavior, which is to
use default register widths. However, now check each register
definition and report a warning if it differs from the default.
This is a first step to moving away from the default widths, rather
than outright believing the widths in all FADTs for all machines,
considered rather dangerous until more data is obtained.
2008-12-03 09:41:09 -08:00
Robert Moore
1b61f8b176 Fix interface to AcpiGetGpeDevice.
Incorrectly defined with an extra indirection *
2008-12-03 09:38:53 -08:00
Robert Moore
09058e5daf FADT parsing changes and fixes.
1) Update the register lengths for the PM1 event blocks. The length
must be divided by two in order to use these to access the status
registers.
2) Add run-time option to use default register lengths to override a
faulty FADT.
3) Add warning message if any of the X64 address structures contain a
length that does not match the legacy length earlier in the FADT.
4) Move all FADT warning messages into the ValidateFadt function.
2008-11-21 13:45:49 -08:00
Robert Moore
c9ca3999c4 Fixed two type mismatches.
Fixed type mismatches in dmwalk and evxfevnt for recent changes.
2008-11-21 07:57:17 -08:00
Robert Moore
1d4bf458a8 iASL: Enhancements and fixes for -e option.
1) Clear external list generated by Scope in external tables
2) Set node owner id only if it satisfies all the following conditions
   a. Not a predefined node, _SB_ etc.
   b. Not the root node
   c. Not a node created by Scope
3) Precise object types for External statements, for example
   -    External (\_PR_.CPU0, DeviceObj)
   +    External (\_PR_.CPU0, ProcessorObj)
2008-11-20 19:31:56 -07:00
Robert Moore
3409e43b63 New: AcpiReset interface - write to reset register.
Uses the FADT-defined reset register and reset value. Checks the
FADT flags for the reset register supported bit. Supports reset
register in memory or I/O space, but not in PCI config space since
the host has the information to do it.
2008-11-20 19:31:56 -07:00
Robert Moore
c1fbdac9fc Update prototypes for new public interfaces.
Update acpixf.h. Remove use of name "register" in two prototypes.
2008-11-20 19:31:55 -07:00
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
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
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
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