Home | History | Annotate | Line # | Download | only in compiler
aslhelpers.y revision 1.1
      1 NoEcho('
      2 /******************************************************************************
      3  *
      4  * Module Name: aslhelpers.y - helper and option terms
      5  *
      6  *****************************************************************************/
      7 
      8 /*
      9  * Copyright (C) 2000 - 2016, Intel Corp.
     10  * All rights reserved.
     11  *
     12  * Redistribution and use in source and binary forms, with or without
     13  * modification, are permitted provided that the following conditions
     14  * are met:
     15  * 1. Redistributions of source code must retain the above copyright
     16  *    notice, this list of conditions, and the following disclaimer,
     17  *    without modification.
     18  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
     19  *    substantially similar to the "NO WARRANTY" disclaimer below
     20  *    ("Disclaimer") and any redistribution must be conditioned upon
     21  *    including a substantially similar Disclaimer requirement for further
     22  *    binary redistribution.
     23  * 3. Neither the names of the above-listed copyright holders nor the names
     24  *    of any contributors may be used to endorse or promote products derived
     25  *    from this software without specific prior written permission.
     26  *
     27  * Alternatively, this software may be distributed under the terms of the
     28  * GNU General Public License ("GPL") version 2 as published by the Free
     29  * Software Foundation.
     30  *
     31  * NO WARRANTY
     32  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     33  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     34  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
     35  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     36  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     37  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     38  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     39  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     40  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
     41  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     42  * POSSIBILITY OF SUCH DAMAGES.
     43  */
     44 
     45 ')
     46 
     47 
     48 /*******************************************************************************
     49  *
     50  * ASL Helper Terms
     51  *
     52  ******************************************************************************/
     53 
     54 OptionalBusMasterKeyword
     55     : ','                                   {$$ = TrCreateLeafNode (
     56                                                 PARSEOP_BUSMASTERTYPE_MASTER);}
     57     | ',' PARSEOP_BUSMASTERTYPE_MASTER      {$$ = TrCreateLeafNode (
     58                                                 PARSEOP_BUSMASTERTYPE_MASTER);}
     59     | ',' PARSEOP_BUSMASTERTYPE_NOTMASTER   {$$ = TrCreateLeafNode (
     60                                                 PARSEOP_BUSMASTERTYPE_NOTMASTER);}
     61     ;
     62 
     63 OptionalAccessAttribTerm
     64     :                               {$$ = NULL;}
     65     | ','                           {$$ = NULL;}
     66     | ',' ByteConstExpr             {$$ = $2;}
     67     | ',' AccessAttribKeyword       {$$ = $2;}
     68     ;
     69 
     70 OptionalAccessSize
     71     :                               {$$ = TrCreateValuedLeafNode (
     72                                         PARSEOP_BYTECONST, 0);}
     73     | ','                           {$$ = TrCreateValuedLeafNode (
     74                                         PARSEOP_BYTECONST, 0);}
     75     | ',' ByteConstExpr             {$$ = $2;}
     76     ;
     77 
     78 OptionalAddressingMode
     79     : ','                           {$$ = NULL;}
     80     | ',' AddressingModeKeyword     {$$ = $2;}
     81     ;
     82 
     83 OptionalAddressRange
     84     :                               {$$ = NULL;}
     85     | ','                           {$$ = NULL;}
     86     | ',' AddressKeyword            {$$ = $2;}
     87     ;
     88 
     89 OptionalBitsPerByte
     90     : ','                           {$$ = NULL;}
     91     | ',' BitsPerByteKeyword        {$$ = $2;}
     92     ;
     93 
     94 OptionalBuffer_Last
     95     :                               {$$ = NULL;}
     96     | ','                           {$$ = NULL;}
     97     | ',' RawDataBufferTerm         {$$ = $2;}
     98     ;
     99 
    100 OptionalByteConstExpr
    101     :                               {$$ = NULL;}
    102     | ','                           {$$ = NULL;}
    103     | ',' ByteConstExpr             {$$ = $2;}
    104     ;
    105 
    106 OptionalDecodeType
    107     : ','                           {$$ = NULL;}
    108     | ',' DecodeKeyword             {$$ = $2;}
    109     ;
    110 
    111 OptionalDevicePolarity
    112     : ','                           {$$ = NULL;}
    113     | ',' DevicePolarityKeyword     {$$ = $2;}
    114     ;
    115 
    116 OptionalDWordConstExpr
    117     :                               {$$ = NULL;}
    118     | ','                           {$$ = NULL;}
    119     | ',' DWordConstExpr            {$$ = $2;}
    120     ;
    121 
    122 OptionalEndian
    123     : ','                           {$$ = NULL;}
    124     | ',' EndianKeyword             {$$ = $2;}
    125     ;
    126 
    127 OptionalFlowControl
    128     : ','                           {$$ = NULL;}
    129     | ',' FlowControlKeyword        {$$ = $2;}
    130     ;
    131 
    132 OptionalIoRestriction
    133     : ','                           {$$ = NULL;}
    134     | ',' IoRestrictionKeyword      {$$ = $2;}
    135     ;
    136 
    137 OptionalListString
    138     :                               {$$ = TrCreateValuedLeafNode (
    139                                         PARSEOP_STRING_LITERAL,
    140                                         ACPI_TO_INTEGER (""));}   /* Placeholder is a NULL string */
    141     | ','                           {$$ = TrCreateValuedLeafNode (
    142                                         PARSEOP_STRING_LITERAL,
    143                                         ACPI_TO_INTEGER (""));}   /* Placeholder is a NULL string */
    144     | ',' TermArg                   {$$ = $2;}
    145     ;
    146 
    147 OptionalMaxType
    148     : ','                           {$$ = NULL;}
    149     | ',' MaxKeyword                {$$ = $2;}
    150     ;
    151 
    152 OptionalMemType
    153     : ','                           {$$ = NULL;}
    154     | ',' MemTypeKeyword            {$$ = $2;}
    155     ;
    156 
    157 OptionalMinType
    158     : ','                           {$$ = NULL;}
    159     | ',' MinKeyword                {$$ = $2;}
    160     ;
    161 
    162 OptionalNameString
    163     :                               {$$ = NULL;}
    164     | ','                           {$$ = NULL;}
    165     | ',' NameString                {$$ = $2;}
    166     ;
    167 
    168 OptionalNameString_Last
    169     :                               {$$ = NULL;}
    170     | ','                           {$$ = NULL;}
    171     | ',' NameString                {$$ = $2;}
    172     ;
    173 
    174 OptionalNameString_First
    175     :                               {$$ = TrCreateLeafNode (
    176                                         PARSEOP_ZERO);}
    177     | NameString                    {$$ = $1;}
    178     ;
    179 
    180 OptionalObjectTypeKeyword
    181     :                               {$$ = TrCreateLeafNode (
    182                                         PARSEOP_OBJECTTYPE_UNK);}
    183     | ',' ObjectTypeKeyword         {$$ = $2;}
    184     ;
    185 
    186 OptionalParityType
    187     : ','                           {$$ = NULL;}
    188     | ',' ParityTypeKeyword         {$$ = $2;}
    189     ;
    190 
    191 OptionalQWordConstExpr
    192     :                               {$$ = NULL;}
    193     | ','                           {$$ = NULL;}
    194     | ',' QWordConstExpr            {$$ = $2;}
    195     ;
    196 
    197 OptionalRangeType
    198     : ','                           {$$ = NULL;}
    199     | ',' RangeTypeKeyword          {$$ = $2;}
    200     ;
    201 
    202 OptionalReadWriteKeyword
    203     :                                   {$$ = TrCreateLeafNode (
    204                                             PARSEOP_READWRITETYPE_BOTH);}
    205     | PARSEOP_READWRITETYPE_BOTH        {$$ = TrCreateLeafNode (
    206                                             PARSEOP_READWRITETYPE_BOTH);}
    207     | PARSEOP_READWRITETYPE_READONLY    {$$ = TrCreateLeafNode (
    208                                             PARSEOP_READWRITETYPE_READONLY);}
    209     ;
    210 
    211 OptionalResourceType_First
    212     :                               {$$ = TrCreateLeafNode (
    213                                         PARSEOP_RESOURCETYPE_CONSUMER);}
    214     | ResourceTypeKeyword           {$$ = $1;}
    215     ;
    216 
    217 OptionalResourceType
    218     :                               {$$ = TrCreateLeafNode (
    219                                         PARSEOP_RESOURCETYPE_CONSUMER);}
    220     | ','                           {$$ = TrCreateLeafNode (
    221                                         PARSEOP_RESOURCETYPE_CONSUMER);}
    222     | ',' ResourceTypeKeyword       {$$ = $2;}
    223     ;
    224 
    225 OptionalSlaveMode
    226     : ','                           {$$ = NULL;}
    227     | ',' SlaveModeKeyword          {$$ = $2;}
    228     ;
    229 
    230 OptionalShareType
    231     :                               {$$ = NULL;}
    232     | ','                           {$$ = NULL;}
    233     | ',' ShareTypeKeyword          {$$ = $2;}
    234     ;
    235 
    236 OptionalShareType_First
    237     :                               {$$ = NULL;}
    238     | ShareTypeKeyword              {$$ = $1;}
    239     ;
    240 
    241 OptionalStopBits
    242     : ','                           {$$ = NULL;}
    243     | ',' StopBitsKeyword           {$$ = $2;}
    244     ;
    245 
    246 OptionalStringData
    247     :                               {$$ = NULL;}
    248     | ','                           {$$ = NULL;}
    249     | ',' StringData                {$$ = $2;}
    250     ;
    251 
    252 OptionalTranslationType_Last
    253     :                               {$$ = NULL;}
    254     | ','                           {$$ = NULL;}
    255     | ',' TranslationKeyword        {$$ = $2;}
    256     ;
    257 
    258 OptionalType
    259     :                               {$$ = NULL;}
    260     | ','                           {$$ = NULL;}
    261     | ',' TypeKeyword               {$$ = $2;}
    262     ;
    263 
    264 OptionalType_Last
    265     :                               {$$ = NULL;}
    266     | ','                           {$$ = NULL;}
    267     | ',' TypeKeyword               {$$ = $2;}
    268     ;
    269 
    270 OptionalWireMode
    271     : ','                           {$$ = NULL;}
    272     | ',' WireModeKeyword           {$$ = $2;}
    273     ;
    274 
    275 OptionalWordConstExpr
    276     : ','                           {$$ = NULL;}
    277     | ',' WordConstExpr             {$$ = $2;}
    278     ;
    279 
    280 OptionalXferSize
    281     :                               {$$ = TrCreateValuedLeafNode (
    282                                         PARSEOP_XFERSIZE_32, 2);}
    283     | ','                           {$$ = TrCreateValuedLeafNode (
    284                                         PARSEOP_XFERSIZE_32, 2);}
    285     | ',' XferSizeKeyword           {$$ = $2;}
    286     ;
    287