mirror of
https://github.com/acpica/acpica/
synced 2025-02-15 13:04:16 +03:00
ALIGN_RESOURCE_SIZE macro added to fix a reported IA-64 alignment
issue (reported by Kochi Takayoshi) date 2002.01.22.23.19.00; author mwalz; state Exp;
This commit is contained in:
parent
4d5b54cf2d
commit
ad47cec830
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: rscalc - Calculate stream and list lengths
|
||||
* $Revision: 1.34 $
|
||||
* $Revision: 1.38 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -144,10 +144,10 @@
|
||||
ACPI_STATUS
|
||||
AcpiRsCalculateByteStreamLength (
|
||||
ACPI_RESOURCE *LinkedList,
|
||||
UINT32 *SizeNeeded)
|
||||
ACPI_SIZE *SizeNeeded)
|
||||
{
|
||||
UINT32 ByteStreamSizeNeeded = 0;
|
||||
UINT32 SegmentSize;
|
||||
ACPI_SIZE ByteStreamSizeNeeded = 0;
|
||||
ACPI_SIZE SegmentSize;
|
||||
ACPI_RESOURCE_EXT_IRQ *ExIrq = NULL;
|
||||
BOOLEAN Done = FALSE;
|
||||
|
||||
@ -343,7 +343,6 @@ AcpiRsCalculateByteStreamLength (
|
||||
* so exit with an error
|
||||
*/
|
||||
return_ACPI_STATUS (AE_AML_INVALID_RESOURCE_TYPE);
|
||||
break;
|
||||
|
||||
} /* switch (LinkedList->Id) */
|
||||
|
||||
@ -355,7 +354,7 @@ AcpiRsCalculateByteStreamLength (
|
||||
/*
|
||||
* Point to the next object
|
||||
*/
|
||||
LinkedList = POINTER_ADD (ACPI_RESOURCE,
|
||||
LinkedList = ACPI_PTR_ADD (ACPI_RESOURCE,
|
||||
LinkedList, LinkedList->Length);
|
||||
}
|
||||
|
||||
@ -389,7 +388,7 @@ ACPI_STATUS
|
||||
AcpiRsCalculateListLength (
|
||||
UINT8 *ByteStreamBuffer,
|
||||
UINT32 ByteStreamBufferLength,
|
||||
UINT32 *SizeNeeded)
|
||||
ACPI_SIZE *SizeNeeded)
|
||||
{
|
||||
UINT32 BufferSize = 0;
|
||||
UINT32 BytesParsed = 0;
|
||||
@ -800,13 +799,12 @@ AcpiRsCalculateListLength (
|
||||
* so exit with an error
|
||||
*/
|
||||
return_ACPI_STATUS (AE_AML_INVALID_RESOURCE_TYPE);
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
* Update the return value and counter
|
||||
*/
|
||||
BufferSize += StructureSize;
|
||||
BufferSize += ALIGN_RESOURCE_SIZE(StructureSize);
|
||||
BytesParsed += BytesConsumed;
|
||||
|
||||
/*
|
||||
@ -843,7 +841,7 @@ AcpiRsCalculateListLength (
|
||||
ACPI_STATUS
|
||||
AcpiRsCalculatePciRoutingTableLength (
|
||||
ACPI_OPERAND_OBJECT *PackageObject,
|
||||
UINT32 *BufferSizeNeeded)
|
||||
ACPI_SIZE *BufferSizeNeeded)
|
||||
{
|
||||
UINT32 NumberOfElements;
|
||||
UINT32 TempSizeNeeded = 0;
|
||||
|
@ -1,8 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: rslist - AcpiRsByteStreamToList
|
||||
* AcpiListToByteStream
|
||||
* $Revision: 1.11 $
|
||||
* Module Name: rslist - Linked list utilities
|
||||
* $Revision: 1.24 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -10,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -120,10 +119,56 @@
|
||||
#include "acpi.h"
|
||||
#include "acresrc.h"
|
||||
|
||||
#define _COMPONENT RESOURCE_MANAGER
|
||||
#define _COMPONENT ACPI_RESOURCES
|
||||
MODULE_NAME ("rslist")
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiRsGetResourceType
|
||||
*
|
||||
* PARAMETERS: ResourceStartByte - Byte 0 of a resource descriptor
|
||||
*
|
||||
* RETURN: The Resource Type (Name) with no extraneous bits
|
||||
*
|
||||
* DESCRIPTION: Extract the Resource Type/Name from the first byte of
|
||||
* a resource descriptor.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
UINT8
|
||||
AcpiRsGetResourceType (
|
||||
UINT8 ResourceStartByte)
|
||||
{
|
||||
|
||||
FUNCTION_ENTRY ();
|
||||
|
||||
|
||||
/*
|
||||
* Determine if this is a small or large resource
|
||||
*/
|
||||
switch (ResourceStartByte & RESOURCE_DESC_TYPE_MASK)
|
||||
{
|
||||
case RESOURCE_DESC_TYPE_SMALL:
|
||||
|
||||
/*
|
||||
* Small Resource Type -- Only bits 6:3 are valid
|
||||
*/
|
||||
return ((UINT8) (ResourceStartByte & RESOURCE_DESC_SMALL_MASK));
|
||||
|
||||
|
||||
case RESOURCE_DESC_TYPE_LARGE:
|
||||
|
||||
/*
|
||||
* Large Resource Type -- All bits are valid
|
||||
*/
|
||||
return (ResourceStartByte);
|
||||
}
|
||||
|
||||
return (0xFF);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiRsByteStreamToList
|
||||
@ -131,9 +176,9 @@
|
||||
* PARAMETERS: ByteStreamBuffer - Pointer to the resource byte stream
|
||||
* ByteStreamBufferLength - Length of ByteStreamBuffer
|
||||
* OutputBuffer - Pointer to the buffer that will
|
||||
* contain the output structures
|
||||
* contain the output structures
|
||||
*
|
||||
* RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Takes the resource byte stream and parses it, creating a
|
||||
* linked list of resources in the caller's output buffer
|
||||
@ -144,16 +189,16 @@ ACPI_STATUS
|
||||
AcpiRsByteStreamToList (
|
||||
UINT8 *ByteStreamBuffer,
|
||||
UINT32 ByteStreamBufferLength,
|
||||
UINT8 **OutputBuffer)
|
||||
UINT8 *OutputBuffer)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
UINT32 BytesParsed = 0;
|
||||
UINT8 ResourceType = 0;
|
||||
UINT32 BytesConsumed = 0;
|
||||
UINT8 **Buffer = OutputBuffer;
|
||||
UINT32 StructureSize = 0;
|
||||
ACPI_SIZE BytesConsumed = 0;
|
||||
UINT8 *Buffer = OutputBuffer;
|
||||
ACPI_SIZE StructureSize = 0;
|
||||
BOOLEAN EndTagProcessed = FALSE;
|
||||
|
||||
ACPI_RESOURCE *Resource;
|
||||
|
||||
FUNCTION_TRACE ("RsByteStreamToList");
|
||||
|
||||
@ -162,222 +207,170 @@ AcpiRsByteStreamToList (
|
||||
FALSE == EndTagProcessed)
|
||||
{
|
||||
/*
|
||||
* Look at the next byte in the stream
|
||||
* The next byte in the stream is the resource type
|
||||
*/
|
||||
ResourceType = *ByteStreamBuffer;
|
||||
ResourceType = AcpiRsGetResourceType (*ByteStreamBuffer);
|
||||
|
||||
/*
|
||||
* See if this is a small or large resource
|
||||
*/
|
||||
if(ResourceType & 0x80)
|
||||
switch (ResourceType)
|
||||
{
|
||||
case RESOURCE_DESC_MEMORY_24:
|
||||
/*
|
||||
* Large Resource Type
|
||||
* 24-Bit Memory Resource
|
||||
*/
|
||||
switch (ResourceType)
|
||||
{
|
||||
case MEMORY_RANGE_24:
|
||||
/*
|
||||
* 24-Bit Memory Resource
|
||||
*/
|
||||
Status = AcpiRsMemory24Resource(ByteStreamBuffer,
|
||||
&BytesConsumed,
|
||||
Buffer,
|
||||
&StructureSize);
|
||||
Status = AcpiRsMemory24Resource (ByteStreamBuffer,
|
||||
&BytesConsumed, &Buffer, &StructureSize);
|
||||
break;
|
||||
|
||||
break;
|
||||
|
||||
case LARGE_VENDOR_DEFINED:
|
||||
/*
|
||||
* Vendor Defined Resource
|
||||
*/
|
||||
Status = AcpiRsVendorResource(ByteStreamBuffer,
|
||||
&BytesConsumed,
|
||||
Buffer,
|
||||
&StructureSize);
|
||||
case RESOURCE_DESC_LARGE_VENDOR:
|
||||
/*
|
||||
* Vendor Defined Resource
|
||||
*/
|
||||
Status = AcpiRsVendorResource (ByteStreamBuffer,
|
||||
&BytesConsumed, &Buffer, &StructureSize);
|
||||
break;
|
||||
|
||||
break;
|
||||
|
||||
case MEMORY_RANGE_32:
|
||||
/*
|
||||
* 32-Bit Memory Range Resource
|
||||
*/
|
||||
Status = AcpiRsMemory32RangeResource(ByteStreamBuffer,
|
||||
&BytesConsumed,
|
||||
Buffer,
|
||||
&StructureSize);
|
||||
case RESOURCE_DESC_MEMORY_32:
|
||||
/*
|
||||
* 32-Bit Memory Range Resource
|
||||
*/
|
||||
Status = AcpiRsMemory32RangeResource (ByteStreamBuffer,
|
||||
&BytesConsumed, &Buffer, &StructureSize);
|
||||
break;
|
||||
|
||||
break;
|
||||
|
||||
case FIXED_MEMORY_RANGE_32:
|
||||
/*
|
||||
* 32-Bit Fixed Memory Resource
|
||||
*/
|
||||
Status = AcpiRsFixedMemory32Resource(ByteStreamBuffer,
|
||||
&BytesConsumed,
|
||||
Buffer,
|
||||
&StructureSize);
|
||||
case RESOURCE_DESC_FIXED_MEMORY_32:
|
||||
/*
|
||||
* 32-Bit Fixed Memory Resource
|
||||
*/
|
||||
Status = AcpiRsFixedMemory32Resource (ByteStreamBuffer,
|
||||
&BytesConsumed, &Buffer, &StructureSize);
|
||||
break;
|
||||
|
||||
break;
|
||||
|
||||
case DWORD_ADDRESS_SPACE:
|
||||
/*
|
||||
* 32-Bit Address Resource
|
||||
*/
|
||||
Status = AcpiRsAddress32Resource(ByteStreamBuffer,
|
||||
&BytesConsumed,
|
||||
Buffer,
|
||||
&StructureSize);
|
||||
case RESOURCE_DESC_QWORD_ADDRESS_SPACE:
|
||||
/*
|
||||
* 64-Bit Address Resource
|
||||
*/
|
||||
Status = AcpiRsAddress64Resource (ByteStreamBuffer,
|
||||
&BytesConsumed, &Buffer, &StructureSize);
|
||||
break;
|
||||
|
||||
break;
|
||||
|
||||
case WORD_ADDRESS_SPACE:
|
||||
/*
|
||||
* 16-Bit Address Resource
|
||||
*/
|
||||
Status = AcpiRsAddress16Resource(ByteStreamBuffer,
|
||||
&BytesConsumed,
|
||||
Buffer,
|
||||
&StructureSize);
|
||||
case RESOURCE_DESC_DWORD_ADDRESS_SPACE:
|
||||
/*
|
||||
* 32-Bit Address Resource
|
||||
*/
|
||||
Status = AcpiRsAddress32Resource (ByteStreamBuffer,
|
||||
&BytesConsumed, &Buffer, &StructureSize);
|
||||
break;
|
||||
|
||||
break;
|
||||
|
||||
case EXTENDED_IRQ:
|
||||
/*
|
||||
* Extended IRQ
|
||||
*/
|
||||
Status = AcpiRsExtendedIrqResource(ByteStreamBuffer,
|
||||
&BytesConsumed,
|
||||
Buffer,
|
||||
&StructureSize);
|
||||
case RESOURCE_DESC_WORD_ADDRESS_SPACE:
|
||||
/*
|
||||
* 16-Bit Address Resource
|
||||
*/
|
||||
Status = AcpiRsAddress16Resource (ByteStreamBuffer,
|
||||
&BytesConsumed, &Buffer, &StructureSize);
|
||||
break;
|
||||
|
||||
break;
|
||||
|
||||
/* TBD: [Future] 64-bit not currently supported */
|
||||
/*
|
||||
case 0x8A:
|
||||
break;
|
||||
*/
|
||||
case RESOURCE_DESC_EXTENDED_XRUPT:
|
||||
/*
|
||||
* Extended IRQ
|
||||
*/
|
||||
Status = AcpiRsExtendedIrqResource (ByteStreamBuffer,
|
||||
&BytesConsumed, &Buffer, &StructureSize);
|
||||
break;
|
||||
|
||||
default:
|
||||
/*
|
||||
* If we get here, everything is out of sync,
|
||||
* so exit with an error
|
||||
*/
|
||||
return_ACPI_STATUS (AE_AML_ERROR);
|
||||
break;
|
||||
}
|
||||
|
||||
case RESOURCE_DESC_IRQ_FORMAT:
|
||||
/*
|
||||
* IRQ Resource
|
||||
*/
|
||||
Status = AcpiRsIrqResource (ByteStreamBuffer,
|
||||
&BytesConsumed, &Buffer, &StructureSize);
|
||||
break;
|
||||
|
||||
|
||||
case RESOURCE_DESC_DMA_FORMAT:
|
||||
/*
|
||||
* DMA Resource
|
||||
*/
|
||||
Status = AcpiRsDmaResource (ByteStreamBuffer,
|
||||
&BytesConsumed, &Buffer, &StructureSize);
|
||||
break;
|
||||
|
||||
|
||||
case RESOURCE_DESC_START_DEPENDENT:
|
||||
/*
|
||||
* Start Dependent Functions Resource
|
||||
*/
|
||||
Status = AcpiRsStartDependFnsResource (ByteStreamBuffer,
|
||||
&BytesConsumed, &Buffer, &StructureSize);
|
||||
break;
|
||||
|
||||
|
||||
case RESOURCE_DESC_END_DEPENDENT:
|
||||
/*
|
||||
* End Dependent Functions Resource
|
||||
*/
|
||||
Status = AcpiRsEndDependFnsResource (ByteStreamBuffer,
|
||||
&BytesConsumed, &Buffer, &StructureSize);
|
||||
break;
|
||||
|
||||
|
||||
case RESOURCE_DESC_IO_PORT:
|
||||
/*
|
||||
* IO Port Resource
|
||||
*/
|
||||
Status = AcpiRsIoResource (ByteStreamBuffer,
|
||||
&BytesConsumed, &Buffer, &StructureSize);
|
||||
break;
|
||||
|
||||
|
||||
case RESOURCE_DESC_FIXED_IO_PORT:
|
||||
/*
|
||||
* Fixed IO Port Resource
|
||||
*/
|
||||
Status = AcpiRsFixedIoResource (ByteStreamBuffer,
|
||||
&BytesConsumed, &Buffer, &StructureSize);
|
||||
break;
|
||||
|
||||
|
||||
case RESOURCE_DESC_SMALL_VENDOR:
|
||||
/*
|
||||
* Vendor Specific Resource
|
||||
*/
|
||||
Status = AcpiRsVendorResource (ByteStreamBuffer,
|
||||
&BytesConsumed, &Buffer, &StructureSize);
|
||||
break;
|
||||
|
||||
|
||||
case RESOURCE_DESC_END_TAG:
|
||||
/*
|
||||
* End Tag
|
||||
*/
|
||||
EndTagProcessed = TRUE;
|
||||
Status = AcpiRsEndTagResource (ByteStreamBuffer,
|
||||
&BytesConsumed, &Buffer, &StructureSize);
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
/*
|
||||
* Invalid/Unknowns resource type
|
||||
*/
|
||||
Status = AE_AML_ERROR;
|
||||
break;
|
||||
}
|
||||
|
||||
else
|
||||
|
||||
if (!ACPI_SUCCESS(Status))
|
||||
{
|
||||
/*
|
||||
* 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 */
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/*
|
||||
* Update the return value and counter
|
||||
@ -392,7 +385,9 @@ AcpiRsByteStreamToList (
|
||||
/*
|
||||
* Set the Buffer to the next structure
|
||||
*/
|
||||
*Buffer += StructureSize;
|
||||
Resource = (ACPI_RESOURCE *)Buffer;
|
||||
Resource->Length = ALIGN_RESOURCE_SIZE(Resource->Length);
|
||||
Buffer += ALIGN_RESOURCE_SIZE(StructureSize);
|
||||
|
||||
} /* end while */
|
||||
|
||||
@ -414,15 +409,15 @@ AcpiRsByteStreamToList (
|
||||
*
|
||||
* 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
|
||||
* 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
|
||||
* contain the byte stream
|
||||
*
|
||||
* RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Takes the resource linked list and parses it, creating a
|
||||
* byte stream of resources in the caller's output buffer
|
||||
@ -431,92 +426,79 @@ AcpiRsByteStreamToList (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsListToByteStream (
|
||||
RESOURCE *LinkedList,
|
||||
ACPI_RESOURCE *LinkedList,
|
||||
UINT32 ByteStreamSizeNeeded,
|
||||
UINT8 **OutputBuffer)
|
||||
UINT8 *OutputBuffer)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
UINT8 *Buffer = *OutputBuffer;
|
||||
UINT32 BytesConsumed = 0;
|
||||
UINT8 *Buffer = OutputBuffer;
|
||||
ACPI_SIZE BytesConsumed = 0;
|
||||
BOOLEAN Done = FALSE;
|
||||
|
||||
|
||||
FUNCTION_TRACE ("RsListToByteStream");
|
||||
|
||||
|
||||
while (!Done)
|
||||
{
|
||||
switch (LinkedList->Id)
|
||||
{
|
||||
case Irq:
|
||||
case ACPI_RSTYPE_IRQ:
|
||||
/*
|
||||
* IRQ Resource
|
||||
*/
|
||||
Status = AcpiRsIrqStream (LinkedList,
|
||||
&Buffer,
|
||||
&BytesConsumed);
|
||||
Status = AcpiRsIrqStream (LinkedList, &Buffer, &BytesConsumed);
|
||||
break;
|
||||
|
||||
case Dma:
|
||||
case ACPI_RSTYPE_DMA:
|
||||
/*
|
||||
* DMA Resource
|
||||
*/
|
||||
Status = AcpiRsDmaStream (LinkedList,
|
||||
&Buffer,
|
||||
&BytesConsumed);
|
||||
Status = AcpiRsDmaStream (LinkedList, &Buffer, &BytesConsumed);
|
||||
break;
|
||||
|
||||
case StartDependentFunctions:
|
||||
case ACPI_RSTYPE_START_DPF:
|
||||
/*
|
||||
* Start Dependent Functions Resource
|
||||
*/
|
||||
Status = AcpiRsStartDependentFunctionsStream (LinkedList,
|
||||
&Buffer,
|
||||
&BytesConsumed);
|
||||
Status = AcpiRsStartDependFnsStream (LinkedList,
|
||||
&Buffer, &BytesConsumed);
|
||||
break;
|
||||
|
||||
case EndDependentFunctions:
|
||||
case ACPI_RSTYPE_END_DPF:
|
||||
/*
|
||||
* End Dependent Functions Resource
|
||||
*/
|
||||
Status = AcpiRsEndDependentFunctionsStream (LinkedList,
|
||||
&Buffer,
|
||||
&BytesConsumed);
|
||||
Status = AcpiRsEndDependFnsStream (LinkedList,
|
||||
&Buffer, &BytesConsumed);
|
||||
break;
|
||||
|
||||
case Io:
|
||||
case ACPI_RSTYPE_IO:
|
||||
/*
|
||||
* IO Port Resource
|
||||
*/
|
||||
Status = AcpiRsIoStream (LinkedList,
|
||||
&Buffer,
|
||||
&BytesConsumed);
|
||||
Status = AcpiRsIoStream (LinkedList, &Buffer, &BytesConsumed);
|
||||
break;
|
||||
|
||||
case FixedIo:
|
||||
case ACPI_RSTYPE_FIXED_IO:
|
||||
/*
|
||||
* Fixed IO Port Resource
|
||||
*/
|
||||
Status = AcpiRsFixedIoStream (LinkedList,
|
||||
&Buffer,
|
||||
&BytesConsumed);
|
||||
Status = AcpiRsFixedIoStream (LinkedList, &Buffer, &BytesConsumed);
|
||||
break;
|
||||
|
||||
case VendorSpecific:
|
||||
case ACPI_RSTYPE_VENDOR:
|
||||
/*
|
||||
* Vendor Defined Resource
|
||||
*/
|
||||
Status = AcpiRsVendorStream (LinkedList,
|
||||
&Buffer,
|
||||
&BytesConsumed);
|
||||
Status = AcpiRsVendorStream (LinkedList, &Buffer, &BytesConsumed);
|
||||
break;
|
||||
|
||||
case EndTag:
|
||||
case ACPI_RSTYPE_END_TAG:
|
||||
/*
|
||||
* End Tag
|
||||
*/
|
||||
Status = AcpiRsEndTagStream (LinkedList,
|
||||
&Buffer,
|
||||
&BytesConsumed);
|
||||
Status = AcpiRsEndTagStream (LinkedList, &Buffer, &BytesConsumed);
|
||||
|
||||
/*
|
||||
* An End Tag indicates the end of the Resource Template
|
||||
@ -524,58 +506,59 @@ AcpiRsListToByteStream (
|
||||
Done = TRUE;
|
||||
break;
|
||||
|
||||
case Memory24:
|
||||
case ACPI_RSTYPE_MEM24:
|
||||
/*
|
||||
* 24-Bit Memory Resource
|
||||
*/
|
||||
Status = AcpiRsMemory24Stream (LinkedList,
|
||||
&Buffer,
|
||||
&BytesConsumed);
|
||||
Status = AcpiRsMemory24Stream (LinkedList, &Buffer, &BytesConsumed);
|
||||
break;
|
||||
|
||||
case Memory32:
|
||||
case ACPI_RSTYPE_MEM32:
|
||||
/*
|
||||
* 32-Bit Memory Range Resource
|
||||
*/
|
||||
Status = AcpiRsMemory32RangeStream (LinkedList,
|
||||
&Buffer,
|
||||
&BytesConsumed);
|
||||
Status = AcpiRsMemory32RangeStream (LinkedList, &Buffer,
|
||||
&BytesConsumed);
|
||||
break;
|
||||
|
||||
case FixedMemory32:
|
||||
case ACPI_RSTYPE_FIXED_MEM32:
|
||||
/*
|
||||
* 32-Bit Fixed Memory Resource
|
||||
*/
|
||||
Status = AcpiRsFixedMemory32Stream (LinkedList,
|
||||
&Buffer,
|
||||
&BytesConsumed);
|
||||
Status = AcpiRsFixedMemory32Stream (LinkedList, &Buffer,
|
||||
&BytesConsumed);
|
||||
break;
|
||||
|
||||
case Address16:
|
||||
case ACPI_RSTYPE_ADDRESS16:
|
||||
/*
|
||||
* 16-Bit Address Descriptor Resource
|
||||
*/
|
||||
Status = AcpiRsAddress16Stream (LinkedList,
|
||||
&Buffer,
|
||||
&BytesConsumed);
|
||||
Status = AcpiRsAddress16Stream (LinkedList, &Buffer,
|
||||
&BytesConsumed);
|
||||
break;
|
||||
|
||||
case Address32:
|
||||
case ACPI_RSTYPE_ADDRESS32:
|
||||
/*
|
||||
* 32-Bit Address Descriptor Resource
|
||||
*/
|
||||
Status = AcpiRsAddress32Stream (LinkedList,
|
||||
&Buffer,
|
||||
&BytesConsumed);
|
||||
Status = AcpiRsAddress32Stream (LinkedList, &Buffer,
|
||||
&BytesConsumed);
|
||||
break;
|
||||
|
||||
case ExtendedIrq:
|
||||
case ACPI_RSTYPE_ADDRESS64:
|
||||
/*
|
||||
* 64-Bit Address Descriptor Resource
|
||||
*/
|
||||
Status = AcpiRsAddress64Stream (LinkedList, &Buffer,
|
||||
&BytesConsumed);
|
||||
break;
|
||||
|
||||
case ACPI_RSTYPE_EXT_IRQ:
|
||||
/*
|
||||
* Extended IRQ Resource
|
||||
*/
|
||||
Status = AcpiRsExtendedIrqStream (LinkedList,
|
||||
&Buffer,
|
||||
&BytesConsumed);
|
||||
Status = AcpiRsExtendedIrqStream (LinkedList, &Buffer,
|
||||
&BytesConsumed);
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -583,11 +566,17 @@ AcpiRsListToByteStream (
|
||||
* If we get here, everything is out of sync,
|
||||
* so exit with an error
|
||||
*/
|
||||
return_ACPI_STATUS (AE_BAD_DATA);
|
||||
Status = AE_BAD_DATA;
|
||||
break;
|
||||
|
||||
} /* switch (LinkedList->Id) */
|
||||
|
||||
|
||||
if (!ACPI_SUCCESS(Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/*
|
||||
* Set the Buffer to point to the open byte
|
||||
*/
|
||||
@ -596,10 +585,10 @@ AcpiRsListToByteStream (
|
||||
/*
|
||||
* Point to the next object
|
||||
*/
|
||||
LinkedList = (RESOURCE *) ((NATIVE_UINT) LinkedList +
|
||||
(NATIVE_UINT) LinkedList->Length);
|
||||
LinkedList = ACPI_PTR_ADD (ACPI_RESOURCE,
|
||||
LinkedList, LinkedList->Length);
|
||||
}
|
||||
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user