acevents.h revision 306536
1/****************************************************************************** 2 * 3 * Name: acevents.h - Event subcomponent prototypes and defines 4 * 5 *****************************************************************************/ 6 7/* 8 * Copyright (C) 2000 - 2016, Intel Corp. 9 * All rights reserved. 10 * 11 * Redistribution and use in source and binary forms, with or without 12 * modification, are permitted provided that the following conditions 13 * are met: 14 * 1. Redistributions of source code must retain the above copyright 15 * notice, this list of conditions, and the following disclaimer, 16 * without modification. 17 * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18 * substantially similar to the "NO WARRANTY" disclaimer below 19 * ("Disclaimer") and any redistribution must be conditioned upon 20 * including a substantially similar Disclaimer requirement for further 21 * binary redistribution. 22 * 3. Neither the names of the above-listed copyright holders nor the names 23 * of any contributors may be used to endorse or promote products derived 24 * from this software without specific prior written permission. 25 * 26 * Alternatively, this software may be distributed under the terms of the 27 * GNU General Public License ("GPL") version 2 as published by the Free 28 * Software Foundation. 29 * 30 * NO WARRANTY 31 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41 * POSSIBILITY OF SUCH DAMAGES. 42 */ 43 44#ifndef __ACEVENTS_H__ 45#define __ACEVENTS_H__ 46 47 48/* 49 * evevent 50 */ 51ACPI_STATUS 52AcpiEvInitializeEvents ( 53 void); 54 55ACPI_STATUS 56AcpiEvInstallXruptHandlers ( 57 void); 58 59UINT32 60AcpiEvFixedEventDetect ( 61 void); 62 63 64/* 65 * evmisc 66 */ 67BOOLEAN 68AcpiEvIsNotifyObject ( 69 ACPI_NAMESPACE_NODE *Node); 70 71UINT32 72AcpiEvGetGpeNumberIndex ( 73 UINT32 GpeNumber); 74 75ACPI_STATUS 76AcpiEvQueueNotifyRequest ( 77 ACPI_NAMESPACE_NODE *Node, 78 UINT32 NotifyValue); 79 80 81/* 82 * evglock - Global Lock support 83 */ 84ACPI_STATUS 85AcpiEvInitGlobalLockHandler ( 86 void); 87 88ACPI_HW_DEPENDENT_RETURN_OK ( 89ACPI_STATUS 90AcpiEvAcquireGlobalLock( 91 UINT16 Timeout)) 92 93ACPI_HW_DEPENDENT_RETURN_OK ( 94ACPI_STATUS 95AcpiEvReleaseGlobalLock( 96 void)) 97 98ACPI_STATUS 99AcpiEvRemoveGlobalLockHandler ( 100 void); 101 102 103/* 104 * evgpe - Low-level GPE support 105 */ 106UINT32 107AcpiEvGpeDetect ( 108 ACPI_GPE_XRUPT_INFO *GpeXruptList); 109 110ACPI_STATUS 111AcpiEvUpdateGpeEnableMask ( 112 ACPI_GPE_EVENT_INFO *GpeEventInfo); 113 114ACPI_STATUS 115AcpiEvEnableGpe ( 116 ACPI_GPE_EVENT_INFO *GpeEventInfo); 117 118ACPI_STATUS 119AcpiEvAddGpeReference ( 120 ACPI_GPE_EVENT_INFO *GpeEventInfo); 121 122ACPI_STATUS 123AcpiEvRemoveGpeReference ( 124 ACPI_GPE_EVENT_INFO *GpeEventInfo); 125 126ACPI_GPE_EVENT_INFO * 127AcpiEvGetGpeEventInfo ( 128 ACPI_HANDLE GpeDevice, 129 UINT32 GpeNumber); 130 131ACPI_GPE_EVENT_INFO * 132AcpiEvLowGetGpeInfo ( 133 UINT32 GpeNumber, 134 ACPI_GPE_BLOCK_INFO *GpeBlock); 135 136ACPI_STATUS 137AcpiEvFinishGpe ( 138 ACPI_GPE_EVENT_INFO *GpeEventInfo); 139 140 141/* 142 * evgpeblk - Upper-level GPE block support 143 */ 144ACPI_STATUS 145AcpiEvCreateGpeBlock ( 146 ACPI_NAMESPACE_NODE *GpeDevice, 147 UINT64 Address, 148 UINT8 SpaceId, 149 UINT32 RegisterCount, 150 UINT16 GpeBlockBaseNumber, 151 UINT32 InterruptNumber, 152 ACPI_GPE_BLOCK_INFO **ReturnGpeBlock); 153 154ACPI_STATUS 155AcpiEvInitializeGpeBlock ( 156 ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 157 ACPI_GPE_BLOCK_INFO *GpeBlock, 158 void *Context); 159 160ACPI_HW_DEPENDENT_RETURN_OK ( 161ACPI_STATUS 162AcpiEvDeleteGpeBlock ( 163 ACPI_GPE_BLOCK_INFO *GpeBlock)) 164 165UINT32 166AcpiEvGpeDispatch ( 167 ACPI_NAMESPACE_NODE *GpeDevice, 168 ACPI_GPE_EVENT_INFO *GpeEventInfo, 169 UINT32 GpeNumber); 170 171 172/* 173 * evgpeinit - GPE initialization and update 174 */ 175ACPI_STATUS 176AcpiEvGpeInitialize ( 177 void); 178 179ACPI_HW_DEPENDENT_RETURN_VOID ( 180void 181AcpiEvUpdateGpes ( 182 ACPI_OWNER_ID TableOwnerId)) 183 184ACPI_STATUS 185AcpiEvMatchGpeMethod ( 186 ACPI_HANDLE ObjHandle, 187 UINT32 Level, 188 void *Context, 189 void **ReturnValue); 190 191 192/* 193 * evgpeutil - GPE utilities 194 */ 195ACPI_STATUS 196AcpiEvWalkGpeList ( 197 ACPI_GPE_CALLBACK GpeWalkCallback, 198 void *Context); 199 200ACPI_STATUS 201AcpiEvGetGpeDevice ( 202 ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 203 ACPI_GPE_BLOCK_INFO *GpeBlock, 204 void *Context); 205 206ACPI_STATUS 207AcpiEvGetGpeXruptBlock ( 208 UINT32 InterruptNumber, 209 ACPI_GPE_XRUPT_INFO **GpeXruptBlock); 210 211ACPI_STATUS 212AcpiEvDeleteGpeXrupt ( 213 ACPI_GPE_XRUPT_INFO *GpeXrupt); 214 215ACPI_STATUS 216AcpiEvDeleteGpeHandlers ( 217 ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 218 ACPI_GPE_BLOCK_INFO *GpeBlock, 219 void *Context); 220 221 222/* 223 * evhandler - Address space handling 224 */ 225ACPI_OPERAND_OBJECT * 226AcpiEvFindRegionHandler ( 227 ACPI_ADR_SPACE_TYPE SpaceId, 228 ACPI_OPERAND_OBJECT *HandlerObj); 229 230BOOLEAN 231AcpiEvHasDefaultHandler ( 232 ACPI_NAMESPACE_NODE *Node, 233 ACPI_ADR_SPACE_TYPE SpaceId); 234 235ACPI_STATUS 236AcpiEvInstallRegionHandlers ( 237 void); 238 239ACPI_STATUS 240AcpiEvInstallSpaceHandler ( 241 ACPI_NAMESPACE_NODE *Node, 242 ACPI_ADR_SPACE_TYPE SpaceId, 243 ACPI_ADR_SPACE_HANDLER Handler, 244 ACPI_ADR_SPACE_SETUP Setup, 245 void *Context); 246 247 248/* 249 * evregion - Operation region support 250 */ 251ACPI_STATUS 252AcpiEvInitializeOpRegions ( 253 void); 254 255ACPI_STATUS 256AcpiEvAddressSpaceDispatch ( 257 ACPI_OPERAND_OBJECT *RegionObj, 258 ACPI_OPERAND_OBJECT *FieldObj, 259 UINT32 Function, 260 UINT32 RegionOffset, 261 UINT32 BitWidth, 262 UINT64 *Value); 263 264ACPI_STATUS 265AcpiEvAttachRegion ( 266 ACPI_OPERAND_OBJECT *HandlerObj, 267 ACPI_OPERAND_OBJECT *RegionObj, 268 BOOLEAN AcpiNsIsLocked); 269 270void 271AcpiEvDetachRegion ( 272 ACPI_OPERAND_OBJECT *RegionObj, 273 BOOLEAN AcpiNsIsLocked); 274 275void 276AcpiEvExecuteRegMethods ( 277 ACPI_NAMESPACE_NODE *Node, 278 ACPI_ADR_SPACE_TYPE SpaceId, 279 UINT32 Function); 280 281ACPI_STATUS 282AcpiEvExecuteRegMethod ( 283 ACPI_OPERAND_OBJECT *RegionObj, 284 UINT32 Function); 285 286 287/* 288 * evregini - Region initialization and setup 289 */ 290ACPI_STATUS 291AcpiEvSystemMemoryRegionSetup ( 292 ACPI_HANDLE Handle, 293 UINT32 Function, 294 void *HandlerContext, 295 void **RegionContext); 296 297ACPI_STATUS 298AcpiEvIoSpaceRegionSetup ( 299 ACPI_HANDLE Handle, 300 UINT32 Function, 301 void *HandlerContext, 302 void **RegionContext); 303 304ACPI_STATUS 305AcpiEvPciConfigRegionSetup ( 306 ACPI_HANDLE Handle, 307 UINT32 Function, 308 void *HandlerContext, 309 void **RegionContext); 310 311ACPI_STATUS 312AcpiEvCmosRegionSetup ( 313 ACPI_HANDLE Handle, 314 UINT32 Function, 315 void *HandlerContext, 316 void **RegionContext); 317 318ACPI_STATUS 319AcpiEvPciBarRegionSetup ( 320 ACPI_HANDLE Handle, 321 UINT32 Function, 322 void *HandlerContext, 323 void **RegionContext); 324 325ACPI_STATUS 326AcpiEvDefaultRegionSetup ( 327 ACPI_HANDLE Handle, 328 UINT32 Function, 329 void *HandlerContext, 330 void **RegionContext); 331 332ACPI_STATUS 333AcpiEvInitializeRegion ( 334 ACPI_OPERAND_OBJECT *RegionObj, 335 BOOLEAN AcpiNsLocked); 336 337 338/* 339 * evsci - SCI (System Control Interrupt) handling/dispatch 340 */ 341UINT32 ACPI_SYSTEM_XFACE 342AcpiEvGpeXruptHandler ( 343 void *Context); 344 345UINT32 346AcpiEvSciDispatch ( 347 void); 348 349UINT32 350AcpiEvInstallSciHandler ( 351 void); 352 353ACPI_STATUS 354AcpiEvRemoveAllSciHandlers ( 355 void); 356 357ACPI_HW_DEPENDENT_RETURN_VOID ( 358void 359AcpiEvTerminate ( 360 void)) 361 362#endif /* __ACEVENTS_H__ */ 363