167754Smsmith/****************************************************************************** 267754Smsmith * 367754Smsmith * Name: acevents.h - Event subcomponent prototypes and defines 467754Smsmith * 567754Smsmith *****************************************************************************/ 667754Smsmith 7217365Sjkim/* 8306536Sjkim * Copyright (C) 2000 - 2016, Intel Corp. 970243Smsmith * All rights reserved. 1067754Smsmith * 11217365Sjkim * Redistribution and use in source and binary forms, with or without 12217365Sjkim * modification, are permitted provided that the following conditions 13217365Sjkim * are met: 14217365Sjkim * 1. Redistributions of source code must retain the above copyright 15217365Sjkim * notice, this list of conditions, and the following disclaimer, 16217365Sjkim * without modification. 17217365Sjkim * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18217365Sjkim * substantially similar to the "NO WARRANTY" disclaimer below 19217365Sjkim * ("Disclaimer") and any redistribution must be conditioned upon 20217365Sjkim * including a substantially similar Disclaimer requirement for further 21217365Sjkim * binary redistribution. 22217365Sjkim * 3. Neither the names of the above-listed copyright holders nor the names 23217365Sjkim * of any contributors may be used to endorse or promote products derived 24217365Sjkim * from this software without specific prior written permission. 2567754Smsmith * 26217365Sjkim * Alternatively, this software may be distributed under the terms of the 27217365Sjkim * GNU General Public License ("GPL") version 2 as published by the Free 28217365Sjkim * Software Foundation. 2967754Smsmith * 30217365Sjkim * NO WARRANTY 31217365Sjkim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32217365Sjkim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33217365Sjkim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34217365Sjkim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35217365Sjkim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36217365Sjkim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37217365Sjkim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38217365Sjkim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39217365Sjkim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40217365Sjkim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41217365Sjkim * POSSIBILITY OF SUCH DAMAGES. 42217365Sjkim */ 4367754Smsmith 4467754Smsmith#ifndef __ACEVENTS_H__ 4567754Smsmith#define __ACEVENTS_H__ 4667754Smsmith 4767754Smsmith 48151937Sjkim/* 49151937Sjkim * evevent 50151937Sjkim */ 5167754SmsmithACPI_STATUS 52129684SnjlAcpiEvInitializeEvents ( 5367754Smsmith void); 5467754Smsmith 5591116SmsmithACPI_STATUS 56129684SnjlAcpiEvInstallXruptHandlers ( 5791116Smsmith void); 5867754Smsmith 5967754SmsmithUINT32 6067754SmsmithAcpiEvFixedEventDetect ( 6167754Smsmith void); 6267754Smsmith 6367754Smsmith 6467754Smsmith/* 65151937Sjkim * evmisc 6667754Smsmith */ 6799146SiwasakiBOOLEAN 6899146SiwasakiAcpiEvIsNotifyObject ( 6999146Siwasaki ACPI_NAMESPACE_NODE *Node); 7099146Siwasaki 71220663SjkimUINT32 72220663SjkimAcpiEvGetGpeNumberIndex ( 73220663Sjkim UINT32 GpeNumber); 74220663Sjkim 7567754SmsmithACPI_STATUS 76220663SjkimAcpiEvQueueNotifyRequest ( 77220663Sjkim ACPI_NAMESPACE_NODE *Node, 78220663Sjkim UINT32 NotifyValue); 79220663Sjkim 80220663Sjkim 81220663Sjkim/* 82220663Sjkim * evglock - Global Lock support 83220663Sjkim */ 84220663SjkimACPI_STATUS 85220663SjkimAcpiEvInitGlobalLockHandler ( 86220663Sjkim void); 87220663Sjkim 88231844SjkimACPI_HW_DEPENDENT_RETURN_OK ( 89220663SjkimACPI_STATUS 9067754SmsmithAcpiEvAcquireGlobalLock( 91231844Sjkim UINT16 Timeout)) 9267754Smsmith 93231844SjkimACPI_HW_DEPENDENT_RETURN_OK ( 9499679SiwasakiACPI_STATUS 9567754SmsmithAcpiEvReleaseGlobalLock( 96231844Sjkim void)) 9767754Smsmith 9867754SmsmithACPI_STATUS 99220663SjkimAcpiEvRemoveGlobalLockHandler ( 10067754Smsmith void); 10167754Smsmith 10291116Smsmith 10367754Smsmith/* 104207344Sjkim * evgpe - Low-level GPE support 10567754Smsmith */ 106207344SjkimUINT32 107207344SjkimAcpiEvGpeDetect ( 108207344Sjkim ACPI_GPE_XRUPT_INFO *GpeXruptList); 109207344Sjkim 110117521SnjlACPI_STATUS 111209746SjkimAcpiEvUpdateGpeEnableMask ( 112206117Sjkim ACPI_GPE_EVENT_INFO *GpeEventInfo); 113129684Snjl 114129684SnjlACPI_STATUS 115129684SnjlAcpiEvEnableGpe ( 116206117Sjkim ACPI_GPE_EVENT_INFO *GpeEventInfo); 117129684Snjl 118216471SjkimACPI_STATUS 119216471SjkimAcpiEvAddGpeReference ( 120216471Sjkim ACPI_GPE_EVENT_INFO *GpeEventInfo); 121216471Sjkim 122216471SjkimACPI_STATUS 123216471SjkimAcpiEvRemoveGpeReference ( 124216471Sjkim ACPI_GPE_EVENT_INFO *GpeEventInfo); 125216471Sjkim 126114237SnjlACPI_GPE_EVENT_INFO * 127114237SnjlAcpiEvGetGpeEventInfo ( 128117521Snjl ACPI_HANDLE GpeDevice, 129114237Snjl UINT32 GpeNumber); 130114237Snjl 131206117SjkimACPI_GPE_EVENT_INFO * 132206117SjkimAcpiEvLowGetGpeInfo ( 133206117Sjkim UINT32 GpeNumber, 134206117Sjkim ACPI_GPE_BLOCK_INFO *GpeBlock); 135151937Sjkim 136216471SjkimACPI_STATUS 137216471SjkimAcpiEvFinishGpe ( 138216471Sjkim ACPI_GPE_EVENT_INFO *GpeEventInfo); 139206117Sjkim 140216471Sjkim 141151937Sjkim/* 142207344Sjkim * evgpeblk - Upper-level GPE block support 143151937Sjkim */ 14467754SmsmithACPI_STATUS 145117521SnjlAcpiEvCreateGpeBlock ( 146117521Snjl ACPI_NAMESPACE_NODE *GpeDevice, 147281075Sdim UINT64 Address, 148281075Sdim UINT8 SpaceId, 149117521Snjl UINT32 RegisterCount, 150281075Sdim UINT16 GpeBlockBaseNumber, 151151937Sjkim UINT32 InterruptNumber, 152117521Snjl ACPI_GPE_BLOCK_INFO **ReturnGpeBlock); 153117521Snjl 154117521SnjlACPI_STATUS 155167802SjkimAcpiEvInitializeGpeBlock ( 156216471Sjkim ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 157216471Sjkim ACPI_GPE_BLOCK_INFO *GpeBlock, 158216471Sjkim void *Context); 159167802Sjkim 160231844SjkimACPI_HW_DEPENDENT_RETURN_OK ( 161167802SjkimACPI_STATUS 162117521SnjlAcpiEvDeleteGpeBlock ( 163231844Sjkim ACPI_GPE_BLOCK_INFO *GpeBlock)) 164117521Snjl 16567754SmsmithUINT32 16667754SmsmithAcpiEvGpeDispatch ( 167216471Sjkim ACPI_NAMESPACE_NODE *GpeDevice, 168117521Snjl ACPI_GPE_EVENT_INFO *GpeEventInfo, 169117521Snjl UINT32 GpeNumber); 17067754Smsmith 171245582Sjkim 172207344Sjkim/* 173207344Sjkim * evgpeinit - GPE initialization and update 174207344Sjkim */ 175129684SnjlACPI_STATUS 176151937SjkimAcpiEvGpeInitialize ( 177151937Sjkim void); 178151937Sjkim 179231844SjkimACPI_HW_DEPENDENT_RETURN_VOID ( 180207344Sjkimvoid 181207344SjkimAcpiEvUpdateGpes ( 182231844Sjkim ACPI_OWNER_ID TableOwnerId)) 183151937Sjkim 184207344SjkimACPI_STATUS 185207344SjkimAcpiEvMatchGpeMethod ( 186207344Sjkim ACPI_HANDLE ObjHandle, 187207344Sjkim UINT32 Level, 188207344Sjkim void *Context, 189207344Sjkim void **ReturnValue); 190207344Sjkim 191245582Sjkim 19267754Smsmith/* 193207344Sjkim * evgpeutil - GPE utilities 194207344Sjkim */ 195207344SjkimACPI_STATUS 196207344SjkimAcpiEvWalkGpeList ( 197207344Sjkim ACPI_GPE_CALLBACK GpeWalkCallback, 198207344Sjkim void *Context); 199207344Sjkim 200216471SjkimACPI_STATUS 201216471SjkimAcpiEvGetGpeDevice ( 202216471Sjkim ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 203216471Sjkim ACPI_GPE_BLOCK_INFO *GpeBlock, 204216471Sjkim void *Context); 205216471Sjkim 206281075SdimACPI_STATUS 207207344SjkimAcpiEvGetGpeXruptBlock ( 208281075Sdim UINT32 InterruptNumber, 209281075Sdim ACPI_GPE_XRUPT_INFO **GpeXruptBlock); 210207344Sjkim 211207344SjkimACPI_STATUS 212207344SjkimAcpiEvDeleteGpeXrupt ( 213207344Sjkim ACPI_GPE_XRUPT_INFO *GpeXrupt); 214207344Sjkim 215207344SjkimACPI_STATUS 216207344SjkimAcpiEvDeleteGpeHandlers ( 217207344Sjkim ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 218207344Sjkim ACPI_GPE_BLOCK_INFO *GpeBlock, 219207344Sjkim void *Context); 220207344Sjkim 221207344Sjkim 222207344Sjkim/* 223245582Sjkim * evhandler - Address space handling 22467754Smsmith */ 225306536SjkimACPI_OPERAND_OBJECT * 226306536SjkimAcpiEvFindRegionHandler ( 227306536Sjkim ACPI_ADR_SPACE_TYPE SpaceId, 228306536Sjkim ACPI_OPERAND_OBJECT *HandlerObj); 229306536Sjkim 230245582SjkimBOOLEAN 231245582SjkimAcpiEvHasDefaultHandler ( 232245582Sjkim ACPI_NAMESPACE_NODE *Node, 233245582Sjkim ACPI_ADR_SPACE_TYPE SpaceId); 234245582Sjkim 23577424SmsmithACPI_STATUS 236129684SnjlAcpiEvInstallRegionHandlers ( 23767754Smsmith void); 23867754Smsmith 23967754SmsmithACPI_STATUS 240245582SjkimAcpiEvInstallSpaceHandler ( 241245582Sjkim ACPI_NAMESPACE_NODE *Node, 242245582Sjkim ACPI_ADR_SPACE_TYPE SpaceId, 243245582Sjkim ACPI_ADR_SPACE_HANDLER Handler, 244245582Sjkim ACPI_ADR_SPACE_SETUP Setup, 245245582Sjkim void *Context); 246245582Sjkim 247245582Sjkim 248245582Sjkim/* 249245582Sjkim * evregion - Operation region support 250245582Sjkim */ 251245582SjkimACPI_STATUS 252129684SnjlAcpiEvInitializeOpRegions ( 253129684Snjl void); 254129684Snjl 255129684SnjlACPI_STATUS 25667754SmsmithAcpiEvAddressSpaceDispatch ( 257228110Sjkim ACPI_OPERAND_OBJECT *RegionObj, 258228110Sjkim ACPI_OPERAND_OBJECT *FieldObj, 25967754Smsmith UINT32 Function, 260193267Sjkim UINT32 RegionOffset, 26167754Smsmith UINT32 BitWidth, 262202771Sjkim UINT64 *Value); 26367754Smsmith 26467754SmsmithACPI_STATUS 26599679SiwasakiAcpiEvAttachRegion ( 26667754Smsmith ACPI_OPERAND_OBJECT *HandlerObj, 26767754Smsmith ACPI_OPERAND_OBJECT *RegionObj, 26867754Smsmith BOOLEAN AcpiNsIsLocked); 26967754Smsmith 27099679Siwasakivoid 27199679SiwasakiAcpiEvDetachRegion ( 272306536Sjkim ACPI_OPERAND_OBJECT *RegionObj, 27399679Siwasaki BOOLEAN AcpiNsIsLocked); 27467754Smsmith 275306536Sjkimvoid 276129684SnjlAcpiEvExecuteRegMethods ( 277129684Snjl ACPI_NAMESPACE_NODE *Node, 278306536Sjkim ACPI_ADR_SPACE_TYPE SpaceId, 279306536Sjkim UINT32 Function); 280129684Snjl 281129684SnjlACPI_STATUS 282123315SnjlAcpiEvExecuteRegMethod ( 283306536Sjkim ACPI_OPERAND_OBJECT *RegionObj, 284123315Snjl UINT32 Function); 28599679Siwasaki 286123315Snjl 28767754Smsmith/* 288151937Sjkim * evregini - Region initialization and setup 28967754Smsmith */ 29067754SmsmithACPI_STATUS 29167754SmsmithAcpiEvSystemMemoryRegionSetup ( 29267754Smsmith ACPI_HANDLE Handle, 29367754Smsmith UINT32 Function, 29467754Smsmith void *HandlerContext, 29567754Smsmith void **RegionContext); 29667754Smsmith 29767754SmsmithACPI_STATUS 29867754SmsmithAcpiEvIoSpaceRegionSetup ( 29967754Smsmith ACPI_HANDLE Handle, 30067754Smsmith UINT32 Function, 30167754Smsmith void *HandlerContext, 30267754Smsmith void **RegionContext); 30367754Smsmith 30467754SmsmithACPI_STATUS 30567754SmsmithAcpiEvPciConfigRegionSetup ( 30667754Smsmith ACPI_HANDLE Handle, 30767754Smsmith UINT32 Function, 30867754Smsmith void *HandlerContext, 30967754Smsmith void **RegionContext); 31067754Smsmith 31167754SmsmithACPI_STATUS 31284491SmsmithAcpiEvCmosRegionSetup ( 31384491Smsmith ACPI_HANDLE Handle, 31484491Smsmith UINT32 Function, 31584491Smsmith void *HandlerContext, 31684491Smsmith void **RegionContext); 31784491Smsmith 31884491SmsmithACPI_STATUS 31984491SmsmithAcpiEvPciBarRegionSetup ( 32084491Smsmith ACPI_HANDLE Handle, 32184491Smsmith UINT32 Function, 32284491Smsmith void *HandlerContext, 32384491Smsmith void **RegionContext); 32484491Smsmith 32584491SmsmithACPI_STATUS 32667754SmsmithAcpiEvDefaultRegionSetup ( 32767754Smsmith ACPI_HANDLE Handle, 32867754Smsmith UINT32 Function, 32967754Smsmith void *HandlerContext, 33067754Smsmith void **RegionContext); 33167754Smsmith 33267754SmsmithACPI_STATUS 33367754SmsmithAcpiEvInitializeRegion ( 33467754Smsmith ACPI_OPERAND_OBJECT *RegionObj, 33567754Smsmith BOOLEAN AcpiNsLocked); 33667754Smsmith 33767754Smsmith 33867754Smsmith/* 339151937Sjkim * evsci - SCI (System Control Interrupt) handling/dispatch 34067754Smsmith */ 341117521SnjlUINT32 ACPI_SYSTEM_XFACE 342117521SnjlAcpiEvGpeXruptHandler ( 343117521Snjl void *Context); 344117521Snjl 34567754SmsmithUINT32 346254745SjkimAcpiEvSciDispatch ( 347254745Sjkim void); 348254745Sjkim 349254745SjkimUINT32 35067754SmsmithAcpiEvInstallSciHandler ( 35167754Smsmith void); 35267754Smsmith 35367754SmsmithACPI_STATUS 354254745SjkimAcpiEvRemoveAllSciHandlers ( 35567754Smsmith void); 35667754Smsmith 357231844SjkimACPI_HW_DEPENDENT_RETURN_VOID ( 35867754Smsmithvoid 35967754SmsmithAcpiEvTerminate ( 360231844Sjkim void)) 36167754Smsmith 36267754Smsmith#endif /* __ACEVENTS_H__ */ 363