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> ObjectList
66 %type <n> PackageData
67 %type <n> ParameterTypePackage
68 %type <n> ParameterTypePackageList
69 %type <n> ParameterTypesPackage
70 %type <n> ParameterTypesPackageList
71 %type <n> RequiredTarget
72 %type <n> SimpleTarget
73 %type <n> StringData
74 %type <n> Target
75 %type <n> Term
76 %type <n> TermArg
77 %type <n> TermList
78 %type <n> MethodInvocationTerm
79 
80 /* Type4Opcode is obsolete */
81 
82 %type <n> Type1Opcode
83 %type <n> Type2BufferOpcode
84 %type <n> Type2BufferOrStringOpcode
85 %type <n> Type2IntegerOpcode
86 %type <n> Type2Opcode
87 %type <n> Type2StringOpcode
88 %type <n> Type3Opcode
89 %type <n> Type5Opcode
90 %type <n> Type6Opcode
91 
92 %type <n> AccessAsTerm
93 %type <n> ExternalTerm
94 %type <n> FieldUnit
95 %type <n> FieldUnitEntry
96 %type <n> FieldUnitList
97 %type <n> IncludeTerm
98 %type <n> OffsetTerm
99 %type <n> OptionalAccessAttribTerm
100 
101 /* Named Objects */
102 
103 %type <n> BankFieldTerm
104 %type <n> CreateBitFieldTerm
105 %type <n> CreateByteFieldTerm
106 %type <n> CreateDWordFieldTerm
107 %type <n> CreateFieldTerm
108 %type <n> CreateQWordFieldTerm
109 %type <n> CreateWordFieldTerm
110 %type <n> DataRegionTerm
111 %type <n> DeviceTerm
112 %type <n> EventTerm
113 %type <n> FieldTerm
114 %type <n> FunctionTerm
115 %type <n> IndexFieldTerm
116 %type <n> MethodTerm
117 %type <n> MutexTerm
118 %type <n> OpRegionTerm
119 %type <n> OpRegionSpaceIdTerm
120 %type <n> PowerResTerm
121 %type <n> ProcessorTerm
122 %type <n> ThermalZoneTerm
123 
124 /* Namespace modifiers */
125 
126 %type <n> AliasTerm
127 %type <n> NameTerm
128 %type <n> ScopeTerm
129 
130 /* Type 1 opcodes */
131 
132 %type <n> BreakPointTerm
133 %type <n> BreakTerm
134 %type <n> CaseDefaultTermList
135 %type <n> CaseTerm
136 %type <n> ContinueTerm
137 %type <n> DefaultTerm
138 %type <n> ElseTerm
139 %type <n> FatalTerm
140 %type <n> ElseIfTerm
141 %type <n> IfTerm
142 %type <n> LoadTerm
143 %type <n> NoOpTerm
144 %type <n> NotifyTerm
145 %type <n> ReleaseTerm
146 %type <n> ResetTerm
147 %type <n> ReturnTerm
148 %type <n> SignalTerm
149 %type <n> SleepTerm
150 %type <n> StallTerm
151 %type <n> SwitchTerm
152 %type <n> UnloadTerm
153 %type <n> WhileTerm
154 /* %type <n> CaseTermList */
155 
156 /* Type 2 opcodes */
157 
158 %type <n> AcquireTerm
159 %type <n> AddTerm
160 %type <n> AndTerm
161 %type <n> ConcatResTerm
162 %type <n> ConcatTerm
163 %type <n> CondRefOfTerm
164 %type <n> CopyObjectTerm
165 %type <n> DecTerm
166 %type <n> DerefOfTerm
167 %type <n> DivideTerm
168 %type <n> FindSetLeftBitTerm
169 %type <n> FindSetRightBitTerm
170 %type <n> FromBCDTerm
171 %type <n> IncTerm
172 %type <n> IndexTerm
173 %type <n> LAndTerm
174 %type <n> LEqualTerm
175 %type <n> LGreaterEqualTerm
176 %type <n> LGreaterTerm
177 %type <n> LLessEqualTerm
178 %type <n> LLessTerm
179 %type <n> LNotEqualTerm
180 %type <n> LNotTerm
181 %type <n> LoadTableTerm
182 %type <n> LOrTerm
183 %type <n> MatchTerm
184 %type <n> MidTerm
185 %type <n> ModTerm
186 %type <n> MultiplyTerm
187 %type <n> NAndTerm
188 %type <n> NOrTerm
189 %type <n> NotTerm
190 %type <n> ObjectTypeTerm
191 %type <n> OrTerm
192 %type <n> RawDataBufferTerm
193 %type <n> RefOfTerm
194 %type <n> ShiftLeftTerm
195 %type <n> ShiftRightTerm
196 %type <n> SizeOfTerm
197 %type <n> StoreTerm
198 %type <n> SubtractTerm
199 %type <n> TimerTerm
200 %type <n> ToBCDTerm
201 %type <n> ToBufferTerm
202 %type <n> ToDecimalStringTerm
203 %type <n> ToHexStringTerm
204 %type <n> ToIntegerTerm
205 %type <n> ToStringTerm
206 %type <n> WaitTerm
207 %type <n> XOrTerm
208 
209 /* Keywords */
210 
211 %type <n> AccessAttribKeyword
212 %type <n> AccessTypeKeyword
213 %type <n> AddressingModeKeyword
214 %type <n> AddressKeyword
215 %type <n> AddressSpaceKeyword
216 %type <n> BitsPerByteKeyword
217 %type <n> ClockPhaseKeyword
218 %type <n> ClockPolarityKeyword
219 %type <n> DecodeKeyword
220 %type <n> DevicePolarityKeyword
221 %type <n> DMATypeKeyword
222 %type <n> EndianKeyword
223 %type <n> FlowControlKeyword
224 %type <n> InterruptLevel
225 %type <n> InterruptTypeKeyword
226 %type <n> IODecodeKeyword
227 %type <n> IoRestrictionKeyword
228 %type <n> LockRuleKeyword
229 %type <n> MatchOpKeyword
230 %type <n> MaxKeyword
231 %type <n> MemTypeKeyword
232 %type <n> MinKeyword
233 %type <n> ObjectTypeKeyword
234 %type <n> OptionalBusMasterKeyword
235 %type <n> OptionalReadWriteKeyword
236 %type <n> ParityTypeKeyword
237 %type <n> PinConfigByte
238 %type <n> PinConfigKeyword
239 %type <n> RangeTypeKeyword
240 %type <n> RegionSpaceKeyword
241 %type <n> ResourceTypeKeyword
242 %type <n> SerializeRuleKeyword
243 %type <n> ShareTypeKeyword
244 %type <n> SlaveModeKeyword
245 %type <n> StopBitsKeyword
246 %type <n> TranslationKeyword
247 %type <n> TypeKeyword
248 %type <n> UpdateRuleKeyword
249 %type <n> WireModeKeyword
250 %type <n> XferSizeKeyword
251 %type <n> XferTypeKeyword
252 
253 /* Types */
254 
255 %type <n> SuperName
256 %type <n> ObjectTypeName
257 %type <n> ArgTerm
258 %type <n> LocalTerm
259 %type <n> DebugTerm
260 
261 %type <n> Integer
262 %type <n> ByteConst
263 %type <n> WordConst
264 %type <n> DWordConst
265 %type <n> QWordConst
266 %type <n> String
267 
268 %type <n> ConstTerm
269 %type <n> ConstExprTerm
270 %type <n> ByteConstExpr
271 %type <n> WordConstExpr
272 %type <n> DWordConstExpr
273 %type <n> QWordConstExpr
274 
275 %type <n> DWordList
276 %type <n> BufferTerm
277 %type <n> ByteList
278 
279 %type <n> PackageElement
280 %type <n> PackageList
281 %type <n> PackageTerm
282 %type <n> VarPackageLengthTerm
283 
284 /* Macros */
285 
286 %type <n> EISAIDTerm
287 %type <n> ResourceMacroList
288 %type <n> ResourceMacroTerm
289 %type <n> ResourceTemplateTerm
290 %type <n> PldKeyword
291 %type <n> PldKeywordList
292 %type <n> ToPLDTerm
293 %type <n> ToUUIDTerm
294 %type <n> UnicodeTerm
295 %type <n> PrintfArgList
296 %type <n> PrintfTerm
297 %type <n> FprintfTerm
298 
299 /* Resource Descriptors */
300 
301 %type <n> ConnectionTerm
302 %type <n> DMATerm
303 %type <n> DWordIOTerm
304 %type <n> DWordMemoryTerm
305 %type <n> DWordSpaceTerm
306 %type <n> EndDependentFnTerm
307 %type <n> ExtendedIOTerm
308 %type <n> ExtendedMemoryTerm
309 %type <n> ExtendedSpaceTerm
310 %type <n> FixedDmaTerm
311 %type <n> FixedIOTerm
312 %type <n> GpioIntTerm
313 %type <n> GpioIoTerm
314 %type <n> I2cSerialBusTerm
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> StartDependentFnNoPriTerm
330 %type <n> StartDependentFnTerm
331 %type <n> UartSerialBusTerm
332 %type <n> VendorLongTerm
333 %type <n> VendorShortTerm
334 %type <n> WordBusNumberTerm
335 %type <n> WordIOTerm
336 %type <n> WordSpaceTerm
337 
338 /* Local types that help construct the AML, not in ACPI spec */
339 
340 %type <n> AmlPackageLengthTerm
341 %type <n> IncludeEndTerm
342 %type <n> NameStringItem
343 %type <n> TermArgItem
344 
345 %type <n> OptionalAccessSize
346 %type <n> OptionalAddressingMode
347 %type <n> OptionalAddressRange
348 %type <n> OptionalBitsPerByte
349 %type <n> OptionalBuffer_Last
350 %type <n> OptionalByteConstExpr
351 %type <n> OptionalCount
352 %type <n> OptionalDecodeType
353 %type <n> OptionalDevicePolarity
354 %type <n> OptionalDWordConstExpr
355 %type <n> OptionalEndian
356 %type <n> OptionalFlowControl
357 %type <n> OptionalIoRestriction
358 %type <n> OptionalListString
359 %type <n> OptionalMaxType
360 %type <n> OptionalMemType
361 %type <n> OptionalMinType
362 %type <n> OptionalNameString
363 %type <n> OptionalNameString_First
364 %type <n> OptionalNameString_Last
365 %type <n> OptionalObjectTypeKeyword
366 %type <n> OptionalParameterTypePackage
367 %type <n> OptionalParameterTypesPackage
368 %type <n> OptionalParityType
369 %type <n> OptionalQWordConstExpr
370 %type <n> OptionalRangeType
371 %type <n> OptionalReference
372 %type <n> OptionalResourceType
373 %type <n> OptionalResourceType_First
374 %type <n> OptionalReturnArg
375 %type <n> OptionalSerializeRuleKeyword
376 %type <n> OptionalShareType
377 %type <n> OptionalShareType_First
378 %type <n> OptionalSlaveMode
379 %type <n> OptionalStopBits
380 %type <n> OptionalStringData
381 %type <n> OptionalTermArg
382 %type <n> OptionalTranslationType_Last
383 %type <n> OptionalType
384 %type <n> OptionalType_Last
385 %type <n> OptionalWireMode
386 %type <n> OptionalWordConst
387 %type <n> OptionalWordConstExpr
388 %type <n> OptionalXferSize
389 
390 /*
391  * C-style expression parser
392  */
393 %type <n> Expression
394 %type <n> EqualsTerm
395 %type <n> IndexExpTerm
396