1a9f12690SJung-uk Kim /****************************************************************************** 2a9f12690SJung-uk Kim * 3a9f12690SJung-uk Kim * Name: acevents.h - Event subcomponent prototypes and defines 4a9f12690SJung-uk Kim * 5a9f12690SJung-uk Kim *****************************************************************************/ 6a9f12690SJung-uk Kim 7d244b227SJung-uk Kim /* 8*f8146b88SJung-uk Kim * Copyright (C) 2000 - 2016, Intel Corp. 9a9f12690SJung-uk Kim * All rights reserved. 10a9f12690SJung-uk Kim * 11d244b227SJung-uk Kim * Redistribution and use in source and binary forms, with or without 12d244b227SJung-uk Kim * modification, are permitted provided that the following conditions 13d244b227SJung-uk Kim * are met: 14d244b227SJung-uk Kim * 1. Redistributions of source code must retain the above copyright 15d244b227SJung-uk Kim * notice, this list of conditions, and the following disclaimer, 16d244b227SJung-uk Kim * without modification. 17d244b227SJung-uk Kim * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18d244b227SJung-uk Kim * substantially similar to the "NO WARRANTY" disclaimer below 19d244b227SJung-uk Kim * ("Disclaimer") and any redistribution must be conditioned upon 20d244b227SJung-uk Kim * including a substantially similar Disclaimer requirement for further 21d244b227SJung-uk Kim * binary redistribution. 22d244b227SJung-uk Kim * 3. Neither the names of the above-listed copyright holders nor the names 23d244b227SJung-uk Kim * of any contributors may be used to endorse or promote products derived 24d244b227SJung-uk Kim * from this software without specific prior written permission. 25a9f12690SJung-uk Kim * 26d244b227SJung-uk Kim * Alternatively, this software may be distributed under the terms of the 27d244b227SJung-uk Kim * GNU General Public License ("GPL") version 2 as published by the Free 28d244b227SJung-uk Kim * Software Foundation. 29a9f12690SJung-uk Kim * 30d244b227SJung-uk Kim * NO WARRANTY 31d244b227SJung-uk Kim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32d244b227SJung-uk Kim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33d244b227SJung-uk Kim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34d244b227SJung-uk Kim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35d244b227SJung-uk Kim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36d244b227SJung-uk Kim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37d244b227SJung-uk Kim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38d244b227SJung-uk Kim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39d244b227SJung-uk Kim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40d244b227SJung-uk Kim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41d244b227SJung-uk Kim * POSSIBILITY OF SUCH DAMAGES. 42d244b227SJung-uk Kim */ 43a9f12690SJung-uk Kim 44a9f12690SJung-uk Kim #ifndef __ACEVENTS_H__ 45a9f12690SJung-uk Kim #define __ACEVENTS_H__ 46a9f12690SJung-uk Kim 47a9f12690SJung-uk Kim 48a9f12690SJung-uk Kim /* 49a9f12690SJung-uk Kim * evevent 50a9f12690SJung-uk Kim */ 51a9f12690SJung-uk Kim ACPI_STATUS 52a9f12690SJung-uk Kim AcpiEvInitializeEvents ( 53a9f12690SJung-uk Kim void); 54a9f12690SJung-uk Kim 55a9f12690SJung-uk Kim ACPI_STATUS 56a9f12690SJung-uk Kim AcpiEvInstallXruptHandlers ( 57a9f12690SJung-uk Kim void); 58a9f12690SJung-uk Kim 59a9f12690SJung-uk Kim UINT32 60a9f12690SJung-uk Kim AcpiEvFixedEventDetect ( 61a9f12690SJung-uk Kim void); 62a9f12690SJung-uk Kim 63a9f12690SJung-uk Kim 64a9f12690SJung-uk Kim /* 65a9f12690SJung-uk Kim * evmisc 66a9f12690SJung-uk Kim */ 67a9f12690SJung-uk Kim BOOLEAN 68a9f12690SJung-uk Kim AcpiEvIsNotifyObject ( 69a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *Node); 70a9f12690SJung-uk Kim 71d052a1ccSJung-uk Kim UINT32 72d052a1ccSJung-uk Kim AcpiEvGetGpeNumberIndex ( 73d052a1ccSJung-uk Kim UINT32 GpeNumber); 74d052a1ccSJung-uk Kim 75d052a1ccSJung-uk Kim ACPI_STATUS 76d052a1ccSJung-uk Kim AcpiEvQueueNotifyRequest ( 77d052a1ccSJung-uk Kim ACPI_NAMESPACE_NODE *Node, 78d052a1ccSJung-uk Kim UINT32 NotifyValue); 79d052a1ccSJung-uk Kim 80d052a1ccSJung-uk Kim 81d052a1ccSJung-uk Kim /* 82d052a1ccSJung-uk Kim * evglock - Global Lock support 83d052a1ccSJung-uk Kim */ 84d052a1ccSJung-uk Kim ACPI_STATUS 85d052a1ccSJung-uk Kim AcpiEvInitGlobalLockHandler ( 86d052a1ccSJung-uk Kim void); 87d052a1ccSJung-uk Kim 88a159c266SJung-uk Kim ACPI_HW_DEPENDENT_RETURN_OK ( 89a9f12690SJung-uk Kim ACPI_STATUS 90a9f12690SJung-uk Kim AcpiEvAcquireGlobalLock( 91a159c266SJung-uk Kim UINT16 Timeout)) 92a9f12690SJung-uk Kim 93a159c266SJung-uk Kim ACPI_HW_DEPENDENT_RETURN_OK ( 94a9f12690SJung-uk Kim ACPI_STATUS 95a9f12690SJung-uk Kim AcpiEvReleaseGlobalLock( 96a159c266SJung-uk Kim void)) 97a9f12690SJung-uk Kim 98a9f12690SJung-uk Kim ACPI_STATUS 99d052a1ccSJung-uk Kim AcpiEvRemoveGlobalLockHandler ( 100a9f12690SJung-uk Kim void); 101a9f12690SJung-uk Kim 102a9f12690SJung-uk Kim 103a9f12690SJung-uk Kim /* 1043f5e024cSJung-uk Kim * evgpe - Low-level GPE support 105a9f12690SJung-uk Kim */ 1063f5e024cSJung-uk Kim UINT32 1073f5e024cSJung-uk Kim AcpiEvGpeDetect ( 1083f5e024cSJung-uk Kim ACPI_GPE_XRUPT_INFO *GpeXruptList); 1093f5e024cSJung-uk Kim 110a9f12690SJung-uk Kim ACPI_STATUS 111a88e22b7SJung-uk Kim AcpiEvUpdateGpeEnableMask ( 1128c8be05fSJung-uk Kim ACPI_GPE_EVENT_INFO *GpeEventInfo); 113a9f12690SJung-uk Kim 114a9f12690SJung-uk Kim ACPI_STATUS 115a9f12690SJung-uk Kim AcpiEvEnableGpe ( 1168c8be05fSJung-uk Kim ACPI_GPE_EVENT_INFO *GpeEventInfo); 117a9f12690SJung-uk Kim 1185a77b11bSJung-uk Kim ACPI_STATUS 1195a77b11bSJung-uk Kim AcpiEvAddGpeReference ( 1205a77b11bSJung-uk Kim ACPI_GPE_EVENT_INFO *GpeEventInfo); 1215a77b11bSJung-uk Kim 1225a77b11bSJung-uk Kim ACPI_STATUS 1235a77b11bSJung-uk Kim AcpiEvRemoveGpeReference ( 1245a77b11bSJung-uk Kim ACPI_GPE_EVENT_INFO *GpeEventInfo); 1255a77b11bSJung-uk Kim 126a9f12690SJung-uk Kim ACPI_GPE_EVENT_INFO * 127a9f12690SJung-uk Kim AcpiEvGetGpeEventInfo ( 128a9f12690SJung-uk Kim ACPI_HANDLE GpeDevice, 129a9f12690SJung-uk Kim UINT32 GpeNumber); 130a9f12690SJung-uk Kim 1318c8be05fSJung-uk Kim ACPI_GPE_EVENT_INFO * 1328c8be05fSJung-uk Kim AcpiEvLowGetGpeInfo ( 1338c8be05fSJung-uk Kim UINT32 GpeNumber, 1348c8be05fSJung-uk Kim ACPI_GPE_BLOCK_INFO *GpeBlock); 1358c8be05fSJung-uk Kim 1365a77b11bSJung-uk Kim ACPI_STATUS 1375a77b11bSJung-uk Kim AcpiEvFinishGpe ( 1385a77b11bSJung-uk Kim ACPI_GPE_EVENT_INFO *GpeEventInfo); 1395a77b11bSJung-uk Kim 140a9f12690SJung-uk Kim 141a9f12690SJung-uk Kim /* 1423f5e024cSJung-uk Kim * evgpeblk - Upper-level GPE block support 143a9f12690SJung-uk Kim */ 144a9f12690SJung-uk Kim ACPI_STATUS 145a9f12690SJung-uk Kim AcpiEvCreateGpeBlock ( 146a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *GpeDevice, 147313a0c13SJung-uk Kim UINT64 Address, 148313a0c13SJung-uk Kim UINT8 SpaceId, 149a9f12690SJung-uk Kim UINT32 RegisterCount, 150313a0c13SJung-uk Kim UINT16 GpeBlockBaseNumber, 151a9f12690SJung-uk Kim UINT32 InterruptNumber, 152a9f12690SJung-uk Kim ACPI_GPE_BLOCK_INFO **ReturnGpeBlock); 153a9f12690SJung-uk Kim 154a9f12690SJung-uk Kim ACPI_STATUS 155a9f12690SJung-uk Kim AcpiEvInitializeGpeBlock ( 1565a77b11bSJung-uk Kim ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 1575a77b11bSJung-uk Kim ACPI_GPE_BLOCK_INFO *GpeBlock, 1585a77b11bSJung-uk Kim void *Context); 159a9f12690SJung-uk Kim 160a159c266SJung-uk Kim ACPI_HW_DEPENDENT_RETURN_OK ( 161a9f12690SJung-uk Kim ACPI_STATUS 162a9f12690SJung-uk Kim AcpiEvDeleteGpeBlock ( 163a159c266SJung-uk Kim ACPI_GPE_BLOCK_INFO *GpeBlock)) 164a9f12690SJung-uk Kim 165a9f12690SJung-uk Kim UINT32 166a9f12690SJung-uk Kim AcpiEvGpeDispatch ( 1675a77b11bSJung-uk Kim ACPI_NAMESPACE_NODE *GpeDevice, 168a9f12690SJung-uk Kim ACPI_GPE_EVENT_INFO *GpeEventInfo, 169a9f12690SJung-uk Kim UINT32 GpeNumber); 170a9f12690SJung-uk Kim 171efcc2a30SJung-uk Kim 1723f5e024cSJung-uk Kim /* 1733f5e024cSJung-uk Kim * evgpeinit - GPE initialization and update 1743f5e024cSJung-uk Kim */ 175a9f12690SJung-uk Kim ACPI_STATUS 176a9f12690SJung-uk Kim AcpiEvGpeInitialize ( 177a9f12690SJung-uk Kim void); 178a9f12690SJung-uk Kim 179a159c266SJung-uk Kim ACPI_HW_DEPENDENT_RETURN_VOID ( 1803f5e024cSJung-uk Kim void 1813f5e024cSJung-uk Kim AcpiEvUpdateGpes ( 182a159c266SJung-uk Kim ACPI_OWNER_ID TableOwnerId)) 1833f5e024cSJung-uk Kim 1843f5e024cSJung-uk Kim ACPI_STATUS 1853f5e024cSJung-uk Kim AcpiEvMatchGpeMethod ( 1863f5e024cSJung-uk Kim ACPI_HANDLE ObjHandle, 1873f5e024cSJung-uk Kim UINT32 Level, 1883f5e024cSJung-uk Kim void *Context, 1893f5e024cSJung-uk Kim void **ReturnValue); 1903f5e024cSJung-uk Kim 191efcc2a30SJung-uk Kim 1923f5e024cSJung-uk Kim /* 1933f5e024cSJung-uk Kim * evgpeutil - GPE utilities 1943f5e024cSJung-uk Kim */ 1953f5e024cSJung-uk Kim ACPI_STATUS 1963f5e024cSJung-uk Kim AcpiEvWalkGpeList ( 1973f5e024cSJung-uk Kim ACPI_GPE_CALLBACK GpeWalkCallback, 1983f5e024cSJung-uk Kim void *Context); 1993f5e024cSJung-uk Kim 2005a77b11bSJung-uk Kim ACPI_STATUS 2015a77b11bSJung-uk Kim AcpiEvGetGpeDevice ( 2025a77b11bSJung-uk Kim ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 2035a77b11bSJung-uk Kim ACPI_GPE_BLOCK_INFO *GpeBlock, 2045a77b11bSJung-uk Kim void *Context); 2055a77b11bSJung-uk Kim 206313a0c13SJung-uk Kim ACPI_STATUS 2073f5e024cSJung-uk Kim AcpiEvGetGpeXruptBlock ( 208313a0c13SJung-uk Kim UINT32 InterruptNumber, 209313a0c13SJung-uk Kim ACPI_GPE_XRUPT_INFO **GpeXruptBlock); 2103f5e024cSJung-uk Kim 2113f5e024cSJung-uk Kim ACPI_STATUS 2123f5e024cSJung-uk Kim AcpiEvDeleteGpeXrupt ( 2133f5e024cSJung-uk Kim ACPI_GPE_XRUPT_INFO *GpeXrupt); 2143f5e024cSJung-uk Kim 2153f5e024cSJung-uk Kim ACPI_STATUS 2163f5e024cSJung-uk Kim AcpiEvDeleteGpeHandlers ( 2173f5e024cSJung-uk Kim ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 2183f5e024cSJung-uk Kim ACPI_GPE_BLOCK_INFO *GpeBlock, 2193f5e024cSJung-uk Kim void *Context); 2203f5e024cSJung-uk Kim 221a9f12690SJung-uk Kim 222a9f12690SJung-uk Kim /* 223efcc2a30SJung-uk Kim * evhandler - Address space handling 224a9f12690SJung-uk Kim */ 225*f8146b88SJung-uk Kim ACPI_OPERAND_OBJECT * 226*f8146b88SJung-uk Kim AcpiEvFindRegionHandler ( 227*f8146b88SJung-uk Kim ACPI_ADR_SPACE_TYPE SpaceId, 228*f8146b88SJung-uk Kim ACPI_OPERAND_OBJECT *HandlerObj); 229*f8146b88SJung-uk Kim 230efcc2a30SJung-uk Kim BOOLEAN 231efcc2a30SJung-uk Kim AcpiEvHasDefaultHandler ( 232efcc2a30SJung-uk Kim ACPI_NAMESPACE_NODE *Node, 233efcc2a30SJung-uk Kim ACPI_ADR_SPACE_TYPE SpaceId); 234efcc2a30SJung-uk Kim 235a9f12690SJung-uk Kim ACPI_STATUS 236a9f12690SJung-uk Kim AcpiEvInstallRegionHandlers ( 237a9f12690SJung-uk Kim void); 238a9f12690SJung-uk Kim 239a9f12690SJung-uk Kim ACPI_STATUS 240efcc2a30SJung-uk Kim AcpiEvInstallSpaceHandler ( 241efcc2a30SJung-uk Kim ACPI_NAMESPACE_NODE *Node, 242efcc2a30SJung-uk Kim ACPI_ADR_SPACE_TYPE SpaceId, 243efcc2a30SJung-uk Kim ACPI_ADR_SPACE_HANDLER Handler, 244efcc2a30SJung-uk Kim ACPI_ADR_SPACE_SETUP Setup, 245efcc2a30SJung-uk Kim void *Context); 246efcc2a30SJung-uk Kim 247efcc2a30SJung-uk Kim 248efcc2a30SJung-uk Kim /* 249efcc2a30SJung-uk Kim * evregion - Operation region support 250efcc2a30SJung-uk Kim */ 251efcc2a30SJung-uk Kim ACPI_STATUS 252a9f12690SJung-uk Kim AcpiEvInitializeOpRegions ( 253a9f12690SJung-uk Kim void); 254a9f12690SJung-uk Kim 255a9f12690SJung-uk Kim ACPI_STATUS 256a9f12690SJung-uk Kim AcpiEvAddressSpaceDispatch ( 257a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *RegionObj, 2583f0275a0SJung-uk Kim ACPI_OPERAND_OBJECT *FieldObj, 259a9f12690SJung-uk Kim UINT32 Function, 260a9f12690SJung-uk Kim UINT32 RegionOffset, 261a9f12690SJung-uk Kim UINT32 BitWidth, 2629a179dd8SJung-uk Kim UINT64 *Value); 263a9f12690SJung-uk Kim 264a9f12690SJung-uk Kim ACPI_STATUS 265a9f12690SJung-uk Kim AcpiEvAttachRegion ( 266a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *HandlerObj, 267a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *RegionObj, 268a9f12690SJung-uk Kim BOOLEAN AcpiNsIsLocked); 269a9f12690SJung-uk Kim 270a9f12690SJung-uk Kim void 271a9f12690SJung-uk Kim AcpiEvDetachRegion ( 272a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *RegionObj, 273a9f12690SJung-uk Kim BOOLEAN AcpiNsIsLocked); 274a9f12690SJung-uk Kim 275*f8146b88SJung-uk Kim void 276a9f12690SJung-uk Kim AcpiEvExecuteRegMethods ( 277a9f12690SJung-uk Kim ACPI_NAMESPACE_NODE *Node, 278*f8146b88SJung-uk Kim ACPI_ADR_SPACE_TYPE SpaceId, 279*f8146b88SJung-uk Kim UINT32 Function); 280a9f12690SJung-uk Kim 281a9f12690SJung-uk Kim ACPI_STATUS 282a9f12690SJung-uk Kim AcpiEvExecuteRegMethod ( 283a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *RegionObj, 284a9f12690SJung-uk Kim UINT32 Function); 285a9f12690SJung-uk Kim 286a9f12690SJung-uk Kim 287a9f12690SJung-uk Kim /* 288a9f12690SJung-uk Kim * evregini - Region initialization and setup 289a9f12690SJung-uk Kim */ 290a9f12690SJung-uk Kim ACPI_STATUS 291a9f12690SJung-uk Kim AcpiEvSystemMemoryRegionSetup ( 292a9f12690SJung-uk Kim ACPI_HANDLE Handle, 293a9f12690SJung-uk Kim UINT32 Function, 294a9f12690SJung-uk Kim void *HandlerContext, 295a9f12690SJung-uk Kim void **RegionContext); 296a9f12690SJung-uk Kim 297a9f12690SJung-uk Kim ACPI_STATUS 298a9f12690SJung-uk Kim AcpiEvIoSpaceRegionSetup ( 299a9f12690SJung-uk Kim ACPI_HANDLE Handle, 300a9f12690SJung-uk Kim UINT32 Function, 301a9f12690SJung-uk Kim void *HandlerContext, 302a9f12690SJung-uk Kim void **RegionContext); 303a9f12690SJung-uk Kim 304a9f12690SJung-uk Kim ACPI_STATUS 305a9f12690SJung-uk Kim AcpiEvPciConfigRegionSetup ( 306a9f12690SJung-uk Kim ACPI_HANDLE Handle, 307a9f12690SJung-uk Kim UINT32 Function, 308a9f12690SJung-uk Kim void *HandlerContext, 309a9f12690SJung-uk Kim void **RegionContext); 310a9f12690SJung-uk Kim 311a9f12690SJung-uk Kim ACPI_STATUS 312a9f12690SJung-uk Kim AcpiEvCmosRegionSetup ( 313a9f12690SJung-uk Kim ACPI_HANDLE Handle, 314a9f12690SJung-uk Kim UINT32 Function, 315a9f12690SJung-uk Kim void *HandlerContext, 316a9f12690SJung-uk Kim void **RegionContext); 317a9f12690SJung-uk Kim 318a9f12690SJung-uk Kim ACPI_STATUS 319a9f12690SJung-uk Kim AcpiEvPciBarRegionSetup ( 320a9f12690SJung-uk Kim ACPI_HANDLE Handle, 321a9f12690SJung-uk Kim UINT32 Function, 322a9f12690SJung-uk Kim void *HandlerContext, 323a9f12690SJung-uk Kim void **RegionContext); 324a9f12690SJung-uk Kim 325a9f12690SJung-uk Kim ACPI_STATUS 326a9f12690SJung-uk Kim AcpiEvDefaultRegionSetup ( 327a9f12690SJung-uk Kim ACPI_HANDLE Handle, 328a9f12690SJung-uk Kim UINT32 Function, 329a9f12690SJung-uk Kim void *HandlerContext, 330a9f12690SJung-uk Kim void **RegionContext); 331a9f12690SJung-uk Kim 332a9f12690SJung-uk Kim ACPI_STATUS 333a9f12690SJung-uk Kim AcpiEvInitializeRegion ( 334a9f12690SJung-uk Kim ACPI_OPERAND_OBJECT *RegionObj, 335a9f12690SJung-uk Kim BOOLEAN AcpiNsLocked); 336a9f12690SJung-uk Kim 337a9f12690SJung-uk Kim 338a9f12690SJung-uk Kim /* 339a9f12690SJung-uk Kim * evsci - SCI (System Control Interrupt) handling/dispatch 340a9f12690SJung-uk Kim */ 341a9f12690SJung-uk Kim UINT32 ACPI_SYSTEM_XFACE 342a9f12690SJung-uk Kim AcpiEvGpeXruptHandler ( 343a9f12690SJung-uk Kim void *Context); 344a9f12690SJung-uk Kim 345a9f12690SJung-uk Kim UINT32 34679c6d946SJung-uk Kim AcpiEvSciDispatch ( 34779c6d946SJung-uk Kim void); 34879c6d946SJung-uk Kim 34979c6d946SJung-uk Kim UINT32 350a9f12690SJung-uk Kim AcpiEvInstallSciHandler ( 351a9f12690SJung-uk Kim void); 352a9f12690SJung-uk Kim 353a9f12690SJung-uk Kim ACPI_STATUS 35479c6d946SJung-uk Kim AcpiEvRemoveAllSciHandlers ( 355a9f12690SJung-uk Kim void); 356a9f12690SJung-uk Kim 357a159c266SJung-uk Kim ACPI_HW_DEPENDENT_RETURN_VOID ( 358a9f12690SJung-uk Kim void 359a9f12690SJung-uk Kim AcpiEvTerminate ( 360a159c266SJung-uk Kim void)) 361a9f12690SJung-uk Kim 362a9f12690SJung-uk Kim #endif /* __ACEVENTS_H__ */ 363