diff options
Diffstat (limited to 'sys/contrib/dev/acpica/nsxfobj.c')
-rw-r--r-- | sys/contrib/dev/acpica/nsxfobj.c | 128 |
1 files changed, 83 insertions, 45 deletions
diff --git a/sys/contrib/dev/acpica/nsxfobj.c b/sys/contrib/dev/acpica/nsxfobj.c index b90c31a..1ef6f75 100644 --- a/sys/contrib/dev/acpica/nsxfobj.c +++ b/sys/contrib/dev/acpica/nsxfobj.c @@ -2,7 +2,7 @@ * * Module Name: nsxfobj - Public interfaces to the ACPI subsystem * ACPI Object oriented interfaces - * $Revision: 80 $ + * $Revision: 86 $ * ******************************************************************************/ @@ -124,7 +124,7 @@ #include "acdispat.h" -#define _COMPONENT NAMESPACE +#define _COMPONENT ACPI_NAMESPACE MODULE_NAME ("nsxfobj") @@ -172,6 +172,14 @@ AcpiEvaluateObject ( FUNCTION_TRACE ("AcpiEvaluateObject"); + /* Ensure that ACPI has been initialized */ + + ACPI_IS_INITIALIZATION_COMPLETE (Status); + if (ACPI_FAILURE (Status)) + { + return_ACPI_STATUS (Status); + } + /* * If there are parameters to be passed to the object * (which must be a control method), the external objects @@ -189,7 +197,7 @@ AcpiEvaluateObject ( ParamLength = (Count + 1) * sizeof (void *); ObjectLength = Count * sizeof (ACPI_OPERAND_OBJECT); - ParamPtr = AcpiCmCallocate (ParamLength + /* Parameter List part */ + ParamPtr = AcpiUtCallocate (ParamLength + /* Parameter List part */ ObjectLength); /* Actual objects */ if (!ParamPtr) { @@ -207,7 +215,7 @@ AcpiEvaluateObject ( for (i = 0; i < Count; i++) { ParamPtr[i] = &ObjectPtr[i]; - AcpiCmInitStaticObject (&ObjectPtr[i]); + AcpiUtInitStaticObject (&ObjectPtr[i]); } ParamPtr[Count] = NULL; @@ -217,12 +225,12 @@ AcpiEvaluateObject ( */ for (i = 0; i < Count; i++) { - Status = AcpiCmCopyEobjectToIobject (&ParamObjects->Pointer[i], + Status = AcpiUtCopyEobjectToIobject (&ParamObjects->Pointer[i], ParamPtr[i]); if (ACPI_FAILURE (Status)) { - AcpiCmDeleteInternalObjectList (ParamPtr); + AcpiUtDeleteInternalObjectList (ParamPtr); return_ACPI_STATUS (Status); } } @@ -255,14 +263,12 @@ AcpiEvaluateObject ( if (!Pathname) { - DEBUG_PRINT (ACPI_ERROR, - ("AcpiEvaluateObject: Both Handle and Pathname are NULL\n")); + DEBUG_PRINTP (ACPI_ERROR, ("Both Handle and Pathname are NULL\n")); } else { - DEBUG_PRINT (ACPI_ERROR, - ("AcpiEvaluateObject: Handle is NULL and Pathname is relative\n")); + DEBUG_PRINTP (ACPI_ERROR, ("Handle is NULL and Pathname is relative\n")); } Status = AE_BAD_PARAMETER; @@ -331,7 +337,7 @@ AcpiEvaluateObject ( * Find out how large a buffer is needed * to contain the returned object */ - Status = AcpiCmGetObjectSize (ReturnObj, + Status = AcpiUtGetObjectSize (ReturnObj, &BufferSpaceNeeded); if (ACPI_SUCCESS (Status)) { @@ -348,8 +354,8 @@ AcpiEvaluateObject ( * but return the buffer size needed */ - DEBUG_PRINT (ACPI_INFO, - ("AcpiEvaluateObject: Needed buffer size %X, received %X\n", + DEBUG_PRINTP (ACPI_INFO, + ("Needed buffer size %X, received %X\n", BufferSpaceNeeded, UserBufferLength)); ReturnBuffer->Length = BufferSpaceNeeded; @@ -361,7 +367,7 @@ AcpiEvaluateObject ( /* * We have enough space for the object, build it */ - Status = AcpiCmCopyIobjectToEobject (ReturnObj, + Status = AcpiUtCopyIobjectToEobject (ReturnObj, ReturnBuffer); ReturnBuffer->Length = BufferSpaceNeeded; } @@ -379,7 +385,7 @@ AcpiEvaluateObject ( * Delete the internal return object. (Or at least * decrement the reference count by one) */ - AcpiCmRemoveReference (ReturnObj); + AcpiUtRemoveReference (ReturnObj); } /* @@ -390,7 +396,7 @@ AcpiEvaluateObject ( { /* Free the allocated parameter block */ - AcpiCmDeleteInternalObjectList (ParamPtr); + AcpiUtDeleteInternalObjectList (ParamPtr); } return_ACPI_STATUS (Status); @@ -428,6 +434,14 @@ AcpiGetNextObject ( ACPI_NAMESPACE_NODE *ChildNode = NULL; + /* Ensure that ACPI has been initialized */ + + ACPI_IS_INITIALIZATION_COMPLETE (Status); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + /* Parameter validation */ if (Type > ACPI_TYPE_MAX) @@ -435,7 +449,7 @@ AcpiGetNextObject ( return (AE_BAD_PARAMETER); } - AcpiCmAcquireMutex (ACPI_MTX_NAMESPACE); + AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); /* If null handle, use the parent */ @@ -468,7 +482,7 @@ AcpiGetNextObject ( /* Internal function does the real work */ - Node = AcpiNsGetNextObject ((OBJECT_TYPE_INTERNAL) Type, + Node = AcpiNsGetNextObject ((ACPI_OBJECT_TYPE8) Type, ParentNode, ChildNode); if (!Node) { @@ -484,7 +498,7 @@ AcpiGetNextObject ( UnlockAndExit: - AcpiCmReleaseMutex (ACPI_MTX_NAMESPACE); + AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); return (Status); } @@ -508,7 +522,16 @@ AcpiGetType ( ACPI_OBJECT_TYPE *RetType) { ACPI_NAMESPACE_NODE *Node; + ACPI_STATUS Status; + + /* Ensure that ACPI has been initialized */ + + ACPI_IS_INITIALIZATION_COMPLETE (Status); + if (ACPI_FAILURE (Status)) + { + return (Status); + } /* Parameter Validation */ @@ -527,21 +550,21 @@ AcpiGetType ( return (AE_OK); } - AcpiCmAcquireMutex (ACPI_MTX_NAMESPACE); + AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); /* Convert and validate the handle */ Node = AcpiNsConvertHandleToEntry (Handle); if (!Node) { - AcpiCmReleaseMutex (ACPI_MTX_NAMESPACE); + AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); return (AE_BAD_PARAMETER); } *RetType = Node->Type; - AcpiCmReleaseMutex (ACPI_MTX_NAMESPACE); + AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); return (AE_OK); } @@ -569,8 +592,13 @@ AcpiGetParent ( ACPI_STATUS Status = AE_OK; - /* No trace macro, too verbose */ + /* Ensure that ACPI has been initialized */ + ACPI_IS_INITIALIZATION_COMPLETE (Status); + if (ACPI_FAILURE (Status)) + { + return (Status); + } if (!RetHandle) { @@ -585,7 +613,7 @@ AcpiGetParent ( } - AcpiCmAcquireMutex (ACPI_MTX_NAMESPACE); + AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); /* Convert and validate the handle */ @@ -612,7 +640,7 @@ AcpiGetParent ( UnlockAndExit: - AcpiCmReleaseMutex (ACPI_MTX_NAMESPACE); + AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); return (Status); } @@ -652,7 +680,7 @@ AcpiWalkNamespace ( ACPI_OBJECT_TYPE Type, ACPI_HANDLE StartObject, UINT32 MaxDepth, - WALK_CALLBACK UserFunction, + ACPI_WALK_CALLBACK UserFunction, void *Context, void **ReturnValue) { @@ -662,6 +690,14 @@ AcpiWalkNamespace ( FUNCTION_TRACE ("AcpiWalkNamespace"); + /* Ensure that ACPI has been initialized */ + + ACPI_IS_INITIALIZATION_COMPLETE (Status); + if (ACPI_FAILURE (Status)) + { + return_ACPI_STATUS (Status); + } + /* Parameter validation */ if ((Type > ACPI_TYPE_MAX) || @@ -678,14 +714,14 @@ AcpiWalkNamespace ( * must be allowed to make Acpi calls itself. */ - AcpiCmAcquireMutex (ACPI_MTX_NAMESPACE); - Status = AcpiNsWalkNamespace ((OBJECT_TYPE_INTERNAL) Type, + AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); + Status = AcpiNsWalkNamespace ((ACPI_OBJECT_TYPE8) Type, StartObject, MaxDepth, NS_WALK_UNLOCK, UserFunction, Context, ReturnValue); - AcpiCmReleaseMutex (ACPI_MTX_NAMESPACE); + AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); return_ACPI_STATUS (Status); } @@ -715,17 +751,15 @@ AcpiNsGetDeviceCallback ( ACPI_STATUS Status; ACPI_NAMESPACE_NODE *Node; UINT32 Flags; - DEVICE_ID DeviceId; + ACPI_DEVICE_ID DeviceId; ACPI_GET_DEVICES_INFO *Info; Info = Context; - AcpiCmAcquireMutex (ACPI_MTX_NAMESPACE); - + AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); Node = AcpiNsConvertHandleToEntry (ObjHandle); - - AcpiCmReleaseMutex (ACPI_MTX_NAMESPACE); + AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); if (!Node) { @@ -735,17 +769,15 @@ AcpiNsGetDeviceCallback ( /* * Run _STA to determine if device is present */ - - Status = AcpiCmExecute_STA (Node, &Flags); + Status = AcpiUtExecute_STA (Node, &Flags); if (ACPI_FAILURE (Status)) { - return (Status); + return (AE_CTRL_DEPTH); } if (!(Flags & 0x01)) { /* don't return at the device or children of the device if not there */ - return (AE_CTRL_DEPTH); } @@ -754,8 +786,7 @@ AcpiNsGetDeviceCallback ( */ if (Info->Hid != NULL) { - Status = AcpiCmExecute_HID (Node, &DeviceId); - + Status = AcpiUtExecute_HID (Node, &DeviceId); if (Status == AE_NOT_FOUND) { return (AE_OK); @@ -763,7 +794,7 @@ AcpiNsGetDeviceCallback ( else if (ACPI_FAILURE (Status)) { - return (Status); + return (AE_CTRL_DEPTH); } if (STRNCMP (DeviceId.Buffer, Info->Hid, sizeof (DeviceId.Buffer)) != 0) @@ -773,7 +804,6 @@ AcpiNsGetDeviceCallback ( } Info->UserFunction (ObjHandle, NestingLevel, Info->Context, ReturnValue); - return (AE_OK); } @@ -806,7 +836,7 @@ AcpiNsGetDeviceCallback ( ACPI_STATUS AcpiGetDevices ( NATIVE_CHAR *HID, - WALK_CALLBACK UserFunction, + ACPI_WALK_CALLBACK UserFunction, void *Context, void **ReturnValue) { @@ -817,6 +847,14 @@ AcpiGetDevices ( FUNCTION_TRACE ("AcpiGetDevices"); + /* Ensure that ACPI has been initialized */ + + ACPI_IS_INITIALIZATION_COMPLETE (Status); + if (ACPI_FAILURE (Status)) + { + return_ACPI_STATUS (Status); + } + /* Parameter validation */ if (!UserFunction) @@ -839,14 +877,14 @@ AcpiGetDevices ( * must be allowed to make Acpi calls itself. */ - AcpiCmAcquireMutex (ACPI_MTX_NAMESPACE); + AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); Status = AcpiNsWalkNamespace (ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX, NS_WALK_UNLOCK, AcpiNsGetDeviceCallback, &Info, ReturnValue); - AcpiCmReleaseMutex (ACPI_MTX_NAMESPACE); + AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); return_ACPI_STATUS (Status); } |