diff options
Diffstat (limited to 'sys/contrib/dev/acpica/Subsystem/Resources')
-rw-r--r-- | sys/contrib/dev/acpica/Subsystem/Resources/rsaddr.c | 923 | ||||
-rw-r--r-- | sys/contrib/dev/acpica/Subsystem/Resources/rscalc.c | 1003 | ||||
-rw-r--r-- | sys/contrib/dev/acpica/Subsystem/Resources/rscreate.c | 585 | ||||
-rw-r--r-- | sys/contrib/dev/acpica/Subsystem/Resources/rsdump.c | 1045 | ||||
-rw-r--r-- | sys/contrib/dev/acpica/Subsystem/Resources/rsio.c | 637 | ||||
-rw-r--r-- | sys/contrib/dev/acpica/Subsystem/Resources/rsirq.c | 684 | ||||
-rw-r--r-- | sys/contrib/dev/acpica/Subsystem/Resources/rslist.c | 605 | ||||
-rw-r--r-- | sys/contrib/dev/acpica/Subsystem/Resources/rsmemory.c | 661 | ||||
-rw-r--r-- | sys/contrib/dev/acpica/Subsystem/Resources/rsmisc.c | 726 | ||||
-rw-r--r-- | sys/contrib/dev/acpica/Subsystem/Resources/rsutils.c | 511 | ||||
-rw-r--r-- | sys/contrib/dev/acpica/Subsystem/Resources/rsxface.c | 326 |
11 files changed, 0 insertions, 7706 deletions
diff --git a/sys/contrib/dev/acpica/Subsystem/Resources/rsaddr.c b/sys/contrib/dev/acpica/Subsystem/Resources/rsaddr.c deleted file mode 100644 index 546ff9bfbb56c..0000000000000 --- a/sys/contrib/dev/acpica/Subsystem/Resources/rsaddr.c +++ /dev/null @@ -1,923 +0,0 @@ -/******************************************************************************* - * - * Module Name: rsaddr - AcpiRsAddress16Resource - * AcpiRsAddress16Stream - * AcpiRsAddress32Resource - * AcpiRsAddress32Stream - * $Revision: 14 $ - * - ******************************************************************************/ - -/****************************************************************************** - * - * 1. Copyright Notice - * - * Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp. - * All rights reserved. - * - * 2. License - * - * 2.1. This is your license from Intel Corp. under its intellectual property - * rights. You may have additional license terms from the party that provided - * you this software, covering your right to use that party's intellectual - * property rights. - * - * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a - * copy of the source code appearing in this file ("Covered Code") an - * irrevocable, perpetual, worldwide license under Intel's copyrights in the - * base code distributed originally by Intel ("Original Intel Code") to copy, - * make derivatives, distribute, use and display any portion of the Covered - * Code in any form, with the right to sublicense such rights; and - * - * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent - * license (with the right to sublicense), under only those claims of Intel - * patents that are infringed by the Original Intel Code, to make, use, sell, - * offer to sell, and import the Covered Code and derivative works thereof - * solely to the minimum extent necessary to exercise the above copyright - * license, and in no event shall the patent license extend to any additions - * to or modifications of the Original Intel Code. No other license or right - * is granted directly or by implication, estoppel or otherwise; - * - * The above copyright and patent license is granted only if the following - * conditions are met: - * - * 3. Conditions - * - * 3.1. Redistribution of Source with Rights to Further Distribute Source. - * Redistribution of source code of any substantial portion of the Covered - * Code or modification with rights to further distribute source must include - * the above Copyright Notice, the above License, this list of Conditions, - * and the following Disclaimer and Export Compliance provision. In addition, - * Licensee must cause all Covered Code to which Licensee contributes to - * contain a file documenting the changes Licensee made to create that Covered - * Code and the date of any change. Licensee must include in that file the - * documentation of any changes made by any predecessor Licensee. Licensee - * must include a prominent statement that the modification is derived, - * directly or indirectly, from Original Intel Code. - * - * 3.2. Redistribution of Source with no Rights to Further Distribute Source. - * Redistribution of source code of any substantial portion of the Covered - * Code or modification without rights to further distribute source must - * include the following Disclaimer and Export Compliance provision in the - * documentation and/or other materials provided with distribution. In - * addition, Licensee may not authorize further sublicense of source of any - * portion of the Covered Code, and must include terms to the effect that the - * license from Licensee to its licensee is limited to the intellectual - * property embodied in the software Licensee provides to its licensee, and - * not to intellectual property embodied in modifications its licensee may - * make. - * - * 3.3. Redistribution of Executable. Redistribution in executable form of any - * substantial portion of the Covered Code or modification must reproduce the - * above Copyright Notice, and the following Disclaimer and Export Compliance - * provision in the documentation and/or other materials provided with the - * distribution. - * - * 3.4. Intel retains all right, title, and interest in and to the Original - * Intel Code. - * - * 3.5. Neither the name Intel nor any other trademark owned or controlled by - * Intel shall be used in advertising or otherwise to promote the sale, use or - * other dealings in products derived from or relating to the Covered Code - * without prior written authorization from Intel. - * - * 4. Disclaimer and Export Compliance - * - * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED - * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE - * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, - * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY - * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY - * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A - * PARTICULAR PURPOSE. - * - * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES - * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR - * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, - * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY - * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL - * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS - * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY - * LIMITED REMEDY. - * - * 4.3. Licensee shall not export, either directly or indirectly, any of this - * software or system incorporating such software without first obtaining any - * required license or other approval from the U. S. Department of Commerce or - * any other agency or department of the United States Government. In the - * event Licensee exports any such software from the United States or - * re-exports any such software from a foreign destination, Licensee shall - * ensure that the distribution and export/re-export of the software is in - * compliance with all laws, regulations, orders, or other restrictions of the - * U.S. Export Administration Regulations. Licensee agrees that neither it nor - * any of its subsidiaries will export/re-export any technical data, process, - * software, or service, directly or indirectly, to any country for which the - * United States government or any agency thereof requires an export license, - * other governmental approval, or letter of assurance, without first obtaining - * such license, approval or letter. - * - *****************************************************************************/ - -#define __RSADDR_C__ - -#include "acpi.h" -#include "acresrc.h" - -#define _COMPONENT RESOURCE_MANAGER - MODULE_NAME ("rsaddr") - - -/******************************************************************************* - * - * FUNCTION: AcpiRsAddress16Resource - * - * PARAMETERS: ByteStreamBuffer - Pointer to the resource input byte - * stream - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes consumed from - * the ByteStreamBuffer - * OutputBuffer - Pointer to the user's return buffer - * StructureSize - UINT32 pointer that is filled with - * the number of bytes in the filled - * in structure - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the resource byte stream and fill out the appropriate - * structure pointed to by the OutputBuffer. Return the - * number of bytes consumed from the byte stream. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsAddress16Resource ( - UINT8 *ByteStreamBuffer, - UINT32 *BytesConsumed, - UINT8 **OutputBuffer, - UINT32 *StructureSize) -{ - UINT8 *Buffer = ByteStreamBuffer; - RESOURCE *OutputStruct = (RESOURCE *) * OutputBuffer; - UINT16 Temp16; - UINT8 Temp8; - UINT32 Index; - UINT32 StructSize = sizeof(ADDRESS16_RESOURCE) + - RESOURCE_LENGTH_NO_DATA; - - - FUNCTION_TRACE ("RsAddress16Resource"); - - /* - * Point past the Descriptor to get the number of bytes consumed - */ - Buffer += 1; - - MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer); - - *BytesConsumed = Temp16 + 3; - - OutputStruct->Id = Address16; - - OutputStruct->Length = StructSize; - - /* - * Get the Resource Type (Byte3) - */ - Buffer += 2; - Temp8 = *Buffer; - - /* Values 0-2 are valid */ - if (Temp8 > 2) - { - return_ACPI_STATUS (AE_AML_ERROR); - } - - OutputStruct->Data.Address16.ResourceType = Temp8 & 0x03; - - /* - * Get the General Flags (Byte4) - */ - Buffer += 1; - Temp8 = *Buffer; - - /* - * Producer / Consumer - */ - OutputStruct->Data.Address16.ProducerConsumer = Temp8 & 0x01; - - /* - * Decode - */ - OutputStruct->Data.Address16.Decode = (Temp8 >> 1) & 0x01; - - /* - * Min Address Fixed - */ - OutputStruct->Data.Address16.MinAddressFixed = (Temp8 >> 2) & 0x01; - - /* - * Max Address Fixed - */ - OutputStruct->Data.Address16.MaxAddressFixed = (Temp8 >> 3) & 0x01; - - /* - * Get the Type Specific Flags (Byte5) - */ - Buffer += 1; - Temp8 = *Buffer; - - if (MEMORY_RANGE == OutputStruct->Data.Address16.ResourceType) - { - OutputStruct->Data.Address16.Attribute.Memory.ReadWriteAttribute = - (UINT16) (Temp8 & 0x01); - OutputStruct->Data.Address16.Attribute.Memory.CacheAttribute = - (UINT16) ((Temp8 >> 1) & 0x0F); - } - - else - { - if (IO_RANGE == OutputStruct->Data.Address16.ResourceType) - { - OutputStruct->Data.Address16.Attribute.Io.RangeAttribute = - (UINT16) (Temp8 & 0x03); - } - - else - { - /* BUS_NUMBER_RANGE == Address32Data->ResourceType */ - /* Nothing needs to be filled in */ - } - } - - /* - * Get Granularity (Bytes 6-7) - */ - Buffer += 1; - MOVE_UNALIGNED16_TO_16 (&OutputStruct->Data.Address16.Granularity, - Buffer); - - /* - * Get MinAddressRange (Bytes 8-9) - */ - Buffer += 2; - MOVE_UNALIGNED16_TO_16 (&OutputStruct->Data.Address16.MinAddressRange, - Buffer); - - /* - * Get MaxAddressRange (Bytes 10-11) - */ - Buffer += 2; - MOVE_UNALIGNED16_TO_16 - (&OutputStruct->Data.Address16.MaxAddressRange, - Buffer); - - /* - * Get AddressTranslationOffset (Bytes 12-13) - */ - Buffer += 2; - MOVE_UNALIGNED16_TO_16 - (&OutputStruct->Data.Address16.AddressTranslationOffset, - Buffer); - - /* - * Get AddressLength (Bytes 14-15) - */ - Buffer += 2; - MOVE_UNALIGNED16_TO_16 - (&OutputStruct->Data.Address16.AddressLength, - Buffer); - - /* - * Resource Source Index (if present) - */ - Buffer += 2; - - /* - * This will leave us pointing to the Resource Source Index - * If it is present, then save it off and calculate the - * pointer to where the null terminated string goes: - * Each Interrupt takes 32-bits + the 5 bytes of the - * stream that are default. - */ - if (*BytesConsumed > 16) - { - /* Dereference the Index */ - - Temp8 = *Buffer; - OutputStruct->Data.Address16.ResourceSourceIndex = - (UINT32) Temp8; - - /* Point to the String */ - - Buffer += 1; - - /* Copy the string into the buffer */ - - Index = 0; - - while (0x00 != *Buffer) - { - OutputStruct->Data.Address16.ResourceSource[Index] = - *Buffer; - - Buffer += 1; - Index += 1; - } - - /* - * Add the terminating null - */ - OutputStruct->Data.Address16.ResourceSource[Index] = 0x00; - - OutputStruct->Data.Address16.ResourceSourceStringLength = - Index + 1; - - /* - * In order for the StructSize to fall on a 32-bit boundry, - * calculate the length of the string and expand the - * StructSize to the next 32-bit boundry. - */ - Temp8 = (UINT8) (Index + 1); - StructSize += ROUND_UP_TO_32BITS (Temp8); - OutputStruct->Length = StructSize; - } - else - { - OutputStruct->Data.Address16.ResourceSourceIndex = 0x00; - OutputStruct->Data.Address16.ResourceSourceStringLength = 0; - OutputStruct->Data.Address16.ResourceSource[0] = 0x00; - } - - /* - * Return the final size of the structure - */ - *StructureSize = StructSize; - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsAddress16Stream - * - * PARAMETERS: LinkedList - Pointer to the resource linked list - * OutputBuffer - Pointer to the user's return buffer - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes of the - * OutputBuffer used - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the linked list resource structure and fills in the - * the appropriate bytes in a byte stream - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsAddress16Stream ( - RESOURCE *LinkedList, - UINT8 **OutputBuffer, - UINT32 *BytesConsumed) -{ - UINT8 *Buffer = *OutputBuffer; - UINT8 *LengthField; - UINT8 Temp8; - NATIVE_CHAR *TempPointer = NULL; - UINT32 ActualBytes; - - - FUNCTION_TRACE ("RsAddress16Stream"); - - /* - * The descriptor field is static - */ - *Buffer = 0x88; - Buffer += 1; - - /* - * Save a pointer to the Length field - to be filled in later - */ - LengthField = Buffer; - Buffer += 2; - - /* - * Set the Resource Type (Memory, Io, BusNumber) - */ - Temp8 = (UINT8) (LinkedList->Data.Address16.ResourceType & 0x03); - *Buffer = Temp8; - Buffer += 1; - - /* - * Set the general flags - */ - Temp8 = (UINT8) (LinkedList->Data.Address16.ProducerConsumer & 0x01); - - Temp8 |= (LinkedList->Data.Address16.Decode & 0x01) << 1; - Temp8 |= (LinkedList->Data.Address16.MinAddressFixed & 0x01) << 2; - Temp8 |= (LinkedList->Data.Address16.MaxAddressFixed & 0x01) << 3; - - *Buffer = Temp8; - Buffer += 1; - - /* - * Set the type specific flags - */ - Temp8 = 0; - - if (MEMORY_RANGE == LinkedList->Data.Address16.ResourceType) - { - Temp8 = (UINT8) - (LinkedList->Data.Address16.Attribute.Memory.ReadWriteAttribute & - 0x01); - - Temp8 |= - (LinkedList->Data.Address16.Attribute.Memory.CacheAttribute & - 0x0F) << 1; - } - - else if (IO_RANGE == LinkedList->Data.Address16.ResourceType) - { - Temp8 = (UINT8) - (LinkedList->Data.Address16.Attribute.Io.RangeAttribute & - 0x03); - } - - *Buffer = Temp8; - Buffer += 1; - - /* - * Set the address space granularity - */ - MOVE_UNALIGNED16_TO_16 (Buffer, - &LinkedList->Data.Address16.Granularity); - Buffer += 2; - - /* - * Set the address range minimum - */ - MOVE_UNALIGNED16_TO_16 (Buffer, - &LinkedList->Data.Address16.MinAddressRange); - Buffer += 2; - - /* - * Set the address range maximum - */ - MOVE_UNALIGNED16_TO_16 (Buffer, - &LinkedList->Data.Address16.MaxAddressRange); - Buffer += 2; - - /* - * Set the address translation offset - */ - MOVE_UNALIGNED16_TO_16 (Buffer, - &LinkedList->Data.Address16.AddressTranslationOffset); - Buffer += 2; - - /* - * Set the address length - */ - MOVE_UNALIGNED16_TO_16 (Buffer, - &LinkedList->Data.Address16.AddressLength); - Buffer += 2; - - /* - * Resource Source Index and Resource Source are optional - */ - if (0 != LinkedList->Data.Address16.ResourceSourceStringLength) - { - Temp8 = (UINT8) LinkedList->Data.Address16.ResourceSourceIndex; - - *Buffer = Temp8; - Buffer += 1; - - TempPointer = (NATIVE_CHAR *) Buffer; - - /* - * Copy the string - */ - STRCPY (TempPointer, LinkedList->Data.Address16.ResourceSource); - - /* - * Buffer needs to be set to the length of the sting + one for the - * terminating null - */ - Buffer += (STRLEN (LinkedList->Data.Address16.ResourceSource) + 1); - } - - /* - * Return the number of bytes consumed in this operation - */ - ActualBytes = (UINT32) ((NATIVE_UINT) Buffer - - (NATIVE_UINT) *OutputBuffer); - - *BytesConsumed = ActualBytes; - - /* - * Set the length field to the number of bytes consumed - * minus the header size (3 bytes) - */ - ActualBytes -= 3; - MOVE_UNALIGNED16_TO_16 (LengthField, &ActualBytes); - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsAddress32Resource - * - * PARAMETERS: ByteStreamBuffer - Pointer to the resource input byte - * stream - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes consumed from - * the ByteStreamBuffer - * OutputBuffer - Pointer to the user's return buffer - * StructureSize - UINT32 pointer that is filled with - * the number of bytes in the filled - * in structure - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the resource byte stream and fill out the appropriate - * structure pointed to by the OutputBuffer. Return the - * number of bytes consumed from the byte stream. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsAddress32Resource ( - UINT8 *ByteStreamBuffer, - UINT32 *BytesConsumed, - UINT8 **OutputBuffer, - UINT32 *StructureSize) -{ - UINT8 *Buffer; - RESOURCE *OutputStruct; - UINT16 Temp16; - UINT8 Temp8; - UINT32 StructSize; - UINT32 Index; - - - FUNCTION_TRACE ("RsAddress32Resource"); - - Buffer = ByteStreamBuffer; - - OutputStruct = (RESOURCE *) *OutputBuffer; - - StructSize = sizeof (ADDRESS32_RESOURCE) + - RESOURCE_LENGTH_NO_DATA; - - /* - * Point past the Descriptor to get the number of bytes consumed - */ - Buffer += 1; - MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer); - - *BytesConsumed = Temp16 + 3; - - OutputStruct->Id = Address32; - - /* - * Get the Resource Type (Byte3) - */ - Buffer += 2; - Temp8 = *Buffer; - - /* Values 0-2 are valid */ - if(Temp8 > 2) - { - return_ACPI_STATUS (AE_AML_ERROR); - } - - OutputStruct->Data.Address32.ResourceType = Temp8 & 0x03; - - /* - * Get the General Flags (Byte4) - */ - Buffer += 1; - Temp8 = *Buffer; - - /* - * Producer / Consumer - */ - OutputStruct->Data.Address32.ProducerConsumer = Temp8 & 0x01; - - /* - * Decode - */ - OutputStruct->Data.Address32.Decode = (Temp8 >> 1) & 0x01; - - /* - * Min Address Fixed - */ - OutputStruct->Data.Address32.MinAddressFixed = (Temp8 >> 2) & 0x01; - - /* - * Max Address Fixed - */ - OutputStruct->Data.Address32.MaxAddressFixed = (Temp8 >> 3) & 0x01; - - /* - * Get the Type Specific Flags (Byte5) - */ - Buffer += 1; - Temp8 = *Buffer; - - if (MEMORY_RANGE == OutputStruct->Data.Address32.ResourceType) - { - OutputStruct->Data.Address32.Attribute.Memory.ReadWriteAttribute = - (UINT16) (Temp8 & 0x01); - - OutputStruct->Data.Address32.Attribute.Memory.CacheAttribute = - (UINT16) ((Temp8 >> 1) & 0x0F); - } - - else - { - if (IO_RANGE == OutputStruct->Data.Address32.ResourceType) - { - OutputStruct->Data.Address32.Attribute.Io.RangeAttribute = - (UINT16) (Temp8 & 0x03); - } - - else - { - /* BUS_NUMBER_RANGE == OutputStruct->Data.Address32.ResourceType */ - /* Nothing needs to be filled in */ - } - } - - /* - * Get Granularity (Bytes 6-9) - */ - Buffer += 1; - MOVE_UNALIGNED32_TO_32 (&OutputStruct->Data.Address32.Granularity, - Buffer); - - /* - * Get MinAddressRange (Bytes 10-13) - */ - Buffer += 4; - MOVE_UNALIGNED32_TO_32 (&OutputStruct->Data.Address32.MinAddressRange, - Buffer); - - /* - * Get MaxAddressRange (Bytes 14-17) - */ - Buffer += 4; - MOVE_UNALIGNED32_TO_32 (&OutputStruct->Data.Address32.MaxAddressRange, - Buffer); - - /* - * Get AddressTranslationOffset (Bytes 18-21) - */ - Buffer += 4; - MOVE_UNALIGNED32_TO_32 - (&OutputStruct->Data.Address32.AddressTranslationOffset, - Buffer); - - /* - * Get AddressLength (Bytes 22-25) - */ - Buffer += 4; - MOVE_UNALIGNED32_TO_32 (&OutputStruct->Data.Address32.AddressLength, - Buffer); - - /* - * Resource Source Index (if present) - */ - Buffer += 4; - - /* - * This will leave us pointing to the Resource Source Index - * If it is present, then save it off and calculate the - * pointer to where the null terminated string goes: - * Each Interrupt takes 32-bits + the 5 bytes of the - * stream that are default. - */ - if (*BytesConsumed > 26) - { - /* Dereference the Index */ - - Temp8 = *Buffer; - OutputStruct->Data.Address32.ResourceSourceIndex = (UINT32)Temp8; - - /* Point to the String */ - - Buffer += 1; - - /* Copy the string into the buffer */ - - Index = 0; - - while (0x00 != *Buffer) - { - OutputStruct->Data.Address32.ResourceSource[Index] = *Buffer; - Buffer += 1; - Index += 1; - } - - /* - * Add the terminating null - */ - OutputStruct->Data.Address32.ResourceSource[Index] = 0x00; - - OutputStruct->Data.Address32.ResourceSourceStringLength = Index + 1; - - /* - * In order for the StructSize to fall on a 32-bit boundry, - * calculate the length of the string and expand the - * StructSize to the next 32-bit boundry. - */ - Temp8 = (UINT8) (Index + 1); - StructSize += ROUND_UP_TO_32BITS (Temp8); - } - - else - { - OutputStruct->Data.Address32.ResourceSourceIndex = 0x00; - OutputStruct->Data.Address32.ResourceSourceStringLength = 0; - OutputStruct->Data.Address32.ResourceSource[0] = 0x00; - } - - /* - * Set the Length parameter - */ - OutputStruct->Length = StructSize; - - /* - * Return the final size of the structure - */ - *StructureSize = StructSize; - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsAddress32Stream - * - * PARAMETERS: LinkedList - Pointer to the resource linked list - * OutputBuffer - Pointer to the user's return buffer - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes of the - * OutputBuffer used - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the linked list resource structure and fills in the - * the appropriate bytes in a byte stream - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsAddress32Stream ( - RESOURCE *LinkedList, - UINT8 **OutputBuffer, - UINT32 *BytesConsumed) -{ - UINT8 *Buffer; - UINT16 *LengthField; - UINT8 Temp8; - NATIVE_CHAR *TempPointer; - - - FUNCTION_TRACE ("RsAddress32Stream"); - - Buffer = *OutputBuffer; - - /* - * The descriptor field is static - */ - *Buffer = 0x87; - Buffer += 1; - - /* - * Set a pointer to the Length field - to be filled in later - */ - - LengthField = (UINT16 *)Buffer; - Buffer += 2; - - /* - * Set the Resource Type (Memory, Io, BusNumber) - */ - Temp8 = (UINT8) (LinkedList->Data.Address32.ResourceType & 0x03); - - *Buffer = Temp8; - Buffer += 1; - - /* - * Set the general flags - */ - Temp8 = (UINT8) (LinkedList->Data.Address32.ProducerConsumer & 0x01); - Temp8 |= (LinkedList->Data.Address32.Decode & 0x01) << 1; - Temp8 |= (LinkedList->Data.Address32.MinAddressFixed & 0x01) << 2; - Temp8 |= (LinkedList->Data.Address32.MaxAddressFixed & 0x01) << 3; - - *Buffer = Temp8; - Buffer += 1; - - /* - * Set the type specific flags - */ - Temp8 = 0; - - if(MEMORY_RANGE == LinkedList->Data.Address32.ResourceType) - { - Temp8 = (UINT8) - (LinkedList->Data.Address32.Attribute.Memory.ReadWriteAttribute & - 0x01); - - Temp8 |= - (LinkedList->Data.Address32.Attribute.Memory.CacheAttribute & - 0x0F) << 1; - } - - else if (IO_RANGE == LinkedList->Data.Address32.ResourceType) - { - Temp8 = (UINT8) - (LinkedList->Data.Address32.Attribute.Io.RangeAttribute & - 0x03); - } - - *Buffer = Temp8; - Buffer += 1; - - /* - * Set the address space granularity - */ - MOVE_UNALIGNED32_TO_32 (Buffer, - &LinkedList->Data.Address32.Granularity); - Buffer += 4; - - /* - * Set the address range minimum - */ - MOVE_UNALIGNED32_TO_32 (Buffer, - &LinkedList->Data.Address32.MinAddressRange); - Buffer += 4; - - /* - * Set the address range maximum - */ - MOVE_UNALIGNED32_TO_32 (Buffer, - &LinkedList->Data.Address32.MaxAddressRange); - Buffer += 4; - - /* - * Set the address translation offset - */ - MOVE_UNALIGNED32_TO_32 (Buffer, - &LinkedList->Data.Address32.AddressTranslationOffset); - Buffer += 4; - - /* - * Set the address length - */ - MOVE_UNALIGNED32_TO_32 (Buffer, - &LinkedList->Data.Address32.AddressLength); - Buffer += 4; - - /* - * Resource Source Index and Resource Source are optional - */ - if (0 != LinkedList->Data.Address32.ResourceSourceStringLength) - { - Temp8 = (UINT8) LinkedList->Data.Address32.ResourceSourceIndex; - - *Buffer = Temp8; - Buffer += 1; - - TempPointer = (NATIVE_CHAR *) Buffer; - - /* - * Copy the string - */ - STRCPY (TempPointer, LinkedList->Data.Address32.ResourceSource); - - /* - * Buffer needs to be set to the length of the sting + one for the - * terminating null - */ - Buffer += (STRLEN (LinkedList->Data.Address32.ResourceSource) + 1); - } - - /* - * Return the number of bytes consumed in this operation - */ - *BytesConsumed = (UINT32) ((NATIVE_UINT) Buffer - - (NATIVE_UINT) *OutputBuffer); - - /* - * Set the length field to the number of bytes consumed - * minus the header size (3 bytes) - */ - *LengthField = (UINT16) (*BytesConsumed - 3); - - return_ACPI_STATUS (AE_OK); -} - diff --git a/sys/contrib/dev/acpica/Subsystem/Resources/rscalc.c b/sys/contrib/dev/acpica/Subsystem/Resources/rscalc.c deleted file mode 100644 index 2f03cf4d77b86..0000000000000 --- a/sys/contrib/dev/acpica/Subsystem/Resources/rscalc.c +++ /dev/null @@ -1,1003 +0,0 @@ -/******************************************************************************* - * - * Module Name: rscalc - AcpiRsCalculateByteStreamLength - * AcpiRsCalculateListLength - * $Revision: 21 $ - * - ******************************************************************************/ - -/****************************************************************************** - * - * 1. Copyright Notice - * - * Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp. - * All rights reserved. - * - * 2. License - * - * 2.1. This is your license from Intel Corp. under its intellectual property - * rights. You may have additional license terms from the party that provided - * you this software, covering your right to use that party's intellectual - * property rights. - * - * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a - * copy of the source code appearing in this file ("Covered Code") an - * irrevocable, perpetual, worldwide license under Intel's copyrights in the - * base code distributed originally by Intel ("Original Intel Code") to copy, - * make derivatives, distribute, use and display any portion of the Covered - * Code in any form, with the right to sublicense such rights; and - * - * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent - * license (with the right to sublicense), under only those claims of Intel - * patents that are infringed by the Original Intel Code, to make, use, sell, - * offer to sell, and import the Covered Code and derivative works thereof - * solely to the minimum extent necessary to exercise the above copyright - * license, and in no event shall the patent license extend to any additions - * to or modifications of the Original Intel Code. No other license or right - * is granted directly or by implication, estoppel or otherwise; - * - * The above copyright and patent license is granted only if the following - * conditions are met: - * - * 3. Conditions - * - * 3.1. Redistribution of Source with Rights to Further Distribute Source. - * Redistribution of source code of any substantial portion of the Covered - * Code or modification with rights to further distribute source must include - * the above Copyright Notice, the above License, this list of Conditions, - * and the following Disclaimer and Export Compliance provision. In addition, - * Licensee must cause all Covered Code to which Licensee contributes to - * contain a file documenting the changes Licensee made to create that Covered - * Code and the date of any change. Licensee must include in that file the - * documentation of any changes made by any predecessor Licensee. Licensee - * must include a prominent statement that the modification is derived, - * directly or indirectly, from Original Intel Code. - * - * 3.2. Redistribution of Source with no Rights to Further Distribute Source. - * Redistribution of source code of any substantial portion of the Covered - * Code or modification without rights to further distribute source must - * include the following Disclaimer and Export Compliance provision in the - * documentation and/or other materials provided with distribution. In - * addition, Licensee may not authorize further sublicense of source of any - * portion of the Covered Code, and must include terms to the effect that the - * license from Licensee to its licensee is limited to the intellectual - * property embodied in the software Licensee provides to its licensee, and - * not to intellectual property embodied in modifications its licensee may - * make. - * - * 3.3. Redistribution of Executable. Redistribution in executable form of any - * substantial portion of the Covered Code or modification must reproduce the - * above Copyright Notice, and the following Disclaimer and Export Compliance - * provision in the documentation and/or other materials provided with the - * distribution. - * - * 3.4. Intel retains all right, title, and interest in and to the Original - * Intel Code. - * - * 3.5. Neither the name Intel nor any other trademark owned or controlled by - * Intel shall be used in advertising or otherwise to promote the sale, use or - * other dealings in products derived from or relating to the Covered Code - * without prior written authorization from Intel. - * - * 4. Disclaimer and Export Compliance - * - * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED - * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE - * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, - * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY - * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY - * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A - * PARTICULAR PURPOSE. - * - * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES - * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR - * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, - * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY - * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL - * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS - * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY - * LIMITED REMEDY. - * - * 4.3. Licensee shall not export, either directly or indirectly, any of this - * software or system incorporating such software without first obtaining any - * required license or other approval from the U. S. Department of Commerce or - * any other agency or department of the United States Government. In the - * event Licensee exports any such software from the United States or - * re-exports any such software from a foreign destination, Licensee shall - * ensure that the distribution and export/re-export of the software is in - * compliance with all laws, regulations, orders, or other restrictions of the - * U.S. Export Administration Regulations. Licensee agrees that neither it nor - * any of its subsidiaries will export/re-export any technical data, process, - * software, or service, directly or indirectly, to any country for which the - * United States government or any agency thereof requires an export license, - * other governmental approval, or letter of assurance, without first obtaining - * such license, approval or letter. - * - *****************************************************************************/ - -#define __RSCALC_C__ - -#include "acpi.h" -#include "acresrc.h" -#include "amlcode.h" -#include "acnamesp.h" - -#define _COMPONENT RESOURCE_MANAGER - MODULE_NAME ("rscalc") - - -/******************************************************************************* - * - * FUNCTION: AcpiRsCalculateByteStreamLength - * - * PARAMETERS: LinkedList - Pointer to the resource linked list - * SizeNeeded - UINT32 pointer of the size buffer needed - * to properly return the parsed data - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Takes the resource byte stream and parses it once, calculating - * the size buffer needed to hold the linked list that conveys - * the resource data. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsCalculateByteStreamLength ( - RESOURCE *LinkedList, - UINT32 *SizeNeeded) -{ - UINT32 ByteStreamSizeNeeded = 0; - UINT32 SegmentSize; - EXTENDED_IRQ_RESOURCE *ExIrq = NULL; - BOOLEAN Done = FALSE; - - - FUNCTION_TRACE ("RsCalculateByteStreamLength"); - - - while (!Done) - { - - /* - * Init the variable that will hold the size to add to the - * total. - */ - SegmentSize = 0; - - switch (LinkedList->Id) - { - case Irq: - /* - * IRQ Resource - */ - /* - * For an IRQ Resource, Byte 3, although optional, will - * always be created - it holds IRQ information. - */ - SegmentSize = 4; - break; - - case Dma: - /* - * DMA Resource - */ - /* - * For this resource the size is static - */ - SegmentSize = 3; - break; - - case StartDependentFunctions: - /* - * Start Dependent Functions Resource - */ - /* - * For a StartDependentFunctions Resource, Byte 1, - * although optional, will always be created. - */ - SegmentSize = 2; - break; - - case EndDependentFunctions: - /* - * End Dependent Functions Resource - */ - /* - * For this resource the size is static - */ - SegmentSize = 1; - break; - - case Io: - /* - * IO Port Resource - */ - /* - * For this resource the size is static - */ - SegmentSize = 8; - break; - - case FixedIo: - /* - * Fixed IO Port Resource - */ - /* - * For this resource the size is static - */ - SegmentSize = 4; - break; - - case VendorSpecific: - /* - * Vendor Defined Resource - */ - /* - * For a Vendor Specific resource, if the Length is - * between 1 and 7 it will be created as a Small - * Resource data type, otherwise it is a Large - * Resource data type. - */ - if(LinkedList->Data.VendorSpecific.Length > 7) - { - SegmentSize = 3; - } - else - { - SegmentSize = 1; - } - SegmentSize += - LinkedList->Data.VendorSpecific.Length; - break; - - case EndTag: - /* - * End Tag - */ - /* - * For this resource the size is static - */ - SegmentSize = 2; - Done = TRUE; - break; - - case Memory24: - /* - * 24-Bit Memory Resource - */ - /* - * For this resource the size is static - */ - SegmentSize = 12; - break; - - case Memory32: - /* - * 32-Bit Memory Range Resource - */ - /* - * For this resource the size is static - */ - SegmentSize = 20; - break; - - case FixedMemory32: - /* - * 32-Bit Fixed Memory Resource - */ - /* - * For this resource the size is static - */ - SegmentSize = 12; - break; - - case Address16: - /* - * 16-Bit Address Resource - */ - /* - * The base size of this byte stream is 16. If a - * Resource Source string is not NULL, add 1 for - * the Index + the length of the null terminated - * string Resource Source + 1 for the null. - */ - SegmentSize = 16; - - if(NULL != LinkedList->Data.Address16.ResourceSource) - { - SegmentSize += (1 + - LinkedList->Data.Address16.ResourceSourceStringLength); - } - break; - - case Address32: - /* - * 32-Bit Address Resource - */ - /* - * The base size of this byte stream is 26. If a Resource - * Source string is not NULL, add 1 for the Index + the - * length of the null terminated string Resource Source + - * 1 for the null. - */ - SegmentSize = 26; - - if(NULL != LinkedList->Data.Address16.ResourceSource) - { - SegmentSize += (1 + - LinkedList->Data.Address16.ResourceSourceStringLength); - } - break; - - case ExtendedIrq: - /* - * Extended IRQ Resource - */ - /* - * The base size of this byte stream is 9. This is for an - * Interrupt table length of 1. For each additional - * interrupt, add 4. - * If a Resource Source string is not NULL, add 1 for the - * Index + the length of the null terminated string - * Resource Source + 1 for the null. - */ - SegmentSize = 9; - - SegmentSize += - (LinkedList->Data.ExtendedIrq.NumberOfInterrupts - - 1) * 4; - - if(NULL != ExIrq->ResourceSource) - { - SegmentSize += (1 + - LinkedList->Data.ExtendedIrq.ResourceSourceStringLength); - } - break; - - default: - /* - * If we get here, everything is out of sync, - * so exit with an error - */ - return_ACPI_STATUS (AE_AML_ERROR); - break; - - } /* switch (LinkedList->Id) */ - - /* - * Update the total - */ - ByteStreamSizeNeeded += SegmentSize; - - /* - * Point to the next object - */ - LinkedList = (RESOURCE *) ((NATIVE_UINT) LinkedList + - (NATIVE_UINT) LinkedList->Length); - } - - /* - * This is the data the caller needs - */ - *SizeNeeded = ByteStreamSizeNeeded; - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsCalculateListLength - * - * PARAMETERS: ByteStreamBuffer - Pointer to the resource byte stream - * ByteStreamBufferLength - Size of ByteStreamBuffer - * SizeNeeded - UINT32 pointer of the size buffer - * needed to properly return the - * parsed data - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Takes the resource byte stream and parses it once, calculating - * the size buffer needed to hold the linked list that conveys - * the resource data. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsCalculateListLength ( - UINT8 *ByteStreamBuffer, - UINT32 ByteStreamBufferLength, - UINT32 *SizeNeeded) -{ - UINT32 BufferSize = 0; - UINT32 BytesParsed = 0; - UINT8 NumberOfInterrupts = 0; - UINT8 NumberOfChannels = 0; - UINT8 ResourceType; - UINT32 StructureSize; - UINT32 BytesConsumed; - UINT8 *Buffer; - UINT8 Temp8; - UINT16 Temp16; - UINT8 Index; - UINT8 AdditionalBytes; - - - FUNCTION_TRACE ("RsCalculateListLength"); - - - while (BytesParsed < ByteStreamBufferLength) - { - /* - * Look at the next byte in the stream - */ - ResourceType = *ByteStreamBuffer; - - /* - * See if this is a small or large resource - */ - if(ResourceType & 0x80) - { - /* - * Large Resource Type - */ - switch (ResourceType) - { - case MEMORY_RANGE_24: - /* - * 24-Bit Memory Resource - */ - BytesConsumed = 12; - - StructureSize = sizeof (MEMORY24_RESOURCE) + - RESOURCE_LENGTH_NO_DATA; - break; - - case LARGE_VENDOR_DEFINED: - /* - * Vendor Defined Resource - */ - Buffer = ByteStreamBuffer; - ++Buffer; - - MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer); - BytesConsumed = Temp16 + 3; - - /* - * Ensure a 32-bit boundary for the structure - */ - Temp16 = (UINT16) ROUND_UP_TO_32BITS (Temp16); - - StructureSize = sizeof (VENDOR_RESOURCE) + - RESOURCE_LENGTH_NO_DATA + - (Temp16 * sizeof (UINT8)); - break; - - case MEMORY_RANGE_32: - /* - * 32-Bit Memory Range Resource - */ - - BytesConsumed = 20; - - StructureSize = sizeof (MEMORY32_RESOURCE) + - RESOURCE_LENGTH_NO_DATA; - break; - - case FIXED_MEMORY_RANGE_32: - /* - * 32-Bit Fixed Memory Resource - */ - BytesConsumed = 12; - - StructureSize = sizeof(FIXED_MEMORY32_RESOURCE) + - RESOURCE_LENGTH_NO_DATA; - break; - - case DWORD_ADDRESS_SPACE: - /* - * 32-Bit Address Resource - */ - Buffer = ByteStreamBuffer; - - ++Buffer; - MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer); - - BytesConsumed = Temp16 + 3; - - /* - * Resource Source Index and Resource Source are - * optional elements. Check the length of the - * Bytestream. If it is greater than 23, that - * means that an Index exists and is followed by - * a null termininated string. Therefore, set - * the temp variable to the length minus the minimum - * byte stream length plus the byte for the Index to - * determine the size of the NULL terminiated string. - */ - if (23 < Temp16) - { - Temp8 = (UINT8) (Temp16 - 24); - } - else - { - Temp8 = 0; - } - - /* - * Ensure a 32-bit boundary for the structure - */ - Temp8 = (UINT8) ROUND_UP_TO_32BITS (Temp8); - - StructureSize = sizeof (ADDRESS32_RESOURCE) + - RESOURCE_LENGTH_NO_DATA + - (Temp8 * sizeof (UINT8)); - break; - - case WORD_ADDRESS_SPACE: - /* - * 16-Bit Address Resource - */ - Buffer = ByteStreamBuffer; - - ++Buffer; - MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer); - - BytesConsumed = Temp16 + 3; - - /* - * Resource Source Index and Resource Source are - * optional elements. Check the length of the - * Bytestream. If it is greater than 13, that - * means that an Index exists and is followed by - * a null termininated string. Therefore, set - * the temp variable to the length minus the minimum - * byte stream length plus the byte for the Index to - * determine the size of the NULL terminiated string. - */ - if (13 < Temp16) - { - Temp8 = (UINT8) (Temp16 - 14); - } - else - { - Temp8 = 0; - } - - /* - * Ensure a 32-bit boundry for the structure - */ - Temp8 = (UINT8) ROUND_UP_TO_32BITS (Temp8); - - StructureSize = sizeof (ADDRESS16_RESOURCE) + - RESOURCE_LENGTH_NO_DATA + - (Temp8 * sizeof (UINT8)); - break; - - case EXTENDED_IRQ: - /* - * Extended IRQ - */ - Buffer = ByteStreamBuffer; - - ++Buffer; - MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer); - - BytesConsumed = Temp16 + 3; - - /* - * Point past the length field and the - * Interrupt vector flags to save off the - * Interrupt table length to the Temp8 variable. - */ - Buffer += 3; - Temp8 = *Buffer; - - /* - * To compensate for multiple interrupt numbers, - * Add 4 bytes for each additional interrupts - * greater than 1 - */ - AdditionalBytes = (UINT8) ((Temp8 - 1) * 4); - - /* - * Resource Source Index and Resource Source are - * optional elements. Check the length of the - * Bytestream. If it is greater than 9, that - * means that an Index exists and is followed by - * a null termininated string. Therefore, set - * the temp variable to the length minus the minimum - * byte stream length plus the byte for the Index to - * determine the size of the NULL terminiated string. - */ - if (9 + AdditionalBytes < Temp16) - { - Temp8 = (UINT8) (Temp16 - (9 + AdditionalBytes)); - } - - else - { - Temp8 = 0; - } - - /* - * Ensure a 32-bit boundry for the structure - */ - Temp8 = (UINT8) ROUND_UP_TO_32BITS (Temp8); - - StructureSize = sizeof (EXTENDED_IRQ_RESOURCE) + - RESOURCE_LENGTH_NO_DATA + - (AdditionalBytes * sizeof (UINT8)) + - (Temp8 * sizeof (UINT8)); - - break; - -/* TBD: [Future] 64-bit not currently supported */ -/* - case 0x8A: - break; -*/ - - default: - /* - * If we get here, everything is out of sync, - * so exit with an error - */ - return_ACPI_STATUS (AE_AML_ERROR); - break; - } - } - - else - { - /* - * Small Resource Type - * Only bits 7:3 are valid - */ - ResourceType >>= 3; - - switch (ResourceType) - { - case IRQ_FORMAT: - /* - * IRQ Resource - */ - /* - * Determine if it there are two or three - * trailing bytes - */ - Buffer = ByteStreamBuffer; - Temp8 = *Buffer; - - if(Temp8 & 0x01) - { - BytesConsumed = 4; - } - - else - { - BytesConsumed = 3; - } - - /* - * Point past the descriptor - */ - ++Buffer; - - /* - * Look at the number of bits set - */ - MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer); - - for (Index = 0; Index < 16; Index++) - { - if (Temp16 & 0x1) - { - ++NumberOfInterrupts; - } - - Temp16 >>= 1; - } - - StructureSize = sizeof (IO_RESOURCE) + - RESOURCE_LENGTH_NO_DATA + - (NumberOfInterrupts * sizeof (UINT32)); - break; - - - case DMA_FORMAT: - - /* - * DMA Resource - */ - Buffer = ByteStreamBuffer; - - BytesConsumed = 3; - - /* - * Point past the descriptor - */ - ++Buffer; - - /* - * Look at the number of bits set - */ - Temp8 = *Buffer; - - for(Index = 0; Index < 8; Index++) - { - if(Temp8 & 0x1) - { - ++NumberOfChannels; - } - - Temp8 >>= 1; - } - - StructureSize = sizeof (DMA_RESOURCE) + - RESOURCE_LENGTH_NO_DATA + - (NumberOfChannels * sizeof (UINT32)); - break; - - - case START_DEPENDENT_TAG: - - /* - * Start Dependent Functions Resource - */ - /* - * Determine if it there are two or three trailing bytes - */ - Buffer = ByteStreamBuffer; - Temp8 = *Buffer; - - if(Temp8 & 0x01) - { - BytesConsumed = 2; - } - else - { - BytesConsumed = 1; - } - - - StructureSize = - sizeof (START_DEPENDENT_FUNCTIONS_RESOURCE) + - RESOURCE_LENGTH_NO_DATA; - break; - - - case END_DEPENDENT_TAG: - - /* - * End Dependent Functions Resource - */ - BytesConsumed = 1; - StructureSize = RESOURCE_LENGTH; - break; - - - case IO_PORT_DESCRIPTOR: - /* - * IO Port Resource - */ - BytesConsumed = 8; - StructureSize = sizeof (IO_RESOURCE) + - RESOURCE_LENGTH_NO_DATA; - break; - - - case FIXED_LOCATION_IO_DESCRIPTOR: - - /* - * Fixed IO Port Resource - */ - BytesConsumed = 4; - StructureSize = sizeof (FIXED_IO_RESOURCE) + - RESOURCE_LENGTH_NO_DATA; - break; - - - case SMALL_VENDOR_DEFINED: - - /* - * Vendor Specific Resource - */ - Buffer = ByteStreamBuffer; - - Temp8 = *Buffer; - Temp8 = (UINT8) (Temp8 & 0x7); - BytesConsumed = Temp8 + 1; - - /* - * Ensure a 32-bit boundry for the structure - */ - Temp8 = (UINT8) ROUND_UP_TO_32BITS (Temp8); - StructureSize = sizeof (VENDOR_RESOURCE) + - RESOURCE_LENGTH_NO_DATA + - (Temp8 * sizeof (UINT8)); - break; - - - case END_TAG: - - /* - * End Tag - */ - BytesConsumed = 2; - StructureSize = RESOURCE_LENGTH; - ByteStreamBufferLength = BytesParsed; - break; - - - default: - /* - * If we get here, everything is out of sync, - * so exit with an error - */ - return_ACPI_STATUS (AE_AML_ERROR); - break; - - } /* switch */ - - } /* if(ResourceType & 0x80) */ - - /* - * Update the return value and counter - */ - BufferSize += StructureSize; - BytesParsed += BytesConsumed; - - /* - * Set the byte stream to point to the next resource - */ - ByteStreamBuffer += BytesConsumed; - - } - - /* - * This is the data the caller needs - */ - *SizeNeeded = BufferSize; - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsCalculatePciRoutingTableLength - * - * PARAMETERS: PackageObject - Pointer to the package object - * BufferSizeNeeded - UINT32 pointer of the size buffer - * needed to properly return the - * parsed data - * - * RETURN: Status AE_OK - * - * DESCRIPTION: Given a package representing a PCI routing table, this - * calculates the size of the corresponding linked list of - * descriptions. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsCalculatePciRoutingTableLength ( - ACPI_OPERAND_OBJECT *PackageObject, - UINT32 *BufferSizeNeeded) -{ - UINT32 NumberOfElements; - UINT32 TempSizeNeeded = 0; - ACPI_OPERAND_OBJECT **TopObjectList; - UINT32 Index; - ACPI_OPERAND_OBJECT *PackageElement; - ACPI_OPERAND_OBJECT **SubObjectList; - BOOLEAN NameFound; - UINT32 TableIndex; - - - FUNCTION_TRACE ("AcpiRsCalculatePciRoutingTableLength"); - - - NumberOfElements = PackageObject->Package.Count; - - /* - * Calculate the size of the return buffer. - * The base size is the number of elements * the sizes of the - * structures. Additional space for the strings is added below. - * The minus one is to subtract the size of the UINT8 Source[1] - * member because it is added below. - * - * NOTE: The NumberOfElements is incremented by one to add an end - * table structure that is essentially a structure of zeros. - */ - - /* - * But each PRT_ENTRY structure has a pointer to a string and - * the size of that string must be found. - */ - TopObjectList = PackageObject->Package.Elements; - - for (Index = 0; Index < NumberOfElements; Index++) - { - /* - * Dereference the sub-package - */ - PackageElement = *TopObjectList; - - /* - * The SubObjectList will now point to an array of the - * four IRQ elements: Address, Pin, Source and SourceIndex - */ - SubObjectList = PackageElement->Package.Elements; - - /* - * Scan the IrqTableElements for the Source Name String - */ - NameFound = FALSE; - - for (TableIndex = 0; TableIndex < 4 && !NameFound; TableIndex++) - { - if ((ACPI_TYPE_STRING == (*SubObjectList)->Common.Type) || - ((INTERNAL_TYPE_REFERENCE == (*SubObjectList)->Common.Type) && - ((*SubObjectList)->Reference.OpCode == AML_NAMEPATH_OP))) - { - NameFound = TRUE; - } - - else - { - /* - * Look at the next element - */ - SubObjectList++; - } - } - - TempSizeNeeded += (sizeof (PCI_ROUTING_TABLE) - 4); - - /* - * Was a String type found? - */ - if (TRUE == NameFound) - { - if (ACPI_TYPE_STRING == (*SubObjectList)->Common.Type) - { - /* - * The length String.Length field includes the - * terminating NULL - */ - TempSizeNeeded += (*SubObjectList)->String.Length; - } - else - { - TempSizeNeeded += AcpiNsGetPathnameLength ((*SubObjectList)->Reference.Node); - } - } - - else - { - /* - * If no name was found, then this is a NULL, which is - * translated as a UINT32 zero. - */ - TempSizeNeeded += sizeof(UINT32); - } - - - /* Round up the size since each element must be aligned */ - - TempSizeNeeded = ROUND_UP_TO_64BITS (TempSizeNeeded); - - /* - * Point to the next ACPI_OPERAND_OBJECT - */ - TopObjectList++; - } - - - *BufferSizeNeeded = TempSizeNeeded; - - return_ACPI_STATUS (AE_OK); -} diff --git a/sys/contrib/dev/acpica/Subsystem/Resources/rscreate.c b/sys/contrib/dev/acpica/Subsystem/Resources/rscreate.c deleted file mode 100644 index 73d60b8ff237e..0000000000000 --- a/sys/contrib/dev/acpica/Subsystem/Resources/rscreate.c +++ /dev/null @@ -1,585 +0,0 @@ -/******************************************************************************* - * - * Module Name: rscreate - AcpiRsCreateResourceList - * AcpiRsCreatePciRoutingTable - * AcpiRsCreateByteStream - * $Revision: 25 $ - * - ******************************************************************************/ - -/****************************************************************************** - * - * 1. Copyright Notice - * - * Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp. - * All rights reserved. - * - * 2. License - * - * 2.1. This is your license from Intel Corp. under its intellectual property - * rights. You may have additional license terms from the party that provided - * you this software, covering your right to use that party's intellectual - * property rights. - * - * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a - * copy of the source code appearing in this file ("Covered Code") an - * irrevocable, perpetual, worldwide license under Intel's copyrights in the - * base code distributed originally by Intel ("Original Intel Code") to copy, - * make derivatives, distribute, use and display any portion of the Covered - * Code in any form, with the right to sublicense such rights; and - * - * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent - * license (with the right to sublicense), under only those claims of Intel - * patents that are infringed by the Original Intel Code, to make, use, sell, - * offer to sell, and import the Covered Code and derivative works thereof - * solely to the minimum extent necessary to exercise the above copyright - * license, and in no event shall the patent license extend to any additions - * to or modifications of the Original Intel Code. No other license or right - * is granted directly or by implication, estoppel or otherwise; - * - * The above copyright and patent license is granted only if the following - * conditions are met: - * - * 3. Conditions - * - * 3.1. Redistribution of Source with Rights to Further Distribute Source. - * Redistribution of source code of any substantial portion of the Covered - * Code or modification with rights to further distribute source must include - * the above Copyright Notice, the above License, this list of Conditions, - * and the following Disclaimer and Export Compliance provision. In addition, - * Licensee must cause all Covered Code to which Licensee contributes to - * contain a file documenting the changes Licensee made to create that Covered - * Code and the date of any change. Licensee must include in that file the - * documentation of any changes made by any predecessor Licensee. Licensee - * must include a prominent statement that the modification is derived, - * directly or indirectly, from Original Intel Code. - * - * 3.2. Redistribution of Source with no Rights to Further Distribute Source. - * Redistribution of source code of any substantial portion of the Covered - * Code or modification without rights to further distribute source must - * include the following Disclaimer and Export Compliance provision in the - * documentation and/or other materials provided with distribution. In - * addition, Licensee may not authorize further sublicense of source of any - * portion of the Covered Code, and must include terms to the effect that the - * license from Licensee to its licensee is limited to the intellectual - * property embodied in the software Licensee provides to its licensee, and - * not to intellectual property embodied in modifications its licensee may - * make. - * - * 3.3. Redistribution of Executable. Redistribution in executable form of any - * substantial portion of the Covered Code or modification must reproduce the - * above Copyright Notice, and the following Disclaimer and Export Compliance - * provision in the documentation and/or other materials provided with the - * distribution. - * - * 3.4. Intel retains all right, title, and interest in and to the Original - * Intel Code. - * - * 3.5. Neither the name Intel nor any other trademark owned or controlled by - * Intel shall be used in advertising or otherwise to promote the sale, use or - * other dealings in products derived from or relating to the Covered Code - * without prior written authorization from Intel. - * - * 4. Disclaimer and Export Compliance - * - * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED - * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE - * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, - * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY - * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY - * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A - * PARTICULAR PURPOSE. - * - * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES - * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR - * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, - * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY - * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL - * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS - * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY - * LIMITED REMEDY. - * - * 4.3. Licensee shall not export, either directly or indirectly, any of this - * software or system incorporating such software without first obtaining any - * required license or other approval from the U. S. Department of Commerce or - * any other agency or department of the United States Government. In the - * event Licensee exports any such software from the United States or - * re-exports any such software from a foreign destination, Licensee shall - * ensure that the distribution and export/re-export of the software is in - * compliance with all laws, regulations, orders, or other restrictions of the - * U.S. Export Administration Regulations. Licensee agrees that neither it nor - * any of its subsidiaries will export/re-export any technical data, process, - * software, or service, directly or indirectly, to any country for which the - * United States government or any agency thereof requires an export license, - * other governmental approval, or letter of assurance, without first obtaining - * such license, approval or letter. - * - *****************************************************************************/ - - -#define __RSCREATE_C__ - -#include "acpi.h" -#include "acresrc.h" -#include "amlcode.h" -#include "acnamesp.h" - -#define _COMPONENT RESOURCE_MANAGER - MODULE_NAME ("rscreate") - - -/******************************************************************************* - * - * FUNCTION: AcpiRsCreateResourceList - * - * PARAMETERS: - * ByteStreamBuffer - Pointer to the resource byte stream - * OutputBuffer - Pointer to the user's buffer - * OutputBufferLength - Pointer to the size of OutputBuffer - * - * RETURN: Status - AE_OK if okay, else a valid ACPI_STATUS code - * If OutputBuffer is not large enough, OutputBufferLength - * indicates how large OutputBuffer should be, else it - * indicates how may UINT8 elements of OutputBuffer are valid. - * - * DESCRIPTION: Takes the byte stream returned from a _CRS, _PRS control method - * execution and parses the stream to create a linked list - * of device resources. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsCreateResourceList ( - ACPI_OPERAND_OBJECT *ByteStreamBuffer, - UINT8 *OutputBuffer, - UINT32 *OutputBufferLength) -{ - - ACPI_STATUS Status; - UINT8 *ByteStreamStart = NULL; - UINT32 ListSizeNeeded = 0; - UINT32 ByteStreamBufferLength = 0; - - - FUNCTION_TRACE ("RsCreateResourceList"); - - - DEBUG_PRINT (VERBOSE_INFO, ("RsCreateResourceList: ByteStreamBuffer = %p\n", - ByteStreamBuffer)); - - /* - * Params already validated, so we don't re-validate here - */ - - ByteStreamBufferLength = ByteStreamBuffer->Buffer.Length; - ByteStreamStart = ByteStreamBuffer->Buffer.Pointer; - - /* - * Pass the ByteStreamBuffer into a module that can calculate - * the buffer size needed for the linked list - */ - Status = AcpiRsCalculateListLength (ByteStreamStart, - ByteStreamBufferLength, - &ListSizeNeeded); - - DEBUG_PRINT (VERBOSE_INFO, - ("RsCreateResourceList: Status=%X ListSizeNeeded=%X\n", - Status, ListSizeNeeded)); - - /* - * Exit with the error passed back - */ - if (ACPI_FAILURE (Status)) - { - return_ACPI_STATUS (Status); - } - - /* - * If the linked list will fit into the available buffer - * call to fill in the list - */ - - if (ListSizeNeeded <= *OutputBufferLength) - { - /* - * Zero out the return buffer before proceeding - */ - MEMSET (OutputBuffer, 0x00, *OutputBufferLength); - - Status = AcpiRsByteStreamToList (ByteStreamStart, - ByteStreamBufferLength, - &OutputBuffer); - - /* - * Exit with the error passed back - */ - if (ACPI_FAILURE (Status)) - { - return_ACPI_STATUS (Status); - } - - DEBUG_PRINT (VERBOSE_INFO, ("RsByteStreamToList: OutputBuffer = %p\n", - OutputBuffer)); - } - - else - { - *OutputBufferLength = ListSizeNeeded; - return_ACPI_STATUS (AE_BUFFER_OVERFLOW); - } - - *OutputBufferLength = ListSizeNeeded; - return_ACPI_STATUS (AE_OK); - -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsCreatePciRoutingTable - * - * PARAMETERS: - * PackageObject - Pointer to an ACPI_OPERAND_OBJECT - * package - * OutputBuffer - Pointer to the user's buffer - * OutputBufferLength - Size of OutputBuffer - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code. - * If the OutputBuffer is too small, the error will be - * AE_BUFFER_OVERFLOW and OutputBufferLength will point - * to the size buffer needed. - * - * DESCRIPTION: Takes the ACPI_OPERAND_OBJECT package and creates a - * linked list of PCI interrupt descriptions - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsCreatePciRoutingTable ( - ACPI_OPERAND_OBJECT *PackageObject, - UINT8 *OutputBuffer, - UINT32 *OutputBufferLength) -{ - UINT8 *Buffer = OutputBuffer; - ACPI_OPERAND_OBJECT **TopObjectList = NULL; - ACPI_OPERAND_OBJECT **SubObjectList = NULL; - ACPI_OPERAND_OBJECT *PackageElement = NULL; - UINT32 BufferSizeNeeded = 0; - UINT32 NumberOfElements = 0; - UINT32 Index = 0; - PCI_ROUTING_TABLE *UserPrt = NULL; - ACPI_NAMESPACE_NODE *Node; - ACPI_STATUS Status; - - - FUNCTION_TRACE ("RsCreatePciRoutingTable"); - - - /* - * Params already validated, so we don't re-validate here - */ - - Status = AcpiRsCalculatePciRoutingTableLength(PackageObject, - &BufferSizeNeeded); - - DEBUG_PRINT (VERBOSE_INFO, - ("RsCreatePciRoutingTable: BufferSizeNeeded = %X\n", - BufferSizeNeeded)); - - /* - * If the data will fit into the available buffer - * call to fill in the list - */ - if (BufferSizeNeeded <= *OutputBufferLength) - { - /* - * Zero out the return buffer before proceeding - */ - MEMSET (OutputBuffer, 0x00, *OutputBufferLength); - - /* - * Loop through the ACPI_INTERNAL_OBJECTS - Each object should - * contain a UINT32 Address, a UINT8 Pin, a Name and a UINT8 - * SourceIndex. - */ - TopObjectList = PackageObject->Package.Elements; - NumberOfElements = PackageObject->Package.Count; - UserPrt = (PCI_ROUTING_TABLE *) Buffer; - - - Buffer = ROUND_PTR_UP_TO_8 (Buffer, UINT8); - - for (Index = 0; Index < NumberOfElements; Index++) - { - /* - * Point UserPrt past this current structure - * - * NOTE: On the first iteration, UserPrt->Length will - * be zero because we cleared the return buffer earlier - */ - Buffer += UserPrt->Length; - UserPrt = (PCI_ROUTING_TABLE *) Buffer; - - - /* - * Fill in the Length field with the information we - * have at this point. - * The minus four is to subtract the size of the - * UINT8 Source[4] member because it is added below. - */ - UserPrt->Length = (sizeof (PCI_ROUTING_TABLE) -4); - - /* - * Dereference the sub-package - */ - PackageElement = *TopObjectList; - - /* - * The SubObjectList will now point to an array of - * the four IRQ elements: Address, Pin, Source and - * SourceIndex - */ - SubObjectList = PackageElement->Package.Elements; - - /* - * 1) First subobject: Dereference the Address - */ - if (ACPI_TYPE_INTEGER == (*SubObjectList)->Common.Type) - { - UserPrt->Address = (*SubObjectList)->Integer.Value; - } - - else - { - DEBUG_PRINT (ACPI_ERROR, - ("CreatePciRoutingTable: Need Integer, found %s\n", - AcpiCmGetTypeName ((*SubObjectList)->Common.Type))); - return_ACPI_STATUS (AE_BAD_DATA); - } - - /* - * 2) Second subobject: Dereference the Pin - */ - SubObjectList++; - - if (ACPI_TYPE_INTEGER == (*SubObjectList)->Common.Type) - { - UserPrt->Pin = - (UINT32) (*SubObjectList)->Integer.Value; - } - - else - { - DEBUG_PRINT (ACPI_ERROR, - ("CreatePciRoutingTable: Need Integer, found %s\n", - AcpiCmGetTypeName ((*SubObjectList)->Common.Type))); - return_ACPI_STATUS (AE_BAD_DATA); - } - - /* - * 3) Third subobject: Dereference the Source Name - */ - SubObjectList++; - - switch ((*SubObjectList)->Common.Type) - { - case INTERNAL_TYPE_REFERENCE: - if ((*SubObjectList)->Reference.OpCode != AML_NAMEPATH_OP) - { - DEBUG_PRINT (ACPI_ERROR, - ("CreatePciRoutingTable: Need name, found reference op %X\n", - (*SubObjectList)->Reference.OpCode)); - return_ACPI_STATUS (AE_BAD_DATA); - } - - Node = (*SubObjectList)->Reference.Node; - - /* TBD: use *remaining* length of the buffer! */ - - Status = AcpiNsHandleToPathname ((ACPI_HANDLE *) Node, - OutputBufferLength, UserPrt->Source); - - UserPrt->Length += STRLEN (UserPrt->Source) + 1; /* include null terminator */ - break; - - - case ACPI_TYPE_STRING: - - STRCPY (UserPrt->Source, - (*SubObjectList)->String.Pointer); - - /* - * Add to the Length field the length of the string - */ - UserPrt->Length += (*SubObjectList)->String.Length; - break; - - - case ACPI_TYPE_INTEGER: - /* - * If this is a number, then the Source Name - * is NULL, since the entire buffer was zeroed - * out, we can leave this alone. - */ - /* - * Add to the Length field the length of - * the UINT32 NULL - */ - UserPrt->Length += sizeof (UINT32); - break; - - - default: - DEBUG_PRINT (ACPI_ERROR, - ("CreatePciRoutingTable: Need Integer, found %s\n", - AcpiCmGetTypeName ((*SubObjectList)->Common.Type))); - return_ACPI_STATUS (AE_BAD_DATA); - break; - } - - /* Now align the current length */ - - UserPrt->Length = ROUND_UP_TO_64BITS (UserPrt->Length); - - /* - * 4) Fourth subobject: Dereference the Source Index - */ - SubObjectList++; - - if (ACPI_TYPE_INTEGER == (*SubObjectList)->Common.Type) - { - UserPrt->SourceIndex = - (UINT32) (*SubObjectList)->Integer.Value; - } - - else - { - DEBUG_PRINT (ACPI_ERROR, - ("CreatePciRoutingTable: Need Integer, found %s\n", - AcpiCmGetTypeName ((*SubObjectList)->Common.Type))); - return_ACPI_STATUS (AE_BAD_DATA); - } - - /* - * Point to the next ACPI_OPERAND_OBJECT - */ - TopObjectList++; - } - - DEBUG_PRINT (VERBOSE_INFO, - ("RsCreatePciRoutingTable: OutputBuffer = %p\n", - OutputBuffer)); - } - - else - { - *OutputBufferLength = BufferSizeNeeded; - - return_ACPI_STATUS (AE_BUFFER_OVERFLOW); - } - - /* - * Report the amount of buffer used - */ - *OutputBufferLength = BufferSizeNeeded; - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsCreateByteStream - * - * PARAMETERS: - * LinkedListBuffer - Pointer to the resource linked list - * OutputBuffer - Pointer to the user's buffer - * OutputBufferLength - Size of OutputBuffer - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code. - * If the OutputBuffer is too small, the error will be - * AE_BUFFER_OVERFLOW and OutputBufferLength will point - * to the size buffer needed. - * - * DESCRIPTION: Takes the linked list of device resources and - * creates a bytestream to be used as input for the - * _SRS control method. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsCreateByteStream ( - RESOURCE *LinkedListBuffer, - UINT8 *OutputBuffer, - UINT32 *OutputBufferLength) -{ - ACPI_STATUS Status; - UINT32 ByteStreamSizeNeeded = 0; - - - FUNCTION_TRACE ("RsCreateByteStream"); - - - DEBUG_PRINT (VERBOSE_INFO, - ("RsCreateByteStream: LinkedListBuffer = %p\n", - LinkedListBuffer)); - - /* - * Params already validated, so we don't re-validate here - * - * Pass the LinkedListBuffer into a module that can calculate - * the buffer size needed for the byte stream. - */ - Status = AcpiRsCalculateByteStreamLength (LinkedListBuffer, - &ByteStreamSizeNeeded); - - DEBUG_PRINT (VERBOSE_INFO, - ("RsCreateByteStream: ByteStreamSizeNeeded=%X, %s\n", - ByteStreamSizeNeeded, - AcpiCmFormatException (Status))); - - /* - * Exit with the error passed back - */ - if (ACPI_FAILURE (Status)) - { - return_ACPI_STATUS (Status); - } - - /* - * If the linked list will fit into the available buffer - * call to fill in the list - */ - - if (ByteStreamSizeNeeded <= *OutputBufferLength) - { - /* - * Zero out the return buffer before proceeding - */ - MEMSET (OutputBuffer, 0x00, *OutputBufferLength); - - Status = AcpiRsListToByteStream (LinkedListBuffer, - ByteStreamSizeNeeded, - &OutputBuffer); - - /* - * Exit with the error passed back - */ - if (ACPI_FAILURE (Status)) - { - return_ACPI_STATUS (Status); - } - - DEBUG_PRINT (VERBOSE_INFO, - ("RsListToByteStream: OutputBuffer = %p\n", - OutputBuffer)); - } - else - { - *OutputBufferLength = ByteStreamSizeNeeded; - return_ACPI_STATUS (AE_BUFFER_OVERFLOW); - } - - return_ACPI_STATUS (AE_OK); -} - diff --git a/sys/contrib/dev/acpica/Subsystem/Resources/rsdump.c b/sys/contrib/dev/acpica/Subsystem/Resources/rsdump.c deleted file mode 100644 index 70127ee732900..0000000000000 --- a/sys/contrib/dev/acpica/Subsystem/Resources/rsdump.c +++ /dev/null @@ -1,1045 +0,0 @@ -/******************************************************************************* - * - * Module Name: rsdump - Functions do dump out the resource structures. - * $Revision: 16 $ - * - ******************************************************************************/ - -/****************************************************************************** - * - * 1. Copyright Notice - * - * Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp. - * All rights reserved. - * - * 2. License - * - * 2.1. This is your license from Intel Corp. under its intellectual property - * rights. You may have additional license terms from the party that provided - * you this software, covering your right to use that party's intellectual - * property rights. - * - * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a - * copy of the source code appearing in this file ("Covered Code") an - * irrevocable, perpetual, worldwide license under Intel's copyrights in the - * base code distributed originally by Intel ("Original Intel Code") to copy, - * make derivatives, distribute, use and display any portion of the Covered - * Code in any form, with the right to sublicense such rights; and - * - * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent - * license (with the right to sublicense), under only those claims of Intel - * patents that are infringed by the Original Intel Code, to make, use, sell, - * offer to sell, and import the Covered Code and derivative works thereof - * solely to the minimum extent necessary to exercise the above copyright - * license, and in no event shall the patent license extend to any additions - * to or modifications of the Original Intel Code. No other license or right - * is granted directly or by implication, estoppel or otherwise; - * - * The above copyright and patent license is granted only if the following - * conditions are met: - * - * 3. Conditions - * - * 3.1. Redistribution of Source with Rights to Further Distribute Source. - * Redistribution of source code of any substantial portion of the Covered - * Code or modification with rights to further distribute source must include - * the above Copyright Notice, the above License, this list of Conditions, - * and the following Disclaimer and Export Compliance provision. In addition, - * Licensee must cause all Covered Code to which Licensee contributes to - * contain a file documenting the changes Licensee made to create that Covered - * Code and the date of any change. Licensee must include in that file the - * documentation of any changes made by any predecessor Licensee. Licensee - * must include a prominent statement that the modification is derived, - * directly or indirectly, from Original Intel Code. - * - * 3.2. Redistribution of Source with no Rights to Further Distribute Source. - * Redistribution of source code of any substantial portion of the Covered - * Code or modification without rights to further distribute source must - * include the following Disclaimer and Export Compliance provision in the - * documentation and/or other materials provided with distribution. In - * addition, Licensee may not authorize further sublicense of source of any - * portion of the Covered Code, and must include terms to the effect that the - * license from Licensee to its licensee is limited to the intellectual - * property embodied in the software Licensee provides to its licensee, and - * not to intellectual property embodied in modifications its licensee may - * make. - * - * 3.3. Redistribution of Executable. Redistribution in executable form of any - * substantial portion of the Covered Code or modification must reproduce the - * above Copyright Notice, and the following Disclaimer and Export Compliance - * provision in the documentation and/or other materials provided with the - * distribution. - * - * 3.4. Intel retains all right, title, and interest in and to the Original - * Intel Code. - * - * 3.5. Neither the name Intel nor any other trademark owned or controlled by - * Intel shall be used in advertising or otherwise to promote the sale, use or - * other dealings in products derived from or relating to the Covered Code - * without prior written authorization from Intel. - * - * 4. Disclaimer and Export Compliance - * - * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED - * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE - * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, - * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY - * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY - * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A - * PARTICULAR PURPOSE. - * - * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES - * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR - * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, - * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY - * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL - * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS - * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY - * LIMITED REMEDY. - * - * 4.3. Licensee shall not export, either directly or indirectly, any of this - * software or system incorporating such software without first obtaining any - * required license or other approval from the U. S. Department of Commerce or - * any other agency or department of the United States Government. In the - * event Licensee exports any such software from the United States or - * re-exports any such software from a foreign destination, Licensee shall - * ensure that the distribution and export/re-export of the software is in - * compliance with all laws, regulations, orders, or other restrictions of the - * U.S. Export Administration Regulations. Licensee agrees that neither it nor - * any of its subsidiaries will export/re-export any technical data, process, - * software, or service, directly or indirectly, to any country for which the - * United States government or any agency thereof requires an export license, - * other governmental approval, or letter of assurance, without first obtaining - * such license, approval or letter. - * - *****************************************************************************/ - - -#define __RSDUMP_C__ - -#include "acpi.h" -#include "acresrc.h" - -#define _COMPONENT RESOURCE_MANAGER - MODULE_NAME ("rsdump") - - -/******************************************************************************* - * - * FUNCTION: AcpiRsDumpIrq - * - * PARAMETERS: Data - pointer to the resource structure to dump. - * - * RETURN: - * - * DESCRIPTION: Prints out the various members of the Data structure type. - * - ******************************************************************************/ - -void -AcpiRsDumpIrq ( - RESOURCE_DATA *Data) -{ - IRQ_RESOURCE *IrqData = (IRQ_RESOURCE*) Data; - UINT8 Index = 0; - - - AcpiOsPrintf ("\tIRQ Resource\n"); - - AcpiOsPrintf ("\t\t%s Triggered\n", - LEVEL_SENSITIVE == IrqData->EdgeLevel ? - "Level" : "Edge"); - - AcpiOsPrintf ("\t\tActive %s\n", - ACTIVE_LOW == IrqData->ActiveHighLow ? - "Low" : "High"); - - AcpiOsPrintf ("\t\t%s\n", - SHARED == IrqData->SharedExclusive ? - "Shared" : "Exclusive"); - - AcpiOsPrintf ("\t\t%X Interrupts ( ", - IrqData->NumberOfInterrupts); - - for (Index = 0; Index < IrqData->NumberOfInterrupts; Index++) - { - AcpiOsPrintf ("%X ", IrqData->Interrupts[Index]); - } - - AcpiOsPrintf (")\n"); - return; -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsDumpDma - * - * PARAMETERS: Data - pointer to the resource structure to dump. - * - * RETURN: - * - * DESCRIPTION: Prints out the various members of the Data structure type. - * - ******************************************************************************/ - -void -AcpiRsDumpDma ( - RESOURCE_DATA *Data) -{ - DMA_RESOURCE *DmaData = (DMA_RESOURCE*) Data; - UINT8 Index = 0; - - - AcpiOsPrintf ("\tDMA Resource\n"); - - switch (DmaData->Type) - { - case COMPATIBILITY: - AcpiOsPrintf ("\t\tCompatibility mode\n"); - break; - - case TYPE_A: - AcpiOsPrintf ("\t\tType A\n"); - break; - - case TYPE_B: - AcpiOsPrintf ("\t\tType B\n"); - break; - - case TYPE_F: - AcpiOsPrintf ("\t\tType F\n"); - break; - - default: - AcpiOsPrintf ("\t\tInvalid DMA type\n"); - break; - } - - AcpiOsPrintf ("\t\t%sBus Master\n", - BUS_MASTER == DmaData->BusMaster ? - "" : "Not a "); - - switch (DmaData->Transfer) - { - case TRANSFER_8: - AcpiOsPrintf ("\t\t8-bit only transfer\n"); - break; - - case TRANSFER_8_16: - AcpiOsPrintf ("\t\t8 and 16-bit transfer\n"); - break; - - case TRANSFER_16: - AcpiOsPrintf ("\t\t16 bit only transfer\n"); - break; - - default: - AcpiOsPrintf ("\t\tInvalid transfer preference\n"); - break; - } - - AcpiOsPrintf ("\t\tNumber of Channels: %X ( ", - DmaData->NumberOfChannels); - - for (Index = 0; Index < DmaData->NumberOfChannels; Index++) - { - AcpiOsPrintf ("%X ", DmaData->Channels[Index]); - } - - AcpiOsPrintf (")\n"); - return; -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsDumpStartDependentFunctions - * - * PARAMETERS: Data - pointer to the resource structure to dump. - * - * RETURN: - * - * DESCRIPTION: Prints out the various members of the Data structure type. - * - ******************************************************************************/ - -void -AcpiRsDumpStartDependentFunctions ( - RESOURCE_DATA *Data) -{ - START_DEPENDENT_FUNCTIONS_RESOURCE *SdfData = - (START_DEPENDENT_FUNCTIONS_RESOURCE*) Data; - - - AcpiOsPrintf ("\tStart Dependent Functions Resource\n"); - - switch (SdfData->CompatibilityPriority) - { - case GOOD_CONFIGURATION: - AcpiOsPrintf ("\t\tGood configuration\n"); - break; - - case ACCEPTABLE_CONFIGURATION: - AcpiOsPrintf ("\t\tAcceptable configuration\n"); - break; - - case SUB_OPTIMAL_CONFIGURATION: - AcpiOsPrintf ("\t\tSub-optimal configuration\n"); - break; - - default: - AcpiOsPrintf ("\t\tInvalid compatibility priority\n"); - break; - } - - switch(SdfData->PerformanceRobustness) - { - case GOOD_CONFIGURATION: - AcpiOsPrintf ("\t\tGood configuration\n"); - break; - - case ACCEPTABLE_CONFIGURATION: - AcpiOsPrintf ("\t\tAcceptable configuration\n"); - break; - - case SUB_OPTIMAL_CONFIGURATION: - AcpiOsPrintf ("\t\tSub-optimal configuration\n"); - break; - - default: - AcpiOsPrintf ("\t\tInvalid performance " - "robustness preference\n"); - break; - } - - return; -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsDumpIo - * - * PARAMETERS: Data - pointer to the resource structure to dump. - * - * RETURN: - * - * DESCRIPTION: Prints out the various members of the Data structure type. - * - ******************************************************************************/ - -void -AcpiRsDumpIo ( - RESOURCE_DATA *Data) -{ - IO_RESOURCE *IoData = (IO_RESOURCE*) Data; - - - AcpiOsPrintf ("\tIo Resource\n"); - - AcpiOsPrintf ("\t\t%d bit decode\n", - DECODE_16 == IoData->IoDecode ? 16 : 10); - - AcpiOsPrintf ("\t\tRange minimum base: %08X\n", - IoData->MinBaseAddress); - - AcpiOsPrintf ("\t\tRange maximum base: %08X\n", - IoData->MaxBaseAddress); - - AcpiOsPrintf ("\t\tAlignment: %08X\n", - IoData->Alignment); - - AcpiOsPrintf ("\t\tRange Length: %08X\n", - IoData->RangeLength); - - return; -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsDumpFixedIo - * - * PARAMETERS: Data - pointer to the resource structure to dump. - * - * RETURN: - * - * DESCRIPTION: Prints out the various members of the Data structure type. - * - ******************************************************************************/ - -void -AcpiRsDumpFixedIo ( - RESOURCE_DATA *Data) -{ - FIXED_IO_RESOURCE *FixedIoData = (FIXED_IO_RESOURCE*) Data; - - - AcpiOsPrintf ("\tFixed Io Resource\n"); - AcpiOsPrintf ("\t\tRange base address: %08X", - FixedIoData->BaseAddress); - - AcpiOsPrintf ("\t\tRange length: %08X", - FixedIoData->RangeLength); - - return; -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsDumpVendorSpecific - * - * PARAMETERS: Data - pointer to the resource structure to dump. - * - * RETURN: - * - * DESCRIPTION: Prints out the various members of the Data structure type. - * - ******************************************************************************/ - -void -AcpiRsDumpVendorSpecific ( - RESOURCE_DATA *Data) -{ - VENDOR_RESOURCE *VendorData = (VENDOR_RESOURCE*) Data; - UINT16 Index = 0; - - - AcpiOsPrintf ("\tVendor Specific Resource\n"); - - AcpiOsPrintf ("\t\tLength: %08X\n", VendorData->Length); - - for (Index = 0; Index < VendorData->Length; Index++) - { - AcpiOsPrintf ("\t\tByte %X: %08X\n", - Index, VendorData->Reserved[Index]); - } - - return; -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsDumpMemory24 - * - * PARAMETERS: Data - pointer to the resource structure to dump. - * - * RETURN: - * - * DESCRIPTION: Prints out the various members of the Data structure type. - * - ******************************************************************************/ - -void -AcpiRsDumpMemory24 ( - RESOURCE_DATA *Data) -{ - MEMORY24_RESOURCE *Memory24Data = (MEMORY24_RESOURCE*) Data; - - - AcpiOsPrintf ("\t24-Bit Memory Range Resource\n"); - - AcpiOsPrintf ("\t\tRead%s\n", - READ_WRITE_MEMORY == - Memory24Data->ReadWriteAttribute ? - "/Write" : " only"); - - AcpiOsPrintf ("\t\tRange minimum base: %08X\n", - Memory24Data->MinBaseAddress); - - AcpiOsPrintf ("\t\tRange maximum base: %08X\n", - Memory24Data->MaxBaseAddress); - - AcpiOsPrintf ("\t\tAlignment: %08X\n", - Memory24Data->Alignment); - - AcpiOsPrintf ("\t\tRange length: %08X\n", - Memory24Data->RangeLength); - - return; -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsDumpMemory32 - * - * PARAMETERS: Data - pointer to the resource structure to dump. - * - * RETURN: - * - * DESCRIPTION: Prints out the various members of the Data structure type. - * - ******************************************************************************/ - -void -AcpiRsDumpMemory32 ( - RESOURCE_DATA *Data) -{ - MEMORY32_RESOURCE *Memory32Data = (MEMORY32_RESOURCE*) Data; - - - AcpiOsPrintf ("\t32-Bit Memory Range Resource\n"); - - AcpiOsPrintf ("\t\tRead%s\n", - READ_WRITE_MEMORY == - Memory32Data->ReadWriteAttribute ? - "/Write" : " only"); - - AcpiOsPrintf ("\t\tRange minimum base: %08X\n", - Memory32Data->MinBaseAddress); - - AcpiOsPrintf ("\t\tRange maximum base: %08X\n", - Memory32Data->MaxBaseAddress); - - AcpiOsPrintf ("\t\tAlignment: %08X\n", - Memory32Data->Alignment); - - AcpiOsPrintf ("\t\tRange length: %08X\n", - Memory32Data->RangeLength); - - return; -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsDumpFixedMemory32 - * - * PARAMETERS: Data - pointer to the resource structure to dump. - * - * RETURN: - * - * DESCRIPTION: Prints out the various members of the Data structure type. - * - ******************************************************************************/ - -void -AcpiRsDumpFixedMemory32 ( - RESOURCE_DATA *Data) -{ - FIXED_MEMORY32_RESOURCE *FixedMemory32Data = (FIXED_MEMORY32_RESOURCE*) Data; - - - AcpiOsPrintf ("\t32-Bit Fixed Location Memory Range Resource\n"); - - AcpiOsPrintf ("\t\tRead%s\n", - READ_WRITE_MEMORY == - FixedMemory32Data->ReadWriteAttribute ? - "/Write" : " Only"); - - AcpiOsPrintf ("\t\tRange base address: %08X\n", - FixedMemory32Data->RangeBaseAddress); - - AcpiOsPrintf ("\t\tRange length: %08X\n", - FixedMemory32Data->RangeLength); - - return; -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsDumpAddress16 - * - * PARAMETERS: Data - pointer to the resource structure to dump. - * - * RETURN: - * - * DESCRIPTION: Prints out the various members of the Data structure type. - * - ******************************************************************************/ - -void -AcpiRsDumpAddress16 ( - RESOURCE_DATA *Data) -{ - ADDRESS16_RESOURCE *Address16Data = (ADDRESS16_RESOURCE*) Data; - - - AcpiOsPrintf ("\t16-Bit Address Space Resource\n"); - AcpiOsPrintf ("\t\tResource Type: "); - - switch (Address16Data->ResourceType) - { - case MEMORY_RANGE: - - AcpiOsPrintf ("Memory Range\n"); - - switch (Address16Data->Attribute.Memory.CacheAttribute) - { - case NON_CACHEABLE_MEMORY: - AcpiOsPrintf ("\t\tType Specific: " - "Noncacheable memory\n"); - break; - - case CACHABLE_MEMORY: - AcpiOsPrintf ("\t\tType Specific: " - "Cacheable memory\n"); - break; - - case WRITE_COMBINING_MEMORY: - AcpiOsPrintf ("\t\tType Specific: " - "Write-combining memory\n"); - break; - - case PREFETCHABLE_MEMORY: - AcpiOsPrintf ("\t\tType Specific: " - "Prefetchable memory\n"); - break; - - default: - AcpiOsPrintf ("\t\tType Specific: " - "Invalid cache attribute\n"); - break; - } - - AcpiOsPrintf ("\t\tType Specific: Read%s\n", - READ_WRITE_MEMORY == - Address16Data->Attribute.Memory.ReadWriteAttribute ? - "/Write" : " Only"); - break; - - case IO_RANGE: - - AcpiOsPrintf ("I/O Range\n"); - - switch (Address16Data->Attribute.Io.RangeAttribute) - { - case NON_ISA_ONLY_RANGES: - AcpiOsPrintf ("\t\tType Specific: " - "Non-ISA Io Addresses\n"); - break; - - case ISA_ONLY_RANGES: - AcpiOsPrintf ("\t\tType Specific: " - "ISA Io Addresses\n"); - break; - - case ENTIRE_RANGE: - AcpiOsPrintf ("\t\tType Specific: " - "ISA and non-ISA Io Addresses\n"); - break; - - default: - AcpiOsPrintf ("\t\tType Specific: " - "Invalid range attribute\n"); - break; - } - break; - - case BUS_NUMBER_RANGE: - - AcpiOsPrintf ("Bus Number Range\n"); - break; - - default: - - AcpiOsPrintf ("Invalid resource type. Exiting.\n"); - return; - } - - AcpiOsPrintf ("\t\tResource %s\n", - CONSUMER == Address16Data->ProducerConsumer ? - "Consumer" : "Producer"); - - AcpiOsPrintf ("\t\t%s decode\n", - SUB_DECODE == Address16Data->Decode ? - "Subtractive" : "Positive"); - - AcpiOsPrintf ("\t\tMin address is %s fixed\n", - ADDRESS_FIXED == Address16Data->MinAddressFixed ? - "" : "not"); - - AcpiOsPrintf ("\t\tMax address is %s fixed\n", - ADDRESS_FIXED == Address16Data->MaxAddressFixed ? - "" : "not"); - - AcpiOsPrintf ("\t\tGranularity: %08X\n", - Address16Data->Granularity); - - AcpiOsPrintf ("\t\tAddress range min: %08X\n", - Address16Data->MinAddressRange); - - AcpiOsPrintf ("\t\tAddress range max: %08X\n", - Address16Data->MaxAddressRange); - - AcpiOsPrintf ("\t\tAddress translation offset: %08X\n", - Address16Data->AddressTranslationOffset); - - AcpiOsPrintf ("\t\tAddress Length: %08X\n", - Address16Data->AddressLength); - - if (0xFF != Address16Data->ResourceSourceIndex) - { - AcpiOsPrintf ("\t\tResource Source Index: %X\n", - Address16Data->ResourceSourceIndex); - AcpiOsPrintf ("\t\tResource Source: %s\n", - Address16Data->ResourceSource); - } - - return; -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsDumpAddress32 - * - * PARAMETERS: Data - pointer to the resource structure to dump. - * - * RETURN: - * - * DESCRIPTION: Prints out the various members of the Data structure type. - * - ******************************************************************************/ - -void -AcpiRsDumpAddress32 ( - RESOURCE_DATA *Data) -{ - ADDRESS32_RESOURCE *Address32Data = (ADDRESS32_RESOURCE*) Data; - - - AcpiOsPrintf ("\t32-Bit Address Space Resource\n"); - - switch (Address32Data->ResourceType) - { - case MEMORY_RANGE: - - AcpiOsPrintf ("\t\tResource Type: Memory Range\n"); - - switch (Address32Data->Attribute.Memory.CacheAttribute) - { - case NON_CACHEABLE_MEMORY: - AcpiOsPrintf ("\t\tType Specific: " - "Noncacheable memory\n"); - break; - - case CACHABLE_MEMORY: - AcpiOsPrintf ("\t\tType Specific: " - "Cacheable memory\n"); - break; - - case WRITE_COMBINING_MEMORY: - AcpiOsPrintf ("\t\tType Specific: " - "Write-combining memory\n"); - break; - - case PREFETCHABLE_MEMORY: - AcpiOsPrintf ("\t\tType Specific: " - "Prefetchable memory\n"); - break; - - default: - AcpiOsPrintf ("\t\tType Specific: " - "Invalid cache attribute\n"); - break; - } - - AcpiOsPrintf ("\t\tType Specific: Read%s\n", - READ_WRITE_MEMORY == - Address32Data->Attribute.Memory.ReadWriteAttribute ? - "/Write" : " Only"); - break; - - case IO_RANGE: - - AcpiOsPrintf ("\t\tResource Type: Io Range\n"); - - switch (Address32Data->Attribute.Io.RangeAttribute) - { - case NON_ISA_ONLY_RANGES: - AcpiOsPrintf ("\t\tType Specific: " - "Non-ISA Io Addresses\n"); - break; - - case ISA_ONLY_RANGES: - AcpiOsPrintf ("\t\tType Specific: " - "ISA Io Addresses\n"); - break; - - case ENTIRE_RANGE: - AcpiOsPrintf ("\t\tType Specific: " - "ISA and non-ISA Io Addresses\n"); - break; - - default: - AcpiOsPrintf ("\t\tType Specific: " - "Invalid Range attribute"); - break; - } - break; - - case BUS_NUMBER_RANGE: - - AcpiOsPrintf ("\t\tResource Type: Bus Number Range\n"); - break; - - default: - - AcpiOsPrintf ("\t\tInvalid Resource Type..exiting.\n"); - return; - } - - AcpiOsPrintf ("\t\tResource %s\n", - CONSUMER == Address32Data->ProducerConsumer ? - "Consumer" : "Producer"); - - AcpiOsPrintf ("\t\t%s decode\n", - SUB_DECODE == Address32Data->Decode ? - "Subtractive" : "Positive"); - - AcpiOsPrintf ("\t\tMin address is %s fixed\n", - ADDRESS_FIXED == Address32Data->MinAddressFixed ? - "" : "not "); - - AcpiOsPrintf ("\t\tMax address is %s fixed\n", - ADDRESS_FIXED == Address32Data->MaxAddressFixed ? - "" : "not "); - - AcpiOsPrintf ("\t\tGranularity: %08X\n", - Address32Data->Granularity); - - AcpiOsPrintf ("\t\tAddress range min: %08X\n", - Address32Data->MinAddressRange); - - AcpiOsPrintf ("\t\tAddress range max: %08X\n", - Address32Data->MaxAddressRange); - - AcpiOsPrintf ("\t\tAddress translation offset: %08X\n", - Address32Data->AddressTranslationOffset); - - AcpiOsPrintf ("\t\tAddress Length: %08X\n", - Address32Data->AddressLength); - - if(0xFF != Address32Data->ResourceSourceIndex) - { - AcpiOsPrintf ("\t\tResource Source Index: %X\n", - Address32Data->ResourceSourceIndex); - AcpiOsPrintf ("\t\tResource Source: %s\n", - Address32Data->ResourceSource); - } - - return; -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsDumpExtendedIrq - * - * PARAMETERS: Data - pointer to the resource structure to dump. - * - * RETURN: - * - * DESCRIPTION: Prints out the various members of the Data structure type. - * - ******************************************************************************/ - -void -AcpiRsDumpExtendedIrq ( - RESOURCE_DATA *Data) -{ - EXTENDED_IRQ_RESOURCE *ExtIrqData = (EXTENDED_IRQ_RESOURCE*) Data; - UINT8 Index = 0; - - - AcpiOsPrintf ("\tExtended IRQ Resource\n"); - - AcpiOsPrintf ("\t\tResource %s\n", - CONSUMER == ExtIrqData->ProducerConsumer ? - "Consumer" : "Producer"); - - AcpiOsPrintf ("\t\t%s\n", - LEVEL_SENSITIVE == ExtIrqData->EdgeLevel ? - "Level" : "Edge"); - - AcpiOsPrintf ("\t\tActive %s\n", - ACTIVE_LOW == ExtIrqData->ActiveHighLow ? - "low" : "high"); - - AcpiOsPrintf ("\t\t%s\n", - SHARED == ExtIrqData->SharedExclusive ? - "Shared" : "Exclusive"); - - AcpiOsPrintf ("\t\tInterrupts : %X ( ", - ExtIrqData->NumberOfInterrupts); - - for (Index = 0; Index < ExtIrqData->NumberOfInterrupts; Index++) - { - AcpiOsPrintf ("%X ", ExtIrqData->Interrupts[Index]); - } - - AcpiOsPrintf (")\n"); - - if(0xFF != ExtIrqData->ResourceSourceIndex) - { - AcpiOsPrintf ("\t\tResource Source Index: %X", - ExtIrqData->ResourceSourceIndex); - AcpiOsPrintf ("\t\tResource Source: %s", - ExtIrqData->ResourceSource); - } - - return; -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsDumpResourceList - * - * PARAMETERS: Data - pointer to the resource structure to dump. - * - * RETURN: - * - * DESCRIPTION: Dispatches the structure to the correct dump routine. - * - ******************************************************************************/ - -void -AcpiRsDumpResourceList ( - RESOURCE *Resource) -{ - UINT8 Count = 0; - BOOLEAN Done = FALSE; - - - if (AcpiDbgLevel & TRACE_RESOURCES && _COMPONENT & AcpiDbgLayer) - { - while (!Done) - { - AcpiOsPrintf ("\tResource structure %x.\n", Count++); - - switch (Resource->Id) - { - case Irq: - AcpiRsDumpIrq (&Resource->Data); - break; - - case Dma: - AcpiRsDumpDma (&Resource->Data); - break; - - case StartDependentFunctions: - AcpiRsDumpStartDependentFunctions (&Resource->Data); - break; - - case EndDependentFunctions: - AcpiOsPrintf ("\tEndDependentFunctions Resource\n"); - /* AcpiRsDumpEndDependentFunctions (Resource->Data);*/ - break; - - case Io: - AcpiRsDumpIo (&Resource->Data); - break; - - case FixedIo: - AcpiRsDumpFixedIo (&Resource->Data); - break; - - case VendorSpecific: - AcpiRsDumpVendorSpecific (&Resource->Data); - break; - - case EndTag: - /*RsDumpEndTag (Resource->Data);*/ - AcpiOsPrintf ("\tEndTag Resource\n"); - Done = TRUE; - break; - - case Memory24: - AcpiRsDumpMemory24 (&Resource->Data); - break; - - case Memory32: - AcpiRsDumpMemory32 (&Resource->Data); - break; - - case FixedMemory32: - AcpiRsDumpFixedMemory32 (&Resource->Data); - break; - - case Address16: - AcpiRsDumpAddress16 (&Resource->Data); - break; - - case Address32: - AcpiRsDumpAddress32 (&Resource->Data); - break; - - case ExtendedIrq: - AcpiRsDumpExtendedIrq (&Resource->Data); - break; - - default: - AcpiOsPrintf ("Invalid resource type\n"); - break; - - } - - Resource = (RESOURCE *) ((NATIVE_UINT) Resource + - (NATIVE_UINT) Resource->Length); - } - } - - return; -} - -/******************************************************************************* - * - * FUNCTION: AcpiRsDumpIrqList - * - * PARAMETERS: Data - pointer to the routing table to dump. - * - * RETURN: - * - * DESCRIPTION: Dispatches the structures to the correct dump routine. - * - ******************************************************************************/ - -void -AcpiRsDumpIrqList ( - UINT8 *RouteTable) -{ - UINT8 *Buffer = RouteTable; - UINT8 Count = 0; - BOOLEAN Done = FALSE; - PCI_ROUTING_TABLE *PrtElement; - - - if (AcpiDbgLevel & TRACE_RESOURCES && _COMPONENT & AcpiDbgLayer) - { - PrtElement = (PCI_ROUTING_TABLE *) Buffer; - - while (!Done) - { - AcpiOsPrintf ("\tPCI IRQ Routing Table structure %X.\n", Count++); - - AcpiOsPrintf ("\t\tAddress: %X\n", - PrtElement->Address); - - AcpiOsPrintf ("\t\tPin: %X\n", PrtElement->Pin); - - AcpiOsPrintf ("\t\tSource: %s\n", PrtElement->Source); - - AcpiOsPrintf ("\t\tSourceIndex: %X\n", - PrtElement->SourceIndex); - - Buffer += PrtElement->Length; - - PrtElement = (PCI_ROUTING_TABLE *) Buffer; - - if(0 == PrtElement->Length) - { - Done = TRUE; - } - } - } - - return; -} - diff --git a/sys/contrib/dev/acpica/Subsystem/Resources/rsio.c b/sys/contrib/dev/acpica/Subsystem/Resources/rsio.c deleted file mode 100644 index 9244f58fd9a9d..0000000000000 --- a/sys/contrib/dev/acpica/Subsystem/Resources/rsio.c +++ /dev/null @@ -1,637 +0,0 @@ -/******************************************************************************* - * - * Module Name: rsio - AcpiRsIoResource - * AcpiRsFixedIoResource - * AcpiRsIoStream - * AcpiRsFixedIoStream - * AcpiRsDmaResource - * AcpiRsDmaStream - * $Revision: 12 $ - * - ******************************************************************************/ - -/****************************************************************************** - * - * 1. Copyright Notice - * - * Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp. - * All rights reserved. - * - * 2. License - * - * 2.1. This is your license from Intel Corp. under its intellectual property - * rights. You may have additional license terms from the party that provided - * you this software, covering your right to use that party's intellectual - * property rights. - * - * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a - * copy of the source code appearing in this file ("Covered Code") an - * irrevocable, perpetual, worldwide license under Intel's copyrights in the - * base code distributed originally by Intel ("Original Intel Code") to copy, - * make derivatives, distribute, use and display any portion of the Covered - * Code in any form, with the right to sublicense such rights; and - * - * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent - * license (with the right to sublicense), under only those claims of Intel - * patents that are infringed by the Original Intel Code, to make, use, sell, - * offer to sell, and import the Covered Code and derivative works thereof - * solely to the minimum extent necessary to exercise the above copyright - * license, and in no event shall the patent license extend to any additions - * to or modifications of the Original Intel Code. No other license or right - * is granted directly or by implication, estoppel or otherwise; - * - * The above copyright and patent license is granted only if the following - * conditions are met: - * - * 3. Conditions - * - * 3.1. Redistribution of Source with Rights to Further Distribute Source. - * Redistribution of source code of any substantial portion of the Covered - * Code or modification with rights to further distribute source must include - * the above Copyright Notice, the above License, this list of Conditions, - * and the following Disclaimer and Export Compliance provision. In addition, - * Licensee must cause all Covered Code to which Licensee contributes to - * contain a file documenting the changes Licensee made to create that Covered - * Code and the date of any change. Licensee must include in that file the - * documentation of any changes made by any predecessor Licensee. Licensee - * must include a prominent statement that the modification is derived, - * directly or indirectly, from Original Intel Code. - * - * 3.2. Redistribution of Source with no Rights to Further Distribute Source. - * Redistribution of source code of any substantial portion of the Covered - * Code or modification without rights to further distribute source must - * include the following Disclaimer and Export Compliance provision in the - * documentation and/or other materials provided with distribution. In - * addition, Licensee may not authorize further sublicense of source of any - * portion of the Covered Code, and must include terms to the effect that the - * license from Licensee to its licensee is limited to the intellectual - * property embodied in the software Licensee provides to its licensee, and - * not to intellectual property embodied in modifications its licensee may - * make. - * - * 3.3. Redistribution of Executable. Redistribution in executable form of any - * substantial portion of the Covered Code or modification must reproduce the - * above Copyright Notice, and the following Disclaimer and Export Compliance - * provision in the documentation and/or other materials provided with the - * distribution. - * - * 3.4. Intel retains all right, title, and interest in and to the Original - * Intel Code. - * - * 3.5. Neither the name Intel nor any other trademark owned or controlled by - * Intel shall be used in advertising or otherwise to promote the sale, use or - * other dealings in products derived from or relating to the Covered Code - * without prior written authorization from Intel. - * - * 4. Disclaimer and Export Compliance - * - * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED - * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE - * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, - * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY - * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY - * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A - * PARTICULAR PURPOSE. - * - * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES - * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR - * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, - * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY - * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL - * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS - * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY - * LIMITED REMEDY. - * - * 4.3. Licensee shall not export, either directly or indirectly, any of this - * software or system incorporating such software without first obtaining any - * required license or other approval from the U. S. Department of Commerce or - * any other agency or department of the United States Government. In the - * event Licensee exports any such software from the United States or - * re-exports any such software from a foreign destination, Licensee shall - * ensure that the distribution and export/re-export of the software is in - * compliance with all laws, regulations, orders, or other restrictions of the - * U.S. Export Administration Regulations. Licensee agrees that neither it nor - * any of its subsidiaries will export/re-export any technical data, process, - * software, or service, directly or indirectly, to any country for which the - * United States government or any agency thereof requires an export license, - * other governmental approval, or letter of assurance, without first obtaining - * such license, approval or letter. - * - *****************************************************************************/ - -#define __RSIO_C__ - -#include "acpi.h" -#include "acresrc.h" - -#define _COMPONENT RESOURCE_MANAGER - MODULE_NAME ("rsio") - - -/******************************************************************************* - * - * FUNCTION: AcpiRsIoResource - * - * PARAMETERS: ByteStreamBuffer - Pointer to the resource input byte - * stream - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes consumed from - * the ByteStreamBuffer - * OutputBuffer - Pointer to the user's return buffer - * StructureSize - UINT32 pointer that is filled with - * the number of bytes in the filled - * in structure - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the resource byte stream and fill out the appropriate - * structure pointed to by the OutputBuffer. Return the - * number of bytes consumed from the byte stream. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsIoResource ( - UINT8 *ByteStreamBuffer, - UINT32 *BytesConsumed, - UINT8 **OutputBuffer, - UINT32 *StructureSize) -{ - UINT8 *Buffer = ByteStreamBuffer; - RESOURCE *OutputStruct = (RESOURCE *) * OutputBuffer; - UINT16 Temp16 = 0; - UINT8 Temp8 = 0; - UINT32 StructSize = sizeof (IO_RESOURCE) + - RESOURCE_LENGTH_NO_DATA; - - - FUNCTION_TRACE ("RsIoResource"); - - /* - * The number of bytes consumed are Constant - */ - *BytesConsumed = 8; - - OutputStruct->Id = Io; - - /* - * Check Decode - */ - Buffer += 1; - Temp8 = *Buffer; - - OutputStruct->Data.Io.IoDecode = Temp8 & 0x01; - - /* - * Check MinBase Address - */ - Buffer += 1; - MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer); - - OutputStruct->Data.Io.MinBaseAddress = Temp16; - - /* - * Check MaxBase Address - */ - Buffer += 2; - MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer); - - OutputStruct->Data.Io.MaxBaseAddress = Temp16; - - /* - * Check Base alignment - */ - Buffer += 2; - Temp8 = *Buffer; - - OutputStruct->Data.Io.Alignment = Temp8; - - /* - * Check RangeLength - */ - Buffer += 1; - Temp8 = *Buffer; - - OutputStruct->Data.Io.RangeLength = Temp8; - - /* - * Set the Length parameter - */ - OutputStruct->Length = StructSize; - - /* - * Return the final size of the structure - */ - *StructureSize = StructSize; - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsFixedIoResource - * - * PARAMETERS: ByteStreamBuffer - Pointer to the resource input byte - * stream - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes consumed from - * the ByteStreamBuffer - * OutputBuffer - Pointer to the user's return buffer - * StructureSize - UINT32 pointer that is filled with - * the number of bytes in the filled - * in structure - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the resource byte stream and fill out the appropriate - * structure pointed to by the OutputBuffer. Return the - * number of bytes consumed from the byte stream. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsFixedIoResource ( - UINT8 *ByteStreamBuffer, - UINT32 *BytesConsumed, - UINT8 **OutputBuffer, - UINT32 *StructureSize) -{ - UINT8 *Buffer = ByteStreamBuffer; - RESOURCE *OutputStruct = (RESOURCE *) * OutputBuffer; - UINT16 Temp16 = 0; - UINT8 Temp8 = 0; - UINT32 StructSize = sizeof (FIXED_IO_RESOURCE) + - RESOURCE_LENGTH_NO_DATA; - - - FUNCTION_TRACE ("RsFixedIoResource"); - - /* - * The number of bytes consumed are Constant - */ - *BytesConsumed = 4; - - OutputStruct->Id = FixedIo; - - /* - * Check Range Base Address - */ - Buffer += 1; - MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer); - - OutputStruct->Data.FixedIo.BaseAddress = Temp16; - - /* - * Check RangeLength - */ - Buffer += 2; - Temp8 = *Buffer; - - OutputStruct->Data.FixedIo.RangeLength = Temp8; - - /* - * Set the Length parameter - */ - OutputStruct->Length = StructSize; - - /* - * Return the final size of the structure - */ - *StructureSize = StructSize; - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsIoStream - * - * PARAMETERS: LinkedList - Pointer to the resource linked list - * OutputBuffer - Pointer to the user's return buffer - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes of the - * OutputBuffer used - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the linked list resource structure and fills in the - * the appropriate bytes in a byte stream - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsIoStream ( - RESOURCE *LinkedList, - UINT8 **OutputBuffer, - UINT32 *BytesConsumed) -{ - UINT8 *Buffer = *OutputBuffer; - UINT16 Temp16 = 0; - UINT8 Temp8 = 0; - - - FUNCTION_TRACE ("RsIoStream"); - - /* - * The descriptor field is static - */ - *Buffer = 0x47; - Buffer += 1; - - /* - * Io Information Byte - */ - Temp8 = (UINT8) (LinkedList->Data.Io.IoDecode & 0x01); - - *Buffer = Temp8; - Buffer += 1; - - /* - * Set the Range minimum base address - */ - Temp16 = (UINT16) LinkedList->Data.Io.MinBaseAddress; - - MOVE_UNALIGNED16_TO_16 (Buffer, &Temp16); - Buffer += 2; - - /* - * Set the Range maximum base address - */ - Temp16 = (UINT16) LinkedList->Data.Io.MaxBaseAddress; - - MOVE_UNALIGNED16_TO_16 (Buffer, &Temp16); - Buffer += 2; - - /* - * Set the base alignment - */ - Temp8 = (UINT8) LinkedList->Data.Io.Alignment; - - *Buffer = Temp8; - Buffer += 1; - - /* - * Set the range length - */ - Temp8 = (UINT8) LinkedList->Data.Io.RangeLength; - - *Buffer = Temp8; - Buffer += 1; - - /* - * Return the number of bytes consumed in this operation - */ - *BytesConsumed = (UINT32) ((NATIVE_UINT) Buffer - - (NATIVE_UINT) *OutputBuffer); - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsFixedIoStream - * - * PARAMETERS: LinkedList - Pointer to the resource linked list - * OutputBuffer - Pointer to the user's return buffer - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes of the - * OutputBuffer used - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the linked list resource structure and fills in the - * the appropriate bytes in a byte stream - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsFixedIoStream ( - RESOURCE *LinkedList, - UINT8 **OutputBuffer, - UINT32 *BytesConsumed) -{ - UINT8 *Buffer = *OutputBuffer; - UINT16 Temp16 = 0; - UINT8 Temp8 = 0; - - - FUNCTION_TRACE ("RsFixedIoStream"); - - /* - * The descriptor field is static - */ - *Buffer = 0x4B; - - Buffer += 1; - - /* - * Set the Range base address - */ - Temp16 = (UINT16) LinkedList->Data.FixedIo.BaseAddress; - - MOVE_UNALIGNED16_TO_16 (Buffer, &Temp16); - Buffer += 2; - - /* - * Set the range length - */ - Temp8 = (UINT8) LinkedList->Data.FixedIo.RangeLength; - - *Buffer = Temp8; - Buffer += 1; - - /* - * Return the number of bytes consumed in this operation - */ - *BytesConsumed = (UINT32) ((NATIVE_UINT) Buffer - - (NATIVE_UINT) *OutputBuffer); - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsDmaResource - * - * PARAMETERS: ByteStreamBuffer - Pointer to the resource input byte - * stream - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes consumed from - * the ByteStreamBuffer - * OutputBuffer - Pointer to the user's return buffer - * StructureSize - UINT32 pointer that is filled with - * the number of bytes in the filled - * in structure - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the resource byte stream and fill out the appropriate - * structure pointed to by the OutputBuffer. Return the - * number of bytes consumed from the byte stream. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsDmaResource ( - UINT8 *ByteStreamBuffer, - UINT32 *BytesConsumed, - UINT8 **OutputBuffer, - UINT32 *StructureSize) -{ - UINT8 *Buffer = ByteStreamBuffer; - RESOURCE *OutputStruct = (RESOURCE *) * OutputBuffer; - UINT8 Temp8 = 0; - UINT8 Index; - UINT8 i; - UINT32 StructSize = sizeof(DMA_RESOURCE) + - RESOURCE_LENGTH_NO_DATA; - - - FUNCTION_TRACE ("RsDmaResource"); - - /* - * The number of bytes consumed are Constant - */ - *BytesConsumed = 3; - OutputStruct->Id = Dma; - - /* - * Point to the 8-bits of Byte 1 - */ - Buffer += 1; - Temp8 = *Buffer; - - /* Decode the IRQ bits */ - - for (i = 0, Index = 0; Index < 8; Index++) - { - if ((Temp8 >> Index) & 0x01) - { - OutputStruct->Data.Dma.Channels[i] = Index; - i++; - } - } - OutputStruct->Data.Dma.NumberOfChannels = i; - - - /* - * Calculate the structure size based upon the number of interrupts - */ - StructSize += (OutputStruct->Data.Dma.NumberOfChannels - 1) * 4; - - /* - * Point to Byte 2 - */ - Buffer += 1; - Temp8 = *Buffer; - - /* - * Check for transfer preference (Bits[1:0]) - */ - OutputStruct->Data.Dma.Transfer = Temp8 & 0x03; - - if (0x03 == OutputStruct->Data.Dma.Transfer) - { - return_ACPI_STATUS (AE_BAD_DATA); - } - - /* - * Get bus master preference (Bit[2]) - */ - OutputStruct->Data.Dma.BusMaster = (Temp8 >> 2) & 0x01; - - /* - * Get channel speed support (Bits[6:5]) - */ - OutputStruct->Data.Dma.Type = (Temp8 >> 5) & 0x03; - - /* - * Set the Length parameter - */ - OutputStruct->Length = StructSize; - - /* - * Return the final size of the structure - */ - *StructureSize = StructSize; - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsDmaStream - * - * PARAMETERS: LinkedList - Pointer to the resource linked list - * OutputBuffer - Pointer to the user's return buffer - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes of the - * OutputBuffer used - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the linked list resource structure and fills in the - * the appropriate bytes in a byte stream - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsDmaStream ( - RESOURCE *LinkedList, - UINT8 **OutputBuffer, - UINT32 *BytesConsumed) -{ - UINT8 *Buffer = *OutputBuffer; - UINT16 Temp16 = 0; - UINT8 Temp8 = 0; - UINT8 Index; - - - FUNCTION_TRACE ("RsDmaStream"); - - - /* - * The descriptor field is static - */ - *Buffer = 0x2A; - Buffer += 1; - Temp8 = 0; - - /* - * Loop through all of the Channels and set the mask bits - */ - for (Index = 0; - Index < LinkedList->Data.Dma.NumberOfChannels; - Index++) - { - Temp16 = (UINT16) LinkedList->Data.Dma.Channels[Index]; - Temp8 |= 0x1 << Temp16; - } - - *Buffer = Temp8; - Buffer += 1; - - /* - * Set the DMA Info - */ - Temp8 = (UINT8) ((LinkedList->Data.Dma.Type & 0x03) << 5); - Temp8 |= ((LinkedList->Data.Dma.BusMaster & 0x01) << 2); - Temp8 |= (LinkedList->Data.Dma.Transfer & 0x03); - - *Buffer = Temp8; - Buffer += 1; - - /* - * Return the number of bytes consumed in this operation - */ - *BytesConsumed = (UINT32) ((NATIVE_UINT) Buffer - - (NATIVE_UINT) *OutputBuffer); - - return_ACPI_STATUS (AE_OK); -} - diff --git a/sys/contrib/dev/acpica/Subsystem/Resources/rsirq.c b/sys/contrib/dev/acpica/Subsystem/Resources/rsirq.c deleted file mode 100644 index 586195e854c00..0000000000000 --- a/sys/contrib/dev/acpica/Subsystem/Resources/rsirq.c +++ /dev/null @@ -1,684 +0,0 @@ -/******************************************************************************* - * - * Module Name: rsirq - AcpiRsIrqResource, - * AcpiRsIrqStream - * AcpiRsExtendedIrqResource - * AcpiRsExtendedIrqStream - * $Revision: 13 $ - * - ******************************************************************************/ - -/****************************************************************************** - * - * 1. Copyright Notice - * - * Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp. - * All rights reserved. - * - * 2. License - * - * 2.1. This is your license from Intel Corp. under its intellectual property - * rights. You may have additional license terms from the party that provided - * you this software, covering your right to use that party's intellectual - * property rights. - * - * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a - * copy of the source code appearing in this file ("Covered Code") an - * irrevocable, perpetual, worldwide license under Intel's copyrights in the - * base code distributed originally by Intel ("Original Intel Code") to copy, - * make derivatives, distribute, use and display any portion of the Covered - * Code in any form, with the right to sublicense such rights; and - * - * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent - * license (with the right to sublicense), under only those claims of Intel - * patents that are infringed by the Original Intel Code, to make, use, sell, - * offer to sell, and import the Covered Code and derivative works thereof - * solely to the minimum extent necessary to exercise the above copyright - * license, and in no event shall the patent license extend to any additions - * to or modifications of the Original Intel Code. No other license or right - * is granted directly or by implication, estoppel or otherwise; - * - * The above copyright and patent license is granted only if the following - * conditions are met: - * - * 3. Conditions - * - * 3.1. Redistribution of Source with Rights to Further Distribute Source. - * Redistribution of source code of any substantial portion of the Covered - * Code or modification with rights to further distribute source must include - * the above Copyright Notice, the above License, this list of Conditions, - * and the following Disclaimer and Export Compliance provision. In addition, - * Licensee must cause all Covered Code to which Licensee contributes to - * contain a file documenting the changes Licensee made to create that Covered - * Code and the date of any change. Licensee must include in that file the - * documentation of any changes made by any predecessor Licensee. Licensee - * must include a prominent statement that the modification is derived, - * directly or indirectly, from Original Intel Code. - * - * 3.2. Redistribution of Source with no Rights to Further Distribute Source. - * Redistribution of source code of any substantial portion of the Covered - * Code or modification without rights to further distribute source must - * include the following Disclaimer and Export Compliance provision in the - * documentation and/or other materials provided with distribution. In - * addition, Licensee may not authorize further sublicense of source of any - * portion of the Covered Code, and must include terms to the effect that the - * license from Licensee to its licensee is limited to the intellectual - * property embodied in the software Licensee provides to its licensee, and - * not to intellectual property embodied in modifications its licensee may - * make. - * - * 3.3. Redistribution of Executable. Redistribution in executable form of any - * substantial portion of the Covered Code or modification must reproduce the - * above Copyright Notice, and the following Disclaimer and Export Compliance - * provision in the documentation and/or other materials provided with the - * distribution. - * - * 3.4. Intel retains all right, title, and interest in and to the Original - * Intel Code. - * - * 3.5. Neither the name Intel nor any other trademark owned or controlled by - * Intel shall be used in advertising or otherwise to promote the sale, use or - * other dealings in products derived from or relating to the Covered Code - * without prior written authorization from Intel. - * - * 4. Disclaimer and Export Compliance - * - * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED - * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE - * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, - * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY - * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY - * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A - * PARTICULAR PURPOSE. - * - * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES - * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR - * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, - * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY - * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL - * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS - * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY - * LIMITED REMEDY. - * - * 4.3. Licensee shall not export, either directly or indirectly, any of this - * software or system incorporating such software without first obtaining any - * required license or other approval from the U. S. Department of Commerce or - * any other agency or department of the United States Government. In the - * event Licensee exports any such software from the United States or - * re-exports any such software from a foreign destination, Licensee shall - * ensure that the distribution and export/re-export of the software is in - * compliance with all laws, regulations, orders, or other restrictions of the - * U.S. Export Administration Regulations. Licensee agrees that neither it nor - * any of its subsidiaries will export/re-export any technical data, process, - * software, or service, directly or indirectly, to any country for which the - * United States government or any agency thereof requires an export license, - * other governmental approval, or letter of assurance, without first obtaining - * such license, approval or letter. - * - *****************************************************************************/ - -#define __RSIRQ_C__ - -#include "acpi.h" -#include "acresrc.h" - -#define _COMPONENT RESOURCE_MANAGER - MODULE_NAME ("rsirq") - - -/******************************************************************************* - * - * FUNCTION: AcpiRsIrqResource - * - * PARAMETERS: ByteStreamBuffer - Pointer to the resource input byte - * stream - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes consumed from - * the ByteStreamBuffer - * OutputBuffer - Pointer to the user's return buffer - * StructureSize - UINT32 pointer that is filled with - * the number of bytes in the filled - * in structure - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the resource byte stream and fill out the appropriate - * structure pointed to by the OutputBuffer. Return the - * number of bytes consumed from the byte stream. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsIrqResource ( - UINT8 *ByteStreamBuffer, - UINT32 *BytesConsumed, - UINT8 **OutputBuffer, - UINT32 *StructureSize) -{ - UINT8 *Buffer = ByteStreamBuffer; - RESOURCE *OutputStruct = (RESOURCE *) * OutputBuffer; - UINT16 Temp16 = 0; - UINT8 Temp8 = 0; - UINT8 Index; - UINT8 i; - UINT32 StructSize = sizeof (IRQ_RESOURCE) + - RESOURCE_LENGTH_NO_DATA; - - - FUNCTION_TRACE ("RsIrqResource"); - - /* - * The number of bytes consumed are contained in the descriptor - * (Bits:0-1) - */ - Temp8 = *Buffer; - *BytesConsumed = (Temp8 & 0x03) + 1; - OutputStruct->Id = Irq; - - /* - * Point to the 16-bits of Bytes 1 and 2 - */ - Buffer += 1; - MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer); - - OutputStruct->Data.Irq.NumberOfInterrupts = 0; - - /* Decode the IRQ bits */ - - for (i = 0, Index = 0; Index < 16; Index++) - { - if((Temp16 >> Index) & 0x01) - { - OutputStruct->Data.Irq.Interrupts[i] = Index; - i++; - } - } - OutputStruct->Data.Irq.NumberOfInterrupts = i; - - /* - * Calculate the structure size based upon the number of interrupts - */ - StructSize += (OutputStruct->Data.Irq.NumberOfInterrupts - 1) * 4; - - /* - * Point to Byte 3 if it is used - */ - if (4 == *BytesConsumed) - { - Buffer += 2; - Temp8 = *Buffer; - - /* - * Check for HE, LL or HL - */ - if (Temp8 & 0x01) - { - OutputStruct->Data.Irq.EdgeLevel = EDGE_SENSITIVE; - OutputStruct->Data.Irq.ActiveHighLow = ACTIVE_HIGH; - } - - else - { - if (Temp8 & 0x8) - { - OutputStruct->Data.Irq.EdgeLevel = LEVEL_SENSITIVE; - OutputStruct->Data.Irq.ActiveHighLow = ACTIVE_LOW; - } - - else - { - /* - * Only _LL and _HE polarity/trigger interrupts - * are allowed (ACPI spec v1.0b ection 6.4.2.1), - * so an error will occur if we reach this point - */ - return_ACPI_STATUS (AE_BAD_DATA); - } - } - - /* - * Check for sharable - */ - OutputStruct->Data.Irq.SharedExclusive = (Temp8 >> 3) & 0x01; - } - - else - { - /* - * Assume Edge Sensitive, Active High, Non-Sharable - * per ACPI Specification - */ - OutputStruct->Data.Irq.EdgeLevel = EDGE_SENSITIVE; - OutputStruct->Data.Irq.ActiveHighLow = ACTIVE_HIGH; - OutputStruct->Data.Irq.SharedExclusive = EXCLUSIVE; - } - - /* - * Set the Length parameter - */ - OutputStruct->Length = StructSize; - - /* - * Return the final size of the structure - */ - *StructureSize = StructSize; - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsIrqStream - * - * PARAMETERS: LinkedList - Pointer to the resource linked list - * OutputBuffer - Pointer to the user's return buffer - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes of the - * OutputBuffer used - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the linked list resource structure and fills in the - * the appropriate bytes in a byte stream - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsIrqStream ( - RESOURCE *LinkedList, - UINT8 **OutputBuffer, - UINT32 *BytesConsumed) -{ - UINT8 *Buffer = *OutputBuffer; - UINT16 Temp16 = 0; - UINT8 Temp8 = 0; - UINT8 Index; - BOOLEAN IRQInfoByteNeeded; - - - FUNCTION_TRACE ("RsIrqStream"); - - - /* - * The descriptor field is set based upon whether a third byte is - * needed to contain the IRQ Information. - */ - if (EDGE_SENSITIVE == LinkedList->Data.Irq.EdgeLevel && - ACTIVE_HIGH == LinkedList->Data.Irq.ActiveHighLow && - EXCLUSIVE == LinkedList->Data.Irq.SharedExclusive) - { - *Buffer = 0x22; - IRQInfoByteNeeded = FALSE; - } - else - { - *Buffer = 0x23; - IRQInfoByteNeeded = TRUE; - } - - Buffer += 1; - Temp16 = 0; - - /* - * Loop through all of the interrupts and set the mask bits - */ - for(Index = 0; - Index < LinkedList->Data.Irq.NumberOfInterrupts; - Index++) - { - Temp8 = (UINT8) LinkedList->Data.Irq.Interrupts[Index]; - Temp16 |= 0x1 << Temp8; - } - - MOVE_UNALIGNED16_TO_16 (Buffer, &Temp16); - Buffer += 2; - - /* - * Set the IRQ Info byte if needed. - */ - if (IRQInfoByteNeeded) - { - Temp8 = 0; - Temp8 = (UINT8) ((LinkedList->Data.Irq.SharedExclusive & - 0x01) << 4); - - if (LEVEL_SENSITIVE == LinkedList->Data.Irq.EdgeLevel && - ACTIVE_LOW == LinkedList->Data.Irq.ActiveHighLow) - { - Temp8 |= 0x08; - } - - else - { - Temp8 |= 0x01; - } - - *Buffer = Temp8; - Buffer += 1; - } - - /* - * Return the number of bytes consumed in this operation - */ - *BytesConsumed = (UINT32) ((NATIVE_UINT) Buffer - - (NATIVE_UINT) *OutputBuffer); - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsExtendedIrqResource - * - * PARAMETERS: ByteStreamBuffer - Pointer to the resource input byte - * stream - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes consumed from - * the ByteStreamBuffer - * OutputBuffer - Pointer to the user's return buffer - * StructureSize - UINT32 pointer that is filled with - * the number of bytes in the filled - * in structure - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the resource byte stream and fill out the appropriate - * structure pointed to by the OutputBuffer. Return the - * number of bytes consumed from the byte stream. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsExtendedIrqResource ( - UINT8 *ByteStreamBuffer, - UINT32 *BytesConsumed, - UINT8 **OutputBuffer, - UINT32 *StructureSize) -{ - UINT8 *Buffer = ByteStreamBuffer; - RESOURCE *OutputStruct = (RESOURCE *) * OutputBuffer; - UINT16 Temp16 = 0; - UINT8 Temp8 = 0; - UINT8 Index; - UINT32 StructSize = sizeof (EXTENDED_IRQ_RESOURCE) + - RESOURCE_LENGTH_NO_DATA; - - - FUNCTION_TRACE ("RsExtendedIrqResource"); - - /* - * Point past the Descriptor to get the number of bytes consumed - */ - Buffer += 1; - MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer); - - *BytesConsumed = Temp16 + 3; - OutputStruct->Id = ExtendedIrq; - - /* - * Point to the Byte3 - */ - Buffer += 2; - Temp8 = *Buffer; - - OutputStruct->Data.ExtendedIrq.ProducerConsumer = Temp8 & 0x01; - - /* - * Check for HE, LL or HL - */ - if(Temp8 & 0x02) - { - OutputStruct->Data.ExtendedIrq.EdgeLevel = EDGE_SENSITIVE; - OutputStruct->Data.ExtendedIrq.ActiveHighLow = ACTIVE_HIGH; - } - - else - { - if(Temp8 & 0x4) - { - OutputStruct->Data.ExtendedIrq.EdgeLevel = LEVEL_SENSITIVE; - OutputStruct->Data.ExtendedIrq.ActiveHighLow = ACTIVE_LOW; - } - - else - { - /* - * Only _LL and _HE polarity/trigger interrupts - * are allowed (ACPI spec v1.0b ection 6.4.2.1), - * so an error will occur if we reach this point - */ - return_ACPI_STATUS (AE_BAD_DATA); - } - } - - /* - * Check for sharable - */ - OutputStruct->Data.ExtendedIrq.SharedExclusive = - (Temp8 >> 3) & 0x01; - - /* - * Point to Byte4 (IRQ Table length) - */ - Buffer += 1; - Temp8 = *Buffer; - - OutputStruct->Data.ExtendedIrq.NumberOfInterrupts = Temp8; - - /* - * Add any additional structure size to properly calculate - * the next pointer at the end of this function - */ - StructSize += (Temp8 - 1) * 4; - - /* - * Point to Byte5 (First IRQ Number) - */ - Buffer += 1; - - /* - * Cycle through every IRQ in the table - */ - for (Index = 0; Index < Temp8; Index++) - { - OutputStruct->Data.ExtendedIrq.Interrupts[Index] = - (UINT32)*Buffer; - - /* Point to the next IRQ */ - - Buffer += 4; - } - - /* - * This will leave us pointing to the Resource Source Index - * If it is present, then save it off and calculate the - * pointer to where the null terminated string goes: - * Each Interrupt takes 32-bits + the 5 bytes of the - * stream that are default. - */ - if (*BytesConsumed > - (UINT32)(OutputStruct->Data.ExtendedIrq.NumberOfInterrupts * - 4) + 5) - { - /* Dereference the Index */ - - Temp8 = *Buffer; - OutputStruct->Data.ExtendedIrq.ResourceSourceIndex = - (UINT32)Temp8; - - /* Point to the String */ - - Buffer += 1; - - /* Copy the string into the buffer */ - - Index = 0; - - while (0x00 != *Buffer) - { - OutputStruct->Data.ExtendedIrq.ResourceSource[Index] = - *Buffer; - - Buffer += 1; - Index += 1; - } - - /* - * Add the terminating null - */ - OutputStruct->Data.ExtendedIrq.ResourceSource[Index] = 0x00; - OutputStruct->Data.ExtendedIrq.ResourceSourceStringLength = - Index + 1; - - /* - * In order for the StructSize to fall on a 32-bit boundry, - * calculate the length of the string and expand the - * StructSize to the next 32-bit boundry. - */ - Temp8 = (UINT8) (Index + 1); - Temp8 = (UINT8) ROUND_UP_TO_32BITS (Temp8); - } - - else - { - OutputStruct->Data.ExtendedIrq.ResourceSourceIndex = 0x00; - OutputStruct->Data.ExtendedIrq.ResourceSourceStringLength = 0; - OutputStruct->Data.ExtendedIrq.ResourceSource[0] = 0x00; - } - - /* - * Set the Length parameter - */ - OutputStruct->Length = StructSize; - - /* - * Return the final size of the structure - */ - *StructureSize = StructSize; - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsExtendedIrqStream - * - * PARAMETERS: LinkedList - Pointer to the resource linked list - * OutputBuffer - Pointer to the user's return buffer - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes of the - * OutputBuffer used - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the linked list resource structure and fills in the - * the appropriate bytes in a byte stream - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsExtendedIrqStream ( - RESOURCE *LinkedList, - UINT8 **OutputBuffer, - UINT32 *BytesConsumed) -{ - UINT8 *Buffer = *OutputBuffer; - UINT16 *LengthField; - UINT8 Temp8 = 0; - UINT8 Index; - NATIVE_CHAR *TempPointer = NULL; - - - FUNCTION_TRACE ("RsExtendedIrqStream"); - - - /* - * The descriptor field is static - */ - *Buffer = 0x89; - Buffer += 1; - - /* - * Set a pointer to the Length field - to be filled in later - */ - - LengthField = (UINT16 *)Buffer; - Buffer += 2; - - /* - * Set the Interrupt vector flags - */ - Temp8 = (UINT8)(LinkedList->Data.ExtendedIrq.ProducerConsumer & 0x01); - - Temp8 |= ((LinkedList->Data.ExtendedIrq.SharedExclusive & 0x01) << 3); - - if (LEVEL_SENSITIVE == LinkedList->Data.ExtendedIrq.EdgeLevel && - ACTIVE_LOW == LinkedList->Data.ExtendedIrq.ActiveHighLow) - { - Temp8 |= 0x04; - } - else - { - Temp8 |= 0x02; - } - - *Buffer = Temp8; - Buffer += 1; - - /* - * Set the Interrupt table length - */ - Temp8 = (UINT8) LinkedList->Data.ExtendedIrq.NumberOfInterrupts; - - *Buffer = Temp8; - Buffer += 1; - - for (Index = 0; - Index < LinkedList->Data.ExtendedIrq.NumberOfInterrupts; - Index++) - { - MOVE_UNALIGNED32_TO_32 (Buffer, - &LinkedList->Data.ExtendedIrq.Interrupts[Index]); - Buffer += 4; - } - - /* - * Resource Source Index and Resource Source are optional - */ - if (0 != LinkedList->Data.ExtendedIrq.ResourceSourceStringLength) - { - *Buffer = (UINT8) LinkedList->Data.ExtendedIrq.ResourceSourceIndex; - Buffer += 1; - - TempPointer = (NATIVE_CHAR *) Buffer; - - /* - * Copy the string - */ - STRCPY (TempPointer, LinkedList->Data.ExtendedIrq.ResourceSource); - - /* - * Buffer needs to be set to the length of the sting + one for the - * terminating null - */ - Buffer += (STRLEN (LinkedList->Data.ExtendedIrq.ResourceSource) + 1); - } - - /* - * Return the number of bytes consumed in this operation - */ - *BytesConsumed = (UINT32) ((NATIVE_UINT) Buffer - - (NATIVE_UINT) *OutputBuffer); - - /* - * Set the length field to the number of bytes consumed - * minus the header size (3 bytes) - */ - *LengthField = (UINT16) (*BytesConsumed - 3); - - return_ACPI_STATUS (AE_OK); -} - diff --git a/sys/contrib/dev/acpica/Subsystem/Resources/rslist.c b/sys/contrib/dev/acpica/Subsystem/Resources/rslist.c deleted file mode 100644 index 60e10b48b979f..0000000000000 --- a/sys/contrib/dev/acpica/Subsystem/Resources/rslist.c +++ /dev/null @@ -1,605 +0,0 @@ -/******************************************************************************* - * - * Module Name: rslist - AcpiRsByteStreamToList - * AcpiListToByteStream - * $Revision: 11 $ - * - ******************************************************************************/ - -/****************************************************************************** - * - * 1. Copyright Notice - * - * Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp. - * All rights reserved. - * - * 2. License - * - * 2.1. This is your license from Intel Corp. under its intellectual property - * rights. You may have additional license terms from the party that provided - * you this software, covering your right to use that party's intellectual - * property rights. - * - * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a - * copy of the source code appearing in this file ("Covered Code") an - * irrevocable, perpetual, worldwide license under Intel's copyrights in the - * base code distributed originally by Intel ("Original Intel Code") to copy, - * make derivatives, distribute, use and display any portion of the Covered - * Code in any form, with the right to sublicense such rights; and - * - * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent - * license (with the right to sublicense), under only those claims of Intel - * patents that are infringed by the Original Intel Code, to make, use, sell, - * offer to sell, and import the Covered Code and derivative works thereof - * solely to the minimum extent necessary to exercise the above copyright - * license, and in no event shall the patent license extend to any additions - * to or modifications of the Original Intel Code. No other license or right - * is granted directly or by implication, estoppel or otherwise; - * - * The above copyright and patent license is granted only if the following - * conditions are met: - * - * 3. Conditions - * - * 3.1. Redistribution of Source with Rights to Further Distribute Source. - * Redistribution of source code of any substantial portion of the Covered - * Code or modification with rights to further distribute source must include - * the above Copyright Notice, the above License, this list of Conditions, - * and the following Disclaimer and Export Compliance provision. In addition, - * Licensee must cause all Covered Code to which Licensee contributes to - * contain a file documenting the changes Licensee made to create that Covered - * Code and the date of any change. Licensee must include in that file the - * documentation of any changes made by any predecessor Licensee. Licensee - * must include a prominent statement that the modification is derived, - * directly or indirectly, from Original Intel Code. - * - * 3.2. Redistribution of Source with no Rights to Further Distribute Source. - * Redistribution of source code of any substantial portion of the Covered - * Code or modification without rights to further distribute source must - * include the following Disclaimer and Export Compliance provision in the - * documentation and/or other materials provided with distribution. In - * addition, Licensee may not authorize further sublicense of source of any - * portion of the Covered Code, and must include terms to the effect that the - * license from Licensee to its licensee is limited to the intellectual - * property embodied in the software Licensee provides to its licensee, and - * not to intellectual property embodied in modifications its licensee may - * make. - * - * 3.3. Redistribution of Executable. Redistribution in executable form of any - * substantial portion of the Covered Code or modification must reproduce the - * above Copyright Notice, and the following Disclaimer and Export Compliance - * provision in the documentation and/or other materials provided with the - * distribution. - * - * 3.4. Intel retains all right, title, and interest in and to the Original - * Intel Code. - * - * 3.5. Neither the name Intel nor any other trademark owned or controlled by - * Intel shall be used in advertising or otherwise to promote the sale, use or - * other dealings in products derived from or relating to the Covered Code - * without prior written authorization from Intel. - * - * 4. Disclaimer and Export Compliance - * - * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED - * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE - * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, - * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY - * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY - * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A - * PARTICULAR PURPOSE. - * - * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES - * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR - * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, - * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY - * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL - * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS - * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY - * LIMITED REMEDY. - * - * 4.3. Licensee shall not export, either directly or indirectly, any of this - * software or system incorporating such software without first obtaining any - * required license or other approval from the U. S. Department of Commerce or - * any other agency or department of the United States Government. In the - * event Licensee exports any such software from the United States or - * re-exports any such software from a foreign destination, Licensee shall - * ensure that the distribution and export/re-export of the software is in - * compliance with all laws, regulations, orders, or other restrictions of the - * U.S. Export Administration Regulations. Licensee agrees that neither it nor - * any of its subsidiaries will export/re-export any technical data, process, - * software, or service, directly or indirectly, to any country for which the - * United States government or any agency thereof requires an export license, - * other governmental approval, or letter of assurance, without first obtaining - * such license, approval or letter. - * - *****************************************************************************/ - -#define __RSLIST_C__ - -#include "acpi.h" -#include "acresrc.h" - -#define _COMPONENT RESOURCE_MANAGER - MODULE_NAME ("rslist") - - -/******************************************************************************* - * - * FUNCTION: AcpiRsByteStreamToList - * - * PARAMETERS: ByteStreamBuffer - Pointer to the resource byte stream - * ByteStreamBufferLength - Length of ByteStreamBuffer - * OutputBuffer - Pointer to the buffer that will - * contain the output structures - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Takes the resource byte stream and parses it, creating a - * linked list of resources in the caller's output buffer - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsByteStreamToList ( - UINT8 *ByteStreamBuffer, - UINT32 ByteStreamBufferLength, - UINT8 **OutputBuffer) -{ - ACPI_STATUS Status; - UINT32 BytesParsed = 0; - UINT8 ResourceType = 0; - UINT32 BytesConsumed = 0; - UINT8 **Buffer = OutputBuffer; - UINT32 StructureSize = 0; - BOOLEAN EndTagProcessed = FALSE; - - - FUNCTION_TRACE ("RsByteStreamToList"); - - - while (BytesParsed < ByteStreamBufferLength && - FALSE == EndTagProcessed) - { - /* - * Look at the next byte in the stream - */ - ResourceType = *ByteStreamBuffer; - - /* - * See if this is a small or large resource - */ - if(ResourceType & 0x80) - { - /* - * Large Resource Type - */ - switch (ResourceType) - { - case MEMORY_RANGE_24: - /* - * 24-Bit Memory Resource - */ - Status = AcpiRsMemory24Resource(ByteStreamBuffer, - &BytesConsumed, - Buffer, - &StructureSize); - - break; - - case LARGE_VENDOR_DEFINED: - /* - * Vendor Defined Resource - */ - Status = AcpiRsVendorResource(ByteStreamBuffer, - &BytesConsumed, - Buffer, - &StructureSize); - - break; - - case MEMORY_RANGE_32: - /* - * 32-Bit Memory Range Resource - */ - Status = AcpiRsMemory32RangeResource(ByteStreamBuffer, - &BytesConsumed, - Buffer, - &StructureSize); - - break; - - case FIXED_MEMORY_RANGE_32: - /* - * 32-Bit Fixed Memory Resource - */ - Status = AcpiRsFixedMemory32Resource(ByteStreamBuffer, - &BytesConsumed, - Buffer, - &StructureSize); - - break; - - case DWORD_ADDRESS_SPACE: - /* - * 32-Bit Address Resource - */ - Status = AcpiRsAddress32Resource(ByteStreamBuffer, - &BytesConsumed, - Buffer, - &StructureSize); - - break; - - case WORD_ADDRESS_SPACE: - /* - * 16-Bit Address Resource - */ - Status = AcpiRsAddress16Resource(ByteStreamBuffer, - &BytesConsumed, - Buffer, - &StructureSize); - - break; - - case EXTENDED_IRQ: - /* - * Extended IRQ - */ - Status = AcpiRsExtendedIrqResource(ByteStreamBuffer, - &BytesConsumed, - Buffer, - &StructureSize); - - break; - -/* TBD: [Future] 64-bit not currently supported */ -/* - case 0x8A: - break; -*/ - - default: - /* - * If we get here, everything is out of sync, - * so exit with an error - */ - return_ACPI_STATUS (AE_AML_ERROR); - break; - } - } - - else - { - /* - * Small Resource Type - * Only bits 7:3 are valid - */ - ResourceType >>= 3; - - switch(ResourceType) - { - case IRQ_FORMAT: - /* - * IRQ Resource - */ - Status = AcpiRsIrqResource(ByteStreamBuffer, - &BytesConsumed, - Buffer, - &StructureSize); - - break; - - case DMA_FORMAT: - /* - * DMA Resource - */ - Status = AcpiRsDmaResource(ByteStreamBuffer, - &BytesConsumed, - Buffer, - &StructureSize); - - break; - - case START_DEPENDENT_TAG: - /* - * Start Dependent Functions Resource - */ - Status = AcpiRsStartDependentFunctionsResource(ByteStreamBuffer, - &BytesConsumed, - Buffer, - &StructureSize); - - break; - - case END_DEPENDENT_TAG: - /* - * End Dependent Functions Resource - */ - Status = AcpiRsEndDependentFunctionsResource(ByteStreamBuffer, - &BytesConsumed, - Buffer, - &StructureSize); - - break; - - case IO_PORT_DESCRIPTOR: - /* - * IO Port Resource - */ - Status = AcpiRsIoResource(ByteStreamBuffer, - &BytesConsumed, - Buffer, - &StructureSize); - - break; - - case FIXED_LOCATION_IO_DESCRIPTOR: - /* - * Fixed IO Port Resource - */ - Status = AcpiRsFixedIoResource(ByteStreamBuffer, - &BytesConsumed, - Buffer, - &StructureSize); - - break; - - case SMALL_VENDOR_DEFINED: - /* - * Vendor Specific Resource - */ - Status = AcpiRsVendorResource(ByteStreamBuffer, - &BytesConsumed, - Buffer, - &StructureSize); - - break; - - case END_TAG: - /* - * End Tag - */ - Status = AcpiRsEndTagResource(ByteStreamBuffer, - &BytesConsumed, - Buffer, - &StructureSize); - EndTagProcessed = TRUE; - - break; - - default: - /* - * If we get here, everything is out of sync, - * so exit with an error - */ - return_ACPI_STATUS (AE_AML_ERROR); - break; - - } /* switch */ - } /* end else */ - - /* - * Update the return value and counter - */ - BytesParsed += BytesConsumed; - - /* - * Set the byte stream to point to the next resource - */ - ByteStreamBuffer += BytesConsumed; - - /* - * Set the Buffer to the next structure - */ - *Buffer += StructureSize; - - } /* end while */ - - /* - * Check the reason for exiting the while loop - */ - if (TRUE != EndTagProcessed) - { - return_ACPI_STATUS (AE_AML_ERROR); - } - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsListToByteStream - * - * PARAMETERS: LinkedList - Pointer to the resource linked list - * ByteSteamSizeNeeded - Calculated size of the byte stream - * needed from calling - * AcpiRsCalculateByteStreamLength() - * The size of the OutputBuffer is - * guaranteed to be >= - * ByteStreamSizeNeeded - * OutputBuffer - Pointer to the buffer that will - * contain the byte stream - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Takes the resource linked list and parses it, creating a - * byte stream of resources in the caller's output buffer - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsListToByteStream ( - RESOURCE *LinkedList, - UINT32 ByteStreamSizeNeeded, - UINT8 **OutputBuffer) -{ - ACPI_STATUS Status; - UINT8 *Buffer = *OutputBuffer; - UINT32 BytesConsumed = 0; - BOOLEAN Done = FALSE; - - - FUNCTION_TRACE ("RsListToByteStream"); - - while (!Done) - { - switch (LinkedList->Id) - { - case Irq: - /* - * IRQ Resource - */ - Status = AcpiRsIrqStream (LinkedList, - &Buffer, - &BytesConsumed); - break; - - case Dma: - /* - * DMA Resource - */ - Status = AcpiRsDmaStream (LinkedList, - &Buffer, - &BytesConsumed); - break; - - case StartDependentFunctions: - /* - * Start Dependent Functions Resource - */ - Status = AcpiRsStartDependentFunctionsStream (LinkedList, - &Buffer, - &BytesConsumed); - break; - - case EndDependentFunctions: - /* - * End Dependent Functions Resource - */ - Status = AcpiRsEndDependentFunctionsStream (LinkedList, - &Buffer, - &BytesConsumed); - break; - - case Io: - /* - * IO Port Resource - */ - Status = AcpiRsIoStream (LinkedList, - &Buffer, - &BytesConsumed); - break; - - case FixedIo: - /* - * Fixed IO Port Resource - */ - Status = AcpiRsFixedIoStream (LinkedList, - &Buffer, - &BytesConsumed); - break; - - case VendorSpecific: - /* - * Vendor Defined Resource - */ - Status = AcpiRsVendorStream (LinkedList, - &Buffer, - &BytesConsumed); - break; - - case EndTag: - /* - * End Tag - */ - Status = AcpiRsEndTagStream (LinkedList, - &Buffer, - &BytesConsumed); - - /* - * An End Tag indicates the end of the Resource Template - */ - Done = TRUE; - break; - - case Memory24: - /* - * 24-Bit Memory Resource - */ - Status = AcpiRsMemory24Stream (LinkedList, - &Buffer, - &BytesConsumed); - break; - - case Memory32: - /* - * 32-Bit Memory Range Resource - */ - Status = AcpiRsMemory32RangeStream (LinkedList, - &Buffer, - &BytesConsumed); - break; - - case FixedMemory32: - /* - * 32-Bit Fixed Memory Resource - */ - Status = AcpiRsFixedMemory32Stream (LinkedList, - &Buffer, - &BytesConsumed); - break; - - case Address16: - /* - * 16-Bit Address Descriptor Resource - */ - Status = AcpiRsAddress16Stream (LinkedList, - &Buffer, - &BytesConsumed); - break; - - case Address32: - /* - * 32-Bit Address Descriptor Resource - */ - Status = AcpiRsAddress32Stream (LinkedList, - &Buffer, - &BytesConsumed); - break; - - case ExtendedIrq: - /* - * Extended IRQ Resource - */ - Status = AcpiRsExtendedIrqStream (LinkedList, - &Buffer, - &BytesConsumed); - break; - - default: - /* - * If we get here, everything is out of sync, - * so exit with an error - */ - return_ACPI_STATUS (AE_BAD_DATA); - break; - - } /* switch (LinkedList->Id) */ - - /* - * Set the Buffer to point to the open byte - */ - Buffer += BytesConsumed; - - /* - * Point to the next object - */ - LinkedList = (RESOURCE *) ((NATIVE_UINT) LinkedList + - (NATIVE_UINT) LinkedList->Length); - } - - return_ACPI_STATUS (AE_OK); -} - diff --git a/sys/contrib/dev/acpica/Subsystem/Resources/rsmemory.c b/sys/contrib/dev/acpica/Subsystem/Resources/rsmemory.c deleted file mode 100644 index 21af073b0e90c..0000000000000 --- a/sys/contrib/dev/acpica/Subsystem/Resources/rsmemory.c +++ /dev/null @@ -1,661 +0,0 @@ -/******************************************************************************* - * - * Module Name: rsmem24 - AcpiRsMemory24Resource - * AcpiRsMemory24Stream - * AcpiRsMemory32RangeResource - * AcpiRsFixedMemory32Resource - * AcpiRsMemory32RangeStream - * AcpiRsFixedMemory32Stream - * $Revision: 12 $ - * - ******************************************************************************/ - -/****************************************************************************** - * - * 1. Copyright Notice - * - * Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp. - * All rights reserved. - * - * 2. License - * - * 2.1. This is your license from Intel Corp. under its intellectual property - * rights. You may have additional license terms from the party that provided - * you this software, covering your right to use that party's intellectual - * property rights. - * - * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a - * copy of the source code appearing in this file ("Covered Code") an - * irrevocable, perpetual, worldwide license under Intel's copyrights in the - * base code distributed originally by Intel ("Original Intel Code") to copy, - * make derivatives, distribute, use and display any portion of the Covered - * Code in any form, with the right to sublicense such rights; and - * - * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent - * license (with the right to sublicense), under only those claims of Intel - * patents that are infringed by the Original Intel Code, to make, use, sell, - * offer to sell, and import the Covered Code and derivative works thereof - * solely to the minimum extent necessary to exercise the above copyright - * license, and in no event shall the patent license extend to any additions - * to or modifications of the Original Intel Code. No other license or right - * is granted directly or by implication, estoppel or otherwise; - * - * The above copyright and patent license is granted only if the following - * conditions are met: - * - * 3. Conditions - * - * 3.1. Redistribution of Source with Rights to Further Distribute Source. - * Redistribution of source code of any substantial portion of the Covered - * Code or modification with rights to further distribute source must include - * the above Copyright Notice, the above License, this list of Conditions, - * and the following Disclaimer and Export Compliance provision. In addition, - * Licensee must cause all Covered Code to which Licensee contributes to - * contain a file documenting the changes Licensee made to create that Covered - * Code and the date of any change. Licensee must include in that file the - * documentation of any changes made by any predecessor Licensee. Licensee - * must include a prominent statement that the modification is derived, - * directly or indirectly, from Original Intel Code. - * - * 3.2. Redistribution of Source with no Rights to Further Distribute Source. - * Redistribution of source code of any substantial portion of the Covered - * Code or modification without rights to further distribute source must - * include the following Disclaimer and Export Compliance provision in the - * documentation and/or other materials provided with distribution. In - * addition, Licensee may not authorize further sublicense of source of any - * portion of the Covered Code, and must include terms to the effect that the - * license from Licensee to its licensee is limited to the intellectual - * property embodied in the software Licensee provides to its licensee, and - * not to intellectual property embodied in modifications its licensee may - * make. - * - * 3.3. Redistribution of Executable. Redistribution in executable form of any - * substantial portion of the Covered Code or modification must reproduce the - * above Copyright Notice, and the following Disclaimer and Export Compliance - * provision in the documentation and/or other materials provided with the - * distribution. - * - * 3.4. Intel retains all right, title, and interest in and to the Original - * Intel Code. - * - * 3.5. Neither the name Intel nor any other trademark owned or controlled by - * Intel shall be used in advertising or otherwise to promote the sale, use or - * other dealings in products derived from or relating to the Covered Code - * without prior written authorization from Intel. - * - * 4. Disclaimer and Export Compliance - * - * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED - * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE - * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, - * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY - * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY - * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A - * PARTICULAR PURPOSE. - * - * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES - * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR - * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, - * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY - * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL - * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS - * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY - * LIMITED REMEDY. - * - * 4.3. Licensee shall not export, either directly or indirectly, any of this - * software or system incorporating such software without first obtaining any - * required license or other approval from the U. S. Department of Commerce or - * any other agency or department of the United States Government. In the - * event Licensee exports any such software from the United States or - * re-exports any such software from a foreign destination, Licensee shall - * ensure that the distribution and export/re-export of the software is in - * compliance with all laws, regulations, orders, or other restrictions of the - * U.S. Export Administration Regulations. Licensee agrees that neither it nor - * any of its subsidiaries will export/re-export any technical data, process, - * software, or service, directly or indirectly, to any country for which the - * United States government or any agency thereof requires an export license, - * other governmental approval, or letter of assurance, without first obtaining - * such license, approval or letter. - * - *****************************************************************************/ - -#define __RSMEMORY_C__ - -#include "acpi.h" -#include "acresrc.h" - -#define _COMPONENT RESOURCE_MANAGER - MODULE_NAME ("rsmemory") - - -/******************************************************************************* - * - * FUNCTION: AcpiRsMemory24Resource - * - * PARAMETERS: ByteStreamBuffer - Pointer to the resource input byte - * stream - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes consumed from - * the ByteStreamBuffer - * OutputBuffer - Pointer to the user's return buffer - * StructureSize - UINT32 pointer that is filled with - * the number of bytes in the filled - * in structure - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the resource byte stream and fill out the appropriate - * structure pointed to by the OutputBuffer. Return the - * number of bytes consumed from the byte stream. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsMemory24Resource ( - UINT8 *ByteStreamBuffer, - UINT32 *BytesConsumed, - UINT8 **OutputBuffer, - UINT32 *StructureSize) -{ - UINT8 *Buffer = ByteStreamBuffer; - RESOURCE *OutputStruct = (RESOURCE *) * OutputBuffer; - UINT16 Temp16 = 0; - UINT8 Temp8 = 0; - UINT32 StructSize = sizeof (MEMORY24_RESOURCE) + - RESOURCE_LENGTH_NO_DATA; - - - FUNCTION_TRACE ("RsMemory24Resource"); - - /* - * Point past the Descriptor to get the number of bytes consumed - */ - Buffer += 1; - - MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer); - Buffer += 2; - *BytesConsumed = Temp16 + 3; - OutputStruct->Id = Memory24; - - /* - * Check Byte 3 the Read/Write bit - */ - Temp8 = *Buffer; - Buffer += 1; - OutputStruct->Data.Memory24.ReadWriteAttribute = Temp8 & 0x01; - - /* - * Get MinBaseAddress (Bytes 4-5) - */ - MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer); - Buffer += 2; - OutputStruct->Data.Memory24.MinBaseAddress = Temp16; - - /* - * Get MaxBaseAddress (Bytes 6-7) - */ - MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer); - Buffer += 2; - OutputStruct->Data.Memory24.MaxBaseAddress = Temp16; - - /* - * Get Alignment (Bytes 8-9) - */ - MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer); - Buffer += 2; - OutputStruct->Data.Memory24.Alignment = Temp16; - - /* - * Get RangeLength (Bytes 10-11) - */ - MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer); - OutputStruct->Data.Memory24.RangeLength = Temp16; - - /* - * Set the Length parameter - */ - OutputStruct->Length = StructSize; - - /* - * Return the final size of the structure - */ - *StructureSize = StructSize; - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsMemory24Stream - * - * PARAMETERS: LinkedList - Pointer to the resource linked list - * OutputBuffer - Pointer to the user's return buffer - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes of the - * OutputBuffer used - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the linked list resource structure and fills in the - * the appropriate bytes in a byte stream - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsMemory24Stream ( - RESOURCE *LinkedList, - UINT8 **OutputBuffer, - UINT32 *BytesConsumed) -{ - UINT8 *Buffer = *OutputBuffer; - UINT16 Temp16 = 0; - UINT8 Temp8 = 0; - - - FUNCTION_TRACE ("RsMemory24Stream"); - - /* - * The descriptor field is static - */ - *Buffer = 0x81; - Buffer += 1; - - /* - * The length field is static - */ - Temp16 = 0x09; - MOVE_UNALIGNED16_TO_16 (Buffer, &Temp16); - Buffer += 2; - - /* - * Set the Information Byte - */ - Temp8 = (UINT8) (LinkedList->Data.Memory24.ReadWriteAttribute & 0x01); - *Buffer = Temp8; - Buffer += 1; - - /* - * Set the Range minimum base address - */ - MOVE_UNALIGNED16_TO_16 (Buffer, &LinkedList->Data.Memory24.MinBaseAddress); - Buffer += 2; - - /* - * Set the Range maximum base address - */ - MOVE_UNALIGNED16_TO_16 (Buffer, &LinkedList->Data.Memory24.MaxBaseAddress); - Buffer += 2; - - /* - * Set the base alignment - */ - MOVE_UNALIGNED16_TO_16 (Buffer, &LinkedList->Data.Memory24.Alignment); - Buffer += 2; - - /* - * Set the range length - */ - MOVE_UNALIGNED16_TO_16 (Buffer, &LinkedList->Data.Memory24.RangeLength); - Buffer += 2; - - /* - * Return the number of bytes consumed in this operation - */ - *BytesConsumed = (UINT32) ((NATIVE_UINT) Buffer - - (NATIVE_UINT) *OutputBuffer); - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsMemory32RangeResource - * - * PARAMETERS: ByteStreamBuffer - Pointer to the resource input byte - * stream - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes consumed from - * the ByteStreamBuffer - * OutputBuffer - Pointer to the user's return buffer - * StructureSize - UINT32 pointer that is filled with - * the number of bytes in the filled - * in structure - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the resource byte stream and fill out the appropriate - * structure pointed to by the OutputBuffer. Return the - * number of bytes consumed from the byte stream. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsMemory32RangeResource ( - UINT8 *ByteStreamBuffer, - UINT32 *BytesConsumed, - UINT8 **OutputBuffer, - UINT32 *StructureSize) -{ - UINT8 *Buffer = ByteStreamBuffer; - RESOURCE *OutputStruct = (RESOURCE *) * OutputBuffer; - UINT16 Temp16 = 0; - UINT8 Temp8 = 0; - UINT32 StructSize = sizeof (MEMORY32_RESOURCE) + - RESOURCE_LENGTH_NO_DATA; - - - FUNCTION_TRACE ("RsMemory32RangeResource"); - - /* - * Point past the Descriptor to get the number of bytes consumed - */ - Buffer += 1; - - MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer); - Buffer += 2; - *BytesConsumed = Temp16 + 3; - - OutputStruct->Id = Memory32; - - /* - * Point to the place in the output buffer where the data portion will - * begin. - * 1. Set the RESOURCE_DATA * Data to point to it's own address, then - * 2. Set the pointer to the next address. - * - * NOTE: OutputStruct->Data is cast to UINT8, otherwise, this addition adds - * 4 * sizeof(RESOURCE_DATA) instead of 4 * sizeof(UINT8) - */ - - /* - * Check Byte 3 the Read/Write bit - */ - Temp8 = *Buffer; - Buffer += 1; - - OutputStruct->Data.Memory32.ReadWriteAttribute = Temp8 & 0x01; - - /* - * Get MinBaseAddress (Bytes 4-7) - */ - MOVE_UNALIGNED32_TO_32 (&OutputStruct->Data.Memory32.MinBaseAddress, - Buffer); - Buffer += 4; - - /* - * Get MaxBaseAddress (Bytes 8-11) - */ - MOVE_UNALIGNED32_TO_32 (&OutputStruct->Data.Memory32.MaxBaseAddress, - Buffer); - Buffer += 4; - - /* - * Get Alignment (Bytes 12-15) - */ - MOVE_UNALIGNED32_TO_32 (&OutputStruct->Data.Memory32.Alignment, Buffer); - Buffer += 4; - - /* - * Get RangeLength (Bytes 16-19) - */ - MOVE_UNALIGNED32_TO_32 (&OutputStruct->Data.Memory32.RangeLength, Buffer); - - /* - * Set the Length parameter - */ - OutputStruct->Length = StructSize; - - /* - * Return the final size of the structure - */ - *StructureSize = StructSize; - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsFixedMemory32Resource - * - * PARAMETERS: ByteStreamBuffer - Pointer to the resource input byte - * stream - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes consumed from - * the ByteStreamBuffer - * OutputBuffer - Pointer to the user's return buffer - * StructureSize - UINT32 pointer that is filled with - * the number of bytes in the filled - * in structure - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the resource byte stream and fill out the appropriate - * structure pointed to by the OutputBuffer. Return the - * number of bytes consumed from the byte stream. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsFixedMemory32Resource ( - UINT8 *ByteStreamBuffer, - UINT32 *BytesConsumed, - UINT8 **OutputBuffer, - UINT32 *StructureSize) -{ - UINT8 *Buffer = ByteStreamBuffer; - RESOURCE *OutputStruct = (RESOURCE *) * OutputBuffer; - UINT16 Temp16 = 0; - UINT8 Temp8 = 0; - UINT32 StructSize = sizeof (FIXED_MEMORY32_RESOURCE) + - RESOURCE_LENGTH_NO_DATA; - - - FUNCTION_TRACE ("RsFixedMemory32Resource"); - - /* - * Point past the Descriptor to get the number of bytes consumed - */ - Buffer += 1; - MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer); - - Buffer += 2; - *BytesConsumed = Temp16 + 3; - - OutputStruct->Id = FixedMemory32; - - /* - * Check Byte 3 the Read/Write bit - */ - Temp8 = *Buffer; - Buffer += 1; - OutputStruct->Data.FixedMemory32.ReadWriteAttribute = Temp8 & 0x01; - - /* - * Get RangeBaseAddress (Bytes 4-7) - */ - MOVE_UNALIGNED32_TO_32 (&OutputStruct->Data.FixedMemory32.RangeBaseAddress, - Buffer); - Buffer += 4; - - /* - * Get RangeLength (Bytes 8-11) - */ - MOVE_UNALIGNED32_TO_32 (&OutputStruct->Data.FixedMemory32.RangeLength, - Buffer); - - /* - * Set the Length parameter - */ - OutputStruct->Length = StructSize; - - /* - * Return the final size of the structure - */ - *StructureSize = StructSize; - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsMemory32RangeStream - * - * PARAMETERS: LinkedList - Pointer to the resource linked list - * OutputBuffer - Pointer to the user's return buffer - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes of the - * OutputBuffer used - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the linked list resource structure and fills in the - * the appropriate bytes in a byte stream - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsMemory32RangeStream ( - RESOURCE *LinkedList, - UINT8 **OutputBuffer, - UINT32 *BytesConsumed) -{ - UINT8 *Buffer = *OutputBuffer; - UINT16 Temp16 = 0; - UINT8 Temp8 = 0; - - - FUNCTION_TRACE ("RsMemory32RangeStream"); - - /* - * The descriptor field is static - */ - *Buffer = 0x85; - Buffer += 1; - - /* - * The length field is static - */ - Temp16 = 0x11; - - MOVE_UNALIGNED16_TO_16 (Buffer, &Temp16); - Buffer += 2; - - /* - * Set the Information Byte - */ - Temp8 = (UINT8) (LinkedList->Data.Memory32.ReadWriteAttribute & 0x01); - *Buffer = Temp8; - Buffer += 1; - - /* - * Set the Range minimum base address - */ - MOVE_UNALIGNED32_TO_32 (Buffer, &LinkedList->Data.Memory32.MinBaseAddress); - Buffer += 4; - - /* - * Set the Range maximum base address - */ - MOVE_UNALIGNED32_TO_32 (Buffer, &LinkedList->Data.Memory32.MaxBaseAddress); - Buffer += 4; - - /* - * Set the base alignment - */ - MOVE_UNALIGNED32_TO_32 (Buffer, &LinkedList->Data.Memory32.Alignment); - Buffer += 4; - - /* - * Set the range length - */ - MOVE_UNALIGNED32_TO_32 (Buffer, &LinkedList->Data.Memory32.RangeLength); - Buffer += 4; - - /* - * Return the number of bytes consumed in this operation - */ - *BytesConsumed = (UINT32) ((NATIVE_UINT) Buffer - - (NATIVE_UINT) *OutputBuffer); - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsFixedMemory32Stream - * - * PARAMETERS: LinkedList - Pointer to the resource linked list - * OutputBuffer - Pointer to the user's return buffer - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes of the - * OutputBuffer used - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the linked list resource structure and fills in the - * the appropriate bytes in a byte stream - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsFixedMemory32Stream ( - RESOURCE *LinkedList, - UINT8 **OutputBuffer, - UINT32 *BytesConsumed) -{ - UINT8 *Buffer = *OutputBuffer; - UINT16 Temp16 = 0; - UINT8 Temp8 = 0; - - - FUNCTION_TRACE ("RsFixedMemory32Stream"); - - /* - * The descriptor field is static - */ - *Buffer = 0x86; - Buffer += 1; - - /* - * The length field is static - */ - Temp16 = 0x09; - - MOVE_UNALIGNED16_TO_16 (Buffer, &Temp16); - Buffer += 2; - - /* - * Set the Information Byte - */ - Temp8 = (UINT8) (LinkedList->Data.FixedMemory32.ReadWriteAttribute & 0x01); - *Buffer = Temp8; - Buffer += 1; - - /* - * Set the Range base address - */ - MOVE_UNALIGNED32_TO_32 (Buffer, - &LinkedList->Data.FixedMemory32.RangeBaseAddress); - Buffer += 4; - - /* - * Set the range length - */ - MOVE_UNALIGNED32_TO_32 (Buffer, - &LinkedList->Data.FixedMemory32.RangeLength); - Buffer += 4; - - /* - * Return the number of bytes consumed in this operation - */ - *BytesConsumed = (UINT32) ((NATIVE_UINT) Buffer - - (NATIVE_UINT) *OutputBuffer); - - return_ACPI_STATUS (AE_OK); -} - diff --git a/sys/contrib/dev/acpica/Subsystem/Resources/rsmisc.c b/sys/contrib/dev/acpica/Subsystem/Resources/rsmisc.c deleted file mode 100644 index 2336ab9a84fac..0000000000000 --- a/sys/contrib/dev/acpica/Subsystem/Resources/rsmisc.c +++ /dev/null @@ -1,726 +0,0 @@ -/******************************************************************************* - * - * Module Name: rsmisc - AcpiRsEndTagResource - * AcpiRsEndTagStream - * AcpiRsVendorResource - * AcpiRsVendorStream - * AcpiRsStartDependentFunctionsResource - * AcpiRsEndDependentFunctionsResource - * AcpiRsStartDependentFunctionsStream - * AcpiRsEndDependentFunctionsStream - * $Revision: 12 $ - * - ******************************************************************************/ - -/****************************************************************************** - * - * 1. Copyright Notice - * - * Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp. - * All rights reserved. - * - * 2. License - * - * 2.1. This is your license from Intel Corp. under its intellectual property - * rights. You may have additional license terms from the party that provided - * you this software, covering your right to use that party's intellectual - * property rights. - * - * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a - * copy of the source code appearing in this file ("Covered Code") an - * irrevocable, perpetual, worldwide license under Intel's copyrights in the - * base code distributed originally by Intel ("Original Intel Code") to copy, - * make derivatives, distribute, use and display any portion of the Covered - * Code in any form, with the right to sublicense such rights; and - * - * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent - * license (with the right to sublicense), under only those claims of Intel - * patents that are infringed by the Original Intel Code, to make, use, sell, - * offer to sell, and import the Covered Code and derivative works thereof - * solely to the minimum extent necessary to exercise the above copyright - * license, and in no event shall the patent license extend to any additions - * to or modifications of the Original Intel Code. No other license or right - * is granted directly or by implication, estoppel or otherwise; - * - * The above copyright and patent license is granted only if the following - * conditions are met: - * - * 3. Conditions - * - * 3.1. Redistribution of Source with Rights to Further Distribute Source. - * Redistribution of source code of any substantial portion of the Covered - * Code or modification with rights to further distribute source must include - * the above Copyright Notice, the above License, this list of Conditions, - * and the following Disclaimer and Export Compliance provision. In addition, - * Licensee must cause all Covered Code to which Licensee contributes to - * contain a file documenting the changes Licensee made to create that Covered - * Code and the date of any change. Licensee must include in that file the - * documentation of any changes made by any predecessor Licensee. Licensee - * must include a prominent statement that the modification is derived, - * directly or indirectly, from Original Intel Code. - * - * 3.2. Redistribution of Source with no Rights to Further Distribute Source. - * Redistribution of source code of any substantial portion of the Covered - * Code or modification without rights to further distribute source must - * include the following Disclaimer and Export Compliance provision in the - * documentation and/or other materials provided with distribution. In - * addition, Licensee may not authorize further sublicense of source of any - * portion of the Covered Code, and must include terms to the effect that the - * license from Licensee to its licensee is limited to the intellectual - * property embodied in the software Licensee provides to its licensee, and - * not to intellectual property embodied in modifications its licensee may - * make. - * - * 3.3. Redistribution of Executable. Redistribution in executable form of any - * substantial portion of the Covered Code or modification must reproduce the - * above Copyright Notice, and the following Disclaimer and Export Compliance - * provision in the documentation and/or other materials provided with the - * distribution. - * - * 3.4. Intel retains all right, title, and interest in and to the Original - * Intel Code. - * - * 3.5. Neither the name Intel nor any other trademark owned or controlled by - * Intel shall be used in advertising or otherwise to promote the sale, use or - * other dealings in products derived from or relating to the Covered Code - * without prior written authorization from Intel. - * - * 4. Disclaimer and Export Compliance - * - * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED - * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE - * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, - * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY - * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY - * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A - * PARTICULAR PURPOSE. - * - * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES - * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR - * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, - * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY - * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL - * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS - * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY - * LIMITED REMEDY. - * - * 4.3. Licensee shall not export, either directly or indirectly, any of this - * software or system incorporating such software without first obtaining any - * required license or other approval from the U. S. Department of Commerce or - * any other agency or department of the United States Government. In the - * event Licensee exports any such software from the United States or - * re-exports any such software from a foreign destination, Licensee shall - * ensure that the distribution and export/re-export of the software is in - * compliance with all laws, regulations, orders, or other restrictions of the - * U.S. Export Administration Regulations. Licensee agrees that neither it nor - * any of its subsidiaries will export/re-export any technical data, process, - * software, or service, directly or indirectly, to any country for which the - * United States government or any agency thereof requires an export license, - * other governmental approval, or letter of assurance, without first obtaining - * such license, approval or letter. - * - *****************************************************************************/ - -#define __RSMISC_C__ - -#include "acpi.h" -#include "acresrc.h" - -#define _COMPONENT RESOURCE_MANAGER - MODULE_NAME ("rsmisc") - - -/******************************************************************************* - * - * FUNCTION: AcpiRsEndTagResource - * - * PARAMETERS: ByteStreamBuffer - Pointer to the resource input byte - * stream - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes consumed from - * the ByteStreamBuffer - * OutputBuffer - Pointer to the user's return buffer - * StructureSize - UINT32 pointer that is filled with - * the number of bytes in the filled - * in structure - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the resource byte stream and fill out the appropriate - * structure pointed to by the OutputBuffer. Return the - * number of bytes consumed from the byte stream. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsEndTagResource ( - UINT8 *ByteStreamBuffer, - UINT32 *BytesConsumed, - UINT8 **OutputBuffer, - UINT32 *StructureSize) -{ - RESOURCE *OutputStruct = (RESOURCE *) * OutputBuffer; - UINT32 StructSize = RESOURCE_LENGTH; - - - FUNCTION_TRACE ("RsEndTagResource"); - - /* - * The number of bytes consumed is static - */ - *BytesConsumed = 2; - - /* - * Fill out the structure - */ - OutputStruct->Id = EndTag; - - /* - * Set the Length parameter - */ - OutputStruct->Length = 0; - - /* - * Return the final size of the structure - */ - *StructureSize = StructSize; - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsEndTagStream - * - * PARAMETERS: LinkedList - Pointer to the resource linked list - * OutputBuffer - Pointer to the user's return buffer - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes of the - * OutputBuffer used - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the linked list resource structure and fills in the - * the appropriate bytes in a byte stream - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsEndTagStream ( - RESOURCE *LinkedList, - UINT8 **OutputBuffer, - UINT32 *BytesConsumed) -{ - UINT8 *Buffer = *OutputBuffer; - UINT8 Temp8 = 0; - - - FUNCTION_TRACE ("RsEndTagStream"); - - /* - * The descriptor field is static - */ - *Buffer = 0x79; - Buffer += 1; - - /* - * Set the Checksum - zero means that the resource data is treated as if - * the checksum operation succeeded (ACPI Spec 1.0b Section 6.4.2.8) - */ - Temp8 = 0; - - *Buffer = Temp8; - Buffer += 1; - - /* - * Return the number of bytes consumed in this operation - */ - *BytesConsumed = (UINT32) ((NATIVE_UINT) Buffer - - (NATIVE_UINT) *OutputBuffer); - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsVendorResource - * - * PARAMETERS: ByteStreamBuffer - Pointer to the resource input byte - * stream - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes consumed from - * the ByteStreamBuffer - * OutputBuffer - Pointer to the user's return buffer - * StructureSize - UINT32 pointer that is filled with - * the number of bytes in the filled - * in structure - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the resource byte stream and fill out the appropriate - * structure pointed to by the OutputBuffer. Return the - * number of bytes consumed from the byte stream. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsVendorResource ( - UINT8 *ByteStreamBuffer, - UINT32 *BytesConsumed, - UINT8 **OutputBuffer, - UINT32 *StructureSize) -{ - UINT8 *Buffer = ByteStreamBuffer; - RESOURCE *OutputStruct = (RESOURCE *) * OutputBuffer; - UINT16 Temp16 = 0; - UINT8 Temp8 = 0; - UINT8 Index; - UINT32 StructSize = sizeof (VENDOR_RESOURCE) + - RESOURCE_LENGTH_NO_DATA; - - - FUNCTION_TRACE ("RsVendorResource"); - - /* - * Dereference the Descriptor to find if this is a large or small item. - */ - Temp8 = *Buffer; - - if (Temp8 & 0x80) - { - /* - * Large Item - */ - /* Point to the length field */ - - Buffer += 1; - - /* Dereference */ - - MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer); - - /* Calculate bytes consumed */ - - *BytesConsumed = Temp16 + 3; - - /* Point to the first vendor byte */ - - Buffer += 2; - } - - else - { - /* - * Small Item - */ - - /* Dereference the size */ - - Temp16 = (UINT8)(*Buffer & 0x07); - - /* Calculate bytes consumed */ - - *BytesConsumed = Temp16 + 1; - - /* Point to the first vendor byte */ - - Buffer += 1; - } - - OutputStruct->Id = VendorSpecific; - OutputStruct->Data.VendorSpecific.Length = Temp16; - - for (Index = 0; Index < Temp16; Index++) - { - OutputStruct->Data.VendorSpecific.Reserved[Index] = *Buffer; - Buffer += 1; - } - - /* - * In order for the StructSize to fall on a 32-bit boundry, - * calculate the length of the vendor string and expand the - * StructSize to the next 32-bit boundry. - */ - StructSize += ROUND_UP_TO_32BITS (Temp16); - - /* - * Set the Length parameter - */ - OutputStruct->Length = StructSize; - - /* - * Return the final size of the structure - */ - *StructureSize = StructSize; - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsVendorStream - * - * PARAMETERS: LinkedList - Pointer to the resource linked list - * OutputBuffer - Pointer to the user's return buffer - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes of the - * OutputBuffer used - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the linked list resource structure and fills in the - * the appropriate bytes in a byte stream - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsVendorStream ( - RESOURCE *LinkedList, - UINT8 **OutputBuffer, - UINT32 *BytesConsumed) -{ - UINT8 *Buffer = *OutputBuffer; - UINT16 Temp16 = 0; - UINT8 Temp8 = 0; - UINT8 Index; - - - FUNCTION_TRACE ("RsVendorStream"); - - /* - * Dereference the length to find if this is a large or small item. - */ - - if(LinkedList->Data.VendorSpecific.Length > 7) - { - /* - * Large Item - */ - /* - * Set the descriptor field and length bytes - */ - *Buffer = 0x84; - Buffer += 1; - - Temp16 = (UINT16) LinkedList->Data.VendorSpecific.Length; - - MOVE_UNALIGNED16_TO_16 (Buffer, &Temp16); - Buffer += 2; - } - - else - { - /* - * Small Item - */ - - /* - * Set the descriptor field - */ - Temp8 = 0x70; - Temp8 |= LinkedList->Data.VendorSpecific.Length; - - *Buffer = Temp8; - Buffer += 1; - } - - /* - * Loop through all of the Vendor Specific fields - */ - for (Index = 0; Index < LinkedList->Data.VendorSpecific.Length; Index++) - { - Temp8 = LinkedList->Data.VendorSpecific.Reserved[Index]; - - *Buffer = Temp8; - Buffer += 1; - } - - /* - * Return the number of bytes consumed in this operation - */ - *BytesConsumed = (UINT32) ((NATIVE_UINT) Buffer - - (NATIVE_UINT) *OutputBuffer); - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsStartDependentFunctionsResource - * - * PARAMETERS: ByteStreamBuffer - Pointer to the resource input byte - * stream - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes consumed from - * the ByteStreamBuffer - * OutputBuffer - Pointer to the user's return buffer - * StructureSize - UINT32 pointer that is filled with - * the number of bytes in the filled - * in structure - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the resource byte stream and fill out the appropriate - * structure pointed to by the OutputBuffer. Return the - * number of bytes consumed from the byte stream. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsStartDependentFunctionsResource ( - UINT8 *ByteStreamBuffer, - UINT32 *BytesConsumed, - UINT8 **OutputBuffer, - UINT32 *StructureSize) -{ - UINT8 *Buffer = ByteStreamBuffer; - RESOURCE *OutputStruct = (RESOURCE *) * OutputBuffer; - UINT8 Temp8 = 0; - UINT32 StructSize = - sizeof(START_DEPENDENT_FUNCTIONS_RESOURCE) + - RESOURCE_LENGTH_NO_DATA; - - - FUNCTION_TRACE ("RsStartDependentFunctionsResource"); - - /* - * The number of bytes consumed are contained in the descriptor (Bits:0-1) - */ - Temp8 = *Buffer; - - *BytesConsumed = (Temp8 & 0x01) + 1; - - OutputStruct->Id = StartDependentFunctions; - - /* - * Point to Byte 1 if it is used - */ - if (2 == *BytesConsumed) - { - Buffer += 1; - Temp8 = *Buffer; - - /* - * Check Compatibility priority - */ - OutputStruct->Data.StartDependentFunctions.CompatibilityPriority = - Temp8 & 0x03; - - if (3 == OutputStruct->Data.StartDependentFunctions.CompatibilityPriority) - { - return_ACPI_STATUS (AE_AML_ERROR); - } - - /* - * Check Performance/Robustness preference - */ - OutputStruct->Data.StartDependentFunctions.PerformanceRobustness = - (Temp8 >> 2) & 0x03; - - if (3 == OutputStruct->Data.StartDependentFunctions.PerformanceRobustness) - { - return_ACPI_STATUS (AE_AML_ERROR); - } - } - - else - { - OutputStruct->Data.StartDependentFunctions.CompatibilityPriority = - ACCEPTABLE_CONFIGURATION; - - OutputStruct->Data.StartDependentFunctions.PerformanceRobustness = - ACCEPTABLE_CONFIGURATION; - } - - /* - * Set the Length parameter - */ - OutputStruct->Length = StructSize; - - /* - * Return the final size of the structure - */ - *StructureSize = StructSize; - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsEndDependentFunctionsResource - * - * PARAMETERS: ByteStreamBuffer - Pointer to the resource input byte - * stream - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes consumed from - * the ByteStreamBuffer - * OutputBuffer - Pointer to the user's return buffer - * StructureSize - UINT32 pointer that is filled with - * the number of bytes in the filled - * in structure - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the resource byte stream and fill out the appropriate - * structure pointed to by the OutputBuffer. Return the - * number of bytes consumed from the byte stream. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsEndDependentFunctionsResource ( - UINT8 *ByteStreamBuffer, - UINT32 *BytesConsumed, - UINT8 **OutputBuffer, - UINT32 *StructureSize) -{ - RESOURCE *OutputStruct = (RESOURCE *) * OutputBuffer; - UINT32 StructSize = RESOURCE_LENGTH; - - - FUNCTION_TRACE ("RsEndDependentFunctionsResource"); - - /* - * The number of bytes consumed is static - */ - *BytesConsumed = 1; - - /* - * Fill out the structure - */ - OutputStruct->Id = EndDependentFunctions; - - /* - * Set the Length parameter - */ - OutputStruct->Length = StructSize; - - /* - * Return the final size of the structure - */ - *StructureSize = StructSize; - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsStartDependentFunctionsStream - * - * PARAMETERS: LinkedList - Pointer to the resource linked list - * OutputBuffer - Pointer to the user's return buffer - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes of the - * OutputBuffer used - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the linked list resource structure and fills in the - * the appropriate bytes in a byte stream - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsStartDependentFunctionsStream ( - RESOURCE *LinkedList, - UINT8 **OutputBuffer, - UINT32 *BytesConsumed) -{ - UINT8 *Buffer = *OutputBuffer; - UINT8 Temp8 = 0; - - - FUNCTION_TRACE ("RsStartDependentFunctionsStream"); - - /* - * The descriptor field is set based upon whether a byte is needed - * to contain Priority data. - */ - if (ACCEPTABLE_CONFIGURATION == - LinkedList->Data.StartDependentFunctions.CompatibilityPriority && - ACCEPTABLE_CONFIGURATION == - LinkedList->Data.StartDependentFunctions.PerformanceRobustness) - { - *Buffer = 0x30; - } - else - { - *Buffer = 0x31; - Buffer += 1; - - /* - * Set the Priority Byte Definition - */ - Temp8 = 0; - Temp8 = (UINT8) - ((LinkedList->Data.StartDependentFunctions.PerformanceRobustness & - 0x03) << 2); - Temp8 |= - (LinkedList->Data.StartDependentFunctions.CompatibilityPriority & - 0x03); - - *Buffer = Temp8; - } - - Buffer += 1; - - /* - * Return the number of bytes consumed in this operation - */ - *BytesConsumed = (UINT32) ((NATIVE_UINT) Buffer - - (NATIVE_UINT) *OutputBuffer); - - return_ACPI_STATUS (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsEndDependentFunctionsStream - * - * PARAMETERS: LinkedList - Pointer to the resource linked list - * OutputBuffer - Pointer to the user's return buffer - * BytesConsumed - UINT32 pointer that is filled with - * the number of bytes of the - * OutputBuffer used - * - * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code - * - * DESCRIPTION: Take the linked list resource structure and fills in the - * the appropriate bytes in a byte stream - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsEndDependentFunctionsStream ( - RESOURCE *LinkedList, - UINT8 **OutputBuffer, - UINT32 *BytesConsumed - ) -{ - UINT8 *Buffer = *OutputBuffer; - - - FUNCTION_TRACE ("RsEndDependentFunctionsStream"); - - /* - * The descriptor field is static - */ - *Buffer = 0x38; - Buffer += 1; - - /* - * Return the number of bytes consumed in this operation - */ - *BytesConsumed = (UINT32) ((NATIVE_UINT) Buffer - - (NATIVE_UINT) *OutputBuffer); - - return_ACPI_STATUS (AE_OK); -} - diff --git a/sys/contrib/dev/acpica/Subsystem/Resources/rsutils.c b/sys/contrib/dev/acpica/Subsystem/Resources/rsutils.c deleted file mode 100644 index fb14be319e57c..0000000000000 --- a/sys/contrib/dev/acpica/Subsystem/Resources/rsutils.c +++ /dev/null @@ -1,511 +0,0 @@ -/******************************************************************************* - * - * Module Name: rsutils - Utilities for the resource manager - * $Revision: 14 $ - * - ******************************************************************************/ - -/****************************************************************************** - * - * 1. Copyright Notice - * - * Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp. - * All rights reserved. - * - * 2. License - * - * 2.1. This is your license from Intel Corp. under its intellectual property - * rights. You may have additional license terms from the party that provided - * you this software, covering your right to use that party's intellectual - * property rights. - * - * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a - * copy of the source code appearing in this file ("Covered Code") an - * irrevocable, perpetual, worldwide license under Intel's copyrights in the - * base code distributed originally by Intel ("Original Intel Code") to copy, - * make derivatives, distribute, use and display any portion of the Covered - * Code in any form, with the right to sublicense such rights; and - * - * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent - * license (with the right to sublicense), under only those claims of Intel - * patents that are infringed by the Original Intel Code, to make, use, sell, - * offer to sell, and import the Covered Code and derivative works thereof - * solely to the minimum extent necessary to exercise the above copyright - * license, and in no event shall the patent license extend to any additions - * to or modifications of the Original Intel Code. No other license or right - * is granted directly or by implication, estoppel or otherwise; - * - * The above copyright and patent license is granted only if the following - * conditions are met: - * - * 3. Conditions - * - * 3.1. Redistribution of Source with Rights to Further Distribute Source. - * Redistribution of source code of any substantial portion of the Covered - * Code or modification with rights to further distribute source must include - * the above Copyright Notice, the above License, this list of Conditions, - * and the following Disclaimer and Export Compliance provision. In addition, - * Licensee must cause all Covered Code to which Licensee contributes to - * contain a file documenting the changes Licensee made to create that Covered - * Code and the date of any change. Licensee must include in that file the - * documentation of any changes made by any predecessor Licensee. Licensee - * must include a prominent statement that the modification is derived, - * directly or indirectly, from Original Intel Code. - * - * 3.2. Redistribution of Source with no Rights to Further Distribute Source. - * Redistribution of source code of any substantial portion of the Covered - * Code or modification without rights to further distribute source must - * include the following Disclaimer and Export Compliance provision in the - * documentation and/or other materials provided with distribution. In - * addition, Licensee may not authorize further sublicense of source of any - * portion of the Covered Code, and must include terms to the effect that the - * license from Licensee to its licensee is limited to the intellectual - * property embodied in the software Licensee provides to its licensee, and - * not to intellectual property embodied in modifications its licensee may - * make. - * - * 3.3. Redistribution of Executable. Redistribution in executable form of any - * substantial portion of the Covered Code or modification must reproduce the - * above Copyright Notice, and the following Disclaimer and Export Compliance - * provision in the documentation and/or other materials provided with the - * distribution. - * - * 3.4. Intel retains all right, title, and interest in and to the Original - * Intel Code. - * - * 3.5. Neither the name Intel nor any other trademark owned or controlled by - * Intel shall be used in advertising or otherwise to promote the sale, use or - * other dealings in products derived from or relating to the Covered Code - * without prior written authorization from Intel. - * - * 4. Disclaimer and Export Compliance - * - * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED - * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE - * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, - * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY - * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY - * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A - * PARTICULAR PURPOSE. - * - * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES - * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR - * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, - * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY - * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL - * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS - * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY - * LIMITED REMEDY. - * - * 4.3. Licensee shall not export, either directly or indirectly, any of this - * software or system incorporating such software without first obtaining any - * required license or other approval from the U. S. Department of Commerce or - * any other agency or department of the United States Government. In the - * event Licensee exports any such software from the United States or - * re-exports any such software from a foreign destination, Licensee shall - * ensure that the distribution and export/re-export of the software is in - * compliance with all laws, regulations, orders, or other restrictions of the - * U.S. Export Administration Regulations. Licensee agrees that neither it nor - * any of its subsidiaries will export/re-export any technical data, process, - * software, or service, directly or indirectly, to any country for which the - * United States government or any agency thereof requires an export license, - * other governmental approval, or letter of assurance, without first obtaining - * such license, approval or letter. - * - *****************************************************************************/ - - -#define __RSUTILS_C__ - -#include "acpi.h" -#include "acnamesp.h" -#include "acresrc.h" - - -#define _COMPONENT RESOURCE_MANAGER - MODULE_NAME ("rsutils") - - -/******************************************************************************* - * - * FUNCTION: AcpiRsGetPrtMethodData - * - * PARAMETERS: Handle - a handle to the containing object - * RetBuffer - a pointer to a buffer structure for the - * results - * - * RETURN: Status - the status of the call - * - * DESCRIPTION: This function is called to get the _PRT value of an object - * contained in an object specified by the handle passed in - * - * If the function fails an appropriate status will be returned - * and the contents of the callers buffer is undefined. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsGetPrtMethodData ( - ACPI_HANDLE Handle, - ACPI_BUFFER *RetBuffer) -{ - ACPI_OPERAND_OBJECT *RetObj; - ACPI_STATUS Status; - UINT32 BufferSpaceNeeded; - - - FUNCTION_TRACE ("RsGetPrtMethodData"); - - - /* already validated params, so we won't repeat here */ - - BufferSpaceNeeded = RetBuffer->Length; - - /* - * Execute the method, no parameters - */ - Status = AcpiNsEvaluateRelative (Handle, "_PRT", NULL, &RetObj); - if (ACPI_FAILURE (Status)) - { - return_ACPI_STATUS (Status); - } - - if (!RetObj) - { - /* Return object is required */ - - DEBUG_PRINT (ACPI_ERROR, ("No object was returned from _PRT\n")); - return_ACPI_STATUS (AE_TYPE); - } - - - /* - * The return object will be a package, so check the - * parameters. If the return object is not a package, - * then the underlying AML code is corrupt or improperly - * written. - */ - if (ACPI_TYPE_PACKAGE != RetObj->Common.Type) - { - Status = AE_AML_OPERAND_TYPE; - goto Cleanup; - } - - /* - * Make the call to create a resource linked list from the - * byte stream buffer that comes back from the _CRS method - * execution. - */ - Status = AcpiRsCreatePciRoutingTable (RetObj, - RetBuffer->Pointer, - &BufferSpaceNeeded); - - /* - * Tell the user how much of the buffer we have used or is needed - * and return the final status. - */ - RetBuffer->Length = BufferSpaceNeeded; - - - /* On exit, we must delete the object returned by evaluateObject */ - -Cleanup: - - AcpiCmRemoveReference (RetObj); - - return_ACPI_STATUS (Status); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsGetCrsMethodData - * - * PARAMETERS: Handle - a handle to the containing object - * RetBuffer - a pointer to a buffer structure for the - * results - * - * RETURN: Status - the status of the call - * - * DESCRIPTION: This function is called to get the _CRS value of an object - * contained in an object specified by the handle passed in - * - * If the function fails an appropriate status will be returned - * and the contents of the callers buffer is undefined. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsGetCrsMethodData ( - ACPI_HANDLE Handle, - ACPI_BUFFER *RetBuffer) -{ - ACPI_OPERAND_OBJECT *RetObj; - ACPI_STATUS Status; - UINT32 BufferSpaceNeeded = RetBuffer->Length; - - - FUNCTION_TRACE ("RsGetCrsMethodData"); - - - /* already validated params, so we won't repeat here */ - - /* - * Execute the method, no parameters - */ - Status = AcpiNsEvaluateRelative (Handle, "_CRS", NULL, &RetObj); - if (ACPI_FAILURE (Status)) - { - return_ACPI_STATUS (Status); - } - - if (!RetObj) - { - /* Return object is required */ - - DEBUG_PRINT (ACPI_ERROR, ("No object was returned from _CRS\n")); - return_ACPI_STATUS (AE_TYPE); - } - - /* - * The return object will be a buffer, but check the - * parameters. If the return object is not a buffer, - * then the underlying AML code is corrupt or improperly - * written. - */ - if (ACPI_TYPE_BUFFER != RetObj->Common.Type) - { - Status = AE_AML_OPERAND_TYPE; - goto Cleanup; - } - - /* - * Make the call to create a resource linked list from the - * byte stream buffer that comes back from the _CRS method - * execution. - */ - Status = AcpiRsCreateResourceList (RetObj, - RetBuffer->Pointer, - &BufferSpaceNeeded); - - - if (ACPI_SUCCESS (Status)) - { - DUMP_RESOURCE_LIST(RetBuffer->Pointer); - } - - /* - * Tell the user how much of the buffer we have used or is needed - * and return the final status. - */ - RetBuffer->Length = BufferSpaceNeeded; - - - /* On exit, we must delete the object returned by evaluateObject */ - -Cleanup: - - AcpiCmRemoveReference (RetObj); - - return_ACPI_STATUS (Status); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsGetPrsMethodData - * - * PARAMETERS: Handle - a handle to the containing object - * RetBuffer - a pointer to a buffer structure for the - * results - * - * RETURN: Status - the status of the call - * - * DESCRIPTION: This function is called to get the _PRS value of an object - * contained in an object specified by the handle passed in - * - * If the function fails an appropriate status will be returned - * and the contents of the callers buffer is undefined. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsGetPrsMethodData ( - ACPI_HANDLE Handle, - ACPI_BUFFER *RetBuffer) -{ - ACPI_OPERAND_OBJECT *RetObj; - ACPI_STATUS Status; - UINT32 BufferSpaceNeeded = RetBuffer->Length; - - - FUNCTION_TRACE ("RsGetPrsMethodData"); - - - /* already validated params, so we won't repeat here */ - - /* - * Execute the method, no parameters - */ - Status = AcpiNsEvaluateRelative (Handle, "_PRS", NULL, &RetObj); - if (ACPI_FAILURE (Status)) - { - return_ACPI_STATUS (Status); - } - - if (!RetObj) - { - /* Return object is required */ - - DEBUG_PRINT (ACPI_ERROR, ("No object was returned from _PRS\n")); - return_ACPI_STATUS (AE_TYPE); - } - - /* - * The return object will be a buffer, but check the - * parameters. If the return object is not a buffer, - * then the underlying AML code is corrupt or improperly - * written.. - */ - if (ACPI_TYPE_BUFFER != RetObj->Common.Type) - { - Status = AE_AML_OPERAND_TYPE; - goto Cleanup; - } - - /* - * Make the call to create a resource linked list from the - * byte stream buffer that comes back from the _CRS method - * execution. - */ - Status = AcpiRsCreateResourceList (RetObj, - RetBuffer->Pointer, - &BufferSpaceNeeded); - - /* - * Tell the user how much of the buffer we have used or is needed - * and return the final status. - */ - RetBuffer->Length = BufferSpaceNeeded; - - - /* On exit, we must delete the object returned by evaluateObject */ - -Cleanup: - - AcpiCmRemoveReference (RetObj); - - return_ACPI_STATUS (Status); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiRsSetSrsMethodData - * - * PARAMETERS: Handle - a handle to the containing object - * InBuffer - a pointer to a buffer structure of the - * parameter - * - * RETURN: Status - the status of the call - * - * DESCRIPTION: This function is called to set the _SRS of an object contained - * in an object specified by the handle passed in - * - * If the function fails an appropriate status will be returned - * and the contents of the callers buffer is undefined. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiRsSetSrsMethodData ( - ACPI_HANDLE Handle, - ACPI_BUFFER *InBuffer) -{ - ACPI_OPERAND_OBJECT *Params[2]; - ACPI_OPERAND_OBJECT ParamObj; - ACPI_STATUS Status; - UINT8 *ByteStream = NULL; - UINT32 BufferSizeNeeded = 0; - - - FUNCTION_TRACE ("RsSetSrsMethodData"); - - - /* already validated params, so we won't repeat here */ - - /* - * The InBuffer parameter will point to a linked list of - * resource parameters. It needs to be formatted into a - * byte stream to be sent in as an input parameter. - */ - BufferSizeNeeded = 0; - - /* - * First call is to get the buffer size needed - */ - Status = AcpiRsCreateByteStream (InBuffer->Pointer, - ByteStream, - &BufferSizeNeeded); - /* - * We expect a return of AE_BUFFER_OVERFLOW - * if not, exit with the error - */ - if (AE_BUFFER_OVERFLOW != Status) - { - return_ACPI_STATUS (Status); - } - - /* - * Allocate the buffer needed - */ - ByteStream = AcpiCmCallocate(BufferSizeNeeded); - if (NULL == ByteStream) - { - return_ACPI_STATUS (AE_NO_MEMORY); - } - - /* - * Now call to convert the linked list into a byte stream - */ - Status = AcpiRsCreateByteStream (InBuffer->Pointer, - ByteStream, - &BufferSizeNeeded); - if (ACPI_FAILURE (Status)) - { - goto Cleanup; - } - - /* - * Init the param object - */ - AcpiCmInitStaticObject (&ParamObj); - - /* - * Method requires one parameter. Set it up - */ - Params [0] = &ParamObj; - Params [1] = NULL; - - /* - * Set up the parameter object - */ - ParamObj.Common.Type = ACPI_TYPE_BUFFER; - ParamObj.Buffer.Length = BufferSizeNeeded; - ParamObj.Buffer.Pointer = ByteStream; - - /* - * Execute the method, no return value - */ - Status = AcpiNsEvaluateRelative (Handle, "_SRS", Params, NULL); - - /* - * Clean up and return the status from AcpiNsEvaluateRelative - */ - -Cleanup: - - AcpiCmFree (ByteStream); - return_ACPI_STATUS (Status); -} - diff --git a/sys/contrib/dev/acpica/Subsystem/Resources/rsxface.c b/sys/contrib/dev/acpica/Subsystem/Resources/rsxface.c deleted file mode 100644 index fa7c7cf572ef7..0000000000000 --- a/sys/contrib/dev/acpica/Subsystem/Resources/rsxface.c +++ /dev/null @@ -1,326 +0,0 @@ -/******************************************************************************* - * - * Module Name: rsxface - Public interfaces to the ACPI subsystem - * $Revision: 10 $ - * - ******************************************************************************/ - -/****************************************************************************** - * - * 1. Copyright Notice - * - * Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp. - * All rights reserved. - * - * 2. License - * - * 2.1. This is your license from Intel Corp. under its intellectual property - * rights. You may have additional license terms from the party that provided - * you this software, covering your right to use that party's intellectual - * property rights. - * - * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a - * copy of the source code appearing in this file ("Covered Code") an - * irrevocable, perpetual, worldwide license under Intel's copyrights in the - * base code distributed originally by Intel ("Original Intel Code") to copy, - * make derivatives, distribute, use and display any portion of the Covered - * Code in any form, with the right to sublicense such rights; and - * - * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent - * license (with the right to sublicense), under only those claims of Intel - * patents that are infringed by the Original Intel Code, to make, use, sell, - * offer to sell, and import the Covered Code and derivative works thereof - * solely to the minimum extent necessary to exercise the above copyright - * license, and in no event shall the patent license extend to any additions - * to or modifications of the Original Intel Code. No other license or right - * is granted directly or by implication, estoppel or otherwise; - * - * The above copyright and patent license is granted only if the following - * conditions are met: - * - * 3. Conditions - * - * 3.1. Redistribution of Source with Rights to Further Distribute Source. - * Redistribution of source code of any substantial portion of the Covered - * Code or modification with rights to further distribute source must include - * the above Copyright Notice, the above License, this list of Conditions, - * and the following Disclaimer and Export Compliance provision. In addition, - * Licensee must cause all Covered Code to which Licensee contributes to - * contain a file documenting the changes Licensee made to create that Covered - * Code and the date of any change. Licensee must include in that file the - * documentation of any changes made by any predecessor Licensee. Licensee - * must include a prominent statement that the modification is derived, - * directly or indirectly, from Original Intel Code. - * - * 3.2. Redistribution of Source with no Rights to Further Distribute Source. - * Redistribution of source code of any substantial portion of the Covered - * Code or modification without rights to further distribute source must - * include the following Disclaimer and Export Compliance provision in the - * documentation and/or other materials provided with distribution. In - * addition, Licensee may not authorize further sublicense of source of any - * portion of the Covered Code, and must include terms to the effect that the - * license from Licensee to its licensee is limited to the intellectual - * property embodied in the software Licensee provides to its licensee, and - * not to intellectual property embodied in modifications its licensee may - * make. - * - * 3.3. Redistribution of Executable. Redistribution in executable form of any - * substantial portion of the Covered Code or modification must reproduce the - * above Copyright Notice, and the following Disclaimer and Export Compliance - * provision in the documentation and/or other materials provided with the - * distribution. - * - * 3.4. Intel retains all right, title, and interest in and to the Original - * Intel Code. - * - * 3.5. Neither the name Intel nor any other trademark owned or controlled by - * Intel shall be used in advertising or otherwise to promote the sale, use or - * other dealings in products derived from or relating to the Covered Code - * without prior written authorization from Intel. - * - * 4. Disclaimer and Export Compliance - * - * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED - * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE - * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, - * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY - * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY - * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A - * PARTICULAR PURPOSE. - * - * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES - * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR - * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, - * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY - * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL - * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS - * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY - * LIMITED REMEDY. - * - * 4.3. Licensee shall not export, either directly or indirectly, any of this - * software or system incorporating such software without first obtaining any - * required license or other approval from the U. S. Department of Commerce or - * any other agency or department of the United States Government. In the - * event Licensee exports any such software from the United States or - * re-exports any such software from a foreign destination, Licensee shall - * ensure that the distribution and export/re-export of the software is in - * compliance with all laws, regulations, orders, or other restrictions of the - * U.S. Export Administration Regulations. Licensee agrees that neither it nor - * any of its subsidiaries will export/re-export any technical data, process, - * software, or service, directly or indirectly, to any country for which the - * United States government or any agency thereof requires an export license, - * other governmental approval, or letter of assurance, without first obtaining - * such license, approval or letter. - * - *****************************************************************************/ - - -#define __RSXFACE_C__ - -#include "acpi.h" -#include "acinterp.h" -#include "acnamesp.h" -#include "acresrc.h" - -#define _COMPONENT RESOURCE_MANAGER - MODULE_NAME ("rsxface") - - -/******************************************************************************* - * - * FUNCTION: AcpiGetIrqRoutingTable - * - * PARAMETERS: DeviceHandle - a handle to the Bus device we are querying - * RetBuffer - a pointer to a buffer to receive the - * current resources for the device - * - * RETURN: Status - the status of the call - * - * DESCRIPTION: This function is called to get the IRQ routing table for a - * specific bus. The caller must first acquire a handle for the - * desired bus. The routine table is placed in the buffer pointed - * to by the RetBuffer variable parameter. - * - * If the function fails an appropriate status will be returned - * and the value of RetBuffer is undefined. - * - * This function attempts to execute the _PRT method contained in - * the object indicated by the passed DeviceHandle. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiGetIrqRoutingTable ( - ACPI_HANDLE DeviceHandle, - ACPI_BUFFER *RetBuffer) -{ - ACPI_STATUS Status; - - - FUNCTION_TRACE ("AcpiGetIrqRoutingTable "); - - /* - * Must have a valid handle and buffer, So we have to have a handle - * and a return buffer structure, and if there is a non-zero buffer length - * we also need a valid pointer in the buffer. If it's a zero buffer length, - * we'll be returning the needed buffer size, so keep going. - */ - if ((!DeviceHandle) || - (!RetBuffer) || - ((!RetBuffer->Pointer) && (RetBuffer->Length))) - { - return_ACPI_STATUS (AE_BAD_PARAMETER); - } - - Status = AcpiRsGetPrtMethodData (DeviceHandle, RetBuffer); - - return_ACPI_STATUS (Status); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiGetCurrentResources - * - * PARAMETERS: DeviceHandle - a handle to the device object for the - * device we are querying - * RetBuffer - a pointer to a buffer to receive the - * current resources for the device - * - * RETURN: Status - the status of the call - * - * DESCRIPTION: This function is called to get the current resources for a - * specific device. The caller must first acquire a handle for - * the desired device. The resource data is placed in the buffer - * pointed to by the RetBuffer variable parameter. - * - * If the function fails an appropriate status will be returned - * and the value of RetBuffer is undefined. - * - * This function attempts to execute the _CRS method contained in - * the object indicated by the passed DeviceHandle. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiGetCurrentResources ( - ACPI_HANDLE DeviceHandle, - ACPI_BUFFER *RetBuffer) -{ - ACPI_STATUS Status; - - - FUNCTION_TRACE ("AcpiGetCurrentResources"); - - /* - * Must have a valid handle and buffer, So we have to have a handle - * and a return buffer structure, and if there is a non-zero buffer length - * we also need a valid pointer in the buffer. If it's a zero buffer length, - * we'll be returning the needed buffer size, so keep going. - */ - if ((!DeviceHandle) || - (!RetBuffer) || - ((RetBuffer->Length) && (!RetBuffer->Pointer))) - { - return_ACPI_STATUS (AE_BAD_PARAMETER); - } - - Status = AcpiRsGetCrsMethodData (DeviceHandle, RetBuffer); - - return_ACPI_STATUS (Status); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiGetPossibleResources - * - * PARAMETERS: DeviceHandle - a handle to the device object for the - * device we are querying - * RetBuffer - a pointer to a buffer to receive the - * resources for the device - * - * RETURN: Status - the status of the call - * - * DESCRIPTION: This function is called to get a list of the possible resources - * for a specific device. The caller must first acquire a handle - * for the desired device. The resource data is placed in the - * buffer pointed to by the RetBuffer variable. - * - * If the function fails an appropriate status will be returned - * and the value of RetBuffer is undefined. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiGetPossibleResources ( - ACPI_HANDLE DeviceHandle, - ACPI_BUFFER *RetBuffer) -{ - ACPI_STATUS Status; - - - FUNCTION_TRACE ("AcpiGetPossibleResources"); - - /* - * Must have a valid handle and buffer, So we have to have a handle - * and a return buffer structure, and if there is a non-zero buffer length - * we also need a valid pointer in the buffer. If it's a zero buffer length, - * we'll be returning the needed buffer size, so keep going. - */ - if ((!DeviceHandle) || - (!RetBuffer) || - ((RetBuffer->Length) && (!RetBuffer->Pointer))) - { - return_ACPI_STATUS (AE_BAD_PARAMETER); - } - - Status = AcpiRsGetPrsMethodData (DeviceHandle, RetBuffer); - - return_ACPI_STATUS (Status); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiSetCurrentResources - * - * PARAMETERS: DeviceHandle - a handle to the device object for the - * device we are changing the resources of - * InBuffer - a pointer to a buffer containing the - * resources to be set for the device - * - * RETURN: Status - the status of the call - * - * DESCRIPTION: This function is called to set the current resources for a - * specific device. The caller must first acquire a handle for - * the desired device. The resource data is passed to the routine - * the buffer pointed to by the InBuffer variable. - * - ******************************************************************************/ - -ACPI_STATUS -AcpiSetCurrentResources ( - ACPI_HANDLE DeviceHandle, - ACPI_BUFFER *InBuffer) -{ - ACPI_STATUS Status; - - - FUNCTION_TRACE ("AcpiSetCurrentResources"); - - /* - * Must have a valid handle and buffer - */ - if ((!DeviceHandle) || - (!InBuffer) || - (!InBuffer->Pointer) || - (!InBuffer->Length)) - { - return_ACPI_STATUS (AE_BAD_PARAMETER); - } - - Status = AcpiRsSetSrsMethodData (DeviceHandle, InBuffer); - - return_ACPI_STATUS (Status); -} |