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