diff options
Diffstat (limited to 'sys/contrib/dev/acpica/utcopy.c')
-rw-r--r-- | sys/contrib/dev/acpica/utcopy.c | 97 |
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); |