1433d6423SLionel Sambuc /****************************************************************************** 2433d6423SLionel Sambuc * 3433d6423SLionel Sambuc * Module Name: acapps - common include for ACPI applications/tools 4433d6423SLionel Sambuc * 5433d6423SLionel Sambuc *****************************************************************************/ 6433d6423SLionel Sambuc 7*29492bb7SDavid van Moolenbroek /* 8*29492bb7SDavid van Moolenbroek * Copyright (C) 2000 - 2014, Intel Corp. 9433d6423SLionel Sambuc * All rights reserved. 10433d6423SLionel Sambuc * 11*29492bb7SDavid van Moolenbroek * Redistribution and use in source and binary forms, with or without 12*29492bb7SDavid van Moolenbroek * modification, are permitted provided that the following conditions 13*29492bb7SDavid van Moolenbroek * are met: 14*29492bb7SDavid van Moolenbroek * 1. Redistributions of source code must retain the above copyright 15*29492bb7SDavid van Moolenbroek * notice, this list of conditions, and the following disclaimer, 16*29492bb7SDavid van Moolenbroek * without modification. 17*29492bb7SDavid van Moolenbroek * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18*29492bb7SDavid van Moolenbroek * substantially similar to the "NO WARRANTY" disclaimer below 19*29492bb7SDavid van Moolenbroek * ("Disclaimer") and any redistribution must be conditioned upon 20*29492bb7SDavid van Moolenbroek * including a substantially similar Disclaimer requirement for further 21*29492bb7SDavid van Moolenbroek * binary redistribution. 22*29492bb7SDavid van Moolenbroek * 3. Neither the names of the above-listed copyright holders nor the names 23*29492bb7SDavid van Moolenbroek * of any contributors may be used to endorse or promote products derived 24*29492bb7SDavid van Moolenbroek * from this software without specific prior written permission. 25433d6423SLionel Sambuc * 26*29492bb7SDavid van Moolenbroek * Alternatively, this software may be distributed under the terms of the 27*29492bb7SDavid van Moolenbroek * GNU General Public License ("GPL") version 2 as published by the Free 28*29492bb7SDavid van Moolenbroek * Software Foundation. 29433d6423SLionel Sambuc * 30*29492bb7SDavid van Moolenbroek * NO WARRANTY 31*29492bb7SDavid van Moolenbroek * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32*29492bb7SDavid van Moolenbroek * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33*29492bb7SDavid van Moolenbroek * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34*29492bb7SDavid van Moolenbroek * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35*29492bb7SDavid van Moolenbroek * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36*29492bb7SDavid van Moolenbroek * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37*29492bb7SDavid van Moolenbroek * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38*29492bb7SDavid van Moolenbroek * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39*29492bb7SDavid van Moolenbroek * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40*29492bb7SDavid van Moolenbroek * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41*29492bb7SDavid van Moolenbroek * POSSIBILITY OF SUCH DAMAGES. 42*29492bb7SDavid van Moolenbroek */ 43433d6423SLionel Sambuc 44433d6423SLionel Sambuc #ifndef _ACAPPS 45433d6423SLionel Sambuc #define _ACAPPS 46433d6423SLionel Sambuc 47433d6423SLionel Sambuc 48433d6423SLionel Sambuc #ifdef _MSC_VER /* disable some level-4 warnings */ 49433d6423SLionel Sambuc #pragma warning(disable:4100) /* warning C4100: unreferenced formal parameter */ 50433d6423SLionel Sambuc #endif 51433d6423SLionel Sambuc 52*29492bb7SDavid van Moolenbroek /* Common info for tool signons */ 53*29492bb7SDavid van Moolenbroek 54*29492bb7SDavid van Moolenbroek #define ACPICA_NAME "Intel ACPI Component Architecture" 55*29492bb7SDavid van Moolenbroek #define ACPICA_COPYRIGHT "Copyright (c) 2000 - 2014 Intel Corporation" 56*29492bb7SDavid van Moolenbroek 57*29492bb7SDavid van Moolenbroek #if ACPI_MACHINE_WIDTH == 64 58*29492bb7SDavid van Moolenbroek #define ACPI_WIDTH "-64" 59*29492bb7SDavid van Moolenbroek 60*29492bb7SDavid van Moolenbroek #elif ACPI_MACHINE_WIDTH == 32 61*29492bb7SDavid van Moolenbroek #define ACPI_WIDTH "-32" 62*29492bb7SDavid van Moolenbroek 63*29492bb7SDavid van Moolenbroek #else 64*29492bb7SDavid van Moolenbroek #error unknown ACPI_MACHINE_WIDTH 65*29492bb7SDavid van Moolenbroek #define ACPI_WIDTH "-??" 66*29492bb7SDavid van Moolenbroek 67*29492bb7SDavid van Moolenbroek #endif 68*29492bb7SDavid van Moolenbroek 69*29492bb7SDavid van Moolenbroek /* Macros for signons and file headers */ 70*29492bb7SDavid van Moolenbroek 71*29492bb7SDavid van Moolenbroek #define ACPI_COMMON_SIGNON(UtilityName) \ 72*29492bb7SDavid van Moolenbroek "\n%s\n%s version %8.8X%s [%s]\n%s\n\n", \ 73*29492bb7SDavid van Moolenbroek ACPICA_NAME, \ 74*29492bb7SDavid van Moolenbroek UtilityName, ((UINT32) ACPI_CA_VERSION), ACPI_WIDTH, __DATE__, \ 75*29492bb7SDavid van Moolenbroek ACPICA_COPYRIGHT 76*29492bb7SDavid van Moolenbroek 77*29492bb7SDavid van Moolenbroek #define ACPI_COMMON_HEADER(UtilityName, Prefix) \ 78*29492bb7SDavid van Moolenbroek "%s%s\n%s%s version %8.8X%s [%s]\n%s%s\n%s\n", \ 79*29492bb7SDavid van Moolenbroek Prefix, ACPICA_NAME, \ 80*29492bb7SDavid van Moolenbroek Prefix, UtilityName, ((UINT32) ACPI_CA_VERSION), ACPI_WIDTH, __DATE__, \ 81*29492bb7SDavid van Moolenbroek Prefix, ACPICA_COPYRIGHT, \ 82*29492bb7SDavid van Moolenbroek Prefix 83*29492bb7SDavid van Moolenbroek 84*29492bb7SDavid van Moolenbroek /* Macros for usage messages */ 85*29492bb7SDavid van Moolenbroek 86*29492bb7SDavid van Moolenbroek #define ACPI_USAGE_HEADER(Usage) \ 87*29492bb7SDavid van Moolenbroek AcpiOsPrintf ("Usage: %s\nOptions:\n", Usage); 88*29492bb7SDavid van Moolenbroek 89*29492bb7SDavid van Moolenbroek #define ACPI_USAGE_TEXT(Description) \ 90*29492bb7SDavid van Moolenbroek AcpiOsPrintf (Description); 91*29492bb7SDavid van Moolenbroek 92*29492bb7SDavid van Moolenbroek #define ACPI_OPTION(Name, Description) \ 93*29492bb7SDavid van Moolenbroek AcpiOsPrintf (" %-18s%s\n", Name, Description); 94*29492bb7SDavid van Moolenbroek 95*29492bb7SDavid van Moolenbroek 96433d6423SLionel Sambuc #define FILE_SUFFIX_DISASSEMBLY "dsl" 97433d6423SLionel Sambuc #define ACPI_TABLE_FILE_SUFFIX ".dat" 98433d6423SLionel Sambuc 99433d6423SLionel Sambuc 100433d6423SLionel Sambuc /* 101433d6423SLionel Sambuc * getopt 102433d6423SLionel Sambuc */ 103433d6423SLionel Sambuc int 104433d6423SLionel Sambuc AcpiGetopt( 105433d6423SLionel Sambuc int argc, 106433d6423SLionel Sambuc char **argv, 107433d6423SLionel Sambuc char *opts); 108433d6423SLionel Sambuc 109*29492bb7SDavid van Moolenbroek int 110*29492bb7SDavid van Moolenbroek AcpiGetoptArgument ( 111*29492bb7SDavid van Moolenbroek int argc, 112*29492bb7SDavid van Moolenbroek char **argv); 113*29492bb7SDavid van Moolenbroek 114433d6423SLionel Sambuc extern int AcpiGbl_Optind; 115433d6423SLionel Sambuc extern int AcpiGbl_Opterr; 116*29492bb7SDavid van Moolenbroek extern int AcpiGbl_SubOptChar; 117433d6423SLionel Sambuc extern char *AcpiGbl_Optarg; 118433d6423SLionel Sambuc 119433d6423SLionel Sambuc 120433d6423SLionel Sambuc /* 121*29492bb7SDavid van Moolenbroek * cmfsize - Common get file size function 122*29492bb7SDavid van Moolenbroek */ 123*29492bb7SDavid van Moolenbroek UINT32 124*29492bb7SDavid van Moolenbroek CmGetFileSize ( 125*29492bb7SDavid van Moolenbroek ACPI_FILE File); 126*29492bb7SDavid van Moolenbroek 127*29492bb7SDavid van Moolenbroek 128*29492bb7SDavid van Moolenbroek #ifndef ACPI_DUMP_APP 129*29492bb7SDavid van Moolenbroek /* 130433d6423SLionel Sambuc * adisasm 131433d6423SLionel Sambuc */ 132433d6423SLionel Sambuc ACPI_STATUS 133433d6423SLionel Sambuc AdAmlDisassemble ( 134433d6423SLionel Sambuc BOOLEAN OutToFile, 135433d6423SLionel Sambuc char *Filename, 136433d6423SLionel Sambuc char *Prefix, 137*29492bb7SDavid van Moolenbroek char **OutFilename); 138433d6423SLionel Sambuc 139433d6423SLionel Sambuc void 140433d6423SLionel Sambuc AdPrintStatistics ( 141433d6423SLionel Sambuc void); 142433d6423SLionel Sambuc 143433d6423SLionel Sambuc ACPI_STATUS 144433d6423SLionel Sambuc AdFindDsdt( 145433d6423SLionel Sambuc UINT8 **DsdtPtr, 146433d6423SLionel Sambuc UINT32 *DsdtLength); 147433d6423SLionel Sambuc 148433d6423SLionel Sambuc void 149433d6423SLionel Sambuc AdDumpTables ( 150433d6423SLionel Sambuc void); 151433d6423SLionel Sambuc 152433d6423SLionel Sambuc ACPI_STATUS 153433d6423SLionel Sambuc AdGetLocalTables ( 154*29492bb7SDavid van Moolenbroek void); 155433d6423SLionel Sambuc 156433d6423SLionel Sambuc ACPI_STATUS 157433d6423SLionel Sambuc AdParseTable ( 158433d6423SLionel Sambuc ACPI_TABLE_HEADER *Table, 159433d6423SLionel Sambuc ACPI_OWNER_ID *OwnerId, 160433d6423SLionel Sambuc BOOLEAN LoadTable, 161433d6423SLionel Sambuc BOOLEAN External); 162433d6423SLionel Sambuc 163433d6423SLionel Sambuc ACPI_STATUS 164433d6423SLionel Sambuc AdDisplayTables ( 165433d6423SLionel Sambuc char *Filename, 166433d6423SLionel Sambuc ACPI_TABLE_HEADER *Table); 167433d6423SLionel Sambuc 168433d6423SLionel Sambuc ACPI_STATUS 169433d6423SLionel Sambuc AdDisplayStatistics ( 170433d6423SLionel Sambuc void); 171433d6423SLionel Sambuc 172433d6423SLionel Sambuc 173433d6423SLionel Sambuc /* 174433d6423SLionel Sambuc * adwalk 175433d6423SLionel Sambuc */ 176433d6423SLionel Sambuc void 177433d6423SLionel Sambuc AcpiDmCrossReferenceNamespace ( 178433d6423SLionel Sambuc ACPI_PARSE_OBJECT *ParseTreeRoot, 179433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *NamespaceRoot, 180433d6423SLionel Sambuc ACPI_OWNER_ID OwnerId); 181433d6423SLionel Sambuc 182433d6423SLionel Sambuc void 183433d6423SLionel Sambuc AcpiDmDumpTree ( 184433d6423SLionel Sambuc ACPI_PARSE_OBJECT *Origin); 185433d6423SLionel Sambuc 186433d6423SLionel Sambuc void 187433d6423SLionel Sambuc AcpiDmFindOrphanMethods ( 188433d6423SLionel Sambuc ACPI_PARSE_OBJECT *Origin); 189433d6423SLionel Sambuc 190433d6423SLionel Sambuc void 191433d6423SLionel Sambuc AcpiDmFinishNamespaceLoad ( 192433d6423SLionel Sambuc ACPI_PARSE_OBJECT *ParseTreeRoot, 193433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *NamespaceRoot, 194433d6423SLionel Sambuc ACPI_OWNER_ID OwnerId); 195433d6423SLionel Sambuc 196433d6423SLionel Sambuc void 197433d6423SLionel Sambuc AcpiDmConvertResourceIndexes ( 198433d6423SLionel Sambuc ACPI_PARSE_OBJECT *ParseTreeRoot, 199433d6423SLionel Sambuc ACPI_NAMESPACE_NODE *NamespaceRoot); 200433d6423SLionel Sambuc 201433d6423SLionel Sambuc 202433d6423SLionel Sambuc /* 203433d6423SLionel Sambuc * adfile 204433d6423SLionel Sambuc */ 205433d6423SLionel Sambuc ACPI_STATUS 206433d6423SLionel Sambuc AdInitialize ( 207433d6423SLionel Sambuc void); 208433d6423SLionel Sambuc 209433d6423SLionel Sambuc char * 210433d6423SLionel Sambuc FlGenerateFilename ( 211433d6423SLionel Sambuc char *InputFilename, 212433d6423SLionel Sambuc char *Suffix); 213433d6423SLionel Sambuc 214433d6423SLionel Sambuc ACPI_STATUS 215433d6423SLionel Sambuc FlSplitInputPathname ( 216433d6423SLionel Sambuc char *InputPath, 217433d6423SLionel Sambuc char **OutDirectoryPath, 218433d6423SLionel Sambuc char **OutFilename); 219433d6423SLionel Sambuc 220433d6423SLionel Sambuc char * 221433d6423SLionel Sambuc AdGenerateFilename ( 222433d6423SLionel Sambuc char *Prefix, 223433d6423SLionel Sambuc char *TableId); 224433d6423SLionel Sambuc 225433d6423SLionel Sambuc void 226433d6423SLionel Sambuc AdWriteTable ( 227433d6423SLionel Sambuc ACPI_TABLE_HEADER *Table, 228433d6423SLionel Sambuc UINT32 Length, 229433d6423SLionel Sambuc char *TableName, 230433d6423SLionel Sambuc char *OemTableId); 231*29492bb7SDavid van Moolenbroek #endif 232433d6423SLionel Sambuc 233433d6423SLionel Sambuc #endif /* _ACAPPS */ 234