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