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