summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev/acpica/utcopy.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/dev/acpica/utcopy.c')
-rw-r--r--sys/contrib/dev/acpica/utcopy.c97
1 files changed, 34 insertions, 63 deletions
diff --git a/sys/contrib/dev/acpica/utcopy.c b/sys/contrib/dev/acpica/utcopy.c
index e215f67..3b67bfb 100644
--- a/sys/contrib/dev/acpica/utcopy.c
+++ b/sys/contrib/dev/acpica/utcopy.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: utcopy - Internal to external object translation utilities
- * $Revision: 95 $
+ * $Revision: 101 $
*
*****************************************************************************/
@@ -117,7 +117,6 @@
#define __UTCOPY_C__
#include "acpi.h"
-#include "acinterp.h"
#include "acnamesp.h"
#include "amlcode.h"
@@ -150,7 +149,6 @@ AcpiUtCopyIsimpleToEsimple (
UINT8 *DataSpace,
ACPI_SIZE *BufferSpaceUsed)
{
- ACPI_BUFFER Buffer;
ACPI_STATUS Status = AE_OK;
@@ -161,7 +159,7 @@ AcpiUtCopyIsimpleToEsimple (
/*
* Check for NULL object case (could be an uninitialized
- * package element
+ * package element)
*/
if (!InternalObject)
{
@@ -176,20 +174,20 @@ AcpiUtCopyIsimpleToEsimple (
* In general, the external object will be the same type as
* the internal object
*/
- ExternalObject->Type = InternalObject->Common.Type;
+ ExternalObject->Type = ACPI_GET_OBJECT_TYPE (InternalObject);
/* However, only a limited number of external types are supported */
- switch (InternalObject->Common.Type)
+ switch (ACPI_GET_OBJECT_TYPE (InternalObject))
{
case ACPI_TYPE_STRING:
ExternalObject->String.Pointer = (NATIVE_CHAR *) DataSpace;
ExternalObject->String.Length = InternalObject->String.Length;
- *BufferSpaceUsed = ACPI_ROUND_UP_TO_NATIVE_WORD (InternalObject->String.Length + 1);
+ *BufferSpaceUsed = ACPI_ROUND_UP_TO_NATIVE_WORD ((ACPI_SIZE) InternalObject->String.Length + 1);
ACPI_MEMCPY ((void *) DataSpace, (void *) InternalObject->String.Pointer,
- InternalObject->String.Length + 1);
+ (ACPI_SIZE) InternalObject->String.Length + 1);
break;
@@ -217,45 +215,9 @@ AcpiUtCopyIsimpleToEsimple (
*/
switch (InternalObject->Reference.Opcode)
{
- case AML_ZERO_OP:
- ExternalObject->Type = ACPI_TYPE_INTEGER;
- ExternalObject->Integer.Value = 0;
- break;
-
- case AML_ONE_OP:
- ExternalObject->Type = ACPI_TYPE_INTEGER;
- ExternalObject->Integer.Value = 1;
- break;
-
- case AML_ONES_OP:
- ExternalObject->Type = ACPI_TYPE_INTEGER;
- ExternalObject->Integer.Value = ACPI_INTEGER_MAX;
- break;
-
- case AML_REVISION_OP:
- ExternalObject->Type = ACPI_TYPE_INTEGER;
- ExternalObject->Integer.Value = ACPI_CA_SUPPORT_LEVEL;
- break;
-
case AML_INT_NAMEPATH_OP:
- /*
- * This is a named reference, get the string. We already know that
- * we have room for it, use max length
- */
- ExternalObject->Type = ACPI_TYPE_STRING;
- ExternalObject->String.Pointer = (NATIVE_CHAR *) DataSpace;
-
- Buffer.Length = MAX_STRING_LENGTH;
- Buffer.Pointer = DataSpace;
- Status = AcpiNsHandleToPathname ((ACPI_HANDLE *) InternalObject->Reference.Node,
- &Buffer);
-
- /* Converted (external) string length is returned from above */
-
- ExternalObject->String.Length = Buffer.Length;
- *BufferSpaceUsed = ACPI_ROUND_UP_TO_NATIVE_WORD (Buffer.Length);
- break;
+ /* For namepath, return the object handle ("reference") */
default:
/*
@@ -271,9 +233,9 @@ AcpiUtCopyIsimpleToEsimple (
case ACPI_TYPE_PROCESSOR:
- ExternalObject->Processor.ProcId = InternalObject->Processor.ProcId;
+ ExternalObject->Processor.ProcId = InternalObject->Processor.ProcId;
ExternalObject->Processor.PblkAddress = InternalObject->Processor.Address;
- ExternalObject->Processor.PblkLength = InternalObject->Processor.Length;
+ ExternalObject->Processor.PblkLength = InternalObject->Processor.Length;
break;
@@ -354,7 +316,7 @@ AcpiUtCopyIelementToEelement (
*/
TargetObject->Type = ACPI_TYPE_PACKAGE;
TargetObject->Package.Count = SourceObject->Package.Count;
- TargetObject->Package.Elements = (ACPI_OBJECT *) Info->FreeSpace;
+ TargetObject->Package.Elements = ACPI_CAST_PTR (ACPI_OBJECT, Info->FreeSpace);
/*
* Pass the new package object back to the package walk routine
@@ -366,7 +328,7 @@ AcpiUtCopyIelementToEelement (
* update the buffer length counter
*/
ObjectSpace = ACPI_ROUND_UP_TO_NATIVE_WORD (
- TargetObject->Package.Count * sizeof (ACPI_OBJECT));
+ (ACPI_SIZE) TargetObject->Package.Count * sizeof (ACPI_OBJECT));
break;
@@ -416,7 +378,7 @@ AcpiUtCopyIpackageToEpackage (
/*
* First package at head of the buffer
*/
- ExternalObject = (ACPI_OBJECT *) Buffer;
+ ExternalObject = ACPI_CAST_PTR (ACPI_OBJECT, Buffer);
/*
* Free space begins right after the first package
@@ -426,9 +388,9 @@ AcpiUtCopyIpackageToEpackage (
Info.NumPackages = 1;
Info.FreeSpace = Buffer + ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT));
- ExternalObject->Type = InternalObject->Common.Type;
+ ExternalObject->Type = ACPI_GET_OBJECT_TYPE (InternalObject);
ExternalObject->Package.Count = InternalObject->Package.Count;
- ExternalObject->Package.Elements = (ACPI_OBJECT *) Info.FreeSpace;
+ ExternalObject->Package.Elements = ACPI_CAST_PTR (ACPI_OBJECT, Info.FreeSpace);
/*
* Build an array of ACPI_OBJECTS in the buffer
@@ -470,7 +432,7 @@ AcpiUtCopyIobjectToEobject (
ACPI_FUNCTION_TRACE ("UtCopyIobjectToEobject");
- if (InternalObject->Common.Type == ACPI_TYPE_PACKAGE)
+ if (ACPI_GET_OBJECT_TYPE (InternalObject) == ACPI_TYPE_PACKAGE)
{
/*
* Package object: Copy all subobjects (including
@@ -558,7 +520,7 @@ AcpiUtCopyEsimpleToIsimple (
case ACPI_TYPE_STRING:
- InternalObject->String.Pointer = ACPI_MEM_CALLOCATE (ExternalObject->String.Length + 1);
+ InternalObject->String.Pointer = ACPI_MEM_CALLOCATE ((ACPI_SIZE) ExternalObject->String.Length + 1);
if (!InternalObject->String.Pointer)
{
return_ACPI_STATUS (AE_NO_MEMORY);
@@ -592,6 +554,10 @@ AcpiUtCopyEsimpleToIsimple (
InternalObject->Integer.Value = ExternalObject->Integer.Value;
break;
+
+ default:
+ /* Other types can't get here */
+ break;
}
*RetInternalObject = InternalObject;
@@ -651,7 +617,7 @@ AcpiUtCopyEpackageToIpackage (
FreeSpace = Buffer + sizeof(ACPI_OBJECT);
- ExternalObject->Type = InternalObject->Common.Type;
+ ExternalObject->Type = ACPI_GET_OBJECT_TYPE (InternalObject);
ExternalObject->Package.Count = InternalObject->Package.Count;
ExternalObject->Package.Elements = (ACPI_OBJECT *)FreeSpace;
@@ -756,7 +722,7 @@ AcpiUtCopySimpleObject (
/* Handle the objects with extra data */
- switch (DestDesc->Common.Type)
+ switch (ACPI_GET_OBJECT_TYPE (DestDesc))
{
case ACPI_TYPE_BUFFER:
@@ -764,6 +730,7 @@ AcpiUtCopySimpleObject (
DestDesc->Common.Flags = SourceDesc->Common.Flags;
/* Fall through to common string/buffer case */
+ /*lint -fallthrough */
case ACPI_TYPE_STRING:
@@ -786,6 +753,10 @@ AcpiUtCopySimpleObject (
SourceDesc->String.Length);
}
break;
+
+ default:
+ /* Nothing to do for other simple objects */
+ break;
}
return (AE_OK);
@@ -831,7 +802,7 @@ AcpiUtCopyIelementToIelement (
/*
* This is a simple object, just copy it
*/
- TargetObject = AcpiUtCreateInternalObject (SourceObject->Common.Type);
+ TargetObject = AcpiUtCreateInternalObject (ACPI_GET_OBJECT_TYPE (SourceObject));
if (!TargetObject)
{
return (AE_NO_MEMORY);
@@ -908,16 +879,16 @@ AcpiUtCopyIpackageToIpackage (
ACPI_FUNCTION_TRACE ("UtCopyIpackageToIpackage");
- DestObj->Common.Type = SourceObj->Common.Type;
+ DestObj->Common.Type = ACPI_GET_OBJECT_TYPE (SourceObj);
DestObj->Common.Flags = SourceObj->Common.Flags;
DestObj->Package.Count = SourceObj->Package.Count;
-
/*
* Create the object array and walk the source package tree
*/
- DestObj->Package.Elements = ACPI_MEM_CALLOCATE ((SourceObj->Package.Count + 1) *
- sizeof (void *));
+ DestObj->Package.Elements = ACPI_MEM_CALLOCATE (
+ ((ACPI_SIZE) SourceObj->Package.Count + 1) *
+ sizeof (void *));
if (!DestObj->Package.Elements)
{
ACPI_REPORT_ERROR (
@@ -970,7 +941,7 @@ AcpiUtCopyIobjectToIobject (
/* Create the top level object */
- *DestDesc = AcpiUtCreateInternalObject (SourceDesc->Common.Type);
+ *DestDesc = AcpiUtCreateInternalObject (ACPI_GET_OBJECT_TYPE (SourceDesc));
if (!*DestDesc)
{
return_ACPI_STATUS (AE_NO_MEMORY);
@@ -978,7 +949,7 @@ AcpiUtCopyIobjectToIobject (
/* Copy the object and possible subobjects */
- if (SourceDesc->Common.Type == ACPI_TYPE_PACKAGE)
+ if (ACPI_GET_OBJECT_TYPE (SourceDesc) == ACPI_TYPE_PACKAGE)
{
Status = AcpiUtCopyIpackageToIpackage (SourceDesc, *DestDesc,
WalkState);
OpenPOWER on IntegriCloud