aslresources.y revision 1.1.1.14 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 - 2024, 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 | DWordPccTerm {}
198 | DWordSpaceTerm {}
199 | EndDependentFnTerm {}
200 | ExtendedIOTerm {}
201 | ExtendedMemoryTerm {}
202 | ExtendedSpaceTerm {}
203 | FixedDmaTerm {}
204 | FixedIOTerm {}
205 | GpioIntTerm {}
206 | GpioIoTerm {}
207 | I2cSerialBusTerm {}
208 | I2cSerialBusTermV2 {}
209 | InterruptTerm {}
210 | IOTerm {}
211 | IRQNoFlagsTerm {}
212 | IRQTerm {}
213 | Memory24Term {}
214 | Memory32FixedTerm {}
215 | Memory32Term {}
216 | PinConfigTerm {}
217 | PinFunctionTerm {}
218 | ClockInputTerm {}
219 | PinGroupTerm {}
220 | PinGroupConfigTerm {}
221 | PinGroupFunctionTerm {}
222 | QWordIOTerm {}
223 | QWordMemoryTerm {}
224 | QWordPccTerm {}
225 | QWordSpaceTerm {}
226 | RegisterTerm {}
227 | SpiSerialBusTerm {}
228 | SpiSerialBusTermV2 {}
229 | StartDependentFnNoPriTerm {}
230 | StartDependentFnTerm {}
231 | UartSerialBusTerm {}
232 | UartSerialBusTermV2 {}
233 | VendorLongTerm {}
234 | VendorShortTerm {}
235 | WordBusNumberTerm {}
236 | WordIOTerm {}
237 | WordPccTerm {}
238 | WordSpaceTerm {}
239 ;
240
241 Csi2SerialBusTerm
242 : PARSEOP_CSI2_SERIALBUS
243 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CSI2_SERIALBUS);}
244 OptionalSlaveMode_First {UtCheckIntegerRange ($4, 0x00, 0x01);} /* 04: SlaveMode */
245 ',' ByteConstExpr {UtCheckIntegerRange ($7, 0x00, 0x03);} /* 07: PhyType */
246 OptionalByteConstExpr {UtCheckIntegerRange ($9, 0x00, 0xFC);} /* 09: LocalPortInstance */
247 ',' StringData /* 12: ResourceSource */
248 ',' ByteConstExpr /* 14: ResourceSourceIndex */
249 OptionalResourceType /* 15; ResourceType (ResourceUsage) */
250 OptionalNameString /* 16: DescriptorName */
251 OptionalBuffer_Last /* 17: VendorData */
252 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,8,
253 $4,$7,$9,$12,$14,$15,$16,$17);}
254 | PARSEOP_CSI2_SERIALBUS
255 PARSEOP_OPEN_PAREN
256 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
257
258 DMATerm
259 : PARSEOP_DMA
260 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DMA);}
261 DMATypeKeyword
262 OptionalBusMasterKeyword
263 ',' XferTypeKeyword
264 OptionalNameString_Last
265 PARSEOP_CLOSE_PAREN '{'
266 ByteList '}' {$$ = TrLinkOpChildren ($<n>3,5,$4,$5,$7,$8,$11);}
267 | PARSEOP_DMA
268 PARSEOP_OPEN_PAREN
269 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
270 ;
271
272 DWordIOTerm
273 : PARSEOP_DWORDIO
274 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDIO);}
275 OptionalResourceType_First
276 OptionalMinType
277 OptionalMaxType
278 OptionalDecodeType
279 OptionalRangeType
280 ',' DWordConstExpr
281 ',' DWordConstExpr
282 ',' DWordConstExpr
283 ',' DWordConstExpr
284 ',' DWordConstExpr
285 OptionalByteConstExpr
286 OptionalStringData
287 OptionalNameString
288 OptionalType
289 OptionalTranslationType_Last
290 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
291 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
292 | PARSEOP_DWORDIO
293 PARSEOP_OPEN_PAREN
294 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
295 ;
296
297 DWordMemoryTerm
298 : PARSEOP_DWORDMEMORY
299 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDMEMORY);}
300 OptionalResourceType_First
301 OptionalDecodeType
302 OptionalMinType
303 OptionalMaxType
304 OptionalMemType
305 ',' OptionalReadWriteKeyword
306 ',' DWordConstExpr
307 ',' DWordConstExpr
308 ',' DWordConstExpr
309 ',' DWordConstExpr
310 ',' DWordConstExpr
311 OptionalByteConstExpr
312 OptionalStringData
313 OptionalNameString
314 OptionalAddressRange
315 OptionalType_Last
316 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,16,
317 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
318 | PARSEOP_DWORDMEMORY
319 PARSEOP_OPEN_PAREN
320 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
321 ;
322
323 DWordPccTerm
324 : PARSEOP_DWORDPCC
325 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDPCC);}
326 ByteConstExpr
327 OptionalByteConstExpr
328 OptionalStringData
329 OptionalNameString_Last
330 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,
331 $4,$5,$6,$7);}
332 | PARSEOP_DWORDPCC
333 PARSEOP_OPEN_PAREN
334 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
335 ;
336
337 DWordSpaceTerm
338 : PARSEOP_DWORDSPACE
339 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDSPACE);}
340 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
341 OptionalResourceType
342 OptionalDecodeType
343 OptionalMinType
344 OptionalMaxType
345 ',' ByteConstExpr
346 ',' DWordConstExpr
347 ',' DWordConstExpr
348 ',' DWordConstExpr
349 ',' DWordConstExpr
350 ',' DWordConstExpr
351 OptionalByteConstExpr
352 OptionalStringData
353 OptionalNameString_Last
354 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
355 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
356 | PARSEOP_DWORDSPACE
357 PARSEOP_OPEN_PAREN
358 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
359 ;
360
361 EndDependentFnTerm
362 : PARSEOP_ENDDEPENDENTFN
363 PARSEOP_OPEN_PAREN
364 PARSEOP_CLOSE_PAREN {$$ = TrCreateLeafOp (PARSEOP_ENDDEPENDENTFN);}
365 | PARSEOP_ENDDEPENDENTFN
366 PARSEOP_OPEN_PAREN
367 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
368 ;
369
370 ExtendedIOTerm
371 : PARSEOP_EXTENDEDIO
372 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_EXTENDEDIO);}
373 OptionalResourceType_First
374 OptionalMinType
375 OptionalMaxType
376 OptionalDecodeType
377 OptionalRangeType
378 ',' QWordConstExpr
379 ',' QWordConstExpr
380 ',' QWordConstExpr
381 ',' QWordConstExpr
382 ',' QWordConstExpr
383 OptionalQWordConstExpr
384 OptionalNameString
385 OptionalType
386 OptionalTranslationType_Last
387 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
388 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
389 | PARSEOP_EXTENDEDIO
390 PARSEOP_OPEN_PAREN
391 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
392 ;
393
394 ExtendedMemoryTerm
395 : PARSEOP_EXTENDEDMEMORY
396 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_EXTENDEDMEMORY);}
397 OptionalResourceType_First
398 OptionalDecodeType
399 OptionalMinType
400 OptionalMaxType
401 OptionalMemType
402 ',' OptionalReadWriteKeyword
403 ',' QWordConstExpr
404 ',' QWordConstExpr
405 ',' QWordConstExpr
406 ',' QWordConstExpr
407 ',' QWordConstExpr
408 OptionalQWordConstExpr
409 OptionalNameString
410 OptionalAddressRange
411 OptionalType_Last
412 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
413 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
414 | PARSEOP_EXTENDEDMEMORY
415 PARSEOP_OPEN_PAREN
416 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
417 ;
418
419 ExtendedSpaceTerm
420 : PARSEOP_EXTENDEDSPACE PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_EXTENDEDSPACE);}
421 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
422 OptionalResourceType
423 OptionalDecodeType
424 OptionalMinType
425 OptionalMaxType
426 ',' ByteConstExpr
427 ',' QWordConstExpr
428 ',' QWordConstExpr
429 ',' QWordConstExpr
430 ',' QWordConstExpr
431 ',' QWordConstExpr
432 OptionalQWordConstExpr
433 OptionalNameString_Last
434 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,13,
435 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
436 | PARSEOP_EXTENDEDSPACE
437 PARSEOP_OPEN_PAREN
438 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
439 ;
440
441 FixedDmaTerm
442 : PARSEOP_FIXEDDMA
443 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FIXEDDMA);}
444 WordConstExpr /* 04: DMA RequestLines */
445 ',' WordConstExpr /* 06: DMA Channels */
446 OptionalXferSize /* 07: DMA TransferSize */
447 OptionalNameString /* 08: DescriptorName */
448 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,$4,$6,$7,$8);}
449 | PARSEOP_FIXEDDMA
450 PARSEOP_OPEN_PAREN
451 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
452 ;
453
454 FixedIOTerm
455 : PARSEOP_FIXEDIO
456 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FIXEDIO);}
457 WordConstExpr
458 ',' ByteConstExpr
459 OptionalNameString_Last
460 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$6,$7);}
461 | PARSEOP_FIXEDIO
462 PARSEOP_OPEN_PAREN
463 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
464 ;
465
466 GpioIntTerm
467 : PARSEOP_GPIO_INT
468 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_GPIO_INT);}
469 InterruptTypeKeyword /* 04: InterruptType */
470 ',' InterruptLevel /* 06: InterruptLevel */
471 OptionalShareType /* 07: SharedType */
472 ',' PinConfigByte /* 09: PinConfig */
473 OptionalWordConstExpr /* 10: DebounceTimeout */
474 ',' StringData /* 12: ResourceSource */
475 OptionalByteConstExpr /* 13: ResourceSourceIndex */
476 OptionalResourceType /* 14: ResourceType */
477 OptionalNameString /* 15: DescriptorName */
478 OptionalBuffer_Last /* 16: VendorData */
479 PARSEOP_CLOSE_PAREN '{'
480 DWordConstExpr '}' {$$ = TrLinkOpChildren ($<n>3,11,
481 $4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);}
482 | PARSEOP_GPIO_INT
483 PARSEOP_OPEN_PAREN
484 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
485 ;
486
487 GpioIoTerm
488 : PARSEOP_GPIO_IO
489 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_GPIO_IO);}
490 OptionalShareType_First /* 04: SharedType */
491 ',' PinConfigByte /* 06: PinConfig */
492 OptionalWordConstExpr /* 07: DebounceTimeout */
493 OptionalWordConstExpr /* 08: DriveStrength */
494 OptionalIoRestriction /* 09: IoRestriction */
495 ',' StringData /* 11: ResourceSource */
496 OptionalByteConstExpr /* 12: ResourceSourceIndex */
497 OptionalResourceType /* 13: ResourceType */
498 OptionalNameString /* 14: DescriptorName */
499 OptionalBuffer_Last /* 15: VendorData */
500 PARSEOP_CLOSE_PAREN '{'
501 DWordList '}' {$$ = TrLinkOpChildren ($<n>3,11,
502 $4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);}
503 | PARSEOP_GPIO_IO
504 PARSEOP_OPEN_PAREN
505 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
506 ;
507
508 I2cSerialBusTerm
509 : PARSEOP_I2C_SERIALBUS
510 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_I2C_SERIALBUS);}
511 WordConstExpr /* 04: SlaveAddress */
512 OptionalSlaveMode /* 05: SlaveMode */
513 ',' DWordConstExpr /* 07: ConnectionSpeed */
514 OptionalAddressingMode /* 08: AddressingMode */
515 ',' StringData /* 10: ResourceSource */
516 OptionalByteConstExpr /* 11: ResourceSourceIndex */
517 OptionalResourceType /* 12: ResourceType */
518 OptionalNameString /* 13: DescriptorName */
519 OptionalBuffer_Last /* 14: VendorData */
520 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,10,
521 $4,$5,$7,$8,$10,$11,$12,$13,
522 TrCreateLeafOp (PARSEOP_DEFAULT_ARG),$14);}
523 | PARSEOP_I2C_SERIALBUS
524 PARSEOP_OPEN_PAREN
525 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
526 ;
527
528 I2cSerialBusTermV2
529 : PARSEOP_I2C_SERIALBUS_V2
530 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_I2C_SERIALBUS_V2);}
531 WordConstExpr /* 04: SlaveAddress */
532 OptionalSlaveMode /* 05: SlaveMode */
533 ',' DWordConstExpr /* 07: ConnectionSpeed */
534 OptionalAddressingMode /* 08: AddressingMode */
535 ',' StringData /* 10: ResourceSource */
536 OptionalByteConstExpr /* 11: ResourceSourceIndex */
537 OptionalResourceType /* 12: ResourceType */
538 OptionalNameString /* 13: DescriptorName */
539 OptionalShareType /* 14: Share */
540 OptionalBuffer_Last /* 15: VendorData */
541 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,10,
542 $4,$5,$7,$8,$10,$11,$12,$13,$14,$15);}
543 | PARSEOP_I2C_SERIALBUS_V2
544 PARSEOP_OPEN_PAREN
545 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
546 ;
547
548 InterruptTerm
549 : PARSEOP_INTERRUPT
550 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_INTERRUPT);}
551 OptionalResourceType_First
552 ',' InterruptTypeKeyword
553 ',' InterruptLevel
554 OptionalShareType
555 OptionalByteConstExpr
556 OptionalStringData
557 OptionalNameString_Last
558 PARSEOP_CLOSE_PAREN '{'
559 DWordList '}' {$$ = TrLinkOpChildren ($<n>3,8,
560 $4,$6,$8,$9,$10,$11,$12,$15);}
561 | PARSEOP_INTERRUPT
562 PARSEOP_OPEN_PAREN
563 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
564 ;
565
566 IOTerm
567 : PARSEOP_IO
568 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_IO);}
569 IODecodeKeyword
570 ',' WordConstExpr
571 ',' WordConstExpr
572 ',' ByteConstExpr
573 ',' ByteConstExpr
574 OptionalNameString_Last
575 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
576 | PARSEOP_IO
577 PARSEOP_OPEN_PAREN
578 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
579 ;
580
581 IRQNoFlagsTerm
582 : PARSEOP_IRQNOFLAGS
583 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_IRQNOFLAGS);}
584 OptionalNameString_First
585 PARSEOP_CLOSE_PAREN '{'
586 ByteList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
587 | PARSEOP_IRQNOFLAGS
588 PARSEOP_OPEN_PAREN
589 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
590 ;
591
592 IRQTerm
593 : PARSEOP_IRQ
594 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_IRQ);}
595 InterruptTypeKeyword
596 ',' InterruptLevel
597 OptionalShareType
598 OptionalNameString_Last
599 PARSEOP_CLOSE_PAREN '{'
600 ByteList '}' {$$ = TrLinkOpChildren ($<n>3,5,$4,$6,$7,$8,$11);}
601 | PARSEOP_IRQ
602 PARSEOP_OPEN_PAREN
603 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
604 ;
605
606 Memory24Term
607 : PARSEOP_MEMORY24
608 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MEMORY24);}
609 OptionalReadWriteKeyword
610 ',' WordConstExpr
611 ',' WordConstExpr
612 ',' WordConstExpr
613 ',' WordConstExpr
614 OptionalNameString_Last
615 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
616 | PARSEOP_MEMORY24
617 PARSEOP_OPEN_PAREN
618 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
619 ;
620
621 Memory32FixedTerm
622 : PARSEOP_MEMORY32FIXED
623 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MEMORY32FIXED);}
624 OptionalReadWriteKeyword
625 ',' DWordConstExpr
626 ',' DWordConstExpr
627 OptionalNameString_Last
628 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,$4,$6,$8,$9);}
629 | PARSEOP_MEMORY32FIXED
630 PARSEOP_OPEN_PAREN
631 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
632 ;
633
634 Memory32Term
635 : PARSEOP_MEMORY32
636 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MEMORY32);}
637 OptionalReadWriteKeyword
638 ',' DWordConstExpr
639 ',' DWordConstExpr
640 ',' DWordConstExpr
641 ',' DWordConstExpr
642 OptionalNameString_Last
643 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
644 | PARSEOP_MEMORY32
645 PARSEOP_OPEN_PAREN
646 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
647 ;
648
649 PinConfigTerm
650 : PARSEOP_PINCONFIG
651 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINCONFIG);}
652 OptionalShareType_First /* 04: SharedType */
653 ',' ByteConstExpr /* 06: PinConfigType */
654 ',' DWordConstExpr /* 08: PinConfigValue */
655 ',' StringData /* 10: ResourceSource */
656 OptionalByteConstExpr /* 11: ResourceSourceIndex */
657 OptionalResourceType /* 12: ResourceType */
658 OptionalNameString /* 13: DescriptorName */
659 OptionalBuffer_Last /* 14: VendorData */
660 PARSEOP_CLOSE_PAREN '{'
661 DWordList '}' {$$ = TrLinkOpChildren ($<n>3,9,
662 $4,$6,$8,$10,$11,$12,$13,$14,$17);}
663 | PARSEOP_PINCONFIG
664 PARSEOP_OPEN_PAREN
665 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
666 ;
667
668 PinFunctionTerm
669 : PARSEOP_PINFUNCTION
670 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINFUNCTION);}
671 OptionalShareType_First /* 04: SharedType */
672 ',' PinConfigByte /* 06: PinConfig */
673 ',' WordConstExpr /* 08: FunctionNumber */
674 ',' StringData /* 10: ResourceSource */
675 OptionalByteConstExpr /* 11: ResourceSourceIndex */
676 OptionalResourceType /* 12: ResourceType */
677 OptionalNameString /* 13: DescriptorName */
678 OptionalBuffer_Last /* 14: VendorData */
679 PARSEOP_CLOSE_PAREN '{'
680 DWordList '}' {$$ = TrLinkOpChildren ($<n>3,9,
681 $4,$6,$8,$10,$11,$12,$13,$14,$17);}
682 | PARSEOP_PINFUNCTION
683 PARSEOP_OPEN_PAREN
684 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
685 ;
686
687 ClockInputTerm
688 : PARSEOP_CLOCKINPUT
689 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CLOCKINPUT);}
690 DWordConstExpr /* 04: FrequencyNumerator */
691 ',' WordConstExpr /* 06: FrequencyDivisor */
692 ',' ClockScaleKeyword /* 08: Scale */
693 ',' ClockModeKeyword /* 10: Mode*/
694 OptionalStringData /* 11: ResourceSource */
695 OptionalByteConstExpr /* 12: ResourceSourceIndex */
696 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
697 | PARSEOP_CLOCKINPUT
698 PARSEOP_OPEN_PAREN
699 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
700 ;
701
702 PinGroupTerm
703 : PARSEOP_PINGROUP
704 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINGROUP);}
705 StringData /* 04: ResourceLabel */
706 OptionalProducerResourceType /* 05: ResourceType */
707 OptionalNameString /* 06: DescriptorName */
708 OptionalBuffer_Last /* 07: VendorData */
709 PARSEOP_CLOSE_PAREN '{'
710 DWordList '}' {$$ = TrLinkOpChildren ($<n>3,5,$4,$5,$6,$7,$10);}
711 | PARSEOP_PINGROUP
712 PARSEOP_OPEN_PAREN
713 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
714 ;
715
716 PinGroupConfigTerm
717 : PARSEOP_PINGROUPCONFIG
718 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINGROUPCONFIG);}
719 OptionalShareType_First /* 04: SharedType */
720 ',' ByteConstExpr /* 06: PinConfigType */
721 ',' DWordConstExpr /* 08: PinConfigValue */
722 ',' StringData /* 10: ResourceSource */
723 OptionalByteConstExpr /* 11: ResourceSourceIndex */
724 ',' StringData /* 13: ResourceSourceLabel */
725 OptionalResourceType /* 14: ResourceType */
726 OptionalNameString /* 15: DescriptorName */
727 OptionalBuffer_Last /* 16: VendorData */
728 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,9,
729 $4,$6,$8,$10,$11,$13,$14,$15,$16);}
730 | PARSEOP_PINGROUPCONFIG
731 PARSEOP_OPEN_PAREN
732 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
733 ;
734
735 PinGroupFunctionTerm
736 : PARSEOP_PINGROUPFUNCTION
737 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINGROUPFUNCTION);}
738 OptionalShareType_First /* 04: SharedType */
739 ',' WordConstExpr /* 06: FunctionNumber */
740 ',' StringData /* 08: ResourceSource */
741 OptionalByteConstExpr /* 09: ResourceSourceIndex */
742 ',' StringData /* 11: ResourceSourceLabel */
743 OptionalResourceType /* 12: ResourceType */
744 OptionalNameString /* 13: DescriptorName */
745 OptionalBuffer_Last /* 14: VendorData */
746 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,8,
747 $4,$6,$8,$9,$11,$12,$13,$14);}
748 | PARSEOP_PINGROUPFUNCTION
749 PARSEOP_OPEN_PAREN
750 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
751 ;
752
753 QWordIOTerm
754 : PARSEOP_QWORDIO
755 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDIO);}
756 OptionalResourceType_First
757 OptionalMinType
758 OptionalMaxType
759 OptionalDecodeType
760 OptionalRangeType
761 ',' QWordConstExpr
762 ',' QWordConstExpr
763 ',' QWordConstExpr
764 ',' QWordConstExpr
765 ',' QWordConstExpr
766 OptionalByteConstExpr
767 OptionalStringData
768 OptionalNameString
769 OptionalType
770 OptionalTranslationType_Last
771 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
772 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
773 | PARSEOP_QWORDIO
774 PARSEOP_OPEN_PAREN
775 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
776 ;
777
778 QWordMemoryTerm
779 : PARSEOP_QWORDMEMORY
780 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDMEMORY);}
781 OptionalResourceType_First
782 OptionalDecodeType
783 OptionalMinType
784 OptionalMaxType
785 OptionalMemType
786 ',' OptionalReadWriteKeyword
787 ',' QWordConstExpr
788 ',' QWordConstExpr
789 ',' QWordConstExpr
790 ',' QWordConstExpr
791 ',' QWordConstExpr
792 OptionalByteConstExpr
793 OptionalStringData
794 OptionalNameString
795 OptionalAddressRange
796 OptionalType_Last
797 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,16,
798 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
799 | PARSEOP_QWORDMEMORY
800 PARSEOP_OPEN_PAREN
801 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
802 ;
803
804 QWordPccTerm
805 : PARSEOP_QWORDPCC
806 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDPCC);}
807 ByteConstExpr
808 OptionalByteConstExpr
809 OptionalStringData
810 OptionalNameString_Last
811 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,
812 $4,$5,$6,$7);}
813 | PARSEOP_QWORDPCC
814 PARSEOP_OPEN_PAREN
815 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
816 ;
817
818 QWordSpaceTerm
819 : PARSEOP_QWORDSPACE
820 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDSPACE);}
821 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
822 OptionalResourceType
823 OptionalDecodeType
824 OptionalMinType
825 OptionalMaxType
826 ',' ByteConstExpr
827 ',' QWordConstExpr
828 ',' QWordConstExpr
829 ',' QWordConstExpr
830 ',' QWordConstExpr
831 ',' QWordConstExpr
832 OptionalByteConstExpr
833 OptionalStringData
834 OptionalNameString_Last
835 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
836 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
837 | PARSEOP_QWORDSPACE
838 PARSEOP_OPEN_PAREN
839 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
840 ;
841
842 RegisterTerm
843 : PARSEOP_REGISTER
844 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_REGISTER);}
845 AddressSpaceKeyword
846 ',' ByteConstExpr
847 ',' ByteConstExpr
848 ',' QWordConstExpr
849 OptionalAccessSize
850 OptionalNameString_Last
851 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
852 | PARSEOP_REGISTER
853 PARSEOP_OPEN_PAREN
854 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
855 ;
856
857 SpiSerialBusTerm
858 : PARSEOP_SPI_SERIALBUS
859 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SPI_SERIALBUS);}
860 WordConstExpr /* 04: DeviceSelection */
861 OptionalDevicePolarity /* 05: DevicePolarity */
862 OptionalWireMode /* 06: WireMode */
863 ',' ByteConstExpr /* 08: DataBitLength */
864 OptionalSlaveMode /* 09: SlaveMode */
865 ',' DWordConstExpr /* 11: ConnectionSpeed */
866 ',' ClockPolarityKeyword /* 13: ClockPolarity */
867 ',' ClockPhaseKeyword /* 15: ClockPhase */
868 ',' StringData /* 17: ResourceSource */
869 OptionalByteConstExpr /* 18: ResourceSourceIndex */
870 OptionalResourceType /* 19: ResourceType */
871 OptionalNameString /* 20: DescriptorName */
872 OptionalBuffer_Last /* 21: VendorData */
873 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
874 $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,
875 TrCreateLeafOp (PARSEOP_DEFAULT_ARG),$21);}
876 | PARSEOP_SPI_SERIALBUS
877 PARSEOP_OPEN_PAREN
878 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
879 ;
880
881 SpiSerialBusTermV2
882 : PARSEOP_SPI_SERIALBUS_V2
883 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SPI_SERIALBUS_V2);}
884 WordConstExpr /* 04: DeviceSelection */
885 OptionalDevicePolarity /* 05: DevicePolarity */
886 OptionalWireMode /* 06: WireMode */
887 ',' ByteConstExpr /* 08: DataBitLength */
888 OptionalSlaveMode /* 09: SlaveMode */
889 ',' DWordConstExpr /* 11: ConnectionSpeed */
890 ',' ClockPolarityKeyword /* 13: ClockPolarity */
891 ',' ClockPhaseKeyword /* 15: ClockPhase */
892 ',' StringData /* 17: ResourceSource */
893 OptionalByteConstExpr /* 18: ResourceSourceIndex */
894 OptionalResourceType /* 19: ResourceType */
895 OptionalNameString /* 20: DescriptorName */
896 OptionalShareType /* 21: Share */
897 OptionalBuffer_Last /* 22: VendorData */
898 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
899 $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
900 | PARSEOP_SPI_SERIALBUS_V2
901 PARSEOP_OPEN_PAREN
902 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
903 ;
904
905 StartDependentFnNoPriTerm
906 : PARSEOP_STARTDEPENDENTFN_NOPRI
907 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_STARTDEPENDENTFN_NOPRI);}
908 PARSEOP_CLOSE_PAREN '{'
909 ResourceMacroList '}' {$$ = TrLinkOpChildren ($<n>3,1,$6);}
910 | PARSEOP_STARTDEPENDENTFN_NOPRI
911 PARSEOP_OPEN_PAREN
912 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
913 ;
914
915 StartDependentFnTerm
916 : PARSEOP_STARTDEPENDENTFN
917 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_STARTDEPENDENTFN);}
918 ByteConstExpr
919 ',' ByteConstExpr
920 PARSEOP_CLOSE_PAREN '{'
921 ResourceMacroList '}' {$$ = TrLinkOpChildren ($<n>3,3,$4,$6,$9);}
922 | PARSEOP_STARTDEPENDENTFN
923 PARSEOP_OPEN_PAREN
924 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
925 ;
926
927 UartSerialBusTerm
928 : PARSEOP_UART_SERIALBUS
929 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_UART_SERIALBUS);}
930 DWordConstExpr /* 04: ConnectionSpeed */
931 OptionalBitsPerByte /* 05: BitsPerByte */
932 OptionalStopBits /* 06: StopBits */
933 ',' ByteConstExpr /* 08: LinesInUse */
934 OptionalEndian /* 09: Endianness */
935 OptionalParityType /* 10: Parity */
936 OptionalFlowControl /* 11: FlowControl */
937 ',' WordConstExpr /* 13: Rx BufferSize */
938 ',' WordConstExpr /* 15: Tx BufferSize */
939 ',' StringData /* 17: ResourceSource */
940 OptionalByteConstExpr /* 18: ResourceSourceIndex */
941 OptionalResourceType /* 19: ResourceType */
942 OptionalNameString /* 20: DescriptorName */
943 OptionalBuffer_Last /* 21: VendorData */
944 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
945 $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,
946 TrCreateLeafOp (PARSEOP_DEFAULT_ARG),$21);}
947 | PARSEOP_UART_SERIALBUS
948 PARSEOP_OPEN_PAREN
949 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
950 ;
951
952 UartSerialBusTermV2
953 : PARSEOP_UART_SERIALBUS_V2
954 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_UART_SERIALBUS_V2);}
955 DWordConstExpr /* 04: ConnectionSpeed */
956 OptionalBitsPerByte /* 05: BitsPerByte */
957 OptionalStopBits /* 06: StopBits */
958 ',' ByteConstExpr /* 08: LinesInUse */
959 OptionalEndian /* 09: Endianness */
960 OptionalParityType /* 10: Parity */
961 OptionalFlowControl /* 11: FlowControl */
962 ',' WordConstExpr /* 13: Rx BufferSize */
963 ',' WordConstExpr /* 15: Tx BufferSize */
964 ',' StringData /* 17: ResourceSource */
965 OptionalByteConstExpr /* 18: ResourceSourceIndex */
966 OptionalResourceType /* 19: ResourceType */
967 OptionalNameString /* 20: DescriptorName */
968 OptionalShareType /* 21: Share */
969 OptionalBuffer_Last /* 22: VendorData */
970 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
971 $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
972 | PARSEOP_UART_SERIALBUS_V2
973 PARSEOP_OPEN_PAREN
974 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
975 ;
976
977 VendorLongTerm
978 : PARSEOP_VENDORLONG
979 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_VENDORLONG);}
980 OptionalNameString_First
981 PARSEOP_CLOSE_PAREN '{'
982 ByteList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
983 | PARSEOP_VENDORLONG
984 PARSEOP_OPEN_PAREN
985 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
986 ;
987
988 VendorShortTerm
989 : PARSEOP_VENDORSHORT
990 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_VENDORSHORT);}
991 OptionalNameString_First
992 PARSEOP_CLOSE_PAREN '{'
993 ByteList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
994 | PARSEOP_VENDORSHORT
995 PARSEOP_OPEN_PAREN
996 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
997 ;
998
999 WordBusNumberTerm
1000 : PARSEOP_WORDBUSNUMBER
1001 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDBUSNUMBER);}
1002 OptionalResourceType_First
1003 OptionalMinType
1004 OptionalMaxType
1005 OptionalDecodeType
1006 ',' WordConstExpr
1007 ',' WordConstExpr
1008 ',' WordConstExpr
1009 ',' WordConstExpr
1010 ',' WordConstExpr
1011 OptionalByteConstExpr
1012 OptionalStringData
1013 OptionalNameString_Last
1014 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,12,
1015 $4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
1016 | PARSEOP_WORDBUSNUMBER
1017 PARSEOP_OPEN_PAREN
1018 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1019 ;
1020
1021 WordIOTerm
1022 : PARSEOP_WORDIO
1023 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDIO);}
1024 OptionalResourceType_First
1025 OptionalMinType
1026 OptionalMaxType
1027 OptionalDecodeType
1028 OptionalRangeType
1029 ',' WordConstExpr
1030 ',' WordConstExpr
1031 ',' WordConstExpr
1032 ',' WordConstExpr
1033 ',' WordConstExpr
1034 OptionalByteConstExpr
1035 OptionalStringData
1036 OptionalNameString
1037 OptionalType
1038 OptionalTranslationType_Last
1039 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
1040 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
1041 | PARSEOP_WORDIO
1042 PARSEOP_OPEN_PAREN
1043 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1044 ;
1045
1046 WordPccTerm
1047 : PARSEOP_WORDPCC
1048 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDPCC);}
1049 ByteConstExpr
1050 OptionalByteConstExpr
1051 OptionalStringData
1052 OptionalNameString_Last
1053 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,
1054 $4,$5,$6,$7);}
1055 | PARSEOP_WORDPCC
1056 PARSEOP_OPEN_PAREN
1057 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1058 ;
1059
1060 WordSpaceTerm
1061 : PARSEOP_WORDSPACE
1062 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDSPACE);}
1063 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
1064 OptionalResourceType
1065 OptionalDecodeType
1066 OptionalMinType
1067 OptionalMaxType
1068 ',' ByteConstExpr
1069 ',' WordConstExpr
1070 ',' WordConstExpr
1071 ',' WordConstExpr
1072 ',' WordConstExpr
1073 ',' WordConstExpr
1074 OptionalByteConstExpr
1075 OptionalStringData
1076 OptionalNameString_Last
1077 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
1078 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
1079 | PARSEOP_WORDSPACE
1080 PARSEOP_OPEN_PAREN
1081 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1082 ;
1083