summaryrefslogtreecommitdiff
path: root/source/tools/acpiexec/aeregion.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/tools/acpiexec/aeregion.c')
-rw-r--r--source/tools/acpiexec/aeregion.c278
1 files changed, 1 insertions, 277 deletions
diff --git a/source/tools/acpiexec/aeregion.c b/source/tools/acpiexec/aeregion.c
index 4076c06bdf0b..69c3999f6b01 100644
--- a/source/tools/acpiexec/aeregion.c
+++ b/source/tools/acpiexec/aeregion.c
@@ -1,6 +1,6 @@
/******************************************************************************
*
- * Module Name: aeregion - Operation region support for acpiexec
+ * Module Name: aeregion - Handler for operation regions
*
*****************************************************************************/
@@ -155,283 +155,7 @@
ACPI_MODULE_NAME ("aeregion")
-/* Local prototypes */
-
-static ACPI_STATUS
-AeRegionInit (
- ACPI_HANDLE RegionHandle,
- UINT32 Function,
- void *HandlerContext,
- void **RegionContext);
-
-static ACPI_STATUS
-AeInstallEcHandler (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Context,
- void **ReturnValue);
-
-static ACPI_STATUS
-AeInstallPciHandler (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Context,
- void **ReturnValue);
-
-
static AE_DEBUG_REGIONS AeRegions;
-BOOLEAN AcpiGbl_DisplayRegionAccess = FALSE;
-ACPI_CONNECTION_INFO AeMyContext;
-
-
-/*
- * We will override some of the default region handlers, especially
- * the SystemMemory handler, which must be implemented locally.
- * These handlers are installed "early" - before any _REG methods
- * are executed - since they are special in the sense that the ACPI spec
- * declares that they must "always be available". Cannot override the
- * DataTable region handler either -- needed for test execution.
- *
- * NOTE: The local region handler will simulate access to these address
- * spaces by creating a memory buffer behind each operation region.
- */
-static ACPI_ADR_SPACE_TYPE DefaultSpaceIdList[] =
-{
- ACPI_ADR_SPACE_SYSTEM_MEMORY,
- ACPI_ADR_SPACE_SYSTEM_IO,
- ACPI_ADR_SPACE_PCI_CONFIG,
- ACPI_ADR_SPACE_EC
-};
-
-/*
- * We will install handlers for some of the various address space IDs.
- * Test one user-defined address space (used by aslts).
- */
-#define ACPI_ADR_SPACE_USER_DEFINED1 0x80
-#define ACPI_ADR_SPACE_USER_DEFINED2 0xE4
-
-static ACPI_ADR_SPACE_TYPE SpaceIdList[] =
-{
- ACPI_ADR_SPACE_SMBUS,
- ACPI_ADR_SPACE_CMOS,
- ACPI_ADR_SPACE_PCI_BAR_TARGET,
- ACPI_ADR_SPACE_IPMI,
- ACPI_ADR_SPACE_GPIO,
- ACPI_ADR_SPACE_GSBUS,
- ACPI_ADR_SPACE_FIXED_HARDWARE,
- ACPI_ADR_SPACE_USER_DEFINED1,
- ACPI_ADR_SPACE_USER_DEFINED2
-};
-
-
-/******************************************************************************
- *
- * FUNCTION: AeRegionInit
- *
- * PARAMETERS: Region init handler
- *
- * RETURN: Status
- *
- * DESCRIPTION: Opregion init function.
- *
- *****************************************************************************/
-
-static ACPI_STATUS
-AeRegionInit (
- ACPI_HANDLE RegionHandle,
- UINT32 Function,
- void *HandlerContext,
- void **RegionContext)
-{
-
- if (Function == ACPI_REGION_DEACTIVATE)
- {
- *RegionContext = NULL;
- }
- else
- {
- *RegionContext = RegionHandle;
- }
-
- return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AeOverrideRegionHandlers
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Override the default region handlers for memory, i/o, and
- * pci_config. Also install a handler for EC. This is part of
- * the "install early handlers" functionality.
- *
- *****************************************************************************/
-
-void
-AeOverrideRegionHandlers (
- void)
-{
- UINT32 i;
- ACPI_STATUS Status;
-
- /*
- * Install handlers that will override the default handlers for some of
- * the space IDs.
- */
- for (i = 0; i < ACPI_ARRAY_LENGTH (DefaultSpaceIdList); i++)
- {
- /* Install handler at the root object */
-
- Status = AcpiInstallAddressSpaceHandler (ACPI_ROOT_OBJECT,
- DefaultSpaceIdList[i], AeRegionHandler,
- AeRegionInit, &AeMyContext);
-
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Could not install an OpRegion handler for %s space(%u)",
- AcpiUtGetRegionName ((UINT8) DefaultSpaceIdList[i]),
- DefaultSpaceIdList[i]));
- }
- }
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AeInstallRegionHandlers
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Install handlers for the address spaces other than memory,
- * i/o, and pci_config.
- *
- *****************************************************************************/
-
-void
-AeInstallRegionHandlers (
- void)
-{
- UINT32 i;
- ACPI_STATUS Status;
-
- /*
- * Install handlers for some of the "device driver" address spaces
- * such as SMBus, etc.
- */
- for (i = 0; i < ACPI_ARRAY_LENGTH (SpaceIdList); i++)
- {
- /* Install handler at the root object */
-
- Status = AcpiInstallAddressSpaceHandler (ACPI_ROOT_OBJECT,
- SpaceIdList[i], AeRegionHandler,
- AeRegionInit, &AeMyContext);
-
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Could not install an OpRegion handler for %s space(%u)",
- AcpiUtGetRegionName((UINT8) SpaceIdList[i]), SpaceIdList[i]));
- return;
- }
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AeInstallDeviceHandlers,
- * AeInstallEcHandler,
- * AeInstallPciHandler
- *
- * PARAMETERS: ACPI_WALK_NAMESPACE callback
- *
- * RETURN: Status
- *
- * DESCRIPTION: Walk entire namespace, install a handler for every EC
- * and PCI device found.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AeInstallEcHandler (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Context,
- void **ReturnValue)
-{
- ACPI_STATUS Status;
-
-
- /* Install the handler for this EC device */
-
- Status = AcpiInstallAddressSpaceHandler (ObjHandle, ACPI_ADR_SPACE_EC,
- AeRegionHandler, AeRegionInit, &AeMyContext);
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Could not install an OpRegion handler for EC device (%p)",
- ObjHandle));
- }
-
- return (Status);
-}
-
-
-static ACPI_STATUS
-AeInstallPciHandler (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Context,
- void **ReturnValue)
-{
- ACPI_STATUS Status;
-
-
- /* Install memory and I/O handlers for the PCI device */
-
- Status = AcpiInstallAddressSpaceHandler (ObjHandle, ACPI_ADR_SPACE_SYSTEM_IO,
- AeRegionHandler, AeRegionInit, &AeMyContext);
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Could not install an OpRegion handler for PCI device (%p)",
- ObjHandle));
- }
-
- Status = AcpiInstallAddressSpaceHandler (ObjHandle, ACPI_ADR_SPACE_SYSTEM_MEMORY,
- AeRegionHandler, AeRegionInit, &AeMyContext);
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Could not install an OpRegion handler for PCI device (%p)",
- ObjHandle));
- }
-
- return (AE_CTRL_TERMINATE);
-}
-
-
-ACPI_STATUS
-AeInstallDeviceHandlers (
- void)
-{
-
- /* Find all Embedded Controller devices */
-
- AcpiGetDevices ("PNP0C09", AeInstallEcHandler, NULL, NULL);
-
- /* Install a PCI handler */
-
- AcpiGetDevices ("PNP0A08", AeInstallPciHandler, NULL, NULL);
- return (AE_OK);
-}
/******************************************************************************