Commit Graph

9604 Commits

Author SHA1 Message Date
Robert Moore
71b17eedd3 Add function to dereference returned reference objects.
Examines the return object from a call to AcpiEvaluateObject. Any
Index or RefOf references are automatically dereferenced in an attempt
to return something useful (these reference types cannot be converted
into an external ACPI_OBJECT.) Lin Ming, Bob Moore. Linux BZ 11105
2008-07-25 12:07:23 -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
cb2d41704e AcpiXtract: Handle EOF while extracting data.
Correctly handle the case where the EOF happens immediately after
the last table in the input file. Print completion message. Previously,
no message was displayed in this case.
2008-07-24 10:21:33 -07:00
Robert Moore
61a66a6a92 iASL: Support absolute pathnames for include files.
Add support for absolute pathnames within the Include operator.
previously, only relative pathnames were supported.
2008-07-23 10:42:31 -07:00
Robert Moore
70bf57ce49 Improve object conversion error messages.
Better error messages during object conversion from internal to the
external ACPI_OBJECT. Used for external calls to AcpiEvaluateObject.
2008-07-22 12:38:36 -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
806efe4747 iASL: error if named object created in while loop.
Emit an error if any named object is created within a While loop.
If allowed, this code will generate a run-time error on the second
iteration of the loop when an attempt is made to create the same
named object twice. ACPICA bugzilla 730.
2008-07-22 10:03:48 -07:00
Robert Moore
dfde65430c Fix possible deadlock in GPE dispatch.
Remove call to AcpiHwDisableAllGpes in AcpiEvGpeDispatch. This call will
attempt to acquire the GPE lock but can deadlock since the GPE lock is
already held at dispatch time. This code was introduced in version
20060831 as a response to Linux BZ 6881 and has since been removed from
Linux.
2008-07-22 09:55:44 -07:00
Robert Moore
cf81b17458 iASL: relax error for using reserved "_T_x" identifiers.
These names can appear in a disassembled ASL file if they were emitted
by the original compiler. Instead of issuing an error or warning and
forcing the user to manually change these names, issue a remark instead.
2008-07-10 14:46:31 -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
5cae8e0a88 iASL: Fix broken -g option (get Windows ACPI tables).
Fixes the -g option (get ACPI tables on Windows). This was
apparently broken in version 20070919.
2008-07-08 13:27:23 -07:00
Robert Moore
409a98bb7f iASL: lint changes only, no functional changes.
Some lint changes only.
2008-07-08 11:10:07 -07:00
Robert Moore
4a7af8590a Debugger: fix possible hang when evaluating non-methods.
Fixes a problem introduced in 20080701. If the object being evaluated
(via execute command) is not a method, the debugger can hang while
trying to get non-existent parameters.
2008-07-03 10:02:56 -07:00
Robert Moore
edecb3ec2f iASL: Prevent error message if CondRefOf target does not exist.
Fixes cases where an error message is emitted if the target
does not exist. BZ 516
2008-07-02 10:12:46 -07:00
Robert Moore
36a06ba0af iASL: Enforce minimum 1 interrupt in interrupt macro.
ACPI spec requires one interrupt minimum. BZ 423
2008-07-01 16:07:51 -07:00
Robert Moore
d2b15accf3 iASL: Handle missing ResourceSource arg, present SourceIndex.
Handle the case for the Interrupt resource descriptor where
the ResourceSource argument is omitted but ResourceSourceIndex
is present. Leave room for the Index. BZ 426
2008-07-01 16:06:20 -07:00
Robert Moore
5589bb45bc Update version to 20080701.
Update version to 20080701.
2008-07-01 09:35:32 -07:00
Robert Moore
1975da87dd Fix table compare code, length then data.
Split the ACPI table compare. First check that the lengths match
exactly. Then compare the data.
2008-06-27 15:10:31 -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
4d0bf69261 Fix possible memory leak in Unload() operator.
The DdbHandle returned by Load() does not have its reference
count decremented during unload, leading to a memory leak. Lin Ming.
BZ 72
2008-06-26 14:49:41 -07:00
Robert Moore
154b8a07ef Allow same ACPI table to be loaded/unloaded more than once.
Without this change, a table cannot be loaded again once it has been
loaded/unloaded one time. The current mechanism does not unregister
a table upon an unload. During a load, if the same table is found, this
no longer returns an exception. BZ 722
2008-06-26 14:33:44 -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
62bf380387 iASL: Added two missing ACPI reserved names.
Added _MTP and _ASZ, both resource descriptor names.
2008-06-19 12:43:23 -07:00
Robert Moore
8a960c4df8 Fix memory leak when deleting thermal/processor objects.
Fixes a possible memory leak when thermal and processor objects
are deleted. Any associated notify handlers (and objects) were
not being deleted. Fiodor Suietov. BZ 506
2008-06-18 13:16:33 -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
a9ec7a4958 Add check for invalid handle in AcpiGetObjectInfo.
Return AE_BAD_PARAMETER if input handle is invalid. BZ 474
2008-06-17 14:53:35 -07:00
Robert Moore
fe9c406016 iASL: Eliminate warning when result of LoadTable not used.
Eliminate the "result of operation not used" warning when the DDB handle
returned from LoadTable is not used. The warning is not needed.
BZ 590
2008-06-17 14:47:04 -07:00
Robert Moore
a55e093601 Fix warning for 64-bit build.
Fixes warning from exconfig.c on 64-bit build.
2008-06-13 13:54:15 -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
f481e6e303 Debugger: update tables command for unloaded tables.
Handle unloaded tables and use the standard table header output
routine.
2008-06-13 13:40:35 -07:00
Robert Moore
9ea403208e Copy dynamically loaded tables to local buffer.
Previously, dynamically loaded tables were simply mapped, but on some
machines this memory is corrupted after suspend. Now copy the table to a
local buffer. For OpRegion case, added checksum verify. Use the table length
from the table header, not the region length. For Buffer case, use the
table length also. Dennis Noordsij, Bob Moore. BZ 10734
2008-06-11 15:23:20 -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
91c58ec2d7 Disassembler: single-step support for _CID packages.
Add support to allow single stepping of _CID with support for
EisaId checking.
2008-06-04 14:25:08 -07:00
Robert Moore
e9f18d7c17 Disassembler: support for EisaId within _CID objects.
Add support to disassemble encoded EisaIDs within _CID objects.
Includes support for multiple _CIDs within packages.
2008-06-04 14:09:16 -07:00
Robert Moore
6a375bb871 Fix possible memory leak in EvPciConfigRegionSetup.
Error path did not delete the PCI_ID structure.
2008-05-28 14:41:29 -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
01954432e5 Fix mutex debug code for wrong loop termination value.
Loop was terminating one iteration early, missing one of the debugger
handshake mutexes. Linn Crosetto.
2008-05-27 15:30:07 -07:00
Robert Moore
48de5ac6ea Fix for access to deleted object <regression>.
Fixes problem introduced in 20080123, with fix for Unload operator.
Parse tree object can be already deleted; must use the opcode within
the WalkState.
2008-05-21 14:48:56 -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
f7d3c56e3b Cleanup of _PRT parsing code.
Removed extraneous else clauses, other general cleanup.
2008-05-21 12:31:16 -07:00
Robert Moore
87292344c7 Automated cleanup; no functional changes. 2008-05-21 12:17:51 -07:00
Robert Moore
ca1f300fd1 Fix to make _SST method optional.
Fixes a problem introduced in 20080514 where the status of execution of
_SST is incorrectly returned to the caller. _SST is optional, and if it
is AE_NOT_FOUND, the exception should be ignored. BZ 716
2008-05-21 11:49:03 -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
9fa368ff7b Fix for invalid large array index on 64-bit systems.
This problem was introduced in 20080514 as a result of the elimination
of the ACPI_NATIVE_UINT type. Code uses a negative array index, which
should be eliminated.
2008-05-21 11:02:31 -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
2a6f5e2ab0 Workaround for reversed _PRT entries from BIOS.
Some BIOSs erroneously reverse the _PRT SourceName and the SourceIndex.
Detect and repair this problem. MS ACPI also allows and repairs this
problem, thus ACPICA must also.
2008-05-16 08:50:47 -07:00