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