asltypes.y revision 306536
1NoEcho('
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%type <n> VarPackageLengthTerm
282
283/* Macros */
284
285%type <n> EISAIDTerm
286%type <n> ResourceMacroList
287%type <n> ResourceMacroTerm
288%type <n> ResourceTemplateTerm
289%type <n> PldKeyword
290%type <n> PldKeywordList
291%type <n> ToPLDTerm
292%type <n> ToUUIDTerm
293%type <n> UnicodeTerm
294%type <n> PrintfArgList
295%type <n> PrintfTerm
296%type <n> FprintfTerm
297%type <n> ForTerm
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> I2cSerialBusTermV2
316%type <n> InterruptTerm
317%type <n> IOTerm
318%type <n> IRQNoFlagsTerm
319%type <n> IRQTerm
320%type <n> Memory24Term
321%type <n> Memory32FixedTerm
322%type <n> Memory32Term
323%type <n> NameSeg
324%type <n> NameString
325%type <n> QWordIOTerm
326%type <n> QWordMemoryTerm
327%type <n> QWordSpaceTerm
328%type <n> RegisterTerm
329%type <n> SpiSerialBusTerm
330%type <n> SpiSerialBusTermV2
331%type <n> StartDependentFnNoPriTerm
332%type <n> StartDependentFnTerm
333%type <n> UartSerialBusTerm
334%type <n> UartSerialBusTermV2
335%type <n> VendorLongTerm
336%type <n> VendorShortTerm
337%type <n> WordBusNumberTerm
338%type <n> WordIOTerm
339%type <n> WordSpaceTerm
340
341/* Local types that help construct the AML, not in ACPI spec */
342
343%type <n> AmlPackageLengthTerm
344%type <n> IncludeEndTerm
345%type <n> NameStringItem
346%type <n> TermArgItem
347
348%type <n> OptionalAccessSize
349%type <n> OptionalAddressingMode
350%type <n> OptionalAddressRange
351%type <n> OptionalBitsPerByte
352%type <n> OptionalBuffer_Last
353%type <n> OptionalBufferLength
354%type <n> OptionalByteConstExpr
355%type <n> OptionalCount
356%type <n> OptionalDecodeType
357%type <n> OptionalDevicePolarity
358%type <n> OptionalDWordConstExpr
359%type <n> OptionalEndian
360%type <n> OptionalFlowControl
361%type <n> OptionalIoRestriction
362%type <n> OptionalListString
363%type <n> OptionalMaxType
364%type <n> OptionalMemType
365%type <n> OptionalMinType
366%type <n> OptionalNameString
367%type <n> OptionalNameString_First
368%type <n> OptionalNameString_Last
369%type <n> OptionalObjectTypeKeyword
370%type <n> OptionalParameterTypePackage
371%type <n> OptionalParameterTypesPackage
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 * C-style expression parser
397 */
398%type <n> Expression
399%type <n> EqualsTerm
400%type <n> IndexExpTerm
401