diff options
author | jkim <jkim@FreeBSD.org> | 2009-07-31 15:25:39 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2009-07-31 15:25:39 +0000 |
commit | 69f0585e848b352bf2bac67a62c191d4c5d8b95d (patch) | |
tree | 32bcfd605fd3c4a48e9916a628a843d3a6c1e218 /utilities/utxface.c | |
parent | b0288ab5352e77c07fffaf51a4193f8de02a7aec (diff) | |
download | FreeBSD-src-69f0585e848b352bf2bac67a62c191d4c5d8b95d.zip FreeBSD-src-69f0585e848b352bf2bac67a62c191d4c5d8b95d.tar.gz |
Import ACPICA 20090730
Diffstat (limited to 'utilities/utxface.c')
-rw-r--r-- | utilities/utxface.c | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/utilities/utxface.c b/utilities/utxface.c index 4207f3d..ba57f49 100644 --- a/utilities/utxface.c +++ b/utilities/utxface.c @@ -360,6 +360,16 @@ AcpiInitializeObjects ( } /* + * Execute any module-level code that was detected during the table load + * phase. Although illegal since ACPI 2.0, there are many machines that + * contain this type of code. Each block of detected executable AML code + * outside of any control method is wrapped with a temporary control + * method object and placed on a global list. The methods on this list + * are executed below. + */ + AcpiNsExecModuleCodeList (); + + /* * Initialize the objects that remain uninitialized. This runs the * executable AML that may be part of the declaration of these objects: * OperationRegions, BufferFields, Buffers, and Packages. @@ -437,7 +447,7 @@ ACPI_EXPORT_SYMBOL (AcpiInitializeObjects) * * RETURN: Status * - * DESCRIPTION: Shutdown the ACPI subsystem. Release all resources. + * DESCRIPTION: Shutdown the ACPICA subsystem and release all resources. * ******************************************************************************/ @@ -451,15 +461,28 @@ AcpiTerminate ( ACPI_FUNCTION_TRACE (AcpiTerminate); + /* Just exit if subsystem is already shutdown */ + + if (AcpiGbl_Shutdown) + { + ACPI_ERROR ((AE_INFO, "ACPI Subsystem is already terminated")); + return_ACPI_STATUS (AE_OK); + } + + /* Subsystem appears active, go ahead and shut it down */ + + AcpiGbl_Shutdown = TRUE; + AcpiGbl_StartupFlags = 0; + ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Shutting down ACPI Subsystem\n")); + /* Terminate the AML Debugger if present */ - ACPI_DEBUGGER_EXEC(AcpiGbl_DbTerminateThreads = TRUE); + ACPI_DEBUGGER_EXEC (AcpiGbl_DbTerminateThreads = TRUE); /* Shutdown and free all resources */ AcpiUtSubsystemShutdown (); - /* Free the mutex objects */ AcpiUtMutexTerminate (); @@ -480,8 +503,8 @@ AcpiTerminate ( ACPI_EXPORT_SYMBOL (AcpiTerminate) -#ifndef ACPI_ASL_COMPILER +#ifndef ACPI_ASL_COMPILER /******************************************************************************* * * FUNCTION: AcpiSubsystemStatus |