2791 Commits

Author SHA1 Message Date
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
232169228a Remove unused ACPI register bit definition.
Removed the ACPI_BITREG_WAKE_ENABLE definition and entry in the global
register table. This bit does not exist and is unused. Lin Ming, Bob Moore
BZ 442.
2008-09-10 15:28:40 -07:00
Robert Moore
3e5bc07346 Update version to 20080829.
Update version to 20080829.
2008-08-29 12:06:44 -07:00
Robert Moore
fd290b3c3c Cleanup for internal Reference Object.
Fix some sloppiness in the Reference object. No longer use AML opcodes to
differentiate the types, introduce new reference Class. Cleanup the debug
output code.
2008-08-27 10:11:30 -07:00
Robert Moore
ea44a7365e Update for Reference ACPI_OPERAND_OBJECT.
1) Add new field for use by DdbHandle (Value)
2) Use ACPI_CAST_INDIRECT_PTR to eliminate strict type warnings
3) Cleanup debug output

Lin Ming, Bob Moore
2008-08-25 15:16:44 -07:00
Robert Moore
d9c19f3cb1 Remove obsolete exception codes.
Removed 10 exception codes (and corresponding name strings) that were
obsolete for various reasons.
2008-08-21 20:18:03 -07:00
Robert Moore
7c40bc80cb Add OS/2 header file support.
New OS-specific file, acos2.h, and modifications to acenv.h to
automatically include the new file when compiling under OS/2.
2008-08-01 14:42:09 -07:00
Robert Moore
f3f21cd83e Add namespace node to operand object union.
Add ACPI_NAMESPACE_NODE to the ACPI_OPERAND_OBJECT in order to simplify
code that accepts both of these objects. A common type field is used
to differentiate them.
2008-08-01 13:51:24 -07:00
Robert Moore
f9abfccc9d Remove obsolete debug levels (WARN and ERROR).
Removed ACPI_DB_WARN and ACPI_DB_ERROR. These debug levels were made
obsolete by the ACPI_WARNING and ACPI_ERROR/ACPI_EXCEPTION interfaces.
Also added ACPI_DB_EVENTS to correspond with the existing
ACPI_LV_EVENTS.
2008-08-01 10:19:42 -07:00
Robert Moore
6030ce56ae Update version to 20080729.
Update acconfig.h
2008-07-30 19:40:40 -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
5d63569294 x2APIC support: changes for MADT and SRAT ACPI tables.
Support for the x2APIC. There are 2 new subtables for the MADT and one new
subtable for the SRAT. Includes disassembler and AcpiSrc support. Data from
the Intel 64 Architecture x2APIC Specification, June 2008.
2008-07-24 12:57:13 -07:00
Robert Moore
5a0e8ab933 Add function to decode reference obj types to strings.
Created for improved error messages.
2008-07-22 10:53:01 -07:00
Robert Moore
bf3df5302d Return status from global init function.
Return status from AcpiUtGlobalInitialize. This is used by both
the kernel subsystem and the utilities such as iASL compiler.
The function could possibly fail when the caches are initialized.
Yang Yi.
2008-07-09 13:38:52 -07:00
Robert Moore
5589bb45bc Update version to 20080701.
Update version to 20080701.
2008-07-01 09:35:32 -07:00
Robert Moore
b87b30db63 Fix wrong resource descriptor length for 64-bit build.
The "minimal" descriptors such as EndTag are calculated as 12 bytes
long, but the actual length in the internal descriptor is 16 because
of the round-up to 8 on 64-bit build. BZ 728
2008-06-26 15:42:22 -07:00
Robert Moore
345f0f1b8e Return method arg count from AcpiGetObjectInfo.
Also update the debugger so that the correct number of arguments
is passed to the method. Prevents a warning message from the
debugger.
2008-06-26 15:40:24 -07:00
Robert Moore
99bf0793b2 Fix order of names in global mutex table (debug only).
Fix the ordering of the ASCII names in the table to match the actual
mutex IDs. Used by AcpiUtGetMutexName, a function used for debug only.
Vegard Nossum. BZ 726
2008-06-26 13:21:25 -07:00
Robert Moore
795dbca188 Update FreeBSD-specific header.
Changes received from FreeBSD team.
2008-06-17 15:37:41 -07:00
Robert Moore
9d9acfac3c Implement careful GPE disable, only change one enable bit.
We now perform a read-change-write of the enable register instead of
simply writing out the cached enable mask. This will prevent inadvertent
enabling of GPEs if a rogue GPE is received during initialization
(before GPE handlers are installed.)
2008-06-17 15:13:13 -07:00
Robert Moore
913669b792 AcpiExec: Add support for dynamic table load/unload.
Now calls _CFG method to pass address of table to the AML. Added option
to disable opregion simulation to allow creation of opregion with real
address that was passed to _CFG. All of this allows testing of the Load
and Unload operators from AcpiExec.
2008-06-13 13:46:31 -07:00
Robert Moore
123624b1af Cleanup macro definition file.
Removed unused macros. Ensure that multiple parameters always have a space
after a comma. Cleanup some comments.
2008-06-10 14:24:15 -07:00
Robert Moore
1326f571ce Update version to 20080609.
Update version to 20080609.
2008-06-09 15:26:14 -07:00
Robert Moore
60c301a625 Simplify ACPI hardware interfaces.
Remove locking parameter from internal HwRegisterRead and HwRegisterWrite
functions. Add new AcpiGetRegisterUnlocked function.
2008-05-28 09:39:57 -07:00
Robert Moore
b98eacb45a Fix for hang on GPE method invocation.
Fixes problem introduced in 20080514 where the new method argument count
validation mechanism will enter an infinite loop when a GPE method is
dispatched. Problem fixed be removing the obsolete code that passes GPE
block information to the notify handler via the control method parameter
pointer.
2008-05-21 14:10:42 -07:00
Robert Moore
87292344c7 Automated cleanup; no functional changes. 2008-05-21 12:17:51 -07:00
Robert Moore
2918f67328 Cleanup debug operand dump mechanism.
Eliminated unnecessary operands; eliminated use of negative index in loop.
Operands now displayed in correct order, not backwards.
2008-05-21 11:39:06 -07:00
Robert Moore
d6b7ac2fe2 Update disassembler for DMAR table changes.
Now supports the 2007 intel Virtualization Technology for
Directed I/O specification.
2008-05-20 13:28:37 -07:00
Robert Moore
b622e9f4d8 Update DMAR and SRAT table definitions.
Synchronized tables with current specifications.
2008-05-16 10:04:17 -07:00
Robert Moore
d55d5dc9a7 Update version to 20080514 2008-05-14 10:40:18 -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
Robert Moore
990816baed Fix possible negative array index in AcpiUtValidateException.
Added NULL fields to the exception string arrays to eliminate the -1
subtraction on the SubStatus field.
2008-05-07 14:21:14 -07:00
Robert Moore
bb48f23503 Add argument count checking to control method invocation via AcpiEvaluateObject.
Error if too few arguments, warning if too many. This applies only to external
programmatic control method execution, not method-to-method calls within the
AML.
2008-05-07 13:50:13 -07:00
Robert Moore
d64f9dd414 Update tracking macros to reduce code/data size.
Changed ACPI_MODULE_NAME and ACPI_FUNCTION_NAME to use arrays of strings
instead of pointers to static strings. Jan Beulich and Bob Moore.
2008-05-07 13:20:58 -07:00
rmoore1
a206f1664e Cleanup of invalid ACPI name handling and repair.
Implemented a change/cleanup for the handling of invalid ACPI names. Names are now validated and repaired only when 1) entering a new name into the namespace and 2) disassembling a named AML opcode. A warning is only displayed in debug mode or when the interpreter is in "strict" mode, since some working machines do in fact contain invalid ACPI names.
2008-03-26 19:38:15 +00:00
rmoore1
6dc212eb25 Update version to 20080321.
Update version to 20080321.
2008-03-21 18:00:51 +00:00
rmoore1
e669ed0e96 Update for new Notify values.
Implemented several changes for Notify handling: Added support for new Notify values (ACPI 2.0+) and improved the Notify debug output. Notify on PowerResource objects is no longer allowed, as per the ACPI specification. (Bob Moore, Zhang Rui)
2008-03-13 22:46:18 +00:00
rmoore1
c47775c7bc Fix to handle NULL package elements correctly.
Fixed problem where NULL package elements were not returned to the AcpiEvaluateObject interface correctly. Instead of returning a NULL ACPI_OBJECT package element, the element was simply ignored, potentially causing a buffer overflow and/or confusing the caller who expected a fixed number of elements. BZ 10132 (Lin Ming, Bob Moore)
2008-03-12 20:37:26 +00:00
rmoore1
a41245aee8 Update ACPICA version to 20080213.
Update ACPICA version to 20080213.
2008-02-13 18:09:17 +00:00
rmoore1
7fabf2c1a0 Fix for HIDWORD macro.
Fixed a regression introduced in version 20071114. The ACPI_HIDWORD macro was inadvertently changed to return a 16-bit value instead of a 32-bit value, truncating the upper dword of a 64-bit value. This macro is only used to display debug output, so no incorrect calculations were made. Also, reimplemented the macro so that a 64-bit shift is not performed by inefficient compilers.
2008-02-12 21:27:21 +00:00
rmoore1
1378c2d2d8 Fix for resource descriptor optimization issues for _CRS/_SRC.
Fixed a problem where resource descriptor size optimization could cause a problem when a _CRS resource template is passed to a _SRS method. The _SRS resource template must use the same descriptors (with the same size) as returned from _CRS. This change affects the following resource descriptors: IRQ/IRQNoFlags and StartDependendentFn/StartDependentFnNoPri. (BZ 9487)
2008-02-12 21:26:21 +00:00
rmoore1
8b2e508821 Disassembler support for new ACPI tables.
Implemented full disassembler support for the following new ACPI tables: BERT, EINJ, and ERST. Partial disassembler support for the complicated HEST table. These tables support the Windows Hardware Error Architecture (WHEA).
2008-02-12 21:23:36 +00:00
rmoore1
52c83a9378 Fix for ACPI_HIDWORD macro.
Fixed a regression introduced in version 20071114. The ACPI_HIDWORD macro was inadvertently changed to return a 16-bit value instead of a 32-bit value, truncating the upper Dword of a 64-bit value. This macro is only used to display debug output, so no incorrect calculations were made.
2008-02-07 21:37:33 +00:00
rmoore1
1004b05952 Update version to 20080123.
Update version to 20080123.
2008-01-23 22:22:25 +00:00
rmoore1
27acc4211a Bulletproof disassembler for bad ACPI tables.
Fixed a problem with the disassembler where invalid ACPI tables could cause faults or infinite loops.
2008-01-23 22:13:53 +00:00
rmoore1
96af461e5c Include file support for new ACPI tables.
Implemented header file support for new ACPI tables - BERT, ERST, EINJ, HEST, IBFT, UEFI, WDAT. Disassembler support is forthcoming.
2008-01-23 22:11:31 +00: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
775219ccf7 Update version to 20071219.
Update version to 20071219.
2007-12-19 16:37:32 +00:00
rmoore1
07c223a3de Implemented full argument resolution support for the BankValue argument to BankField. Previously, only constants were supported, now any TermArg may be used. Lin Ming BZ 387, 393 2007-12-11 22:43:43 +00:00