1 NoEcho('
2 /******************************************************************************
3  *
4  * Module Name: asltypes.y - Bison/Yacc production types/names
5  *
6  *****************************************************************************/
7 
8 /*
9  * Copyright (C) 2000 - 2016, Intel Corp.
10  * All rights reserved.
11  *
12  * Redistribution and use in source and binary forms, with or without
13  * modification, are permitted provided that the following conditions
14  * are met:
15  * 1. Redistributions of source code must retain the above copyright
16  *    notice, this list of conditions, and the following disclaimer,
17  *    without modification.
18  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
19  *    substantially similar to the "NO WARRANTY" disclaimer below
20  *    ("Disclaimer") and any redistribution must be conditioned upon
21  *    including a substantially similar Disclaimer requirement for further
22  *    binary redistribution.
23  * 3. Neither the names of the above-listed copyright holders nor the names
24  *    of any contributors may be used to endorse or promote products derived
25  *    from this software without specific prior written permission.
26  *
27  * Alternatively, this software may be distributed under the terms of the
28  * GNU General Public License ("GPL") version 2 as published by the Free
29  * Software Foundation.
30  *
31  * NO WARRANTY
32  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
33  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
34  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
35  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
36  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
37  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
38  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
39  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
40  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
41  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
42  * POSSIBILITY OF SUCH DAMAGES.
43  */
44 
45 ')
46 
47 /******************************************************************************
48  *
49  * Production names
50  *
51  *****************************************************************************/
52 
53 %type <n> ArgList
54 %type <n> AslCode
55 %type <n> BufferData
56 %type <n> BufferTermData
57 %type <n> CompilerDirective
58 %type <n> DataObject
59 %type <n> DefinitionBlockTerm
60 %type <n> DefinitionBlockList
61 %type <n> IntegerData
62 %type <n> NamedObject
63 %type <n> NameSpaceModifier
64 %type <n> Object
65 %type <n> PackageData
66 %type <n> ParameterTypePackage
67 %type <n> ParameterTypePackageList
68 %type <n> ParameterTypesPackage
69 %type <n> ParameterTypesPackageList
70 %type <n> RequiredTarget
71 %type <n> SimpleTarget
72 %type <n> StringData
73 %type <n> Target
74 %type <n> Term
75 %type <n> TermArg
76 %type <n> TermList
77 %type <n> MethodInvocationTerm
78 
79 /* Type4Opcode is obsolete */
80 
81 %type <n> Type1Opcode
82 %type <n> Type2BufferOpcode
83 %type <n> Type2BufferOrStringOpcode
84 %type <n> Type2IntegerOpcode
85 %type <n> Type2Opcode
86 %type <n> Type2StringOpcode
87 %type <n> Type3Opcode
88 %type <n> Type5Opcode
89 %type <n> Type6Opcode
90 
91 %type <n> AccessAsTerm
92 %type <n> ExternalTerm
93 %type <n> FieldUnit
94 %type <n> FieldUnitEntry
95 %type <n> FieldUnitList
96 %type <n> IncludeTerm
97 %type <n> OffsetTerm
98 %type <n> OptionalAccessAttribTerm
99 
100 /* Named Objects */
101 
102 %type <n> BankFieldTerm
103 %type <n> CreateBitFieldTerm
104 %type <n> CreateByteFieldTerm
105 %type <n> CreateDWordFieldTerm
106 %type <n> CreateFieldTerm
107 %type <n> CreateQWordFieldTerm
108 %type <n> CreateWordFieldTerm
109 %type <n> DataRegionTerm
110 %type <n> DeviceTerm
111 %type <n> EventTerm
112 %type <n> FieldTerm
113 %type <n> FunctionTerm
114 %type <n> IndexFieldTerm
115 %type <n> MethodTerm
116 %type <n> MutexTerm
117 %type <n> OpRegionTerm
118 %type <n> OpRegionSpaceIdTerm
119 %type <n> PowerResTerm
120 %type <n> ProcessorTerm
121 %type <n> ThermalZoneTerm
122 
123 /* Namespace modifiers */
124 
125 %type <n> AliasTerm
126 %type <n> NameTerm
127 %type <n> ScopeTerm
128 
129 /* Type 1 opcodes */
130 
131 %type <n> BreakPointTerm
132 %type <n> BreakTerm
133 %type <n> CaseDefaultTermList
134 %type <n> CaseTerm
135 %type <n> ContinueTerm
136 %type <n> DefaultTerm
137 %type <n> ElseTerm
138 %type <n> FatalTerm
139 %type <n> ElseIfTerm
140 %type <n> IfTerm
141 %type <n> LoadTerm
142 %type <n> NoOpTerm
143 %type <n> NotifyTerm
144 %type <n> ReleaseTerm
145 %type <n> ResetTerm
146 %type <n> ReturnTerm
147 %type <n> SignalTerm
148 %type <n> SleepTerm
149 %type <n> StallTerm
150 %type <n> SwitchTerm
151 %type <n> UnloadTerm
152 %type <n> WhileTerm
153 /* %type <n> CaseTermList */
154 
155 /* Type 2 opcodes */
156 
157 %type <n> AcquireTerm
158 %type <n> AddTerm
159 %type <n> AndTerm
160 %type <n> ConcatResTerm
161 %type <n> ConcatTerm
162 %type <n> CondRefOfTerm
163 %type <n> CopyObjectTerm
164 %type <n> DecTerm
165 %type <n> DerefOfTerm
166 %type <n> DivideTerm
167 %type <n> FindSetLeftBitTerm
168 %type <n> FindSetRightBitTerm
169 %type <n> FromBCDTerm
170 %type <n> IncTerm
171 %type <n> IndexTerm
172 %type <n> LAndTerm
173 %type <n> LEqualTerm
174 %type <n> LGreaterEqualTerm
175 %type <n> LGreaterTerm
176 %type <n> LLessEqualTerm
177 %type <n> LLessTerm
178 %type <n> LNotEqualTerm
179 %type <n> LNotTerm
180 %type <n> LoadTableTerm
181 %type <n> LOrTerm
182 %type <n> MatchTerm
183 %type <n> MidTerm
184 %type <n> ModTerm
185 %type <n> MultiplyTerm
186 %type <n> NAndTerm
187 %type <n> NOrTerm
188 %type <n> NotTerm
189 %type <n> ObjectTypeTerm
190 %type <n> OrTerm
191 %type <n> RawDataBufferTerm
192 %type <n> RefOfTerm
193 %type <n> ShiftLeftTerm
194 %type <n> ShiftRightTerm
195 %type <n> SizeOfTerm
196 %type <n> StoreTerm
197 %type <n> SubtractTerm
198 %type <n> TimerTerm
199 %type <n> ToBCDTerm
200 %type <n> ToBufferTerm
201 %type <n> ToDecimalStringTerm
202 %type <n> ToHexStringTerm
203 %type <n> ToIntegerTerm
204 %type <n> ToStringTerm
205 %type <n> WaitTerm
206 %type <n> XOrTerm
207 
208 /* Keywords */
209 
210 %type <n> AccessAttribKeyword
211 %type <n> AccessTypeKeyword
212 %type <n> AddressingModeKeyword
213 %type <n> AddressKeyword
214 %type <n> AddressSpaceKeyword
215 %type <n> BitsPerByteKeyword
216 %type <n> ClockPhaseKeyword
217 %type <n> ClockPolarityKeyword
218 %type <n> DecodeKeyword
219 %type <n> DevicePolarityKeyword
220 %type <n> DMATypeKeyword
221 %type <n> EndianKeyword
222 %type <n> FlowControlKeyword
223 %type <n> InterruptLevel
224 %type <n> InterruptTypeKeyword
225 %type <n> IODecodeKeyword
226 %type <n> IoRestrictionKeyword
227 %type <n> LockRuleKeyword
228 %type <n> MatchOpKeyword
229 %type <n> MaxKeyword
230 %type <n> MemTypeKeyword
231 %type <n> MinKeyword
232 %type <n> ObjectTypeKeyword
233 %type <n> OptionalBusMasterKeyword
234 %type <n> OptionalReadWriteKeyword
235 %type <n> ParityTypeKeyword
236 %type <n> PinConfigByte
237 %type <n> PinConfigKeyword
238 %type <n> RangeTypeKeyword
239 %type <n> RegionSpaceKeyword
240 %type <n> ResourceTypeKeyword
241 %type <n> SerializeRuleKeyword
242 %type <n> ShareTypeKeyword
243 %type <n> SlaveModeKeyword
244 %type <n> StopBitsKeyword
245 %type <n> TranslationKeyword
246 %type <n> TypeKeyword
247 %type <n> UpdateRuleKeyword
248 %type <n> WireModeKeyword
249 %type <n> XferSizeKeyword
250 %type <n> XferTypeKeyword
251 
252 /* Types */
253 
254 %type <n> SuperName
255 %type <n> ObjectTypeName
256 %type <n> ArgTerm
257 %type <n> LocalTerm
258 %type <n> DebugTerm
259 
260 %type <n> Integer
261 %type <n> ByteConst
262 %type <n> WordConst
263 %type <n> DWordConst
264 %type <n> QWordConst
265 %type <n> String
266 
267 %type <n> ConstTerm
268 %type <n> ConstExprTerm
269 %type <n> ByteConstExpr
270 %type <n> WordConstExpr
271 %type <n> DWordConstExpr
272 %type <n> QWordConstExpr
273 
274 %type <n> DWordList
275 %type <n> BufferTerm
276 %type <n> ByteList
277 
278 %type <n> PackageElement
279 %type <n> PackageList
280 %type <n> PackageTerm
281 
282 /* Macros */
283 
284 %type <n> EISAIDTerm
285 %type <n> ResourceMacroList
286 %type <n> ResourceMacroTerm
287 %type <n> ResourceTemplateTerm
288 %type <n> PldKeyword
289 %type <n> PldKeywordList
290 %type <n> ToPLDTerm
291 %type <n> ToUUIDTerm
292 %type <n> UnicodeTerm
293 %type <n> PrintfArgList
294 %type <n> PrintfTerm
295 %type <n> FprintfTerm
296 %type <n> ForTerm
297 
298 /* Resource Descriptors */
299 
300 %type <n> ConnectionTerm
301 %type <n> DMATerm
302 %type <n> DWordIOTerm
303 %type <n> DWordMemoryTerm
304 %type <n> DWordSpaceTerm
305 %type <n> EndDependentFnTerm
306 %type <n> ExtendedIOTerm
307 %type <n> ExtendedMemoryTerm
308 %type <n> ExtendedSpaceTerm
309 %type <n> FixedDmaTerm
310 %type <n> FixedIOTerm
311 %type <n> GpioIntTerm
312 %type <n> GpioIoTerm
313 %type <n> I2cSerialBusTerm
314 %type <n> I2cSerialBusTermV2
315 %type <n> InterruptTerm
316 %type <n> IOTerm
317 %type <n> IRQNoFlagsTerm
318 %type <n> IRQTerm
319 %type <n> Memory24Term
320 %type <n> Memory32FixedTerm
321 %type <n> Memory32Term
322 %type <n> NameSeg
323 %type <n> NameString
324 %type <n> QWordIOTerm
325 %type <n> QWordMemoryTerm
326 %type <n> QWordSpaceTerm
327 %type <n> RegisterTerm
328 %type <n> SpiSerialBusTerm
329 %type <n> SpiSerialBusTermV2
330 %type <n> StartDependentFnNoPriTerm
331 %type <n> StartDependentFnTerm
332 %type <n> UartSerialBusTerm
333 %type <n> UartSerialBusTermV2
334 %type <n> VendorLongTerm
335 %type <n> VendorShortTerm
336 %type <n> WordBusNumberTerm
337 %type <n> WordIOTerm
338 %type <n> WordSpaceTerm
339 
340 /* Local types that help construct the AML, not in ACPI spec */
341 
342 %type <n> AmlPackageLengthTerm
343 %type <n> IncludeEndTerm
344 %type <n> NameStringItem
345 %type <n> TermArgItem
346 
347 %type <n> OptionalAccessSize
348 %type <n> OptionalAddressingMode
349 %type <n> OptionalAddressRange
350 %type <n> OptionalBitsPerByte
351 %type <n> OptionalBuffer_Last
352 %type <n> OptionalByteConstExpr
353 %type <n> OptionalCount
354 %type <n> OptionalDataCount
355 %type <n> OptionalDecodeType
356 %type <n> OptionalDevicePolarity
357 %type <n> OptionalDWordConstExpr
358 %type <n> OptionalEndian
359 %type <n> OptionalFlowControl
360 %type <n> OptionalIoRestriction
361 %type <n> OptionalListString
362 %type <n> OptionalMaxType
363 %type <n> OptionalMemType
364 %type <n> OptionalMinType
365 %type <n> OptionalNameString
366 %type <n> OptionalNameString_First
367 %type <n> OptionalNameString_Last
368 %type <n> OptionalObjectTypeKeyword
369 %type <n> OptionalParameterTypePackage
370 %type <n> OptionalParameterTypesPackage
371 %type <n> OptionalParentheses
372 %type <n> OptionalParityType
373 %type <n> OptionalPredicate
374 %type <n> OptionalQWordConstExpr
375 %type <n> OptionalRangeType
376 %type <n> OptionalReference
377 %type <n> OptionalResourceType
378 %type <n> OptionalResourceType_First
379 %type <n> OptionalReturnArg
380 %type <n> OptionalSerializeRuleKeyword
381 %type <n> OptionalShareType
382 %type <n> OptionalShareType_First
383 %type <n> OptionalSlaveMode
384 %type <n> OptionalStopBits
385 %type <n> OptionalStringData
386 %type <n> OptionalTermArg
387 %type <n> OptionalTranslationType_Last
388 %type <n> OptionalType
389 %type <n> OptionalType_Last
390 %type <n> OptionalWireMode
391 %type <n> OptionalWordConst
392 %type <n> OptionalWordConstExpr
393 %type <n> OptionalXferSize
394 
395 /*
396  * ASL+ (C-style) parser
397  */
398 
399 /* Expressions and symbolic operators */
400 
401 %type <n> Expression
402 %type <n> EqualsTerm
403 %type <n> IndexExpTerm
404 
405 /* ASL+ Named object declaration support */
406 /*
407 %type <n> NameTermAslPlus
408 
409 %type <n> BufferBegin
410 %type <n> BufferEnd
411 %type <n> PackageBegin
412 %type <n> PackageEnd
413 %type <n> OptionalLength
414 */
415 /* ASL+ Structure declarations */
416 /*
417 %type <n> StructureTerm
418 %type <n> StructureTermBegin
419 %type <n> StructureType
420 %type <n> StructureTag
421 %type <n> StructureElementList
422 %type <n> StructureElement
423 %type <n> StructureElementType
424 %type <n> OptionalStructureElementType
425 %type <n> StructureId
426 */
427 /* Structure instantiantion */
428 /*
429 %type <n> StructureInstanceTerm
430 %type <n> StructureTagReference
431 %type <n> StructureInstanceEnd
432 */
433 /* Pseudo-instantiantion for method Args/Locals */
434 /*
435 %type <n> MethodStructureTerm
436 %type <n> LocalStructureName
437 */
438 /* Direct structure references via the Index operator */
439 /*
440 %type <n> StructureReference
441 %type <n> StructureIndexTerm
442 %type <n> StructurePointerTerm
443 %type <n> StructurePointerReference
444 %type <n> OptionalDefinePointer
445 */
446