summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev/acpica/nsxfobj.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/dev/acpica/nsxfobj.c')
-rw-r--r--sys/contrib/dev/acpica/nsxfobj.c128
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);
}
OpenPOWER on IntegriCloud