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