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