5995 Commits

Author SHA1 Message Date
Robert Moore
ba571ef4a6 Expand initialization counters to 32 bits.
Expand the various initialization counters from 16-bit to 32-bit.
Allows for very large namespaces. Alexey Starikovskiy, Bob Moore.
2010-05-18 15:10:09 -07:00
Robert Moore
27794f1bd0 Add comment: _BCL cannot be sorted on the fly.
Because of package index values used for _BQC and _BCM.
2010-04-30 12:19:10 -07:00
Robert Moore
03d18d0470 Rename AcpiExSystemDoSuspend->AcpiExSystemDoSleep.
Suspend has other meanings in ACPI context, name was misleading.
2010-04-19 13:32:17 -07:00
Robert Moore
681f8f4e6b Prevent possible allocation overrun during object copy.
Original code did not handle the case where the object to be
copied was a namespace node.
2010-04-09 12:47:44 -07:00
Robert Moore
c2e293f281 Update allocation dump routine.
Prevent possible access beyond end-of-allocation.
Fully validate descriptor (size and type) before output.
Lin Ming, Bob Moore.
2010-04-09 12:35:00 -07:00
Robert Moore
b0a99f238c Split large file, evgpeblk.c.
Create two new files, evgpeinit.c and evgpeutil.c. Updated unix and
linux makefiles.
2010-04-09 09:01:59 -07:00
Robert Moore
d764104bff Add GPE support for dynamically loaded ACPI tables.
For all GPEs, including FADT-based and GPE Block Devices, execute
any _PRW methods in the new table, and process any _Lxx/_Exx GPE
methods in the new table. Any runtime GPE that is referred to by
an _Lxx/_Exx method in the new table is immediately enabled.
ACPICA BZ 833. Lin Ming, Bob Moore.
2010-04-08 14:59:22 -07:00
Robert Moore
66525d7384 Clarify/rename some root table descriptor fields.
Original fields were not very descriptive and led to maintenance problems.
New fields should help to understand the existing code.
2010-04-05 10:19:39 -07:00
Robert Moore
752d13e806 Additional fix for root table size regression.
Set the size of the new root table correctly. Not the current size, but
the number of current tables + the default increment.
2010-04-02 12:53:37 -07:00
Robert Moore
67a1ef8c98 Additional change for table load regression
add .signature
2010-04-01 14:26:23 -07:00
Robert Moore
e4c530f4e7 Fix for table load regression.
Fixes a problem introduced in 20100331 where the table manager could
fault or return an AE_NO_ACPI_TABLES exception.
2010-04-01 14:05:20 -07:00
Robert Moore
dc2a536be0 Fix AcpiReallocateRootTable to set new root table size correctly.
New additional table count was not added into the table size
(count of total available slots.)
2010-03-31 08:15:59 -07:00
Robert Moore
8c28b93eee Update part 2: DSDT copy/detection.
Now handles the case where the root table can be reallocated, which
would invalidate the original pointer.
2010-03-31 07:51:40 -07:00
Robert Moore
45f0b38a92 Major update for GPE support code for shared GPEs.
Adds a reference count mechanism to simplify support of shared GPEs that
require multiple device drivers. Several external interfaces have changed.
One external interface has been removed.

Changed:
AcpiEnableGpe
AcpiDisableGpe
AcpiClearGpe
AcpiGetGpeStatus

Removed:
AcpiSetGpeType

New:
AcpiSetGpe

