acapps.h revision 245582
1241675Suqs/****************************************************************************** 2241675Suqs * 3241675Suqs * Module Name: acapps - common include for ACPI applications/tools 4241675Suqs * 5241675Suqs *****************************************************************************/ 6241675Suqs 7241675Suqs/* 8241675Suqs * Copyright (C) 2000 - 2013, Intel Corp. 9241675Suqs * All rights reserved. 10241675Suqs * 11241675Suqs * Redistribution and use in source and binary forms, with or without 12241675Suqs * modification, are permitted provided that the following conditions 13241675Suqs * are met: 14241675Suqs * 1. Redistributions of source code must retain the above copyright 15241675Suqs * notice, this list of conditions, and the following disclaimer, 16241675Suqs * without modification. 17241675Suqs * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18241675Suqs * substantially similar to the "NO WARRANTY" disclaimer below 19241675Suqs * ("Disclaimer") and any redistribution must be conditioned upon 20241675Suqs * including a substantially similar Disclaimer requirement for further 21241675Suqs * binary redistribution. 22241675Suqs * 3. Neither the names of the above-listed copyright holders nor the names 23241675Suqs * of any contributors may be used to endorse or promote products derived 24241675Suqs * from this software without specific prior written permission. 25241675Suqs * 26241675Suqs * Alternatively, this software may be distributed under the terms of the 27241675Suqs * GNU General Public License ("GPL") version 2 as published by the Free 28241675Suqs * Software Foundation. 29241675Suqs * 30241675Suqs * NO WARRANTY 31241675Suqs * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32241675Suqs * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33241675Suqs * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34241675Suqs * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35241675Suqs * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36241675Suqs * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37241675Suqs * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38241675Suqs * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39241675Suqs * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40241675Suqs * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41241675Suqs * POSSIBILITY OF SUCH DAMAGES. 42241675Suqs */ 43241675Suqs 44241675Suqs#ifndef _ACAPPS 45241675Suqs#define _ACAPPS 46241675Suqs 47241675Suqs 48241675Suqs#ifdef _MSC_VER /* disable some level-4 warnings */ 49241675Suqs#pragma warning(disable:4100) /* warning C4100: unreferenced formal parameter */ 50241675Suqs#endif 51241675Suqs 52241675Suqs/* Common info for tool signons */ 53241675Suqs 54241675Suqs#define ACPICA_NAME "Intel ACPI Component Architecture" 55241675Suqs#define ACPICA_COPYRIGHT "Copyright (c) 2000 - 2013 Intel Corporation" 56241675Suqs 57241675Suqs#if ACPI_MACHINE_WIDTH == 64 58241675Suqs#define ACPI_WIDTH "-64" 59241675Suqs 60241675Suqs#elif ACPI_MACHINE_WIDTH == 32 61241675Suqs#define ACPI_WIDTH "-32" 62241675Suqs 63241675Suqs#else 64241675Suqs#error unknown ACPI_MACHINE_WIDTH 65241675Suqs#define ACPI_WIDTH "-??" 66241675Suqs 67241675Suqs#endif 68241675Suqs 69241675Suqs/* Macros for signons and file headers */ 70241675Suqs 71241675Suqs#define ACPI_COMMON_SIGNON(UtilityName) \ 72241675Suqs "\n%s\n%s version %8.8X%s\n%s\n\n", \ 73241675Suqs ACPICA_NAME, \ 74241675Suqs UtilityName, ((UINT32) ACPI_CA_VERSION), ACPI_WIDTH, \ 75241675Suqs ACPICA_COPYRIGHT 76241675Suqs 77241675Suqs#define ACPI_COMMON_HEADER(UtilityName, Prefix) \ 78241675Suqs "%s%s\n%s%s version %8.8X%s\n%s%s\n%s\n", \ 79241675Suqs Prefix, ACPICA_NAME, \ 80241675Suqs Prefix, UtilityName, ((UINT32) ACPI_CA_VERSION), ACPI_WIDTH, \ 81241675Suqs Prefix, ACPICA_COPYRIGHT, \ 82241675Suqs Prefix 83241675Suqs 84241675Suqs/* Macros for usage messages */ 85241675Suqs 86241675Suqs#define ACPI_USAGE_HEADER(Usage) \ 87241675Suqs printf ("Usage: %s\nOptions:\n", Usage); 88241675Suqs 89241675Suqs#define ACPI_OPTION(Name, Description) \ 90241675Suqs printf (" %-18s%s\n", Name, Description); 91241675Suqs 92241675Suqs 93241675Suqs#define FILE_SUFFIX_DISASSEMBLY "dsl" 94241675Suqs#define ACPI_TABLE_FILE_SUFFIX ".dat" 95241675Suqs 96241675Suqs 97241675Suqs/* 98241675Suqs * getopt 99241675Suqs */ 100241675Suqsint 101241675SuqsAcpiGetopt( 102241675Suqs int argc, 103241675Suqs char **argv, 104241675Suqs char *opts); 105241675Suqs 106241675Suqsextern int AcpiGbl_Optind; 107241675Suqsextern int AcpiGbl_Opterr; 108241675Suqsextern char *AcpiGbl_Optarg; 109241675Suqs 110241675Suqs 111241675Suqs/* 112241675Suqs * adisasm 113241675Suqs */ 114241675SuqsACPI_STATUS 115241675SuqsAdAmlDisassemble ( 116241675Suqs BOOLEAN OutToFile, 117241675Suqs char *Filename, 118241675Suqs char *Prefix, 119241675Suqs char **OutFilename, 120241675Suqs BOOLEAN GetAllTables); 121241675Suqs 122241675Suqsvoid 123241675SuqsAdPrintStatistics ( 124241675Suqs void); 125241675Suqs 126241675SuqsACPI_STATUS 127241675SuqsAdFindDsdt( 128241675Suqs UINT8 **DsdtPtr, 129241675Suqs UINT32 *DsdtLength); 130241675Suqs 131241675Suqsvoid 132241675SuqsAdDumpTables ( 133241675Suqs void); 134241675Suqs 135241675SuqsACPI_STATUS 136241675SuqsAdGetLocalTables ( 137241675Suqs char *Filename, 138241675Suqs BOOLEAN GetAllTables); 139241675Suqs 140241675SuqsACPI_STATUS 141241675SuqsAdParseTable ( 142241675Suqs ACPI_TABLE_HEADER *Table, 143241675Suqs ACPI_OWNER_ID *OwnerId, 144241675Suqs BOOLEAN LoadTable, 145241675Suqs BOOLEAN External); 146241675Suqs 147241675SuqsACPI_STATUS 148241675SuqsAdDisplayTables ( 149241675Suqs char *Filename, 150241675Suqs ACPI_TABLE_HEADER *Table); 151241675Suqs 152241675SuqsACPI_STATUS 153241675SuqsAdDisplayStatistics ( 154241675Suqs void); 155241675Suqs 156241675Suqs 157241675Suqs/* 158241675Suqs * adwalk 159241675Suqs */ 160241675Suqsvoid 161241675SuqsAcpiDmCrossReferenceNamespace ( 162241675Suqs ACPI_PARSE_OBJECT *ParseTreeRoot, 163241675Suqs ACPI_NAMESPACE_NODE *NamespaceRoot, 164241675Suqs ACPI_OWNER_ID OwnerId); 165241675Suqs 166241675Suqsvoid 167241675SuqsAcpiDmDumpTree ( 168241675Suqs ACPI_PARSE_OBJECT *Origin); 169241675Suqs 170241675Suqsvoid 171241675SuqsAcpiDmFindOrphanMethods ( 172241675Suqs ACPI_PARSE_OBJECT *Origin); 173241675Suqs 174241675Suqsvoid 175241675SuqsAcpiDmFinishNamespaceLoad ( 176241675Suqs ACPI_PARSE_OBJECT *ParseTreeRoot, 177241675Suqs ACPI_NAMESPACE_NODE *NamespaceRoot, 178241675Suqs ACPI_OWNER_ID OwnerId); 179241675Suqs 180241675Suqsvoid 181241675SuqsAcpiDmConvertResourceIndexes ( 182241675Suqs ACPI_PARSE_OBJECT *ParseTreeRoot, 183241675Suqs ACPI_NAMESPACE_NODE *NamespaceRoot); 184241675Suqs 185241675Suqs 186241675Suqs/* 187241675Suqs * adfile 188241675Suqs */ 189241675SuqsACPI_STATUS 190241675SuqsAdInitialize ( 191241675Suqs void); 192241675Suqs 193241675Suqschar * 194241675SuqsFlGenerateFilename ( 195241675Suqs char *InputFilename, 196241675Suqs char *Suffix); 197241675Suqs 198241675SuqsACPI_STATUS 199241675SuqsFlSplitInputPathname ( 200241675Suqs char *InputPath, 201241675Suqs char **OutDirectoryPath, 202241675Suqs char **OutFilename); 203241675Suqs 204241675Suqschar * 205241675SuqsAdGenerateFilename ( 206241675Suqs char *Prefix, 207241675Suqs char *TableId); 208241675Suqs 209241675Suqsvoid 210241675SuqsAdWriteTable ( 211241675Suqs ACPI_TABLE_HEADER *Table, 212241675Suqs UINT32 Length, 213241675Suqs char *TableName, 214241675Suqs char *OemTableId); 215241675Suqs 216241675Suqs#endif /* _ACAPPS */ 217241675Suqs