Home | History | Annotate | Line # | Download | only in include
acevents.h revision 1.1.1.10
      1 /******************************************************************************
      2  *
      3  * Name: acevents.h - Event subcomponent prototypes and defines
      4  *
      5  *****************************************************************************/
      6 
      7 /*
      8  * Copyright (C) 2000 - 2017, 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 AcpiEvMaskGpe (
    120     ACPI_GPE_EVENT_INFO     *GpeEventInfo,
    121     BOOLEAN                 IsMasked);
    122 
    123 ACPI_STATUS
    124 AcpiEvAddGpeReference (
    125     ACPI_GPE_EVENT_INFO     *GpeEventInfo);
    126 
    127 ACPI_STATUS
    128 AcpiEvRemoveGpeReference (
    129     ACPI_GPE_EVENT_INFO     *GpeEventInfo);
    130 
    131 ACPI_GPE_EVENT_INFO *
    132 AcpiEvGetGpeEventInfo (
    133     ACPI_HANDLE             GpeDevice,
    134     UINT32                  GpeNumber);
    135 
    136 ACPI_GPE_EVENT_INFO *
    137 AcpiEvLowGetGpeInfo (
    138     UINT32                  GpeNumber,
    139     ACPI_GPE_BLOCK_INFO     *GpeBlock);
    140 
    141 ACPI_STATUS
    142 AcpiEvFinishGpe (
    143     ACPI_GPE_EVENT_INFO     *GpeEventInfo);
    144 
    145 
    146 /*
    147  * evgpeblk - Upper-level GPE block support
    148  */
    149 ACPI_STATUS
    150 AcpiEvCreateGpeBlock (
    151     ACPI_NAMESPACE_NODE     *GpeDevice,
    152     UINT64                  Address,
    153     UINT8                   SpaceId,
    154     UINT32                  RegisterCount,
    155     UINT16                  GpeBlockBaseNumber,
    156     UINT32                  InterruptNumber,
    157     ACPI_GPE_BLOCK_INFO     **ReturnGpeBlock);
    158 
    159 ACPI_STATUS
    160 AcpiEvInitializeGpeBlock (
    161     ACPI_GPE_XRUPT_INFO     *GpeXruptInfo,
    162     ACPI_GPE_BLOCK_INFO     *GpeBlock,
    163     void                    *Context);
    164 
    165 ACPI_HW_DEPENDENT_RETURN_OK (
    166 ACPI_STATUS
    167 AcpiEvDeleteGpeBlock (
    168     ACPI_GPE_BLOCK_INFO     *GpeBlock))
    169 
    170 UINT32
    171 AcpiEvGpeDispatch (
    172     ACPI_NAMESPACE_NODE     *GpeDevice,
    173     ACPI_GPE_EVENT_INFO     *GpeEventInfo,
    174     UINT32                  GpeNumber);
    175 
    176 
    177 /*
    178  * evgpeinit - GPE initialization and update
    179  */
    180 ACPI_STATUS
    181 AcpiEvGpeInitialize (
    182     void);
    183 
    184 ACPI_HW_DEPENDENT_RETURN_VOID (
    185 void
    186 AcpiEvUpdateGpes (
    187     ACPI_OWNER_ID           TableOwnerId))
    188 
    189 ACPI_STATUS
    190 AcpiEvMatchGpeMethod (
    191     ACPI_HANDLE             ObjHandle,
    192     UINT32                  Level,
    193     void                    *Context,
    194     void                    **ReturnValue);
    195 
    196 
    197 /*
    198  * evgpeutil - GPE utilities
    199  */
    200 ACPI_STATUS
    201 AcpiEvWalkGpeList (
    202     ACPI_GPE_CALLBACK       GpeWalkCallback,
    203     void                    *Context);
    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 ACPI_OPERAND_OBJECT *
    231 AcpiEvFindRegionHandler (
    232     ACPI_ADR_SPACE_TYPE     SpaceId,
    233     ACPI_OPERAND_OBJECT     *HandlerObj);
    234 
    235 BOOLEAN
    236 AcpiEvHasDefaultHandler (
    237     ACPI_NAMESPACE_NODE     *Node,
    238     ACPI_ADR_SPACE_TYPE     SpaceId);
    239 
    240 ACPI_STATUS
    241 AcpiEvInstallRegionHandlers (
    242     void);
    243 
    244 ACPI_STATUS
    245 AcpiEvInstallSpaceHandler (
    246     ACPI_NAMESPACE_NODE     *Node,
    247     ACPI_ADR_SPACE_TYPE     SpaceId,
    248     ACPI_ADR_SPACE_HANDLER  Handler,
    249     ACPI_ADR_SPACE_SETUP    Setup,
    250     void                    *Context);
    251 
    252 
    253 /*
    254  * evregion - Operation region support
    255  */
    256 ACPI_STATUS
    257 AcpiEvInitializeOpRegions (
    258     void);
    259 
    260 ACPI_STATUS
    261 AcpiEvAddressSpaceDispatch (
    262     ACPI_OPERAND_OBJECT     *RegionObj,
    263     ACPI_OPERAND_OBJECT     *FieldObj,
    264     UINT32                  Function,
    265     UINT32                  RegionOffset,
    266     UINT32                  BitWidth,
    267     UINT64                  *Value);
    268 
    269 ACPI_STATUS
    270 AcpiEvAttachRegion (
    271     ACPI_OPERAND_OBJECT     *HandlerObj,
    272     ACPI_OPERAND_OBJECT     *RegionObj,
    273     BOOLEAN                 AcpiNsIsLocked);
    274 
    275 void
    276 AcpiEvDetachRegion (
    277     ACPI_OPERAND_OBJECT     *RegionObj,
    278     BOOLEAN                 AcpiNsIsLocked);
    279 
    280 void
    281 AcpiEvExecuteRegMethods (
    282     ACPI_NAMESPACE_NODE     *Node,
    283     ACPI_ADR_SPACE_TYPE     SpaceId,
    284     UINT32                  Function);
    285 
    286 ACPI_STATUS
    287 AcpiEvExecuteRegMethod (
    288     ACPI_OPERAND_OBJECT     *RegionObj,
    289     UINT32                  Function);
    290 
    291 
    292 /*
    293  * evregini - Region initialization and setup
    294  */
    295 ACPI_STATUS
    296 AcpiEvSystemMemoryRegionSetup (
    297     ACPI_HANDLE             Handle,
    298     UINT32                  Function,
    299     void                    *HandlerContext,
    300     void                    **RegionContext);
    301 
    302 ACPI_STATUS
    303 AcpiEvIoSpaceRegionSetup (
    304     ACPI_HANDLE             Handle,
    305     UINT32                  Function,
    306     void                    *HandlerContext,
    307     void                    **RegionContext);
    308 
    309 ACPI_STATUS
    310 AcpiEvPciConfigRegionSetup (
    311     ACPI_HANDLE             Handle,
    312     UINT32                  Function,
    313     void                    *HandlerContext,
    314     void                    **RegionContext);
    315 
    316 ACPI_STATUS
    317 AcpiEvCmosRegionSetup (
    318     ACPI_HANDLE             Handle,
    319     UINT32                  Function,
    320     void                    *HandlerContext,
    321     void                    **RegionContext);
    322 
    323 ACPI_STATUS
    324 AcpiEvPciBarRegionSetup (
    325     ACPI_HANDLE             Handle,
    326     UINT32                  Function,
    327     void                    *HandlerContext,
    328     void                    **RegionContext);
    329 
    330 ACPI_STATUS
    331 AcpiEvDefaultRegionSetup (
    332     ACPI_HANDLE             Handle,
    333     UINT32                  Function,
    334     void                    *HandlerContext,
    335     void                    **RegionContext);
    336 
    337 ACPI_STATUS
    338 AcpiEvInitializeRegion (
    339     ACPI_OPERAND_OBJECT     *RegionObj);
    340 
    341 
    342 /*
    343  * evsci - SCI (System Control Interrupt) handling/dispatch
    344  */
    345 UINT32 ACPI_SYSTEM_XFACE
    346 AcpiEvGpeXruptHandler (
    347     void                    *Context);
    348 
    349 UINT32
    350 AcpiEvSciDispatch (
    351     void);
    352 
    353 UINT32
    354 AcpiEvInstallSciHandler (
    355     void);
    356 
    357 ACPI_STATUS
    358 AcpiEvRemoveAllSciHandlers (
    359     void);
    360 
    361 ACPI_HW_DEPENDENT_RETURN_VOID (
    362 void
    363 AcpiEvTerminate (
    364     void))
    365 
    366 #endif  /* __ACEVENTS_H__  */
    367