Home | History | Annotate | Line # | Download | only in acpihelp
acpihelp.h revision 1.1.1.13
      1 /******************************************************************************
      2  *
      3  * Module Name: acpihelp.h - Include file for AcpiHelp utility
      4  *
      5  *****************************************************************************/
      6 
      7 /*
      8  * Copyright (C) 2000 - 2020, Intel Corp.
      9  * All rights reserved.
     10  *
     11  * Redistribution and use in source and binary forms, with or without
     12  * modification, are permitted provided that the following conditions
     13  * are met:
     14  * 1. Redistributions of source code must retain the above copyright
     15  *    notice, this list of conditions, and the following disclaimer,
     16  *    without modification.
     17  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
     18  *    substantially similar to the "NO WARRANTY" disclaimer below
     19  *    ("Disclaimer") and any redistribution must be conditioned upon
     20  *    including a substantially similar Disclaimer requirement for further
     21  *    binary redistribution.
     22  * 3. Neither the names of the above-listed copyright holders nor the names
     23  *    of any contributors may be used to endorse or promote products derived
     24  *    from this software without specific prior written permission.
     25  *
     26  * Alternatively, this software may be distributed under the terms of the
     27  * GNU General Public License ("GPL") version 2 as published by the Free
     28  * Software Foundation.
     29  *
     30  * NO WARRANTY
     31  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     32  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     33  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
     34  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     35  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     36  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     37  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     38  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     39  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
     40  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     41  * POSSIBILITY OF SUCH DAMAGES.
     42  */
     43 
     44 #ifndef __ACPIHELP_H
     45 #define __ACPIHELP_H
     46 
     47 
     48 #include "acpi.h"
     49 #include "accommon.h"
     50 #include "acapps.h"
     51 
     52 #include <sys/types.h>
     53 #ifdef WIN32
     54 #include <io.h>
     55 #include <direct.h>
     56 #endif
     57 
     58 
     59 /*
     60  * Global variables. Defined in ahmain.c only, externed in all other files
     61  */
     62 #undef ACPI_GLOBAL
     63 #undef ACPI_INIT_GLOBAL
     64 
     65 #ifdef DEFINE_AHELP_GLOBALS
     66 #define ACPI_GLOBAL(type,name) \
     67     extern type name; \
     68     type name
     69 
     70 #define ACPI_INIT_GLOBAL(type,name,value) \
     71     type name=value
     72 
     73 #else
     74 #ifndef ACPI_GLOBAL
     75 #define ACPI_GLOBAL(type,name) \
     76     extern type name
     77 #endif
     78 
     79 #ifndef ACPI_INIT_GLOBAL
     80 #define ACPI_INIT_GLOBAL(type,name,value) \
     81     extern type name
     82 #endif
     83 #endif
     84 
     85 
     86 #define AH_BUFFER_LENGTH                128
     87 #define AH_LINE_BUFFER_LENGTH           512
     88 #define AH_MAX_ASL_LINE_LENGTH          70
     89 #define AH_MAX_AML_LINE_LENGTH          100
     90 
     91 ACPI_GLOBAL (char,                      Gbl_Buffer[AH_BUFFER_LENGTH]);
     92 ACPI_GLOBAL (char,                      Gbl_LineBuffer[AH_LINE_BUFFER_LENGTH]);
     93 extern const AH_PREDEFINED_NAME         AslPredefinedInfo[];
     94 extern const AH_DEVICE_ID               AslDeviceIds[];
     95 
     96 
     97 #define AH_DISPLAY_EXCEPTION(Status, Name) \
     98     printf ("%.4X: %s\n", Status, Name)
     99 
    100 #define AH_DISPLAY_EXCEPTION_TEXT(Status, Exception) \
    101     printf ("%.4X: %-28s (%s)\n", Status,\
    102     Exception->Name, Exception->Description)
    103 
    104 
    105 typedef enum
    106 {
    107     AH_DECODE_DEFAULT           = 0,
    108     AH_DECODE_ASL,
    109     AH_DECODE_ASL_KEYWORD,
    110     AH_DECODE_PREDEFINED_NAME,
    111     AH_DECODE_AML,
    112     AH_DECODE_AML_OPCODE,
    113     AH_DECODE_AML_TYPE,
    114     AH_DECODE_ASL_AML,
    115     AH_DECODE_EXCEPTION,
    116 
    117     AH_DISPLAY_DEVICE_IDS,
    118     AH_DISPLAY_UUIDS,
    119     AH_DISPLAY_TABLES,
    120     AH_DISPLAY_DIRECTIVES,
    121     AH_DECODE_ASL_EXCEPTION
    122 
    123 } AH_OPTION_TYPES;
    124 
    125 typedef struct ah_aml_opcode
    126 {
    127     UINT16          OpcodeRangeStart;
    128     UINT16          OpcodeRangeEnd;
    129     char            *OpcodeString;
    130     char            *OpcodeName;
    131     char            *Type;
    132     char            *FixedArguments;
    133     char            *VariableArguments;
    134     char            *Grammar;
    135 
    136 } AH_AML_OPCODE;
    137 
    138 typedef struct ah_aml_type
    139 {
    140     char            *Name;
    141     char            *Description;
    142 
    143 } AH_AML_TYPE;
    144 
    145 typedef struct ah_asl_operator
    146 {
    147     char            *Name;
    148     char            *Syntax;
    149     char            *Description;
    150 
    151 } AH_ASL_OPERATOR;
    152 
    153 typedef struct ah_asl_keyword
    154 {
    155     char            *Name;
    156     char            *Description;
    157     char            *KeywordList;
    158 
    159 } AH_ASL_KEYWORD;
    160 
    161 typedef struct ah_directive_info
    162 {
    163     char            *Name;
    164     char            *Description;
    165 
    166 } AH_DIRECTIVE_INFO;
    167 
    168 
    169 /* Externals for various data tables */
    170 
    171 extern const AH_AML_OPCODE          Gbl_AmlOpcodeInfo[];
    172 extern const AH_AML_TYPE            Gbl_AmlTypesInfo[];
    173 extern const AH_ASL_OPERATOR        Gbl_AslOperatorInfo[];
    174 extern const AH_ASL_KEYWORD         Gbl_AslKeywordInfo[];
    175 extern const AH_UUID                Gbl_AcpiUuids[];
    176 extern const AH_DIRECTIVE_INFO      Gbl_PreprocessorDirectives[];
    177 extern const AH_TABLE               AcpiGbl_SupportedTables[];
    178 
    179 
    180 void
    181 AhFindAmlOpcode (
    182     char                    *Name);
    183 
    184 void
    185 AhDecodeAmlOpcode (
    186     char                    *Name);
    187 
    188 void
    189 AhDecodeException (
    190     char                    *Name);
    191 
    192 void
    193 AhDecodeAslException (
    194     char                    *Name);
    195 
    196 void
    197 AhFindPredefinedNames (
    198     char                    *Name);
    199 
    200 void
    201 AhFindAslAndAmlOperators (
    202     char                    *Name);
    203 
    204 UINT32
    205 AhFindAslOperators (
    206     char                    *Name);
    207 
    208 void
    209 AhFindAslKeywords (
    210     char                    *Name);
    211 
    212 void
    213 AhFindAmlTypes (
    214     char                    *Name);
    215 
    216 void
    217 AhDisplayDeviceIds (
    218     char                    *Name);
    219 
    220 void
    221 AhDisplayTables (
    222     void);
    223 
    224 const AH_TABLE *
    225 AcpiAhGetTableInfo (
    226     char                    *Signature);
    227 
    228 void
    229 AhDisplayUuids (
    230     void);
    231 
    232 void
    233 AhDisplayDirectives (
    234     void);
    235 
    236 void
    237 AhPrintOneField (
    238     UINT32                  Indent,
    239     UINT32                  CurrentPosition,
    240     UINT32                  MaxPosition,
    241     const char              *Field);
    242 
    243 #endif /* __ACPIHELP_H */
    244