1 /******************************************************************************
2  *
3  * Module Name: aslmessages.h - Compiler error/warning messages
4  *
5  *****************************************************************************/
6 
7 /*
8  * Copyright (C) 2000 - 2022, Intel Corp.
9  * All rights reserved.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions
13  * are met:
14  * 1. Redistributions of source code must retain the above copyright
15  *    notice, this list of conditions, and the following disclaimer,
16  *    without modification.
17  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18  *    substantially similar to the "NO WARRANTY" disclaimer below
19  *    ("Disclaimer") and any redistribution must be conditioned upon
20  *    including a substantially similar Disclaimer requirement for further
21  *    binary redistribution.
22  * 3. Neither the names of the above-listed copyright holders nor the names
23  *    of any contributors may be used to endorse or promote products derived
24  *    from this software without specific prior written permission.
25  *
26  * Alternatively, this software may be distributed under the terms of the
27  * GNU General Public License ("GPL") version 2 as published by the Free
28  * Software Foundation.
29  *
30  * NO WARRANTY
31  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
34  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41  * POSSIBILITY OF SUCH DAMAGES.
42  */
43 
44 #ifndef __ASLMESSAGES_H
45 #define __ASLMESSAGES_H
46 
47 /* These values must match error type string tables in aslmessages.c */
48 
49 typedef enum
50 {
51     ASL_OPTIMIZATION = 0,
52     ASL_REMARK,
53     ASL_WARNING,
54     ASL_WARNING2,
55     ASL_WARNING3,
56     ASL_ERROR,
57     ASL_NUM_REPORT_LEVELS
58 
59 } ASL_MESSAGE_TYPES;
60 
61 #define ASL_ERROR_LEVEL_LENGTH          8 /* Length of strings for types above */
62 
63 void
64 AhDecodeAslException (
65     char                    *HexString);
66 
67 /*
68  * Exception code blocks, 0 - 999
69  * Available for new exception blocks: 600 - 999
70  */
71 #define ASL_MSG_MAIN_COMPILER           0       /* 0 - 299 */
72 #define ASL_MSG_MAIN_COMPILER_END       299
73 
74 #define ASL_MSG_TABLE_COMPILER          300     /* 300 - 499 */
75 #define ASL_MSG_TABLE_COMPILER_END      499
76 
77 #define ASL_MSG_PREPROCESSOR            500     /* 500 - 599 */
78 #define ASL_MSG_PREPROCESSOR_END        599
79 
80 
81 /*
82  * Values (message IDs) for all compiler messages. There are currently
83  * three distinct blocks of error messages (so that they can be expanded
84  * individually):
85  *      Main ASL compiler
86  *      Data Table compiler
87  *      Preprocessor
88  *
89  * NOTE1: This list must match the tables of message strings in the file
90  * aslmessages.c exactly.
91  *
92  * NOTE2: With the introduction of the -vw option to disable specific
93  * messages, new messages should only be added to the end of these
94  * lists, so that values for existing messages are not disturbed.
95  */
96 typedef enum
97 {
98     ASL_MSG_RESERVED = ASL_MSG_MAIN_COMPILER,
99 
100     ASL_MSG_ALIGNMENT,
101     ASL_MSG_ALPHANUMERIC_STRING,
102     ASL_MSG_AML_NOT_IMPLEMENTED,
103     ASL_MSG_ARG_COUNT_HI,
104     ASL_MSG_ARG_COUNT_LO,
105     ASL_MSG_ARG_INIT,
106     ASL_MSG_BACKWARDS_OFFSET,
107     ASL_MSG_BUFFER_LENGTH,
108     ASL_MSG_CLOSE,
109     ASL_MSG_COMPILER_INTERNAL,
110     ASL_MSG_COMPILER_RESERVED,
111     ASL_MSG_CONNECTION_MISSING,
112     ASL_MSG_CONNECTION_INVALID,
113     ASL_MSG_CONSTANT_EVALUATION,
114     ASL_MSG_CONSTANT_FOLDED,
115     ASL_MSG_CORE_EXCEPTION,
116     ASL_MSG_DEBUG_FILE_OPEN,
117     ASL_MSG_DEBUG_FILENAME,
118     ASL_MSG_DEPENDENT_NESTING,
119     ASL_MSG_DMA_CHANNEL,
120     ASL_MSG_DMA_LIST,
121     ASL_MSG_DUPLICATE_CASE,
122     ASL_MSG_DUPLICATE_ITEM,
123     ASL_MSG_EARLY_EOF,
124     ASL_MSG_ENCODING_LENGTH,
125     ASL_MSG_EX_INTERRUPT_LIST,
126     ASL_MSG_EX_INTERRUPT_LIST_MIN,
127     ASL_MSG_EX_INTERRUPT_NUMBER,
128     ASL_MSG_FIELD_ACCESS_WIDTH,
129     ASL_MSG_FIELD_UNIT_ACCESS_WIDTH,
130     ASL_MSG_FIELD_UNIT_OFFSET,
131     ASL_MSG_GPE_NAME_CONFLICT,
132     ASL_MSG_HID_LENGTH,
133     ASL_MSG_HID_PREFIX,
134     ASL_MSG_HID_SUFFIX,
135     ASL_MSG_INCLUDE_FILE_OPEN,
136     ASL_MSG_INPUT_FILE_OPEN,
137     ASL_MSG_INTEGER_LENGTH,
138     ASL_MSG_INTEGER_OPTIMIZATION,
139     ASL_MSG_INTERRUPT_LIST,
140     ASL_MSG_INTERRUPT_NUMBER,
141     ASL_MSG_INVALID_ACCESS_SIZE,
142     ASL_MSG_INVALID_ADDR_FLAGS,
143     ASL_MSG_INVALID_CONSTANT_OP,
144     ASL_MSG_INVALID_EISAID,
145     ASL_MSG_INVALID_ESCAPE,
146     ASL_MSG_INVALID_GRAN_FIXED,
147     ASL_MSG_INVALID_GRANULARITY,
148     ASL_MSG_INVALID_LENGTH,
149     ASL_MSG_INVALID_LENGTH_FIXED,
150     ASL_MSG_INVALID_MIN_MAX,
151     ASL_MSG_INVALID_OPERAND,
152     ASL_MSG_INVALID_PERFORMANCE,
153     ASL_MSG_INVALID_PRIORITY,
154     ASL_MSG_INVALID_STRING,
155     ASL_MSG_INVALID_TARGET,
156     ASL_MSG_INVALID_TIME,
157     ASL_MSG_INVALID_TYPE,
158     ASL_MSG_INVALID_UUID,
159     ASL_MSG_ISA_ADDRESS,
160     ASL_MSG_LEADING_ASTERISK,
161     ASL_MSG_LIST_LENGTH_LONG,
162     ASL_MSG_LIST_LENGTH_SHORT,
163     ASL_MSG_LISTING_FILE_OPEN,
164     ASL_MSG_LISTING_FILENAME,
165     ASL_MSG_LOCAL_INIT,
166     ASL_MSG_LOCAL_OUTSIDE_METHOD,
167     ASL_MSG_LONG_LINE,
168     ASL_MSG_MEMORY_ALLOCATION,
169     ASL_MSG_MISSING_ENDDEPENDENT,
170     ASL_MSG_MISSING_STARTDEPENDENT,
171     ASL_MSG_MULTIPLE_DEFAULT,
172     ASL_MSG_MULTIPLE_TYPES,
173     ASL_MSG_NAME_EXISTS,
174     ASL_MSG_NAME_OPTIMIZATION,
175     ASL_MSG_NAMED_OBJECT_IN_WHILE,
176     ASL_MSG_NESTED_COMMENT,
177     ASL_MSG_NO_CASES,
178     ASL_MSG_NO_REGION,
179     ASL_MSG_NO_RETVAL,
180     ASL_MSG_NO_WHILE,
181     ASL_MSG_NON_ASCII,
182     ASL_MSG_BUFFER_FIELD_LENGTH,
183     ASL_MSG_NOT_EXIST,
184     ASL_MSG_NOT_FOUND,
185     ASL_MSG_NOT_METHOD,
186     ASL_MSG_NOT_PARAMETER,
187     ASL_MSG_NOT_REACHABLE,
188     ASL_MSG_NOT_REFERENCED,
189     ASL_MSG_NULL_DESCRIPTOR,
190     ASL_MSG_NULL_STRING,
191     ASL_MSG_OPEN,
192     ASL_MSG_OUTPUT_FILE_OPEN,
193     ASL_MSG_OUTPUT_FILENAME,
194     ASL_MSG_PACKAGE_LENGTH,
195     ASL_MSG_PREPROCESSOR_FILENAME,
196     ASL_MSG_READ,
197     ASL_MSG_RECURSION,
198     ASL_MSG_REGION_BUFFER_ACCESS,
199     ASL_MSG_REGION_BYTE_ACCESS,
200     ASL_MSG_RESERVED_ARG_COUNT_HI,
201     ASL_MSG_RESERVED_ARG_COUNT_LO,
202     ASL_MSG_RESERVED_METHOD,
203     ASL_MSG_RESERVED_NO_RETURN_VAL,
204     ASL_MSG_RESERVED_OPERAND_TYPE,
205     ASL_MSG_RESERVED_PACKAGE_LENGTH,
206     ASL_MSG_RESERVED_RETURN_VALUE,
207     ASL_MSG_RESERVED_USE,
208     ASL_MSG_RESERVED_WORD,
209     ASL_MSG_RESOURCE_FIELD,
210     ASL_MSG_RESOURCE_INDEX,
211     ASL_MSG_RESOURCE_LIST,
212     ASL_MSG_RESOURCE_SOURCE,
213     ASL_MSG_RESULT_NOT_USED,
214     ASL_MSG_RETURN_TYPES,
215     ASL_MSG_SCOPE_FWD_REF,
216     ASL_MSG_SCOPE_TYPE,
217     ASL_MSG_SEEK,
218     ASL_MSG_SERIALIZED,
219     ASL_MSG_SERIALIZED_REQUIRED,
220     ASL_MSG_SINGLE_NAME_OPTIMIZATION,
221     ASL_MSG_SOME_NO_RETVAL,
222     ASL_MSG_STRING_LENGTH,
223     ASL_MSG_SWITCH_TYPE,
224     ASL_MSG_SYNC_LEVEL,
225     ASL_MSG_SYNTAX,
226     ASL_MSG_TABLE_SIGNATURE,
227     ASL_MSG_TAG_LARGER,
228     ASL_MSG_TAG_SMALLER,
229     ASL_MSG_TIMEOUT,
230     ASL_MSG_TOO_MANY_TEMPS,
231     ASL_MSG_TRUNCATION,
232     ASL_MSG_UNKNOWN_RESERVED_NAME,
233     ASL_MSG_UNREACHABLE_CODE,
234     ASL_MSG_UNSUPPORTED,
235     ASL_MSG_UPPER_CASE,
236     ASL_MSG_VENDOR_LIST,
237     ASL_MSG_WRITE,
238     ASL_MSG_RANGE,
239     ASL_MSG_BUFFER_ALLOCATION,
240     ASL_MSG_MISSING_DEPENDENCY,
241     ASL_MSG_ILLEGAL_FORWARD_REF,
242     ASL_MSG_ILLEGAL_METHOD_REF,
243     ASL_MSG_LOCAL_NOT_USED,
244     ASL_MSG_ARG_AS_LOCAL_NOT_USED,
245     ASL_MSG_ARG_NOT_USED,
246     ASL_MSG_CONSTANT_REQUIRED,
247     ASL_MSG_CROSS_TABLE_SCOPE,
248     ASL_MSG_EXCEPTION_NOT_RECEIVED,
249     ASL_MSG_NULL_RESOURCE_TEMPLATE,
250     ASL_MSG_FOUND_HERE,
251     ASL_MSG_ILLEGAL_RECURSION,
252     ASL_MSG_DUPLICATE_INPUT_FILE,
253     ASL_MSG_WARNING_AS_ERROR,
254     ASL_MSG_OEM_TABLE_ID,
255     ASL_MSG_OEM_ID,
256     ASL_MSG_UNLOAD,
257     ASL_MSG_OFFSET,
258     ASL_MSG_LONG_SLEEP,
259     ASL_MSG_PREFIX_NOT_EXIST,
260     ASL_MSG_NAMEPATH_NOT_EXIST,
261     ASL_MSG_REGION_LENGTH,
262     ASL_MSG_TEMPORARY_OBJECT,
263     ASL_MSG_UNDEFINED_EXTERNAL,
264     ASL_MSG_BUFFER_FIELD_OVERFLOW,
265     ASL_MSG_INVALID_SPECIAL_NAME,
266     ASL_MSG_INVALID_PROCESSOR_UID,
267     ASL_MSG_LEGACY_PROCESSOR_OP,
268     ASL_MSG_NAMESTRING_LENGTH,
269     ASL_MSG_CASE_FOUND_HERE,
270     ASL_MSG_EXTERN_INVALID_RET_TYPE,
271     ASL_MSG_EXTERN_INVALID_PARAM_TYPE,
272     ASL_MSG_NAMED_OBJECT_CREATION,
273     ASL_MSG_ARG_COUNT_MISMATCH,
274     ASL_MSG_STATIC_OPREGION_IN_METHOD,
275     ASL_MSG_DECLARATION_TYPE_MISMATCH,
276     ASL_MSG_TYPE_MISMATCH_FOUND_HERE,
277     ASL_MSG_DUPLICATE_EXTERN_MISMATCH,
278     ASL_MSG_DUPLICATE_EXTERN_FOUND_HERE,
279     ASL_MSG_CONDREF_NEEDS_EXTERNAL_DECL,
280     ASL_MSG_EXTERNAL_FOUND_HERE,
281     ASL_MSG_LOWER_CASE_NAMESEG,
282     ASL_MSG_LOWER_CASE_NAMEPATH,
283     ASL_MSG_UUID_NOT_FOUND,
284     ASL_MSG_LEGACY_DDB_TYPE,
285 
286 
287     /* These messages are used by the Data Table compiler only */
288 
289     ASL_MSG_BUFFER_ELEMENT = ASL_MSG_TABLE_COMPILER,
290     ASL_MSG_DIVIDE_BY_ZERO,
291     ASL_MSG_FLAG_VALUE,
292     ASL_MSG_INTEGER_SIZE,
293     ASL_MSG_INVALID_EXPRESSION,
294     ASL_MSG_INVALID_FIELD_NAME,
295     ASL_MSG_INVALID_HEX_INTEGER,
296     ASL_MSG_OEM_TABLE,
297     ASL_MSG_RESERVED_FIELD,
298     ASL_MSG_UNKNOWN_LABEL,
299     ASL_MSG_UNKNOWN_SUBTABLE,
300     ASL_MSG_UNKNOWN_TABLE,
301     ASL_MSG_ZERO_VALUE,
302     ASL_MSG_INVALID_LABEL,
303     ASL_MSG_BUFFER_LIST,
304     ASL_MSG_ENTRY_LIST,
305     ASL_MSG_UNKNOWN_FORMAT,
306     ASL_MSG_RESERVED_VALUE,
307     ASL_MSG_TWO_ZERO_VALUES,
308     ASL_MSG_BAD_PARSE_TREE,
309 
310     /* These messages are used by the Preprocessor only */
311 
312     ASL_MSG_DIRECTIVE_SYNTAX = ASL_MSG_PREPROCESSOR,
313     ASL_MSG_ENDIF_MISMATCH,
314     ASL_MSG_ERROR_DIRECTIVE,
315     ASL_MSG_EXISTING_NAME,
316     ASL_MSG_INVALID_INVOCATION,
317     ASL_MSG_MACRO_SYNTAX,
318     ASL_MSG_TOO_MANY_ARGUMENTS,
319     ASL_MSG_UNKNOWN_DIRECTIVE,
320     ASL_MSG_UNKNOWN_PRAGMA,
321     ASL_MSG_WARNING_DIRECTIVE,
322     ASL_MSG_INCLUDE_FILE
323 
324 } ASL_MESSAGE_IDS;
325 
326 
327 #endif  /* __ASLMESSAGES_H */
328