diff options
Diffstat (limited to 'sys/contrib/dev/acpica/evxfregn.c')
-rw-r--r-- | sys/contrib/dev/acpica/evxfregn.c | 90 |
1 files changed, 53 insertions, 37 deletions
diff --git a/sys/contrib/dev/acpica/evxfregn.c b/sys/contrib/dev/acpica/evxfregn.c index 7c05f50..dceafd6 100644 --- a/sys/contrib/dev/acpica/evxfregn.c +++ b/sys/contrib/dev/acpica/evxfregn.c @@ -2,7 +2,7 @@ * * Module Name: evxfregn - External Interfaces, ACPI Operation Regions and * Address Spaces. - * $Revision: 27 $ + * $Revision: 34 $ * *****************************************************************************/ @@ -124,11 +124,11 @@ #include "amlcode.h" #include "acinterp.h" -#define _COMPONENT EVENT_HANDLING +#define _COMPONENT ACPI_EVENTS MODULE_NAME ("evxfregn") -/****************************************************************************** +/******************************************************************************* * * FUNCTION: AcpiInstallAddressSpaceHandler * @@ -147,21 +147,30 @@ ACPI_STATUS AcpiInstallAddressSpaceHandler ( ACPI_HANDLE Device, - ACPI_ADDRESS_SPACE_TYPE SpaceId, - ADDRESS_SPACE_HANDLER Handler, - ADDRESS_SPACE_SETUP Setup, + ACPI_ADR_SPACE_TYPE SpaceId, + ACPI_ADR_SPACE_HANDLER Handler, + ACPI_ADR_SPACE_SETUP Setup, void *Context) { ACPI_OPERAND_OBJECT *ObjDesc; ACPI_OPERAND_OBJECT *HandlerObj; ACPI_NAMESPACE_NODE *Node; ACPI_STATUS Status = AE_OK; - OBJECT_TYPE_INTERNAL Type; + ACPI_OBJECT_TYPE8 Type; UINT16 Flags = 0; FUNCTION_TRACE ("AcpiInstallAddressSpaceHandler"); + + /* Ensure that ACPI has been initialized */ + + ACPI_IS_INITIALIZATION_COMPLETE (Status); + if (ACPI_FAILURE (Status)) + { + return_ACPI_STATUS (Status); + } + /* Parameter validation */ if ((!Device) || @@ -171,7 +180,7 @@ AcpiInstallAddressSpaceHandler ( return_ACPI_STATUS (AE_BAD_PARAMETER); } - AcpiCmAcquireMutex (ACPI_MTX_NAMESPACE); + AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); /* Convert and validate the device handle */ @@ -203,18 +212,18 @@ AcpiInstallAddressSpaceHandler ( switch (SpaceId) { - case ADDRESS_SPACE_SYSTEM_MEMORY: - Handler = AcpiAmlSystemMemorySpaceHandler; + case ACPI_ADR_SPACE_SYSTEM_MEMORY: + Handler = AcpiExSystemMemorySpaceHandler; Setup = AcpiEvSystemMemoryRegionSetup; break; - case ADDRESS_SPACE_SYSTEM_IO: - Handler = AcpiAmlSystemIoSpaceHandler; + case ACPI_ADR_SPACE_SYSTEM_IO: + Handler = AcpiExSystemIoSpaceHandler; Setup = AcpiEvIoSpaceRegionSetup; break; - case ADDRESS_SPACE_PCI_CONFIG: - Handler = AcpiAmlPciConfigSpaceHandler; + case ACPI_ADR_SPACE_PCI_CONFIG: + Handler = AcpiExPciConfigSpaceHandler; Setup = AcpiEvPciConfigRegionSetup; break; @@ -237,7 +246,7 @@ AcpiInstallAddressSpaceHandler ( * Check for an existing internal object */ - ObjDesc = AcpiNsGetAttachedObject ((ACPI_HANDLE) Node); + ObjDesc = AcpiNsGetAttachedObject (Node); if (ObjDesc) { /* @@ -269,9 +278,8 @@ AcpiInstallAddressSpaceHandler ( else { - DEBUG_PRINT (TRACE_OPREGION, - ("Creating object on Device %p while installing handler\n", - Node)); + DEBUG_PRINTP (TRACE_OPREGION, + ("Creating object on Device %p while installing handler\n", Node)); /* ObjDesc does not exist, create one */ @@ -285,7 +293,7 @@ AcpiInstallAddressSpaceHandler ( Type = Node->Type; } - ObjDesc = AcpiCmCreateInternalObject (Type); + ObjDesc = AcpiUtCreateInternalObject (Type); if (!ObjDesc) { Status = AE_NO_MEMORY; @@ -301,14 +309,14 @@ AcpiInstallAddressSpaceHandler ( Status = AcpiNsAttachObject (Node, ObjDesc, (UINT8) Type); if (ACPI_FAILURE (Status)) { - AcpiCmRemoveReference (ObjDesc); + AcpiUtRemoveReference (ObjDesc); goto UnlockAndExit; } } - DEBUG_PRINT (TRACE_OPREGION, + DEBUG_PRINTP (TRACE_OPREGION, ("Installing address handler for region %s(%X) on Device %p(%p)\n", - AcpiCmGetRegionName (SpaceId), SpaceId, Node, ObjDesc)); + AcpiUtGetRegionName (SpaceId), SpaceId, Node, ObjDesc)); /* * Now we can install the handler @@ -317,7 +325,7 @@ AcpiInstallAddressSpaceHandler ( * So, we just allocate the object for the handler and link it * into the list. */ - HandlerObj = AcpiCmCreateInternalObject (INTERNAL_TYPE_ADDRESS_HANDLER); + HandlerObj = AcpiUtCreateInternalObject (INTERNAL_TYPE_ADDRESS_HANDLER); if (!HandlerObj) { Status = AE_NO_MEMORY; @@ -361,12 +369,12 @@ AcpiInstallAddressSpaceHandler ( UnlockAndExit: - AcpiCmReleaseMutex (ACPI_MTX_NAMESPACE); + AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); return_ACPI_STATUS (Status); } -/****************************************************************************** +/******************************************************************************* * * FUNCTION: AcpiRemoveAddressSpaceHandler * @@ -382,8 +390,8 @@ UnlockAndExit: ACPI_STATUS AcpiRemoveAddressSpaceHandler ( ACPI_HANDLE Device, - ACPI_ADDRESS_SPACE_TYPE SpaceId, - ADDRESS_SPACE_HANDLER Handler) + ACPI_ADR_SPACE_TYPE SpaceId, + ACPI_ADR_SPACE_HANDLER Handler) { ACPI_OPERAND_OBJECT *ObjDesc; ACPI_OPERAND_OBJECT *HandlerObj; @@ -396,6 +404,14 @@ AcpiRemoveAddressSpaceHandler ( FUNCTION_TRACE ("AcpiRemoveAddressSpaceHandler"); + /* Ensure that ACPI has been initialized */ + + ACPI_IS_INITIALIZATION_COMPLETE (Status); + if (ACPI_FAILURE (Status)) + { + return_ACPI_STATUS (Status); + } + /* Parameter validation */ if ((!Device) || @@ -405,7 +421,7 @@ AcpiRemoveAddressSpaceHandler ( return_ACPI_STATUS (AE_BAD_PARAMETER); } - AcpiCmAcquireMutex (ACPI_MTX_NAMESPACE); + AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); /* Convert and validate the device handle */ @@ -419,7 +435,7 @@ AcpiRemoveAddressSpaceHandler ( /* Make sure the internal object exists */ - ObjDesc = AcpiNsGetAttachedObject ((ACPI_HANDLE) Node); + ObjDesc = AcpiNsGetAttachedObject (Node); if (!ObjDesc) { /* @@ -446,9 +462,9 @@ AcpiRemoveAddressSpaceHandler ( /* * Got it, first dereference this in the Regions */ - DEBUG_PRINT (TRACE_OPREGION, + DEBUG_PRINTP (TRACE_OPREGION, ("Removing address handler %p(%p) for region %s on Device %p(%p)\n", - HandlerObj, Handler, AcpiCmGetRegionName (SpaceId), + HandlerObj, Handler, AcpiUtGetRegionName (SpaceId), Node, ObjDesc)); RegionObj = HandlerObj->AddrHandler.RegionList; @@ -464,7 +480,7 @@ AcpiRemoveAddressSpaceHandler ( * The region is just inaccessible as indicated to * the _REG method */ - AcpiEvDisassociateRegionFromHandler(RegionObj, FALSE); + AcpiEvDisassociateRegionFromHandler(RegionObj, TRUE); /* * Walk the list, since we took the first region and it @@ -483,8 +499,8 @@ AcpiRemoveAddressSpaceHandler ( /* * Now we can delete the handler object */ - AcpiCmRemoveReference (HandlerObj); - AcpiCmRemoveReference (HandlerObj); + AcpiUtRemoveReference (HandlerObj); + AcpiUtRemoveReference (HandlerObj); goto UnlockAndExit; } @@ -500,15 +516,15 @@ AcpiRemoveAddressSpaceHandler ( /* * The handler does not exist */ - DEBUG_PRINT (TRACE_OPREGION, + DEBUG_PRINTP (TRACE_OPREGION, ("Unable to remove address handler %p for %s(%X), DevNode %p, obj %p\n", - Handler, AcpiCmGetRegionName (SpaceId), SpaceId, Node, ObjDesc)); + Handler, AcpiUtGetRegionName (SpaceId), SpaceId, Node, ObjDesc)); Status = AE_NOT_EXIST; UnlockAndExit: - AcpiCmReleaseMutex (ACPI_MTX_NAMESPACE); + AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); return_ACPI_STATUS (Status); } |