acevents.h revision 256281
1/****************************************************************************** 2 * 3 * Name: acevents.h - Event subcomponent prototypes and defines 4 * 5 *****************************************************************************/ 6 7/* 8 * Copyright (C) 2000 - 2013, 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 ACPI_GENERIC_ADDRESS *GpeBlockAddress, 148 UINT32 RegisterCount, 149 UINT8 GpeBlockBaseNumber, 150 UINT32 InterruptNumber, 151 ACPI_GPE_BLOCK_INFO **ReturnGpeBlock); 152 153ACPI_STATUS 154AcpiEvInitializeGpeBlock ( 155 ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 156 ACPI_GPE_BLOCK_INFO *GpeBlock, 157 void *Context); 158 159ACPI_HW_DEPENDENT_RETURN_OK ( 160ACPI_STATUS 161AcpiEvDeleteGpeBlock ( 162 ACPI_GPE_BLOCK_INFO *GpeBlock)) 163 164UINT32 165AcpiEvGpeDispatch ( 166 ACPI_NAMESPACE_NODE *GpeDevice, 167 ACPI_GPE_EVENT_INFO *GpeEventInfo, 168 UINT32 GpeNumber); 169 170 171/* 172 * evgpeinit - GPE initialization and update 173 */ 174ACPI_STATUS 175AcpiEvGpeInitialize ( 176 void); 177 178ACPI_HW_DEPENDENT_RETURN_VOID ( 179void 180AcpiEvUpdateGpes ( 181 ACPI_OWNER_ID TableOwnerId)) 182 183ACPI_STATUS 184AcpiEvMatchGpeMethod ( 185 ACPI_HANDLE ObjHandle, 186 UINT32 Level, 187 void *Context, 188 void **ReturnValue); 189 190 191/* 192 * evgpeutil - GPE utilities 193 */ 194ACPI_STATUS 195AcpiEvWalkGpeList ( 196 ACPI_GPE_CALLBACK GpeWalkCallback, 197 void *Context); 198 199BOOLEAN 200AcpiEvValidGpeEvent ( 201 ACPI_GPE_EVENT_INFO *GpeEventInfo); 202 203ACPI_STATUS 204AcpiEvGetGpeDevice ( 205 ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 206 ACPI_GPE_BLOCK_INFO *GpeBlock, 207 void *Context); 208 209ACPI_GPE_XRUPT_INFO * 210AcpiEvGetGpeXruptBlock ( 211 UINT32 InterruptNumber); 212 213ACPI_STATUS 214AcpiEvDeleteGpeXrupt ( 215 ACPI_GPE_XRUPT_INFO *GpeXrupt); 216 217ACPI_STATUS 218AcpiEvDeleteGpeHandlers ( 219 ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 220 ACPI_GPE_BLOCK_INFO *GpeBlock, 221 void *Context); 222 223 224/* 225 * evhandler - Address space handling 226 */ 227BOOLEAN 228AcpiEvHasDefaultHandler ( 229 ACPI_NAMESPACE_NODE *Node, 230 ACPI_ADR_SPACE_TYPE SpaceId); 231 232ACPI_STATUS 233AcpiEvInstallRegionHandlers ( 234 void); 235 236ACPI_STATUS 237AcpiEvInstallSpaceHandler ( 238 ACPI_NAMESPACE_NODE *Node, 239 ACPI_ADR_SPACE_TYPE SpaceId, 240 ACPI_ADR_SPACE_HANDLER Handler, 241 ACPI_ADR_SPACE_SETUP Setup, 242 void *Context); 243 244 245/* 246 * evregion - Operation region support 247 */ 248ACPI_STATUS 249AcpiEvInitializeOpRegions ( 250 void); 251 252ACPI_STATUS 253AcpiEvAddressSpaceDispatch ( 254 ACPI_OPERAND_OBJECT *RegionObj, 255 ACPI_OPERAND_OBJECT *FieldObj, 256 UINT32 Function, 257 UINT32 RegionOffset, 258 UINT32 BitWidth, 259 UINT64 *Value); 260 261ACPI_STATUS 262AcpiEvAttachRegion ( 263 ACPI_OPERAND_OBJECT *HandlerObj, 264 ACPI_OPERAND_OBJECT *RegionObj, 265 BOOLEAN AcpiNsIsLocked); 266 267void 268AcpiEvDetachRegion ( 269 ACPI_OPERAND_OBJECT *RegionObj, 270 BOOLEAN AcpiNsIsLocked); 271 272ACPI_STATUS 273AcpiEvExecuteRegMethods ( 274 ACPI_NAMESPACE_NODE *Node, 275 ACPI_ADR_SPACE_TYPE SpaceId); 276 277ACPI_STATUS 278AcpiEvExecuteRegMethod ( 279 ACPI_OPERAND_OBJECT *RegionObj, 280 UINT32 Function); 281 282 283/* 284 * evregini - Region initialization and setup 285 */ 286ACPI_STATUS 287AcpiEvSystemMemoryRegionSetup ( 288 ACPI_HANDLE Handle, 289 UINT32 Function, 290 void *HandlerContext, 291 void **RegionContext); 292 293ACPI_STATUS 294AcpiEvIoSpaceRegionSetup ( 295 ACPI_HANDLE Handle, 296 UINT32 Function, 297 void *HandlerContext, 298 void **RegionContext); 299 300ACPI_STATUS 301AcpiEvPciConfigRegionSetup ( 302 ACPI_HANDLE Handle, 303 UINT32 Function, 304 void *HandlerContext, 305 void **RegionContext); 306 307ACPI_STATUS 308AcpiEvCmosRegionSetup ( 309 ACPI_HANDLE Handle, 310 UINT32 Function, 311 void *HandlerContext, 312 void **RegionContext); 313 314ACPI_STATUS 315AcpiEvPciBarRegionSetup ( 316 ACPI_HANDLE Handle, 317 UINT32 Function, 318 void *HandlerContext, 319 void **RegionContext); 320 321ACPI_STATUS 322AcpiEvDefaultRegionSetup ( 323 ACPI_HANDLE Handle, 324 UINT32 Function, 325 void *HandlerContext, 326 void **RegionContext); 327 328ACPI_STATUS 329AcpiEvInitializeRegion ( 330 ACPI_OPERAND_OBJECT *RegionObj, 331 BOOLEAN AcpiNsLocked); 332 333 334/* 335 * evsci - SCI (System Control Interrupt) handling/dispatch 336 */ 337UINT32 ACPI_SYSTEM_XFACE 338AcpiEvGpeXruptHandler ( 339 void *Context); 340 341UINT32 342AcpiEvSciDispatch ( 343 void); 344 345UINT32 346AcpiEvInstallSciHandler ( 347 void); 348 349ACPI_STATUS 350AcpiEvRemoveAllSciHandlers ( 351 void); 352 353ACPI_HW_DEPENDENT_RETURN_VOID ( 354void 355AcpiEvTerminate ( 356 void)) 357 358#endif /* __ACEVENTS_H__ */ 359