Home | History | Annotate | Line # | Download | only in acpihelp
acpihelp.h revision 1.1.1.8
      1 /******************************************************************************
      2  *
      3  * Module Name: acpihelp.h - Include file for AcpiHelp utility
      4  *
      5  *****************************************************************************/
      6 
      7 /*
      8  * Copyright (C) 2000 - 2017, 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 
     94 
     95 #define AH_DISPLAY_EXCEPTION(Status, Name) \
     96     printf ("%.4X: %s\n", Status, Name)
     97 
     98 #define AH_DISPLAY_EXCEPTION_TEXT(Status, Exception) \
     99     printf ("%.4X: %-28s (%s)\n", Status,\
    100     Exception->Name, Exception->Description)
    101 
    102 
    103 typedef enum
    104 {
    105     AH_DECODE_DEFAULT           = 0,
    106     AH_DECODE_ASL,
    107     AH_DECODE_ASL_KEYWORD,
    108     AH_DECODE_PREDEFINED_NAME,
    109     AH_DECODE_AML,
    110     AH_DECODE_AML_OPCODE,
    111     AH_DECODE_AML_TYPE,
    112     AH_DECODE_ASL_AML,
    113     AH_DECODE_EXCEPTION,
    114 
    115     AH_DISPLAY_DEVICE_IDS,
    116     AH_DISPLAY_UUIDS,
    117     AH_DISPLAY_TABLES,
    118     AH_DISPLAY_DIRECTIVES
    119 
    120 } AH_OPTION_TYPES;
    121 
    122 typedef struct ah_aml_opcode
    123 {
    124     UINT16          OpcodeRangeStart;
    125     UINT16          OpcodeRangeEnd;
    126     char            *OpcodeString;
    127     char            *OpcodeName;
    128     char            *Type;
    129     char            *FixedArguments;
    130     char            *VariableArguments;
    131     char            *Grammar;
    132 
    133 } AH_AML_OPCODE;
    134 
    135 typedef struct ah_aml_type
    136 {
    137     char            *Name;
    138     char            *Description;
    139 
    140 } AH_AML_TYPE;
    141 
    142 typedef struct ah_asl_operator
    143 {
    144     char            *Name;
    145     char            *Syntax;
    146     char            *Description;
    147 
    148 } AH_ASL_OPERATOR;
    149 
    150 typedef struct ah_asl_keyword
    151 {
    152     char            *Name;
    153     char            *Description;
    154     char            *KeywordList;
    155 
    156 } AH_ASL_KEYWORD;
    157 
    158 typedef struct ah_directive_info
    159 {
    160     char            *Name;
    161     char            *Description;
    162 
    163 } AH_DIRECTIVE_INFO;
    164 
    165 
    166 /* Externals for various data tables */
    167 
    168 extern const AH_AML_OPCODE          Gbl_AmlOpcodeInfo[];
    169 extern const AH_AML_TYPE            Gbl_AmlTypesInfo[];
    170 extern const AH_ASL_OPERATOR        Gbl_AslOperatorInfo[];
    171 extern const AH_ASL_KEYWORD         Gbl_AslKeywordInfo[];
    172 extern const AH_UUID                Gbl_AcpiUuids[];
    173 extern const AH_DIRECTIVE_INFO      Gbl_PreprocessorDirectives[];
    174 extern const AH_TABLE               Gbl_AcpiSupportedTables[];
    175 
    176 
    177 void
    178 AhFindAmlOpcode (
    179     char                    *Name);
    180 
    181 void
    182 AhDecodeAmlOpcode (
    183     char                    *Name);
    184 
    185 void
    186 AhDecodeException (
    187     char                    *Name);
    188 
    189 void
    190 AhFindPredefinedNames (
    191     char                    *Name);
    192 
    193 void
    194 AhFindAslAndAmlOperators (
    195     char                    *Name);
    196 
    197 UINT32
    198 AhFindAslOperators (
    199     char                    *Name);
    200 
    201 void
    202 AhFindAslKeywords (
    203     char                    *Name);
    204 
    205 void
    206 AhFindAmlTypes (
    207     char                    *Name);
    208 
    209 void
    210 AhDisplayDeviceIds (
    211     char                    *Name);
    212 
    213 void
    214 AhDisplayTables (
    215     void);
    216 
    217 const AH_TABLE *
    218 AcpiAhGetTableInfo (
    219     char                    *Signature);
    220 
    221 void
    222 AhDisplayUuids (
    223     void);
    224 
    225 void
    226 AhDisplayDirectives (
    227     void);
    228 
    229 void
    230 AhPrintOneField (
    231     UINT32                  Indent,
    232     UINT32                  CurrentPosition,
    233     UINT32                  MaxPosition,
    234     const char              *Field);
    235 
    236 #endif /* __ACPIHELP_H */
    237