diff options
author | Mitsuru IWASAKI <iwasaki@FreeBSD.org> | 2001-12-22 16:05:41 +0000 |
---|---|---|
committer | Mitsuru IWASAKI <iwasaki@FreeBSD.org> | 2001-12-22 16:05:41 +0000 |
commit | c573e654b7769ae90a8ae4a34eed0b3a36f439c3 (patch) | |
tree | 7c96c678372cc5f9e23154023196e80b72311f86 /sys/contrib/dev/acpica/exsystem.c | |
parent | 1b3d626a13412d3e64c7431651b8d4bfb08d0296 (diff) | |
download | src-c573e654b7769ae90a8ae4a34eed0b3a36f439c3.tar.gz src-c573e654b7769ae90a8ae4a34eed0b3a36f439c3.zip |
Add OS layer ACPI mutex and threading support.
- Temporary fix a bug of Intel ACPI CA core code.
- Add OS layer ACPI mutex support. This can be disabled by
specifying option ACPI_NO_SEMAPHORES.
- Add ACPI threading support. Now that we have a dedicate taskqueue for
ACPI tasks and more ACPI task threads can be created by specifying option
ACPI_MAX_THREADS.
- Change acpi_EvaluateIntoBuffer() behavior slightly to reuse given
caller's buffer unless AE_BUFFER_OVERFLOW occurs. Also CM battery's
evaluations were changed to use acpi_EvaluateIntoBuffer().
- Add new utility function acpi_ConvertBufferToInteger().
- Add simple locking for CM battery and temperature updating.
- Fix a minor problem on EC locking.
- Make the thermal zone polling rate to be changeable.
- Change minor things on AcpiOsSignal(); in ACPI_SIGNAL_FATAL case,
entering Debugger is easier to investigate the problem rather than panic.
Notes
Notes:
svn path=/head/; revision=88420
Diffstat (limited to 'sys/contrib/dev/acpica/exsystem.c')
-rw-r--r-- | sys/contrib/dev/acpica/exsystem.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/contrib/dev/acpica/exsystem.c b/sys/contrib/dev/acpica/exsystem.c index df034483f057..b4625976ec8c 100644 --- a/sys/contrib/dev/acpica/exsystem.c +++ b/sys/contrib/dev/acpica/exsystem.c @@ -147,7 +147,7 @@ AcpiExSystemWaitSemaphore ( ACPI_HANDLE Semaphore, UINT32 Timeout) { - ACPI_STATUS Status; + ACPI_STATUS Status, Status2; FUNCTION_TRACE ("ExSystemWaitSemaphore"); @@ -172,12 +172,12 @@ AcpiExSystemWaitSemaphore ( /* Reacquire the interpreter */ - Status = AcpiExEnterInterpreter (); - if (ACPI_SUCCESS (Status)) + Status2 = AcpiExEnterInterpreter (); + if (ACPI_FAILURE (Status2)) { - /* Restore the timeout exception */ + /* Report fatal error, could not acquire interpreter */ - Status = AE_TIME; + return_ACPI_STATUS (Status2); } } |