aslresources.y revision 1.1.1.12 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.12 christos * Copyright (C) 2000 - 2023, 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.1.10 christos * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 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.1.10 christos : Csi2SerialBusTerm {}
86 1.1.1.10 christos | DMATerm {}
87 1.1 christos | DWordIOTerm {}
88 1.1 christos | DWordMemoryTerm {}
89 1.1 christos | DWordSpaceTerm {}
90 1.1 christos | EndDependentFnTerm {}
91 1.1 christos | ExtendedIOTerm {}
92 1.1 christos | ExtendedMemoryTerm {}
93 1.1 christos | ExtendedSpaceTerm {}
94 1.1 christos | FixedDmaTerm {}
95 1.1 christos | FixedIOTerm {}
96 1.1 christos | GpioIntTerm {}
97 1.1 christos | GpioIoTerm {}
98 1.1 christos | I2cSerialBusTerm {}
99 1.1.1.2 christos | I2cSerialBusTermV2 {}
100 1.1 christos | InterruptTerm {}
101 1.1 christos | IOTerm {}
102 1.1 christos | IRQNoFlagsTerm {}
103 1.1 christos | IRQTerm {}
104 1.1 christos | Memory24Term {}
105 1.1 christos | Memory32FixedTerm {}
106 1.1 christos | Memory32Term {}
107 1.1.1.6 christos | PinConfigTerm {}
108 1.1.1.6 christos | PinFunctionTerm {}
109 1.1.1.12 christos | ClockInputTerm {}
110 1.1.1.6 christos | PinGroupTerm {}
111 1.1.1.6 christos | PinGroupConfigTerm {}
112 1.1.1.6 christos | PinGroupFunctionTerm {}
113 1.1 christos | QWordIOTerm {}
114 1.1 christos | QWordMemoryTerm {}
115 1.1 christos | QWordSpaceTerm {}
116 1.1 christos | RegisterTerm {}
117 1.1 christos | SpiSerialBusTerm {}
118 1.1.1.2 christos | SpiSerialBusTermV2 {}
119 1.1 christos | StartDependentFnNoPriTerm {}
120 1.1 christos | StartDependentFnTerm {}
121 1.1 christos | UartSerialBusTerm {}
122 1.1.1.2 christos | UartSerialBusTermV2 {}
123 1.1 christos | VendorLongTerm {}
124 1.1 christos | VendorShortTerm {}
125 1.1 christos | WordBusNumberTerm {}
126 1.1 christos | WordIOTerm {}
127 1.1 christos | WordSpaceTerm {}
128 1.1 christos ;
129 1.1 christos
130 1.1.1.10 christos Csi2SerialBusTerm
131 1.1.1.10 christos : PARSEOP_CSI2_SERIALBUS
132 1.1.1.10 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CSI2_SERIALBUS);}
133 1.1.1.10 christos OptionalSlaveMode_First {UtCheckIntegerRange ($4, 0x00, 0x01);} /* 04: SlaveMode */
134 1.1.1.10 christos ',' ByteConstExpr {UtCheckIntegerRange ($7, 0x00, 0x03);} /* 07: PhyType */
135 1.1.1.10 christos OptionalByteConstExpr {UtCheckIntegerRange ($9, 0x00, 0xFC);} /* 09: LocalPortInstance */
136 1.1.1.10 christos ',' StringData /* 12: ResourceSource */
137 1.1.1.10 christos ',' ByteConstExpr /* 14: ResourceSourceIndex */
138 1.1.1.10 christos OptionalResourceType /* 15; ResourceType (ResourceUsage) */
139 1.1.1.10 christos OptionalNameString /* 16: DescriptorName */
140 1.1.1.10 christos OptionalBuffer_Last /* 17: VendorData */
141 1.1.1.10 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,8,
142 1.1.1.10 christos $4,$7,$9,$12,$14,$15,$16,$17);}
143 1.1.1.10 christos | PARSEOP_CSI2_SERIALBUS
144 1.1.1.10 christos PARSEOP_OPEN_PAREN
145 1.1.1.10 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
146 1.1.1.10 christos
147 1.1 christos DMATerm
148 1.1.1.4 christos : PARSEOP_DMA
149 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DMA);}
150 1.1 christos DMATypeKeyword
151 1.1 christos OptionalBusMasterKeyword
152 1.1 christos ',' XferTypeKeyword
153 1.1 christos OptionalNameString_Last
154 1.1.1.4 christos PARSEOP_CLOSE_PAREN '{'
155 1.1.1.6 christos ByteList '}' {$$ = TrLinkOpChildren ($<n>3,5,$4,$5,$7,$8,$11);}
156 1.1.1.4 christos | PARSEOP_DMA
157 1.1.1.4 christos PARSEOP_OPEN_PAREN
158 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
159 1.1 christos ;
160 1.1 christos
161 1.1 christos DWordIOTerm
162 1.1.1.4 christos : PARSEOP_DWORDIO
163 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDIO);}
164 1.1 christos OptionalResourceType_First
165 1.1 christos OptionalMinType
166 1.1 christos OptionalMaxType
167 1.1 christos OptionalDecodeType
168 1.1 christos OptionalRangeType
169 1.1 christos ',' DWordConstExpr
170 1.1 christos ',' DWordConstExpr
171 1.1 christos ',' DWordConstExpr
172 1.1 christos ',' DWordConstExpr
173 1.1 christos ',' DWordConstExpr
174 1.1 christos OptionalByteConstExpr
175 1.1 christos OptionalStringData
176 1.1 christos OptionalNameString
177 1.1 christos OptionalType
178 1.1 christos OptionalTranslationType_Last
179 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
180 1.1.1.3 christos $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
181 1.1.1.4 christos | PARSEOP_DWORDIO
182 1.1.1.4 christos PARSEOP_OPEN_PAREN
183 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
184 1.1 christos ;
185 1.1 christos
186 1.1 christos DWordMemoryTerm
187 1.1.1.4 christos : PARSEOP_DWORDMEMORY
188 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDMEMORY);}
189 1.1 christos OptionalResourceType_First
190 1.1 christos OptionalDecodeType
191 1.1 christos OptionalMinType
192 1.1 christos OptionalMaxType
193 1.1 christos OptionalMemType
194 1.1 christos ',' OptionalReadWriteKeyword
195 1.1 christos ',' DWordConstExpr
196 1.1 christos ',' DWordConstExpr
197 1.1 christos ',' DWordConstExpr
198 1.1 christos ',' DWordConstExpr
199 1.1 christos ',' DWordConstExpr
200 1.1 christos OptionalByteConstExpr
201 1.1 christos OptionalStringData
202 1.1 christos OptionalNameString
203 1.1 christos OptionalAddressRange
204 1.1 christos OptionalType_Last
205 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,16,
206 1.1.1.3 christos $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
207 1.1.1.4 christos | PARSEOP_DWORDMEMORY
208 1.1.1.4 christos PARSEOP_OPEN_PAREN
209 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
210 1.1 christos ;
211 1.1 christos
212 1.1 christos DWordSpaceTerm
213 1.1.1.4 christos : PARSEOP_DWORDSPACE
214 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDSPACE);}
215 1.1 christos ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
216 1.1 christos OptionalResourceType
217 1.1 christos OptionalDecodeType
218 1.1 christos OptionalMinType
219 1.1 christos OptionalMaxType
220 1.1 christos ',' ByteConstExpr
221 1.1 christos ',' DWordConstExpr
222 1.1 christos ',' DWordConstExpr
223 1.1 christos ',' DWordConstExpr
224 1.1 christos ',' DWordConstExpr
225 1.1 christos ',' DWordConstExpr
226 1.1 christos OptionalByteConstExpr
227 1.1 christos OptionalStringData
228 1.1 christos OptionalNameString_Last
229 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
230 1.1.1.3 christos $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
231 1.1.1.4 christos | PARSEOP_DWORDSPACE
232 1.1.1.4 christos PARSEOP_OPEN_PAREN
233 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
234 1.1 christos ;
235 1.1 christos
236 1.1 christos EndDependentFnTerm
237 1.1.1.4 christos : PARSEOP_ENDDEPENDENTFN
238 1.1.1.4 christos PARSEOP_OPEN_PAREN
239 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrCreateLeafOp (PARSEOP_ENDDEPENDENTFN);}
240 1.1.1.4 christos | PARSEOP_ENDDEPENDENTFN
241 1.1.1.4 christos PARSEOP_OPEN_PAREN
242 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
243 1.1 christos ;
244 1.1 christos
245 1.1 christos ExtendedIOTerm
246 1.1.1.4 christos : PARSEOP_EXTENDEDIO
247 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_EXTENDEDIO);}
248 1.1 christos OptionalResourceType_First
249 1.1 christos OptionalMinType
250 1.1 christos OptionalMaxType
251 1.1 christos OptionalDecodeType
252 1.1 christos OptionalRangeType
253 1.1 christos ',' QWordConstExpr
254 1.1 christos ',' QWordConstExpr
255 1.1 christos ',' QWordConstExpr
256 1.1 christos ',' QWordConstExpr
257 1.1 christos ',' QWordConstExpr
258 1.1 christos OptionalQWordConstExpr
259 1.1 christos OptionalNameString
260 1.1 christos OptionalType
261 1.1 christos OptionalTranslationType_Last
262 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
263 1.1.1.3 christos $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
264 1.1.1.4 christos | PARSEOP_EXTENDEDIO
265 1.1.1.4 christos PARSEOP_OPEN_PAREN
266 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
267 1.1 christos ;
268 1.1 christos
269 1.1 christos ExtendedMemoryTerm
270 1.1.1.4 christos : PARSEOP_EXTENDEDMEMORY
271 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_EXTENDEDMEMORY);}
272 1.1 christos OptionalResourceType_First
273 1.1 christos OptionalDecodeType
274 1.1 christos OptionalMinType
275 1.1 christos OptionalMaxType
276 1.1 christos OptionalMemType
277 1.1 christos ',' OptionalReadWriteKeyword
278 1.1 christos ',' QWordConstExpr
279 1.1 christos ',' QWordConstExpr
280 1.1 christos ',' QWordConstExpr
281 1.1 christos ',' QWordConstExpr
282 1.1 christos ',' QWordConstExpr
283 1.1 christos OptionalQWordConstExpr
284 1.1 christos OptionalNameString
285 1.1 christos OptionalAddressRange
286 1.1 christos OptionalType_Last
287 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
288 1.1.1.3 christos $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
289 1.1.1.4 christos | PARSEOP_EXTENDEDMEMORY
290 1.1.1.4 christos PARSEOP_OPEN_PAREN
291 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
292 1.1 christos ;
293 1.1 christos
294 1.1 christos ExtendedSpaceTerm
295 1.1.1.6 christos : PARSEOP_EXTENDEDSPACE PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_EXTENDEDSPACE);}
296 1.1 christos ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
297 1.1 christos OptionalResourceType
298 1.1 christos OptionalDecodeType
299 1.1 christos OptionalMinType
300 1.1 christos OptionalMaxType
301 1.1 christos ',' ByteConstExpr
302 1.1 christos ',' QWordConstExpr
303 1.1 christos ',' QWordConstExpr
304 1.1 christos ',' QWordConstExpr
305 1.1 christos ',' QWordConstExpr
306 1.1 christos ',' QWordConstExpr
307 1.1 christos OptionalQWordConstExpr
308 1.1 christos OptionalNameString_Last
309 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,13,
310 1.1.1.3 christos $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
311 1.1.1.4 christos | PARSEOP_EXTENDEDSPACE
312 1.1.1.4 christos PARSEOP_OPEN_PAREN
313 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
314 1.1 christos ;
315 1.1 christos
316 1.1 christos FixedDmaTerm
317 1.1.1.4 christos : PARSEOP_FIXEDDMA
318 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FIXEDDMA);}
319 1.1 christos WordConstExpr /* 04: DMA RequestLines */
320 1.1 christos ',' WordConstExpr /* 06: DMA Channels */
321 1.1 christos OptionalXferSize /* 07: DMA TransferSize */
322 1.1 christos OptionalNameString /* 08: DescriptorName */
323 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,$4,$6,$7,$8);}
324 1.1.1.4 christos | PARSEOP_FIXEDDMA
325 1.1.1.4 christos PARSEOP_OPEN_PAREN
326 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
327 1.1 christos ;
328 1.1 christos
329 1.1 christos FixedIOTerm
330 1.1.1.4 christos : PARSEOP_FIXEDIO
331 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FIXEDIO);}
332 1.1 christos WordConstExpr
333 1.1 christos ',' ByteConstExpr
334 1.1 christos OptionalNameString_Last
335 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$6,$7);}
336 1.1.1.4 christos | PARSEOP_FIXEDIO
337 1.1.1.4 christos PARSEOP_OPEN_PAREN
338 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
339 1.1 christos ;
340 1.1 christos
341 1.1 christos GpioIntTerm
342 1.1.1.4 christos : PARSEOP_GPIO_INT
343 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_GPIO_INT);}
344 1.1 christos InterruptTypeKeyword /* 04: InterruptType */
345 1.1 christos ',' InterruptLevel /* 06: InterruptLevel */
346 1.1 christos OptionalShareType /* 07: SharedType */
347 1.1 christos ',' PinConfigByte /* 09: PinConfig */
348 1.1 christos OptionalWordConstExpr /* 10: DebounceTimeout */
349 1.1 christos ',' StringData /* 12: ResourceSource */
350 1.1 christos OptionalByteConstExpr /* 13: ResourceSourceIndex */
351 1.1 christos OptionalResourceType /* 14: ResourceType */
352 1.1 christos OptionalNameString /* 15: DescriptorName */
353 1.1 christos OptionalBuffer_Last /* 16: VendorData */
354 1.1.1.4 christos PARSEOP_CLOSE_PAREN '{'
355 1.1.1.6 christos DWordConstExpr '}' {$$ = TrLinkOpChildren ($<n>3,11,
356 1.1.1.3 christos $4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);}
357 1.1.1.4 christos | PARSEOP_GPIO_INT
358 1.1.1.4 christos PARSEOP_OPEN_PAREN
359 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
360 1.1 christos ;
361 1.1 christos
362 1.1 christos GpioIoTerm
363 1.1.1.4 christos : PARSEOP_GPIO_IO
364 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_GPIO_IO);}
365 1.1 christos OptionalShareType_First /* 04: SharedType */
366 1.1 christos ',' PinConfigByte /* 06: PinConfig */
367 1.1 christos OptionalWordConstExpr /* 07: DebounceTimeout */
368 1.1 christos OptionalWordConstExpr /* 08: DriveStrength */
369 1.1 christos OptionalIoRestriction /* 09: IoRestriction */
370 1.1 christos ',' StringData /* 11: ResourceSource */
371 1.1 christos OptionalByteConstExpr /* 12: ResourceSourceIndex */
372 1.1 christos OptionalResourceType /* 13: ResourceType */
373 1.1 christos OptionalNameString /* 14: DescriptorName */
374 1.1 christos OptionalBuffer_Last /* 15: VendorData */
375 1.1.1.4 christos PARSEOP_CLOSE_PAREN '{'
376 1.1.1.6 christos DWordList '}' {$$ = TrLinkOpChildren ($<n>3,11,
377 1.1.1.3 christos $4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);}
378 1.1.1.4 christos | PARSEOP_GPIO_IO
379 1.1.1.4 christos PARSEOP_OPEN_PAREN
380 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
381 1.1 christos ;
382 1.1 christos
383 1.1 christos I2cSerialBusTerm
384 1.1.1.4 christos : PARSEOP_I2C_SERIALBUS
385 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_I2C_SERIALBUS);}
386 1.1 christos WordConstExpr /* 04: SlaveAddress */
387 1.1 christos OptionalSlaveMode /* 05: SlaveMode */
388 1.1 christos ',' DWordConstExpr /* 07: ConnectionSpeed */
389 1.1 christos OptionalAddressingMode /* 08: AddressingMode */
390 1.1 christos ',' StringData /* 10: ResourceSource */
391 1.1 christos OptionalByteConstExpr /* 11: ResourceSourceIndex */
392 1.1 christos OptionalResourceType /* 12: ResourceType */
393 1.1 christos OptionalNameString /* 13: DescriptorName */
394 1.1 christos OptionalBuffer_Last /* 14: VendorData */
395 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,10,
396 1.1.1.3 christos $4,$5,$7,$8,$10,$11,$12,$13,
397 1.1.1.6 christos TrCreateLeafOp (PARSEOP_DEFAULT_ARG),$14);}
398 1.1.1.4 christos | PARSEOP_I2C_SERIALBUS
399 1.1.1.4 christos PARSEOP_OPEN_PAREN
400 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
401 1.1 christos ;
402 1.1 christos
403 1.1.1.2 christos I2cSerialBusTermV2
404 1.1.1.4 christos : PARSEOP_I2C_SERIALBUS_V2
405 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_I2C_SERIALBUS_V2);}
406 1.1.1.2 christos WordConstExpr /* 04: SlaveAddress */
407 1.1.1.2 christos OptionalSlaveMode /* 05: SlaveMode */
408 1.1.1.2 christos ',' DWordConstExpr /* 07: ConnectionSpeed */
409 1.1.1.2 christos OptionalAddressingMode /* 08: AddressingMode */
410 1.1.1.2 christos ',' StringData /* 10: ResourceSource */
411 1.1.1.2 christos OptionalByteConstExpr /* 11: ResourceSourceIndex */
412 1.1.1.2 christos OptionalResourceType /* 12: ResourceType */
413 1.1.1.2 christos OptionalNameString /* 13: DescriptorName */
414 1.1.1.2 christos OptionalShareType /* 14: Share */
415 1.1.1.2 christos OptionalBuffer_Last /* 15: VendorData */
416 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,10,
417 1.1.1.3 christos $4,$5,$7,$8,$10,$11,$12,$13,$14,$15);}
418 1.1.1.4 christos | PARSEOP_I2C_SERIALBUS_V2
419 1.1.1.4 christos PARSEOP_OPEN_PAREN
420 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
421 1.1.1.2 christos ;
422 1.1.1.2 christos
423 1.1 christos InterruptTerm
424 1.1.1.4 christos : PARSEOP_INTERRUPT
425 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_INTERRUPT);}
426 1.1 christos OptionalResourceType_First
427 1.1 christos ',' InterruptTypeKeyword
428 1.1 christos ',' InterruptLevel
429 1.1 christos OptionalShareType
430 1.1 christos OptionalByteConstExpr
431 1.1 christos OptionalStringData
432 1.1 christos OptionalNameString_Last
433 1.1.1.4 christos PARSEOP_CLOSE_PAREN '{'
434 1.1.1.6 christos DWordList '}' {$$ = TrLinkOpChildren ($<n>3,8,
435 1.1.1.3 christos $4,$6,$8,$9,$10,$11,$12,$15);}
436 1.1.1.4 christos | PARSEOP_INTERRUPT
437 1.1.1.4 christos PARSEOP_OPEN_PAREN
438 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
439 1.1 christos ;
440 1.1 christos
441 1.1 christos IOTerm
442 1.1.1.4 christos : PARSEOP_IO
443 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_IO);}
444 1.1 christos IODecodeKeyword
445 1.1 christos ',' WordConstExpr
446 1.1 christos ',' WordConstExpr
447 1.1 christos ',' ByteConstExpr
448 1.1 christos ',' ByteConstExpr
449 1.1 christos OptionalNameString_Last
450 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
451 1.1.1.4 christos | PARSEOP_IO
452 1.1.1.4 christos PARSEOP_OPEN_PAREN
453 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
454 1.1 christos ;
455 1.1 christos
456 1.1 christos IRQNoFlagsTerm
457 1.1.1.4 christos : PARSEOP_IRQNOFLAGS
458 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_IRQNOFLAGS);}
459 1.1 christos OptionalNameString_First
460 1.1.1.4 christos PARSEOP_CLOSE_PAREN '{'
461 1.1.1.6 christos ByteList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
462 1.1.1.4 christos | PARSEOP_IRQNOFLAGS
463 1.1.1.4 christos PARSEOP_OPEN_PAREN
464 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
465 1.1 christos ;
466 1.1 christos
467 1.1 christos IRQTerm
468 1.1.1.4 christos : PARSEOP_IRQ
469 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_IRQ);}
470 1.1 christos InterruptTypeKeyword
471 1.1 christos ',' InterruptLevel
472 1.1 christos OptionalShareType
473 1.1 christos OptionalNameString_Last
474 1.1.1.4 christos PARSEOP_CLOSE_PAREN '{'
475 1.1.1.6 christos ByteList '}' {$$ = TrLinkOpChildren ($<n>3,5,$4,$6,$7,$8,$11);}
476 1.1.1.4 christos | PARSEOP_IRQ
477 1.1.1.4 christos PARSEOP_OPEN_PAREN
478 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
479 1.1 christos ;
480 1.1 christos
481 1.1 christos Memory24Term
482 1.1.1.4 christos : PARSEOP_MEMORY24
483 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MEMORY24);}
484 1.1 christos OptionalReadWriteKeyword
485 1.1 christos ',' WordConstExpr
486 1.1 christos ',' WordConstExpr
487 1.1 christos ',' WordConstExpr
488 1.1 christos ',' WordConstExpr
489 1.1 christos OptionalNameString_Last
490 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
491 1.1.1.4 christos | PARSEOP_MEMORY24
492 1.1.1.4 christos PARSEOP_OPEN_PAREN
493 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
494 1.1 christos ;
495 1.1 christos
496 1.1 christos Memory32FixedTerm
497 1.1.1.4 christos : PARSEOP_MEMORY32FIXED
498 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MEMORY32FIXED);}
499 1.1 christos OptionalReadWriteKeyword
500 1.1 christos ',' DWordConstExpr
501 1.1 christos ',' DWordConstExpr
502 1.1 christos OptionalNameString_Last
503 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,$4,$6,$8,$9);}
504 1.1.1.4 christos | PARSEOP_MEMORY32FIXED
505 1.1.1.4 christos PARSEOP_OPEN_PAREN
506 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
507 1.1 christos ;
508 1.1 christos
509 1.1 christos Memory32Term
510 1.1.1.4 christos : PARSEOP_MEMORY32
511 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MEMORY32);}
512 1.1 christos OptionalReadWriteKeyword
513 1.1 christos ',' DWordConstExpr
514 1.1 christos ',' DWordConstExpr
515 1.1 christos ',' DWordConstExpr
516 1.1 christos ',' DWordConstExpr
517 1.1 christos OptionalNameString_Last
518 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
519 1.1.1.4 christos | PARSEOP_MEMORY32
520 1.1.1.4 christos PARSEOP_OPEN_PAREN
521 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
522 1.1 christos ;
523 1.1 christos
524 1.1.1.6 christos PinConfigTerm
525 1.1.1.6 christos : PARSEOP_PINCONFIG
526 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINCONFIG);}
527 1.1.1.6 christos OptionalShareType_First /* 04: SharedType */
528 1.1.1.6 christos ',' ByteConstExpr /* 06: PinConfigType */
529 1.1.1.6 christos ',' DWordConstExpr /* 08: PinConfigValue */
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_PINCONFIG
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 PinFunctionTerm
544 1.1.1.6 christos : PARSEOP_PINFUNCTION
545 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINFUNCTION);}
546 1.1.1.6 christos OptionalShareType_First /* 04: SharedType */
547 1.1.1.6 christos ',' PinConfigByte /* 06: PinConfig */
548 1.1.1.6 christos ',' WordConstExpr /* 08: FunctionNumber */
549 1.1.1.6 christos ',' StringData /* 10: ResourceSource */
550 1.1.1.6 christos OptionalByteConstExpr /* 11: ResourceSourceIndex */
551 1.1.1.6 christos OptionalResourceType /* 12: ResourceType */
552 1.1.1.6 christos OptionalNameString /* 13: DescriptorName */
553 1.1.1.6 christos OptionalBuffer_Last /* 14: VendorData */
554 1.1.1.6 christos PARSEOP_CLOSE_PAREN '{'
555 1.1.1.6 christos DWordList '}' {$$ = TrLinkOpChildren ($<n>3,9,
556 1.1.1.6 christos $4,$6,$8,$10,$11,$12,$13,$14,$17);}
557 1.1.1.6 christos | PARSEOP_PINFUNCTION
558 1.1.1.6 christos PARSEOP_OPEN_PAREN
559 1.1.1.6 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
560 1.1.1.6 christos ;
561 1.1.1.6 christos
562 1.1.1.12 christos ClockInputTerm
563 1.1.1.12 christos : PARSEOP_CLOCKINPUT
564 1.1.1.12 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CLOCKINPUT);}
565 1.1.1.12 christos DWordConstExpr /* 04: FrequencyNumerator */
566 1.1.1.12 christos ',' WordConstExpr /* 06: FrequencyDivisor */
567 1.1.1.12 christos ',' ClockScaleKeyword /* 08: Scale */
568 1.1.1.12 christos ',' ClockModeKeyword /* 10: Mode*/
569 1.1.1.12 christos OptionalStringData /* 11: ResourceSource */
570 1.1.1.12 christos OptionalByteConstExpr /* 12: ResourceSourceIndex */
571 1.1.1.12 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
572 1.1.1.12 christos | PARSEOP_CLOCKINPUT
573 1.1.1.12 christos PARSEOP_OPEN_PAREN
574 1.1.1.12 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
575 1.1.1.12 christos ;
576 1.1.1.12 christos
577 1.1.1.6 christos PinGroupTerm
578 1.1.1.6 christos : PARSEOP_PINGROUP
579 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINGROUP);}
580 1.1.1.6 christos StringData /* 04: ResourceLabel */
581 1.1.1.6 christos OptionalProducerResourceType /* 05: ResourceType */
582 1.1.1.6 christos OptionalNameString /* 06: DescriptorName */
583 1.1.1.6 christos OptionalBuffer_Last /* 07: VendorData */
584 1.1.1.6 christos PARSEOP_CLOSE_PAREN '{'
585 1.1.1.6 christos DWordList '}' {$$ = TrLinkOpChildren ($<n>3,5,$4,$5,$6,$7,$10);}
586 1.1.1.6 christos | PARSEOP_PINGROUP
587 1.1.1.6 christos PARSEOP_OPEN_PAREN
588 1.1.1.6 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
589 1.1.1.6 christos ;
590 1.1.1.6 christos
591 1.1.1.6 christos PinGroupConfigTerm
592 1.1.1.6 christos : PARSEOP_PINGROUPCONFIG
593 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINGROUPCONFIG);}
594 1.1.1.6 christos OptionalShareType_First /* 04: SharedType */
595 1.1.1.6 christos ',' ByteConstExpr /* 06: PinConfigType */
596 1.1.1.6 christos ',' DWordConstExpr /* 08: PinConfigValue */
597 1.1.1.6 christos ',' StringData /* 10: ResourceSource */
598 1.1.1.6 christos OptionalByteConstExpr /* 11: ResourceSourceIndex */
599 1.1.1.6 christos ',' StringData /* 13: ResourceSourceLabel */
600 1.1.1.6 christos OptionalResourceType /* 14: ResourceType */
601 1.1.1.6 christos OptionalNameString /* 15: DescriptorName */
602 1.1.1.6 christos OptionalBuffer_Last /* 16: VendorData */
603 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,9,
604 1.1.1.6 christos $4,$6,$8,$10,$11,$13,$14,$15,$16);}
605 1.1.1.6 christos | PARSEOP_PINGROUPCONFIG
606 1.1.1.6 christos PARSEOP_OPEN_PAREN
607 1.1.1.6 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
608 1.1.1.6 christos ;
609 1.1.1.6 christos
610 1.1.1.6 christos PinGroupFunctionTerm
611 1.1.1.6 christos : PARSEOP_PINGROUPFUNCTION
612 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINGROUPFUNCTION);}
613 1.1.1.6 christos OptionalShareType_First /* 04: SharedType */
614 1.1.1.6 christos ',' WordConstExpr /* 06: FunctionNumber */
615 1.1.1.6 christos ',' StringData /* 08: ResourceSource */
616 1.1.1.6 christos OptionalByteConstExpr /* 09: ResourceSourceIndex */
617 1.1.1.6 christos ',' StringData /* 11: ResourceSourceLabel */
618 1.1.1.6 christos OptionalResourceType /* 12: ResourceType */
619 1.1.1.6 christos OptionalNameString /* 13: DescriptorName */
620 1.1.1.6 christos OptionalBuffer_Last /* 14: VendorData */
621 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,8,
622 1.1.1.6 christos $4,$6,$8,$9,$11,$12,$13,$14);}
623 1.1.1.6 christos | PARSEOP_PINGROUPFUNCTION
624 1.1.1.6 christos PARSEOP_OPEN_PAREN
625 1.1.1.6 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
626 1.1.1.6 christos ;
627 1.1.1.6 christos
628 1.1 christos QWordIOTerm
629 1.1.1.4 christos : PARSEOP_QWORDIO
630 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDIO);}
631 1.1 christos OptionalResourceType_First
632 1.1 christos OptionalMinType
633 1.1 christos OptionalMaxType
634 1.1 christos OptionalDecodeType
635 1.1 christos OptionalRangeType
636 1.1 christos ',' QWordConstExpr
637 1.1 christos ',' QWordConstExpr
638 1.1 christos ',' QWordConstExpr
639 1.1 christos ',' QWordConstExpr
640 1.1 christos ',' QWordConstExpr
641 1.1 christos OptionalByteConstExpr
642 1.1 christos OptionalStringData
643 1.1 christos OptionalNameString
644 1.1 christos OptionalType
645 1.1 christos OptionalTranslationType_Last
646 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
647 1.1.1.3 christos $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
648 1.1.1.4 christos | PARSEOP_QWORDIO
649 1.1.1.4 christos PARSEOP_OPEN_PAREN
650 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
651 1.1 christos ;
652 1.1 christos
653 1.1 christos QWordMemoryTerm
654 1.1.1.4 christos : PARSEOP_QWORDMEMORY
655 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDMEMORY);}
656 1.1 christos OptionalResourceType_First
657 1.1 christos OptionalDecodeType
658 1.1 christos OptionalMinType
659 1.1 christos OptionalMaxType
660 1.1 christos OptionalMemType
661 1.1 christos ',' OptionalReadWriteKeyword
662 1.1 christos ',' QWordConstExpr
663 1.1 christos ',' QWordConstExpr
664 1.1 christos ',' QWordConstExpr
665 1.1 christos ',' QWordConstExpr
666 1.1 christos ',' QWordConstExpr
667 1.1 christos OptionalByteConstExpr
668 1.1 christos OptionalStringData
669 1.1 christos OptionalNameString
670 1.1 christos OptionalAddressRange
671 1.1 christos OptionalType_Last
672 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,16,
673 1.1.1.3 christos $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
674 1.1.1.4 christos | PARSEOP_QWORDMEMORY
675 1.1.1.4 christos PARSEOP_OPEN_PAREN
676 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
677 1.1 christos ;
678 1.1 christos
679 1.1 christos QWordSpaceTerm
680 1.1.1.4 christos : PARSEOP_QWORDSPACE
681 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDSPACE);}
682 1.1 christos ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
683 1.1 christos OptionalResourceType
684 1.1 christos OptionalDecodeType
685 1.1 christos OptionalMinType
686 1.1 christos OptionalMaxType
687 1.1 christos ',' ByteConstExpr
688 1.1 christos ',' QWordConstExpr
689 1.1 christos ',' QWordConstExpr
690 1.1 christos ',' QWordConstExpr
691 1.1 christos ',' QWordConstExpr
692 1.1 christos ',' QWordConstExpr
693 1.1 christos OptionalByteConstExpr
694 1.1 christos OptionalStringData
695 1.1 christos OptionalNameString_Last
696 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
697 1.1.1.3 christos $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
698 1.1.1.4 christos | PARSEOP_QWORDSPACE
699 1.1.1.4 christos PARSEOP_OPEN_PAREN
700 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
701 1.1 christos ;
702 1.1 christos
703 1.1 christos RegisterTerm
704 1.1.1.4 christos : PARSEOP_REGISTER
705 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_REGISTER);}
706 1.1 christos AddressSpaceKeyword
707 1.1 christos ',' ByteConstExpr
708 1.1 christos ',' ByteConstExpr
709 1.1 christos ',' QWordConstExpr
710 1.1 christos OptionalAccessSize
711 1.1 christos OptionalNameString_Last
712 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
713 1.1.1.4 christos | PARSEOP_REGISTER
714 1.1.1.4 christos PARSEOP_OPEN_PAREN
715 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
716 1.1 christos ;
717 1.1 christos
718 1.1 christos SpiSerialBusTerm
719 1.1.1.4 christos : PARSEOP_SPI_SERIALBUS
720 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SPI_SERIALBUS);}
721 1.1 christos WordConstExpr /* 04: DeviceSelection */
722 1.1 christos OptionalDevicePolarity /* 05: DevicePolarity */
723 1.1 christos OptionalWireMode /* 06: WireMode */
724 1.1 christos ',' ByteConstExpr /* 08: DataBitLength */
725 1.1 christos OptionalSlaveMode /* 09: SlaveMode */
726 1.1 christos ',' DWordConstExpr /* 11: ConnectionSpeed */
727 1.1 christos ',' ClockPolarityKeyword /* 13: ClockPolarity */
728 1.1 christos ',' ClockPhaseKeyword /* 15: ClockPhase */
729 1.1 christos ',' StringData /* 17: ResourceSource */
730 1.1 christos OptionalByteConstExpr /* 18: ResourceSourceIndex */
731 1.1 christos OptionalResourceType /* 19: ResourceType */
732 1.1 christos OptionalNameString /* 20: DescriptorName */
733 1.1 christos OptionalBuffer_Last /* 21: VendorData */
734 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
735 1.1.1.3 christos $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,
736 1.1.1.6 christos TrCreateLeafOp (PARSEOP_DEFAULT_ARG),$21);}
737 1.1.1.4 christos | PARSEOP_SPI_SERIALBUS
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.1.2 christos SpiSerialBusTermV2
743 1.1.1.4 christos : PARSEOP_SPI_SERIALBUS_V2
744 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SPI_SERIALBUS_V2);}
745 1.1.1.2 christos WordConstExpr /* 04: DeviceSelection */
746 1.1.1.2 christos OptionalDevicePolarity /* 05: DevicePolarity */
747 1.1.1.2 christos OptionalWireMode /* 06: WireMode */
748 1.1.1.2 christos ',' ByteConstExpr /* 08: DataBitLength */
749 1.1.1.2 christos OptionalSlaveMode /* 09: SlaveMode */
750 1.1.1.2 christos ',' DWordConstExpr /* 11: ConnectionSpeed */
751 1.1.1.2 christos ',' ClockPolarityKeyword /* 13: ClockPolarity */
752 1.1.1.2 christos ',' ClockPhaseKeyword /* 15: ClockPhase */
753 1.1.1.2 christos ',' StringData /* 17: ResourceSource */
754 1.1.1.2 christos OptionalByteConstExpr /* 18: ResourceSourceIndex */
755 1.1.1.2 christos OptionalResourceType /* 19: ResourceType */
756 1.1.1.2 christos OptionalNameString /* 20: DescriptorName */
757 1.1.1.2 christos OptionalShareType /* 21: Share */
758 1.1.1.2 christos OptionalBuffer_Last /* 22: VendorData */
759 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
760 1.1.1.3 christos $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
761 1.1.1.4 christos | PARSEOP_SPI_SERIALBUS_V2
762 1.1.1.4 christos PARSEOP_OPEN_PAREN
763 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
764 1.1.1.2 christos ;
765 1.1.1.2 christos
766 1.1 christos StartDependentFnNoPriTerm
767 1.1.1.4 christos : PARSEOP_STARTDEPENDENTFN_NOPRI
768 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_STARTDEPENDENTFN_NOPRI);}
769 1.1.1.4 christos PARSEOP_CLOSE_PAREN '{'
770 1.1.1.6 christos ResourceMacroList '}' {$$ = TrLinkOpChildren ($<n>3,1,$6);}
771 1.1.1.4 christos | PARSEOP_STARTDEPENDENTFN_NOPRI
772 1.1.1.4 christos PARSEOP_OPEN_PAREN
773 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
774 1.1 christos ;
775 1.1 christos
776 1.1 christos StartDependentFnTerm
777 1.1.1.4 christos : PARSEOP_STARTDEPENDENTFN
778 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_STARTDEPENDENTFN);}
779 1.1 christos ByteConstExpr
780 1.1 christos ',' ByteConstExpr
781 1.1.1.4 christos PARSEOP_CLOSE_PAREN '{'
782 1.1.1.6 christos ResourceMacroList '}' {$$ = TrLinkOpChildren ($<n>3,3,$4,$6,$9);}
783 1.1.1.4 christos | PARSEOP_STARTDEPENDENTFN
784 1.1.1.4 christos PARSEOP_OPEN_PAREN
785 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
786 1.1 christos ;
787 1.1 christos
788 1.1 christos UartSerialBusTerm
789 1.1.1.4 christos : PARSEOP_UART_SERIALBUS
790 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_UART_SERIALBUS);}
791 1.1 christos DWordConstExpr /* 04: ConnectionSpeed */
792 1.1 christos OptionalBitsPerByte /* 05: BitsPerByte */
793 1.1 christos OptionalStopBits /* 06: StopBits */
794 1.1 christos ',' ByteConstExpr /* 08: LinesInUse */
795 1.1.1.8 christos OptionalEndian /* 09: Endianness */
796 1.1 christos OptionalParityType /* 10: Parity */
797 1.1 christos OptionalFlowControl /* 11: FlowControl */
798 1.1 christos ',' WordConstExpr /* 13: Rx BufferSize */
799 1.1 christos ',' WordConstExpr /* 15: Tx BufferSize */
800 1.1 christos ',' StringData /* 17: ResourceSource */
801 1.1 christos OptionalByteConstExpr /* 18: ResourceSourceIndex */
802 1.1 christos OptionalResourceType /* 19: ResourceType */
803 1.1 christos OptionalNameString /* 20: DescriptorName */
804 1.1 christos OptionalBuffer_Last /* 21: VendorData */
805 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
806 1.1.1.3 christos $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,
807 1.1.1.6 christos TrCreateLeafOp (PARSEOP_DEFAULT_ARG),$21);}
808 1.1.1.4 christos | PARSEOP_UART_SERIALBUS
809 1.1.1.4 christos PARSEOP_OPEN_PAREN
810 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
811 1.1 christos ;
812 1.1 christos
813 1.1.1.2 christos UartSerialBusTermV2
814 1.1.1.4 christos : PARSEOP_UART_SERIALBUS_V2
815 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_UART_SERIALBUS_V2);}
816 1.1.1.2 christos DWordConstExpr /* 04: ConnectionSpeed */
817 1.1.1.2 christos OptionalBitsPerByte /* 05: BitsPerByte */
818 1.1.1.2 christos OptionalStopBits /* 06: StopBits */
819 1.1.1.2 christos ',' ByteConstExpr /* 08: LinesInUse */
820 1.1.1.8 christos OptionalEndian /* 09: Endianness */
821 1.1.1.2 christos OptionalParityType /* 10: Parity */
822 1.1.1.2 christos OptionalFlowControl /* 11: FlowControl */
823 1.1.1.2 christos ',' WordConstExpr /* 13: Rx BufferSize */
824 1.1.1.2 christos ',' WordConstExpr /* 15: Tx BufferSize */
825 1.1.1.2 christos ',' StringData /* 17: ResourceSource */
826 1.1.1.2 christos OptionalByteConstExpr /* 18: ResourceSourceIndex */
827 1.1.1.2 christos OptionalResourceType /* 19: ResourceType */
828 1.1.1.2 christos OptionalNameString /* 20: DescriptorName */
829 1.1.1.2 christos OptionalShareType /* 21: Share */
830 1.1.1.2 christos OptionalBuffer_Last /* 22: VendorData */
831 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
832 1.1.1.3 christos $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
833 1.1.1.4 christos | PARSEOP_UART_SERIALBUS_V2
834 1.1.1.4 christos PARSEOP_OPEN_PAREN
835 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
836 1.1.1.2 christos ;
837 1.1.1.2 christos
838 1.1 christos VendorLongTerm
839 1.1.1.4 christos : PARSEOP_VENDORLONG
840 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_VENDORLONG);}
841 1.1 christos OptionalNameString_First
842 1.1.1.4 christos PARSEOP_CLOSE_PAREN '{'
843 1.1.1.6 christos ByteList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
844 1.1.1.4 christos | PARSEOP_VENDORLONG
845 1.1.1.4 christos PARSEOP_OPEN_PAREN
846 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
847 1.1 christos ;
848 1.1 christos
849 1.1 christos VendorShortTerm
850 1.1.1.4 christos : PARSEOP_VENDORSHORT
851 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_VENDORSHORT);}
852 1.1 christos OptionalNameString_First
853 1.1.1.4 christos PARSEOP_CLOSE_PAREN '{'
854 1.1.1.6 christos ByteList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
855 1.1.1.4 christos | PARSEOP_VENDORSHORT
856 1.1.1.4 christos PARSEOP_OPEN_PAREN
857 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
858 1.1 christos ;
859 1.1 christos
860 1.1 christos WordBusNumberTerm
861 1.1.1.4 christos : PARSEOP_WORDBUSNUMBER
862 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDBUSNUMBER);}
863 1.1 christos OptionalResourceType_First
864 1.1 christos OptionalMinType
865 1.1 christos OptionalMaxType
866 1.1 christos OptionalDecodeType
867 1.1 christos ',' WordConstExpr
868 1.1 christos ',' WordConstExpr
869 1.1 christos ',' WordConstExpr
870 1.1 christos ',' WordConstExpr
871 1.1 christos ',' WordConstExpr
872 1.1 christos OptionalByteConstExpr
873 1.1 christos OptionalStringData
874 1.1 christos OptionalNameString_Last
875 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,12,
876 1.1.1.3 christos $4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
877 1.1.1.4 christos | PARSEOP_WORDBUSNUMBER
878 1.1.1.4 christos PARSEOP_OPEN_PAREN
879 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
880 1.1 christos ;
881 1.1 christos
882 1.1 christos WordIOTerm
883 1.1.1.4 christos : PARSEOP_WORDIO
884 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDIO);}
885 1.1 christos OptionalResourceType_First
886 1.1 christos OptionalMinType
887 1.1 christos OptionalMaxType
888 1.1 christos OptionalDecodeType
889 1.1 christos OptionalRangeType
890 1.1 christos ',' WordConstExpr
891 1.1 christos ',' WordConstExpr
892 1.1 christos ',' WordConstExpr
893 1.1 christos ',' WordConstExpr
894 1.1 christos ',' WordConstExpr
895 1.1 christos OptionalByteConstExpr
896 1.1 christos OptionalStringData
897 1.1 christos OptionalNameString
898 1.1 christos OptionalType
899 1.1 christos OptionalTranslationType_Last
900 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
901 1.1.1.3 christos $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
902 1.1.1.4 christos | PARSEOP_WORDIO
903 1.1.1.4 christos PARSEOP_OPEN_PAREN
904 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
905 1.1 christos ;
906 1.1 christos
907 1.1 christos WordSpaceTerm
908 1.1.1.4 christos : PARSEOP_WORDSPACE
909 1.1.1.6 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDSPACE);}
910 1.1 christos ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
911 1.1 christos OptionalResourceType
912 1.1 christos OptionalDecodeType
913 1.1 christos OptionalMinType
914 1.1 christos OptionalMaxType
915 1.1 christos ',' ByteConstExpr
916 1.1 christos ',' WordConstExpr
917 1.1 christos ',' WordConstExpr
918 1.1 christos ',' WordConstExpr
919 1.1 christos ',' WordConstExpr
920 1.1 christos ',' WordConstExpr
921 1.1 christos OptionalByteConstExpr
922 1.1 christos OptionalStringData
923 1.1 christos OptionalNameString_Last
924 1.1.1.6 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
925 1.1.1.3 christos $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
926 1.1.1.4 christos | PARSEOP_WORDSPACE
927 1.1.1.4 christos PARSEOP_OPEN_PAREN
928 1.1.1.4 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
929 1.1 christos ;
930