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.
47 /*******************************************************************************
49 * ASL Parameter Keyword Terms
51 ******************************************************************************/
54 : PARSEOP_ACCESSATTRIB_BLOCK {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK);}
55 | PARSEOP_ACCESSATTRIB_BLOCK_CALL {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK_CALL);}
56 | PARSEOP_ACCESSATTRIB_BYTE {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BYTE);}
57 | PARSEOP_ACCESSATTRIB_QUICK {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_QUICK );}
58 | PARSEOP_ACCESSATTRIB_SND_RCV {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_SND_RCV);}
59 | PARSEOP_ACCESSATTRIB_WORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD);}
60 | PARSEOP_ACCESSATTRIB_WORD_CALL {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD_CALL);}
61 | PARSEOP_ACCESSATTRIB_MULTIBYTE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_MULTIBYTE);}
63 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
64 | PARSEOP_ACCESSATTRIB_RAW_BYTES '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_BYTES);}
66 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
67 | PARSEOP_ACCESSATTRIB_RAW_PROCESS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_PROCESS);}
69 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
73 : PARSEOP_ACCESSTYPE_ANY {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_ANY);}
74 | PARSEOP_ACCESSTYPE_BYTE {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BYTE);}
75 | PARSEOP_ACCESSTYPE_WORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_WORD);}
76 | PARSEOP_ACCESSTYPE_DWORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_DWORD);}
77 | PARSEOP_ACCESSTYPE_QWORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_QWORD);}
78 | PARSEOP_ACCESSTYPE_BUF {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BUF);}
82 : PARSEOP_ADDRESSINGMODE_7BIT {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_7BIT);}
83 | PARSEOP_ADDRESSINGMODE_10BIT {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_10BIT);}
87 : PARSEOP_ADDRESSTYPE_MEMORY {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_MEMORY);}
88 | PARSEOP_ADDRESSTYPE_RESERVED {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_RESERVED);}
89 | PARSEOP_ADDRESSTYPE_NVS {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_NVS);}
90 | PARSEOP_ADDRESSTYPE_ACPI {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_ACPI);}
94 : ByteConst {$$ = UtCheckIntegerRange ($1, 0x0A, 0xFF);}
95 | RegionSpaceKeyword {}
99 : PARSEOP_BITSPERBYTE_FIVE {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_FIVE);}
100 | PARSEOP_BITSPERBYTE_SIX {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SIX);}
101 | PARSEOP_BITSPERBYTE_SEVEN {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SEVEN);}
102 | PARSEOP_BITSPERBYTE_EIGHT {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_EIGHT);}
103 | PARSEOP_BITSPERBYTE_NINE {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_NINE);}
107 : PARSEOP_CLOCKPHASE_FIRST {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_FIRST);}
108 | PARSEOP_CLOCKPHASE_SECOND {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_SECOND);}
112 : PARSEOP_CLOCKPOLARITY_LOW {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_LOW);}
113 | PARSEOP_CLOCKPOLARITY_HIGH {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_HIGH);}
117 : PARSEOP_DECODETYPE_POS {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_POS);}
118 | PARSEOP_DECODETYPE_SUB {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_SUB);}
121 DevicePolarityKeyword
122 : PARSEOP_DEVICEPOLARITY_LOW {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_LOW);}
123 | PARSEOP_DEVICEPOLARITY_HIGH {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_HIGH);}
127 : PARSEOP_DMATYPE_A {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_A);}
128 | PARSEOP_DMATYPE_COMPATIBILITY {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_COMPATIBILITY);}
129 | PARSEOP_DMATYPE_B {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_B);}
130 | PARSEOP_DMATYPE_F {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_F);}
134 : PARSEOP_ENDIAN_LITTLE {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_LITTLE);}
135 | PARSEOP_ENDIAN_BIG {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_BIG);}
139 : PARSEOP_FLOWCONTROL_HW {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_HW);}
140 | PARSEOP_FLOWCONTROL_NONE {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_NONE);}
141 | PARSEOP_FLOWCONTROL_SW {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_SW);}
145 : PARSEOP_INTLEVEL_ACTIVEBOTH {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEBOTH);}
146 | PARSEOP_INTLEVEL_ACTIVEHIGH {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEHIGH);}
147 | PARSEOP_INTLEVEL_ACTIVELOW {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVELOW);}
151 : PARSEOP_INTTYPE_EDGE {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_EDGE);}
152 | PARSEOP_INTTYPE_LEVEL {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_LEVEL);}
156 : PARSEOP_IODECODETYPE_16 {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_16);}
157 | PARSEOP_IODECODETYPE_10 {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_10);}
161 : PARSEOP_IORESTRICT_IN {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_IN);}
162 | PARSEOP_IORESTRICT_OUT {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_OUT);}
163 | PARSEOP_IORESTRICT_NONE {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_NONE);}
164 | PARSEOP_IORESTRICT_PRESERVE {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_PRESERVE);}
168 : PARSEOP_LOCKRULE_LOCK {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_LOCK);}
169 | PARSEOP_LOCKRULE_NOLOCK {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_NOLOCK);}
173 : PARSEOP_MATCHTYPE_MTR {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MTR);}
174 | PARSEOP_MATCHTYPE_MEQ {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MEQ);}
175 | PARSEOP_MATCHTYPE_MLE {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLE);}
176 | PARSEOP_MATCHTYPE_MLT {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLT);}
177 | PARSEOP_MATCHTYPE_MGE {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGE);}
178 | PARSEOP_MATCHTYPE_MGT {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGT);}
182 : PARSEOP_MAXTYPE_FIXED {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_FIXED);}
183 | PARSEOP_MAXTYPE_NOTFIXED {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_NOTFIXED);}
187 : PARSEOP_MEMTYPE_CACHEABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_CACHEABLE);}
188 | PARSEOP_MEMTYPE_WRITECOMBINING {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_WRITECOMBINING);}
189 | PARSEOP_MEMTYPE_PREFETCHABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_PREFETCHABLE);}
190 | PARSEOP_MEMTYPE_NONCACHEABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_NONCACHEABLE);}
194 : PARSEOP_MINTYPE_FIXED {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_FIXED);}
195 | PARSEOP_MINTYPE_NOTFIXED {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_NOTFIXED);}
199 : PARSEOP_OBJECTTYPE_UNK {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
200 | PARSEOP_OBJECTTYPE_INT {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_INT);}
201 | PARSEOP_OBJECTTYPE_STR {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_STR);}
202 | PARSEOP_OBJECTTYPE_BUF {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BUF);}
203 | PARSEOP_OBJECTTYPE_PKG {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PKG);}
204 | PARSEOP_OBJECTTYPE_FLD {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_FLD);}
205 | PARSEOP_OBJECTTYPE_DEV {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DEV);}
206 | PARSEOP_OBJECTTYPE_EVT {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_EVT);}
207 | PARSEOP_OBJECTTYPE_MTH {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTH);}
208 | PARSEOP_OBJECTTYPE_MTX {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTX);}
209 | PARSEOP_OBJECTTYPE_OPR {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_OPR);}
210 | PARSEOP_OBJECTTYPE_POW {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_POW);}
211 | PARSEOP_OBJECTTYPE_PRO {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PRO);}
212 | PARSEOP_OBJECTTYPE_THZ {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_THZ);}
213 | PARSEOP_OBJECTTYPE_BFF {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BFF);}
214 | PARSEOP_OBJECTTYPE_DDB {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DDB);}
218 : PARSEOP_PARITYTYPE_SPACE {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_SPACE);}
219 | PARSEOP_PARITYTYPE_MARK {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_MARK);}
220 | PARSEOP_PARITYTYPE_ODD {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_ODD);}
221 | PARSEOP_PARITYTYPE_EVEN {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_EVEN);}
222 | PARSEOP_PARITYTYPE_NONE {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_NONE);}
226 : PinConfigKeyword {$$ = $1;}
227 | ByteConstExpr {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
231 : PARSEOP_PIN_NOPULL {$$ = TrCreateLeafNode (PARSEOP_PIN_NOPULL);}
232 | PARSEOP_PIN_PULLDOWN {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDOWN);}
233 | PARSEOP_PIN_PULLUP {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLUP);}
234 | PARSEOP_PIN_PULLDEFAULT {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDEFAULT);}
238 : PARSEOP_PLD_REVISION {$$ = TrCreateLeafNode (PARSEOP_PLD_REVISION);}
239 | PARSEOP_PLD_IGNORECOLOR {$$ = TrCreateLeafNode (PARSEOP_PLD_IGNORECOLOR);}
240 | PARSEOP_PLD_RED {$$ = TrCreateLeafNode (PARSEOP_PLD_RED);}
241 | PARSEOP_PLD_GREEN {$$ = TrCreateLeafNode (PARSEOP_PLD_GREEN);}
242 | PARSEOP_PLD_BLUE {$$ = TrCreateLeafNode (PARSEOP_PLD_BLUE);}
243 | PARSEOP_PLD_WIDTH {$$ = TrCreateLeafNode (PARSEOP_PLD_WIDTH);}
244 | PARSEOP_PLD_HEIGHT {$$ = TrCreateLeafNode (PARSEOP_PLD_HEIGHT);}
245 | PARSEOP_PLD_USERVISIBLE {$$ = TrCreateLeafNode (PARSEOP_PLD_USERVISIBLE);}
246 | PARSEOP_PLD_DOCK {$$ = TrCreateLeafNode (PARSEOP_PLD_DOCK);}
247 | PARSEOP_PLD_LID {$$ = TrCreateLeafNode (PARSEOP_PLD_LID);}
248 | PARSEOP_PLD_PANEL {$$ = TrCreateLeafNode (PARSEOP_PLD_PANEL);}
249 | PARSEOP_PLD_VERTICALPOSITION {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALPOSITION);}
250 | PARSEOP_PLD_HORIZONTALPOSITION {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALPOSITION);}
251 | PARSEOP_PLD_SHAPE {$$ = TrCreateLeafNode (PARSEOP_PLD_SHAPE);}
252 | PARSEOP_PLD_GROUPORIENTATION {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPORIENTATION);}
253 | PARSEOP_PLD_GROUPTOKEN {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPTOKEN);}
254 | PARSEOP_PLD_GROUPPOSITION {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPPOSITION);}
255 | PARSEOP_PLD_BAY {$$ = TrCreateLeafNode (PARSEOP_PLD_BAY);}
256 | PARSEOP_PLD_EJECTABLE {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTABLE);}
257 | PARSEOP_PLD_EJECTREQUIRED {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTREQUIRED);}
258 | PARSEOP_PLD_CABINETNUMBER {$$ = TrCreateLeafNode (PARSEOP_PLD_CABINETNUMBER);}
259 | PARSEOP_PLD_CARDCAGENUMBER {$$ = TrCreateLeafNode (PARSEOP_PLD_CARDCAGENUMBER);}
260 | PARSEOP_PLD_REFERENCE {$$ = TrCreateLeafNode (PARSEOP_PLD_REFERENCE);}
261 | PARSEOP_PLD_ROTATION {$$ = TrCreateLeafNode (PARSEOP_PLD_ROTATION);}
262 | PARSEOP_PLD_ORDER {$$ = TrCreateLeafNode (PARSEOP_PLD_ORDER);}
263 | PARSEOP_PLD_RESERVED {$$ = TrCreateLeafNode (PARSEOP_PLD_RESERVED);}
264 | PARSEOP_PLD_VERTICALOFFSET {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALOFFSET);}
265 | PARSEOP_PLD_HORIZONTALOFFSET {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALOFFSET);}
269 : PARSEOP_RANGETYPE_ISAONLY {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ISAONLY);}
270 | PARSEOP_RANGETYPE_NONISAONLY {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_NONISAONLY);}
271 | PARSEOP_RANGETYPE_ENTIRE {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ENTIRE);}
275 : PARSEOP_REGIONSPACE_IO {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IO);}
276 | PARSEOP_REGIONSPACE_MEM {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_MEM);}
277 | PARSEOP_REGIONSPACE_PCI {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCI);}
278 | PARSEOP_REGIONSPACE_EC {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_EC);}
279 | PARSEOP_REGIONSPACE_SMBUS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_SMBUS);}
280 | PARSEOP_REGIONSPACE_CMOS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_CMOS);}
281 | PARSEOP_REGIONSPACE_PCIBAR {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCIBAR);}
282 | PARSEOP_REGIONSPACE_IPMI {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IPMI);}
283 | PARSEOP_REGIONSPACE_GPIO {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GPIO);}
284 | PARSEOP_REGIONSPACE_GSBUS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GSBUS);}
285 | PARSEOP_REGIONSPACE_PCC {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCC);}
286 | PARSEOP_REGIONSPACE_FFIXEDHW {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_FFIXEDHW);}
290 : PARSEOP_RESOURCETYPE_CONSUMER {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
291 | PARSEOP_RESOURCETYPE_PRODUCER {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_PRODUCER);}
295 : PARSEOP_SERIALIZERULE_SERIAL {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_SERIAL);}
296 | PARSEOP_SERIALIZERULE_NOTSERIAL {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL);}
300 : PARSEOP_SHARETYPE_SHARED {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHARED);}
301 | PARSEOP_SHARETYPE_EXCLUSIVE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVE);}
302 | PARSEOP_SHARETYPE_SHAREDWAKE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHAREDWAKE);}
303 | PARSEOP_SHARETYPE_EXCLUSIVEWAKE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVEWAKE);}
307 : PARSEOP_SLAVEMODE_CONTROLLERINIT {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_CONTROLLERINIT);}
308 | PARSEOP_SLAVEMODE_DEVICEINIT {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_DEVICEINIT);}
312 : PARSEOP_STOPBITS_TWO {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_TWO);}
313 | PARSEOP_STOPBITS_ONEPLUSHALF {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONEPLUSHALF);}
314 | PARSEOP_STOPBITS_ONE {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONE);}
315 | PARSEOP_STOPBITS_ZERO {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ZERO);}
319 : PARSEOP_TRANSLATIONTYPE_SPARSE {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_SPARSE);}
320 | PARSEOP_TRANSLATIONTYPE_DENSE {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_DENSE);}
324 : PARSEOP_TYPE_TRANSLATION {$$ = TrCreateLeafNode (PARSEOP_TYPE_TRANSLATION);}
325 | PARSEOP_TYPE_STATIC {$$ = TrCreateLeafNode (PARSEOP_TYPE_STATIC);}
329 : PARSEOP_UPDATERULE_PRESERVE {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_PRESERVE);}
330 | PARSEOP_UPDATERULE_ONES {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ONES);}
331 | PARSEOP_UPDATERULE_ZEROS {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ZEROS);}
335 : PARSEOP_WIREMODE_FOUR {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_FOUR);}
336 | PARSEOP_WIREMODE_THREE {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_THREE);}
340 : PARSEOP_XFERSIZE_8 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_8, 0);}
341 | PARSEOP_XFERSIZE_16 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_16, 1);}
342 | PARSEOP_XFERSIZE_32 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);}
343 | PARSEOP_XFERSIZE_64 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_64, 3);}
344 | PARSEOP_XFERSIZE_128 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_128, 4);}
345 | PARSEOP_XFERSIZE_256 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_256, 5);}
349 : PARSEOP_XFERTYPE_8 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8);}
350 | PARSEOP_XFERTYPE_8_16 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8_16);}
351 | PARSEOP_XFERTYPE_16 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_16);}
355 /*******************************************************************************
357 * ASL Resource Template Terms
359 ******************************************************************************/
362 * Note: Create two default nodes to allow conversion to a Buffer AML opcode
363 * Also, insert the EndTag at the end of the template.
366 : PARSEOP_RESOURCETEMPLATE '(' ')'
368 ResourceMacroList '}' {$$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,4,
369 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
370 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
372 TrCreateLeafNode (PARSEOP_ENDTAG));}
378 ResourceMacroTerm {$$ = TrLinkPeerNode ($1,$2);}
386 | EndDependentFnTerm {}
388 | ExtendedMemoryTerm {}
389 | ExtendedSpaceTerm {}
394 | I2cSerialBusTerm {}
395 | I2cSerialBusTermV2 {}
401 | Memory32FixedTerm {}
407 | SpiSerialBusTerm {}
408 | SpiSerialBusTermV2 {}
409 | StartDependentFnNoPriTerm {}
410 | StartDependentFnTerm {}
411 | UartSerialBusTerm {}
412 | UartSerialBusTermV2 {}
415 | WordBusNumberTerm {}
421 : PARSEOP_DMA '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DMA);}
423 OptionalBusMasterKeyword
425 OptionalNameString_Last
427 ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$5,$7,$8,$11);}
429 error ')' {$$ = AslDoError(); yyclearin;}
433 : PARSEOP_DWORDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDIO);}
434 OptionalResourceType_First
444 OptionalByteConstExpr
448 OptionalTranslationType_Last
449 ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
450 | PARSEOP_DWORDIO '('
451 error ')' {$$ = AslDoError(); yyclearin;}
455 : PARSEOP_DWORDMEMORY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);}
456 OptionalResourceType_First
461 ',' OptionalReadWriteKeyword
467 OptionalByteConstExpr
472 ')' {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
473 | PARSEOP_DWORDMEMORY '('
474 error ')' {$$ = AslDoError(); yyclearin;}
478 : PARSEOP_DWORDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDSPACE);}
479 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
490 OptionalByteConstExpr
492 OptionalNameString_Last
493 ')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
494 | PARSEOP_DWORDSPACE '('
495 error ')' {$$ = AslDoError(); yyclearin;}
499 : PARSEOP_ENDDEPENDENTFN '('
500 ')' {$$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);}
501 | PARSEOP_ENDDEPENDENTFN '('
502 error ')' {$$ = AslDoError(); yyclearin;}
506 : PARSEOP_EXTENDEDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDIO);}
507 OptionalResourceType_First
517 OptionalQWordConstExpr
520 OptionalTranslationType_Last
521 ')' {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
522 | PARSEOP_EXTENDEDIO '('
523 error ')' {$$ = AslDoError(); yyclearin;}
527 : PARSEOP_EXTENDEDMEMORY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDMEMORY);}
528 OptionalResourceType_First
533 ',' OptionalReadWriteKeyword
539 OptionalQWordConstExpr
543 ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
544 | PARSEOP_EXTENDEDMEMORY '('
545 error ')' {$$ = AslDoError(); yyclearin;}
549 : PARSEOP_EXTENDEDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDSPACE);}
550 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
561 OptionalQWordConstExpr
562 OptionalNameString_Last
563 ')' {$$ = TrLinkChildren ($<n>3,13,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
564 | PARSEOP_EXTENDEDSPACE '('
565 error ')' {$$ = AslDoError(); yyclearin;}
569 : PARSEOP_FIXEDDMA '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDDMA);}
570 WordConstExpr /* 04: DMA RequestLines */
571 ',' WordConstExpr /* 06: DMA Channels */
572 OptionalXferSize /* 07: DMA TransferSize */
573 OptionalNameString /* 08: DescriptorName */
574 ')' {$$ = TrLinkChildren ($<n>3,4,$4,$6,$7,$8);}
575 | PARSEOP_FIXEDDMA '('
576 error ')' {$$ = AslDoError(); yyclearin;}
580 : PARSEOP_FIXEDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDIO);}
583 OptionalNameString_Last
584 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
585 | PARSEOP_FIXEDIO '('
586 error ')' {$$ = AslDoError(); yyclearin;}
590 : PARSEOP_GPIO_INT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_INT);}
591 InterruptTypeKeyword /* 04: InterruptType */
592 ',' InterruptLevel /* 06: InterruptLevel */
593 OptionalShareType /* 07: SharedType */
594 ',' PinConfigByte /* 09: PinConfig */
595 OptionalWordConstExpr /* 10: DebounceTimeout */
596 ',' StringData /* 12: ResourceSource */
597 OptionalByteConstExpr /* 13: ResourceSourceIndex */
598 OptionalResourceType /* 14: ResourceType */
599 OptionalNameString /* 15: DescriptorName */
600 OptionalBuffer_Last /* 16: VendorData */
602 DWordConstExpr '}' {$$ = TrLinkChildren ($<n>3,11,$4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);}
603 | PARSEOP_GPIO_INT '('
604 error ')' {$$ = AslDoError(); yyclearin;}
608 : PARSEOP_GPIO_IO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_IO);}
609 OptionalShareType_First /* 04: SharedType */
610 ',' PinConfigByte /* 06: PinConfig */
611 OptionalWordConstExpr /* 07: DebounceTimeout */
612 OptionalWordConstExpr /* 08: DriveStrength */
613 OptionalIoRestriction /* 09: IoRestriction */
614 ',' StringData /* 11: ResourceSource */
615 OptionalByteConstExpr /* 12: ResourceSourceIndex */
616 OptionalResourceType /* 13: ResourceType */
617 OptionalNameString /* 14: DescriptorName */
618 OptionalBuffer_Last /* 15: VendorData */
620 DWordList '}' {$$ = TrLinkChildren ($<n>3,11,$4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);}
621 | PARSEOP_GPIO_IO '('
622 error ')' {$$ = AslDoError(); yyclearin;}
626 : PARSEOP_I2C_SERIALBUS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS);}
627 WordConstExpr /* 04: SlaveAddress */
628 OptionalSlaveMode /* 05: SlaveMode */
629 ',' DWordConstExpr /* 07: ConnectionSpeed */
630 OptionalAddressingMode /* 08: AddressingMode */
631 ',' StringData /* 10: ResourceSource */
632 OptionalByteConstExpr /* 11: ResourceSourceIndex */
633 OptionalResourceType /* 12: ResourceType */
634 OptionalNameString /* 13: DescriptorName */
635 OptionalBuffer_Last /* 14: VendorData */
636 ')' {$$ = TrLinkChildren ($<n>3,10,$4,$5,$7,$8,$10,$11,$12,$13,
637 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$14);}
638 | PARSEOP_I2C_SERIALBUS '('
639 error ')' {$$ = AslDoError(); yyclearin;}
643 : PARSEOP_I2C_SERIALBUS_V2 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS_V2);}
644 WordConstExpr /* 04: SlaveAddress */
645 OptionalSlaveMode /* 05: SlaveMode */
646 ',' DWordConstExpr /* 07: ConnectionSpeed */
647 OptionalAddressingMode /* 08: AddressingMode */
648 ',' StringData /* 10: ResourceSource */
649 OptionalByteConstExpr /* 11: ResourceSourceIndex */
650 OptionalResourceType /* 12: ResourceType */
651 OptionalNameString /* 13: DescriptorName */
652 OptionalShareType /* 14: Share */
653 OptionalBuffer_Last /* 15: VendorData */
654 ')' {$$ = TrLinkChildren ($<n>3,10,$4,$5,$7,$8,$10,$11,$12,$13,
656 | PARSEOP_I2C_SERIALBUS_V2 '('
657 error ')' {$$ = AslDoError(); yyclearin;}
661 : PARSEOP_INTERRUPT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INTERRUPT);}
662 OptionalResourceType_First
663 ',' InterruptTypeKeyword
666 OptionalByteConstExpr
668 OptionalNameString_Last
670 DWordList '}' {$$ = TrLinkChildren ($<n>3,8,$4,$6,$8,$9,$10,$11,$12,$15);}
671 | PARSEOP_INTERRUPT '('
672 error ')' {$$ = AslDoError(); yyclearin;}
676 : PARSEOP_IO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IO);}
682 OptionalNameString_Last
683 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
685 error ')' {$$ = AslDoError(); yyclearin;}
689 : PARSEOP_IRQNOFLAGS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);}
690 OptionalNameString_First
692 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
693 | PARSEOP_IRQNOFLAGS '('
694 error ')' {$$ = AslDoError(); yyclearin;}
698 : PARSEOP_IRQ '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IRQ);}
702 OptionalNameString_Last
704 ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);}
706 error ')' {$$ = AslDoError(); yyclearin;}
710 : PARSEOP_MEMORY24 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY24);}
711 OptionalReadWriteKeyword
716 OptionalNameString_Last
717 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
718 | PARSEOP_MEMORY24 '('
719 error ')' {$$ = AslDoError(); yyclearin;}
723 : PARSEOP_MEMORY32FIXED '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);}
724 OptionalReadWriteKeyword
727 OptionalNameString_Last
728 ')' {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$9);}
729 | PARSEOP_MEMORY32FIXED '('
730 error ')' {$$ = AslDoError(); yyclearin;}
734 : PARSEOP_MEMORY32 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32);}
735 OptionalReadWriteKeyword
740 OptionalNameString_Last
741 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
742 | PARSEOP_MEMORY32 '('
743 error ')' {$$ = AslDoError(); yyclearin;}
747 : PARSEOP_QWORDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDIO);}
748 OptionalResourceType_First
758 OptionalByteConstExpr
762 OptionalTranslationType_Last
763 ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
764 | PARSEOP_QWORDIO '('
765 error ')' {$$ = AslDoError(); yyclearin;}
769 : PARSEOP_QWORDMEMORY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);}
770 OptionalResourceType_First
775 ',' OptionalReadWriteKeyword
781 OptionalByteConstExpr
786 ')' {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
787 | PARSEOP_QWORDMEMORY '('
788 error ')' {$$ = AslDoError(); yyclearin;}
792 : PARSEOP_QWORDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDSPACE);}
793 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
804 OptionalByteConstExpr
806 OptionalNameString_Last
807 ')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
808 | PARSEOP_QWORDSPACE '('
809 error ')' {$$ = AslDoError(); yyclearin;}
813 : PARSEOP_REGISTER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_REGISTER);}
819 OptionalNameString_Last
820 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
821 | PARSEOP_REGISTER '('
822 error ')' {$$ = AslDoError(); yyclearin;}
826 : PARSEOP_SPI_SERIALBUS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS);}
827 WordConstExpr /* 04: DeviceSelection */
828 OptionalDevicePolarity /* 05: DevicePolarity */
829 OptionalWireMode /* 06: WireMode */
830 ',' ByteConstExpr /* 08: DataBitLength */
831 OptionalSlaveMode /* 09: SlaveMode */
832 ',' DWordConstExpr /* 11: ConnectionSpeed */
833 ',' ClockPolarityKeyword /* 13: ClockPolarity */
834 ',' ClockPhaseKeyword /* 15: ClockPhase */
835 ',' StringData /* 17: ResourceSource */
836 OptionalByteConstExpr /* 18: ResourceSourceIndex */
837 OptionalResourceType /* 19: ResourceType */
838 OptionalNameString /* 20: DescriptorName */
839 OptionalBuffer_Last /* 21: VendorData */
840 ')' {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,
841 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);}
842 | PARSEOP_SPI_SERIALBUS '('
843 error ')' {$$ = AslDoError(); yyclearin;}
847 : PARSEOP_SPI_SERIALBUS_V2 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS_V2);}
848 WordConstExpr /* 04: DeviceSelection */
849 OptionalDevicePolarity /* 05: DevicePolarity */
850 OptionalWireMode /* 06: WireMode */
851 ',' ByteConstExpr /* 08: DataBitLength */
852 OptionalSlaveMode /* 09: SlaveMode */
853 ',' DWordConstExpr /* 11: ConnectionSpeed */
854 ',' ClockPolarityKeyword /* 13: ClockPolarity */
855 ',' ClockPhaseKeyword /* 15: ClockPhase */
856 ',' StringData /* 17: ResourceSource */
857 OptionalByteConstExpr /* 18: ResourceSourceIndex */
858 OptionalResourceType /* 19: ResourceType */
859 OptionalNameString /* 20: DescriptorName */
860 OptionalShareType /* 21: Share */
861 OptionalBuffer_Last /* 22: VendorData */
862 ')' {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,
864 | PARSEOP_SPI_SERIALBUS_V2 '('
865 error ')' {$$ = AslDoError(); yyclearin;}
868 StartDependentFnNoPriTerm
869 : PARSEOP_STARTDEPENDENTFN_NOPRI '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);}
871 ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,1,$6);}
872 | PARSEOP_STARTDEPENDENTFN_NOPRI '('
873 error ')' {$$ = AslDoError(); yyclearin;}
877 : PARSEOP_STARTDEPENDENTFN '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);}
881 ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$9);}
882 | PARSEOP_STARTDEPENDENTFN '('
883 error ')' {$$ = AslDoError(); yyclearin;}
887 : PARSEOP_UART_SERIALBUS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS);}
888 DWordConstExpr /* 04: ConnectionSpeed */
889 OptionalBitsPerByte /* 05: BitsPerByte */
890 OptionalStopBits /* 06: StopBits */
891 ',' ByteConstExpr /* 08: LinesInUse */
892 OptionalEndian /* 09: Endianess */
893 OptionalParityType /* 10: Parity */
894 OptionalFlowControl /* 11: FlowControl */
895 ',' WordConstExpr /* 13: Rx BufferSize */
896 ',' WordConstExpr /* 15: Tx BufferSize */
897 ',' StringData /* 17: ResourceSource */
898 OptionalByteConstExpr /* 18: ResourceSourceIndex */
899 OptionalResourceType /* 19: ResourceType */
900 OptionalNameString /* 20: DescriptorName */
901 OptionalBuffer_Last /* 21: VendorData */
902 ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,
903 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);}
904 | PARSEOP_UART_SERIALBUS '('
905 error ')' {$$ = AslDoError(); yyclearin;}
909 : PARSEOP_UART_SERIALBUS_V2 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS_V2);}
910 DWordConstExpr /* 04: ConnectionSpeed */
911 OptionalBitsPerByte /* 05: BitsPerByte */
912 OptionalStopBits /* 06: StopBits */
913 ',' ByteConstExpr /* 08: LinesInUse */
914 OptionalEndian /* 09: Endianess */
915 OptionalParityType /* 10: Parity */
916 OptionalFlowControl /* 11: FlowControl */
917 ',' WordConstExpr /* 13: Rx BufferSize */
918 ',' WordConstExpr /* 15: Tx BufferSize */
919 ',' StringData /* 17: ResourceSource */
920 OptionalByteConstExpr /* 18: ResourceSourceIndex */
921 OptionalResourceType /* 19: ResourceType */
922 OptionalNameString /* 20: DescriptorName */
923 OptionalShareType /* 21: Share */
924 OptionalBuffer_Last /* 22: VendorData */
925 ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,
927 | PARSEOP_UART_SERIALBUS_V2 '('
928 error ')' {$$ = AslDoError(); yyclearin;}
932 : PARSEOP_VENDORLONG '(' {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORLONG);}
933 OptionalNameString_First
935 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
936 | PARSEOP_VENDORLONG '('
937 error ')' {$$ = AslDoError(); yyclearin;}
941 : PARSEOP_VENDORSHORT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);}
942 OptionalNameString_First
944 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
945 | PARSEOP_VENDORSHORT '('
946 error ')' {$$ = AslDoError(); yyclearin;}
950 : PARSEOP_WORDBUSNUMBER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);}
951 OptionalResourceType_First
960 OptionalByteConstExpr
962 OptionalNameString_Last
963 ')' {$$ = TrLinkChildren ($<n>3,12,$4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
964 | PARSEOP_WORDBUSNUMBER '('
965 error ')' {$$ = AslDoError(); yyclearin;}
969 : PARSEOP_WORDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WORDIO);}
970 OptionalResourceType_First
980 OptionalByteConstExpr
984 OptionalTranslationType_Last
985 ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
987 error ')' {$$ = AslDoError(); yyclearin;}
991 : PARSEOP_WORDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WORDSPACE);}
992 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
1003 OptionalByteConstExpr
1005 OptionalNameString_Last
1006 ')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
1007 | PARSEOP_WORDSPACE '('
1008 error ')' {$$ = AslDoError(); yyclearin;}
1012 /******* Object References ***********************************************/
1014 /* Allow IO, DMA, IRQ Resource macro names to also be used as identifiers */
1018 | PARSEOP_NAMESTRING {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) AslCompilerlval.s);}
1019 | PARSEOP_IO {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IO");}
1020 | PARSEOP_DMA {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "DMA");}
1021 | PARSEOP_IRQ {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IRQ");}
1025 : PARSEOP_NAMESEG {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESEG, (ACPI_NATIVE_INT) AslCompilerlval.s);}
1029 /*******************************************************************************
1033 ******************************************************************************/
1035 OptionalBusMasterKeyword
1036 : ',' {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
1037 | ',' PARSEOP_BUSMASTERTYPE_MASTER {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
1038 | ',' PARSEOP_BUSMASTERTYPE_NOTMASTER {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_NOTMASTER);}
1041 OptionalAccessAttribTerm
1044 | ',' ByteConstExpr {$$ = $2;}
1045 | ',' AccessAttribKeyword {$$ = $2;}
1049 : {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
1050 | ',' {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
1051 | ',' ByteConstExpr {$$ = $2;}
1054 OptionalAddressingMode
1056 | ',' AddressingModeKeyword {$$ = $2;}
1059 OptionalAddressRange
1062 | ',' AddressKeyword {$$ = $2;}
1067 | ',' BitsPerByteKeyword {$$ = $2;}
1073 | ',' RawDataBufferTerm {$$ = $2;}
1076 OptionalByteConstExpr
1079 | ',' ByteConstExpr {$$ = $2;}
1084 | ',' DecodeKeyword {$$ = $2;}
1087 OptionalDevicePolarity
1089 | ',' DevicePolarityKeyword {$$ = $2;}
1092 OptionalDWordConstExpr
1095 | ',' DWordConstExpr {$$ = $2;}
1100 | ',' EndianKeyword {$$ = $2;}
1105 | ',' FlowControlKeyword {$$ = $2;}
1108 OptionalIoRestriction
1110 | ',' IoRestrictionKeyword {$$ = $2;}
1114 : {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */
1115 | ',' {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */
1116 | ',' TermArg {$$ = $2;}
1121 | ',' MaxKeyword {$$ = $2;}
1126 | ',' MemTypeKeyword {$$ = $2;}
1131 | ',' MinKeyword {$$ = $2;}
1137 | ',' NameString {$$ = $2;}
1140 OptionalNameString_Last
1143 | ',' NameString {$$ = $2;}
1146 OptionalNameString_First
1147 : {$$ = TrCreateLeafNode (PARSEOP_ZERO);}
1148 | NameString {$$ = $1;}
1151 OptionalObjectTypeKeyword
1152 : {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
1153 | ',' ObjectTypeKeyword {$$ = $2;}
1158 | ',' ParityTypeKeyword {$$ = $2;}
1161 OptionalQWordConstExpr
1164 | ',' QWordConstExpr {$$ = $2;}
1169 | ',' RangeTypeKeyword {$$ = $2;}
1172 OptionalReadWriteKeyword
1173 : {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
1174 | PARSEOP_READWRITETYPE_BOTH {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
1175 | PARSEOP_READWRITETYPE_READONLY {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_READONLY);}
1178 OptionalResourceType_First
1179 : {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
1180 | ResourceTypeKeyword {$$ = $1;}
1183 OptionalResourceType
1184 : {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
1185 | ',' {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
1186 | ',' ResourceTypeKeyword {$$ = $2;}
1191 | ',' SlaveModeKeyword {$$ = $2;}
1197 | ',' ShareTypeKeyword {$$ = $2;}
1200 OptionalShareType_First
1202 | ShareTypeKeyword {$$ = $1;}
1207 | ',' StopBitsKeyword {$$ = $2;}
1213 | ',' StringData {$$ = $2;}
1216 OptionalTranslationType_Last
1219 | ',' TranslationKeyword {$$ = $2;}
1225 | ',' TypeKeyword {$$ = $2;}
1231 | ',' TypeKeyword {$$ = $2;}
1236 | ',' WireModeKeyword {$$ = $2;}
1239 OptionalWordConstExpr
1241 | ',' WordConstExpr {$$ = $2;}
1245 : {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);}
1246 | ',' {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);}
1247 | ',' XferSizeKeyword {$$ = $2;}