aslcompiler.h revision 1.1.1.17 1 1.1 jruoho /******************************************************************************
2 1.1 jruoho *
3 1.1 jruoho * Module Name: aslcompiler.h - common include file for iASL
4 1.1 jruoho *
5 1.1 jruoho *****************************************************************************/
6 1.1 jruoho
7 1.1.1.2 jruoho /*
8 1.1.1.15 christos * Copyright (C) 2000 - 2018, Intel Corp.
9 1.1 jruoho * All rights reserved.
10 1.1 jruoho *
11 1.1.1.2 jruoho * Redistribution and use in source and binary forms, with or without
12 1.1.1.2 jruoho * modification, are permitted provided that the following conditions
13 1.1.1.2 jruoho * are met:
14 1.1.1.2 jruoho * 1. Redistributions of source code must retain the above copyright
15 1.1.1.2 jruoho * notice, this list of conditions, and the following disclaimer,
16 1.1.1.2 jruoho * without modification.
17 1.1.1.2 jruoho * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18 1.1.1.2 jruoho * substantially similar to the "NO WARRANTY" disclaimer below
19 1.1.1.2 jruoho * ("Disclaimer") and any redistribution must be conditioned upon
20 1.1.1.2 jruoho * including a substantially similar Disclaimer requirement for further
21 1.1.1.2 jruoho * binary redistribution.
22 1.1.1.2 jruoho * 3. Neither the names of the above-listed copyright holders nor the names
23 1.1.1.2 jruoho * of any contributors may be used to endorse or promote products derived
24 1.1.1.2 jruoho * from this software without specific prior written permission.
25 1.1 jruoho *
26 1.1.1.2 jruoho * Alternatively, this software may be distributed under the terms of the
27 1.1.1.2 jruoho * GNU General Public License ("GPL") version 2 as published by the Free
28 1.1.1.2 jruoho * Software Foundation.
29 1.1 jruoho *
30 1.1.1.2 jruoho * NO WARRANTY
31 1.1.1.2 jruoho * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32 1.1.1.2 jruoho * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33 1.1.1.2 jruoho * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34 1.1.1.2 jruoho * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35 1.1.1.2 jruoho * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36 1.1.1.2 jruoho * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37 1.1.1.2 jruoho * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38 1.1.1.2 jruoho * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39 1.1.1.2 jruoho * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40 1.1.1.2 jruoho * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41 1.1.1.2 jruoho * POSSIBILITY OF SUCH DAMAGES.
42 1.1.1.2 jruoho */
43 1.1 jruoho
44 1.1 jruoho #ifndef __ASLCOMPILER_H
45 1.1 jruoho #define __ASLCOMPILER_H
46 1.1 jruoho
47 1.1.1.2 jruoho #include "acpi.h"
48 1.1.1.2 jruoho #include "accommon.h"
49 1.1.1.2 jruoho #include "amlresrc.h"
50 1.1.1.2 jruoho #include "acdebug.h"
51 1.1 jruoho
52 1.1 jruoho /* Microsoft-specific */
53 1.1 jruoho
54 1.1 jruoho #if (defined WIN32 || defined WIN64)
55 1.1 jruoho
56 1.1 jruoho /* warn : used #pragma pack */
57 1.1 jruoho #pragma warning(disable:4103)
58 1.1 jruoho
59 1.1 jruoho /* warn : named type definition in parentheses */
60 1.1 jruoho #pragma warning(disable:4115)
61 1.1 jruoho #endif
62 1.1 jruoho
63 1.1 jruoho #include <stdio.h>
64 1.1 jruoho #include <stdlib.h>
65 1.1 jruoho #include <string.h>
66 1.1 jruoho #include <errno.h>
67 1.1 jruoho #include <ctype.h>
68 1.1 jruoho
69 1.1 jruoho /* Compiler headers */
70 1.1 jruoho
71 1.1 jruoho #include "asldefine.h"
72 1.1 jruoho #include "asltypes.h"
73 1.1.1.2 jruoho #include "aslmessages.h"
74 1.1 jruoho #include "aslglobal.h"
75 1.1.1.4 christos #include "preprocess.h"
76 1.1.1.14 christos #include "dtcompiler.h"
77 1.1 jruoho
78 1.1 jruoho
79 1.1 jruoho /*******************************************************************************
80 1.1 jruoho *
81 1.1 jruoho * Compiler prototypes
82 1.1 jruoho *
83 1.1 jruoho ******************************************************************************/
84 1.1 jruoho
85 1.1 jruoho /*
86 1.1.1.4 christos * Main ASL parser - generated from flex/bison, lex/yacc, etc.
87 1.1 jruoho */
88 1.1 jruoho ACPI_PARSE_OBJECT *
89 1.1 jruoho AslDoError (
90 1.1 jruoho void);
91 1.1 jruoho
92 1.1 jruoho int
93 1.1 jruoho AslCompilerlex(
94 1.1 jruoho void);
95 1.1 jruoho
96 1.1 jruoho void
97 1.1.1.4 christos AslResetCurrentLineBuffer (
98 1.1 jruoho void);
99 1.1 jruoho
100 1.1 jruoho void
101 1.1.1.4 christos AslInsertLineBuffer (
102 1.1 jruoho int SourceChar);
103 1.1 jruoho
104 1.1 jruoho int
105 1.1 jruoho AslPopInputFileStack (
106 1.1 jruoho void);
107 1.1 jruoho
108 1.1 jruoho void
109 1.1 jruoho AslPushInputFileStack (
110 1.1 jruoho FILE *InputFile,
111 1.1 jruoho char *Filename);
112 1.1 jruoho
113 1.1.1.5 christos void
114 1.1.1.5 christos AslParserCleanup (
115 1.1.1.5 christos void);
116 1.1.1.5 christos
117 1.1.1.5 christos
118 1.1 jruoho /*
119 1.1.1.2 jruoho * aslstartup - entered from main()
120 1.1 jruoho */
121 1.1.1.2 jruoho void
122 1.1.1.2 jruoho AslInitializeGlobals (
123 1.1.1.2 jruoho void);
124 1.1.1.2 jruoho
125 1.1.1.2 jruoho typedef
126 1.1.1.2 jruoho ACPI_STATUS (*ASL_PATHNAME_CALLBACK) (
127 1.1.1.2 jruoho char *);
128 1.1.1.2 jruoho
129 1.1 jruoho ACPI_STATUS
130 1.1 jruoho AslDoOneFile (
131 1.1 jruoho char *Filename);
132 1.1 jruoho
133 1.1.1.4 christos ACPI_STATUS
134 1.1.1.4 christos AslCheckForErrorExit (
135 1.1.1.4 christos void);
136 1.1.1.4 christos
137 1.1.1.4 christos
138 1.1 jruoho /*
139 1.1 jruoho * aslcompile - compile mainline
140 1.1 jruoho */
141 1.1 jruoho void
142 1.1 jruoho AslCompilerSignon (
143 1.1 jruoho UINT32 FileId);
144 1.1 jruoho
145 1.1 jruoho void
146 1.1 jruoho AslCompilerFileHeader (
147 1.1 jruoho UINT32 FileId);
148 1.1 jruoho
149 1.1 jruoho int
150 1.1 jruoho CmDoCompile (
151 1.1 jruoho void);
152 1.1 jruoho
153 1.1 jruoho void
154 1.1 jruoho CmDoOutputFiles (
155 1.1 jruoho void);
156 1.1 jruoho
157 1.1 jruoho void
158 1.1 jruoho CmCleanupAndExit (
159 1.1 jruoho void);
160 1.1 jruoho
161 1.1.1.14 christos
162 1.1.1.14 christos /*
163 1.1.1.14 christos * aslallocate - memory allocation
164 1.1.1.14 christos */
165 1.1.1.14 christos void *
166 1.1.1.14 christos UtLocalCalloc (
167 1.1.1.14 christos UINT32 Size);
168 1.1.1.14 christos
169 1.1.1.14 christos void
170 1.1.1.14 christos UtExpandLineBuffers (
171 1.1.1.14 christos void);
172 1.1.1.14 christos
173 1.1.1.14 christos void
174 1.1.1.14 christos UtReallocLineBuffers (
175 1.1.1.14 christos char **Buffer,
176 1.1.1.14 christos UINT32 OldSize,
177 1.1.1.14 christos UINT32 NewSize);
178 1.1.1.14 christos
179 1.1.1.14 christos void
180 1.1.1.14 christos UtFreeLineBuffers (
181 1.1.1.14 christos void);
182 1.1.1.14 christos
183 1.1.1.14 christos
184 1.1.1.14 christos /*
185 1.1.1.14 christos * aslcache - local cache support
186 1.1.1.14 christos */
187 1.1.1.14 christos char *
188 1.1.1.14 christos UtLocalCacheCalloc (
189 1.1.1.14 christos UINT32 Length);
190 1.1.1.14 christos
191 1.1.1.14 christos ACPI_PARSE_OBJECT *
192 1.1.1.14 christos UtParseOpCacheCalloc (
193 1.1.1.14 christos void);
194 1.1.1.14 christos
195 1.1.1.14 christos DT_SUBTABLE *
196 1.1.1.14 christos UtSubtableCacheCalloc (
197 1.1.1.14 christos void);
198 1.1.1.14 christos
199 1.1.1.14 christos DT_FIELD *
200 1.1.1.14 christos UtFieldCacheCalloc (
201 1.1.1.14 christos void);
202 1.1.1.14 christos
203 1.1.1.5 christos void
204 1.1.1.14 christos UtDeleteLocalCaches (
205 1.1.1.5 christos void);
206 1.1.1.5 christos
207 1.1.1.5 christos
208 1.1.1.5 christos /*
209 1.1.1.5 christos * aslascii - ascii support
210 1.1.1.5 christos */
211 1.1 jruoho ACPI_STATUS
212 1.1.1.8 christos FlIsFileAsciiSource (
213 1.1.1.4 christos char *Filename,
214 1.1.1.4 christos BOOLEAN DisplayErrors);
215 1.1 jruoho
216 1.1 jruoho
217 1.1 jruoho /*
218 1.1.1.2 jruoho * aslwalks - semantic analysis and parse tree walks
219 1.1 jruoho */
220 1.1 jruoho ACPI_STATUS
221 1.1 jruoho AnOtherSemanticAnalysisWalkBegin (
222 1.1 jruoho ACPI_PARSE_OBJECT *Op,
223 1.1 jruoho UINT32 Level,
224 1.1 jruoho void *Context);
225 1.1 jruoho
226 1.1 jruoho ACPI_STATUS
227 1.1 jruoho AnOtherSemanticAnalysisWalkEnd (
228 1.1 jruoho ACPI_PARSE_OBJECT *Op,
229 1.1 jruoho UINT32 Level,
230 1.1 jruoho void *Context);
231 1.1 jruoho
232 1.1 jruoho ACPI_STATUS
233 1.1 jruoho AnOperandTypecheckWalkEnd (
234 1.1 jruoho ACPI_PARSE_OBJECT *Op,
235 1.1 jruoho UINT32 Level,
236 1.1 jruoho void *Context);
237 1.1 jruoho
238 1.1 jruoho ACPI_STATUS
239 1.1.1.4 christos AnMethodTypingWalkEnd (
240 1.1 jruoho ACPI_PARSE_OBJECT *Op,
241 1.1 jruoho UINT32 Level,
242 1.1 jruoho void *Context);
243 1.1 jruoho
244 1.1.1.4 christos
245 1.1.1.4 christos /*
246 1.1.1.4 christos * aslmethod - Control method analysis walk
247 1.1.1.4 christos */
248 1.1 jruoho ACPI_STATUS
249 1.1.1.4 christos MtMethodAnalysisWalkBegin (
250 1.1 jruoho ACPI_PARSE_OBJECT *Op,
251 1.1 jruoho UINT32 Level,
252 1.1 jruoho void *Context);
253 1.1 jruoho
254 1.1 jruoho ACPI_STATUS
255 1.1.1.4 christos MtMethodAnalysisWalkEnd (
256 1.1 jruoho ACPI_PARSE_OBJECT *Op,
257 1.1 jruoho UINT32 Level,
258 1.1 jruoho void *Context);
259 1.1 jruoho
260 1.1.1.2 jruoho
261 1.1.1.2 jruoho /*
262 1.1.1.2 jruoho * aslbtypes - bitfield data types
263 1.1.1.2 jruoho */
264 1.1.1.2 jruoho UINT32
265 1.1.1.2 jruoho AnMapObjTypeToBtype (
266 1.1.1.2 jruoho ACPI_PARSE_OBJECT *Op);
267 1.1.1.2 jruoho
268 1.1.1.2 jruoho UINT32
269 1.1.1.2 jruoho AnMapArgTypeToBtype (
270 1.1.1.2 jruoho UINT32 ArgType);
271 1.1.1.2 jruoho
272 1.1.1.2 jruoho UINT32
273 1.1.1.2 jruoho AnGetBtype (
274 1.1.1.2 jruoho ACPI_PARSE_OBJECT *Op);
275 1.1.1.2 jruoho
276 1.1.1.2 jruoho void
277 1.1.1.2 jruoho AnFormatBtype (
278 1.1.1.2 jruoho char *Buffer,
279 1.1.1.2 jruoho UINT32 Btype);
280 1.1.1.2 jruoho
281 1.1.1.2 jruoho
282 1.1.1.2 jruoho /*
283 1.1.1.2 jruoho * aslanalyze - Support functions for parse tree walks
284 1.1.1.2 jruoho */
285 1.1.1.2 jruoho void
286 1.1.1.2 jruoho AnCheckId (
287 1.1 jruoho ACPI_PARSE_OBJECT *Op,
288 1.1.1.2 jruoho ACPI_NAME Type);
289 1.1.1.2 jruoho
290 1.1.1.2 jruoho /* Values for Type argument above */
291 1.1.1.2 jruoho
292 1.1.1.2 jruoho #define ASL_TYPE_HID 0
293 1.1.1.2 jruoho #define ASL_TYPE_CID 1
294 1.1.1.2 jruoho
295 1.1.1.2 jruoho BOOLEAN
296 1.1.1.2 jruoho AnIsInternalMethod (
297 1.1.1.2 jruoho ACPI_PARSE_OBJECT *Op);
298 1.1.1.2 jruoho
299 1.1.1.2 jruoho UINT32
300 1.1.1.2 jruoho AnGetInternalMethodReturnType (
301 1.1.1.2 jruoho ACPI_PARSE_OBJECT *Op);
302 1.1.1.2 jruoho
303 1.1.1.2 jruoho BOOLEAN
304 1.1.1.2 jruoho AnLastStatementIsReturn (
305 1.1.1.2 jruoho ACPI_PARSE_OBJECT *Op);
306 1.1.1.2 jruoho
307 1.1.1.2 jruoho void
308 1.1.1.2 jruoho AnCheckMethodReturnValue (
309 1.1.1.2 jruoho ACPI_PARSE_OBJECT *Op,
310 1.1.1.2 jruoho const ACPI_OPCODE_INFO *OpInfo,
311 1.1.1.2 jruoho ACPI_PARSE_OBJECT *ArgOp,
312 1.1.1.2 jruoho UINT32 RequiredBtypes,
313 1.1.1.2 jruoho UINT32 ThisNodeBtype);
314 1.1.1.2 jruoho
315 1.1.1.2 jruoho BOOLEAN
316 1.1.1.2 jruoho AnIsResultUsed (
317 1.1.1.2 jruoho ACPI_PARSE_OBJECT *Op);
318 1.1.1.2 jruoho
319 1.1.1.2 jruoho void
320 1.1.1.2 jruoho ApCheckForGpeNameConflict (
321 1.1.1.2 jruoho ACPI_PARSE_OBJECT *Op);
322 1.1 jruoho
323 1.1.1.3 jruoho void
324 1.1.1.3 jruoho ApCheckRegMethod (
325 1.1.1.3 jruoho ACPI_PARSE_OBJECT *Op);
326 1.1.1.3 jruoho
327 1.1.1.5 christos BOOLEAN
328 1.1.1.5 christos ApFindNameInScope (
329 1.1.1.5 christos char *Name,
330 1.1.1.5 christos ACPI_PARSE_OBJECT *Op);
331 1.1.1.5 christos
332 1.1.1.9 christos BOOLEAN
333 1.1.1.9 christos ApFindNameInDeviceTree (
334 1.1.1.9 christos char *Name,
335 1.1.1.9 christos ACPI_PARSE_OBJECT *Op);
336 1.1 jruoho
337 1.1 jruoho /*
338 1.1 jruoho * aslerror - error handling/reporting
339 1.1 jruoho */
340 1.1 jruoho void
341 1.1.1.5 christos AslAbort (
342 1.1.1.5 christos void);
343 1.1.1.5 christos
344 1.1.1.5 christos void
345 1.1.1.14 christos AslDualParseOpError (
346 1.1.1.14 christos UINT8 Level,
347 1.1.1.14 christos UINT16 MainMessageId,
348 1.1.1.14 christos ACPI_PARSE_OBJECT *MainOp,
349 1.1.1.14 christos char *MainMessage,
350 1.1.1.14 christos UINT16 SecondMessageId,
351 1.1.1.14 christos ACPI_PARSE_OBJECT *SecondOp,
352 1.1.1.14 christos char *SecondaryMessage);
353 1.1.1.14 christos
354 1.1.1.14 christos void
355 1.1 jruoho AslError (
356 1.1 jruoho UINT8 Level,
357 1.1.1.5 christos UINT16 MessageId,
358 1.1 jruoho ACPI_PARSE_OBJECT *Op,
359 1.1 jruoho char *ExtraMessage);
360 1.1 jruoho
361 1.1.1.13 christos void
362 1.1.1.13 christos AslCheckExpectedExceptions (
363 1.1.1.13 christos void);
364 1.1.1.13 christos
365 1.1.1.13 christos ACPI_STATUS
366 1.1.1.13 christos AslExpectException (
367 1.1.1.13 christos char *MessageIdString);
368 1.1.1.13 christos
369 1.1.1.4 christos ACPI_STATUS
370 1.1.1.17 christos AslElevateException (
371 1.1.1.17 christos char *MessageIdString);
372 1.1.1.17 christos
373 1.1.1.17 christos ACPI_STATUS
374 1.1.1.4 christos AslDisableException (
375 1.1.1.4 christos char *MessageIdString);
376 1.1.1.4 christos
377 1.1.1.4 christos BOOLEAN
378 1.1.1.13 christos AslIsExceptionIgnored (
379 1.1.1.4 christos UINT8 Level,
380 1.1.1.5 christos UINT16 MessageId);
381 1.1.1.4 christos
382 1.1 jruoho void
383 1.1 jruoho AslCoreSubsystemError (
384 1.1 jruoho ACPI_PARSE_OBJECT *Op,
385 1.1 jruoho ACPI_STATUS Status,
386 1.1 jruoho char *ExtraMessage,
387 1.1 jruoho BOOLEAN Abort);
388 1.1 jruoho
389 1.1 jruoho int
390 1.1 jruoho AslCompilererror(
391 1.1.1.3 jruoho const char *s);
392 1.1 jruoho
393 1.1 jruoho void
394 1.1 jruoho AslCommonError (
395 1.1 jruoho UINT8 Level,
396 1.1.1.5 christos UINT16 MessageId,
397 1.1 jruoho UINT32 CurrentLineNumber,
398 1.1 jruoho UINT32 LogicalLineNumber,
399 1.1 jruoho UINT32 LogicalByteOffset,
400 1.1 jruoho UINT32 Column,
401 1.1 jruoho char *Filename,
402 1.1 jruoho char *ExtraMessage);
403 1.1 jruoho
404 1.1 jruoho void
405 1.1.1.4 christos AslCommonError2 (
406 1.1.1.4 christos UINT8 Level,
407 1.1.1.5 christos UINT16 MessageId,
408 1.1.1.4 christos UINT32 LineNumber,
409 1.1.1.4 christos UINT32 Column,
410 1.1.1.4 christos char *SourceLine,
411 1.1.1.4 christos char *Filename,
412 1.1.1.4 christos char *ExtraMessage);
413 1.1.1.4 christos
414 1.1.1.4 christos void
415 1.1 jruoho AePrintException (
416 1.1 jruoho UINT32 FileId,
417 1.1 jruoho ASL_ERROR_MSG *Enode,
418 1.1 jruoho char *Header);
419 1.1 jruoho
420 1.1 jruoho void
421 1.1 jruoho AePrintErrorLog (
422 1.1 jruoho UINT32 FileId);
423 1.1 jruoho
424 1.1 jruoho void
425 1.1 jruoho AeClearErrorLog (
426 1.1 jruoho void);
427 1.1 jruoho
428 1.1 jruoho
429 1.1 jruoho /*
430 1.1 jruoho * asllisting - generate all "listing" type files
431 1.1 jruoho */
432 1.1 jruoho void
433 1.1 jruoho LsDoListings (
434 1.1 jruoho void);
435 1.1 jruoho
436 1.1 jruoho void
437 1.1 jruoho LsWriteNodeToAsmListing (
438 1.1 jruoho ACPI_PARSE_OBJECT *Op);
439 1.1 jruoho
440 1.1 jruoho void
441 1.1 jruoho LsWriteNode (
442 1.1 jruoho ACPI_PARSE_OBJECT *Op,
443 1.1 jruoho UINT32 FileId);
444 1.1 jruoho
445 1.1 jruoho void
446 1.1.1.4 christos LsDumpParseTree (
447 1.1 jruoho void);
448 1.1 jruoho
449 1.1.1.4 christos
450 1.1.1.4 christos /*
451 1.1.1.4 christos * asllistsup - Listing file support utilities
452 1.1.1.4 christos */
453 1.1 jruoho void
454 1.1.1.4 christos LsDumpAscii (
455 1.1.1.4 christos UINT32 FileId,
456 1.1.1.4 christos UINT32 Count,
457 1.1.1.4 christos UINT8 *Buffer);
458 1.1.1.4 christos
459 1.1.1.4 christos void
460 1.1.1.4 christos LsDumpAsciiInComment (
461 1.1.1.4 christos UINT32 FileId,
462 1.1.1.4 christos UINT32 Count,
463 1.1.1.4 christos UINT8 *Buffer);
464 1.1.1.4 christos
465 1.1.1.4 christos void
466 1.1.1.4 christos LsCheckException (
467 1.1.1.4 christos UINT32 LineNumber,
468 1.1.1.4 christos UINT32 FileId);
469 1.1.1.4 christos
470 1.1.1.4 christos void
471 1.1.1.4 christos LsFlushListingBuffer (
472 1.1.1.4 christos UINT32 FileId);
473 1.1.1.4 christos
474 1.1.1.4 christos void
475 1.1.1.4 christos LsWriteListingHexBytes (
476 1.1.1.4 christos UINT8 *Buffer,
477 1.1.1.4 christos UINT32 Length,
478 1.1.1.4 christos UINT32 FileId);
479 1.1.1.4 christos
480 1.1.1.4 christos void
481 1.1.1.4 christos LsWriteSourceLines (
482 1.1.1.4 christos UINT32 ToLineNumber,
483 1.1.1.4 christos UINT32 ToLogicalLineNumber,
484 1.1.1.4 christos UINT32 FileId);
485 1.1.1.4 christos
486 1.1.1.4 christos UINT32
487 1.1.1.4 christos LsWriteOneSourceLine (
488 1.1.1.4 christos UINT32 FileId);
489 1.1.1.4 christos
490 1.1.1.4 christos void
491 1.1.1.4 christos LsPushNode (
492 1.1.1.4 christos char *Filename);
493 1.1.1.4 christos
494 1.1.1.4 christos ASL_LISTING_NODE *
495 1.1.1.4 christos LsPopNode (
496 1.1.1.4 christos void);
497 1.1.1.4 christos
498 1.1.1.4 christos
499 1.1.1.4 christos /*
500 1.1.1.4 christos * aslhex - generate all "hex" output files (C, ASM, ASL)
501 1.1.1.4 christos */
502 1.1.1.4 christos void
503 1.1.1.4 christos HxDoHexOutput (
504 1.1 jruoho void);
505 1.1 jruoho
506 1.1.1.4 christos
507 1.1 jruoho /*
508 1.1 jruoho * aslfold - constant folding
509 1.1 jruoho */
510 1.1 jruoho ACPI_STATUS
511 1.1 jruoho OpcAmlConstantWalk (
512 1.1 jruoho ACPI_PARSE_OBJECT *Op,
513 1.1 jruoho UINT32 Level,
514 1.1 jruoho void *Context);
515 1.1 jruoho
516 1.1 jruoho
517 1.1 jruoho /*
518 1.1.1.5 christos * aslmessages - exception strings
519 1.1.1.5 christos */
520 1.1.1.5 christos const char *
521 1.1.1.5 christos AeDecodeMessageId (
522 1.1.1.5 christos UINT16 MessageId);
523 1.1.1.5 christos
524 1.1.1.5 christos const char *
525 1.1.1.5 christos AeDecodeExceptionLevel (
526 1.1.1.5 christos UINT8 Level);
527 1.1.1.5 christos
528 1.1.1.5 christos UINT16
529 1.1.1.5 christos AeBuildFullExceptionCode (
530 1.1.1.5 christos UINT8 Level,
531 1.1.1.5 christos UINT16 MessageId);
532 1.1.1.5 christos
533 1.1.1.5 christos /*
534 1.1.1.4 christos * asloffset - generate C offset file for BIOS support
535 1.1.1.4 christos */
536 1.1.1.4 christos ACPI_STATUS
537 1.1.1.4 christos LsAmlOffsetWalk (
538 1.1.1.4 christos ACPI_PARSE_OBJECT *Op,
539 1.1.1.4 christos UINT32 Level,
540 1.1.1.4 christos void *Context);
541 1.1.1.4 christos
542 1.1.1.4 christos void
543 1.1.1.4 christos LsDoOffsetTableHeader (
544 1.1.1.4 christos UINT32 FileId);
545 1.1.1.4 christos
546 1.1.1.4 christos void
547 1.1.1.4 christos LsDoOffsetTableFooter (
548 1.1.1.4 christos UINT32 FileId);
549 1.1.1.4 christos
550 1.1.1.4 christos
551 1.1.1.4 christos /*
552 1.1 jruoho * aslopcodes - generate AML opcodes
553 1.1 jruoho */
554 1.1 jruoho ACPI_STATUS
555 1.1 jruoho OpcAmlOpcodeWalk (
556 1.1 jruoho ACPI_PARSE_OBJECT *Op,
557 1.1 jruoho UINT32 Level,
558 1.1 jruoho void *Context);
559 1.1 jruoho
560 1.1 jruoho ACPI_STATUS
561 1.1 jruoho OpcAmlOpcodeUpdateWalk (
562 1.1 jruoho ACPI_PARSE_OBJECT *Op,
563 1.1 jruoho UINT32 Level,
564 1.1 jruoho void *Context);
565 1.1 jruoho
566 1.1 jruoho void
567 1.1 jruoho OpcGenerateAmlOpcode (
568 1.1 jruoho ACPI_PARSE_OBJECT *Op);
569 1.1 jruoho
570 1.1 jruoho UINT32
571 1.1 jruoho OpcSetOptimalIntegerSize (
572 1.1 jruoho ACPI_PARSE_OBJECT *Op);
573 1.1 jruoho
574 1.1 jruoho void
575 1.1 jruoho OpcGetIntegerWidth (
576 1.1 jruoho ACPI_PARSE_OBJECT *Op);
577 1.1 jruoho
578 1.1 jruoho
579 1.1 jruoho /*
580 1.1 jruoho * asloperands - generate AML operands for the AML opcodes
581 1.1 jruoho */
582 1.1 jruoho ACPI_PARSE_OBJECT *
583 1.1 jruoho UtGetArg (
584 1.1 jruoho ACPI_PARSE_OBJECT *Op,
585 1.1 jruoho UINT32 Argn);
586 1.1 jruoho
587 1.1 jruoho void
588 1.1 jruoho OpnGenerateAmlOperands (
589 1.1 jruoho ACPI_PARSE_OBJECT *Op);
590 1.1 jruoho
591 1.1 jruoho void
592 1.1 jruoho OpnDoPackage (
593 1.1 jruoho ACPI_PARSE_OBJECT *Op);
594 1.1 jruoho
595 1.1 jruoho
596 1.1 jruoho /*
597 1.1 jruoho * aslopt - optmization
598 1.1 jruoho */
599 1.1 jruoho void
600 1.1 jruoho OptOptimizeNamePath (
601 1.1 jruoho ACPI_PARSE_OBJECT *Op,
602 1.1 jruoho UINT32 Flags,
603 1.1 jruoho ACPI_WALK_STATE *WalkState,
604 1.1 jruoho char *AmlNameString,
605 1.1 jruoho ACPI_NAMESPACE_NODE *TargetNode);
606 1.1 jruoho
607 1.1 jruoho
608 1.1 jruoho /*
609 1.1.1.9 christos * aslpld - ToPLD macro support
610 1.1.1.9 christos */
611 1.1.1.9 christos void
612 1.1.1.9 christos OpcDoPld (
613 1.1.1.9 christos ACPI_PARSE_OBJECT *Op);
614 1.1.1.9 christos
615 1.1.1.9 christos
616 1.1.1.9 christos /*
617 1.1.1.6 christos * aslprintf - Printf/Fprintf macros
618 1.1.1.6 christos */
619 1.1.1.6 christos void
620 1.1.1.6 christos OpcDoPrintf (
621 1.1.1.6 christos ACPI_PARSE_OBJECT *Op);
622 1.1.1.6 christos
623 1.1.1.6 christos void
624 1.1.1.6 christos OpcDoFprintf (
625 1.1.1.6 christos ACPI_PARSE_OBJECT *Op);
626 1.1.1.6 christos
627 1.1.1.6 christos
628 1.1.1.6 christos /*
629 1.1.1.6 christos * aslprune - parse tree pruner
630 1.1.1.6 christos */
631 1.1.1.6 christos void
632 1.1.1.6 christos AslPruneParseTree (
633 1.1.1.6 christos UINT32 PruneDepth,
634 1.1.1.6 christos UINT32 Type);
635 1.1.1.6 christos
636 1.1.1.6 christos
637 1.1.1.6 christos /*
638 1.1 jruoho * aslcodegen - code generation
639 1.1 jruoho */
640 1.1 jruoho void
641 1.1 jruoho CgGenerateAmlOutput (
642 1.1 jruoho void);
643 1.1 jruoho
644 1.1.1.12 christos void
645 1.1.1.12 christos CgLocalWriteAmlData (
646 1.1.1.12 christos ACPI_PARSE_OBJECT *Op,
647 1.1.1.12 christos void *Buffer,
648 1.1.1.12 christos UINT32 Length);
649 1.1.1.12 christos
650 1.1 jruoho
651 1.1 jruoho /*
652 1.1 jruoho * aslfile
653 1.1 jruoho */
654 1.1 jruoho void
655 1.1 jruoho FlOpenFile (
656 1.1 jruoho UINT32 FileId,
657 1.1 jruoho char *Filename,
658 1.1 jruoho char *Mode);
659 1.1 jruoho
660 1.1 jruoho
661 1.1 jruoho /*
662 1.1 jruoho * asllength - calculate/adjust AML package lengths
663 1.1 jruoho */
664 1.1 jruoho ACPI_STATUS
665 1.1 jruoho LnPackageLengthWalk (
666 1.1 jruoho ACPI_PARSE_OBJECT *Op,
667 1.1 jruoho UINT32 Level,
668 1.1 jruoho void *Context);
669 1.1 jruoho
670 1.1 jruoho ACPI_STATUS
671 1.1 jruoho LnInitLengthsWalk (
672 1.1 jruoho ACPI_PARSE_OBJECT *Op,
673 1.1 jruoho UINT32 Level,
674 1.1 jruoho void *Context);
675 1.1 jruoho
676 1.1 jruoho void
677 1.1 jruoho CgGenerateAmlLengths (
678 1.1 jruoho ACPI_PARSE_OBJECT *Op);
679 1.1 jruoho
680 1.1 jruoho
681 1.1 jruoho /*
682 1.1 jruoho * aslmap - opcode mappings and reserved method names
683 1.1 jruoho */
684 1.1 jruoho ACPI_OBJECT_TYPE
685 1.1 jruoho AslMapNamedOpcodeToDataType (
686 1.1 jruoho UINT16 Opcode);
687 1.1 jruoho
688 1.1 jruoho
689 1.1 jruoho /*
690 1.1 jruoho * aslpredef - ACPI predefined names support
691 1.1 jruoho */
692 1.1.1.3 jruoho BOOLEAN
693 1.1 jruoho ApCheckForPredefinedMethod (
694 1.1 jruoho ACPI_PARSE_OBJECT *Op,
695 1.1 jruoho ASL_METHOD_INFO *MethodInfo);
696 1.1 jruoho
697 1.1 jruoho void
698 1.1 jruoho ApCheckPredefinedReturnValue (
699 1.1 jruoho ACPI_PARSE_OBJECT *Op,
700 1.1 jruoho ASL_METHOD_INFO *MethodInfo);
701 1.1 jruoho
702 1.1 jruoho UINT32
703 1.1 jruoho ApCheckForPredefinedName (
704 1.1 jruoho ACPI_PARSE_OBJECT *Op,
705 1.1 jruoho char *Name);
706 1.1 jruoho
707 1.1 jruoho void
708 1.1 jruoho ApCheckForPredefinedObject (
709 1.1 jruoho ACPI_PARSE_OBJECT *Op,
710 1.1 jruoho char *Name);
711 1.1 jruoho
712 1.1.1.4 christos ACPI_STATUS
713 1.1.1.4 christos ApCheckObjectType (
714 1.1.1.4 christos const char *PredefinedName,
715 1.1.1.4 christos ACPI_PARSE_OBJECT *Op,
716 1.1.1.4 christos UINT32 ExpectedBtypes,
717 1.1.1.4 christos UINT32 PackageIndex);
718 1.1.1.4 christos
719 1.1 jruoho void
720 1.1 jruoho ApDisplayReservedNames (
721 1.1 jruoho void);
722 1.1 jruoho
723 1.1 jruoho
724 1.1 jruoho /*
725 1.1.1.4 christos * aslprepkg - ACPI predefined names support for packages
726 1.1.1.4 christos */
727 1.1.1.4 christos void
728 1.1.1.4 christos ApCheckPackage (
729 1.1.1.4 christos ACPI_PARSE_OBJECT *ParentOp,
730 1.1.1.4 christos const ACPI_PREDEFINED_INFO *Predefined);
731 1.1.1.4 christos
732 1.1.1.4 christos
733 1.1.1.4 christos /*
734 1.1 jruoho * asltransform - parse tree transformations
735 1.1 jruoho */
736 1.1 jruoho ACPI_STATUS
737 1.1.1.9 christos TrAmlTransformWalkBegin (
738 1.1.1.9 christos ACPI_PARSE_OBJECT *Op,
739 1.1.1.9 christos UINT32 Level,
740 1.1.1.9 christos void *Context);
741 1.1.1.9 christos
742 1.1.1.9 christos ACPI_STATUS
743 1.1.1.9 christos TrAmlTransformWalkEnd (
744 1.1 jruoho ACPI_PARSE_OBJECT *Op,
745 1.1 jruoho UINT32 Level,
746 1.1 jruoho void *Context);
747 1.1 jruoho
748 1.1 jruoho
749 1.1 jruoho /*
750 1.1.1.9 christos * aslexternal - External opcode support
751 1.1.1.9 christos */
752 1.1.1.9 christos ACPI_STATUS
753 1.1.1.9 christos ExAmlExternalWalkBegin (
754 1.1.1.9 christos ACPI_PARSE_OBJECT *Op,
755 1.1.1.9 christos UINT32 Level,
756 1.1.1.9 christos void *Context);
757 1.1.1.9 christos
758 1.1.1.9 christos ACPI_STATUS
759 1.1.1.9 christos ExAmlExternalWalkEnd (
760 1.1.1.9 christos ACPI_PARSE_OBJECT *Op,
761 1.1.1.9 christos UINT32 Level,
762 1.1.1.9 christos void *Context);
763 1.1.1.9 christos
764 1.1.1.9 christos void
765 1.1.1.9 christos ExDoExternal (
766 1.1.1.9 christos ACPI_PARSE_OBJECT *Op);
767 1.1.1.9 christos
768 1.1 jruoho /* Values for "Visitation" parameter above */
769 1.1 jruoho
770 1.1 jruoho #define ASL_WALK_VISIT_DOWNWARD 0x01
771 1.1 jruoho #define ASL_WALK_VISIT_UPWARD 0x02
772 1.1 jruoho #define ASL_WALK_VISIT_TWICE (ASL_WALK_VISIT_DOWNWARD | ASL_WALK_VISIT_UPWARD)
773 1.1 jruoho
774 1.1 jruoho
775 1.1.1.13 christos /*
776 1.1.1.13 christos * aslparseop.c - Parse op create/allocate/cache
777 1.1.1.13 christos */
778 1.1 jruoho ACPI_PARSE_OBJECT *
779 1.1.1.13 christos TrCreateOp (
780 1.1 jruoho UINT32 ParseOpcode,
781 1.1 jruoho UINT32 NumChildren,
782 1.1 jruoho ...);
783 1.1 jruoho
784 1.1 jruoho ACPI_PARSE_OBJECT *
785 1.1.1.13 christos TrCreateLeafOp (
786 1.1 jruoho UINT32 ParseOpcode);
787 1.1 jruoho
788 1.1 jruoho ACPI_PARSE_OBJECT *
789 1.1.1.13 christos TrCreateNullTargetOp (
790 1.1.1.6 christos void);
791 1.1.1.6 christos
792 1.1.1.6 christos ACPI_PARSE_OBJECT *
793 1.1.1.13 christos TrCreateAssignmentOp (
794 1.1.1.6 christos ACPI_PARSE_OBJECT *Target,
795 1.1.1.6 christos ACPI_PARSE_OBJECT *Source);
796 1.1.1.6 christos
797 1.1.1.6 christos ACPI_PARSE_OBJECT *
798 1.1.1.13 christos TrCreateTargetOp (
799 1.1.1.6 christos ACPI_PARSE_OBJECT *OriginalOp,
800 1.1.1.6 christos ACPI_PARSE_OBJECT *ParentOp);
801 1.1.1.6 christos
802 1.1.1.6 christos ACPI_PARSE_OBJECT *
803 1.1.1.13 christos TrCreateValuedLeafOp (
804 1.1 jruoho UINT32 ParseOpcode,
805 1.1 jruoho UINT64 Value);
806 1.1 jruoho
807 1.1 jruoho ACPI_PARSE_OBJECT *
808 1.1.1.13 christos TrCreateConstantLeafOp (
809 1.1.1.2 jruoho UINT32 ParseOpcode);
810 1.1.1.2 jruoho
811 1.1.1.2 jruoho ACPI_PARSE_OBJECT *
812 1.1.1.13 christos TrAllocateOp (
813 1.1.1.13 christos UINT32 ParseOpcode);
814 1.1.1.13 christos
815 1.1.1.13 christos void
816 1.1.1.13 christos TrPrintOpFlags (
817 1.1.1.13 christos UINT32 Flags,
818 1.1.1.13 christos UINT32 OutputLevel);
819 1.1.1.13 christos
820 1.1.1.13 christos
821 1.1.1.13 christos /*
822 1.1.1.13 christos * asltree.c - Parse tree management
823 1.1.1.13 christos */
824 1.1.1.13 christos void
825 1.1.1.13 christos TrSetOpParent (
826 1.1 jruoho ACPI_PARSE_OBJECT *Op,
827 1.1.1.13 christos ACPI_PARSE_OBJECT *ParentOp);
828 1.1.1.13 christos
829 1.1.1.13 christos ACPI_PARSE_OBJECT *
830 1.1.1.13 christos TrSetOpIntegerValue (
831 1.1.1.13 christos UINT32 ParseOpcode,
832 1.1.1.13 christos ACPI_PARSE_OBJECT *Op);
833 1.1 jruoho
834 1.1 jruoho void
835 1.1.1.13 christos TrSetOpEndLineNumber (
836 1.1 jruoho ACPI_PARSE_OBJECT *Op);
837 1.1 jruoho
838 1.1 jruoho void
839 1.1.1.13 christos TrSetOpCurrentFilename (
840 1.1.1.8 christos ACPI_PARSE_OBJECT *Op);
841 1.1.1.8 christos
842 1.1.1.8 christos void
843 1.1.1.13 christos TrSetOpIntegerWidth (
844 1.1.1.13 christos ACPI_PARSE_OBJECT *TableSignature,
845 1.1.1.13 christos ACPI_PARSE_OBJECT *Revision);
846 1.1.1.13 christos
847 1.1.1.13 christos ACPI_PARSE_OBJECT *
848 1.1.1.13 christos TrLinkOpChildren (
849 1.1.1.13 christos ACPI_PARSE_OBJECT *Op,
850 1.1.1.13 christos UINT32 NumChildren,
851 1.1.1.13 christos ...);
852 1.1 jruoho
853 1.1 jruoho ACPI_PARSE_OBJECT *
854 1.1.1.13 christos TrLinkPeerOp (
855 1.1 jruoho ACPI_PARSE_OBJECT *Op1,
856 1.1 jruoho ACPI_PARSE_OBJECT *Op2);
857 1.1 jruoho
858 1.1 jruoho ACPI_PARSE_OBJECT *
859 1.1.1.13 christos TrLinkChildOp (
860 1.1 jruoho ACPI_PARSE_OBJECT *Op1,
861 1.1 jruoho ACPI_PARSE_OBJECT *Op2);
862 1.1 jruoho
863 1.1 jruoho ACPI_PARSE_OBJECT *
864 1.1.1.13 christos TrSetOpFlags (
865 1.1 jruoho ACPI_PARSE_OBJECT *Op,
866 1.1 jruoho UINT32 Flags);
867 1.1 jruoho
868 1.1 jruoho ACPI_PARSE_OBJECT *
869 1.1.1.13 christos TrSetOpAmlLength (
870 1.1.1.4 christos ACPI_PARSE_OBJECT *Op,
871 1.1.1.4 christos UINT32 Length);
872 1.1.1.4 christos
873 1.1.1.4 christos ACPI_PARSE_OBJECT *
874 1.1.1.13 christos TrLinkPeerOps (
875 1.1 jruoho UINT32 NumPeers,
876 1.1 jruoho ...);
877 1.1 jruoho
878 1.1.1.13 christos ACPI_STATUS
879 1.1.1.13 christos TrWalkParseTree (
880 1.1.1.13 christos ACPI_PARSE_OBJECT *Op,
881 1.1.1.13 christos UINT32 Visitation,
882 1.1.1.13 christos ASL_WALK_CALLBACK DescendingCallback,
883 1.1.1.13 christos ASL_WALK_CALLBACK AscendingCallback,
884 1.1.1.13 christos void *Context);
885 1.1.1.13 christos
886 1.1 jruoho
887 1.1 jruoho /*
888 1.1 jruoho * aslfiles - File I/O support
889 1.1 jruoho */
890 1.1 jruoho void
891 1.1 jruoho FlAddIncludeDirectory (
892 1.1 jruoho char *Dir);
893 1.1 jruoho
894 1.1.1.4 christos char *
895 1.1.1.4 christos FlMergePathnames (
896 1.1.1.4 christos char *PrefixDir,
897 1.1.1.4 christos char *FilePathname);
898 1.1.1.4 christos
899 1.1 jruoho void
900 1.1 jruoho FlOpenIncludeFile (
901 1.1 jruoho ACPI_PARSE_OBJECT *Op);
902 1.1 jruoho
903 1.1 jruoho void
904 1.1 jruoho FlFileError (
905 1.1 jruoho UINT32 FileId,
906 1.1 jruoho UINT8 ErrorId);
907 1.1 jruoho
908 1.1 jruoho UINT32
909 1.1 jruoho FlGetFileSize (
910 1.1 jruoho UINT32 FileId);
911 1.1 jruoho
912 1.1 jruoho ACPI_STATUS
913 1.1 jruoho FlReadFile (
914 1.1 jruoho UINT32 FileId,
915 1.1 jruoho void *Buffer,
916 1.1 jruoho UINT32 Length);
917 1.1 jruoho
918 1.1 jruoho void
919 1.1 jruoho FlWriteFile (
920 1.1 jruoho UINT32 FileId,
921 1.1 jruoho void *Buffer,
922 1.1 jruoho UINT32 Length);
923 1.1 jruoho
924 1.1 jruoho void
925 1.1 jruoho FlSeekFile (
926 1.1 jruoho UINT32 FileId,
927 1.1 jruoho long Offset);
928 1.1 jruoho
929 1.1 jruoho void
930 1.1 jruoho FlCloseFile (
931 1.1 jruoho UINT32 FileId);
932 1.1 jruoho
933 1.1 jruoho void
934 1.1 jruoho FlPrintFile (
935 1.1 jruoho UINT32 FileId,
936 1.1 jruoho char *Format,
937 1.1 jruoho ...);
938 1.1 jruoho
939 1.1 jruoho void
940 1.1.1.4 christos FlDeleteFile (
941 1.1.1.4 christos UINT32 FileId);
942 1.1.1.4 christos
943 1.1.1.4 christos void
944 1.1 jruoho FlSetLineNumber (
945 1.1.1.4 christos UINT32 LineNumber);
946 1.1.1.4 christos
947 1.1.1.4 christos void
948 1.1.1.4 christos FlSetFilename (
949 1.1.1.4 christos char *Filename);
950 1.1 jruoho
951 1.1 jruoho ACPI_STATUS
952 1.1 jruoho FlOpenInputFile (
953 1.1 jruoho char *InputFilename);
954 1.1 jruoho
955 1.1 jruoho ACPI_STATUS
956 1.1 jruoho FlOpenAmlOutputFile (
957 1.1 jruoho char *InputFilename);
958 1.1 jruoho
959 1.1 jruoho ACPI_STATUS
960 1.1 jruoho FlOpenMiscOutputFiles (
961 1.1 jruoho char *InputFilename);
962 1.1 jruoho
963 1.1.1.5 christos /*
964 1.1.1.5 christos * aslhwmap - hardware map summary
965 1.1.1.5 christos */
966 1.1.1.5 christos void
967 1.1.1.5 christos MpEmitMappingInfo (
968 1.1.1.5 christos void);
969 1.1.1.5 christos
970 1.1 jruoho
971 1.1 jruoho /*
972 1.1 jruoho * asload - load namespace in prep for cross reference
973 1.1 jruoho */
974 1.1 jruoho ACPI_STATUS
975 1.1 jruoho LdLoadNamespace (
976 1.1 jruoho ACPI_PARSE_OBJECT *RootOp);
977 1.1 jruoho
978 1.1 jruoho
979 1.1 jruoho /*
980 1.1.1.4 christos * asllookup - namespace lookup functions
981 1.1 jruoho */
982 1.1.1.4 christos void
983 1.1.1.4 christos LkFindUnreferencedObjects (
984 1.1 jruoho void);
985 1.1 jruoho
986 1.1.1.4 christos /*
987 1.1.1.10 christos * aslhelp - help screens
988 1.1.1.4 christos */
989 1.1 jruoho void
990 1.1.1.4 christos Usage (
991 1.1 jruoho void);
992 1.1 jruoho
993 1.1.1.4 christos void
994 1.1.1.4 christos AslFilenameHelp (
995 1.1.1.4 christos void);
996 1.1.1.4 christos
997 1.1.1.10 christos void
998 1.1.1.10 christos AslDisassemblyHelp (
999 1.1.1.10 christos void);
1000 1.1.1.10 christos
1001 1.1.1.4 christos
1002 1.1.1.4 christos /*
1003 1.1.1.4 christos * aslnamesp - namespace output file generation
1004 1.1.1.4 christos */
1005 1.1 jruoho ACPI_STATUS
1006 1.1.1.4 christos NsDisplayNamespace (
1007 1.1 jruoho void);
1008 1.1 jruoho
1009 1.1.1.2 jruoho void
1010 1.1.1.4 christos NsSetupNamespaceListing (
1011 1.1.1.2 jruoho void *Handle);
1012 1.1.1.2 jruoho
1013 1.1.1.4 christos /*
1014 1.1.1.4 christos * asloptions - command line processing
1015 1.1.1.4 christos */
1016 1.1.1.4 christos int
1017 1.1.1.4 christos AslCommandLine (
1018 1.1.1.4 christos int argc,
1019 1.1.1.4 christos char **argv);
1020 1.1.1.4 christos
1021 1.1.1.4 christos /*
1022 1.1.1.4 christos * aslxref - namespace cross reference
1023 1.1.1.4 christos */
1024 1.1.1.4 christos ACPI_STATUS
1025 1.1.1.4 christos XfCrossReferenceNamespace (
1026 1.1.1.4 christos void);
1027 1.1.1.4 christos
1028 1.1 jruoho
1029 1.1 jruoho /*
1030 1.1.1.9 christos * aslxrefout
1031 1.1.1.9 christos */
1032 1.1.1.9 christos void
1033 1.1.1.9 christos OtPrintHeaders (
1034 1.1.1.9 christos char *Message);
1035 1.1.1.9 christos
1036 1.1.1.9 christos void
1037 1.1.1.9 christos OtCreateXrefFile (
1038 1.1.1.9 christos void);
1039 1.1.1.9 christos
1040 1.1.1.9 christos void
1041 1.1.1.9 christos OtXrefWalkPart1 (
1042 1.1.1.9 christos ACPI_PARSE_OBJECT *Op,
1043 1.1.1.9 christos UINT32 Level,
1044 1.1.1.9 christos ASL_METHOD_INFO *MethodInfo);
1045 1.1.1.9 christos
1046 1.1.1.9 christos
1047 1.1.1.9 christos /*
1048 1.1 jruoho * aslutils - common compiler utilites
1049 1.1 jruoho */
1050 1.1 jruoho void
1051 1.1 jruoho DbgPrint (
1052 1.1 jruoho UINT32 Type,
1053 1.1 jruoho char *Format,
1054 1.1 jruoho ...);
1055 1.1 jruoho
1056 1.1 jruoho /* Type values for above */
1057 1.1 jruoho
1058 1.1 jruoho #define ASL_DEBUG_OUTPUT 0
1059 1.1 jruoho #define ASL_PARSE_OUTPUT 1
1060 1.1 jruoho #define ASL_TREE_OUTPUT 2
1061 1.1 jruoho
1062 1.1.1.9 christos UINT8
1063 1.1.1.9 christos UtIsBigEndianMachine (
1064 1.1.1.9 christos void);
1065 1.1.1.9 christos
1066 1.1.1.8 christos BOOLEAN
1067 1.1.1.8 christos UtQueryForOverwrite (
1068 1.1.1.8 christos char *Pathname);
1069 1.1.1.8 christos
1070 1.1 jruoho void
1071 1.1.1.9 christos UtDumpStringOp (
1072 1.1.1.9 christos ACPI_PARSE_OBJECT *Op,
1073 1.1.1.9 christos UINT32 Level);
1074 1.1.1.9 christos
1075 1.1.1.9 christos void
1076 1.1.1.9 christos UtDumpIntegerOp (
1077 1.1.1.9 christos ACPI_PARSE_OBJECT *Op,
1078 1.1.1.9 christos UINT32 Level,
1079 1.1.1.9 christos UINT32 IntegerLength);
1080 1.1.1.9 christos
1081 1.1.1.9 christos void
1082 1.1.1.9 christos UtDumpBasicOp (
1083 1.1.1.9 christos ACPI_PARSE_OBJECT *Op,
1084 1.1.1.9 christos UINT32 Level);
1085 1.1.1.9 christos
1086 1.1.1.16 christos void *
1087 1.1.1.16 christos UtGetParentMethod (
1088 1.1.1.16 christos ACPI_NAMESPACE_NODE *Node);
1089 1.1.1.16 christos
1090 1.1.1.16 christos BOOLEAN
1091 1.1.1.16 christos UtNodeIsDescendantOf (
1092 1.1.1.16 christos ACPI_NAMESPACE_NODE *Node1,
1093 1.1.1.16 christos ACPI_NAMESPACE_NODE *Node2);
1094 1.1.1.16 christos
1095 1.1.1.9 christos void
1096 1.1.1.2 jruoho UtDisplaySupportedTables (
1097 1.1.1.2 jruoho void);
1098 1.1.1.2 jruoho
1099 1.1.1.2 jruoho void
1100 1.1 jruoho UtDisplayConstantOpcodes (
1101 1.1 jruoho void);
1102 1.1 jruoho
1103 1.1 jruoho UINT8
1104 1.1 jruoho UtBeginEvent (
1105 1.1 jruoho char *Name);
1106 1.1 jruoho
1107 1.1 jruoho void
1108 1.1 jruoho UtEndEvent (
1109 1.1 jruoho UINT8 Event);
1110 1.1 jruoho
1111 1.1 jruoho void
1112 1.1 jruoho UtDisplaySummary (
1113 1.1 jruoho UINT32 FileId);
1114 1.1 jruoho
1115 1.1 jruoho void
1116 1.1 jruoho UtConvertByteToHex (
1117 1.1 jruoho UINT8 RawByte,
1118 1.1 jruoho UINT8 *Buffer);
1119 1.1 jruoho
1120 1.1 jruoho void
1121 1.1 jruoho UtConvertByteToAsmHex (
1122 1.1 jruoho UINT8 RawByte,
1123 1.1 jruoho UINT8 *Buffer);
1124 1.1 jruoho
1125 1.1 jruoho char *
1126 1.1 jruoho UtGetOpName (
1127 1.1 jruoho UINT32 ParseOpcode);
1128 1.1 jruoho
1129 1.1 jruoho void
1130 1.1 jruoho UtSetParseOpName (
1131 1.1 jruoho ACPI_PARSE_OBJECT *Op);
1132 1.1 jruoho
1133 1.1 jruoho ACPI_STATUS
1134 1.1 jruoho UtInternalizeName (
1135 1.1 jruoho char *ExternalName,
1136 1.1 jruoho char **ConvertedName);
1137 1.1 jruoho
1138 1.1 jruoho void
1139 1.1 jruoho UtAttachNamepathToOwner (
1140 1.1 jruoho ACPI_PARSE_OBJECT *Op,
1141 1.1 jruoho ACPI_PARSE_OBJECT *NameNode);
1142 1.1 jruoho
1143 1.1 jruoho ACPI_PARSE_OBJECT *
1144 1.1 jruoho UtCheckIntegerRange (
1145 1.1 jruoho ACPI_PARSE_OBJECT *Op,
1146 1.1 jruoho UINT32 LowValue,
1147 1.1 jruoho UINT32 HighValue);
1148 1.1 jruoho
1149 1.1 jruoho UINT64
1150 1.1 jruoho UtDoConstant (
1151 1.1 jruoho char *String);
1152 1.1 jruoho
1153 1.1.1.3 jruoho
1154 1.1.1.2 jruoho /*
1155 1.1.1.2 jruoho * asluuid - UUID support
1156 1.1.1.2 jruoho */
1157 1.1.1.2 jruoho ACPI_STATUS
1158 1.1.1.2 jruoho AuValidateUuid (
1159 1.1.1.2 jruoho char *InString);
1160 1.1.1.2 jruoho
1161 1.1.1.2 jruoho ACPI_STATUS
1162 1.1.1.2 jruoho AuConvertUuidToString (
1163 1.1.1.2 jruoho char *UuIdBuffer,
1164 1.1.1.2 jruoho char *OutString);
1165 1.1 jruoho
1166 1.1 jruoho /*
1167 1.1 jruoho * aslresource - Resource template generation utilities
1168 1.1 jruoho */
1169 1.1 jruoho void
1170 1.1 jruoho RsSmallAddressCheck (
1171 1.1 jruoho UINT8 Type,
1172 1.1 jruoho UINT32 Minimum,
1173 1.1 jruoho UINT32 Maximum,
1174 1.1 jruoho UINT32 Length,
1175 1.1 jruoho UINT32 Alignment,
1176 1.1 jruoho ACPI_PARSE_OBJECT *MinOp,
1177 1.1 jruoho ACPI_PARSE_OBJECT *MaxOp,
1178 1.1 jruoho ACPI_PARSE_OBJECT *LengthOp,
1179 1.1.1.2 jruoho ACPI_PARSE_OBJECT *AlignOp,
1180 1.1.1.2 jruoho ACPI_PARSE_OBJECT *Op);
1181 1.1 jruoho
1182 1.1 jruoho void
1183 1.1 jruoho RsLargeAddressCheck (
1184 1.1 jruoho UINT64 Minimum,
1185 1.1 jruoho UINT64 Maximum,
1186 1.1 jruoho UINT64 Length,
1187 1.1 jruoho UINT64 Granularity,
1188 1.1 jruoho UINT8 Flags,
1189 1.1 jruoho ACPI_PARSE_OBJECT *MinOp,
1190 1.1 jruoho ACPI_PARSE_OBJECT *MaxOp,
1191 1.1 jruoho ACPI_PARSE_OBJECT *LengthOp,
1192 1.1.1.2 jruoho ACPI_PARSE_OBJECT *GranOp,
1193 1.1.1.2 jruoho ACPI_PARSE_OBJECT *Op);
1194 1.1 jruoho
1195 1.1 jruoho UINT16
1196 1.1 jruoho RsGetStringDataLength (
1197 1.1 jruoho ACPI_PARSE_OBJECT *InitializerOp);
1198 1.1 jruoho
1199 1.1 jruoho ASL_RESOURCE_NODE *
1200 1.1 jruoho RsAllocateResourceNode (
1201 1.1 jruoho UINT32 Size);
1202 1.1 jruoho
1203 1.1 jruoho void
1204 1.1.1.4 christos RsCreateResourceField (
1205 1.1 jruoho ACPI_PARSE_OBJECT *Op,
1206 1.1 jruoho char *Name,
1207 1.1 jruoho UINT32 ByteOffset,
1208 1.1.1.4 christos UINT32 BitOffset,
1209 1.1.1.4 christos UINT32 BitLength);
1210 1.1 jruoho
1211 1.1 jruoho void
1212 1.1.1.4 christos RsSetFlagBits (
1213 1.1.1.4 christos UINT8 *Flags,
1214 1.1 jruoho ACPI_PARSE_OBJECT *Op,
1215 1.1.1.4 christos UINT8 Position,
1216 1.1.1.4 christos UINT8 DefaultBit);
1217 1.1 jruoho
1218 1.1 jruoho void
1219 1.1.1.4 christos RsSetFlagBits16 (
1220 1.1.1.4 christos UINT16 *Flags,
1221 1.1 jruoho ACPI_PARSE_OBJECT *Op,
1222 1.1 jruoho UINT8 Position,
1223 1.1 jruoho UINT8 DefaultBit);
1224 1.1 jruoho
1225 1.1 jruoho ACPI_PARSE_OBJECT *
1226 1.1 jruoho RsCompleteNodeAndGetNext (
1227 1.1 jruoho ACPI_PARSE_OBJECT *Op);
1228 1.1 jruoho
1229 1.1 jruoho void
1230 1.1 jruoho RsCheckListForDuplicates (
1231 1.1 jruoho ACPI_PARSE_OBJECT *Op);
1232 1.1 jruoho
1233 1.1 jruoho ASL_RESOURCE_NODE *
1234 1.1 jruoho RsDoOneResourceDescriptor (
1235 1.1.1.5 christos ASL_RESOURCE_INFO *Info,
1236 1.1 jruoho UINT8 *State);
1237 1.1 jruoho
1238 1.1 jruoho /* Values for State above */
1239 1.1 jruoho
1240 1.1 jruoho #define ACPI_RSTATE_NORMAL 0
1241 1.1 jruoho #define ACPI_RSTATE_START_DEPENDENT 1
1242 1.1 jruoho #define ACPI_RSTATE_DEPENDENT_LIST 2
1243 1.1 jruoho
1244 1.1 jruoho UINT32
1245 1.1 jruoho RsLinkDescriptorChain (
1246 1.1 jruoho ASL_RESOURCE_NODE **PreviousRnode,
1247 1.1 jruoho ASL_RESOURCE_NODE *Rnode);
1248 1.1 jruoho
1249 1.1 jruoho void
1250 1.1 jruoho RsDoResourceTemplate (
1251 1.1 jruoho ACPI_PARSE_OBJECT *Op);
1252 1.1 jruoho
1253 1.1 jruoho
1254 1.1 jruoho /*
1255 1.1 jruoho * aslrestype1 - Miscellaneous Small descriptors
1256 1.1 jruoho */
1257 1.1 jruoho ASL_RESOURCE_NODE *
1258 1.1 jruoho RsDoEndTagDescriptor (
1259 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1260 1.1 jruoho
1261 1.1 jruoho ASL_RESOURCE_NODE *
1262 1.1 jruoho RsDoEndDependentDescriptor (
1263 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1264 1.1 jruoho
1265 1.1 jruoho ASL_RESOURCE_NODE *
1266 1.1 jruoho RsDoMemory24Descriptor (
1267 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1268 1.1 jruoho
1269 1.1 jruoho ASL_RESOURCE_NODE *
1270 1.1 jruoho RsDoMemory32Descriptor (
1271 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1272 1.1 jruoho
1273 1.1 jruoho ASL_RESOURCE_NODE *
1274 1.1 jruoho RsDoMemory32FixedDescriptor (
1275 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1276 1.1 jruoho
1277 1.1 jruoho ASL_RESOURCE_NODE *
1278 1.1 jruoho RsDoStartDependentDescriptor (
1279 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1280 1.1 jruoho
1281 1.1 jruoho ASL_RESOURCE_NODE *
1282 1.1 jruoho RsDoStartDependentNoPriDescriptor (
1283 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1284 1.1 jruoho
1285 1.1 jruoho ASL_RESOURCE_NODE *
1286 1.1 jruoho RsDoVendorSmallDescriptor (
1287 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1288 1.1 jruoho
1289 1.1 jruoho
1290 1.1 jruoho /*
1291 1.1 jruoho * aslrestype1i - I/O-related Small descriptors
1292 1.1 jruoho */
1293 1.1 jruoho ASL_RESOURCE_NODE *
1294 1.1 jruoho RsDoDmaDescriptor (
1295 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1296 1.1 jruoho
1297 1.1 jruoho ASL_RESOURCE_NODE *
1298 1.1.1.4 christos RsDoFixedDmaDescriptor (
1299 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1300 1.1.1.4 christos
1301 1.1.1.4 christos ASL_RESOURCE_NODE *
1302 1.1 jruoho RsDoFixedIoDescriptor (
1303 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1304 1.1 jruoho
1305 1.1 jruoho ASL_RESOURCE_NODE *
1306 1.1 jruoho RsDoIoDescriptor (
1307 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1308 1.1 jruoho
1309 1.1 jruoho ASL_RESOURCE_NODE *
1310 1.1 jruoho RsDoIrqDescriptor (
1311 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1312 1.1 jruoho
1313 1.1 jruoho ASL_RESOURCE_NODE *
1314 1.1 jruoho RsDoIrqNoFlagsDescriptor (
1315 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1316 1.1 jruoho
1317 1.1 jruoho
1318 1.1 jruoho /*
1319 1.1 jruoho * aslrestype2 - Large resource descriptors
1320 1.1 jruoho */
1321 1.1 jruoho ASL_RESOURCE_NODE *
1322 1.1 jruoho RsDoInterruptDescriptor (
1323 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1324 1.1 jruoho
1325 1.1 jruoho ASL_RESOURCE_NODE *
1326 1.1 jruoho RsDoVendorLargeDescriptor (
1327 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1328 1.1 jruoho
1329 1.1 jruoho ASL_RESOURCE_NODE *
1330 1.1 jruoho RsDoGeneralRegisterDescriptor (
1331 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1332 1.1 jruoho
1333 1.1.1.4 christos ASL_RESOURCE_NODE *
1334 1.1.1.4 christos RsDoGpioIntDescriptor (
1335 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1336 1.1.1.4 christos
1337 1.1.1.4 christos ASL_RESOURCE_NODE *
1338 1.1.1.4 christos RsDoGpioIoDescriptor (
1339 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1340 1.1.1.4 christos
1341 1.1.1.4 christos ASL_RESOURCE_NODE *
1342 1.1.1.4 christos RsDoI2cSerialBusDescriptor (
1343 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1344 1.1.1.4 christos
1345 1.1.1.4 christos ASL_RESOURCE_NODE *
1346 1.1.1.4 christos RsDoSpiSerialBusDescriptor (
1347 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1348 1.1.1.4 christos
1349 1.1.1.4 christos ASL_RESOURCE_NODE *
1350 1.1.1.4 christos RsDoUartSerialBusDescriptor (
1351 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1352 1.1 jruoho
1353 1.1.1.13 christos ASL_RESOURCE_NODE *
1354 1.1.1.13 christos RsDoPinFunctionDescriptor (
1355 1.1.1.13 christos ASL_RESOURCE_INFO *Info);
1356 1.1.1.13 christos
1357 1.1.1.13 christos ASL_RESOURCE_NODE *
1358 1.1.1.13 christos RsDoPinConfigDescriptor (
1359 1.1.1.13 christos ASL_RESOURCE_INFO *Info);
1360 1.1.1.13 christos
1361 1.1.1.13 christos ASL_RESOURCE_NODE *
1362 1.1.1.13 christos RsDoPinGroupDescriptor (
1363 1.1.1.13 christos ASL_RESOURCE_INFO *Info);
1364 1.1.1.13 christos
1365 1.1.1.13 christos ASL_RESOURCE_NODE *
1366 1.1.1.13 christos RsDoPinGroupFunctionDescriptor (
1367 1.1.1.13 christos ASL_RESOURCE_INFO *Info);
1368 1.1.1.13 christos
1369 1.1.1.13 christos ASL_RESOURCE_NODE *
1370 1.1.1.13 christos RsDoPinGroupConfigDescriptor (
1371 1.1.1.13 christos ASL_RESOURCE_INFO *Info);
1372 1.1.1.13 christos
1373 1.1 jruoho /*
1374 1.1 jruoho * aslrestype2d - DWord address descriptors
1375 1.1 jruoho */
1376 1.1 jruoho ASL_RESOURCE_NODE *
1377 1.1 jruoho RsDoDwordIoDescriptor (
1378 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1379 1.1 jruoho
1380 1.1 jruoho ASL_RESOURCE_NODE *
1381 1.1 jruoho RsDoDwordMemoryDescriptor (
1382 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1383 1.1 jruoho
1384 1.1 jruoho ASL_RESOURCE_NODE *
1385 1.1 jruoho RsDoDwordSpaceDescriptor (
1386 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1387 1.1 jruoho
1388 1.1 jruoho
1389 1.1 jruoho /*
1390 1.1 jruoho * aslrestype2e - Extended address descriptors
1391 1.1 jruoho */
1392 1.1 jruoho ASL_RESOURCE_NODE *
1393 1.1 jruoho RsDoExtendedIoDescriptor (
1394 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1395 1.1 jruoho
1396 1.1 jruoho ASL_RESOURCE_NODE *
1397 1.1 jruoho RsDoExtendedMemoryDescriptor (
1398 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1399 1.1 jruoho
1400 1.1 jruoho ASL_RESOURCE_NODE *
1401 1.1 jruoho RsDoExtendedSpaceDescriptor (
1402 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1403 1.1 jruoho
1404 1.1 jruoho
1405 1.1 jruoho /*
1406 1.1 jruoho * aslrestype2q - QWord address descriptors
1407 1.1 jruoho */
1408 1.1 jruoho ASL_RESOURCE_NODE *
1409 1.1 jruoho RsDoQwordIoDescriptor (
1410 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1411 1.1 jruoho
1412 1.1 jruoho ASL_RESOURCE_NODE *
1413 1.1 jruoho RsDoQwordMemoryDescriptor (
1414 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1415 1.1 jruoho
1416 1.1 jruoho ASL_RESOURCE_NODE *
1417 1.1 jruoho RsDoQwordSpaceDescriptor (
1418 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1419 1.1 jruoho
1420 1.1 jruoho
1421 1.1 jruoho /*
1422 1.1 jruoho * aslrestype2w - Word address descriptors
1423 1.1 jruoho */
1424 1.1 jruoho ASL_RESOURCE_NODE *
1425 1.1 jruoho RsDoWordIoDescriptor (
1426 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1427 1.1 jruoho
1428 1.1 jruoho ASL_RESOURCE_NODE *
1429 1.1 jruoho RsDoWordSpaceDescriptor (
1430 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1431 1.1 jruoho
1432 1.1 jruoho ASL_RESOURCE_NODE *
1433 1.1 jruoho RsDoWordBusNumberDescriptor (
1434 1.1.1.5 christos ASL_RESOURCE_INFO *Info);
1435 1.1.1.5 christos
1436 1.1 jruoho
1437 1.1 jruoho /*
1438 1.1 jruoho * Entry to data table compiler subsystem
1439 1.1 jruoho */
1440 1.1 jruoho ACPI_STATUS
1441 1.1 jruoho DtDoCompile(
1442 1.1 jruoho void);
1443 1.1 jruoho
1444 1.1.1.2 jruoho ACPI_STATUS
1445 1.1.1.2 jruoho DtCreateTemplates (
1446 1.1.1.8 christos char **argv);
1447 1.1.1.2 jruoho
1448 1.1.1.12 christos
1449 1.1.1.12 christos /*
1450 1.1.1.12 christos * ASL/ASL+ converter debug
1451 1.1.1.12 christos */
1452 1.1.1.12 christos void
1453 1.1.1.12 christos CvDbgPrint (
1454 1.1.1.12 christos char *Fmt,
1455 1.1.1.12 christos ...);
1456 1.1.1.12 christos
1457 1.1.1.12 christos
1458 1.1 jruoho #endif /* __ASLCOMPILER_H */
1459