aslcompiler.h revision 1.1.1.2.2.2 1 1.1.1.2.2.2 bouyer
2 1.1.1.2.2.2 bouyer /******************************************************************************
3 1.1.1.2.2.2 bouyer *
4 1.1.1.2.2.2 bouyer * Module Name: aslcompiler.h - common include file for iASL
5 1.1.1.2.2.2 bouyer *
6 1.1.1.2.2.2 bouyer *****************************************************************************/
7 1.1.1.2.2.2 bouyer
8 1.1.1.2.2.2 bouyer /*
9 1.1.1.2.2.2 bouyer * Copyright (C) 2000 - 2011, Intel Corp.
10 1.1.1.2.2.2 bouyer * All rights reserved.
11 1.1.1.2.2.2 bouyer *
12 1.1.1.2.2.2 bouyer * Redistribution and use in source and binary forms, with or without
13 1.1.1.2.2.2 bouyer * modification, are permitted provided that the following conditions
14 1.1.1.2.2.2 bouyer * are met:
15 1.1.1.2.2.2 bouyer * 1. Redistributions of source code must retain the above copyright
16 1.1.1.2.2.2 bouyer * notice, this list of conditions, and the following disclaimer,
17 1.1.1.2.2.2 bouyer * without modification.
18 1.1.1.2.2.2 bouyer * 2. Redistributions in binary form must reproduce at minimum a disclaimer
19 1.1.1.2.2.2 bouyer * substantially similar to the "NO WARRANTY" disclaimer below
20 1.1.1.2.2.2 bouyer * ("Disclaimer") and any redistribution must be conditioned upon
21 1.1.1.2.2.2 bouyer * including a substantially similar Disclaimer requirement for further
22 1.1.1.2.2.2 bouyer * binary redistribution.
23 1.1.1.2.2.2 bouyer * 3. Neither the names of the above-listed copyright holders nor the names
24 1.1.1.2.2.2 bouyer * of any contributors may be used to endorse or promote products derived
25 1.1.1.2.2.2 bouyer * from this software without specific prior written permission.
26 1.1.1.2.2.2 bouyer *
27 1.1.1.2.2.2 bouyer * Alternatively, this software may be distributed under the terms of the
28 1.1.1.2.2.2 bouyer * GNU General Public License ("GPL") version 2 as published by the Free
29 1.1.1.2.2.2 bouyer * Software Foundation.
30 1.1.1.2.2.2 bouyer *
31 1.1.1.2.2.2 bouyer * NO WARRANTY
32 1.1.1.2.2.2 bouyer * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
33 1.1.1.2.2.2 bouyer * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
34 1.1.1.2.2.2 bouyer * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
35 1.1.1.2.2.2 bouyer * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
36 1.1.1.2.2.2 bouyer * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
37 1.1.1.2.2.2 bouyer * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
38 1.1.1.2.2.2 bouyer * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
39 1.1.1.2.2.2 bouyer * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
40 1.1.1.2.2.2 bouyer * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
41 1.1.1.2.2.2 bouyer * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
42 1.1.1.2.2.2 bouyer * POSSIBILITY OF SUCH DAMAGES.
43 1.1.1.2.2.2 bouyer */
44 1.1.1.2.2.2 bouyer
45 1.1.1.2.2.2 bouyer
46 1.1.1.2.2.2 bouyer #ifndef __ASLCOMPILER_H
47 1.1.1.2.2.2 bouyer #define __ASLCOMPILER_H
48 1.1.1.2.2.2 bouyer
49 1.1.1.2.2.2 bouyer #include "acpi.h"
50 1.1.1.2.2.2 bouyer #include "accommon.h"
51 1.1.1.2.2.2 bouyer #include "amlresrc.h"
52 1.1.1.2.2.2 bouyer #include "acdebug.h"
53 1.1.1.2.2.2 bouyer
54 1.1.1.2.2.2 bouyer /* Microsoft-specific */
55 1.1.1.2.2.2 bouyer
56 1.1.1.2.2.2 bouyer #if (defined WIN32 || defined WIN64)
57 1.1.1.2.2.2 bouyer
58 1.1.1.2.2.2 bouyer /* warn : used #pragma pack */
59 1.1.1.2.2.2 bouyer #pragma warning(disable:4103)
60 1.1.1.2.2.2 bouyer
61 1.1.1.2.2.2 bouyer /* warn : named type definition in parentheses */
62 1.1.1.2.2.2 bouyer #pragma warning(disable:4115)
63 1.1.1.2.2.2 bouyer #endif
64 1.1.1.2.2.2 bouyer
65 1.1.1.2.2.2 bouyer #include <stdio.h>
66 1.1.1.2.2.2 bouyer #include <stdlib.h>
67 1.1.1.2.2.2 bouyer #include <stdarg.h>
68 1.1.1.2.2.2 bouyer #include <string.h>
69 1.1.1.2.2.2 bouyer #include <errno.h>
70 1.1.1.2.2.2 bouyer #include <ctype.h>
71 1.1.1.2.2.2 bouyer
72 1.1.1.2.2.2 bouyer /* Compiler headers */
73 1.1.1.2.2.2 bouyer
74 1.1.1.2.2.2 bouyer #include "asldefine.h"
75 1.1.1.2.2.2 bouyer #include "asltypes.h"
76 1.1.1.2.2.2 bouyer #include "aslmessages.h"
77 1.1.1.2.2.2 bouyer #include "aslglobal.h"
78 1.1.1.2.2.2 bouyer
79 1.1.1.2.2.2 bouyer
80 1.1.1.2.2.2 bouyer /*******************************************************************************
81 1.1.1.2.2.2 bouyer *
82 1.1.1.2.2.2 bouyer * Compiler prototypes
83 1.1.1.2.2.2 bouyer *
84 1.1.1.2.2.2 bouyer ******************************************************************************/
85 1.1.1.2.2.2 bouyer
86 1.1.1.2.2.2 bouyer /*
87 1.1.1.2.2.2 bouyer * parser - generated from flex/bison, lex/yacc, etc.
88 1.1.1.2.2.2 bouyer */
89 1.1.1.2.2.2 bouyer int
90 1.1.1.2.2.2 bouyer AslCompilerparse(
91 1.1.1.2.2.2 bouyer void);
92 1.1.1.2.2.2 bouyer
93 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *
94 1.1.1.2.2.2 bouyer AslDoError (
95 1.1.1.2.2.2 bouyer void);
96 1.1.1.2.2.2 bouyer
97 1.1.1.2.2.2 bouyer int
98 1.1.1.2.2.2 bouyer AslCompilerlex(
99 1.1.1.2.2.2 bouyer void);
100 1.1.1.2.2.2 bouyer
101 1.1.1.2.2.2 bouyer void
102 1.1.1.2.2.2 bouyer ResetCurrentLineBuffer (
103 1.1.1.2.2.2 bouyer void);
104 1.1.1.2.2.2 bouyer
105 1.1.1.2.2.2 bouyer void
106 1.1.1.2.2.2 bouyer InsertLineBuffer (
107 1.1.1.2.2.2 bouyer int SourceChar);
108 1.1.1.2.2.2 bouyer
109 1.1.1.2.2.2 bouyer int
110 1.1.1.2.2.2 bouyer AslPopInputFileStack (
111 1.1.1.2.2.2 bouyer void);
112 1.1.1.2.2.2 bouyer
113 1.1.1.2.2.2 bouyer void
114 1.1.1.2.2.2 bouyer AslPushInputFileStack (
115 1.1.1.2.2.2 bouyer FILE *InputFile,
116 1.1.1.2.2.2 bouyer char *Filename);
117 1.1.1.2.2.2 bouyer
118 1.1.1.2.2.2 bouyer /*
119 1.1.1.2.2.2 bouyer * aslstartup - entered from main()
120 1.1.1.2.2.2 bouyer */
121 1.1.1.2.2.2 bouyer void
122 1.1.1.2.2.2 bouyer AslInitializeGlobals (
123 1.1.1.2.2.2 bouyer void);
124 1.1.1.2.2.2 bouyer
125 1.1.1.2.2.2 bouyer typedef
126 1.1.1.2.2.2 bouyer ACPI_STATUS (*ASL_PATHNAME_CALLBACK) (
127 1.1.1.2.2.2 bouyer char *);
128 1.1.1.2.2.2 bouyer
129 1.1.1.2.2.2 bouyer ACPI_STATUS
130 1.1.1.2.2.2 bouyer AslDoOnePathname (
131 1.1.1.2.2.2 bouyer char *Pathname,
132 1.1.1.2.2.2 bouyer ASL_PATHNAME_CALLBACK Callback);
133 1.1.1.2.2.2 bouyer
134 1.1.1.2.2.2 bouyer ACPI_STATUS
135 1.1.1.2.2.2 bouyer AslDoOneFile (
136 1.1.1.2.2.2 bouyer char *Filename);
137 1.1.1.2.2.2 bouyer
138 1.1.1.2.2.2 bouyer /*
139 1.1.1.2.2.2 bouyer * aslcompile - compile mainline
140 1.1.1.2.2.2 bouyer */
141 1.1.1.2.2.2 bouyer void
142 1.1.1.2.2.2 bouyer AslCompilerSignon (
143 1.1.1.2.2.2 bouyer UINT32 FileId);
144 1.1.1.2.2.2 bouyer
145 1.1.1.2.2.2 bouyer void
146 1.1.1.2.2.2 bouyer AslCompilerFileHeader (
147 1.1.1.2.2.2 bouyer UINT32 FileId);
148 1.1.1.2.2.2 bouyer
149 1.1.1.2.2.2 bouyer int
150 1.1.1.2.2.2 bouyer CmDoCompile (
151 1.1.1.2.2.2 bouyer void);
152 1.1.1.2.2.2 bouyer
153 1.1.1.2.2.2 bouyer void
154 1.1.1.2.2.2 bouyer CmDoOutputFiles (
155 1.1.1.2.2.2 bouyer void);
156 1.1.1.2.2.2 bouyer
157 1.1.1.2.2.2 bouyer void
158 1.1.1.2.2.2 bouyer CmCleanupAndExit (
159 1.1.1.2.2.2 bouyer void);
160 1.1.1.2.2.2 bouyer
161 1.1.1.2.2.2 bouyer ACPI_STATUS
162 1.1.1.2.2.2 bouyer FlCheckForAscii (
163 1.1.1.2.2.2 bouyer ASL_FILE_INFO *FileInfo);
164 1.1.1.2.2.2 bouyer
165 1.1.1.2.2.2 bouyer
166 1.1.1.2.2.2 bouyer /*
167 1.1.1.2.2.2 bouyer * aslwalks - semantic analysis and parse tree walks
168 1.1.1.2.2.2 bouyer */
169 1.1.1.2.2.2 bouyer ACPI_STATUS
170 1.1.1.2.2.2 bouyer AnOtherSemanticAnalysisWalkBegin (
171 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
172 1.1.1.2.2.2 bouyer UINT32 Level,
173 1.1.1.2.2.2 bouyer void *Context);
174 1.1.1.2.2.2 bouyer
175 1.1.1.2.2.2 bouyer ACPI_STATUS
176 1.1.1.2.2.2 bouyer AnOtherSemanticAnalysisWalkEnd (
177 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
178 1.1.1.2.2.2 bouyer UINT32 Level,
179 1.1.1.2.2.2 bouyer void *Context);
180 1.1.1.2.2.2 bouyer
181 1.1.1.2.2.2 bouyer ACPI_STATUS
182 1.1.1.2.2.2 bouyer AnOperandTypecheckWalkEnd (
183 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
184 1.1.1.2.2.2 bouyer UINT32 Level,
185 1.1.1.2.2.2 bouyer void *Context);
186 1.1.1.2.2.2 bouyer
187 1.1.1.2.2.2 bouyer ACPI_STATUS
188 1.1.1.2.2.2 bouyer AnMethodAnalysisWalkBegin (
189 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
190 1.1.1.2.2.2 bouyer UINT32 Level,
191 1.1.1.2.2.2 bouyer void *Context);
192 1.1.1.2.2.2 bouyer
193 1.1.1.2.2.2 bouyer ACPI_STATUS
194 1.1.1.2.2.2 bouyer AnMethodAnalysisWalkEnd (
195 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
196 1.1.1.2.2.2 bouyer UINT32 Level,
197 1.1.1.2.2.2 bouyer void *Context);
198 1.1.1.2.2.2 bouyer
199 1.1.1.2.2.2 bouyer ACPI_STATUS
200 1.1.1.2.2.2 bouyer AnMethodTypingWalkEnd (
201 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
202 1.1.1.2.2.2 bouyer UINT32 Level,
203 1.1.1.2.2.2 bouyer void *Context);
204 1.1.1.2.2.2 bouyer
205 1.1.1.2.2.2 bouyer
206 1.1.1.2.2.2 bouyer /*
207 1.1.1.2.2.2 bouyer * aslbtypes - bitfield data types
208 1.1.1.2.2.2 bouyer */
209 1.1.1.2.2.2 bouyer UINT32
210 1.1.1.2.2.2 bouyer AnMapObjTypeToBtype (
211 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
212 1.1.1.2.2.2 bouyer
213 1.1.1.2.2.2 bouyer UINT32
214 1.1.1.2.2.2 bouyer AnMapArgTypeToBtype (
215 1.1.1.2.2.2 bouyer UINT32 ArgType);
216 1.1.1.2.2.2 bouyer
217 1.1.1.2.2.2 bouyer UINT32
218 1.1.1.2.2.2 bouyer AnGetBtype (
219 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
220 1.1.1.2.2.2 bouyer
221 1.1.1.2.2.2 bouyer void
222 1.1.1.2.2.2 bouyer AnFormatBtype (
223 1.1.1.2.2.2 bouyer char *Buffer,
224 1.1.1.2.2.2 bouyer UINT32 Btype);
225 1.1.1.2.2.2 bouyer
226 1.1.1.2.2.2 bouyer
227 1.1.1.2.2.2 bouyer /*
228 1.1.1.2.2.2 bouyer * aslanalyze - Support functions for parse tree walks
229 1.1.1.2.2.2 bouyer */
230 1.1.1.2.2.2 bouyer void
231 1.1.1.2.2.2 bouyer AnCheckId (
232 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
233 1.1.1.2.2.2 bouyer ACPI_NAME Type);
234 1.1.1.2.2.2 bouyer
235 1.1.1.2.2.2 bouyer /* Values for Type argument above */
236 1.1.1.2.2.2 bouyer
237 1.1.1.2.2.2 bouyer #define ASL_TYPE_HID 0
238 1.1.1.2.2.2 bouyer #define ASL_TYPE_CID 1
239 1.1.1.2.2.2 bouyer
240 1.1.1.2.2.2 bouyer BOOLEAN
241 1.1.1.2.2.2 bouyer AnIsInternalMethod (
242 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
243 1.1.1.2.2.2 bouyer
244 1.1.1.2.2.2 bouyer UINT32
245 1.1.1.2.2.2 bouyer AnGetInternalMethodReturnType (
246 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
247 1.1.1.2.2.2 bouyer
248 1.1.1.2.2.2 bouyer BOOLEAN
249 1.1.1.2.2.2 bouyer AnLastStatementIsReturn (
250 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
251 1.1.1.2.2.2 bouyer
252 1.1.1.2.2.2 bouyer void
253 1.1.1.2.2.2 bouyer AnCheckMethodReturnValue (
254 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
255 1.1.1.2.2.2 bouyer const ACPI_OPCODE_INFO *OpInfo,
256 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *ArgOp,
257 1.1.1.2.2.2 bouyer UINT32 RequiredBtypes,
258 1.1.1.2.2.2 bouyer UINT32 ThisNodeBtype);
259 1.1.1.2.2.2 bouyer
260 1.1.1.2.2.2 bouyer BOOLEAN
261 1.1.1.2.2.2 bouyer AnIsResultUsed (
262 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
263 1.1.1.2.2.2 bouyer
264 1.1.1.2.2.2 bouyer void
265 1.1.1.2.2.2 bouyer ApCheckForGpeNameConflict (
266 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
267 1.1.1.2.2.2 bouyer
268 1.1.1.2.2.2 bouyer
269 1.1.1.2.2.2 bouyer /*
270 1.1.1.2.2.2 bouyer * aslerror - error handling/reporting
271 1.1.1.2.2.2 bouyer */
272 1.1.1.2.2.2 bouyer void
273 1.1.1.2.2.2 bouyer AslError (
274 1.1.1.2.2.2 bouyer UINT8 Level,
275 1.1.1.2.2.2 bouyer UINT8 MessageId,
276 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
277 1.1.1.2.2.2 bouyer char *ExtraMessage);
278 1.1.1.2.2.2 bouyer
279 1.1.1.2.2.2 bouyer void
280 1.1.1.2.2.2 bouyer AslCoreSubsystemError (
281 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
282 1.1.1.2.2.2 bouyer ACPI_STATUS Status,
283 1.1.1.2.2.2 bouyer char *ExtraMessage,
284 1.1.1.2.2.2 bouyer BOOLEAN Abort);
285 1.1.1.2.2.2 bouyer
286 1.1.1.2.2.2 bouyer int
287 1.1.1.2.2.2 bouyer AslCompilererror(
288 1.1.1.2.2.2 bouyer char *s);
289 1.1.1.2.2.2 bouyer
290 1.1.1.2.2.2 bouyer void
291 1.1.1.2.2.2 bouyer AslCommonError (
292 1.1.1.2.2.2 bouyer UINT8 Level,
293 1.1.1.2.2.2 bouyer UINT8 MessageId,
294 1.1.1.2.2.2 bouyer UINT32 CurrentLineNumber,
295 1.1.1.2.2.2 bouyer UINT32 LogicalLineNumber,
296 1.1.1.2.2.2 bouyer UINT32 LogicalByteOffset,
297 1.1.1.2.2.2 bouyer UINT32 Column,
298 1.1.1.2.2.2 bouyer char *Filename,
299 1.1.1.2.2.2 bouyer char *ExtraMessage);
300 1.1.1.2.2.2 bouyer
301 1.1.1.2.2.2 bouyer void
302 1.1.1.2.2.2 bouyer AePrintException (
303 1.1.1.2.2.2 bouyer UINT32 FileId,
304 1.1.1.2.2.2 bouyer ASL_ERROR_MSG *Enode,
305 1.1.1.2.2.2 bouyer char *Header);
306 1.1.1.2.2.2 bouyer
307 1.1.1.2.2.2 bouyer void
308 1.1.1.2.2.2 bouyer AePrintErrorLog (
309 1.1.1.2.2.2 bouyer UINT32 FileId);
310 1.1.1.2.2.2 bouyer
311 1.1.1.2.2.2 bouyer void
312 1.1.1.2.2.2 bouyer AeClearErrorLog (
313 1.1.1.2.2.2 bouyer void);
314 1.1.1.2.2.2 bouyer
315 1.1.1.2.2.2 bouyer ACPI_PHYSICAL_ADDRESS
316 1.1.1.2.2.2 bouyer AeLocalGetRootPointer (
317 1.1.1.2.2.2 bouyer void);
318 1.1.1.2.2.2 bouyer
319 1.1.1.2.2.2 bouyer
320 1.1.1.2.2.2 bouyer /*
321 1.1.1.2.2.2 bouyer * asllisting - generate all "listing" type files
322 1.1.1.2.2.2 bouyer */
323 1.1.1.2.2.2 bouyer void
324 1.1.1.2.2.2 bouyer LsDoListings (
325 1.1.1.2.2.2 bouyer void);
326 1.1.1.2.2.2 bouyer
327 1.1.1.2.2.2 bouyer void
328 1.1.1.2.2.2 bouyer LsWriteNodeToAsmListing (
329 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
330 1.1.1.2.2.2 bouyer
331 1.1.1.2.2.2 bouyer void
332 1.1.1.2.2.2 bouyer LsWriteNode (
333 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
334 1.1.1.2.2.2 bouyer UINT32 FileId);
335 1.1.1.2.2.2 bouyer
336 1.1.1.2.2.2 bouyer void
337 1.1.1.2.2.2 bouyer LsDoHexOutput (
338 1.1.1.2.2.2 bouyer void);
339 1.1.1.2.2.2 bouyer
340 1.1.1.2.2.2 bouyer void
341 1.1.1.2.2.2 bouyer LsDumpParseTree (
342 1.1.1.2.2.2 bouyer void);
343 1.1.1.2.2.2 bouyer
344 1.1.1.2.2.2 bouyer /*
345 1.1.1.2.2.2 bouyer * aslfold - constant folding
346 1.1.1.2.2.2 bouyer */
347 1.1.1.2.2.2 bouyer ACPI_STATUS
348 1.1.1.2.2.2 bouyer OpcAmlConstantWalk (
349 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
350 1.1.1.2.2.2 bouyer UINT32 Level,
351 1.1.1.2.2.2 bouyer void *Context);
352 1.1.1.2.2.2 bouyer
353 1.1.1.2.2.2 bouyer
354 1.1.1.2.2.2 bouyer /*
355 1.1.1.2.2.2 bouyer * aslopcodes - generate AML opcodes
356 1.1.1.2.2.2 bouyer */
357 1.1.1.2.2.2 bouyer ACPI_STATUS
358 1.1.1.2.2.2 bouyer OpcAmlOpcodeWalk (
359 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
360 1.1.1.2.2.2 bouyer UINT32 Level,
361 1.1.1.2.2.2 bouyer void *Context);
362 1.1.1.2.2.2 bouyer
363 1.1.1.2.2.2 bouyer ACPI_STATUS
364 1.1.1.2.2.2 bouyer OpcAmlOpcodeUpdateWalk (
365 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
366 1.1.1.2.2.2 bouyer UINT32 Level,
367 1.1.1.2.2.2 bouyer void *Context);
368 1.1.1.2.2.2 bouyer
369 1.1.1.2.2.2 bouyer void
370 1.1.1.2.2.2 bouyer OpcGenerateAmlOpcode (
371 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
372 1.1.1.2.2.2 bouyer
373 1.1.1.2.2.2 bouyer UINT32
374 1.1.1.2.2.2 bouyer OpcSetOptimalIntegerSize (
375 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
376 1.1.1.2.2.2 bouyer
377 1.1.1.2.2.2 bouyer void
378 1.1.1.2.2.2 bouyer OpcGetIntegerWidth (
379 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
380 1.1.1.2.2.2 bouyer
381 1.1.1.2.2.2 bouyer
382 1.1.1.2.2.2 bouyer /*
383 1.1.1.2.2.2 bouyer * asloperands - generate AML operands for the AML opcodes
384 1.1.1.2.2.2 bouyer */
385 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *
386 1.1.1.2.2.2 bouyer UtGetArg (
387 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
388 1.1.1.2.2.2 bouyer UINT32 Argn);
389 1.1.1.2.2.2 bouyer
390 1.1.1.2.2.2 bouyer void
391 1.1.1.2.2.2 bouyer OpnGenerateAmlOperands (
392 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
393 1.1.1.2.2.2 bouyer
394 1.1.1.2.2.2 bouyer void
395 1.1.1.2.2.2 bouyer OpnDoPackage (
396 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
397 1.1.1.2.2.2 bouyer
398 1.1.1.2.2.2 bouyer
399 1.1.1.2.2.2 bouyer /*
400 1.1.1.2.2.2 bouyer * aslopt - optmization
401 1.1.1.2.2.2 bouyer */
402 1.1.1.2.2.2 bouyer void
403 1.1.1.2.2.2 bouyer OptOptimizeNamePath (
404 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
405 1.1.1.2.2.2 bouyer UINT32 Flags,
406 1.1.1.2.2.2 bouyer ACPI_WALK_STATE *WalkState,
407 1.1.1.2.2.2 bouyer char *AmlNameString,
408 1.1.1.2.2.2 bouyer ACPI_NAMESPACE_NODE *TargetNode);
409 1.1.1.2.2.2 bouyer
410 1.1.1.2.2.2 bouyer
411 1.1.1.2.2.2 bouyer /*
412 1.1.1.2.2.2 bouyer * aslcodegen - code generation
413 1.1.1.2.2.2 bouyer */
414 1.1.1.2.2.2 bouyer void
415 1.1.1.2.2.2 bouyer CgGenerateAmlOutput (
416 1.1.1.2.2.2 bouyer void);
417 1.1.1.2.2.2 bouyer
418 1.1.1.2.2.2 bouyer
419 1.1.1.2.2.2 bouyer /*
420 1.1.1.2.2.2 bouyer * aslfile
421 1.1.1.2.2.2 bouyer */
422 1.1.1.2.2.2 bouyer void
423 1.1.1.2.2.2 bouyer FlOpenFile (
424 1.1.1.2.2.2 bouyer UINT32 FileId,
425 1.1.1.2.2.2 bouyer char *Filename,
426 1.1.1.2.2.2 bouyer char *Mode);
427 1.1.1.2.2.2 bouyer
428 1.1.1.2.2.2 bouyer
429 1.1.1.2.2.2 bouyer /*
430 1.1.1.2.2.2 bouyer * asllength - calculate/adjust AML package lengths
431 1.1.1.2.2.2 bouyer */
432 1.1.1.2.2.2 bouyer ACPI_STATUS
433 1.1.1.2.2.2 bouyer LnPackageLengthWalk (
434 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
435 1.1.1.2.2.2 bouyer UINT32 Level,
436 1.1.1.2.2.2 bouyer void *Context);
437 1.1.1.2.2.2 bouyer
438 1.1.1.2.2.2 bouyer ACPI_STATUS
439 1.1.1.2.2.2 bouyer LnInitLengthsWalk (
440 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
441 1.1.1.2.2.2 bouyer UINT32 Level,
442 1.1.1.2.2.2 bouyer void *Context);
443 1.1.1.2.2.2 bouyer
444 1.1.1.2.2.2 bouyer void
445 1.1.1.2.2.2 bouyer CgGenerateAmlLengths (
446 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
447 1.1.1.2.2.2 bouyer
448 1.1.1.2.2.2 bouyer
449 1.1.1.2.2.2 bouyer /*
450 1.1.1.2.2.2 bouyer * aslmap - opcode mappings and reserved method names
451 1.1.1.2.2.2 bouyer */
452 1.1.1.2.2.2 bouyer ACPI_OBJECT_TYPE
453 1.1.1.2.2.2 bouyer AslMapNamedOpcodeToDataType (
454 1.1.1.2.2.2 bouyer UINT16 Opcode);
455 1.1.1.2.2.2 bouyer
456 1.1.1.2.2.2 bouyer
457 1.1.1.2.2.2 bouyer /*
458 1.1.1.2.2.2 bouyer * aslpredef - ACPI predefined names support
459 1.1.1.2.2.2 bouyer */
460 1.1.1.2.2.2 bouyer void
461 1.1.1.2.2.2 bouyer ApCheckForPredefinedMethod (
462 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
463 1.1.1.2.2.2 bouyer ASL_METHOD_INFO *MethodInfo);
464 1.1.1.2.2.2 bouyer
465 1.1.1.2.2.2 bouyer void
466 1.1.1.2.2.2 bouyer ApCheckPredefinedReturnValue (
467 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
468 1.1.1.2.2.2 bouyer ASL_METHOD_INFO *MethodInfo);
469 1.1.1.2.2.2 bouyer
470 1.1.1.2.2.2 bouyer UINT32
471 1.1.1.2.2.2 bouyer ApCheckForPredefinedName (
472 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
473 1.1.1.2.2.2 bouyer char *Name);
474 1.1.1.2.2.2 bouyer
475 1.1.1.2.2.2 bouyer void
476 1.1.1.2.2.2 bouyer ApCheckForPredefinedObject (
477 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
478 1.1.1.2.2.2 bouyer char *Name);
479 1.1.1.2.2.2 bouyer
480 1.1.1.2.2.2 bouyer void
481 1.1.1.2.2.2 bouyer ApDisplayReservedNames (
482 1.1.1.2.2.2 bouyer void);
483 1.1.1.2.2.2 bouyer
484 1.1.1.2.2.2 bouyer
485 1.1.1.2.2.2 bouyer /*
486 1.1.1.2.2.2 bouyer * asltransform - parse tree transformations
487 1.1.1.2.2.2 bouyer */
488 1.1.1.2.2.2 bouyer ACPI_STATUS
489 1.1.1.2.2.2 bouyer TrAmlTransformWalk (
490 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
491 1.1.1.2.2.2 bouyer UINT32 Level,
492 1.1.1.2.2.2 bouyer void *Context);
493 1.1.1.2.2.2 bouyer
494 1.1.1.2.2.2 bouyer
495 1.1.1.2.2.2 bouyer /*
496 1.1.1.2.2.2 bouyer * asltree - parse tree support
497 1.1.1.2.2.2 bouyer */
498 1.1.1.2.2.2 bouyer ACPI_STATUS
499 1.1.1.2.2.2 bouyer TrWalkParseTree (
500 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
501 1.1.1.2.2.2 bouyer UINT32 Visitation,
502 1.1.1.2.2.2 bouyer ASL_WALK_CALLBACK DescendingCallback,
503 1.1.1.2.2.2 bouyer ASL_WALK_CALLBACK AscendingCallback,
504 1.1.1.2.2.2 bouyer void *Context);
505 1.1.1.2.2.2 bouyer
506 1.1.1.2.2.2 bouyer /* Values for "Visitation" parameter above */
507 1.1.1.2.2.2 bouyer
508 1.1.1.2.2.2 bouyer #define ASL_WALK_VISIT_DOWNWARD 0x01
509 1.1.1.2.2.2 bouyer #define ASL_WALK_VISIT_UPWARD 0x02
510 1.1.1.2.2.2 bouyer #define ASL_WALK_VISIT_TWICE (ASL_WALK_VISIT_DOWNWARD | ASL_WALK_VISIT_UPWARD)
511 1.1.1.2.2.2 bouyer
512 1.1.1.2.2.2 bouyer
513 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *
514 1.1.1.2.2.2 bouyer TrAllocateNode (
515 1.1.1.2.2.2 bouyer UINT32 ParseOpcode);
516 1.1.1.2.2.2 bouyer
517 1.1.1.2.2.2 bouyer void
518 1.1.1.2.2.2 bouyer TrReleaseNode (
519 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
520 1.1.1.2.2.2 bouyer
521 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *
522 1.1.1.2.2.2 bouyer TrUpdateNode (
523 1.1.1.2.2.2 bouyer UINT32 ParseOpcode,
524 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
525 1.1.1.2.2.2 bouyer
526 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *
527 1.1.1.2.2.2 bouyer TrCreateNode (
528 1.1.1.2.2.2 bouyer UINT32 ParseOpcode,
529 1.1.1.2.2.2 bouyer UINT32 NumChildren,
530 1.1.1.2.2.2 bouyer ...);
531 1.1.1.2.2.2 bouyer
532 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *
533 1.1.1.2.2.2 bouyer TrCreateLeafNode (
534 1.1.1.2.2.2 bouyer UINT32 ParseOpcode);
535 1.1.1.2.2.2 bouyer
536 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *
537 1.1.1.2.2.2 bouyer TrCreateValuedLeafNode (
538 1.1.1.2.2.2 bouyer UINT32 ParseOpcode,
539 1.1.1.2.2.2 bouyer UINT64 Value);
540 1.1.1.2.2.2 bouyer
541 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *
542 1.1.1.2.2.2 bouyer TrCreateConstantLeafNode (
543 1.1.1.2.2.2 bouyer UINT32 ParseOpcode);
544 1.1.1.2.2.2 bouyer
545 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *
546 1.1.1.2.2.2 bouyer TrLinkChildren (
547 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
548 1.1.1.2.2.2 bouyer UINT32 NumChildren,
549 1.1.1.2.2.2 bouyer ...);
550 1.1.1.2.2.2 bouyer
551 1.1.1.2.2.2 bouyer void
552 1.1.1.2.2.2 bouyer TrSetEndLineNumber (
553 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
554 1.1.1.2.2.2 bouyer
555 1.1.1.2.2.2 bouyer void
556 1.1.1.2.2.2 bouyer TrWalkTree (
557 1.1.1.2.2.2 bouyer void);
558 1.1.1.2.2.2 bouyer
559 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *
560 1.1.1.2.2.2 bouyer TrLinkPeerNode (
561 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op1,
562 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op2);
563 1.1.1.2.2.2 bouyer
564 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *
565 1.1.1.2.2.2 bouyer TrLinkChildNode (
566 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op1,
567 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op2);
568 1.1.1.2.2.2 bouyer
569 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *
570 1.1.1.2.2.2 bouyer TrSetNodeFlags (
571 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
572 1.1.1.2.2.2 bouyer UINT32 Flags);
573 1.1.1.2.2.2 bouyer
574 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *
575 1.1.1.2.2.2 bouyer TrLinkPeerNodes (
576 1.1.1.2.2.2 bouyer UINT32 NumPeers,
577 1.1.1.2.2.2 bouyer ...);
578 1.1.1.2.2.2 bouyer
579 1.1.1.2.2.2 bouyer
580 1.1.1.2.2.2 bouyer /*
581 1.1.1.2.2.2 bouyer * aslfiles - File I/O support
582 1.1.1.2.2.2 bouyer */
583 1.1.1.2.2.2 bouyer void
584 1.1.1.2.2.2 bouyer AslAbort (
585 1.1.1.2.2.2 bouyer void);
586 1.1.1.2.2.2 bouyer
587 1.1.1.2.2.2 bouyer void
588 1.1.1.2.2.2 bouyer FlAddIncludeDirectory (
589 1.1.1.2.2.2 bouyer char *Dir);
590 1.1.1.2.2.2 bouyer
591 1.1.1.2.2.2 bouyer void
592 1.1.1.2.2.2 bouyer FlOpenIncludeFile (
593 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
594 1.1.1.2.2.2 bouyer
595 1.1.1.2.2.2 bouyer void
596 1.1.1.2.2.2 bouyer FlFileError (
597 1.1.1.2.2.2 bouyer UINT32 FileId,
598 1.1.1.2.2.2 bouyer UINT8 ErrorId);
599 1.1.1.2.2.2 bouyer
600 1.1.1.2.2.2 bouyer UINT32
601 1.1.1.2.2.2 bouyer FlGetFileSize (
602 1.1.1.2.2.2 bouyer UINT32 FileId);
603 1.1.1.2.2.2 bouyer
604 1.1.1.2.2.2 bouyer ACPI_STATUS
605 1.1.1.2.2.2 bouyer FlReadFile (
606 1.1.1.2.2.2 bouyer UINT32 FileId,
607 1.1.1.2.2.2 bouyer void *Buffer,
608 1.1.1.2.2.2 bouyer UINT32 Length);
609 1.1.1.2.2.2 bouyer
610 1.1.1.2.2.2 bouyer void
611 1.1.1.2.2.2 bouyer FlWriteFile (
612 1.1.1.2.2.2 bouyer UINT32 FileId,
613 1.1.1.2.2.2 bouyer void *Buffer,
614 1.1.1.2.2.2 bouyer UINT32 Length);
615 1.1.1.2.2.2 bouyer
616 1.1.1.2.2.2 bouyer void
617 1.1.1.2.2.2 bouyer FlSeekFile (
618 1.1.1.2.2.2 bouyer UINT32 FileId,
619 1.1.1.2.2.2 bouyer long Offset);
620 1.1.1.2.2.2 bouyer
621 1.1.1.2.2.2 bouyer void
622 1.1.1.2.2.2 bouyer FlCloseFile (
623 1.1.1.2.2.2 bouyer UINT32 FileId);
624 1.1.1.2.2.2 bouyer
625 1.1.1.2.2.2 bouyer void
626 1.1.1.2.2.2 bouyer FlPrintFile (
627 1.1.1.2.2.2 bouyer UINT32 FileId,
628 1.1.1.2.2.2 bouyer char *Format,
629 1.1.1.2.2.2 bouyer ...);
630 1.1.1.2.2.2 bouyer
631 1.1.1.2.2.2 bouyer void
632 1.1.1.2.2.2 bouyer FlSetLineNumber (
633 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
634 1.1.1.2.2.2 bouyer
635 1.1.1.2.2.2 bouyer ACPI_STATUS
636 1.1.1.2.2.2 bouyer FlOpenInputFile (
637 1.1.1.2.2.2 bouyer char *InputFilename);
638 1.1.1.2.2.2 bouyer
639 1.1.1.2.2.2 bouyer ACPI_STATUS
640 1.1.1.2.2.2 bouyer FlOpenAmlOutputFile (
641 1.1.1.2.2.2 bouyer char *InputFilename);
642 1.1.1.2.2.2 bouyer
643 1.1.1.2.2.2 bouyer ACPI_STATUS
644 1.1.1.2.2.2 bouyer FlOpenMiscOutputFiles (
645 1.1.1.2.2.2 bouyer char *InputFilename);
646 1.1.1.2.2.2 bouyer
647 1.1.1.2.2.2 bouyer
648 1.1.1.2.2.2 bouyer /*
649 1.1.1.2.2.2 bouyer * asload - load namespace in prep for cross reference
650 1.1.1.2.2.2 bouyer */
651 1.1.1.2.2.2 bouyer ACPI_STATUS
652 1.1.1.2.2.2 bouyer LdLoadNamespace (
653 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *RootOp);
654 1.1.1.2.2.2 bouyer
655 1.1.1.2.2.2 bouyer
656 1.1.1.2.2.2 bouyer /*
657 1.1.1.2.2.2 bouyer * asllookup - namespace cross reference
658 1.1.1.2.2.2 bouyer */
659 1.1.1.2.2.2 bouyer ACPI_STATUS
660 1.1.1.2.2.2 bouyer LkCrossReferenceNamespace (
661 1.1.1.2.2.2 bouyer void);
662 1.1.1.2.2.2 bouyer
663 1.1.1.2.2.2 bouyer void
664 1.1.1.2.2.2 bouyer LkFindUnreferencedObjects (
665 1.1.1.2.2.2 bouyer void);
666 1.1.1.2.2.2 bouyer
667 1.1.1.2.2.2 bouyer ACPI_STATUS
668 1.1.1.2.2.2 bouyer LsDisplayNamespace (
669 1.1.1.2.2.2 bouyer void);
670 1.1.1.2.2.2 bouyer
671 1.1.1.2.2.2 bouyer void
672 1.1.1.2.2.2 bouyer LsSetupNsList (
673 1.1.1.2.2.2 bouyer void *Handle);
674 1.1.1.2.2.2 bouyer
675 1.1.1.2.2.2 bouyer
676 1.1.1.2.2.2 bouyer /*
677 1.1.1.2.2.2 bouyer * aslutils - common compiler utilites
678 1.1.1.2.2.2 bouyer */
679 1.1.1.2.2.2 bouyer void
680 1.1.1.2.2.2 bouyer DbgPrint (
681 1.1.1.2.2.2 bouyer UINT32 Type,
682 1.1.1.2.2.2 bouyer char *Format,
683 1.1.1.2.2.2 bouyer ...);
684 1.1.1.2.2.2 bouyer
685 1.1.1.2.2.2 bouyer /* Type values for above */
686 1.1.1.2.2.2 bouyer
687 1.1.1.2.2.2 bouyer #define ASL_DEBUG_OUTPUT 0
688 1.1.1.2.2.2 bouyer #define ASL_PARSE_OUTPUT 1
689 1.1.1.2.2.2 bouyer #define ASL_TREE_OUTPUT 2
690 1.1.1.2.2.2 bouyer
691 1.1.1.2.2.2 bouyer void
692 1.1.1.2.2.2 bouyer UtDisplaySupportedTables (
693 1.1.1.2.2.2 bouyer void);
694 1.1.1.2.2.2 bouyer
695 1.1.1.2.2.2 bouyer void
696 1.1.1.2.2.2 bouyer UtDisplayConstantOpcodes (
697 1.1.1.2.2.2 bouyer void);
698 1.1.1.2.2.2 bouyer
699 1.1.1.2.2.2 bouyer UINT8
700 1.1.1.2.2.2 bouyer UtBeginEvent (
701 1.1.1.2.2.2 bouyer char *Name);
702 1.1.1.2.2.2 bouyer
703 1.1.1.2.2.2 bouyer void
704 1.1.1.2.2.2 bouyer UtEndEvent (
705 1.1.1.2.2.2 bouyer UINT8 Event);
706 1.1.1.2.2.2 bouyer
707 1.1.1.2.2.2 bouyer void *
708 1.1.1.2.2.2 bouyer UtLocalCalloc (
709 1.1.1.2.2.2 bouyer UINT32 Size);
710 1.1.1.2.2.2 bouyer
711 1.1.1.2.2.2 bouyer void
712 1.1.1.2.2.2 bouyer UtPrintFormattedName (
713 1.1.1.2.2.2 bouyer UINT16 ParseOpcode,
714 1.1.1.2.2.2 bouyer UINT32 Level);
715 1.1.1.2.2.2 bouyer
716 1.1.1.2.2.2 bouyer void
717 1.1.1.2.2.2 bouyer UtDisplaySummary (
718 1.1.1.2.2.2 bouyer UINT32 FileId);
719 1.1.1.2.2.2 bouyer
720 1.1.1.2.2.2 bouyer UINT8
721 1.1.1.2.2.2 bouyer UtHexCharToValue (
722 1.1.1.2.2.2 bouyer int HexChar);
723 1.1.1.2.2.2 bouyer
724 1.1.1.2.2.2 bouyer void
725 1.1.1.2.2.2 bouyer UtConvertByteToHex (
726 1.1.1.2.2.2 bouyer UINT8 RawByte,
727 1.1.1.2.2.2 bouyer UINT8 *Buffer);
728 1.1.1.2.2.2 bouyer
729 1.1.1.2.2.2 bouyer void
730 1.1.1.2.2.2 bouyer UtConvertByteToAsmHex (
731 1.1.1.2.2.2 bouyer UINT8 RawByte,
732 1.1.1.2.2.2 bouyer UINT8 *Buffer);
733 1.1.1.2.2.2 bouyer
734 1.1.1.2.2.2 bouyer char *
735 1.1.1.2.2.2 bouyer UtGetOpName (
736 1.1.1.2.2.2 bouyer UINT32 ParseOpcode);
737 1.1.1.2.2.2 bouyer
738 1.1.1.2.2.2 bouyer void
739 1.1.1.2.2.2 bouyer UtSetParseOpName (
740 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
741 1.1.1.2.2.2 bouyer
742 1.1.1.2.2.2 bouyer char *
743 1.1.1.2.2.2 bouyer UtGetStringBuffer (
744 1.1.1.2.2.2 bouyer UINT32 Length);
745 1.1.1.2.2.2 bouyer
746 1.1.1.2.2.2 bouyer ACPI_STATUS
747 1.1.1.2.2.2 bouyer UtInternalizeName (
748 1.1.1.2.2.2 bouyer char *ExternalName,
749 1.1.1.2.2.2 bouyer char **ConvertedName);
750 1.1.1.2.2.2 bouyer
751 1.1.1.2.2.2 bouyer void
752 1.1.1.2.2.2 bouyer UtAttachNamepathToOwner (
753 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
754 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *NameNode);
755 1.1.1.2.2.2 bouyer
756 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *
757 1.1.1.2.2.2 bouyer UtCheckIntegerRange (
758 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
759 1.1.1.2.2.2 bouyer UINT32 LowValue,
760 1.1.1.2.2.2 bouyer UINT32 HighValue);
761 1.1.1.2.2.2 bouyer
762 1.1.1.2.2.2 bouyer UINT64
763 1.1.1.2.2.2 bouyer UtDoConstant (
764 1.1.1.2.2.2 bouyer char *String);
765 1.1.1.2.2.2 bouyer
766 1.1.1.2.2.2 bouyer /*
767 1.1.1.2.2.2 bouyer * asluuid - UUID support
768 1.1.1.2.2.2 bouyer */
769 1.1.1.2.2.2 bouyer ACPI_STATUS
770 1.1.1.2.2.2 bouyer AuValidateUuid (
771 1.1.1.2.2.2 bouyer char *InString);
772 1.1.1.2.2.2 bouyer
773 1.1.1.2.2.2 bouyer ACPI_STATUS
774 1.1.1.2.2.2 bouyer AuConvertStringToUuid (
775 1.1.1.2.2.2 bouyer char *InString,
776 1.1.1.2.2.2 bouyer char *UuIdBuffer);
777 1.1.1.2.2.2 bouyer
778 1.1.1.2.2.2 bouyer ACPI_STATUS
779 1.1.1.2.2.2 bouyer AuConvertUuidToString (
780 1.1.1.2.2.2 bouyer char *UuIdBuffer,
781 1.1.1.2.2.2 bouyer char *OutString);
782 1.1.1.2.2.2 bouyer
783 1.1.1.2.2.2 bouyer /*
784 1.1.1.2.2.2 bouyer * aslresource - Resource template generation utilities
785 1.1.1.2.2.2 bouyer */
786 1.1.1.2.2.2 bouyer void
787 1.1.1.2.2.2 bouyer RsSmallAddressCheck (
788 1.1.1.2.2.2 bouyer UINT8 Type,
789 1.1.1.2.2.2 bouyer UINT32 Minimum,
790 1.1.1.2.2.2 bouyer UINT32 Maximum,
791 1.1.1.2.2.2 bouyer UINT32 Length,
792 1.1.1.2.2.2 bouyer UINT32 Alignment,
793 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *MinOp,
794 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *MaxOp,
795 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *LengthOp,
796 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *AlignOp,
797 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
798 1.1.1.2.2.2 bouyer
799 1.1.1.2.2.2 bouyer void
800 1.1.1.2.2.2 bouyer RsLargeAddressCheck (
801 1.1.1.2.2.2 bouyer UINT64 Minimum,
802 1.1.1.2.2.2 bouyer UINT64 Maximum,
803 1.1.1.2.2.2 bouyer UINT64 Length,
804 1.1.1.2.2.2 bouyer UINT64 Granularity,
805 1.1.1.2.2.2 bouyer UINT8 Flags,
806 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *MinOp,
807 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *MaxOp,
808 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *LengthOp,
809 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *GranOp,
810 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
811 1.1.1.2.2.2 bouyer
812 1.1.1.2.2.2 bouyer UINT16
813 1.1.1.2.2.2 bouyer RsGetStringDataLength (
814 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *InitializerOp);
815 1.1.1.2.2.2 bouyer
816 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
817 1.1.1.2.2.2 bouyer RsAllocateResourceNode (
818 1.1.1.2.2.2 bouyer UINT32 Size);
819 1.1.1.2.2.2 bouyer
820 1.1.1.2.2.2 bouyer void
821 1.1.1.2.2.2 bouyer RsCreateBitField (
822 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
823 1.1.1.2.2.2 bouyer char *Name,
824 1.1.1.2.2.2 bouyer UINT32 ByteOffset,
825 1.1.1.2.2.2 bouyer UINT32 BitOffset);
826 1.1.1.2.2.2 bouyer
827 1.1.1.2.2.2 bouyer void
828 1.1.1.2.2.2 bouyer RsCreateByteField (
829 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
830 1.1.1.2.2.2 bouyer char *Name,
831 1.1.1.2.2.2 bouyer UINT32 ByteOffset);
832 1.1.1.2.2.2 bouyer
833 1.1.1.2.2.2 bouyer void
834 1.1.1.2.2.2 bouyer RsSetFlagBits (
835 1.1.1.2.2.2 bouyer UINT8 *Flags,
836 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
837 1.1.1.2.2.2 bouyer UINT8 Position,
838 1.1.1.2.2.2 bouyer UINT8 DefaultBit);
839 1.1.1.2.2.2 bouyer
840 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *
841 1.1.1.2.2.2 bouyer RsCompleteNodeAndGetNext (
842 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
843 1.1.1.2.2.2 bouyer
844 1.1.1.2.2.2 bouyer void
845 1.1.1.2.2.2 bouyer RsCheckListForDuplicates (
846 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
847 1.1.1.2.2.2 bouyer
848 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
849 1.1.1.2.2.2 bouyer RsDoOneResourceDescriptor (
850 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *DescriptorTypeOp,
851 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset,
852 1.1.1.2.2.2 bouyer UINT8 *State);
853 1.1.1.2.2.2 bouyer
854 1.1.1.2.2.2 bouyer /* Values for State above */
855 1.1.1.2.2.2 bouyer
856 1.1.1.2.2.2 bouyer #define ACPI_RSTATE_NORMAL 0
857 1.1.1.2.2.2 bouyer #define ACPI_RSTATE_START_DEPENDENT 1
858 1.1.1.2.2.2 bouyer #define ACPI_RSTATE_DEPENDENT_LIST 2
859 1.1.1.2.2.2 bouyer
860 1.1.1.2.2.2 bouyer UINT32
861 1.1.1.2.2.2 bouyer RsLinkDescriptorChain (
862 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE **PreviousRnode,
863 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *Rnode);
864 1.1.1.2.2.2 bouyer
865 1.1.1.2.2.2 bouyer void
866 1.1.1.2.2.2 bouyer RsDoResourceTemplate (
867 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op);
868 1.1.1.2.2.2 bouyer
869 1.1.1.2.2.2 bouyer
870 1.1.1.2.2.2 bouyer /*
871 1.1.1.2.2.2 bouyer * aslrestype1 - Miscellaneous Small descriptors
872 1.1.1.2.2.2 bouyer */
873 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
874 1.1.1.2.2.2 bouyer RsDoEndTagDescriptor (
875 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
876 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
877 1.1.1.2.2.2 bouyer
878 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
879 1.1.1.2.2.2 bouyer RsDoEndDependentDescriptor (
880 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
881 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
882 1.1.1.2.2.2 bouyer
883 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
884 1.1.1.2.2.2 bouyer RsDoMemory24Descriptor (
885 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
886 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
887 1.1.1.2.2.2 bouyer
888 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
889 1.1.1.2.2.2 bouyer RsDoMemory32Descriptor (
890 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
891 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
892 1.1.1.2.2.2 bouyer
893 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
894 1.1.1.2.2.2 bouyer RsDoMemory32FixedDescriptor (
895 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
896 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
897 1.1.1.2.2.2 bouyer
898 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
899 1.1.1.2.2.2 bouyer RsDoStartDependentDescriptor (
900 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
901 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
902 1.1.1.2.2.2 bouyer
903 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
904 1.1.1.2.2.2 bouyer RsDoStartDependentNoPriDescriptor (
905 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
906 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
907 1.1.1.2.2.2 bouyer
908 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
909 1.1.1.2.2.2 bouyer RsDoVendorSmallDescriptor (
910 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
911 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
912 1.1.1.2.2.2 bouyer
913 1.1.1.2.2.2 bouyer
914 1.1.1.2.2.2 bouyer /*
915 1.1.1.2.2.2 bouyer * aslrestype1i - I/O-related Small descriptors
916 1.1.1.2.2.2 bouyer */
917 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
918 1.1.1.2.2.2 bouyer RsDoDmaDescriptor (
919 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
920 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
921 1.1.1.2.2.2 bouyer
922 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
923 1.1.1.2.2.2 bouyer RsDoFixedIoDescriptor (
924 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
925 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
926 1.1.1.2.2.2 bouyer
927 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
928 1.1.1.2.2.2 bouyer RsDoIoDescriptor (
929 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
930 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
931 1.1.1.2.2.2 bouyer
932 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
933 1.1.1.2.2.2 bouyer RsDoIrqDescriptor (
934 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
935 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
936 1.1.1.2.2.2 bouyer
937 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
938 1.1.1.2.2.2 bouyer RsDoIrqNoFlagsDescriptor (
939 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
940 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
941 1.1.1.2.2.2 bouyer
942 1.1.1.2.2.2 bouyer
943 1.1.1.2.2.2 bouyer /*
944 1.1.1.2.2.2 bouyer * aslrestype2 - Large resource descriptors
945 1.1.1.2.2.2 bouyer */
946 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
947 1.1.1.2.2.2 bouyer RsDoInterruptDescriptor (
948 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
949 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
950 1.1.1.2.2.2 bouyer
951 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
952 1.1.1.2.2.2 bouyer RsDoVendorLargeDescriptor (
953 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
954 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
955 1.1.1.2.2.2 bouyer
956 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
957 1.1.1.2.2.2 bouyer RsDoGeneralRegisterDescriptor (
958 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
959 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
960 1.1.1.2.2.2 bouyer
961 1.1.1.2.2.2 bouyer
962 1.1.1.2.2.2 bouyer /*
963 1.1.1.2.2.2 bouyer * aslrestype2d - DWord address descriptors
964 1.1.1.2.2.2 bouyer */
965 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
966 1.1.1.2.2.2 bouyer RsDoDwordIoDescriptor (
967 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
968 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
969 1.1.1.2.2.2 bouyer
970 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
971 1.1.1.2.2.2 bouyer RsDoDwordMemoryDescriptor (
972 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
973 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
974 1.1.1.2.2.2 bouyer
975 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
976 1.1.1.2.2.2 bouyer RsDoDwordSpaceDescriptor (
977 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
978 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
979 1.1.1.2.2.2 bouyer
980 1.1.1.2.2.2 bouyer
981 1.1.1.2.2.2 bouyer /*
982 1.1.1.2.2.2 bouyer * aslrestype2e - Extended address descriptors
983 1.1.1.2.2.2 bouyer */
984 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
985 1.1.1.2.2.2 bouyer RsDoExtendedIoDescriptor (
986 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
987 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
988 1.1.1.2.2.2 bouyer
989 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
990 1.1.1.2.2.2 bouyer RsDoExtendedMemoryDescriptor (
991 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
992 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
993 1.1.1.2.2.2 bouyer
994 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
995 1.1.1.2.2.2 bouyer RsDoExtendedSpaceDescriptor (
996 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
997 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
998 1.1.1.2.2.2 bouyer
999 1.1.1.2.2.2 bouyer
1000 1.1.1.2.2.2 bouyer /*
1001 1.1.1.2.2.2 bouyer * aslrestype2q - QWord address descriptors
1002 1.1.1.2.2.2 bouyer */
1003 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
1004 1.1.1.2.2.2 bouyer RsDoQwordIoDescriptor (
1005 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
1006 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
1007 1.1.1.2.2.2 bouyer
1008 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
1009 1.1.1.2.2.2 bouyer RsDoQwordMemoryDescriptor (
1010 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
1011 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
1012 1.1.1.2.2.2 bouyer
1013 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
1014 1.1.1.2.2.2 bouyer RsDoQwordSpaceDescriptor (
1015 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
1016 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
1017 1.1.1.2.2.2 bouyer
1018 1.1.1.2.2.2 bouyer
1019 1.1.1.2.2.2 bouyer /*
1020 1.1.1.2.2.2 bouyer * aslrestype2w - Word address descriptors
1021 1.1.1.2.2.2 bouyer */
1022 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
1023 1.1.1.2.2.2 bouyer RsDoWordIoDescriptor (
1024 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
1025 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
1026 1.1.1.2.2.2 bouyer
1027 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
1028 1.1.1.2.2.2 bouyer RsDoWordSpaceDescriptor (
1029 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
1030 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
1031 1.1.1.2.2.2 bouyer
1032 1.1.1.2.2.2 bouyer ASL_RESOURCE_NODE *
1033 1.1.1.2.2.2 bouyer RsDoWordBusNumberDescriptor (
1034 1.1.1.2.2.2 bouyer ACPI_PARSE_OBJECT *Op,
1035 1.1.1.2.2.2 bouyer UINT32 CurrentByteOffset);
1036 1.1.1.2.2.2 bouyer
1037 1.1.1.2.2.2 bouyer /*
1038 1.1.1.2.2.2 bouyer * Entry to data table compiler subsystem
1039 1.1.1.2.2.2 bouyer */
1040 1.1.1.2.2.2 bouyer ACPI_STATUS
1041 1.1.1.2.2.2 bouyer DtDoCompile(
1042 1.1.1.2.2.2 bouyer void);
1043 1.1.1.2.2.2 bouyer
1044 1.1.1.2.2.2 bouyer ACPI_STATUS
1045 1.1.1.2.2.2 bouyer DtCreateTemplates (
1046 1.1.1.2.2.2 bouyer char *Signature);
1047 1.1.1.2.2.2 bouyer
1048 1.1.1.2.2.2 bouyer #endif /* __ASLCOMPILER_H */
1049 1.1.1.2.2.2 bouyer
1050