2 /******************************************************************************
4 * Module Name: asltypes.y - Bison/Yacc production types/names
6 *****************************************************************************/
9 * Copyright (C) 2000 - 2015, Intel Corp.
10 * All rights reserved.
12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions
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.
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.
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.
47 /******************************************************************************
51 *****************************************************************************/
56 %type <n> BufferTermData
57 %type <n> CompilerDirective
59 %type <n> DefinitionBlockTerm
62 %type <n> NameSpaceModifier
66 %type <n> ParameterTypePackage
67 %type <n> ParameterTypePackageList
68 %type <n> ParameterTypesPackage
69 %type <n> ParameterTypesPackageList
70 %type <n> RequiredTarget
71 %type <n> SimpleTarget
77 %type <n> MethodInvocationTerm
79 /* Type4Opcode is obsolete */
82 %type <n> Type2BufferOpcode
83 %type <n> Type2BufferOrStringOpcode
84 %type <n> Type2IntegerOpcode
86 %type <n> Type2StringOpcode
91 %type <n> AccessAsTerm
92 %type <n> ExternalTerm
94 %type <n> FieldUnitEntry
95 %type <n> FieldUnitList
98 %type <n> OptionalAccessAttribTerm
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
113 %type <n> FunctionTerm
114 %type <n> IndexFieldTerm
117 %type <n> OpRegionTerm
118 %type <n> OpRegionSpaceIdTerm
119 %type <n> PowerResTerm
120 %type <n> ProcessorTerm
121 %type <n> ThermalZoneTerm
123 /* Namespace modifiers */
131 %type <n> BreakPointTerm
133 %type <n> CaseDefaultTermList
135 %type <n> ContinueTerm
136 %type <n> DefaultTerm
144 %type <n> ReleaseTerm
153 /* %type <n> CaseTermList */
157 %type <n> AcquireTerm
160 %type <n> ConcatResTerm
162 %type <n> CondRefOfTerm
163 %type <n> CopyObjectTerm
165 %type <n> DerefOfTerm
167 %type <n> FindSetLeftBitTerm
168 %type <n> FindSetRightBitTerm
169 %type <n> FromBCDTerm
174 %type <n> LGreaterEqualTerm
175 %type <n> LGreaterTerm
176 %type <n> LLessEqualTerm
178 %type <n> LNotEqualTerm
180 %type <n> LoadTableTerm
185 %type <n> MultiplyTerm
189 %type <n> ObjectTypeTerm
192 %type <n> ShiftLeftTerm
193 %type <n> ShiftRightTerm
196 %type <n> SubtractTerm
199 %type <n> ToBufferTerm
200 %type <n> ToDecimalStringTerm
201 %type <n> ToHexStringTerm
202 %type <n> ToIntegerTerm
203 %type <n> ToStringTerm
209 %type <n> AccessAttribKeyword
210 %type <n> AccessTypeKeyword
211 %type <n> AddressingModeKeyword
212 %type <n> AddressKeyword
213 %type <n> AddressSpaceKeyword
214 %type <n> BitsPerByteKeyword
215 %type <n> ClockPhaseKeyword
216 %type <n> ClockPolarityKeyword
217 %type <n> DecodeKeyword
218 %type <n> DevicePolarityKeyword
219 %type <n> DMATypeKeyword
220 %type <n> EndianKeyword
221 %type <n> FlowControlKeyword
222 %type <n> InterruptLevel
223 %type <n> InterruptTypeKeyword
224 %type <n> IODecodeKeyword
225 %type <n> IoRestrictionKeyword
226 %type <n> LockRuleKeyword
227 %type <n> MatchOpKeyword
229 %type <n> MemTypeKeyword
231 %type <n> ObjectTypeKeyword
232 %type <n> OptionalBusMasterKeyword
233 %type <n> OptionalReadWriteKeyword
234 %type <n> ParityTypeKeyword
235 %type <n> PinConfigByte
236 %type <n> PinConfigKeyword
237 %type <n> RangeTypeKeyword
238 %type <n> RegionSpaceKeyword
239 %type <n> ResourceTypeKeyword
240 %type <n> SerializeRuleKeyword
241 %type <n> ShareTypeKeyword
242 %type <n> SlaveModeKeyword
243 %type <n> StopBitsKeyword
244 %type <n> TranslationKeyword
245 %type <n> TypeKeyword
246 %type <n> UpdateRuleKeyword
247 %type <n> WireModeKeyword
248 %type <n> XferSizeKeyword
249 %type <n> XferTypeKeyword
254 %type <n> ObjectTypeName
267 %type <n> ConstExprTerm
268 %type <n> ByteConstExpr
269 %type <n> WordConstExpr
270 %type <n> DWordConstExpr
271 %type <n> QWordConstExpr
277 %type <n> PackageElement
278 %type <n> PackageList
279 %type <n> PackageTerm
280 %type <n> VarPackageLengthTerm
285 %type <n> ResourceMacroList
286 %type <n> ResourceMacroTerm
287 %type <n> ResourceTemplateTerm
289 %type <n> PldKeywordList
292 %type <n> UnicodeTerm
293 %type <n> PrintfArgList
295 %type <n> FprintfTerm
297 /* Resource Descriptors */
299 %type <n> ConnectionTerm
300 %type <n> DataBufferTerm
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
313 %type <n> I2cSerialBusTerm
314 %type <n> InterruptTerm
316 %type <n> IRQNoFlagsTerm
318 %type <n> Memory24Term
319 %type <n> Memory32FixedTerm
320 %type <n> Memory32Term
323 %type <n> QWordIOTerm
324 %type <n> QWordMemoryTerm
325 %type <n> QWordSpaceTerm
326 %type <n> RegisterTerm
327 %type <n> SpiSerialBusTerm
328 %type <n> StartDependentFnNoPriTerm
329 %type <n> StartDependentFnTerm
330 %type <n> UartSerialBusTerm
331 %type <n> VendorLongTerm
332 %type <n> VendorShortTerm
333 %type <n> WordBusNumberTerm
335 %type <n> WordSpaceTerm
337 /* Local types that help construct the AML, not in ACPI spec */
339 %type <n> AmlPackageLengthTerm
340 %type <n> IncludeEndTerm
341 %type <n> NameStringItem
342 %type <n> TermArgItem
344 %type <n> OptionalAccessSize
345 %type <n> OptionalAddressingMode
346 %type <n> OptionalAddressRange
347 %type <n> OptionalBitsPerByte
348 %type <n> OptionalBuffer_Last
349 %type <n> OptionalByteConstExpr
350 %type <n> OptionalCount
351 %type <n> OptionalDecodeType
352 %type <n> OptionalDevicePolarity
353 %type <n> OptionalDWordConstExpr
354 %type <n> OptionalEndian
355 %type <n> OptionalFlowControl
356 %type <n> OptionalIoRestriction
357 %type <n> OptionalListString
358 %type <n> OptionalMaxType
359 %type <n> OptionalMemType
360 %type <n> OptionalMinType
361 %type <n> OptionalNameString
362 %type <n> OptionalNameString_First
363 %type <n> OptionalNameString_Last
364 %type <n> OptionalObjectTypeKeyword
365 %type <n> OptionalParameterTypePackage
366 %type <n> OptionalParameterTypesPackage
367 %type <n> OptionalParityType
368 %type <n> OptionalQWordConstExpr
369 %type <n> OptionalRangeType
370 %type <n> OptionalReference
371 %type <n> OptionalResourceType
372 %type <n> OptionalResourceType_First
373 %type <n> OptionalReturnArg
374 %type <n> OptionalSerializeRuleKeyword
375 %type <n> OptionalShareType
376 %type <n> OptionalShareType_First
377 %type <n> OptionalSlaveMode
378 %type <n> OptionalStopBits
379 %type <n> OptionalStringData
380 %type <n> OptionalTermArg
381 %type <n> OptionalTranslationType_Last
382 %type <n> OptionalType
383 %type <n> OptionalType_Last
384 %type <n> OptionalWireMode
385 %type <n> OptionalWordConst
386 %type <n> OptionalWordConstExpr
387 %type <n> OptionalXferSize
390 * C-style expression parser