363 lines
8.6 KiB
C
363 lines
8.6 KiB
C
/******************************************************************************
|
|
*
|
|
* Name: acevents.h - Event subcomponent prototypes and defines
|
|
*
|
|
*****************************************************************************/
|
|
|
|
/*
|
|
* Copyright (C) 2000 - 2016, Intel Corp.
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions, and the following disclaimer,
|
|
* without modification.
|
|
* 2. Redistributions in binary form must reproduce at minimum a disclaimer
|
|
* substantially similar to the "NO WARRANTY" disclaimer below
|
|
* ("Disclaimer") and any redistribution must be conditioned upon
|
|
* including a substantially similar Disclaimer requirement for further
|
|
* binary redistribution.
|
|
* 3. Neither the names of the above-listed copyright holders nor the names
|
|
* of any contributors may be used to endorse or promote products derived
|
|
* from this software without specific prior written permission.
|
|
*
|
|
* Alternatively, this software may be distributed under the terms of the
|
|
* GNU General Public License ("GPL") version 2 as published by the Free
|
|
* Software Foundation.
|
|
*
|
|
* NO WARRANTY
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
|
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
* HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
|
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
|
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
* POSSIBILITY OF SUCH DAMAGES.
|
|
*/
|
|
|
|
#ifndef __ACEVENTS_H__
|
|
#define __ACEVENTS_H__
|
|
|
|
|
|
/*
|
|
* evevent
|
|
*/
|
|
ACPI_STATUS
|
|
AcpiEvInitializeEvents (
|
|
void);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvInstallXruptHandlers (
|
|
void);
|
|
|
|
UINT32
|
|
AcpiEvFixedEventDetect (
|
|
void);
|
|
|
|
|
|
/*
|
|
* evmisc
|
|
*/
|
|
BOOLEAN
|
|
AcpiEvIsNotifyObject (
|
|
ACPI_NAMESPACE_NODE *Node);
|
|
|
|
UINT32
|
|
AcpiEvGetGpeNumberIndex (
|
|
UINT32 GpeNumber);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvQueueNotifyRequest (
|
|
ACPI_NAMESPACE_NODE *Node,
|
|
UINT32 NotifyValue);
|
|
|
|
|
|
/*
|
|
* evglock - Global Lock support
|
|
*/
|
|
ACPI_STATUS
|
|
AcpiEvInitGlobalLockHandler (
|
|
void);
|
|
|
|
ACPI_HW_DEPENDENT_RETURN_OK (
|
|
ACPI_STATUS
|
|
AcpiEvAcquireGlobalLock(
|
|
UINT16 Timeout))
|
|
|
|
ACPI_HW_DEPENDENT_RETURN_OK (
|
|
ACPI_STATUS
|
|
AcpiEvReleaseGlobalLock(
|
|
void))
|
|
|
|
ACPI_STATUS
|
|
AcpiEvRemoveGlobalLockHandler (
|
|
void);
|
|
|
|
|
|
/*
|
|
* evgpe - Low-level GPE support
|
|
*/
|
|
UINT32
|
|
AcpiEvGpeDetect (
|
|
ACPI_GPE_XRUPT_INFO *GpeXruptList);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvUpdateGpeEnableMask (
|
|
ACPI_GPE_EVENT_INFO *GpeEventInfo);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvEnableGpe (
|
|
ACPI_GPE_EVENT_INFO *GpeEventInfo);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvAddGpeReference (
|
|
ACPI_GPE_EVENT_INFO *GpeEventInfo);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvRemoveGpeReference (
|
|
ACPI_GPE_EVENT_INFO *GpeEventInfo);
|
|
|
|
ACPI_GPE_EVENT_INFO *
|
|
AcpiEvGetGpeEventInfo (
|
|
ACPI_HANDLE GpeDevice,
|
|
UINT32 GpeNumber);
|
|
|
|
ACPI_GPE_EVENT_INFO *
|
|
AcpiEvLowGetGpeInfo (
|
|
UINT32 GpeNumber,
|
|
ACPI_GPE_BLOCK_INFO *GpeBlock);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvFinishGpe (
|
|
ACPI_GPE_EVENT_INFO *GpeEventInfo);
|
|
|
|
|
|
/*
|
|
* evgpeblk - Upper-level GPE block support
|
|
*/
|
|
ACPI_STATUS
|
|
AcpiEvCreateGpeBlock (
|
|
ACPI_NAMESPACE_NODE *GpeDevice,
|
|
UINT64 Address,
|
|
UINT8 SpaceId,
|
|
UINT32 RegisterCount,
|
|
UINT16 GpeBlockBaseNumber,
|
|
UINT32 InterruptNumber,
|
|
ACPI_GPE_BLOCK_INFO **ReturnGpeBlock);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvInitializeGpeBlock (
|
|
ACPI_GPE_XRUPT_INFO *GpeXruptInfo,
|
|
ACPI_GPE_BLOCK_INFO *GpeBlock,
|
|
void *Context);
|
|
|
|
ACPI_HW_DEPENDENT_RETURN_OK (
|
|
ACPI_STATUS
|
|
AcpiEvDeleteGpeBlock (
|
|
ACPI_GPE_BLOCK_INFO *GpeBlock))
|
|
|
|
UINT32
|
|
AcpiEvGpeDispatch (
|
|
ACPI_NAMESPACE_NODE *GpeDevice,
|
|
ACPI_GPE_EVENT_INFO *GpeEventInfo,
|
|
UINT32 GpeNumber);
|
|
|
|
|
|
/*
|
|
* evgpeinit - GPE initialization and update
|
|
*/
|
|
ACPI_STATUS
|
|
AcpiEvGpeInitialize (
|
|
void);
|
|
|
|
ACPI_HW_DEPENDENT_RETURN_VOID (
|
|
void
|
|
AcpiEvUpdateGpes (
|
|
ACPI_OWNER_ID TableOwnerId))
|
|
|
|
ACPI_STATUS
|
|
AcpiEvMatchGpeMethod (
|
|
ACPI_HANDLE ObjHandle,
|
|
UINT32 Level,
|
|
void *Context,
|
|
void **ReturnValue);
|
|
|
|
|
|
/*
|
|
* evgpeutil - GPE utilities
|
|
*/
|
|
ACPI_STATUS
|
|
AcpiEvWalkGpeList (
|
|
ACPI_GPE_CALLBACK GpeWalkCallback,
|
|
void *Context);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvGetGpeDevice (
|
|
ACPI_GPE_XRUPT_INFO *GpeXruptInfo,
|
|
ACPI_GPE_BLOCK_INFO *GpeBlock,
|
|
void *Context);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvGetGpeXruptBlock (
|
|
UINT32 InterruptNumber,
|
|
ACPI_GPE_XRUPT_INFO **GpeXruptBlock);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvDeleteGpeXrupt (
|
|
ACPI_GPE_XRUPT_INFO *GpeXrupt);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvDeleteGpeHandlers (
|
|
ACPI_GPE_XRUPT_INFO *GpeXruptInfo,
|
|
ACPI_GPE_BLOCK_INFO *GpeBlock,
|
|
void *Context);
|
|
|
|
|
|
/*
|
|
* evhandler - Address space handling
|
|
*/
|
|
ACPI_OPERAND_OBJECT *
|
|
AcpiEvFindRegionHandler (
|
|
ACPI_ADR_SPACE_TYPE SpaceId,
|
|
ACPI_OPERAND_OBJECT *HandlerObj);
|
|
|
|
BOOLEAN
|
|
AcpiEvHasDefaultHandler (
|
|
ACPI_NAMESPACE_NODE *Node,
|
|
ACPI_ADR_SPACE_TYPE SpaceId);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvInstallRegionHandlers (
|
|
void);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvInstallSpaceHandler (
|
|
ACPI_NAMESPACE_NODE *Node,
|
|
ACPI_ADR_SPACE_TYPE SpaceId,
|
|
ACPI_ADR_SPACE_HANDLER Handler,
|
|
ACPI_ADR_SPACE_SETUP Setup,
|
|
void *Context);
|
|
|
|
|
|
/*
|
|
* evregion - Operation region support
|
|
*/
|
|
ACPI_STATUS
|
|
AcpiEvInitializeOpRegions (
|
|
void);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvAddressSpaceDispatch (
|
|
ACPI_OPERAND_OBJECT *RegionObj,
|
|
ACPI_OPERAND_OBJECT *FieldObj,
|
|
UINT32 Function,
|
|
UINT32 RegionOffset,
|
|
UINT32 BitWidth,
|
|
UINT64 *Value);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvAttachRegion (
|
|
ACPI_OPERAND_OBJECT *HandlerObj,
|
|
ACPI_OPERAND_OBJECT *RegionObj,
|
|
BOOLEAN AcpiNsIsLocked);
|
|
|
|
void
|
|
AcpiEvDetachRegion (
|
|
ACPI_OPERAND_OBJECT *RegionObj,
|
|
BOOLEAN AcpiNsIsLocked);
|
|
|
|
void
|
|
AcpiEvExecuteRegMethods (
|
|
ACPI_NAMESPACE_NODE *Node,
|
|
ACPI_ADR_SPACE_TYPE SpaceId,
|
|
UINT32 Function);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvExecuteRegMethod (
|
|
ACPI_OPERAND_OBJECT *RegionObj,
|
|
UINT32 Function);
|
|
|
|
|
|
/*
|
|
* evregini - Region initialization and setup
|
|
*/
|
|
ACPI_STATUS
|
|
AcpiEvSystemMemoryRegionSetup (
|
|
ACPI_HANDLE Handle,
|
|
UINT32 Function,
|
|
void *HandlerContext,
|
|
void **RegionContext);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvIoSpaceRegionSetup (
|
|
ACPI_HANDLE Handle,
|
|
UINT32 Function,
|
|
void *HandlerContext,
|
|
void **RegionContext);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvPciConfigRegionSetup (
|
|
ACPI_HANDLE Handle,
|
|
UINT32 Function,
|
|
void *HandlerContext,
|
|
void **RegionContext);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvCmosRegionSetup (
|
|
ACPI_HANDLE Handle,
|
|
UINT32 Function,
|
|
void *HandlerContext,
|
|
void **RegionContext);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvPciBarRegionSetup (
|
|
ACPI_HANDLE Handle,
|
|
UINT32 Function,
|
|
void *HandlerContext,
|
|
void **RegionContext);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvDefaultRegionSetup (
|
|
ACPI_HANDLE Handle,
|
|
UINT32 Function,
|
|
void *HandlerContext,
|
|
void **RegionContext);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvInitializeRegion (
|
|
ACPI_OPERAND_OBJECT *RegionObj,
|
|
BOOLEAN AcpiNsLocked);
|
|
|
|
|
|
/*
|
|
* evsci - SCI (System Control Interrupt) handling/dispatch
|
|
*/
|
|
UINT32 ACPI_SYSTEM_XFACE
|
|
AcpiEvGpeXruptHandler (
|
|
void *Context);
|
|
|
|
UINT32
|
|
AcpiEvSciDispatch (
|
|
void);
|
|
|
|
UINT32
|
|
AcpiEvInstallSciHandler (
|
|
void);
|
|
|
|
ACPI_STATUS
|
|
AcpiEvRemoveAllSciHandlers (
|
|
void);
|
|
|
|
ACPI_HW_DEPENDENT_RETURN_VOID (
|
|
void
|
|
AcpiEvTerminate (
|
|
void))
|
|
|
|
#endif /* __ACEVENTS_H__ */
|