aslresources.y revision 1.1.1.3 1 1.1 christos NoEcho('
2 1.1 christos /******************************************************************************
3 1.1 christos *
4 1.1 christos * Module Name: aslresources.y - Bison/Yacc production rules for resources
5 1.1 christos *
6 1.1 christos *****************************************************************************/
7 1.1 christos
8 1.1 christos /*
9 1.1 christos * Copyright (C) 2000 - 2016, Intel Corp.
10 1.1 christos * All rights reserved.
11 1.1 christos *
12 1.1 christos * Redistribution and use in source and binary forms, with or without
13 1.1 christos * modification, are permitted provided that the following conditions
14 1.1 christos * are met:
15 1.1 christos * 1. Redistributions of source code must retain the above copyright
16 1.1 christos * notice, this list of conditions, and the following disclaimer,
17 1.1 christos * without modification.
18 1.1 christos * 2. Redistributions in binary form must reproduce at minimum a disclaimer
19 1.1 christos * substantially similar to the "NO WARRANTY" disclaimer below
20 1.1 christos * ("Disclaimer") and any redistribution must be conditioned upon
21 1.1 christos * including a substantially similar Disclaimer requirement for further
22 1.1 christos * binary redistribution.
23 1.1 christos * 3. Neither the names of the above-listed copyright holders nor the names
24 1.1 christos * of any contributors may be used to endorse or promote products derived
25 1.1 christos * from this software without specific prior written permission.
26 1.1 christos *
27 1.1 christos * Alternatively, this software may be distributed under the terms of the
28 1.1 christos * GNU General Public License ("GPL") version 2 as published by the Free
29 1.1 christos * Software Foundation.
30 1.1 christos *
31 1.1 christos * NO WARRANTY
32 1.1 christos * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
33 1.1 christos * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
34 1.1 christos * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
35 1.1 christos * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
36 1.1 christos * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
37 1.1 christos * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
38 1.1 christos * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
39 1.1 christos * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
40 1.1 christos * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
41 1.1 christos * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
42 1.1 christos * POSSIBILITY OF SUCH DAMAGES.
43 1.1 christos */
44 1.1 christos
45 1.1 christos ')
46 1.1 christos
47 1.1 christos
48 1.1 christos /*******************************************************************************
49 1.1 christos *
50 1.1 christos * ASL Resource Template Terms
51 1.1 christos *
52 1.1 christos ******************************************************************************/
53 1.1 christos
54 1.1 christos /*
55 1.1 christos * Note: Create two default nodes to allow conversion to a Buffer AML opcode
56 1.1 christos * Also, insert the EndTag at the end of the template.
57 1.1 christos */
58 1.1 christos ResourceTemplateTerm
59 1.1.1.3 christos : PARSEOP_RESOURCETEMPLATE OptionalParentheses
60 1.1 christos '{'
61 1.1 christos ResourceMacroList '}' {$$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,4,
62 1.1 christos TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
63 1.1 christos TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
64 1.1.1.3 christos $4,
65 1.1 christos TrCreateLeafNode (PARSEOP_ENDTAG));}
66 1.1 christos ;
67 1.1 christos
68 1.1.1.3 christos OptionalParentheses
69 1.1.1.3 christos : {$$ = NULL;}
70 1.1.1.3 christos | '(' ')' {$$ = NULL;}
71 1.1.1.3 christos ;
72 1.1.1.3 christos
73 1.1 christos ResourceMacroList
74 1.1 christos : {$$ = NULL;}
75 1.1 christos | ResourceMacroList
76 1.1 christos ResourceMacroTerm {$$ = TrLinkPeerNode ($1,$2);}
77 1.1 christos ;
78 1.1 christos
79 1.1 christos ResourceMacroTerm
80 1.1 christos : DMATerm {}
81 1.1 christos | DWordIOTerm {}
82 1.1 christos | DWordMemoryTerm {}
83 1.1 christos | DWordSpaceTerm {}
84 1.1 christos | EndDependentFnTerm {}
85 1.1 christos | ExtendedIOTerm {}
86 1.1 christos | ExtendedMemoryTerm {}
87 1.1 christos | ExtendedSpaceTerm {}
88 1.1 christos | FixedDmaTerm {}
89 1.1 christos | FixedIOTerm {}
90 1.1 christos | GpioIntTerm {}
91 1.1 christos | GpioIoTerm {}
92 1.1 christos | I2cSerialBusTerm {}
93 1.1.1.2 christos | I2cSerialBusTermV2 {}
94 1.1 christos | InterruptTerm {}
95 1.1 christos | IOTerm {}
96 1.1 christos | IRQNoFlagsTerm {}
97 1.1 christos | IRQTerm {}
98 1.1 christos | Memory24Term {}
99 1.1 christos | Memory32FixedTerm {}
100 1.1 christos | Memory32Term {}
101 1.1 christos | QWordIOTerm {}
102 1.1 christos | QWordMemoryTerm {}
103 1.1 christos | QWordSpaceTerm {}
104 1.1 christos | RegisterTerm {}
105 1.1 christos | SpiSerialBusTerm {}
106 1.1.1.2 christos | SpiSerialBusTermV2 {}
107 1.1 christos | StartDependentFnNoPriTerm {}
108 1.1 christos | StartDependentFnTerm {}
109 1.1 christos | UartSerialBusTerm {}
110 1.1.1.2 christos | UartSerialBusTermV2 {}
111 1.1 christos | VendorLongTerm {}
112 1.1 christos | VendorShortTerm {}
113 1.1 christos | WordBusNumberTerm {}
114 1.1 christos | WordIOTerm {}
115 1.1 christos | WordSpaceTerm {}
116 1.1 christos ;
117 1.1 christos
118 1.1 christos DMATerm
119 1.1 christos : PARSEOP_DMA '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DMA);}
120 1.1 christos DMATypeKeyword
121 1.1 christos OptionalBusMasterKeyword
122 1.1 christos ',' XferTypeKeyword
123 1.1 christos OptionalNameString_Last
124 1.1 christos ')' '{'
125 1.1 christos ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$5,$7,$8,$11);}
126 1.1 christos | PARSEOP_DMA '('
127 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
128 1.1 christos ;
129 1.1 christos
130 1.1 christos DWordIOTerm
131 1.1 christos : PARSEOP_DWORDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDIO);}
132 1.1 christos OptionalResourceType_First
133 1.1 christos OptionalMinType
134 1.1 christos OptionalMaxType
135 1.1 christos OptionalDecodeType
136 1.1 christos OptionalRangeType
137 1.1 christos ',' DWordConstExpr
138 1.1 christos ',' DWordConstExpr
139 1.1 christos ',' DWordConstExpr
140 1.1 christos ',' DWordConstExpr
141 1.1 christos ',' DWordConstExpr
142 1.1 christos OptionalByteConstExpr
143 1.1 christos OptionalStringData
144 1.1 christos OptionalNameString
145 1.1 christos OptionalType
146 1.1 christos OptionalTranslationType_Last
147 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,15,
148 1.1.1.3 christos $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
149 1.1 christos | PARSEOP_DWORDIO '('
150 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
151 1.1 christos ;
152 1.1 christos
153 1.1 christos DWordMemoryTerm
154 1.1 christos : PARSEOP_DWORDMEMORY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);}
155 1.1 christos OptionalResourceType_First
156 1.1 christos OptionalDecodeType
157 1.1 christos OptionalMinType
158 1.1 christos OptionalMaxType
159 1.1 christos OptionalMemType
160 1.1 christos ',' OptionalReadWriteKeyword
161 1.1 christos ',' DWordConstExpr
162 1.1 christos ',' DWordConstExpr
163 1.1 christos ',' DWordConstExpr
164 1.1 christos ',' DWordConstExpr
165 1.1 christos ',' DWordConstExpr
166 1.1 christos OptionalByteConstExpr
167 1.1 christos OptionalStringData
168 1.1 christos OptionalNameString
169 1.1 christos OptionalAddressRange
170 1.1 christos OptionalType_Last
171 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,16,
172 1.1.1.3 christos $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
173 1.1 christos | PARSEOP_DWORDMEMORY '('
174 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
175 1.1 christos ;
176 1.1 christos
177 1.1 christos DWordSpaceTerm
178 1.1 christos : PARSEOP_DWORDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDSPACE);}
179 1.1 christos ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
180 1.1 christos OptionalResourceType
181 1.1 christos OptionalDecodeType
182 1.1 christos OptionalMinType
183 1.1 christos OptionalMaxType
184 1.1 christos ',' ByteConstExpr
185 1.1 christos ',' DWordConstExpr
186 1.1 christos ',' DWordConstExpr
187 1.1 christos ',' DWordConstExpr
188 1.1 christos ',' DWordConstExpr
189 1.1 christos ',' DWordConstExpr
190 1.1 christos OptionalByteConstExpr
191 1.1 christos OptionalStringData
192 1.1 christos OptionalNameString_Last
193 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,14,
194 1.1.1.3 christos $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
195 1.1 christos | PARSEOP_DWORDSPACE '('
196 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
197 1.1 christos ;
198 1.1 christos
199 1.1 christos EndDependentFnTerm
200 1.1 christos : PARSEOP_ENDDEPENDENTFN '('
201 1.1 christos ')' {$$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);}
202 1.1 christos | PARSEOP_ENDDEPENDENTFN '('
203 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
204 1.1 christos ;
205 1.1 christos
206 1.1 christos ExtendedIOTerm
207 1.1 christos : PARSEOP_EXTENDEDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDIO);}
208 1.1 christos OptionalResourceType_First
209 1.1 christos OptionalMinType
210 1.1 christos OptionalMaxType
211 1.1 christos OptionalDecodeType
212 1.1 christos OptionalRangeType
213 1.1 christos ',' QWordConstExpr
214 1.1 christos ',' QWordConstExpr
215 1.1 christos ',' QWordConstExpr
216 1.1 christos ',' QWordConstExpr
217 1.1 christos ',' QWordConstExpr
218 1.1 christos OptionalQWordConstExpr
219 1.1 christos OptionalNameString
220 1.1 christos OptionalType
221 1.1 christos OptionalTranslationType_Last
222 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,14,
223 1.1.1.3 christos $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
224 1.1 christos | PARSEOP_EXTENDEDIO '('
225 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
226 1.1 christos ;
227 1.1 christos
228 1.1 christos ExtendedMemoryTerm
229 1.1 christos : PARSEOP_EXTENDEDMEMORY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDMEMORY);}
230 1.1 christos OptionalResourceType_First
231 1.1 christos OptionalDecodeType
232 1.1 christos OptionalMinType
233 1.1 christos OptionalMaxType
234 1.1 christos OptionalMemType
235 1.1 christos ',' OptionalReadWriteKeyword
236 1.1 christos ',' QWordConstExpr
237 1.1 christos ',' QWordConstExpr
238 1.1 christos ',' QWordConstExpr
239 1.1 christos ',' QWordConstExpr
240 1.1 christos ',' QWordConstExpr
241 1.1 christos OptionalQWordConstExpr
242 1.1 christos OptionalNameString
243 1.1 christos OptionalAddressRange
244 1.1 christos OptionalType_Last
245 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,15,
246 1.1.1.3 christos $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
247 1.1 christos | PARSEOP_EXTENDEDMEMORY '('
248 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
249 1.1 christos ;
250 1.1 christos
251 1.1 christos ExtendedSpaceTerm
252 1.1 christos : PARSEOP_EXTENDEDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDSPACE);}
253 1.1 christos ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
254 1.1 christos OptionalResourceType
255 1.1 christos OptionalDecodeType
256 1.1 christos OptionalMinType
257 1.1 christos OptionalMaxType
258 1.1 christos ',' ByteConstExpr
259 1.1 christos ',' QWordConstExpr
260 1.1 christos ',' QWordConstExpr
261 1.1 christos ',' QWordConstExpr
262 1.1 christos ',' QWordConstExpr
263 1.1 christos ',' QWordConstExpr
264 1.1 christos OptionalQWordConstExpr
265 1.1 christos OptionalNameString_Last
266 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,13,
267 1.1.1.3 christos $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
268 1.1 christos | PARSEOP_EXTENDEDSPACE '('
269 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
270 1.1 christos ;
271 1.1 christos
272 1.1 christos FixedDmaTerm
273 1.1 christos : PARSEOP_FIXEDDMA '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDDMA);}
274 1.1 christos WordConstExpr /* 04: DMA RequestLines */
275 1.1 christos ',' WordConstExpr /* 06: DMA Channels */
276 1.1 christos OptionalXferSize /* 07: DMA TransferSize */
277 1.1 christos OptionalNameString /* 08: DescriptorName */
278 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,4,$4,$6,$7,$8);}
279 1.1 christos | PARSEOP_FIXEDDMA '('
280 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
281 1.1 christos ;
282 1.1 christos
283 1.1 christos FixedIOTerm
284 1.1 christos : PARSEOP_FIXEDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDIO);}
285 1.1 christos WordConstExpr
286 1.1 christos ',' ByteConstExpr
287 1.1 christos OptionalNameString_Last
288 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
289 1.1 christos | PARSEOP_FIXEDIO '('
290 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
291 1.1 christos ;
292 1.1 christos
293 1.1 christos GpioIntTerm
294 1.1 christos : PARSEOP_GPIO_INT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_INT);}
295 1.1 christos InterruptTypeKeyword /* 04: InterruptType */
296 1.1 christos ',' InterruptLevel /* 06: InterruptLevel */
297 1.1 christos OptionalShareType /* 07: SharedType */
298 1.1 christos ',' PinConfigByte /* 09: PinConfig */
299 1.1 christos OptionalWordConstExpr /* 10: DebounceTimeout */
300 1.1 christos ',' StringData /* 12: ResourceSource */
301 1.1 christos OptionalByteConstExpr /* 13: ResourceSourceIndex */
302 1.1 christos OptionalResourceType /* 14: ResourceType */
303 1.1 christos OptionalNameString /* 15: DescriptorName */
304 1.1 christos OptionalBuffer_Last /* 16: VendorData */
305 1.1 christos ')' '{'
306 1.1.1.3 christos DWordConstExpr '}' {$$ = TrLinkChildren ($<n>3,11,
307 1.1.1.3 christos $4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);}
308 1.1 christos | PARSEOP_GPIO_INT '('
309 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
310 1.1 christos ;
311 1.1 christos
312 1.1 christos GpioIoTerm
313 1.1 christos : PARSEOP_GPIO_IO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_IO);}
314 1.1 christos OptionalShareType_First /* 04: SharedType */
315 1.1 christos ',' PinConfigByte /* 06: PinConfig */
316 1.1 christos OptionalWordConstExpr /* 07: DebounceTimeout */
317 1.1 christos OptionalWordConstExpr /* 08: DriveStrength */
318 1.1 christos OptionalIoRestriction /* 09: IoRestriction */
319 1.1 christos ',' StringData /* 11: ResourceSource */
320 1.1 christos OptionalByteConstExpr /* 12: ResourceSourceIndex */
321 1.1 christos OptionalResourceType /* 13: ResourceType */
322 1.1 christos OptionalNameString /* 14: DescriptorName */
323 1.1 christos OptionalBuffer_Last /* 15: VendorData */
324 1.1 christos ')' '{'
325 1.1.1.3 christos DWordList '}' {$$ = TrLinkChildren ($<n>3,11,
326 1.1.1.3 christos $4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);}
327 1.1 christos | PARSEOP_GPIO_IO '('
328 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
329 1.1 christos ;
330 1.1 christos
331 1.1 christos I2cSerialBusTerm
332 1.1 christos : PARSEOP_I2C_SERIALBUS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS);}
333 1.1 christos WordConstExpr /* 04: SlaveAddress */
334 1.1 christos OptionalSlaveMode /* 05: SlaveMode */
335 1.1 christos ',' DWordConstExpr /* 07: ConnectionSpeed */
336 1.1 christos OptionalAddressingMode /* 08: AddressingMode */
337 1.1 christos ',' StringData /* 10: ResourceSource */
338 1.1 christos OptionalByteConstExpr /* 11: ResourceSourceIndex */
339 1.1 christos OptionalResourceType /* 12: ResourceType */
340 1.1 christos OptionalNameString /* 13: DescriptorName */
341 1.1 christos OptionalBuffer_Last /* 14: VendorData */
342 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,10,
343 1.1.1.3 christos $4,$5,$7,$8,$10,$11,$12,$13,
344 1.1.1.2 christos TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$14);}
345 1.1 christos | PARSEOP_I2C_SERIALBUS '('
346 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
347 1.1 christos ;
348 1.1 christos
349 1.1.1.2 christos I2cSerialBusTermV2
350 1.1.1.2 christos : PARSEOP_I2C_SERIALBUS_V2 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS_V2);}
351 1.1.1.2 christos WordConstExpr /* 04: SlaveAddress */
352 1.1.1.2 christos OptionalSlaveMode /* 05: SlaveMode */
353 1.1.1.2 christos ',' DWordConstExpr /* 07: ConnectionSpeed */
354 1.1.1.2 christos OptionalAddressingMode /* 08: AddressingMode */
355 1.1.1.2 christos ',' StringData /* 10: ResourceSource */
356 1.1.1.2 christos OptionalByteConstExpr /* 11: ResourceSourceIndex */
357 1.1.1.2 christos OptionalResourceType /* 12: ResourceType */
358 1.1.1.2 christos OptionalNameString /* 13: DescriptorName */
359 1.1.1.2 christos OptionalShareType /* 14: Share */
360 1.1.1.2 christos OptionalBuffer_Last /* 15: VendorData */
361 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,10,
362 1.1.1.3 christos $4,$5,$7,$8,$10,$11,$12,$13,$14,$15);}
363 1.1.1.2 christos | PARSEOP_I2C_SERIALBUS_V2 '('
364 1.1.1.2 christos error ')' {$$ = AslDoError(); yyclearin;}
365 1.1.1.2 christos ;
366 1.1.1.2 christos
367 1.1 christos InterruptTerm
368 1.1 christos : PARSEOP_INTERRUPT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INTERRUPT);}
369 1.1 christos OptionalResourceType_First
370 1.1 christos ',' InterruptTypeKeyword
371 1.1 christos ',' InterruptLevel
372 1.1 christos OptionalShareType
373 1.1 christos OptionalByteConstExpr
374 1.1 christos OptionalStringData
375 1.1 christos OptionalNameString_Last
376 1.1 christos ')' '{'
377 1.1.1.3 christos DWordList '}' {$$ = TrLinkChildren ($<n>3,8,
378 1.1.1.3 christos $4,$6,$8,$9,$10,$11,$12,$15);}
379 1.1 christos | PARSEOP_INTERRUPT '('
380 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
381 1.1 christos ;
382 1.1 christos
383 1.1 christos IOTerm
384 1.1 christos : PARSEOP_IO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IO);}
385 1.1 christos IODecodeKeyword
386 1.1 christos ',' WordConstExpr
387 1.1 christos ',' WordConstExpr
388 1.1 christos ',' ByteConstExpr
389 1.1 christos ',' ByteConstExpr
390 1.1 christos OptionalNameString_Last
391 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
392 1.1 christos | PARSEOP_IO '('
393 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
394 1.1 christos ;
395 1.1 christos
396 1.1 christos IRQNoFlagsTerm
397 1.1 christos : PARSEOP_IRQNOFLAGS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);}
398 1.1 christos OptionalNameString_First
399 1.1 christos ')' '{'
400 1.1 christos ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
401 1.1 christos | PARSEOP_IRQNOFLAGS '('
402 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
403 1.1 christos ;
404 1.1 christos
405 1.1 christos IRQTerm
406 1.1 christos : PARSEOP_IRQ '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IRQ);}
407 1.1 christos InterruptTypeKeyword
408 1.1 christos ',' InterruptLevel
409 1.1 christos OptionalShareType
410 1.1 christos OptionalNameString_Last
411 1.1 christos ')' '{'
412 1.1 christos ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);}
413 1.1 christos | PARSEOP_IRQ '('
414 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
415 1.1 christos ;
416 1.1 christos
417 1.1 christos Memory24Term
418 1.1 christos : PARSEOP_MEMORY24 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY24);}
419 1.1 christos OptionalReadWriteKeyword
420 1.1 christos ',' WordConstExpr
421 1.1 christos ',' WordConstExpr
422 1.1 christos ',' WordConstExpr
423 1.1 christos ',' WordConstExpr
424 1.1 christos OptionalNameString_Last
425 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
426 1.1 christos | PARSEOP_MEMORY24 '('
427 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
428 1.1 christos ;
429 1.1 christos
430 1.1 christos Memory32FixedTerm
431 1.1 christos : PARSEOP_MEMORY32FIXED '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);}
432 1.1 christos OptionalReadWriteKeyword
433 1.1 christos ',' DWordConstExpr
434 1.1 christos ',' DWordConstExpr
435 1.1 christos OptionalNameString_Last
436 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$9);}
437 1.1 christos | PARSEOP_MEMORY32FIXED '('
438 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
439 1.1 christos ;
440 1.1 christos
441 1.1 christos Memory32Term
442 1.1 christos : PARSEOP_MEMORY32 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32);}
443 1.1 christos OptionalReadWriteKeyword
444 1.1 christos ',' DWordConstExpr
445 1.1 christos ',' DWordConstExpr
446 1.1 christos ',' DWordConstExpr
447 1.1 christos ',' DWordConstExpr
448 1.1 christos OptionalNameString_Last
449 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
450 1.1 christos | PARSEOP_MEMORY32 '('
451 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
452 1.1 christos ;
453 1.1 christos
454 1.1 christos QWordIOTerm
455 1.1 christos : PARSEOP_QWORDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDIO);}
456 1.1 christos OptionalResourceType_First
457 1.1 christos OptionalMinType
458 1.1 christos OptionalMaxType
459 1.1 christos OptionalDecodeType
460 1.1 christos OptionalRangeType
461 1.1 christos ',' QWordConstExpr
462 1.1 christos ',' QWordConstExpr
463 1.1 christos ',' QWordConstExpr
464 1.1 christos ',' QWordConstExpr
465 1.1 christos ',' QWordConstExpr
466 1.1 christos OptionalByteConstExpr
467 1.1 christos OptionalStringData
468 1.1 christos OptionalNameString
469 1.1 christos OptionalType
470 1.1 christos OptionalTranslationType_Last
471 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,15,
472 1.1.1.3 christos $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
473 1.1 christos | PARSEOP_QWORDIO '('
474 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
475 1.1 christos ;
476 1.1 christos
477 1.1 christos QWordMemoryTerm
478 1.1 christos : PARSEOP_QWORDMEMORY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);}
479 1.1 christos OptionalResourceType_First
480 1.1 christos OptionalDecodeType
481 1.1 christos OptionalMinType
482 1.1 christos OptionalMaxType
483 1.1 christos OptionalMemType
484 1.1 christos ',' OptionalReadWriteKeyword
485 1.1 christos ',' QWordConstExpr
486 1.1 christos ',' QWordConstExpr
487 1.1 christos ',' QWordConstExpr
488 1.1 christos ',' QWordConstExpr
489 1.1 christos ',' QWordConstExpr
490 1.1 christos OptionalByteConstExpr
491 1.1 christos OptionalStringData
492 1.1 christos OptionalNameString
493 1.1 christos OptionalAddressRange
494 1.1 christos OptionalType_Last
495 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,16,
496 1.1.1.3 christos $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
497 1.1 christos | PARSEOP_QWORDMEMORY '('
498 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
499 1.1 christos ;
500 1.1 christos
501 1.1 christos QWordSpaceTerm
502 1.1 christos : PARSEOP_QWORDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDSPACE);}
503 1.1 christos ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
504 1.1 christos OptionalResourceType
505 1.1 christos OptionalDecodeType
506 1.1 christos OptionalMinType
507 1.1 christos OptionalMaxType
508 1.1 christos ',' ByteConstExpr
509 1.1 christos ',' QWordConstExpr
510 1.1 christos ',' QWordConstExpr
511 1.1 christos ',' QWordConstExpr
512 1.1 christos ',' QWordConstExpr
513 1.1 christos ',' QWordConstExpr
514 1.1 christos OptionalByteConstExpr
515 1.1 christos OptionalStringData
516 1.1 christos OptionalNameString_Last
517 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,14,
518 1.1.1.3 christos $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
519 1.1 christos | PARSEOP_QWORDSPACE '('
520 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
521 1.1 christos ;
522 1.1 christos
523 1.1 christos RegisterTerm
524 1.1 christos : PARSEOP_REGISTER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_REGISTER);}
525 1.1 christos AddressSpaceKeyword
526 1.1 christos ',' ByteConstExpr
527 1.1 christos ',' ByteConstExpr
528 1.1 christos ',' QWordConstExpr
529 1.1 christos OptionalAccessSize
530 1.1 christos OptionalNameString_Last
531 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
532 1.1 christos | PARSEOP_REGISTER '('
533 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
534 1.1 christos ;
535 1.1 christos
536 1.1 christos SpiSerialBusTerm
537 1.1 christos : PARSEOP_SPI_SERIALBUS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS);}
538 1.1 christos WordConstExpr /* 04: DeviceSelection */
539 1.1 christos OptionalDevicePolarity /* 05: DevicePolarity */
540 1.1 christos OptionalWireMode /* 06: WireMode */
541 1.1 christos ',' ByteConstExpr /* 08: DataBitLength */
542 1.1 christos OptionalSlaveMode /* 09: SlaveMode */
543 1.1 christos ',' DWordConstExpr /* 11: ConnectionSpeed */
544 1.1 christos ',' ClockPolarityKeyword /* 13: ClockPolarity */
545 1.1 christos ',' ClockPhaseKeyword /* 15: ClockPhase */
546 1.1 christos ',' StringData /* 17: ResourceSource */
547 1.1 christos OptionalByteConstExpr /* 18: ResourceSourceIndex */
548 1.1 christos OptionalResourceType /* 19: ResourceType */
549 1.1 christos OptionalNameString /* 20: DescriptorName */
550 1.1 christos OptionalBuffer_Last /* 21: VendorData */
551 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,14,
552 1.1.1.3 christos $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,
553 1.1.1.2 christos TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);}
554 1.1 christos | PARSEOP_SPI_SERIALBUS '('
555 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
556 1.1 christos ;
557 1.1 christos
558 1.1.1.2 christos SpiSerialBusTermV2
559 1.1.1.2 christos : PARSEOP_SPI_SERIALBUS_V2 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS_V2);}
560 1.1.1.2 christos WordConstExpr /* 04: DeviceSelection */
561 1.1.1.2 christos OptionalDevicePolarity /* 05: DevicePolarity */
562 1.1.1.2 christos OptionalWireMode /* 06: WireMode */
563 1.1.1.2 christos ',' ByteConstExpr /* 08: DataBitLength */
564 1.1.1.2 christos OptionalSlaveMode /* 09: SlaveMode */
565 1.1.1.2 christos ',' DWordConstExpr /* 11: ConnectionSpeed */
566 1.1.1.2 christos ',' ClockPolarityKeyword /* 13: ClockPolarity */
567 1.1.1.2 christos ',' ClockPhaseKeyword /* 15: ClockPhase */
568 1.1.1.2 christos ',' StringData /* 17: ResourceSource */
569 1.1.1.2 christos OptionalByteConstExpr /* 18: ResourceSourceIndex */
570 1.1.1.2 christos OptionalResourceType /* 19: ResourceType */
571 1.1.1.2 christos OptionalNameString /* 20: DescriptorName */
572 1.1.1.2 christos OptionalShareType /* 21: Share */
573 1.1.1.2 christos OptionalBuffer_Last /* 22: VendorData */
574 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,14,
575 1.1.1.3 christos $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
576 1.1.1.2 christos | PARSEOP_SPI_SERIALBUS_V2 '('
577 1.1.1.2 christos error ')' {$$ = AslDoError(); yyclearin;}
578 1.1.1.2 christos ;
579 1.1.1.2 christos
580 1.1 christos StartDependentFnNoPriTerm
581 1.1 christos : PARSEOP_STARTDEPENDENTFN_NOPRI '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);}
582 1.1 christos ')' '{'
583 1.1 christos ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,1,$6);}
584 1.1 christos | PARSEOP_STARTDEPENDENTFN_NOPRI '('
585 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
586 1.1 christos ;
587 1.1 christos
588 1.1 christos StartDependentFnTerm
589 1.1 christos : PARSEOP_STARTDEPENDENTFN '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);}
590 1.1 christos ByteConstExpr
591 1.1 christos ',' ByteConstExpr
592 1.1 christos ')' '{'
593 1.1 christos ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$9);}
594 1.1 christos | PARSEOP_STARTDEPENDENTFN '('
595 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
596 1.1 christos ;
597 1.1 christos
598 1.1 christos UartSerialBusTerm
599 1.1 christos : PARSEOP_UART_SERIALBUS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS);}
600 1.1 christos DWordConstExpr /* 04: ConnectionSpeed */
601 1.1 christos OptionalBitsPerByte /* 05: BitsPerByte */
602 1.1 christos OptionalStopBits /* 06: StopBits */
603 1.1 christos ',' ByteConstExpr /* 08: LinesInUse */
604 1.1 christos OptionalEndian /* 09: Endianess */
605 1.1 christos OptionalParityType /* 10: Parity */
606 1.1 christos OptionalFlowControl /* 11: FlowControl */
607 1.1 christos ',' WordConstExpr /* 13: Rx BufferSize */
608 1.1 christos ',' WordConstExpr /* 15: Tx BufferSize */
609 1.1 christos ',' StringData /* 17: ResourceSource */
610 1.1 christos OptionalByteConstExpr /* 18: ResourceSourceIndex */
611 1.1 christos OptionalResourceType /* 19: ResourceType */
612 1.1 christos OptionalNameString /* 20: DescriptorName */
613 1.1 christos OptionalBuffer_Last /* 21: VendorData */
614 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,15,
615 1.1.1.3 christos $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,
616 1.1.1.2 christos TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);}
617 1.1 christos | PARSEOP_UART_SERIALBUS '('
618 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
619 1.1 christos ;
620 1.1 christos
621 1.1.1.2 christos UartSerialBusTermV2
622 1.1.1.2 christos : PARSEOP_UART_SERIALBUS_V2 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS_V2);}
623 1.1.1.2 christos DWordConstExpr /* 04: ConnectionSpeed */
624 1.1.1.2 christos OptionalBitsPerByte /* 05: BitsPerByte */
625 1.1.1.2 christos OptionalStopBits /* 06: StopBits */
626 1.1.1.2 christos ',' ByteConstExpr /* 08: LinesInUse */
627 1.1.1.2 christos OptionalEndian /* 09: Endianess */
628 1.1.1.2 christos OptionalParityType /* 10: Parity */
629 1.1.1.2 christos OptionalFlowControl /* 11: FlowControl */
630 1.1.1.2 christos ',' WordConstExpr /* 13: Rx BufferSize */
631 1.1.1.2 christos ',' WordConstExpr /* 15: Tx BufferSize */
632 1.1.1.2 christos ',' StringData /* 17: ResourceSource */
633 1.1.1.2 christos OptionalByteConstExpr /* 18: ResourceSourceIndex */
634 1.1.1.2 christos OptionalResourceType /* 19: ResourceType */
635 1.1.1.2 christos OptionalNameString /* 20: DescriptorName */
636 1.1.1.2 christos OptionalShareType /* 21: Share */
637 1.1.1.2 christos OptionalBuffer_Last /* 22: VendorData */
638 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,15,
639 1.1.1.3 christos $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
640 1.1.1.2 christos | PARSEOP_UART_SERIALBUS_V2 '('
641 1.1.1.2 christos error ')' {$$ = AslDoError(); yyclearin;}
642 1.1.1.2 christos ;
643 1.1.1.2 christos
644 1.1 christos VendorLongTerm
645 1.1 christos : PARSEOP_VENDORLONG '(' {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORLONG);}
646 1.1 christos OptionalNameString_First
647 1.1 christos ')' '{'
648 1.1 christos ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
649 1.1 christos | PARSEOP_VENDORLONG '('
650 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
651 1.1 christos ;
652 1.1 christos
653 1.1 christos VendorShortTerm
654 1.1 christos : PARSEOP_VENDORSHORT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);}
655 1.1 christos OptionalNameString_First
656 1.1 christos ')' '{'
657 1.1 christos ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
658 1.1 christos | PARSEOP_VENDORSHORT '('
659 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
660 1.1 christos ;
661 1.1 christos
662 1.1 christos WordBusNumberTerm
663 1.1 christos : PARSEOP_WORDBUSNUMBER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);}
664 1.1 christos OptionalResourceType_First
665 1.1 christos OptionalMinType
666 1.1 christos OptionalMaxType
667 1.1 christos OptionalDecodeType
668 1.1 christos ',' WordConstExpr
669 1.1 christos ',' WordConstExpr
670 1.1 christos ',' WordConstExpr
671 1.1 christos ',' WordConstExpr
672 1.1 christos ',' WordConstExpr
673 1.1 christos OptionalByteConstExpr
674 1.1 christos OptionalStringData
675 1.1 christos OptionalNameString_Last
676 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,12,
677 1.1.1.3 christos $4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
678 1.1 christos | PARSEOP_WORDBUSNUMBER '('
679 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
680 1.1 christos ;
681 1.1 christos
682 1.1 christos WordIOTerm
683 1.1 christos : PARSEOP_WORDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WORDIO);}
684 1.1 christos OptionalResourceType_First
685 1.1 christos OptionalMinType
686 1.1 christos OptionalMaxType
687 1.1 christos OptionalDecodeType
688 1.1 christos OptionalRangeType
689 1.1 christos ',' WordConstExpr
690 1.1 christos ',' WordConstExpr
691 1.1 christos ',' WordConstExpr
692 1.1 christos ',' WordConstExpr
693 1.1 christos ',' WordConstExpr
694 1.1 christos OptionalByteConstExpr
695 1.1 christos OptionalStringData
696 1.1 christos OptionalNameString
697 1.1 christos OptionalType
698 1.1 christos OptionalTranslationType_Last
699 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,15,
700 1.1.1.3 christos $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
701 1.1 christos | PARSEOP_WORDIO '('
702 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
703 1.1 christos ;
704 1.1 christos
705 1.1 christos WordSpaceTerm
706 1.1 christos : PARSEOP_WORDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WORDSPACE);}
707 1.1 christos ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
708 1.1 christos OptionalResourceType
709 1.1 christos OptionalDecodeType
710 1.1 christos OptionalMinType
711 1.1 christos OptionalMaxType
712 1.1 christos ',' ByteConstExpr
713 1.1 christos ',' WordConstExpr
714 1.1 christos ',' WordConstExpr
715 1.1 christos ',' WordConstExpr
716 1.1 christos ',' WordConstExpr
717 1.1 christos ',' WordConstExpr
718 1.1 christos OptionalByteConstExpr
719 1.1 christos OptionalStringData
720 1.1 christos OptionalNameString_Last
721 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,14,
722 1.1.1.3 christos $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
723 1.1 christos | PARSEOP_WORDSPACE '('
724 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
725 1.1 christos ;
726