1 /****************************************************************************** 2 * 3 * Name: acevents.h - Event subcomponent prototypes and defines 4 * 5 *****************************************************************************/ 6 7 /* 8 * Copyright (C) 2000 - 2014, 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 #pragma pack(push) /* Set default struct packing */ 49 50 /* 51 * evevent 52 */ 53 ACPI_STATUS 54 AcpiEvInitializeEvents ( 55 void); 56 57 ACPI_STATUS 58 AcpiEvInstallXruptHandlers ( 59 void); 60 61 UINT32 62 AcpiEvFixedEventDetect ( 63 void); 64 65 66 /* 67 * evmisc 68 */ 69 BOOLEAN 70 AcpiEvIsNotifyObject ( 71 ACPI_NAMESPACE_NODE *Node); 72 73 UINT32 74 AcpiEvGetGpeNumberIndex ( 75 UINT32 GpeNumber); 76 77 ACPI_STATUS 78 AcpiEvQueueNotifyRequest ( 79 ACPI_NAMESPACE_NODE *Node, 80 UINT32 NotifyValue); 81 82 83 /* 84 * evglock - Global Lock support 85 */ 86 ACPI_STATUS 87 AcpiEvInitGlobalLockHandler ( 88 void); 89 90 ACPI_HW_DEPENDENT_RETURN_OK ( 91 ACPI_STATUS 92 AcpiEvAcquireGlobalLock( 93 UINT16 Timeout)) 94 95 ACPI_HW_DEPENDENT_RETURN_OK ( 96 ACPI_STATUS 97 AcpiEvReleaseGlobalLock( 98 void)) 99 100 ACPI_STATUS 101 AcpiEvRemoveGlobalLockHandler ( 102 void); 103 104 105 /* 106 * evgpe - Low-level GPE support 107 */ 108 UINT32 109 AcpiEvGpeDetect ( 110 ACPI_GPE_XRUPT_INFO *GpeXruptList); 111 112 ACPI_STATUS 113 AcpiEvUpdateGpeEnableMask ( 114 ACPI_GPE_EVENT_INFO *GpeEventInfo); 115 116 ACPI_STATUS 117 AcpiEvEnableGpe ( 118 ACPI_GPE_EVENT_INFO *GpeEventInfo); 119 120 ACPI_STATUS 121 AcpiEvAddGpeReference ( 122 ACPI_GPE_EVENT_INFO *GpeEventInfo); 123 124 ACPI_STATUS 125 AcpiEvRemoveGpeReference ( 126 ACPI_GPE_EVENT_INFO *GpeEventInfo); 127 128 ACPI_GPE_EVENT_INFO * 129 AcpiEvGetGpeEventInfo ( 130 ACPI_HANDLE GpeDevice, 131 UINT32 GpeNumber); 132 133 ACPI_GPE_EVENT_INFO * 134 AcpiEvLowGetGpeInfo ( 135 UINT32 GpeNumber, 136 ACPI_GPE_BLOCK_INFO *GpeBlock); 137 138 ACPI_STATUS 139 AcpiEvFinishGpe ( 140 ACPI_GPE_EVENT_INFO *GpeEventInfo); 141 142 143 /* 144 * evgpeblk - Upper-level GPE block support 145 */ 146 ACPI_STATUS 147 AcpiEvCreateGpeBlock ( 148 ACPI_NAMESPACE_NODE *GpeDevice, 149 ACPI_GENERIC_ADDRESS *GpeBlockAddress, 150 UINT32 RegisterCount, 151 UINT8 GpeBlockBaseNumber, 152 UINT32 InterruptNumber, 153 ACPI_GPE_BLOCK_INFO **ReturnGpeBlock); 154 155 ACPI_STATUS 156 AcpiEvInitializeGpeBlock ( 157 ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 158 ACPI_GPE_BLOCK_INFO *GpeBlock, 159 void *Context); 160 161 ACPI_HW_DEPENDENT_RETURN_OK ( 162 ACPI_STATUS 163 AcpiEvDeleteGpeBlock ( 164 ACPI_GPE_BLOCK_INFO *GpeBlock)) 165 166 UINT32 167 AcpiEvGpeDispatch ( 168 ACPI_NAMESPACE_NODE *GpeDevice, 169 ACPI_GPE_EVENT_INFO *GpeEventInfo, 170 UINT32 GpeNumber); 171 172 173 /* 174 * evgpeinit - GPE initialization and update 175 */ 176 ACPI_STATUS 177 AcpiEvGpeInitialize ( 178 void); 179 180 ACPI_HW_DEPENDENT_RETURN_VOID ( 181 void 182 AcpiEvUpdateGpes ( 183 ACPI_OWNER_ID TableOwnerId)) 184 185 ACPI_STATUS 186 AcpiEvMatchGpeMethod ( 187 ACPI_HANDLE ObjHandle, 188 UINT32 Level, 189 void *Context, 190 void **ReturnValue); 191 192 193 /* 194 * evgpeutil - GPE utilities 195 */ 196 ACPI_STATUS 197 AcpiEvWalkGpeList ( 198 ACPI_GPE_CALLBACK GpeWalkCallback, 199 void *Context); 200 201 BOOLEAN 202 AcpiEvValidGpeEvent ( 203 ACPI_GPE_EVENT_INFO *GpeEventInfo); 204 205 ACPI_STATUS 206 AcpiEvGetGpeDevice ( 207 ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 208 ACPI_GPE_BLOCK_INFO *GpeBlock, 209 void *Context); 210 211 ACPI_STATUS 212 AcpiEvGetGpeXruptBlock ( 213 UINT32 InterruptNumber, 214 ACPI_GPE_XRUPT_INFO **GpeXruptBlock); 215 216 ACPI_STATUS 217 AcpiEvDeleteGpeXrupt ( 218 ACPI_GPE_XRUPT_INFO *GpeXrupt); 219 220 ACPI_STATUS 221 AcpiEvDeleteGpeHandlers ( 222 ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 223 ACPI_GPE_BLOCK_INFO *GpeBlock, 224 void *Context); 225 226 227 /* 228 * evhandler - Address space handling 229 */ 230 BOOLEAN 231 AcpiEvHasDefaultHandler ( 232 ACPI_NAMESPACE_NODE *Node, 233 ACPI_ADR_SPACE_TYPE SpaceId); 234 235 ACPI_STATUS 236 AcpiEvInstallRegionHandlers ( 237 void); 238 239 ACPI_STATUS 240 AcpiEvInstallSpaceHandler ( 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 */ 251 ACPI_STATUS 252 AcpiEvInitializeOpRegions ( 253 void); 254 255 ACPI_STATUS 256 AcpiEvAddressSpaceDispatch ( 257 ACPI_OPERAND_OBJECT *RegionObj, 258 ACPI_OPERAND_OBJECT *FieldObj, 259 UINT32 Function, 260 UINT32 RegionOffset, 261 UINT32 BitWidth, 262 UINT64 *Value); 263 264 ACPI_STATUS 265 AcpiEvAttachRegion ( 266 ACPI_OPERAND_OBJECT *HandlerObj, 267 ACPI_OPERAND_OBJECT *RegionObj, 268 BOOLEAN AcpiNsIsLocked); 269 270 void 271 AcpiEvDetachRegion ( 272 ACPI_OPERAND_OBJECT *RegionObj, 273 BOOLEAN AcpiNsIsLocked); 274 275 ACPI_STATUS 276 AcpiEvExecuteRegMethods ( 277 ACPI_NAMESPACE_NODE *Node, 278 ACPI_ADR_SPACE_TYPE SpaceId); 279 280 ACPI_STATUS 281 AcpiEvExecuteRegMethod ( 282 ACPI_OPERAND_OBJECT *RegionObj, 283 UINT32 Function); 284 285 286 /* 287 * evregini - Region initialization and setup 288 */ 289 ACPI_STATUS 290 AcpiEvSystemMemoryRegionSetup ( 291 ACPI_HANDLE Handle, 292 UINT32 Function, 293 void *HandlerContext, 294 void **RegionContext); 295 296 ACPI_STATUS 297 AcpiEvIoSpaceRegionSetup ( 298 ACPI_HANDLE Handle, 299 UINT32 Function, 300 void *HandlerContext, 301 void **RegionContext); 302 303 ACPI_STATUS 304 AcpiEvPciConfigRegionSetup ( 305 ACPI_HANDLE Handle, 306 UINT32 Function, 307 void *HandlerContext, 308 void **RegionContext); 309 310 ACPI_STATUS 311 AcpiEvCmosRegionSetup ( 312 ACPI_HANDLE Handle, 313 UINT32 Function, 314 void *HandlerContext, 315 void **RegionContext); 316 317 ACPI_STATUS 318 AcpiEvPciBarRegionSetup ( 319 ACPI_HANDLE Handle, 320 UINT32 Function, 321 void *HandlerContext, 322 void **RegionContext); 323 324 ACPI_STATUS 325 AcpiEvDefaultRegionSetup ( 326 ACPI_HANDLE Handle, 327 UINT32 Function, 328 void *HandlerContext, 329 void **RegionContext); 330 331 ACPI_STATUS 332 AcpiEvInitializeRegion ( 333 ACPI_OPERAND_OBJECT *RegionObj, 334 BOOLEAN AcpiNsLocked); 335 336 337 /* 338 * evsci - SCI (System Control Interrupt) handling/dispatch 339 */ 340 UINT32 ACPI_SYSTEM_XFACE 341 AcpiEvGpeXruptHandler ( 342 void *Context); 343 344 UINT32 345 AcpiEvSciDispatch ( 346 void); 347 348 UINT32 349 AcpiEvInstallSciHandler ( 350 void); 351 352 ACPI_STATUS 353 AcpiEvRemoveAllSciHandlers ( 354 void); 355 356 ACPI_HW_DEPENDENT_RETURN_VOID ( 357 void 358 AcpiEvTerminate ( 359 void)) 360 361 #pragma pack(pop) /* Restore original struct packing */ 362 363 #endif /* __ACEVENTS_H__ */ 364