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