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