Commit Graph

178 Commits

Author SHA1 Message Date
Robert Moore
c995fed15a Object repair code: Support to add Package wrappers.
Repair a common problem with objects that are defined to
return a variable-length Package of sub-objects. If there is
only one sub-object, some BIOS code mistakenly simply declares
the single object instead of a Package with one sub-object.
This function attempts to repair this error by wrapping a
Package object around the original object, creating the
correct and expected Package with one sub-object.
2012-03-16 09:37:52 -07:00
Robert Moore
7db43032db Update ACPICA copyrights to 2012.
Standard ACPICA source modules only.
2012-01-03 14:08:42 -08:00
Robert Moore
d41344f1ec Update all ACPICA copyrights and signons to 2011.
Standard ACPICA source modules only.
2011-01-03 14:02:13 -08:00
Robert Moore
e833f7b424 iASL/Disassembler: Write ACPI errors to stderr instead of output file.
This keeps the output files clean of random error messages that may
originate from within the namespace/interpreter code.

Used this opportunity to merge all ACPI:-style messages into a single
new module, utxferror.c. ACPICA bugzilla 866.
2010-09-10 12:48:36 -07:00
Robert Moore
de716aac23 Performance enhancement for namespace search and access.
This change enhances the performance of namespace searches and walks
by adding a backpointer to the parent in each namespace node. On large
namespaces, this change can improve overall ACPI performance by up to 9X.
Adding a pointer to each namespace node increases the overall size of
the internal namespace by about 5%, since each namespace entry usually
consists of both a namespace node and an ACPI operand object.
Alexey Starikovskiy.
2010-05-25 12:38:08 -07:00
Robert Moore
2cd7f64bf8 Predefined name repair: fix NULL package elements.
For the predefined methods that return fixed-length packages (or subpackages),
attempt repair for a NULL element. Create an Integer of value 0, a NULL
String, or a zero-length buffer as appropriate. ACPICA BZ 818.
Lin Ming, Bob Moore.
2010-01-15 12:50:21 -08:00
Robert Moore
c7dd20b0d7 Update all ACPICA copyrights and signons to 2010.
Add 2010 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.
2010-01-08 08:49:11 -08:00
Robert Moore
cf2bc7db05 Predefined name repair: automatically remove null package elements.
This change will automatically remove embedded and trailing NULL package
elements from returned package objects that are defined to containe a
variable number of sub-packages. The driver is then presented with
a package with no null elements to deal with. ACPICA BZ 819.
2009-12-10 14:35:48 -08:00
Robert Moore
e5f4b2f88d Update internal namespace node/handle interfaces.
This change deletes the unnecessary NsConvertEntryToHandle interface
and renames the NsMapHandleToNode interface to NsValidateHandle.
ACPICA BZ 798.
2009-11-25 09:23:21 -08:00
Robert Moore
829c0044e5 Add repair for predefined methods that must return sorted lists.
This change will repair (by sorting) packages returned by _ALR,
_PSS, and _TSS. Drivers can now assume that the packages are
correctly sorted. Adds one new file, namespace/nsrepair2.c
ACPICA BZ 784. Lin Ming, Bob Moore.
2009-11-04 13:57:17 -08:00
Robert Moore
581af16a2a Add post-order callback to AcpiWalkNamespace.
The existing interface only has a pre-order callback. This change
adds an additional parameter for a post-order callback which will
be more useful for bus scans. ACPICA BZ 779. Lin Ming.
2009-10-28 12:11:05 -07:00
Robert Moore
80d7951177 Add support for module-level executable AML code.
Add limited support for executable AML code that exists outside of
any control method. This type of code has been illegal since ACPI 2.0.
The code must exist in an If/Else/While block. All AML tables are
supported, including tables that are dynamically loaded.
ACPICA BZ 762. Lin Ming.
2009-07-23 09:53:29 -07:00
Robert Moore
ede1ca0212 Add repair for predefined methods that return nested packages.
Fixes a problem where a predefined method is defined to return a
variable-length Package of sub-packages. If the length is one, the
BIOS code occasionally creates a simple single package with no
sub-packages. This code attempts to fix the problem by wrapping
a new package object around the existing package. ACPICA BZ 790.
2009-06-26 10:54:44 -07:00
Robert Moore
4811ab66f4 Move predefined repair code to new file, no functional change.
New file is nsrepair.c. This is in preparation for additional
errror correcting code.
2009-06-26 09:36:18 -07:00
Robert Moore
ace198676c Fix several AcpiAttachData problems.
Handler was never invoked. Now invoked if/when host node is deleted.
Data object was not automatically deleted when host node was deleted.
Interface to handler had an unused parameter, removed it.
ACPICA BZ 778.
2009-06-19 13:23:34 -07:00
Robert Moore
200372599b Simplify and optimize NsGetNextNode function.
Reduced parameter count and reduced code for this frequently used
function.
2009-05-11 13:13:54 -07: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
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
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
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
Robert Moore
1ff11b4819 New: Validation for predefined ACPI methods/objects.
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.
2008-09-24 13:34:08 -07:00
Robert Moore
0537265339 Additional error checking for pathname utilities.
Add error check after all calls to AcpiNsGetPathnameLength.
Add status return from AcpiNsBuildExternalPath and check after all calls.
Add parameter validation to AcpiUtInitializeBuffer.

