diff options
Diffstat (limited to 'sys/contrib/dev/acpica/exregion.c')
-rw-r--r-- | sys/contrib/dev/acpica/exregion.c | 97 |
1 files changed, 79 insertions, 18 deletions
diff --git a/sys/contrib/dev/acpica/exregion.c b/sys/contrib/dev/acpica/exregion.c index ac53967..4e8dedd 100644 --- a/sys/contrib/dev/acpica/exregion.c +++ b/sys/contrib/dev/acpica/exregion.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Module Name: exregion - ACPI default OpRegion (address space) handlers - * $Revision: 64 $ + * $Revision: 71 $ * *****************************************************************************/ @@ -10,7 +10,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 @@ -127,7 +127,7 @@ #define _COMPONENT ACPI_EXECUTER - MODULE_NAME ("exregion") + ACPI_MODULE_NAME ("exregion") /******************************************************************************* @@ -163,7 +163,7 @@ AcpiExSystemMemorySpaceHandler ( UINT32 Length; - FUNCTION_TRACE ("ExSystemMemorySpaceHandler"); + ACPI_FUNCTION_TRACE ("ExSystemMemorySpaceHandler"); /* Validate and translate the bit width */ @@ -190,7 +190,6 @@ AcpiExSystemMemorySpaceHandler ( ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Invalid SystemMemory width %d\n", BitWidth)); return_ACPI_STATUS (AE_AML_OPERAND_VALUE); - break; } @@ -242,7 +241,7 @@ AcpiExSystemMemorySpaceHandler ( ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "SystemMemory %d (%d width) Address=%8.8X%8.8X\n", Function, BitWidth, - HIDWORD (Address), LODWORD (Address))); + ACPI_HIDWORD (Address), ACPI_LODWORD (Address))); /* Perform the memory read or write */ @@ -250,6 +249,7 @@ AcpiExSystemMemorySpaceHandler ( { case ACPI_READ: + *Value = 0; switch (BitWidth) { case 8: @@ -257,15 +257,15 @@ AcpiExSystemMemorySpaceHandler ( break; case 16: - MOVE_UNALIGNED16_TO_32 (Value, LogicalAddrPtr); + ACPI_MOVE_UNALIGNED16_TO_16 (Value, LogicalAddrPtr); break; case 32: - MOVE_UNALIGNED32_TO_32 (Value, LogicalAddrPtr); + ACPI_MOVE_UNALIGNED32_TO_32 (Value, LogicalAddrPtr); break; case 64: - MOVE_UNALIGNED64_TO_64 (Value, LogicalAddrPtr); + ACPI_MOVE_UNALIGNED64_TO_64 (Value, LogicalAddrPtr); break; } break; @@ -279,15 +279,15 @@ AcpiExSystemMemorySpaceHandler ( break; case 16: - MOVE_UNALIGNED16_TO_16 (LogicalAddrPtr, Value); + ACPI_MOVE_UNALIGNED16_TO_16 (LogicalAddrPtr, Value); break; case 32: - MOVE_UNALIGNED32_TO_32 (LogicalAddrPtr, Value); + ACPI_MOVE_UNALIGNED32_TO_32 (LogicalAddrPtr, Value); break; case 64: - MOVE_UNALIGNED64_TO_64 (LogicalAddrPtr, Value); + ACPI_MOVE_UNALIGNED64_TO_64 (LogicalAddrPtr, Value); break; } break; @@ -331,12 +331,12 @@ AcpiExSystemIoSpaceHandler ( ACPI_STATUS Status = AE_OK; - FUNCTION_TRACE ("ExSystemIoSpaceHandler"); + ACPI_FUNCTION_TRACE ("ExSystemIoSpaceHandler"); ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "SystemIO %d (%d width) Address=%8.8X%8.8X\n", Function, BitWidth, - HIDWORD (Address), LODWORD (Address))); + ACPI_HIDWORD (Address), ACPI_LODWORD (Address))); /* Decode the function parameter */ @@ -394,7 +394,7 @@ AcpiExPciConfigSpaceHandler ( UINT16 PciRegister; - FUNCTION_TRACE ("ExPciConfigSpaceHandler"); + ACPI_FUNCTION_TRACE ("ExPciConfigSpaceHandler"); /* @@ -410,7 +410,7 @@ AcpiExPciConfigSpaceHandler ( * */ PciId = (ACPI_PCI_ID *) RegionContext; - PciRegister = (UINT16) Address; + PciRegister = (UINT16) (ACPI_SIZE) Address; ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "PciConfig %d (%d) Seg(%04x) Bus(%04x) Dev(%04x) Func(%04x) Reg(%04x)\n", @@ -470,7 +470,7 @@ AcpiExCmosSpaceHandler ( ACPI_STATUS Status = AE_OK; - FUNCTION_TRACE ("ExCmosSpaceHandler"); + ACPI_FUNCTION_TRACE ("ExCmosSpaceHandler"); return_ACPI_STATUS (Status); @@ -507,9 +507,70 @@ AcpiExPciBarSpaceHandler ( ACPI_STATUS Status = AE_OK; - FUNCTION_TRACE ("ExPciBarSpaceHandler"); + ACPI_FUNCTION_TRACE ("ExPciBarSpaceHandler"); + + + return_ACPI_STATUS (Status); +} + + +/******************************************************************************* + * + * FUNCTION: AcpiExDataTableSpaceHandler + * + * PARAMETERS: Function - Read or Write operation + * Address - Where in the space to read or write + * BitWidth - Field width in bits (8, 16, or 32) + * Value - Pointer to in or out value + * HandlerContext - Pointer to Handler's context + * RegionContext - Pointer to context specific to the + * accessed region + * + * RETURN: Status + * + * DESCRIPTION: Handler for the Data Table address space (Op Region) + * + ******************************************************************************/ + +ACPI_STATUS +AcpiExDataTableSpaceHandler ( + UINT32 Function, + ACPI_PHYSICAL_ADDRESS Address, + UINT32 BitWidth, + ACPI_INTEGER *Value, + void *HandlerContext, + void *RegionContext) +{ + ACPI_STATUS Status = AE_OK; + UINT32 ByteWidth = ACPI_DIV_8 (BitWidth); + UINT32 i; + char *LogicalAddrPtr; + + + ACPI_FUNCTION_TRACE ("ExDataTableSpaceHandler"); + + + LogicalAddrPtr = ACPI_PHYSADDR_TO_PTR (Address); + + + /* Perform the memory read or write */ + switch (Function) + { + case ACPI_READ: + + for (i = 0; i < ByteWidth; i++) + { + ((char *) Value) [i] = LogicalAddrPtr[i]; + } + break; + + case ACPI_WRITE: + + return_ACPI_STATUS (AE_SUPPORT); + } return_ACPI_STATUS (Status); } + |