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