Implement table-driven resource management dispatch

This commit is contained in:
rmoore1 2005-09-15 21:47:40 +00:00
parent c02ce49e28
commit a8da3eeedb
6 changed files with 587 additions and 598 deletions

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: dswload - Dispatcher namespace load callbacks
* $Revision: 1.70 $
* $Revision: 1.71 $
*
*****************************************************************************/
@ -267,7 +267,9 @@ LdLoadFieldElements (
{
if (Status != AE_ALREADY_EXISTS)
{
return (Status);
AslError (ASL_ERROR, ASL_MSG_CORE_EXCEPTION, Child,
Child->Asl.Value.String);
return (Status);
}
/*

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: rsdump - Functions to display the resource structures.
* $Revision: 1.47 $
* $Revision: 1.48 $
*
******************************************************************************/
@ -478,9 +478,9 @@ AcpiRsDumpFixedIo (
AcpiOsPrintf ("Fixed Io Resource\n");
AcpiOsPrintf (" Range base address: %08X", FixedIoData->BaseAddress);
AcpiOsPrintf (" Range base address: %08X\n", FixedIoData->BaseAddress);
AcpiOsPrintf (" Range length: %08X", FixedIoData->RangeLength);
AcpiOsPrintf (" Range length: %08X\n", FixedIoData->RangeLength);
return;
}
@ -515,7 +515,7 @@ AcpiRsDumpVendorSpecific (
for (Index = 0; Index < VendorData->Length; Index++)
{
AcpiOsPrintf (" Byte %X: %08X\n",
AcpiOsPrintf (" Byte %X: %2.2X\n",
Index, VendorData->Reserved[Index]);
}
@ -870,7 +870,7 @@ AcpiRsDumpAddress32 (
break;
default:
AcpiOsPrintf (" Type Specific: Invalid Range attribute");
AcpiOsPrintf (" Type Specific: Invalid Range attribute\n");
break;
}
@ -1014,7 +1014,7 @@ AcpiRsDumpAddress64 (
break;
default:
AcpiOsPrintf (" Type Specific: Invalid Range attribute");
AcpiOsPrintf (" Type Specific: Invalid Range attribute\n");
break;
}
@ -1135,10 +1135,10 @@ AcpiRsDumpExtendedIrq (
if(0xFF != ExtIrqData->ResourceSource.Index)
{
AcpiOsPrintf (" Resource Source Index: %X",
AcpiOsPrintf (" Resource Source Index: %X\n",
ExtIrqData->ResourceSource.Index);
AcpiOsPrintf (" Resource Source: %s",
AcpiOsPrintf (" Resource Source: %s\n",
ExtIrqData->ResourceSource.StringPtr);
}
@ -1258,7 +1258,7 @@ AcpiRsDumpResourceList (
while (1)
{
AcpiOsPrintf ("Resource structure %X.\n", Count++);
AcpiOsPrintf ("Resource structure 0x%0X:\n", Count++);
/* Check ID range before dispatch */

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: aclocal.h - Internal data types used across the ACPI subsystem
* $Revision: 1.213 $
* $Revision: 1.214 $
*
*****************************************************************************/
@ -956,6 +956,7 @@ typedef struct acpi_bit_register_info
#define ACPI_RDESC_TYPE_SMALL 0x00
#define ACPI_RDESC_SMALL_MASK 0x78 /* Bits 6:3 contain the type */
#define ACPI_RDESC_SMALL_LENGTH_MASK 0x07 /* Bits 2:0 contain the length */
#define ACPI_RDESC_LARGE_MASK 0x7F /* Bits 6:0 contain the type */
@ -992,6 +993,13 @@ typedef struct acpi_bit_register_info
#define ACPI_RDESC_TYPE_EXTENDED_ADDRESS_SPACE 0x8B
#define ACPI_RDESC_LARGE_MAX 0x8B
/*
* Minimum lengths for descriptors with optional fields
*/
#define ACPI_RDESC_QWORD_MIN 43
#define ACPI_RDESC_DWORD_MIN 23
#define ACPI_RDESC_WORD_MIN 13
#define ACPI_RDESC_EXT_XRUPT_MIN 6
/*****************************************************************************

View File

@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: amlresrc.h - AML resource descriptors
* $Revision: 1.30 $
* $Revision: 1.31 $
*
*****************************************************************************/
@ -267,10 +267,19 @@ typedef struct asl_end_tag_desc
/* LARGE descriptors */
#define ASL_LARGE_HEADER_COMMON \
UINT8 DescriptorType;\
UINT16 Length;
typedef struct asl_large_header
{
ASL_LARGE_HEADER_COMMON
} ASL_LARGE_HEADER;
typedef struct asl_memory_24_desc
{
UINT8 DescriptorType;
UINT16 Length;
ASL_LARGE_HEADER_COMMON
UINT8 Information;
UINT16 AddressMin;
UINT16 AddressMax;
@ -282,8 +291,7 @@ typedef struct asl_memory_24_desc
typedef struct asl_large_vendor_desc
{
UINT8 DescriptorType;
UINT16 Length;
ASL_LARGE_HEADER_COMMON
UINT8 VendorDefined[1];
} ASL_LARGE_VENDOR_DESC;
@ -291,8 +299,7 @@ typedef struct asl_large_vendor_desc
typedef struct asl_memory_32_desc
{
UINT8 DescriptorType;
UINT16 Length;
ASL_LARGE_HEADER_COMMON
UINT8 Information;
UINT32 AddressMin;
UINT32 AddressMax;
@ -304,8 +311,7 @@ typedef struct asl_memory_32_desc
typedef struct asl_fixed_memory_32_desc
{
UINT8 DescriptorType;
UINT16 Length;
ASL_LARGE_HEADER_COMMON
UINT8 Information;
UINT32 BaseAddress;
UINT32 RangeLength;
@ -315,8 +321,7 @@ typedef struct asl_fixed_memory_32_desc
typedef struct asl_extended_address_desc
{
UINT8 DescriptorType;
UINT16 Length;
ASL_LARGE_HEADER_COMMON
UINT8 ResourceType;
UINT8 Flags;
UINT8 SpecificFlags;
@ -337,8 +342,7 @@ typedef struct asl_extended_address_desc
typedef struct asl_qword_address_desc
{
UINT8 DescriptorType;
UINT16 Length;
ASL_LARGE_HEADER_COMMON
UINT8 ResourceType;
UINT8 Flags;
UINT8 SpecificFlags;
@ -354,8 +358,7 @@ typedef struct asl_qword_address_desc
typedef struct asl_dword_address_desc
{
UINT8 DescriptorType;
UINT16 Length;
ASL_LARGE_HEADER_COMMON
UINT8 ResourceType;
UINT8 Flags;
UINT8 SpecificFlags;
@ -371,8 +374,7 @@ typedef struct asl_dword_address_desc
typedef struct asl_word_address_desc
{
UINT8 DescriptorType;
UINT16 Length;
ASL_LARGE_HEADER_COMMON
UINT8 ResourceType;
UINT8 Flags;
UINT8 SpecificFlags;
@ -388,8 +390,7 @@ typedef struct asl_word_address_desc
typedef struct asl_extended_xrupt_desc
{
UINT8 DescriptorType;
UINT16 Length;
ASL_LARGE_HEADER_COMMON
UINT8 Flags;
UINT8 TableLength;
UINT32 InterruptNumber[1];
@ -400,8 +401,7 @@ typedef struct asl_extended_xrupt_desc
typedef struct asl_generic_register_desc
{
UINT8 DescriptorType;
UINT16 Length;
ASL_LARGE_HEADER_COMMON
UINT8 AddressSpaceId;
UINT8 BitWidth;
UINT8 BitOffset;
@ -427,6 +427,7 @@ typedef union asl_resource_desc
ASL_SMALL_VENDOR_DESC Smv;
ASL_END_TAG_DESC Et;
ASL_LARGE_HEADER Lhd;
ASL_MEMORY_24_DESC M24;
ASL_LARGE_VENDOR_DESC Lgv;
ASL_MEMORY_32_DESC M32;

View File

@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: asmain - Main module for the acpi source processor utility
* $Revision: 1.80 $
* $Revision: 1.81 $
*
*****************************************************************************/
@ -454,6 +454,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = {
{"ASL_IRQ_NOFLAGS_DESC", SRC_TYPE_STRUCT},
{"ASL_LARGE_VENDOR_DESC", SRC_TYPE_STRUCT},
{"ASL_LISTING_NODE", SRC_TYPE_STRUCT},
{"ASL_LARGE_HEADER", SRC_TYPE_STRUCT},
{"ASL_MAPPING_ENTRY", SRC_TYPE_STRUCT},
{"ASL_MEMORY_24_DESC", SRC_TYPE_STRUCT},
{"ASL_MEMORY_32_DESC", SRC_TYPE_STRUCT},