Reported by and initial patch by Ingo Molnar.
2008-07-25 12:49:40 -07:00
Robert Moore
8c47917fd2 Add const qualifier for appropriate string constants.
Mostly MODULE_NAME and printf format strings.
2008-05-09 13:08:54 -07:00
Robert Moore
10e9550130 Eliminate ACPI_NATIVE_UINT type.
No longer needed; replaced mostly with UINT32, but also ACPI_SIZE where a
type that changes 32/64 bit on 32/64-bit platforms is required.
2008-05-08 13:22:20 -07:00
rmoore1
a417391ec6 Update copyright to 2008.
Added 2008 copyright to all module headers and signons. This affects virtually every file in the ACPICA core subsystem, iASL compiler, and the utilities.
2008-01-09 21:27:10 +00:00
rmoore1
f28ead97ac Fix for Load/LoadTable to specify load location.
Fixed a problem with the Load and LoadTable operators where the table location within the namespace was ignored. Instead, the table was always loaded into the root or current scope.
2007-10-17 21:59:24 +00:00
rmoore1
6e075f8871 Update copyright to 2007.
Added 2007 copyright to all module headers and signons. This affects virtually every file in the ACPICA core subsystem, iASL compiler, and the utilities.
2007-01-09 20:01:19 +00:00
rmoore1
b4ecbd24f7 Fix race condition with AcpiWalkNamespace.
Fixed a problem with a possible race condition between threads executing AcpiWalkNamespace and the AML interpreter. This condition was removed by modifying AcpiWalkNamespace to (by default) ignore all temporary namespace entries created during any concurrent control method execution
2006-10-06 22:32:10 +00:00
rmoore1
62300dae19 The Table Manager component has been completely redesigned and reimplemented. The new design is much simpler, and reduces the overall code and data size of the kernel-resident ACPICA by approximately 5%. Also, it is now possible to obtain the ACPI tables very early during kernel initialization, even before dynamic memory management is initialized. 2006-08-23 19:55:36 +00:00
rmoore1
330392c97a Function rename 2006-05-24 20:52:36 +00:00
rmoore1
8f99aa4375 Additional restructuring and cleanup of namespace evaluation functions 2006-05-18 17:11:31 +00:00
rmoore1
8c8738f9a1 Major restructuring of internal interfaces to evaluate objects to reduce code size and stack use 2006-05-17 21:30:23 +00:00
rmoore1
6f70255c7a Support for disassembler external generation 2006-05-11 20:26:22 +00:00
rmoore1
a95edf9835 Support to add resource descriptor names and create symbolic refs to resources 2006-03-10 17:48:32 +00:00
rmoore1
1c0379cb57 Removed ComponentId from REPORT* interfaces; not used 2006-01-13 20:50:57 +00:00
rmoore1
9efdd774a4 Add 2006 copyright 2006-01-09 17:47:27 +00:00
rmoore1
2baf352224 Changes to support new OwnerId mechanism, improved error handling during parsing, reduce stack use 2005-07-19 22:27:30 +00:00
aystarik
2f119256f4 Owner ID redesign and cleanup
date	2005.06.30.21.38.00;	author rmoore1;	state Exp;
2005-07-10 20:25:07 +00:00
aystarik
e6244b6461 Moved prototypes for "static" functions from headers into the defining
C module.


date	2005.03.31.23.13.00;	author rmoore1;	state Exp;
2005-06-29 19:52:17 +00:00
aystarik
7cdc502f89 cleanup, comment cleanup
date	2005.03.25.21.26.00;	author rmoore1;	state Exp;
2005-06-29 19:52:16 +00:00
aystarik
6329a736eb Update for static functions, cleanup
date	2005.03.21.22.05.00;	author rmoore1;	state Exp;
2005-06-29 19:52:15 +00:00
aystarik
0a60615595 Interface changes
date	2004.04.22.19.24.00;	author rmoore1;	state Exp;
2005-06-29 19:52:11 +00:00
aystarik
5aaabe69fd added a proto
date	2003.05.07.21.10.00;	author rmoore1;	state Exp;
2005-06-29 19:52:08 +00:00
aystarik
cee30cb443 New function
date	2002.10.22.17.41.00;	author rmoore1;	state Exp;
2005-06-29 19:52:01 +00:00
aystarik
64f6d3df5d Removed obsolete function
date	2002.10.21.21.46.00;	author rmoore1;	state Exp;
2005-06-29 19:52:00 +00:00
aystarik
af18417959 Standalone disassembler now uses namespace mgr for symbol table
date	2002.07.23.20.30.00;	author rmoore1;	state Exp;
2005-06-29 19:51:58 +00:00
aystarik
756020a286 interface changes
date	2002.04.08.22.07.00;	author rmoore1;	state Exp;
2005-06-29 19:51:56 +00:00
aystarik
0d21e370e8 Support for creation of user (return) buffers
date	2002.01.10.22.17.00;	author rmoore1;	state Exp;
2005-06-29 19:51:54 +00:00
aystarik
71c49f61f2 Support for String operands to DerefOf. Added param and renamed
GetNode to GetNodeByPath.


date	2001.12.20.16.43.00;	author rmoore1;	state Exp;
2005-06-29 19:51:52 +00:00
aystarik
370eda4c52 Removed obsolete ACPI_OBJECT_TYPE8 typedef and changed all references
to ACPI_OBJECT_TYPE


date	2001.12.12.20.41.00;	author rmoore1;	state Exp;
2005-06-29 19:51:51 +00:00