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