The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/dev/acpica/compiler/aslresources.y

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 NoEcho('
    2 /******************************************************************************
    3  *
    4  * Module Name: aslresources.y - Bison/Yacc production rules for resources
    5  *                             - Keep this file synched with the
    6  *                               CvParseOpBlockType function in cvcompiler.c
    7  *
    8  *****************************************************************************/
    9 
   10 /******************************************************************************
   11  *
   12  * 1. Copyright Notice
   13  *
   14  * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
   15  * All rights reserved.
   16  *
   17  * 2. License
   18  *
   19  * 2.1. This is your license from Intel Corp. under its intellectual property
   20  * rights. You may have additional license terms from the party that provided
   21  * you this software, covering your right to use that party's intellectual
   22  * property rights.
   23  *
   24  * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
   25  * copy of the source code appearing in this file ("Covered Code") an
   26  * irrevocable, perpetual, worldwide license under Intel's copyrights in the
   27  * base code distributed originally by Intel ("Original Intel Code") to copy,
   28  * make derivatives, distribute, use and display any portion of the Covered
   29  * Code in any form, with the right to sublicense such rights; and
   30  *
   31  * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
   32  * license (with the right to sublicense), under only those claims of Intel
   33  * patents that are infringed by the Original Intel Code, to make, use, sell,
   34  * offer to sell, and import the Covered Code and derivative works thereof
   35  * solely to the minimum extent necessary to exercise the above copyright
   36  * license, and in no event shall the patent license extend to any additions
   37  * to or modifications of the Original Intel Code. No other license or right
   38  * is granted directly or by implication, estoppel or otherwise;
   39  *
   40  * The above copyright and patent license is granted only if the following
   41  * conditions are met:
   42  *
   43  * 3. Conditions
   44  *
   45  * 3.1. Redistribution of Source with Rights to Further Distribute Source.
   46  * Redistribution of source code of any substantial portion of the Covered
   47  * Code or modification with rights to further distribute source must include
   48  * the above Copyright Notice, the above License, this list of Conditions,
   49  * and the following Disclaimer and Export Compliance provision. In addition,
   50  * Licensee must cause all Covered Code to which Licensee contributes to
   51  * contain a file documenting the changes Licensee made to create that Covered
   52  * Code and the date of any change. Licensee must include in that file the
   53  * documentation of any changes made by any predecessor Licensee. Licensee
   54  * must include a prominent statement that the modification is derived,
   55  * directly or indirectly, from Original Intel Code.
   56  *
   57  * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
   58  * Redistribution of source code of any substantial portion of the Covered
   59  * Code or modification without rights to further distribute source must
   60  * include the following Disclaimer and Export Compliance provision in the
   61  * documentation and/or other materials provided with distribution. In
   62  * addition, Licensee may not authorize further sublicense of source of any
   63  * portion of the Covered Code, and must include terms to the effect that the
   64  * license from Licensee to its licensee is limited to the intellectual
   65  * property embodied in the software Licensee provides to its licensee, and
   66  * not to intellectual property embodied in modifications its licensee may
   67  * make.
   68  *
   69  * 3.3. Redistribution of Executable. Redistribution in executable form of any
   70  * substantial portion of the Covered Code or modification must reproduce the
   71  * above Copyright Notice, and the following Disclaimer and Export Compliance
   72  * provision in the documentation and/or other materials provided with the
   73  * distribution.
   74  *
   75  * 3.4. Intel retains all right, title, and interest in and to the Original
   76  * Intel Code.
   77  *
   78  * 3.5. Neither the name Intel nor any other trademark owned or controlled by
   79  * Intel shall be used in advertising or otherwise to promote the sale, use or
   80  * other dealings in products derived from or relating to the Covered Code
   81  * without prior written authorization from Intel.
   82  *
   83  * 4. Disclaimer and Export Compliance
   84  *
   85  * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
   86  * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
   87  * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
   88  * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
   89  * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
   90  * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
   91  * PARTICULAR PURPOSE.
   92  *
   93  * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
   94  * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
   95  * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
   96  * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
   97  * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
   98  * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
   99  * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
  100  * LIMITED REMEDY.
  101  *
  102  * 4.3. Licensee shall not export, either directly or indirectly, any of this
  103  * software or system incorporating such software without first obtaining any
  104  * required license or other approval from the U. S. Department of Commerce or
  105  * any other agency or department of the United States Government. In the
  106  * event Licensee exports any such software from the United States or
  107  * re-exports any such software from a foreign destination, Licensee shall
  108  * ensure that the distribution and export/re-export of the software is in
  109  * compliance with all laws, regulations, orders, or other restrictions of the
  110  * U.S. Export Administration Regulations. Licensee agrees that neither it nor
  111  * any of its subsidiaries will export/re-export any technical data, process,
  112  * software, or service, directly or indirectly, to any country for which the
  113  * United States government or any agency thereof requires an export license,
  114  * other governmental approval, or letter of assurance, without first obtaining
  115  * such license, approval or letter.
  116  *
  117  *****************************************************************************
  118  *
  119  * Alternatively, you may choose to be licensed under the terms of the
  120  * following license:
  121  *
  122  * Redistribution and use in source and binary forms, with or without
  123  * modification, are permitted provided that the following conditions
  124  * are met:
  125  * 1. Redistributions of source code must retain the above copyright
  126  *    notice, this list of conditions, and the following disclaimer,
  127  *    without modification.
  128  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
  129  *    substantially similar to the "NO WARRANTY" disclaimer below
  130  *    ("Disclaimer") and any redistribution must be conditioned upon
  131  *    including a substantially similar Disclaimer requirement for further
  132  *    binary redistribution.
  133  * 3. Neither the names of the above-listed copyright holders nor the names
  134  *    of any contributors may be used to endorse or promote products derived
  135  *    from this software without specific prior written permission.
  136  *
  137  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  138  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  139  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  140  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  141  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  142  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  143  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  144  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  145  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  146  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  147  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  148  *
  149  * Alternatively, you may choose to be licensed under the terms of the
  150  * GNU General Public License ("GPL") version 2 as published by the Free
  151  * Software Foundation.
  152  *
  153  *****************************************************************************/
  154 
  155 ')
  156 
  157 
  158 /*******************************************************************************
  159  *
  160  * ASL Resource Template Terms
  161  *
  162  ******************************************************************************/
  163 
  164 /*
  165  * Note: Create two default nodes to allow conversion to a Buffer AML opcode
  166  * Also, insert the EndTag at the end of the template.
  167  */
  168 ResourceTemplateTerm
  169     : PARSEOP_RESOURCETEMPLATE      {COMMENT_CAPTURE_OFF;}
  170         OptionalParentheses
  171         '{'
  172         ResourceMacroList '}'       {$$ = TrCreateOp (PARSEOP_RESOURCETEMPLATE,4,
  173                                           TrCreateLeafOp (PARSEOP_DEFAULT_ARG),
  174                                           TrCreateLeafOp (PARSEOP_DEFAULT_ARG),
  175                                           $5,
  176                                           TrCreateLeafOp (PARSEOP_ENDTAG));
  177                                      COMMENT_CAPTURE_ON;}
  178     ;
  179 
  180 OptionalParentheses
  181     :                               {$$ = NULL;}
  182     | PARSEOP_OPEN_PAREN
  183         PARSEOP_CLOSE_PAREN         {$$ = NULL;}
  184     ;
  185 
  186 ResourceMacroList
  187     :                               {$$ = NULL;}
  188     | ResourceMacroList
  189         ResourceMacroTerm           {$$ = TrLinkPeerOp ($1,$2);}
  190     ;
  191 
  192 ResourceMacroTerm
  193     : Csi2SerialBusTerm             {}
  194     | DMATerm                       {}
  195     | DWordIOTerm                   {}
  196     | DWordMemoryTerm               {}
  197     | DWordSpaceTerm                {}
  198     | EndDependentFnTerm            {}
  199     | ExtendedIOTerm                {}
  200     | ExtendedMemoryTerm            {}
  201     | ExtendedSpaceTerm             {}
  202     | FixedDmaTerm                  {}
  203     | FixedIOTerm                   {}
  204     | GpioIntTerm                   {}
  205     | GpioIoTerm                    {}
  206     | I2cSerialBusTerm              {}
  207     | I2cSerialBusTermV2            {}
  208     | InterruptTerm                 {}
  209     | IOTerm                        {}
  210     | IRQNoFlagsTerm                {}
  211     | IRQTerm                       {}
  212     | Memory24Term                  {}
  213     | Memory32FixedTerm             {}
  214     | Memory32Term                  {}
  215     | PinConfigTerm                 {}
  216     | PinFunctionTerm               {}
  217     | PinGroupTerm                  {}
  218     | PinGroupConfigTerm            {}
  219     | PinGroupFunctionTerm          {}
  220     | QWordIOTerm                   {}
  221     | QWordMemoryTerm               {}
  222     | QWordSpaceTerm                {}
  223     | RegisterTerm                  {}
  224     | SpiSerialBusTerm              {}
  225     | SpiSerialBusTermV2            {}
  226     | StartDependentFnNoPriTerm     {}
  227     | StartDependentFnTerm          {}
  228     | UartSerialBusTerm             {}
  229     | UartSerialBusTermV2           {}
  230     | VendorLongTerm                {}
  231     | VendorShortTerm               {}
  232     | WordBusNumberTerm             {}
  233     | WordIOTerm                    {}
  234     | WordSpaceTerm                 {}
  235     ;
  236 
  237 Csi2SerialBusTerm
  238     : PARSEOP_CSI2_SERIALBUS
  239         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_CSI2_SERIALBUS);}
  240         OptionalSlaveMode_First     {UtCheckIntegerRange ($4, 0x00, 0x01);} /* 04: SlaveMode */
  241         ',' ByteConstExpr           {UtCheckIntegerRange ($7, 0x00, 0x03);} /* 07: PhyType */
  242         OptionalByteConstExpr       {UtCheckIntegerRange ($9, 0x00, 0xFC);} /* 09: LocalPortInstance */
  243         ',' StringData              /* 12: ResourceSource */
  244         ',' ByteConstExpr           /* 14: ResourceSourceIndex */
  245         OptionalResourceType        /* 15; ResourceType (ResourceUsage) */
  246         OptionalNameString          /* 16: DescriptorName */
  247         OptionalBuffer_Last         /* 17: VendorData */
  248         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,8,
  249                                         $4,$7,$9,$12,$14,$15,$16,$17);}
  250     | PARSEOP_CSI2_SERIALBUS
  251         PARSEOP_OPEN_PAREN
  252         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  253 
  254 DMATerm
  255     : PARSEOP_DMA
  256         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_DMA);}
  257         DMATypeKeyword
  258         OptionalBusMasterKeyword
  259         ',' XferTypeKeyword
  260         OptionalNameString_Last
  261         PARSEOP_CLOSE_PAREN '{'
  262             ByteList '}'            {$$ = TrLinkOpChildren ($<n>3,5,$4,$5,$7,$8,$11);}
  263     | PARSEOP_DMA
  264         PARSEOP_OPEN_PAREN
  265         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  266     ;
  267 
  268 DWordIOTerm
  269     : PARSEOP_DWORDIO
  270         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDIO);}
  271         OptionalResourceType_First
  272         OptionalMinType
  273         OptionalMaxType
  274         OptionalDecodeType
  275         OptionalRangeType
  276         ',' DWordConstExpr
  277         ',' DWordConstExpr
  278         ',' DWordConstExpr
  279         ',' DWordConstExpr
  280         ',' DWordConstExpr
  281         OptionalByteConstExpr
  282         OptionalStringData
  283         OptionalNameString
  284         OptionalType
  285         OptionalTranslationType_Last
  286         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,15,
  287                                         $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
  288     | PARSEOP_DWORDIO
  289         PARSEOP_OPEN_PAREN
  290         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  291     ;
  292 
  293 DWordMemoryTerm
  294     : PARSEOP_DWORDMEMORY
  295         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDMEMORY);}
  296         OptionalResourceType_First
  297         OptionalDecodeType
  298         OptionalMinType
  299         OptionalMaxType
  300         OptionalMemType
  301         ',' OptionalReadWriteKeyword
  302         ',' DWordConstExpr
  303         ',' DWordConstExpr
  304         ',' DWordConstExpr
  305         ',' DWordConstExpr
  306         ',' DWordConstExpr
  307         OptionalByteConstExpr
  308         OptionalStringData
  309         OptionalNameString
  310         OptionalAddressRange
  311         OptionalType_Last
  312         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,16,
  313                                         $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
  314     | PARSEOP_DWORDMEMORY
  315         PARSEOP_OPEN_PAREN
  316         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  317     ;
  318 
  319 DWordSpaceTerm
  320     : PARSEOP_DWORDSPACE
  321         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDSPACE);}
  322         ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
  323         OptionalResourceType
  324         OptionalDecodeType
  325         OptionalMinType
  326         OptionalMaxType
  327         ',' ByteConstExpr
  328         ',' DWordConstExpr
  329         ',' DWordConstExpr
  330         ',' DWordConstExpr
  331         ',' DWordConstExpr
  332         ',' DWordConstExpr
  333         OptionalByteConstExpr
  334         OptionalStringData
  335         OptionalNameString_Last
  336         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,14,
  337                                         $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
  338     | PARSEOP_DWORDSPACE
  339         PARSEOP_OPEN_PAREN
  340         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  341     ;
  342 
  343 EndDependentFnTerm
  344     : PARSEOP_ENDDEPENDENTFN
  345         PARSEOP_OPEN_PAREN
  346         PARSEOP_CLOSE_PAREN         {$$ = TrCreateLeafOp (PARSEOP_ENDDEPENDENTFN);}
  347     | PARSEOP_ENDDEPENDENTFN
  348         PARSEOP_OPEN_PAREN
  349         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  350     ;
  351 
  352 ExtendedIOTerm
  353     : PARSEOP_EXTENDEDIO
  354         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_EXTENDEDIO);}
  355         OptionalResourceType_First
  356         OptionalMinType
  357         OptionalMaxType
  358         OptionalDecodeType
  359         OptionalRangeType
  360         ',' QWordConstExpr
  361         ',' QWordConstExpr
  362         ',' QWordConstExpr
  363         ',' QWordConstExpr
  364         ',' QWordConstExpr
  365         OptionalQWordConstExpr
  366         OptionalNameString
  367         OptionalType
  368         OptionalTranslationType_Last
  369         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,14,
  370                                         $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
  371     | PARSEOP_EXTENDEDIO
  372         PARSEOP_OPEN_PAREN
  373         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  374     ;
  375 
  376 ExtendedMemoryTerm
  377     : PARSEOP_EXTENDEDMEMORY
  378         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_EXTENDEDMEMORY);}
  379         OptionalResourceType_First
  380         OptionalDecodeType
  381         OptionalMinType
  382         OptionalMaxType
  383         OptionalMemType
  384         ',' OptionalReadWriteKeyword
  385         ',' QWordConstExpr
  386         ',' QWordConstExpr
  387         ',' QWordConstExpr
  388         ',' QWordConstExpr
  389         ',' QWordConstExpr
  390         OptionalQWordConstExpr
  391         OptionalNameString
  392         OptionalAddressRange
  393         OptionalType_Last
  394         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,15,
  395                                         $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
  396     | PARSEOP_EXTENDEDMEMORY
  397         PARSEOP_OPEN_PAREN
  398         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  399     ;
  400 
  401 ExtendedSpaceTerm
  402     : PARSEOP_EXTENDEDSPACE PARSEOP_OPEN_PAREN     {$<n>$ = TrCreateLeafOp (PARSEOP_EXTENDEDSPACE);}
  403         ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
  404         OptionalResourceType
  405         OptionalDecodeType
  406         OptionalMinType
  407         OptionalMaxType
  408         ',' ByteConstExpr
  409         ',' QWordConstExpr
  410         ',' QWordConstExpr
  411         ',' QWordConstExpr
  412         ',' QWordConstExpr
  413         ',' QWordConstExpr
  414         OptionalQWordConstExpr
  415         OptionalNameString_Last
  416         PARSEOP_CLOSE_PAREN                         {$$ = TrLinkOpChildren ($<n>3,13,
  417                                         $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
  418     | PARSEOP_EXTENDEDSPACE
  419         PARSEOP_OPEN_PAREN
  420         error PARSEOP_CLOSE_PAREN                   {$$ = AslDoError(); yyclearin;}
  421     ;
  422 
  423 FixedDmaTerm
  424     : PARSEOP_FIXEDDMA
  425         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_FIXEDDMA);}
  426         WordConstExpr               /* 04: DMA RequestLines */
  427         ',' WordConstExpr           /* 06: DMA Channels */
  428         OptionalXferSize            /* 07: DMA TransferSize */
  429         OptionalNameString          /* 08: DescriptorName */
  430         PARSEOP_CLOSE_PAREN                         {$$ = TrLinkOpChildren ($<n>3,4,$4,$6,$7,$8);}
  431     | PARSEOP_FIXEDDMA
  432         PARSEOP_OPEN_PAREN
  433         error PARSEOP_CLOSE_PAREN                   {$$ = AslDoError(); yyclearin;}
  434     ;
  435 
  436 FixedIOTerm
  437     : PARSEOP_FIXEDIO
  438         PARSEOP_OPEN_PAREN           {$<n>$ = TrCreateLeafOp (PARSEOP_FIXEDIO);}
  439         WordConstExpr
  440         ',' ByteConstExpr
  441         OptionalNameString_Last
  442         PARSEOP_CLOSE_PAREN                         {$$ = TrLinkOpChildren ($<n>3,3,$4,$6,$7);}
  443     | PARSEOP_FIXEDIO
  444         PARSEOP_OPEN_PAREN
  445         error PARSEOP_CLOSE_PAREN                   {$$ = AslDoError(); yyclearin;}
  446     ;
  447 
  448 GpioIntTerm
  449     : PARSEOP_GPIO_INT
  450         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_GPIO_INT);}
  451         InterruptTypeKeyword        /* 04: InterruptType */
  452         ',' InterruptLevel          /* 06: InterruptLevel */
  453         OptionalShareType           /* 07: SharedType */
  454         ',' PinConfigByte           /* 09: PinConfig */
  455         OptionalWordConstExpr       /* 10: DebounceTimeout */
  456         ',' StringData              /* 12: ResourceSource */
  457         OptionalByteConstExpr       /* 13: ResourceSourceIndex */
  458         OptionalResourceType        /* 14: ResourceType */
  459         OptionalNameString          /* 15: DescriptorName */
  460         OptionalBuffer_Last         /* 16: VendorData */
  461         PARSEOP_CLOSE_PAREN '{'
  462             DWordConstExpr '}'      {$$ = TrLinkOpChildren ($<n>3,11,
  463                                         $4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);}
  464     | PARSEOP_GPIO_INT
  465         PARSEOP_OPEN_PAREN
  466         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  467     ;
  468 
  469 GpioIoTerm
  470     : PARSEOP_GPIO_IO
  471         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_GPIO_IO);}
  472         OptionalShareType_First     /* 04: SharedType */
  473         ',' PinConfigByte           /* 06: PinConfig */
  474         OptionalWordConstExpr       /* 07: DebounceTimeout */
  475         OptionalWordConstExpr       /* 08: DriveStrength */
  476         OptionalIoRestriction       /* 09: IoRestriction */
  477         ',' StringData              /* 11: ResourceSource */
  478         OptionalByteConstExpr       /* 12: ResourceSourceIndex */
  479         OptionalResourceType        /* 13: ResourceType */
  480         OptionalNameString          /* 14: DescriptorName */
  481         OptionalBuffer_Last         /* 15: VendorData */
  482         PARSEOP_CLOSE_PAREN '{'
  483             DWordList '}'           {$$ = TrLinkOpChildren ($<n>3,11,
  484                                         $4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);}
  485     | PARSEOP_GPIO_IO
  486         PARSEOP_OPEN_PAREN
  487         error PARSEOP_CLOSE_PAREN                   {$$ = AslDoError(); yyclearin;}
  488     ;
  489 
  490 I2cSerialBusTerm
  491     : PARSEOP_I2C_SERIALBUS
  492         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_I2C_SERIALBUS);}
  493         WordConstExpr               /* 04: SlaveAddress */
  494         OptionalSlaveMode           /* 05: SlaveMode */
  495         ',' DWordConstExpr          /* 07: ConnectionSpeed */
  496         OptionalAddressingMode      /* 08: AddressingMode */
  497         ',' StringData              /* 10: ResourceSource */
  498         OptionalByteConstExpr       /* 11: ResourceSourceIndex */
  499         OptionalResourceType        /* 12: ResourceType */
  500         OptionalNameString          /* 13: DescriptorName */
  501         OptionalBuffer_Last         /* 14: VendorData */
  502         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,10,
  503                                         $4,$5,$7,$8,$10,$11,$12,$13,
  504                                         TrCreateLeafOp (PARSEOP_DEFAULT_ARG),$14);}
  505     | PARSEOP_I2C_SERIALBUS
  506         PARSEOP_OPEN_PAREN
  507         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  508     ;
  509 
  510 I2cSerialBusTermV2
  511     : PARSEOP_I2C_SERIALBUS_V2
  512         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_I2C_SERIALBUS_V2);}
  513         WordConstExpr               /* 04: SlaveAddress */
  514         OptionalSlaveMode           /* 05: SlaveMode */
  515         ',' DWordConstExpr          /* 07: ConnectionSpeed */
  516         OptionalAddressingMode      /* 08: AddressingMode */
  517         ',' StringData              /* 10: ResourceSource */
  518         OptionalByteConstExpr       /* 11: ResourceSourceIndex */
  519         OptionalResourceType        /* 12: ResourceType */
  520         OptionalNameString          /* 13: DescriptorName */
  521         OptionalShareType           /* 14: Share */
  522         OptionalBuffer_Last         /* 15: VendorData */
  523         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,10,
  524                                         $4,$5,$7,$8,$10,$11,$12,$13,$14,$15);}
  525     | PARSEOP_I2C_SERIALBUS_V2
  526         PARSEOP_OPEN_PAREN
  527         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  528     ;
  529 
  530 InterruptTerm
  531     : PARSEOP_INTERRUPT
  532         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_INTERRUPT);}
  533         OptionalResourceType_First
  534         ',' InterruptTypeKeyword
  535         ',' InterruptLevel
  536         OptionalShareType
  537         OptionalByteConstExpr
  538         OptionalStringData
  539         OptionalNameString_Last
  540         PARSEOP_CLOSE_PAREN '{'
  541             DWordList '}'           {$$ = TrLinkOpChildren ($<n>3,8,
  542                                         $4,$6,$8,$9,$10,$11,$12,$15);}
  543     | PARSEOP_INTERRUPT
  544         PARSEOP_OPEN_PAREN
  545         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  546     ;
  547 
  548 IOTerm
  549     : PARSEOP_IO
  550         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_IO);}
  551         IODecodeKeyword
  552         ',' WordConstExpr
  553         ',' WordConstExpr
  554         ',' ByteConstExpr
  555         ',' ByteConstExpr
  556         OptionalNameString_Last
  557         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
  558     | PARSEOP_IO
  559         PARSEOP_OPEN_PAREN
  560         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  561     ;
  562 
  563 IRQNoFlagsTerm
  564     : PARSEOP_IRQNOFLAGS
  565         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_IRQNOFLAGS);}
  566         OptionalNameString_First
  567         PARSEOP_CLOSE_PAREN '{'
  568             ByteList '}'            {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
  569     | PARSEOP_IRQNOFLAGS
  570         PARSEOP_OPEN_PAREN
  571         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  572     ;
  573 
  574 IRQTerm
  575     : PARSEOP_IRQ
  576         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_IRQ);}
  577         InterruptTypeKeyword
  578         ',' InterruptLevel
  579         OptionalShareType
  580         OptionalNameString_Last
  581         PARSEOP_CLOSE_PAREN '{'
  582             ByteList '}'            {$$ = TrLinkOpChildren ($<n>3,5,$4,$6,$7,$8,$11);}
  583     | PARSEOP_IRQ
  584         PARSEOP_OPEN_PAREN
  585         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  586     ;
  587 
  588 Memory24Term
  589     : PARSEOP_MEMORY24
  590         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_MEMORY24);}
  591         OptionalReadWriteKeyword
  592         ',' WordConstExpr
  593         ',' WordConstExpr
  594         ',' WordConstExpr
  595         ',' WordConstExpr
  596         OptionalNameString_Last
  597         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
  598     | PARSEOP_MEMORY24
  599         PARSEOP_OPEN_PAREN
  600         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  601     ;
  602 
  603 Memory32FixedTerm
  604     : PARSEOP_MEMORY32FIXED
  605         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_MEMORY32FIXED);}
  606         OptionalReadWriteKeyword
  607         ',' DWordConstExpr
  608         ',' DWordConstExpr
  609         OptionalNameString_Last
  610         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,4,$4,$6,$8,$9);}
  611     | PARSEOP_MEMORY32FIXED
  612         PARSEOP_OPEN_PAREN
  613         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  614     ;
  615 
  616 Memory32Term
  617     : PARSEOP_MEMORY32
  618         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_MEMORY32);}
  619         OptionalReadWriteKeyword
  620         ',' DWordConstExpr
  621         ',' DWordConstExpr
  622         ',' DWordConstExpr
  623         ',' DWordConstExpr
  624         OptionalNameString_Last
  625         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
  626     | PARSEOP_MEMORY32
  627         PARSEOP_OPEN_PAREN
  628         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  629     ;
  630 
  631 PinConfigTerm
  632     : PARSEOP_PINCONFIG
  633         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_PINCONFIG);}
  634         OptionalShareType_First     /* 04: SharedType */
  635         ',' ByteConstExpr           /* 06: PinConfigType */
  636         ',' DWordConstExpr          /* 08: PinConfigValue */
  637         ',' StringData              /* 10: ResourceSource */
  638         OptionalByteConstExpr       /* 11: ResourceSourceIndex */
  639         OptionalResourceType        /* 12: ResourceType */
  640         OptionalNameString          /* 13: DescriptorName */
  641         OptionalBuffer_Last         /* 14: VendorData */
  642         PARSEOP_CLOSE_PAREN '{'
  643             DWordList '}'           {$$ = TrLinkOpChildren ($<n>3,9,
  644                                         $4,$6,$8,$10,$11,$12,$13,$14,$17);}
  645     | PARSEOP_PINCONFIG
  646         PARSEOP_OPEN_PAREN
  647         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  648     ;
  649 
  650 PinFunctionTerm
  651     : PARSEOP_PINFUNCTION
  652         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_PINFUNCTION);}
  653         OptionalShareType_First     /* 04: SharedType */
  654         ',' PinConfigByte           /* 06: PinConfig */
  655         ',' WordConstExpr           /* 08: FunctionNumber */
  656         ',' StringData              /* 10: ResourceSource */
  657         OptionalByteConstExpr       /* 11: ResourceSourceIndex */
  658         OptionalResourceType        /* 12: ResourceType */
  659         OptionalNameString          /* 13: DescriptorName */
  660         OptionalBuffer_Last         /* 14: VendorData */
  661         PARSEOP_CLOSE_PAREN '{'
  662             DWordList '}'           {$$ = TrLinkOpChildren ($<n>3,9,
  663                                         $4,$6,$8,$10,$11,$12,$13,$14,$17);}
  664     | PARSEOP_PINFUNCTION
  665         PARSEOP_OPEN_PAREN
  666         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  667     ;
  668 
  669 PinGroupTerm
  670     : PARSEOP_PINGROUP
  671         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_PINGROUP);}
  672         StringData                  /* 04: ResourceLabel */
  673         OptionalProducerResourceType /* 05: ResourceType */
  674         OptionalNameString          /* 06: DescriptorName */
  675         OptionalBuffer_Last         /* 07: VendorData */
  676         PARSEOP_CLOSE_PAREN '{'
  677             DWordList '}'           {$$ = TrLinkOpChildren ($<n>3,5,$4,$5,$6,$7,$10);}
  678     | PARSEOP_PINGROUP
  679         PARSEOP_OPEN_PAREN
  680         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  681     ;
  682 
  683 PinGroupConfigTerm
  684     : PARSEOP_PINGROUPCONFIG
  685         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_PINGROUPCONFIG);}
  686         OptionalShareType_First     /* 04: SharedType */
  687         ',' ByteConstExpr           /* 06: PinConfigType */
  688         ',' DWordConstExpr          /* 08: PinConfigValue */
  689         ',' StringData              /* 10: ResourceSource */
  690         OptionalByteConstExpr       /* 11: ResourceSourceIndex */
  691         ',' StringData              /* 13: ResourceSourceLabel */
  692         OptionalResourceType        /* 14: ResourceType */
  693         OptionalNameString          /* 15: DescriptorName */
  694         OptionalBuffer_Last         /* 16: VendorData */
  695         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,9,
  696                                         $4,$6,$8,$10,$11,$13,$14,$15,$16);}
  697     | PARSEOP_PINGROUPCONFIG
  698         PARSEOP_OPEN_PAREN
  699         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  700     ;
  701 
  702 PinGroupFunctionTerm
  703     : PARSEOP_PINGROUPFUNCTION
  704         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_PINGROUPFUNCTION);}
  705         OptionalShareType_First     /* 04: SharedType */
  706         ',' WordConstExpr           /* 06: FunctionNumber */
  707         ',' StringData              /* 08: ResourceSource */
  708         OptionalByteConstExpr       /* 09: ResourceSourceIndex */
  709         ',' StringData              /* 11: ResourceSourceLabel */
  710         OptionalResourceType        /* 12: ResourceType */
  711         OptionalNameString          /* 13: DescriptorName */
  712         OptionalBuffer_Last         /* 14: VendorData */
  713         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,8,
  714                                         $4,$6,$8,$9,$11,$12,$13,$14);}
  715     | PARSEOP_PINGROUPFUNCTION
  716         PARSEOP_OPEN_PAREN
  717         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  718     ;
  719 
  720 QWordIOTerm
  721     : PARSEOP_QWORDIO
  722         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDIO);}
  723         OptionalResourceType_First
  724         OptionalMinType
  725         OptionalMaxType
  726         OptionalDecodeType
  727         OptionalRangeType
  728         ',' QWordConstExpr
  729         ',' QWordConstExpr
  730         ',' QWordConstExpr
  731         ',' QWordConstExpr
  732         ',' QWordConstExpr
  733         OptionalByteConstExpr
  734         OptionalStringData
  735         OptionalNameString
  736         OptionalType
  737         OptionalTranslationType_Last
  738         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,15,
  739                                         $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
  740     | PARSEOP_QWORDIO
  741         PARSEOP_OPEN_PAREN
  742         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  743     ;
  744 
  745 QWordMemoryTerm
  746     : PARSEOP_QWORDMEMORY
  747         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDMEMORY);}
  748         OptionalResourceType_First
  749         OptionalDecodeType
  750         OptionalMinType
  751         OptionalMaxType
  752         OptionalMemType
  753         ',' OptionalReadWriteKeyword
  754         ',' QWordConstExpr
  755         ',' QWordConstExpr
  756         ',' QWordConstExpr
  757         ',' QWordConstExpr
  758         ',' QWordConstExpr
  759         OptionalByteConstExpr
  760         OptionalStringData
  761         OptionalNameString
  762         OptionalAddressRange
  763         OptionalType_Last
  764         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,16,
  765                                         $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
  766     | PARSEOP_QWORDMEMORY
  767         PARSEOP_OPEN_PAREN
  768         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  769     ;
  770 
  771 QWordSpaceTerm
  772     : PARSEOP_QWORDSPACE
  773         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDSPACE);}
  774         ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
  775         OptionalResourceType
  776         OptionalDecodeType
  777         OptionalMinType
  778         OptionalMaxType
  779         ',' ByteConstExpr
  780         ',' QWordConstExpr
  781         ',' QWordConstExpr
  782         ',' QWordConstExpr
  783         ',' QWordConstExpr
  784         ',' QWordConstExpr
  785         OptionalByteConstExpr
  786         OptionalStringData
  787         OptionalNameString_Last
  788         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,14,
  789                                         $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
  790     | PARSEOP_QWORDSPACE
  791         PARSEOP_OPEN_PAREN
  792         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  793     ;
  794 
  795 RegisterTerm
  796     : PARSEOP_REGISTER
  797         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_REGISTER);}
  798         AddressSpaceKeyword
  799         ',' ByteConstExpr
  800         ',' ByteConstExpr
  801         ',' QWordConstExpr
  802         OptionalAccessSize
  803         OptionalNameString_Last
  804         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
  805     | PARSEOP_REGISTER
  806         PARSEOP_OPEN_PAREN
  807         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  808     ;
  809 
  810 SpiSerialBusTerm
  811     : PARSEOP_SPI_SERIALBUS
  812         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_SPI_SERIALBUS);}
  813         WordConstExpr               /* 04: DeviceSelection */
  814         OptionalDevicePolarity      /* 05: DevicePolarity */
  815         OptionalWireMode            /* 06: WireMode */
  816         ',' ByteConstExpr           /* 08: DataBitLength */
  817         OptionalSlaveMode           /* 09: SlaveMode */
  818         ',' DWordConstExpr          /* 11: ConnectionSpeed */
  819         ',' ClockPolarityKeyword    /* 13: ClockPolarity */
  820         ',' ClockPhaseKeyword       /* 15: ClockPhase */
  821         ',' StringData              /* 17: ResourceSource */
  822         OptionalByteConstExpr       /* 18: ResourceSourceIndex */
  823         OptionalResourceType        /* 19: ResourceType */
  824         OptionalNameString          /* 20: DescriptorName */
  825         OptionalBuffer_Last         /* 21: VendorData */
  826         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,14,
  827                                         $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,
  828                                         TrCreateLeafOp (PARSEOP_DEFAULT_ARG),$21);}
  829     | PARSEOP_SPI_SERIALBUS
  830         PARSEOP_OPEN_PAREN
  831         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  832     ;
  833 
  834 SpiSerialBusTermV2
  835     : PARSEOP_SPI_SERIALBUS_V2
  836         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_SPI_SERIALBUS_V2);}
  837         WordConstExpr               /* 04: DeviceSelection */
  838         OptionalDevicePolarity      /* 05: DevicePolarity */
  839         OptionalWireMode            /* 06: WireMode */
  840         ',' ByteConstExpr           /* 08: DataBitLength */
  841         OptionalSlaveMode           /* 09: SlaveMode */
  842         ',' DWordConstExpr          /* 11: ConnectionSpeed */
  843         ',' ClockPolarityKeyword    /* 13: ClockPolarity */
  844         ',' ClockPhaseKeyword       /* 15: ClockPhase */
  845         ',' StringData              /* 17: ResourceSource */
  846         OptionalByteConstExpr       /* 18: ResourceSourceIndex */
  847         OptionalResourceType        /* 19: ResourceType */
  848         OptionalNameString          /* 20: DescriptorName */
  849         OptionalShareType           /* 21: Share */
  850         OptionalBuffer_Last         /* 22: VendorData */
  851         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,14,
  852                                         $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
  853     | PARSEOP_SPI_SERIALBUS_V2
  854         PARSEOP_OPEN_PAREN
  855         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  856     ;
  857 
  858 StartDependentFnNoPriTerm
  859     : PARSEOP_STARTDEPENDENTFN_NOPRI
  860         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_STARTDEPENDENTFN_NOPRI);}
  861         PARSEOP_CLOSE_PAREN '{'
  862         ResourceMacroList '}'       {$$ = TrLinkOpChildren ($<n>3,1,$6);}
  863     | PARSEOP_STARTDEPENDENTFN_NOPRI
  864         PARSEOP_OPEN_PAREN
  865         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  866     ;
  867 
  868 StartDependentFnTerm
  869     : PARSEOP_STARTDEPENDENTFN
  870         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_STARTDEPENDENTFN);}
  871         ByteConstExpr
  872         ',' ByteConstExpr
  873         PARSEOP_CLOSE_PAREN '{'
  874         ResourceMacroList '}'       {$$ = TrLinkOpChildren ($<n>3,3,$4,$6,$9);}
  875     | PARSEOP_STARTDEPENDENTFN
  876         PARSEOP_OPEN_PAREN
  877         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  878     ;
  879 
  880 UartSerialBusTerm
  881     : PARSEOP_UART_SERIALBUS
  882         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_UART_SERIALBUS);}
  883         DWordConstExpr              /* 04: ConnectionSpeed */
  884         OptionalBitsPerByte         /* 05: BitsPerByte */
  885         OptionalStopBits            /* 06: StopBits */
  886         ',' ByteConstExpr           /* 08: LinesInUse */
  887         OptionalEndian              /* 09: Endianness */
  888         OptionalParityType          /* 10: Parity */
  889         OptionalFlowControl         /* 11: FlowControl */
  890         ',' WordConstExpr           /* 13: Rx BufferSize */
  891         ',' WordConstExpr           /* 15: Tx BufferSize */
  892         ',' StringData              /* 17: ResourceSource */
  893         OptionalByteConstExpr       /* 18: ResourceSourceIndex */
  894         OptionalResourceType        /* 19: ResourceType */
  895         OptionalNameString          /* 20: DescriptorName */
  896         OptionalBuffer_Last         /* 21: VendorData */
  897         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,15,
  898                                         $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,
  899                                         TrCreateLeafOp (PARSEOP_DEFAULT_ARG),$21);}
  900     | PARSEOP_UART_SERIALBUS
  901         PARSEOP_OPEN_PAREN
  902         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  903     ;
  904 
  905 UartSerialBusTermV2
  906     : PARSEOP_UART_SERIALBUS_V2
  907         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_UART_SERIALBUS_V2);}
  908         DWordConstExpr              /* 04: ConnectionSpeed */
  909         OptionalBitsPerByte         /* 05: BitsPerByte */
  910         OptionalStopBits            /* 06: StopBits */
  911         ',' ByteConstExpr           /* 08: LinesInUse */
  912         OptionalEndian              /* 09: Endianness */
  913         OptionalParityType          /* 10: Parity */
  914         OptionalFlowControl         /* 11: FlowControl */
  915         ',' WordConstExpr           /* 13: Rx BufferSize */
  916         ',' WordConstExpr           /* 15: Tx BufferSize */
  917         ',' StringData              /* 17: ResourceSource */
  918         OptionalByteConstExpr       /* 18: ResourceSourceIndex */
  919         OptionalResourceType        /* 19: ResourceType */
  920         OptionalNameString          /* 20: DescriptorName */
  921         OptionalShareType           /* 21: Share */
  922         OptionalBuffer_Last         /* 22: VendorData */
  923         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,15,
  924                                         $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
  925     | PARSEOP_UART_SERIALBUS_V2
  926         PARSEOP_OPEN_PAREN
  927         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  928     ;
  929 
  930 VendorLongTerm
  931     : PARSEOP_VENDORLONG
  932         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_VENDORLONG);}
  933         OptionalNameString_First
  934         PARSEOP_CLOSE_PAREN '{'
  935             ByteList '}'            {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
  936     | PARSEOP_VENDORLONG
  937         PARSEOP_OPEN_PAREN
  938         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  939     ;
  940 
  941 VendorShortTerm
  942     : PARSEOP_VENDORSHORT
  943         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_VENDORSHORT);}
  944         OptionalNameString_First
  945         PARSEOP_CLOSE_PAREN '{'
  946             ByteList '}'            {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
  947     | PARSEOP_VENDORSHORT
  948         PARSEOP_OPEN_PAREN
  949         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  950     ;
  951 
  952 WordBusNumberTerm
  953     : PARSEOP_WORDBUSNUMBER
  954         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_WORDBUSNUMBER);}
  955         OptionalResourceType_First
  956         OptionalMinType
  957         OptionalMaxType
  958         OptionalDecodeType
  959         ',' WordConstExpr
  960         ',' WordConstExpr
  961         ',' WordConstExpr
  962         ',' WordConstExpr
  963         ',' WordConstExpr
  964         OptionalByteConstExpr
  965         OptionalStringData
  966         OptionalNameString_Last
  967         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,12,
  968                                         $4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
  969     | PARSEOP_WORDBUSNUMBER
  970         PARSEOP_OPEN_PAREN
  971         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  972     ;
  973 
  974 WordIOTerm
  975     : PARSEOP_WORDIO
  976         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_WORDIO);}
  977         OptionalResourceType_First
  978         OptionalMinType
  979         OptionalMaxType
  980         OptionalDecodeType
  981         OptionalRangeType
  982         ',' WordConstExpr
  983         ',' WordConstExpr
  984         ',' WordConstExpr
  985         ',' WordConstExpr
  986         ',' WordConstExpr
  987         OptionalByteConstExpr
  988         OptionalStringData
  989         OptionalNameString
  990         OptionalType
  991         OptionalTranslationType_Last
  992         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,15,
  993                                         $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
  994     | PARSEOP_WORDIO
  995         PARSEOP_OPEN_PAREN
  996         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
  997     ;
  998 
  999 WordSpaceTerm
 1000     : PARSEOP_WORDSPACE
 1001         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_WORDSPACE);}
 1002         ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
 1003         OptionalResourceType
 1004         OptionalDecodeType
 1005         OptionalMinType
 1006         OptionalMaxType
 1007         ',' ByteConstExpr
 1008         ',' WordConstExpr
 1009         ',' WordConstExpr
 1010         ',' WordConstExpr
 1011         ',' WordConstExpr
 1012         ',' WordConstExpr
 1013         OptionalByteConstExpr
 1014         OptionalStringData
 1015         OptionalNameString_Last
 1016         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,14,
 1017                                         $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
 1018     | PARSEOP_WORDSPACE
 1019         PARSEOP_OPEN_PAREN
 1020         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
 1021     ;

Cache object: 68b70db710f55d7cdc38ad1114837d7c


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.