acapps.h revision 278970
156893Sfenner/****************************************************************************** 256893Sfenner * 356893Sfenner * Module Name: acapps - common include for ACPI applications/tools 456893Sfenner * 556893Sfenner *****************************************************************************/ 656893Sfenner 756893Sfenner/* 856893Sfenner * Copyright (C) 2000 - 2015, Intel Corp. 956893Sfenner * All rights reserved. 1056893Sfenner * 1156893Sfenner * Redistribution and use in source and binary forms, with or without 1256893Sfenner * modification, are permitted provided that the following conditions 1356893Sfenner * are met: 1456893Sfenner * 1. Redistributions of source code must retain the above copyright 1556893Sfenner * notice, this list of conditions, and the following disclaimer, 1656893Sfenner * without modification. 1756893Sfenner * 2. Redistributions in binary form must reproduce at minimum a disclaimer 1856893Sfenner * substantially similar to the "NO WARRANTY" disclaimer below 1956893Sfenner * ("Disclaimer") and any redistribution must be conditioned upon 2056893Sfenner * including a substantially similar Disclaimer requirement for further 2175115Sfenner * binary redistribution. 2256893Sfenner * 3. Neither the names of the above-listed copyright holders nor the names 2356893Sfenner * of any contributors may be used to endorse or promote products derived 2456893Sfenner * from this software without specific prior written permission. 25127668Sbms * 26147899Ssam * Alternatively, this software may be distributed under the terms of the 2756893Sfenner * GNU General Public License ("GPL") version 2 as published by the Free 2856893Sfenner * Software Foundation. 2956893Sfenner * 3056893Sfenner * NO WARRANTY 3156893Sfenner * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 3256893Sfenner * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33127668Sbms * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34127668Sbms * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 3556893Sfenner * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 3656893Sfenner * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 3756893Sfenner * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 3856893Sfenner * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39111726Sfenner * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 4056893Sfenner * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 4156893Sfenner * POSSIBILITY OF SUCH DAMAGES. 4256893Sfenner */ 4356893Sfenner 4456893Sfenner#ifndef _ACAPPS 4556893Sfenner#define _ACAPPS 4656893Sfenner 4756893Sfenner 4856893Sfenner#ifdef _MSC_VER /* disable some level-4 warnings */ 4956893Sfenner#pragma warning(disable:4100) /* warning C4100: unreferenced formal parameter */ 5056893Sfenner#endif 5198524Sfenner 5298524Sfenner/* Common info for tool signons */ 5398524Sfenner 5498524Sfenner#define ACPICA_NAME "Intel ACPI Component Architecture" 5598524Sfenner#define ACPICA_COPYRIGHT "Copyright (c) 2000 - 2015 Intel Corporation" 5698524Sfenner 5798524Sfenner#if ACPI_MACHINE_WIDTH == 64 5898524Sfenner#define ACPI_WIDTH "-64" 5998524Sfenner 6098524Sfenner#elif ACPI_MACHINE_WIDTH == 32 6198524Sfenner#define ACPI_WIDTH "-32" 6298524Sfenner 6398524Sfenner#else 6498524Sfenner#error unknown ACPI_MACHINE_WIDTH 6598524Sfenner#define ACPI_WIDTH "-??" 6698524Sfenner 6798524Sfenner#endif 6898524Sfenner 6998524Sfenner/* Macros for signons and file headers */ 7098524Sfenner 7198524Sfenner#define ACPI_COMMON_SIGNON(UtilityName) \ 7298524Sfenner "\n%s\n%s version %8.8X%s\n%s\n\n", \ 7398524Sfenner ACPICA_NAME, \ 7498524Sfenner UtilityName, ((UINT32) ACPI_CA_VERSION), ACPI_WIDTH, \ 7598524Sfenner ACPICA_COPYRIGHT 7698524Sfenner 7798524Sfenner#define ACPI_COMMON_HEADER(UtilityName, Prefix) \ 7898524Sfenner "%s%s\n%s%s version %8.8X%s\n%s%s\n%s\n", \ 7998524Sfenner Prefix, ACPICA_NAME, \ 8098524Sfenner Prefix, UtilityName, ((UINT32) ACPI_CA_VERSION), ACPI_WIDTH, \ 8198524Sfenner Prefix, ACPICA_COPYRIGHT, \ 8256893Sfenner Prefix 8356893Sfenner 8498524Sfenner/* Macros for usage messages */ 8598524Sfenner 8698524Sfenner#define ACPI_USAGE_HEADER(Usage) \ 8798524Sfenner AcpiOsPrintf ("Usage: %s\nOptions:\n", Usage); 8898524Sfenner 8998524Sfenner#define ACPI_USAGE_TEXT(Description) \ 9098524Sfenner AcpiOsPrintf (Description); 9198524Sfenner 9298524Sfenner#define ACPI_OPTION(Name, Description) \ 9398524Sfenner AcpiOsPrintf (" %-18s%s\n", Name, Description); 9498524Sfenner 9598524Sfenner 9698524Sfenner#define FILE_SUFFIX_DISASSEMBLY "dsl" 9798524Sfenner#define ACPI_TABLE_FILE_SUFFIX ".dat" 9898524Sfenner 9998524Sfenner 10098524Sfenner/* 10198524Sfenner * getopt 10298524Sfenner */ 10398524Sfennerint 10498524SfennerAcpiGetopt( 10598524Sfenner int argc, 10698524Sfenner char **argv, 10798524Sfenner char *opts); 10898524Sfenner 10998524Sfennerint 11098524SfennerAcpiGetoptArgument ( 11198524Sfenner int argc, 11298524Sfenner char **argv); 11398524Sfenner 11498524Sfennerextern int AcpiGbl_Optind; 11598524Sfennerextern int AcpiGbl_Opterr; 11698524Sfennerextern int AcpiGbl_SubOptChar; 11798524Sfennerextern char *AcpiGbl_Optarg; 11898524Sfenner 11998524Sfenner 12098524Sfenner/* 12198524Sfenner * cmfsize - Common get file size function 12298524Sfenner */ 12398524SfennerUINT32 12498524SfennerCmGetFileSize ( 12556893Sfenner ACPI_FILE File); 12698524Sfenner 12798524Sfenner 12898524Sfenner#ifndef ACPI_DUMP_APP 12998524Sfenner/* 13098524Sfenner * adisasm 13198524Sfenner */ 13298524SfennerACPI_STATUS 13398524SfennerAdAmlDisassemble ( 13498524Sfenner BOOLEAN OutToFile, 13598524Sfenner char *Filename, 13698524Sfenner char *Prefix, 13798524Sfenner char **OutFilename); 13898524Sfenner 13998524Sfennervoid 14098524SfennerAdPrintStatistics ( 14198524Sfenner void); 14298524Sfenner 14398524SfennerACPI_STATUS 14498524SfennerAdFindDsdt( 14598524Sfenner UINT8 **DsdtPtr, 14698524Sfenner UINT32 *DsdtLength); 147127668Sbms 14898524Sfennervoid 14998524SfennerAdDumpTables ( 15098524Sfenner void); 15198524Sfenner 15298524SfennerACPI_STATUS 15398524SfennerAdGetLocalTables ( 154127668Sbms void); 155127668Sbms 156127668SbmsACPI_STATUS 15798524SfennerAdParseTable ( 158127668Sbms ACPI_TABLE_HEADER *Table, 15998524Sfenner ACPI_OWNER_ID *OwnerId, 16098524Sfenner BOOLEAN LoadTable, 16198524Sfenner BOOLEAN External); 162127668Sbms 163127668SbmsACPI_STATUS 16498524SfennerAdDisplayTables ( 165127668Sbms char *Filename, 166127668Sbms ACPI_TABLE_HEADER *Table); 167127668Sbms 16898524SfennerACPI_STATUS 16956893SfennerAdDisplayStatistics ( 17056893Sfenner void); 17198524Sfenner 17298524Sfenner 17398524Sfenner/* 17498524Sfenner * adwalk 17598524Sfenner */ 17698524Sfennervoid 17798524SfennerAcpiDmCrossReferenceNamespace ( 17898524Sfenner ACPI_PARSE_OBJECT *ParseTreeRoot, 17998524Sfenner ACPI_NAMESPACE_NODE *NamespaceRoot, 18098524Sfenner ACPI_OWNER_ID OwnerId); 18198524Sfenner 18298524Sfennervoid 18398524SfennerAcpiDmDumpTree ( 18498524Sfenner ACPI_PARSE_OBJECT *Origin); 18598524Sfenner 18698524Sfennervoid 18798524SfennerAcpiDmFindOrphanMethods ( 18898524Sfenner ACPI_PARSE_OBJECT *Origin); 18998524Sfenner 19098524Sfennervoid 19198524SfennerAcpiDmFinishNamespaceLoad ( 19256893Sfenner ACPI_PARSE_OBJECT *ParseTreeRoot, 19356893Sfenner ACPI_NAMESPACE_NODE *NamespaceRoot, 19456893Sfenner ACPI_OWNER_ID OwnerId); 19556893Sfenner 19656893Sfennervoid 19756893SfennerAcpiDmConvertResourceIndexes ( 19856893Sfenner ACPI_PARSE_OBJECT *ParseTreeRoot, 19956893Sfenner ACPI_NAMESPACE_NODE *NamespaceRoot); 20056893Sfenner 20156893Sfenner 20256893Sfenner/* 20356893Sfenner * adfile 20456893Sfenner */ 20556893SfennerACPI_STATUS 20656893SfennerAdInitialize ( 20756893Sfenner void); 20856893Sfenner 20956893Sfennerchar * 21056893SfennerFlGenerateFilename ( 21156893Sfenner char *InputFilename, 21256893Sfenner char *Suffix); 21356893Sfenner 21456893SfennerACPI_STATUS 21556893SfennerFlSplitInputPathname ( 21656893Sfenner char *InputPath, 21756893Sfenner char **OutDirectoryPath, 21856893Sfenner char **OutFilename); 21956893Sfenner 22056893Sfennerchar * 22156893SfennerAdGenerateFilename ( 22256893Sfenner char *Prefix, 22356893Sfenner char *TableId); 22456893Sfenner 22556893Sfennervoid 22656893SfennerAdWriteTable ( 22756893Sfenner ACPI_TABLE_HEADER *Table, 22856893Sfenner UINT32 Length, 22956893Sfenner char *TableName, 23056893Sfenner char *OemTableId); 23156893Sfenner#endif 23256893Sfenner 23356893Sfenner#endif /* _ACAPPS */ 23456893Sfenner