Home | History | Annotate | Line # | Download | only in include
acparser.h revision 1.1.1.10.12.1
      1            1.1    jruoho /******************************************************************************
      2            1.1    jruoho  *
      3            1.1    jruoho  * Module Name: acparser.h - AML Parser subcomponent prototypes and defines
      4            1.1    jruoho  *
      5            1.1    jruoho  *****************************************************************************/
      6            1.1    jruoho 
      7        1.1.1.2    jruoho /*
      8  1.1.1.10.12.1  pgoyette  * Copyright (C) 2000 - 2018, Intel Corp.
      9            1.1    jruoho  * All rights reserved.
     10            1.1    jruoho  *
     11        1.1.1.2    jruoho  * Redistribution and use in source and binary forms, with or without
     12        1.1.1.2    jruoho  * modification, are permitted provided that the following conditions
     13        1.1.1.2    jruoho  * are met:
     14        1.1.1.2    jruoho  * 1. Redistributions of source code must retain the above copyright
     15        1.1.1.2    jruoho  *    notice, this list of conditions, and the following disclaimer,
     16        1.1.1.2    jruoho  *    without modification.
     17        1.1.1.2    jruoho  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
     18        1.1.1.2    jruoho  *    substantially similar to the "NO WARRANTY" disclaimer below
     19        1.1.1.2    jruoho  *    ("Disclaimer") and any redistribution must be conditioned upon
     20        1.1.1.2    jruoho  *    including a substantially similar Disclaimer requirement for further
     21        1.1.1.2    jruoho  *    binary redistribution.
     22        1.1.1.2    jruoho  * 3. Neither the names of the above-listed copyright holders nor the names
     23        1.1.1.2    jruoho  *    of any contributors may be used to endorse or promote products derived
     24        1.1.1.2    jruoho  *    from this software without specific prior written permission.
     25        1.1.1.2    jruoho  *
     26        1.1.1.2    jruoho  * Alternatively, this software may be distributed under the terms of the
     27        1.1.1.2    jruoho  * GNU General Public License ("GPL") version 2 as published by the Free
     28        1.1.1.2    jruoho  * Software Foundation.
     29        1.1.1.2    jruoho  *
     30        1.1.1.2    jruoho  * NO WARRANTY
     31        1.1.1.2    jruoho  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     32        1.1.1.2    jruoho  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     33        1.1.1.2    jruoho  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
     34        1.1.1.2    jruoho  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     35        1.1.1.2    jruoho  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     36        1.1.1.2    jruoho  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     37        1.1.1.2    jruoho  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     38        1.1.1.2    jruoho  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     39        1.1.1.2    jruoho  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
     40        1.1.1.2    jruoho  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     41        1.1.1.2    jruoho  * POSSIBILITY OF SUCH DAMAGES.
     42        1.1.1.2    jruoho  */
     43            1.1    jruoho 
     44            1.1    jruoho #ifndef __ACPARSER_H__
     45            1.1    jruoho #define __ACPARSER_H__
     46            1.1    jruoho 
     47            1.1    jruoho 
     48            1.1    jruoho #define OP_HAS_RETURN_VALUE             1
     49            1.1    jruoho 
     50            1.1    jruoho /* Variable number of arguments. This field must be 32 bits */
     51            1.1    jruoho 
     52            1.1    jruoho #define ACPI_VAR_ARGS                   ACPI_UINT32_MAX
     53            1.1    jruoho 
     54            1.1    jruoho 
     55            1.1    jruoho #define ACPI_PARSE_DELETE_TREE          0x0001
     56            1.1    jruoho #define ACPI_PARSE_NO_TREE_DELETE       0x0000
     57            1.1    jruoho #define ACPI_PARSE_TREE_MASK            0x0001
     58            1.1    jruoho 
     59            1.1    jruoho #define ACPI_PARSE_LOAD_PASS1           0x0010
     60            1.1    jruoho #define ACPI_PARSE_LOAD_PASS2           0x0020
     61            1.1    jruoho #define ACPI_PARSE_EXECUTE              0x0030
     62            1.1    jruoho #define ACPI_PARSE_MODE_MASK            0x0030
     63            1.1    jruoho 
     64            1.1    jruoho #define ACPI_PARSE_DEFERRED_OP          0x0100
     65            1.1    jruoho #define ACPI_PARSE_DISASSEMBLE          0x0200
     66            1.1    jruoho 
     67            1.1    jruoho #define ACPI_PARSE_MODULE_LEVEL         0x0400
     68            1.1    jruoho 
     69            1.1    jruoho /******************************************************************************
     70            1.1    jruoho  *
     71            1.1    jruoho  * Parser interfaces
     72            1.1    jruoho  *
     73            1.1    jruoho  *****************************************************************************/
     74            1.1    jruoho 
     75        1.1.1.6  christos extern const UINT8      AcpiGbl_ShortOpIndex[];
     76        1.1.1.6  christos extern const UINT8      AcpiGbl_LongOpIndex[];
     77        1.1.1.6  christos 
     78            1.1    jruoho 
     79            1.1    jruoho /*
     80            1.1    jruoho  * psxface - Parser external interfaces
     81            1.1    jruoho  */
     82            1.1    jruoho ACPI_STATUS
     83            1.1    jruoho AcpiPsExecuteMethod (
     84            1.1    jruoho     ACPI_EVALUATE_INFO      *Info);
     85            1.1    jruoho 
     86        1.1.1.9  christos ACPI_STATUS
     87        1.1.1.9  christos AcpiPsExecuteTable (
     88        1.1.1.9  christos     ACPI_EVALUATE_INFO      *Info);
     89        1.1.1.9  christos 
     90            1.1    jruoho 
     91            1.1    jruoho /*
     92            1.1    jruoho  * psargs - Parse AML opcode arguments
     93            1.1    jruoho  */
     94            1.1    jruoho UINT8 *
     95            1.1    jruoho AcpiPsGetNextPackageEnd (
     96            1.1    jruoho     ACPI_PARSE_STATE        *ParserState);
     97            1.1    jruoho 
     98            1.1    jruoho char *
     99            1.1    jruoho AcpiPsGetNextNamestring (
    100            1.1    jruoho     ACPI_PARSE_STATE        *ParserState);
    101            1.1    jruoho 
    102            1.1    jruoho void
    103            1.1    jruoho AcpiPsGetNextSimpleArg (
    104            1.1    jruoho     ACPI_PARSE_STATE        *ParserState,
    105            1.1    jruoho     UINT32                  ArgType,
    106            1.1    jruoho     ACPI_PARSE_OBJECT       *Arg);
    107            1.1    jruoho 
    108            1.1    jruoho ACPI_STATUS
    109            1.1    jruoho AcpiPsGetNextNamepath (
    110            1.1    jruoho     ACPI_WALK_STATE         *WalkState,
    111            1.1    jruoho     ACPI_PARSE_STATE        *ParserState,
    112            1.1    jruoho     ACPI_PARSE_OBJECT       *Arg,
    113        1.1.1.7  christos     BOOLEAN                 PossibleMethodCall);
    114        1.1.1.7  christos 
    115        1.1.1.7  christos /* Values for BOOLEAN above */
    116        1.1.1.7  christos 
    117        1.1.1.7  christos #define ACPI_NOT_METHOD_CALL            FALSE
    118        1.1.1.7  christos #define ACPI_POSSIBLE_METHOD_CALL       TRUE
    119            1.1    jruoho 
    120            1.1    jruoho ACPI_STATUS
    121            1.1    jruoho AcpiPsGetNextArg (
    122            1.1    jruoho     ACPI_WALK_STATE         *WalkState,
    123            1.1    jruoho     ACPI_PARSE_STATE        *ParserState,
    124            1.1    jruoho     UINT32                  ArgType,
    125            1.1    jruoho     ACPI_PARSE_OBJECT       **ReturnArg);
    126            1.1    jruoho 
    127            1.1    jruoho 
    128            1.1    jruoho /*
    129            1.1    jruoho  * psfind
    130            1.1    jruoho  */
    131            1.1    jruoho ACPI_PARSE_OBJECT *
    132            1.1    jruoho AcpiPsFindName (
    133            1.1    jruoho     ACPI_PARSE_OBJECT       *Scope,
    134            1.1    jruoho     UINT32                  Name,
    135            1.1    jruoho     UINT32                  Opcode);
    136            1.1    jruoho 
    137            1.1    jruoho ACPI_PARSE_OBJECT*
    138            1.1    jruoho AcpiPsGetParent (
    139            1.1    jruoho     ACPI_PARSE_OBJECT       *Op);
    140            1.1    jruoho 
    141            1.1    jruoho 
    142            1.1    jruoho /*
    143        1.1.1.3  christos  * psobject - support for parse object processing
    144        1.1.1.3  christos  */
    145        1.1.1.3  christos ACPI_STATUS
    146        1.1.1.3  christos AcpiPsBuildNamedOp (
    147        1.1.1.3  christos     ACPI_WALK_STATE         *WalkState,
    148        1.1.1.3  christos     UINT8                   *AmlOpStart,
    149        1.1.1.3  christos     ACPI_PARSE_OBJECT       *UnnamedOp,
    150        1.1.1.3  christos     ACPI_PARSE_OBJECT       **Op);
    151        1.1.1.3  christos 
    152        1.1.1.3  christos ACPI_STATUS
    153        1.1.1.3  christos AcpiPsCreateOp (
    154        1.1.1.3  christos     ACPI_WALK_STATE         *WalkState,
    155        1.1.1.3  christos     UINT8                   *AmlOpStart,
    156        1.1.1.3  christos     ACPI_PARSE_OBJECT       **NewOp);
    157        1.1.1.3  christos 
    158        1.1.1.3  christos ACPI_STATUS
    159        1.1.1.3  christos AcpiPsCompleteOp (
    160        1.1.1.3  christos     ACPI_WALK_STATE         *WalkState,
    161        1.1.1.3  christos     ACPI_PARSE_OBJECT       **Op,
    162        1.1.1.3  christos     ACPI_STATUS             Status);
    163        1.1.1.3  christos 
    164        1.1.1.3  christos ACPI_STATUS
    165        1.1.1.3  christos AcpiPsCompleteFinalOp (
    166        1.1.1.3  christos     ACPI_WALK_STATE         *WalkState,
    167        1.1.1.3  christos     ACPI_PARSE_OBJECT       *Op,
    168        1.1.1.3  christos     ACPI_STATUS             Status);
    169        1.1.1.3  christos 
    170        1.1.1.3  christos 
    171        1.1.1.3  christos /*
    172        1.1.1.3  christos  * psopinfo - AML Opcode information
    173            1.1    jruoho  */
    174            1.1    jruoho const ACPI_OPCODE_INFO *
    175            1.1    jruoho AcpiPsGetOpcodeInfo (
    176            1.1    jruoho     UINT16                  Opcode);
    177            1.1    jruoho 
    178        1.1.1.8  christos const char *
    179            1.1    jruoho AcpiPsGetOpcodeName (
    180            1.1    jruoho     UINT16                  Opcode);
    181            1.1    jruoho 
    182            1.1    jruoho UINT8
    183            1.1    jruoho AcpiPsGetArgumentCount (
    184            1.1    jruoho     UINT32                  OpType);
    185            1.1    jruoho 
    186            1.1    jruoho 
    187            1.1    jruoho /*
    188            1.1    jruoho  * psparse - top level parsing routines
    189            1.1    jruoho  */
    190            1.1    jruoho ACPI_STATUS
    191            1.1    jruoho AcpiPsParseAml (
    192            1.1    jruoho     ACPI_WALK_STATE         *WalkState);
    193            1.1    jruoho 
    194            1.1    jruoho UINT32
    195            1.1    jruoho AcpiPsGetOpcodeSize (
    196            1.1    jruoho     UINT32                  Opcode);
    197            1.1    jruoho 
    198            1.1    jruoho UINT16
    199            1.1    jruoho AcpiPsPeekOpcode (
    200            1.1    jruoho     ACPI_PARSE_STATE        *state);
    201            1.1    jruoho 
    202            1.1    jruoho ACPI_STATUS
    203            1.1    jruoho AcpiPsCompleteThisOp (
    204            1.1    jruoho     ACPI_WALK_STATE         *WalkState,
    205            1.1    jruoho     ACPI_PARSE_OBJECT       *Op);
    206            1.1    jruoho 
    207            1.1    jruoho ACPI_STATUS
    208            1.1    jruoho AcpiPsNextParseState (
    209            1.1    jruoho     ACPI_WALK_STATE         *WalkState,
    210            1.1    jruoho     ACPI_PARSE_OBJECT       *Op,
    211            1.1    jruoho     ACPI_STATUS             CallbackStatus);
    212            1.1    jruoho 
    213            1.1    jruoho 
    214            1.1    jruoho /*
    215            1.1    jruoho  * psloop - main parse loop
    216            1.1    jruoho  */
    217            1.1    jruoho ACPI_STATUS
    218            1.1    jruoho AcpiPsParseLoop (
    219            1.1    jruoho     ACPI_WALK_STATE         *WalkState);
    220            1.1    jruoho 
    221            1.1    jruoho 
    222            1.1    jruoho /*
    223            1.1    jruoho  * psscope - Scope stack management routines
    224            1.1    jruoho  */
    225            1.1    jruoho ACPI_STATUS
    226            1.1    jruoho AcpiPsInitScope (
    227            1.1    jruoho     ACPI_PARSE_STATE        *ParserState,
    228            1.1    jruoho     ACPI_PARSE_OBJECT       *Root);
    229            1.1    jruoho 
    230            1.1    jruoho ACPI_PARSE_OBJECT *
    231            1.1    jruoho AcpiPsGetParentScope (
    232            1.1    jruoho     ACPI_PARSE_STATE        *state);
    233            1.1    jruoho 
    234            1.1    jruoho BOOLEAN
    235            1.1    jruoho AcpiPsHasCompletedScope (
    236            1.1    jruoho     ACPI_PARSE_STATE        *ParserState);
    237            1.1    jruoho 
    238            1.1    jruoho void
    239            1.1    jruoho AcpiPsPopScope (
    240            1.1    jruoho     ACPI_PARSE_STATE        *ParserState,
    241            1.1    jruoho     ACPI_PARSE_OBJECT       **Op,
    242            1.1    jruoho     UINT32                  *ArgList,
    243            1.1    jruoho     UINT32                  *ArgCount);
    244            1.1    jruoho 
    245            1.1    jruoho ACPI_STATUS
    246            1.1    jruoho AcpiPsPushScope (
    247            1.1    jruoho     ACPI_PARSE_STATE        *ParserState,
    248            1.1    jruoho     ACPI_PARSE_OBJECT       *Op,
    249            1.1    jruoho     UINT32                  RemainingArgs,
    250            1.1    jruoho     UINT32                  ArgCount);
    251            1.1    jruoho 
    252            1.1    jruoho void
    253            1.1    jruoho AcpiPsCleanupScope (
    254            1.1    jruoho     ACPI_PARSE_STATE        *state);
    255            1.1    jruoho 
    256            1.1    jruoho 
    257            1.1    jruoho /*
    258            1.1    jruoho  * pstree - parse tree manipulation routines
    259            1.1    jruoho  */
    260            1.1    jruoho void
    261            1.1    jruoho AcpiPsAppendArg(
    262            1.1    jruoho     ACPI_PARSE_OBJECT       *op,
    263            1.1    jruoho     ACPI_PARSE_OBJECT       *arg);
    264            1.1    jruoho 
    265            1.1    jruoho ACPI_PARSE_OBJECT*
    266            1.1    jruoho AcpiPsFind (
    267            1.1    jruoho     ACPI_PARSE_OBJECT       *Scope,
    268            1.1    jruoho     char                    *Path,
    269            1.1    jruoho     UINT16                  Opcode,
    270            1.1    jruoho     UINT32                  Create);
    271            1.1    jruoho 
    272            1.1    jruoho ACPI_PARSE_OBJECT *
    273            1.1    jruoho AcpiPsGetArg(
    274            1.1    jruoho     ACPI_PARSE_OBJECT       *op,
    275            1.1    jruoho     UINT32                   argn);
    276            1.1    jruoho 
    277            1.1    jruoho ACPI_PARSE_OBJECT *
    278            1.1    jruoho AcpiPsGetDepthNext (
    279            1.1    jruoho     ACPI_PARSE_OBJECT       *Origin,
    280            1.1    jruoho     ACPI_PARSE_OBJECT       *Op);
    281            1.1    jruoho 
    282            1.1    jruoho 
    283            1.1    jruoho /*
    284            1.1    jruoho  * pswalk - parse tree walk routines
    285            1.1    jruoho  */
    286            1.1    jruoho ACPI_STATUS
    287            1.1    jruoho AcpiPsWalkParsedAml (
    288            1.1    jruoho     ACPI_PARSE_OBJECT       *StartOp,
    289            1.1    jruoho     ACPI_PARSE_OBJECT       *EndOp,
    290            1.1    jruoho     ACPI_OPERAND_OBJECT     *MthDesc,
    291            1.1    jruoho     ACPI_NAMESPACE_NODE     *StartNode,
    292            1.1    jruoho     ACPI_OPERAND_OBJECT     **Params,
    293            1.1    jruoho     ACPI_OPERAND_OBJECT     **CallerReturnDesc,
    294            1.1    jruoho     ACPI_OWNER_ID           OwnerId,
    295            1.1    jruoho     ACPI_PARSE_DOWNWARDS    DescendingCallback,
    296            1.1    jruoho     ACPI_PARSE_UPWARDS      AscendingCallback);
    297            1.1    jruoho 
    298            1.1    jruoho ACPI_STATUS
    299            1.1    jruoho AcpiPsGetNextWalkOp (
    300            1.1    jruoho     ACPI_WALK_STATE         *WalkState,
    301            1.1    jruoho     ACPI_PARSE_OBJECT       *Op,
    302            1.1    jruoho     ACPI_PARSE_UPWARDS      AscendingCallback);
    303            1.1    jruoho 
    304            1.1    jruoho ACPI_STATUS
    305            1.1    jruoho AcpiPsDeleteCompletedOp (
    306            1.1    jruoho     ACPI_WALK_STATE         *WalkState);
    307            1.1    jruoho 
    308            1.1    jruoho void
    309            1.1    jruoho AcpiPsDeleteParseTree (
    310            1.1    jruoho     ACPI_PARSE_OBJECT       *root);
    311            1.1    jruoho 
    312            1.1    jruoho 
    313            1.1    jruoho /*
    314            1.1    jruoho  * psutils - parser utilities
    315            1.1    jruoho  */
    316            1.1    jruoho ACPI_PARSE_OBJECT *
    317            1.1    jruoho AcpiPsCreateScopeOp (
    318        1.1.1.6  christos     UINT8                   *Aml);
    319            1.1    jruoho 
    320            1.1    jruoho void
    321            1.1    jruoho AcpiPsInitOp (
    322            1.1    jruoho     ACPI_PARSE_OBJECT       *op,
    323            1.1    jruoho     UINT16                  opcode);
    324            1.1    jruoho 
    325            1.1    jruoho ACPI_PARSE_OBJECT *
    326            1.1    jruoho AcpiPsAllocOp (
    327        1.1.1.6  christos     UINT16                  Opcode,
    328        1.1.1.6  christos     UINT8                   *Aml);
    329            1.1    jruoho 
    330            1.1    jruoho void
    331            1.1    jruoho AcpiPsFreeOp (
    332            1.1    jruoho     ACPI_PARSE_OBJECT       *Op);
    333            1.1    jruoho 
    334            1.1    jruoho BOOLEAN
    335            1.1    jruoho AcpiPsIsLeadingChar (
    336            1.1    jruoho     UINT32                  c);
    337            1.1    jruoho 
    338            1.1    jruoho UINT32
    339            1.1    jruoho AcpiPsGetName(
    340            1.1    jruoho     ACPI_PARSE_OBJECT       *op);
    341            1.1    jruoho 
    342            1.1    jruoho void
    343            1.1    jruoho AcpiPsSetName(
    344            1.1    jruoho     ACPI_PARSE_OBJECT       *op,
    345            1.1    jruoho     UINT32                  name);
    346            1.1    jruoho 
    347            1.1    jruoho 
    348            1.1    jruoho /*
    349            1.1    jruoho  * psdump - display parser tree
    350            1.1    jruoho  */
    351            1.1    jruoho UINT32
    352            1.1    jruoho AcpiPsSprintPath (
    353            1.1    jruoho     char                    *BufferStart,
    354            1.1    jruoho     UINT32                  BufferSize,
    355            1.1    jruoho     ACPI_PARSE_OBJECT       *Op);
    356            1.1    jruoho 
    357            1.1    jruoho UINT32
    358            1.1    jruoho AcpiPsSprintOp (
    359            1.1    jruoho     char                    *BufferStart,
    360            1.1    jruoho     UINT32                  BufferSize,
    361            1.1    jruoho     ACPI_PARSE_OBJECT       *Op);
    362            1.1    jruoho 
    363            1.1    jruoho void
    364            1.1    jruoho AcpiPsShow (
    365            1.1    jruoho     ACPI_PARSE_OBJECT       *op);
    366            1.1    jruoho 
    367            1.1    jruoho 
    368            1.1    jruoho #endif /* __ACPARSER_H__ */
    369