See the ACPICA Programmer Reference for details.
Matthew Garrett
Bob Moore
Rafael Wysocki
2010-03-26 15:54:55 -07:00
Robert Moore
1e7497f794 Update DSDT copy/detection.
Move initialization of DSDT pointer. Emit address of DSDT in
the dump of both table headers (good/bad DSDT).
2010-03-26 15:52:04 -07:00
Robert Moore
c6ad540dbe Add subsystem option to force copy of DSDT to local memory.
Optionally copy the entire DSDT to local memory (instead of simply
mapping it.) There are some BIOSs that corrupt or replace the original
DSDT, creating the need for this option. Default is FALSE, do not copy
the DSDT.
2010-03-24 15:30:14 -07:00
Robert Moore
3ff5a497b6 Add detection of corrupted/replaced DSDT.
This change adds support to detect a DSDT that has been corrupted
and/or replaced from outside the OS (by firmware). This is typically
catastrophic for the system, but has been seen on some machines.
Lin Ming, Bob Moore.
2010-03-24 14:43:33 -07:00
Robert Moore
b503f0621a Add write support for DataTable operation regions.
The original implementation only supported reading from a DataTable
region. However, some machines have been seen that actually write to
the ACPI table contained in such a region. This change adds support
for writing to a DataTable region.
2010-03-24 10:13:46 -07:00
Robert Moore
0f0cf23019 Fix for AcpiReallocateRootTable for incorrect root table copy.
When copying the root table to the new allocation, the length used
was incorrect. The new size was used instead of the current table size,
meaning too much data was copied. Alexey Starikovskiy.
2010-03-18 14:02:30 -07:00
Robert Moore
12f1f95afc Update comments/headers, no functional change.
Also split some long lines.
2010-03-12 12:23:20 -08:00
Robert Moore
9dff111362 Automated cleanup.
Some extra spaces removed.
2010-03-12 08:21:14 -08:00
Robert Moore
ba3c4a434a Fix for possible fault in AcpiExReleaseMutex.
Fixed a problem with the AML Mutex handling function AcpiExReleaseMutex
where the function could fault under the very rare condition when the
interpreter has blocked, the interpreter lock is released, the
interpreter is then reentered via the same thread, and attempts to
acquire a mutex that was previously acquired. FreeBSD report 140979. Lin Ming.
2010-03-04 08:42:11 -08:00
Robert Moore
23367dc568 Standardize integer output for ACPICA warnings/errors.
Always use 0x prefix for hex output, use %u for integer output (all
integers are unsigned.)

Affects ACPI_INFO, ACPI_ERROR, ACPI_WARNING, and ACPI_EXCEPTION.
ACPICA BZ 835.
2010-03-02 15:09:46 -08:00
Robert Moore
e51c2639b6 Enhance configuration for output of AML Debug Object.
This change will enable debug object output via a global variable,
AcpiGbl_EnableAmlDebugObject. This will help with remote machine
debugging. Also, moved all debug object support code to a new file,
executer/exdebug.c. Entire debug object module can now be configured
out of the ACPICA build if desired. Lin Ming, Bob Moore.
2010-02-26 13:48:18 -08:00
Robert Moore
594479d5c6 Disassembler: Remove obsolete "Integer64" field in parse object.
This field is no longer needed. The "Integer" field is 64 bit and
is sufficient.
2010-01-19 14:17:17 -08:00
Robert Moore
bce1fbe326 Remove obsolete ACPI_INTEGER (acpi_integer) type.
This type was introduced as the code was migrated from ACPI 1.0 (with 32-bit
AML integers) to ACPI 2.0 (with 64-bit integers). It is now obsolete and
this change removes it from the ACPICA code base, replaced by UINT64.
The original typedef has been retained for now for compatibility with
existing device driver code.
2010-01-19 13:39:26 -08: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
e2cf79783b AcpiGetDevices: Eliminate unnecessary _STA calls.
In the case where a specific _HID is requested, do not run _STA until a _HID
match is found. This eliminates potentially dozens of _STA calls during
a search for a particular device/HID.

