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