aslhelpers.y revision 1.1 1 NoEcho('
2 /******************************************************************************
3 *
4 * Module Name: aslhelpers.y - helper and option terms
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 *
50 * ASL Helper Terms
51 *
52 ******************************************************************************/
53
54 OptionalBusMasterKeyword
55 : ',' {$$ = TrCreateLeafNode (
56 PARSEOP_BUSMASTERTYPE_MASTER);}
57 | ',' PARSEOP_BUSMASTERTYPE_MASTER {$$ = TrCreateLeafNode (
58 PARSEOP_BUSMASTERTYPE_MASTER);}
59 | ',' PARSEOP_BUSMASTERTYPE_NOTMASTER {$$ = TrCreateLeafNode (
60 PARSEOP_BUSMASTERTYPE_NOTMASTER);}
61 ;
62
63 OptionalAccessAttribTerm
64 : {$$ = NULL;}
65 | ',' {$$ = NULL;}
66 | ',' ByteConstExpr {$$ = $2;}
67 | ',' AccessAttribKeyword {$$ = $2;}
68 ;
69
70 OptionalAccessSize
71 : {$$ = TrCreateValuedLeafNode (
72 PARSEOP_BYTECONST, 0);}
73 | ',' {$$ = TrCreateValuedLeafNode (
74 PARSEOP_BYTECONST, 0);}
75 | ',' ByteConstExpr {$$ = $2;}
76 ;
77
78 OptionalAddressingMode
79 : ',' {$$ = NULL;}
80 | ',' AddressingModeKeyword {$$ = $2;}
81 ;
82
83 OptionalAddressRange
84 : {$$ = NULL;}
85 | ',' {$$ = NULL;}
86 | ',' AddressKeyword {$$ = $2;}
87 ;
88
89 OptionalBitsPerByte
90 : ',' {$$ = NULL;}
91 | ',' BitsPerByteKeyword {$$ = $2;}
92 ;
93
94 OptionalBuffer_Last
95 : {$$ = NULL;}
96 | ',' {$$ = NULL;}
97 | ',' RawDataBufferTerm {$$ = $2;}
98 ;
99
100 OptionalByteConstExpr
101 : {$$ = NULL;}
102 | ',' {$$ = NULL;}
103 | ',' ByteConstExpr {$$ = $2;}
104 ;
105
106 OptionalDecodeType
107 : ',' {$$ = NULL;}
108 | ',' DecodeKeyword {$$ = $2;}
109 ;
110
111 OptionalDevicePolarity
112 : ',' {$$ = NULL;}
113 | ',' DevicePolarityKeyword {$$ = $2;}
114 ;
115
116 OptionalDWordConstExpr
117 : {$$ = NULL;}
118 | ',' {$$ = NULL;}
119 | ',' DWordConstExpr {$$ = $2;}
120 ;
121
122 OptionalEndian
123 : ',' {$$ = NULL;}
124 | ',' EndianKeyword {$$ = $2;}
125 ;
126
127 OptionalFlowControl
128 : ',' {$$ = NULL;}
129 | ',' FlowControlKeyword {$$ = $2;}
130 ;
131
132 OptionalIoRestriction
133 : ',' {$$ = NULL;}
134 | ',' IoRestrictionKeyword {$$ = $2;}
135 ;
136
137 OptionalListString
138 : {$$ = TrCreateValuedLeafNode (
139 PARSEOP_STRING_LITERAL,
140 ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */
141 | ',' {$$ = TrCreateValuedLeafNode (
142 PARSEOP_STRING_LITERAL,
143 ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */
144 | ',' TermArg {$$ = $2;}
145 ;
146
147 OptionalMaxType
148 : ',' {$$ = NULL;}
149 | ',' MaxKeyword {$$ = $2;}
150 ;
151
152 OptionalMemType
153 : ',' {$$ = NULL;}
154 | ',' MemTypeKeyword {$$ = $2;}
155 ;
156
157 OptionalMinType
158 : ',' {$$ = NULL;}
159 | ',' MinKeyword {$$ = $2;}
160 ;
161
162 OptionalNameString
163 : {$$ = NULL;}
164 | ',' {$$ = NULL;}
165 | ',' NameString {$$ = $2;}
166 ;
167
168 OptionalNameString_Last
169 : {$$ = NULL;}
170 | ',' {$$ = NULL;}
171 | ',' NameString {$$ = $2;}
172 ;
173
174 OptionalNameString_First
175 : {$$ = TrCreateLeafNode (
176 PARSEOP_ZERO);}
177 | NameString {$$ = $1;}
178 ;
179
180 OptionalObjectTypeKeyword
181 : {$$ = TrCreateLeafNode (
182 PARSEOP_OBJECTTYPE_UNK);}
183 | ',' ObjectTypeKeyword {$$ = $2;}
184 ;
185
186 OptionalParityType
187 : ',' {$$ = NULL;}
188 | ',' ParityTypeKeyword {$$ = $2;}
189 ;
190
191 OptionalQWordConstExpr
192 : {$$ = NULL;}
193 | ',' {$$ = NULL;}
194 | ',' QWordConstExpr {$$ = $2;}
195 ;
196
197 OptionalRangeType
198 : ',' {$$ = NULL;}
199 | ',' RangeTypeKeyword {$$ = $2;}
200 ;
201
202 OptionalReadWriteKeyword
203 : {$$ = TrCreateLeafNode (
204 PARSEOP_READWRITETYPE_BOTH);}
205 | PARSEOP_READWRITETYPE_BOTH {$$ = TrCreateLeafNode (
206 PARSEOP_READWRITETYPE_BOTH);}
207 | PARSEOP_READWRITETYPE_READONLY {$$ = TrCreateLeafNode (
208 PARSEOP_READWRITETYPE_READONLY);}
209 ;
210
211 OptionalResourceType_First
212 : {$$ = TrCreateLeafNode (
213 PARSEOP_RESOURCETYPE_CONSUMER);}
214 | ResourceTypeKeyword {$$ = $1;}
215 ;
216
217 OptionalResourceType
218 : {$$ = TrCreateLeafNode (
219 PARSEOP_RESOURCETYPE_CONSUMER);}
220 | ',' {$$ = TrCreateLeafNode (
221 PARSEOP_RESOURCETYPE_CONSUMER);}
222 | ',' ResourceTypeKeyword {$$ = $2;}
223 ;
224
225 OptionalSlaveMode
226 : ',' {$$ = NULL;}
227 | ',' SlaveModeKeyword {$$ = $2;}
228 ;
229
230 OptionalShareType
231 : {$$ = NULL;}
232 | ',' {$$ = NULL;}
233 | ',' ShareTypeKeyword {$$ = $2;}
234 ;
235
236 OptionalShareType_First
237 : {$$ = NULL;}
238 | ShareTypeKeyword {$$ = $1;}
239 ;
240
241 OptionalStopBits
242 : ',' {$$ = NULL;}
243 | ',' StopBitsKeyword {$$ = $2;}
244 ;
245
246 OptionalStringData
247 : {$$ = NULL;}
248 | ',' {$$ = NULL;}
249 | ',' StringData {$$ = $2;}
250 ;
251
252 OptionalTranslationType_Last
253 : {$$ = NULL;}
254 | ',' {$$ = NULL;}
255 | ',' TranslationKeyword {$$ = $2;}
256 ;
257
258 OptionalType
259 : {$$ = NULL;}
260 | ',' {$$ = NULL;}
261 | ',' TypeKeyword {$$ = $2;}
262 ;
263
264 OptionalType_Last
265 : {$$ = NULL;}
266 | ',' {$$ = NULL;}
267 | ',' TypeKeyword {$$ = $2;}
268 ;
269
270 OptionalWireMode
271 : ',' {$$ = NULL;}
272 | ',' WireModeKeyword {$$ = $2;}
273 ;
274
275 OptionalWordConstExpr
276 : ',' {$$ = NULL;}
277 | ',' WordConstExpr {$$ = $2;}
278 ;
279
280 OptionalXferSize
281 : {$$ = TrCreateValuedLeafNode (
282 PARSEOP_XFERSIZE_32, 2);}
283 | ',' {$$ = TrCreateValuedLeafNode (
284 PARSEOP_XFERSIZE_32, 2);}
285 | ',' XferSizeKeyword {$$ = $2;}
286 ;
287