Fixes ACPICA BZ 828. Lin Ming.
2010-01-08 13:05:56 -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
cdfcc7cfce Update for new gcc-4 warning options.
Added several new options for the gcc-4 generation, and updated the source
accordingly. This includes some code restructuring to eliminate unreachable
code, elimination of some gotos, elimination of unused return values, and
some additional casting.
2010-01-08 08:14:05 -08:00
Robert Moore
8b73fb9ff4 Debugger: Cleanup output of returned buffer objects.
This change aligns the data dump for buffer objects.
2009-12-11 13:35:19 -08:00
Robert Moore
93324dd734 Move check for valid Thread ID structure.
This change moves the check for a valid Thread ID structure up a few lines
to insure that the check is made before the structure is actually used.
Dan Carpenter.
2009-12-10 14:52:07 -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
a3dcd06fa0 Module-level code: enable _REG execution in same scope.
This change enables the execution of _REG methods that appear in the
same scope as the module-level code, in resonse to an operation region
declaration within the module-level code.
2009-12-10 12:48:24 -08:00
Robert Moore
f0c2fd9c36 Conditionally perform complex per-predefined-name repairs.
Only attempt the "complex" repairs (package sorting, buffer expansion)
if the previous "generic" validation and repair was successful.
2009-12-09 14:44:38 -08:00
Robert Moore
d34e4dc230 Update function headers and comments, no functional change.
Update comments for repair of _FDE and _GTM methods.
2009-12-08 14:15:57 -08:00
Robert Moore
82abf467aa Remove messages if predefined repair(s) are successful.
Repair mechanism was considered too wordy. Now, messages are only
unconditionally emitted if the return object cannot be repaired.
Existing messages for successful repairs were converted to
ACPI_DEBUG_PRINT messages for now. ACPICA BZ 827.
2009-12-08 14:08:56 -08:00
Robert Moore
51dabc8bed Move Package-to-Buffer repair code into common ToBuffer function.
Move code specific to _FDE and _GTM into the generic repair code.
2009-12-04 15:16:53 -08:00
Robert Moore
b7f16e21e7 Fix mutex errors when running _REG methods.
Fixes a problem where mutex errors can occur when running a _REG method
that is in the same scope as a method-defined operation region or an
operation region under a module-level IF block. This is rare, so the
problem has not been seen before. ACPICA BZ 826. Lin Ming, Bob Moore.
2009-12-04 09:22:56 -08:00
Robert Moore
268aa6915f Update function headers; no functional change.
Fixed a few errors with the headers in utcopy.c
2009-12-04 08:30:14 -08:00
Robert Moore
d29acc2c26 Add more conversions to predefined name repair module.
This change enhances the automatic repairs/conversions for predefined
name return values to make Integers, Strings, and Buffers fully
interchangeable. Also, a Buffer can be converted to a Package of
Integers if necessary. The nsrepair.c module was completely restructured.
Lin Ming, Bob Moore.
2009-12-03 14:20:31 -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
453386a16b Automated cleanup - no functional change.
acpisrc -c cleanup.
2009-11-20 09:16:42 -08:00
Robert Moore
048fba8f81 Add repair for bad _FDE/_GTM buffers.
The expected return value for both names is a Buffer of 5 DWORDS.
This repair fixes two possible problems (both seen in the field):
A package of integers is returned, or a buffer of BYTEs is
returned.
2009-11-20 09:10:33 -08:00
Robert Moore
a6fe819faf Fix two additional Scope override error messages.
These messages were using the internal path for the message
instead of using the node name.
2009-11-18 13:50:34 -08:00
Robert Moore
ca84b670c6 Fix two Scope type error messages.
Both messages incorrectly used the internal Path string instead
of the node name.
2009-11-18 13:43:52 -08:00
Robert Moore
9b6e9d4341 Fix possible memory leak for module-level code execution.
An object can be leaked for each block of executed module-level
code if the interpreter slack mode is enabled. The change
deletes any implicitly returned object in this case.
2009-11-18 13:25:42 -08:00
Robert Moore
0f4a91c1bd Add additional module-level code support.
This change will execute module-level code that is not at the root of
the namespace (under a Device object, etc.). ACPICA BZ 762. Lin Ming.
2009-11-06 13:34:17 -08:00
Robert Moore
bf219fa808 Deploy new create integer interface where appropriate.
Simplifies creation of simple integer objects.
ACPICA BZ 823.
2009-11-06 12:30:33 -08:00
Robert Moore
7fc5b28b51 New internal utility function to create Integer objects.
AcpiUtCreateIntegerObject. This function (when deployed) should
simplify some of the object creation code.
ACPICA BZ 823.
2009-11-05 15:00:14 -08:00