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