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