Home | History | Annotate | Line # | Download | only in include
acevents.h revision 1.1.1.2
      1 /******************************************************************************
      2  *
      3  * Name: acevents.h - Event subcomponent prototypes and defines
      4  *
      5  *****************************************************************************/
      6 
      7 /*
      8  * Copyright (C) 2000 - 2011, 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 ACPI_STATUS
     72 AcpiEvAcquireGlobalLock(
     73     UINT16                  Timeout);
     74 
     75 ACPI_STATUS
     76 AcpiEvReleaseGlobalLock(
     77     void);
     78 
     79 ACPI_STATUS
     80 AcpiEvInitGlobalLockHandler (
     81     void);
     82 
     83 UINT32
     84 AcpiEvGetGpeNumberIndex (
     85     UINT32                  GpeNumber);
     86 
     87 ACPI_STATUS
     88 AcpiEvQueueNotifyRequest (
     89     ACPI_NAMESPACE_NODE     *Node,
     90     UINT32                  NotifyValue);
     91 
     92 
     93 /*
     94  * evgpe - Low-level GPE support
     95  */
     96 UINT32
     97 AcpiEvGpeDetect (
     98     ACPI_GPE_XRUPT_INFO     *GpeXruptList);
     99 
    100 ACPI_STATUS
    101 AcpiEvUpdateGpeEnableMask (
    102     ACPI_GPE_EVENT_INFO     *GpeEventInfo);
    103 
    104 ACPI_STATUS
    105 AcpiEvEnableGpe (
    106     ACPI_GPE_EVENT_INFO     *GpeEventInfo);
    107 
    108 ACPI_STATUS
    109 AcpiEvAddGpeReference (
    110     ACPI_GPE_EVENT_INFO     *GpeEventInfo);
    111 
    112 ACPI_STATUS
    113 AcpiEvRemoveGpeReference (
    114     ACPI_GPE_EVENT_INFO     *GpeEventInfo);
    115 
    116 ACPI_GPE_EVENT_INFO *
    117 AcpiEvGetGpeEventInfo (
    118     ACPI_HANDLE             GpeDevice,
    119     UINT32                  GpeNumber);
    120 
    121 ACPI_GPE_EVENT_INFO *
    122 AcpiEvLowGetGpeInfo (
    123     UINT32                  GpeNumber,
    124     ACPI_GPE_BLOCK_INFO     *GpeBlock);
    125 
    126 ACPI_STATUS
    127 AcpiEvFinishGpe (
    128     ACPI_GPE_EVENT_INFO     *GpeEventInfo);
    129 
    130 
    131 /*
    132  * evgpeblk - Upper-level GPE block support
    133  */
    134 ACPI_STATUS
    135 AcpiEvCreateGpeBlock (
    136     ACPI_NAMESPACE_NODE     *GpeDevice,
    137     ACPI_GENERIC_ADDRESS    *GpeBlockAddress,
    138     UINT32                  RegisterCount,
    139     UINT8                   GpeBlockBaseNumber,
    140     UINT32                  InterruptNumber,
    141     ACPI_GPE_BLOCK_INFO     **ReturnGpeBlock);
    142 
    143 ACPI_STATUS
    144 AcpiEvInitializeGpeBlock (
    145     ACPI_GPE_XRUPT_INFO     *GpeXruptInfo,
    146     ACPI_GPE_BLOCK_INFO     *GpeBlock,
    147     void                    *Context);
    148 
    149 ACPI_STATUS
    150 AcpiEvDeleteGpeBlock (
    151     ACPI_GPE_BLOCK_INFO     *GpeBlock);
    152 
    153 UINT32
    154 AcpiEvGpeDispatch (
    155     ACPI_NAMESPACE_NODE     *GpeDevice,
    156     ACPI_GPE_EVENT_INFO     *GpeEventInfo,
    157     UINT32                  GpeNumber);
    158 
    159 /*
    160  * evgpeinit - GPE initialization and update
    161  */
    162 ACPI_STATUS
    163 AcpiEvGpeInitialize (
    164     void);
    165 
    166 void
    167 AcpiEvUpdateGpes (
    168     ACPI_OWNER_ID           TableOwnerId);
    169 
    170 ACPI_STATUS
    171 AcpiEvMatchGpeMethod (
    172     ACPI_HANDLE             ObjHandle,
    173     UINT32                  Level,
    174     void                    *Context,
    175     void                    **ReturnValue);
    176 
    177 /*
    178  * evgpeutil - GPE utilities
    179  */
    180 ACPI_STATUS
    181 AcpiEvWalkGpeList (
    182     ACPI_GPE_CALLBACK       GpeWalkCallback,
    183     void                    *Context);
    184 
    185 BOOLEAN
    186 AcpiEvValidGpeEvent (
    187     ACPI_GPE_EVENT_INFO     *GpeEventInfo);
    188 
    189 ACPI_STATUS
    190 AcpiEvGetGpeDevice (
    191     ACPI_GPE_XRUPT_INFO     *GpeXruptInfo,
    192     ACPI_GPE_BLOCK_INFO     *GpeBlock,
    193     void                    *Context);
    194 
    195 ACPI_GPE_XRUPT_INFO *
    196 AcpiEvGetGpeXruptBlock (
    197     UINT32                  InterruptNumber);
    198 
    199 ACPI_STATUS
    200 AcpiEvDeleteGpeXrupt (
    201     ACPI_GPE_XRUPT_INFO     *GpeXrupt);
    202 
    203 ACPI_STATUS
    204 AcpiEvDeleteGpeHandlers (
    205     ACPI_GPE_XRUPT_INFO     *GpeXruptInfo,
    206     ACPI_GPE_BLOCK_INFO     *GpeBlock,
    207     void                    *Context);
    208 
    209 
    210 /*
    211  * evregion - Address Space handling
    212  */
    213 ACPI_STATUS
    214 AcpiEvInstallRegionHandlers (
    215     void);
    216 
    217 ACPI_STATUS
    218 AcpiEvInitializeOpRegions (
    219     void);
    220 
    221 ACPI_STATUS
    222 AcpiEvAddressSpaceDispatch (
    223     ACPI_OPERAND_OBJECT    *RegionObj,
    224     UINT32                  Function,
    225     UINT32                  RegionOffset,
    226     UINT32                  BitWidth,
    227     UINT64                  *Value);
    228 
    229 ACPI_STATUS
    230 AcpiEvAttachRegion (
    231     ACPI_OPERAND_OBJECT     *HandlerObj,
    232     ACPI_OPERAND_OBJECT     *RegionObj,
    233     BOOLEAN                 AcpiNsIsLocked);
    234 
    235 void
    236 AcpiEvDetachRegion (
    237     ACPI_OPERAND_OBJECT    *RegionObj,
    238     BOOLEAN                 AcpiNsIsLocked);
    239 
    240 ACPI_STATUS
    241 AcpiEvInstallSpaceHandler (
    242     ACPI_NAMESPACE_NODE     *Node,
    243     ACPI_ADR_SPACE_TYPE     SpaceId,
    244     ACPI_ADR_SPACE_HANDLER  Handler,
    245     ACPI_ADR_SPACE_SETUP    Setup,
    246     void                    *Context);
    247 
    248 ACPI_STATUS
    249 AcpiEvExecuteRegMethods (
    250     ACPI_NAMESPACE_NODE     *Node,
    251     ACPI_ADR_SPACE_TYPE     SpaceId);
    252 
    253 ACPI_STATUS
    254 AcpiEvExecuteRegMethod (
    255     ACPI_OPERAND_OBJECT    *RegionObj,
    256     UINT32                  Function);
    257 
    258 
    259 /*
    260  * evregini - Region initialization and setup
    261  */
    262 ACPI_STATUS
    263 AcpiEvSystemMemoryRegionSetup (
    264     ACPI_HANDLE             Handle,
    265     UINT32                  Function,
    266     void                    *HandlerContext,
    267     void                    **RegionContext);
    268 
    269 ACPI_STATUS
    270 AcpiEvIoSpaceRegionSetup (
    271     ACPI_HANDLE             Handle,
    272     UINT32                  Function,
    273     void                    *HandlerContext,
    274     void                    **RegionContext);
    275 
    276 ACPI_STATUS
    277 AcpiEvPciConfigRegionSetup (
    278     ACPI_HANDLE             Handle,
    279     UINT32                  Function,
    280     void                    *HandlerContext,
    281     void                    **RegionContext);
    282 
    283 ACPI_STATUS
    284 AcpiEvCmosRegionSetup (
    285     ACPI_HANDLE             Handle,
    286     UINT32                  Function,
    287     void                    *HandlerContext,
    288     void                    **RegionContext);
    289 
    290 ACPI_STATUS
    291 AcpiEvPciBarRegionSetup (
    292     ACPI_HANDLE             Handle,
    293     UINT32                  Function,
    294     void                    *HandlerContext,
    295     void                    **RegionContext);
    296 
    297 ACPI_STATUS
    298 AcpiEvDefaultRegionSetup (
    299     ACPI_HANDLE             Handle,
    300     UINT32                  Function,
    301     void                    *HandlerContext,
    302     void                    **RegionContext);
    303 
    304 ACPI_STATUS
    305 AcpiEvInitializeRegion (
    306     ACPI_OPERAND_OBJECT     *RegionObj,
    307     BOOLEAN                 AcpiNsLocked);
    308 
    309 
    310 /*
    311  * evsci - SCI (System Control Interrupt) handling/dispatch
    312  */
    313 UINT32 ACPI_SYSTEM_XFACE
    314 AcpiEvGpeXruptHandler (
    315     void                    *Context);
    316 
    317 UINT32
    318 AcpiEvInstallSciHandler (
    319     void);
    320 
    321 ACPI_STATUS
    322 AcpiEvRemoveSciHandler (
    323     void);
    324 
    325 UINT32
    326 AcpiEvInitializeSCI (
    327     UINT32                  ProgramSCI);
    328 
    329 void
    330 AcpiEvTerminate (
    331     void);
    332 
    333 
    334 #endif  /* __ACEVENTS_H__  */
    335