2 /******************************************************************************
4 * Module Name: aslresources.y - Bison/Yacc production rules for resources
6 *****************************************************************************/
9 * Copyright (C) 2000 - 2016, Intel Corp.
10 * All rights reserved.
12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions
15 * 1. Redistributions of source code must retain the above copyright
16 * notice, this list of conditions, and the following disclaimer,
17 * without modification.
18 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
19 * substantially similar to the "NO WARRANTY" disclaimer below
20 * ("Disclaimer") and any redistribution must be conditioned upon
21 * including a substantially similar Disclaimer requirement for further
22 * binary redistribution.
23 * 3. Neither the names of the above-listed copyright holders nor the names
24 * of any contributors may be used to endorse or promote products derived
25 * from this software without specific prior written permission.
27 * Alternatively, this software may be distributed under the terms of the
28 * GNU General Public License ("GPL") version 2 as published by the Free
29 * Software Foundation.
32 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
33 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
34 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
35 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
36 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
37 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
38 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
39 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
40 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
41 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
42 * POSSIBILITY OF SUCH DAMAGES.
48 /*******************************************************************************
50 * ASL Resource Template Terms
52 ******************************************************************************/
55 * Note: Create two default nodes to allow conversion to a Buffer AML opcode
56 * Also, insert the EndTag at the end of the template.
59 : PARSEOP_RESOURCETEMPLATE
62 ResourceMacroList
'}' {$$
= TrCreateNode
(PARSEOP_RESOURCETEMPLATE
,4,
63 TrCreateLeafNode
(PARSEOP_DEFAULT_ARG
),
64 TrCreateLeafNode
(PARSEOP_DEFAULT_ARG
),
66 TrCreateLeafNode
(PARSEOP_ENDTAG
));}
72 PARSEOP_CLOSE_PAREN
{$$
= NULL
;}
78 ResourceMacroTerm
{$$
= TrLinkPeerNode
($1,$2);}
86 | EndDependentFnTerm
{}
88 | ExtendedMemoryTerm
{}
89 | ExtendedSpaceTerm
{}
95 | I2cSerialBusTermV2
{}
101 | Memory32FixedTerm
{}
107 | SpiSerialBusTerm
{}
108 | SpiSerialBusTermV2
{}
109 | StartDependentFnNoPriTerm
{}
110 | StartDependentFnTerm
{}
111 | UartSerialBusTerm
{}
112 | UartSerialBusTermV2
{}
115 | WordBusNumberTerm
{}
122 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_DMA
);}
124 OptionalBusMasterKeyword
126 OptionalNameString_Last
127 PARSEOP_CLOSE_PAREN
'{'
128 ByteList
'}' {$$
= TrLinkChildren
($
<n
>3,5,$4,$5,$7,$8,$11);}
131 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
136 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_DWORDIO
);}
137 OptionalResourceType_First
147 OptionalByteConstExpr
151 OptionalTranslationType_Last
152 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,15,
153 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
156 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
160 : PARSEOP_DWORDMEMORY
161 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_DWORDMEMORY
);}
162 OptionalResourceType_First
167 ',' OptionalReadWriteKeyword
173 OptionalByteConstExpr
178 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,16,
179 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
180 | PARSEOP_DWORDMEMORY
182 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
187 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_DWORDSPACE
);}
188 ByteConstExpr
{UtCheckIntegerRange
($4, 0xC0, 0xFF);}
199 OptionalByteConstExpr
201 OptionalNameString_Last
202 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,14,
203 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
206 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
210 : PARSEOP_ENDDEPENDENTFN
212 PARSEOP_CLOSE_PAREN
{$$
= TrCreateLeafNode
(PARSEOP_ENDDEPENDENTFN
);}
213 | PARSEOP_ENDDEPENDENTFN
215 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
220 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_EXTENDEDIO
);}
221 OptionalResourceType_First
231 OptionalQWordConstExpr
234 OptionalTranslationType_Last
235 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,14,
236 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
239 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
243 : PARSEOP_EXTENDEDMEMORY
244 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_EXTENDEDMEMORY
);}
245 OptionalResourceType_First
250 ',' OptionalReadWriteKeyword
256 OptionalQWordConstExpr
260 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,15,
261 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
262 | PARSEOP_EXTENDEDMEMORY
264 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
268 : PARSEOP_EXTENDEDSPACE PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_EXTENDEDSPACE
);}
269 ByteConstExpr
{UtCheckIntegerRange
($4, 0xC0, 0xFF);}
280 OptionalQWordConstExpr
281 OptionalNameString_Last
282 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,13,
283 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
284 | PARSEOP_EXTENDEDSPACE
286 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
291 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_FIXEDDMA
);}
292 WordConstExpr
/* 04: DMA RequestLines */
293 ',' WordConstExpr
/* 06: DMA Channels */
294 OptionalXferSize
/* 07: DMA TransferSize */
295 OptionalNameString
/* 08: DescriptorName */
296 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,4,$4,$6,$7,$8);}
299 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
304 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_FIXEDIO
);}
307 OptionalNameString_Last
308 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,3,$4,$6,$7);}
311 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
316 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_GPIO_INT
);}
317 InterruptTypeKeyword
/* 04: InterruptType */
318 ',' InterruptLevel
/* 06: InterruptLevel */
319 OptionalShareType
/* 07: SharedType */
320 ',' PinConfigByte
/* 09: PinConfig */
321 OptionalWordConstExpr
/* 10: DebounceTimeout */
322 ',' StringData
/* 12: ResourceSource */
323 OptionalByteConstExpr
/* 13: ResourceSourceIndex */
324 OptionalResourceType
/* 14: ResourceType */
325 OptionalNameString
/* 15: DescriptorName */
326 OptionalBuffer_Last
/* 16: VendorData */
327 PARSEOP_CLOSE_PAREN
'{'
328 DWordConstExpr
'}' {$$
= TrLinkChildren
($
<n
>3,11,
329 $4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);}
332 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
337 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_GPIO_IO
);}
338 OptionalShareType_First
/* 04: SharedType */
339 ',' PinConfigByte
/* 06: PinConfig */
340 OptionalWordConstExpr
/* 07: DebounceTimeout */
341 OptionalWordConstExpr
/* 08: DriveStrength */
342 OptionalIoRestriction
/* 09: IoRestriction */
343 ',' StringData
/* 11: ResourceSource */
344 OptionalByteConstExpr
/* 12: ResourceSourceIndex */
345 OptionalResourceType
/* 13: ResourceType */
346 OptionalNameString
/* 14: DescriptorName */
347 OptionalBuffer_Last
/* 15: VendorData */
348 PARSEOP_CLOSE_PAREN
'{'
349 DWordList
'}' {$$
= TrLinkChildren
($
<n
>3,11,
350 $4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);}
353 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
357 : PARSEOP_I2C_SERIALBUS
358 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_I2C_SERIALBUS
);}
359 WordConstExpr
/* 04: SlaveAddress */
360 OptionalSlaveMode
/* 05: SlaveMode */
361 ',' DWordConstExpr
/* 07: ConnectionSpeed */
362 OptionalAddressingMode
/* 08: AddressingMode */
363 ',' StringData
/* 10: ResourceSource */
364 OptionalByteConstExpr
/* 11: ResourceSourceIndex */
365 OptionalResourceType
/* 12: ResourceType */
366 OptionalNameString
/* 13: DescriptorName */
367 OptionalBuffer_Last
/* 14: VendorData */
368 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,10,
369 $4,$5,$7,$8,$10,$11,$12,$13,
370 TrCreateLeafNode
(PARSEOP_DEFAULT_ARG
),$14);}
371 | PARSEOP_I2C_SERIALBUS
373 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
377 : PARSEOP_I2C_SERIALBUS_V2
378 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_I2C_SERIALBUS_V2
);}
379 WordConstExpr
/* 04: SlaveAddress */
380 OptionalSlaveMode
/* 05: SlaveMode */
381 ',' DWordConstExpr
/* 07: ConnectionSpeed */
382 OptionalAddressingMode
/* 08: AddressingMode */
383 ',' StringData
/* 10: ResourceSource */
384 OptionalByteConstExpr
/* 11: ResourceSourceIndex */
385 OptionalResourceType
/* 12: ResourceType */
386 OptionalNameString
/* 13: DescriptorName */
387 OptionalShareType
/* 14: Share */
388 OptionalBuffer_Last
/* 15: VendorData */
389 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,10,
390 $4,$5,$7,$8,$10,$11,$12,$13,$14,$15);}
391 | PARSEOP_I2C_SERIALBUS_V2
393 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
398 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_INTERRUPT
);}
399 OptionalResourceType_First
400 ',' InterruptTypeKeyword
403 OptionalByteConstExpr
405 OptionalNameString_Last
406 PARSEOP_CLOSE_PAREN
'{'
407 DWordList
'}' {$$
= TrLinkChildren
($
<n
>3,8,
408 $4,$6,$8,$9,$10,$11,$12,$15);}
411 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
416 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_IO
);}
422 OptionalNameString_Last
423 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,6,$4,$6,$8,$10,$12,$13);}
426 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
431 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_IRQNOFLAGS
);}
432 OptionalNameString_First
433 PARSEOP_CLOSE_PAREN
'{'
434 ByteList
'}' {$$
= TrLinkChildren
($
<n
>3,2,$4,$7);}
437 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
442 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_IRQ
);}
446 OptionalNameString_Last
447 PARSEOP_CLOSE_PAREN
'{'
448 ByteList
'}' {$$
= TrLinkChildren
($
<n
>3,5,$4,$6,$7,$8,$11);}
451 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
456 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_MEMORY24
);}
457 OptionalReadWriteKeyword
462 OptionalNameString_Last
463 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,6,$4,$6,$8,$10,$12,$13);}
466 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
470 : PARSEOP_MEMORY32FIXED
471 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_MEMORY32FIXED
);}
472 OptionalReadWriteKeyword
475 OptionalNameString_Last
476 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,4,$4,$6,$8,$9);}
477 | PARSEOP_MEMORY32FIXED
479 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
484 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_MEMORY32
);}
485 OptionalReadWriteKeyword
490 OptionalNameString_Last
491 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,6,$4,$6,$8,$10,$12,$13);}
494 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
499 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_QWORDIO
);}
500 OptionalResourceType_First
510 OptionalByteConstExpr
514 OptionalTranslationType_Last
515 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,15,
516 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
519 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
523 : PARSEOP_QWORDMEMORY
524 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_QWORDMEMORY
);}
525 OptionalResourceType_First
530 ',' OptionalReadWriteKeyword
536 OptionalByteConstExpr
541 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,16,
542 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
543 | PARSEOP_QWORDMEMORY
545 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
550 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_QWORDSPACE
);}
551 ByteConstExpr
{UtCheckIntegerRange
($4, 0xC0, 0xFF);}
562 OptionalByteConstExpr
564 OptionalNameString_Last
565 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,14,
566 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
569 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
574 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_REGISTER
);}
580 OptionalNameString_Last
581 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,6,$4,$6,$8,$10,$11,$12);}
584 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
588 : PARSEOP_SPI_SERIALBUS
589 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_SPI_SERIALBUS
);}
590 WordConstExpr
/* 04: DeviceSelection */
591 OptionalDevicePolarity
/* 05: DevicePolarity */
592 OptionalWireMode
/* 06: WireMode */
593 ',' ByteConstExpr
/* 08: DataBitLength */
594 OptionalSlaveMode
/* 09: SlaveMode */
595 ',' DWordConstExpr
/* 11: ConnectionSpeed */
596 ',' ClockPolarityKeyword
/* 13: ClockPolarity */
597 ',' ClockPhaseKeyword
/* 15: ClockPhase */
598 ',' StringData
/* 17: ResourceSource */
599 OptionalByteConstExpr
/* 18: ResourceSourceIndex */
600 OptionalResourceType
/* 19: ResourceType */
601 OptionalNameString
/* 20: DescriptorName */
602 OptionalBuffer_Last
/* 21: VendorData */
603 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,14,
604 $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,
605 TrCreateLeafNode
(PARSEOP_DEFAULT_ARG
),$21);}
606 | PARSEOP_SPI_SERIALBUS
608 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
612 : PARSEOP_SPI_SERIALBUS_V2
613 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_SPI_SERIALBUS_V2
);}
614 WordConstExpr
/* 04: DeviceSelection */
615 OptionalDevicePolarity
/* 05: DevicePolarity */
616 OptionalWireMode
/* 06: WireMode */
617 ',' ByteConstExpr
/* 08: DataBitLength */
618 OptionalSlaveMode
/* 09: SlaveMode */
619 ',' DWordConstExpr
/* 11: ConnectionSpeed */
620 ',' ClockPolarityKeyword
/* 13: ClockPolarity */
621 ',' ClockPhaseKeyword
/* 15: ClockPhase */
622 ',' StringData
/* 17: ResourceSource */
623 OptionalByteConstExpr
/* 18: ResourceSourceIndex */
624 OptionalResourceType
/* 19: ResourceType */
625 OptionalNameString
/* 20: DescriptorName */
626 OptionalShareType
/* 21: Share */
627 OptionalBuffer_Last
/* 22: VendorData */
628 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,14,
629 $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
630 | PARSEOP_SPI_SERIALBUS_V2
632 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
635 StartDependentFnNoPriTerm
636 : PARSEOP_STARTDEPENDENTFN_NOPRI
637 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_STARTDEPENDENTFN_NOPRI
);}
638 PARSEOP_CLOSE_PAREN
'{'
639 ResourceMacroList
'}' {$$
= TrLinkChildren
($
<n
>3,1,$6);}
640 | PARSEOP_STARTDEPENDENTFN_NOPRI
642 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
646 : PARSEOP_STARTDEPENDENTFN
647 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_STARTDEPENDENTFN
);}
650 PARSEOP_CLOSE_PAREN
'{'
651 ResourceMacroList
'}' {$$
= TrLinkChildren
($
<n
>3,3,$4,$6,$9);}
652 | PARSEOP_STARTDEPENDENTFN
654 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
658 : PARSEOP_UART_SERIALBUS
659 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_UART_SERIALBUS
);}
660 DWordConstExpr
/* 04: ConnectionSpeed */
661 OptionalBitsPerByte
/* 05: BitsPerByte */
662 OptionalStopBits
/* 06: StopBits */
663 ',' ByteConstExpr
/* 08: LinesInUse */
664 OptionalEndian
/* 09: Endianess */
665 OptionalParityType
/* 10: Parity */
666 OptionalFlowControl
/* 11: FlowControl */
667 ',' WordConstExpr
/* 13: Rx BufferSize */
668 ',' WordConstExpr
/* 15: Tx BufferSize */
669 ',' StringData
/* 17: ResourceSource */
670 OptionalByteConstExpr
/* 18: ResourceSourceIndex */
671 OptionalResourceType
/* 19: ResourceType */
672 OptionalNameString
/* 20: DescriptorName */
673 OptionalBuffer_Last
/* 21: VendorData */
674 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,15,
675 $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,
676 TrCreateLeafNode
(PARSEOP_DEFAULT_ARG
),$21);}
677 | PARSEOP_UART_SERIALBUS
679 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
683 : PARSEOP_UART_SERIALBUS_V2
684 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_UART_SERIALBUS_V2
);}
685 DWordConstExpr
/* 04: ConnectionSpeed */
686 OptionalBitsPerByte
/* 05: BitsPerByte */
687 OptionalStopBits
/* 06: StopBits */
688 ',' ByteConstExpr
/* 08: LinesInUse */
689 OptionalEndian
/* 09: Endianess */
690 OptionalParityType
/* 10: Parity */
691 OptionalFlowControl
/* 11: FlowControl */
692 ',' WordConstExpr
/* 13: Rx BufferSize */
693 ',' WordConstExpr
/* 15: Tx BufferSize */
694 ',' StringData
/* 17: ResourceSource */
695 OptionalByteConstExpr
/* 18: ResourceSourceIndex */
696 OptionalResourceType
/* 19: ResourceType */
697 OptionalNameString
/* 20: DescriptorName */
698 OptionalShareType
/* 21: Share */
699 OptionalBuffer_Last
/* 22: VendorData */
700 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,15,
701 $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
702 | PARSEOP_UART_SERIALBUS_V2
704 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
709 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_VENDORLONG
);}
710 OptionalNameString_First
711 PARSEOP_CLOSE_PAREN
'{'
712 ByteList
'}' {$$
= TrLinkChildren
($
<n
>3,2,$4,$7);}
715 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
719 : PARSEOP_VENDORSHORT
720 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_VENDORSHORT
);}
721 OptionalNameString_First
722 PARSEOP_CLOSE_PAREN
'{'
723 ByteList
'}' {$$
= TrLinkChildren
($
<n
>3,2,$4,$7);}
724 | PARSEOP_VENDORSHORT
726 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
730 : PARSEOP_WORDBUSNUMBER
731 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_WORDBUSNUMBER
);}
732 OptionalResourceType_First
741 OptionalByteConstExpr
743 OptionalNameString_Last
744 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,12,
745 $4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
746 | PARSEOP_WORDBUSNUMBER
748 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
753 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_WORDIO
);}
754 OptionalResourceType_First
764 OptionalByteConstExpr
768 OptionalTranslationType_Last
769 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,15,
770 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
773 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}
778 PARSEOP_OPEN_PAREN
{$
<n
>$
= TrCreateLeafNode
(PARSEOP_WORDSPACE
);}
779 ByteConstExpr
{UtCheckIntegerRange
($4, 0xC0, 0xFF);}
790 OptionalByteConstExpr
792 OptionalNameString_Last
793 PARSEOP_CLOSE_PAREN
{$$
= TrLinkChildren
($
<n
>3,14,
794 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
797 error PARSEOP_CLOSE_PAREN
{$$
= AslDoError
(); yyclearin;}