summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev/acpica/exregion.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/dev/acpica/exregion.c')
-rw-r--r--sys/contrib/dev/acpica/exregion.c97
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);
}
+
OpenPOWER on IntegriCloud