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