17c478bd9Sstevel@tonic-gate /****************************************************************************** 27c478bd9Sstevel@tonic-gate * 37c478bd9Sstevel@tonic-gate * Module Name: acapps - common include for ACPI applications/tools 47c478bd9Sstevel@tonic-gate * 57c478bd9Sstevel@tonic-gate *****************************************************************************/ 67c478bd9Sstevel@tonic-gate 7*26f3cdf0SGordon Ross /* 8*26f3cdf0SGordon Ross * Copyright (C) 2000 - 2011, Intel Corp. 97c478bd9Sstevel@tonic-gate * All rights reserved. 107c478bd9Sstevel@tonic-gate * 11*26f3cdf0SGordon Ross * Redistribution and use in source and binary forms, with or without 12*26f3cdf0SGordon Ross * modification, are permitted provided that the following conditions 13*26f3cdf0SGordon Ross * are met: 14*26f3cdf0SGordon Ross * 1. Redistributions of source code must retain the above copyright 15*26f3cdf0SGordon Ross * notice, this list of conditions, and the following disclaimer, 16*26f3cdf0SGordon Ross * without modification. 17*26f3cdf0SGordon Ross * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18*26f3cdf0SGordon Ross * substantially similar to the "NO WARRANTY" disclaimer below 19*26f3cdf0SGordon Ross * ("Disclaimer") and any redistribution must be conditioned upon 20*26f3cdf0SGordon Ross * including a substantially similar Disclaimer requirement for further 21*26f3cdf0SGordon Ross * binary redistribution. 22*26f3cdf0SGordon Ross * 3. Neither the names of the above-listed copyright holders nor the names 23*26f3cdf0SGordon Ross * of any contributors may be used to endorse or promote products derived 24*26f3cdf0SGordon Ross * from this software without specific prior written permission. 25*26f3cdf0SGordon Ross * 26*26f3cdf0SGordon Ross * Alternatively, this software may be distributed under the terms of the 27*26f3cdf0SGordon Ross * GNU General Public License ("GPL") version 2 as published by the Free 28*26f3cdf0SGordon Ross * Software Foundation. 29*26f3cdf0SGordon Ross * 30*26f3cdf0SGordon Ross * NO WARRANTY 31*26f3cdf0SGordon Ross * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32*26f3cdf0SGordon Ross * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33*26f3cdf0SGordon Ross * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34*26f3cdf0SGordon Ross * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35*26f3cdf0SGordon Ross * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36*26f3cdf0SGordon Ross * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37*26f3cdf0SGordon Ross * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38*26f3cdf0SGordon Ross * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39*26f3cdf0SGordon Ross * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40*26f3cdf0SGordon Ross * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41*26f3cdf0SGordon Ross * POSSIBILITY OF SUCH DAMAGES. 42*26f3cdf0SGordon Ross */ 437c478bd9Sstevel@tonic-gate 447c478bd9Sstevel@tonic-gate #ifndef _ACAPPS 457c478bd9Sstevel@tonic-gate #define _ACAPPS 467c478bd9Sstevel@tonic-gate 477c478bd9Sstevel@tonic-gate 487c478bd9Sstevel@tonic-gate #ifdef _MSC_VER /* disable some level-4 warnings */ 497c478bd9Sstevel@tonic-gate #pragma warning(disable:4100) /* warning C4100: unreferenced formal parameter */ 507c478bd9Sstevel@tonic-gate #endif 517c478bd9Sstevel@tonic-gate 52*26f3cdf0SGordon Ross /* Common info for tool signons */ 53*26f3cdf0SGordon Ross 54*26f3cdf0SGordon Ross #define ACPICA_NAME "Intel ACPI Component Architecture" 55*26f3cdf0SGordon Ross #define ACPICA_COPYRIGHT "Copyright (c) 2000 - 2011 Intel Corporation" 56*26f3cdf0SGordon Ross 57*26f3cdf0SGordon Ross #if ACPI_MACHINE_WIDTH == 64 58*26f3cdf0SGordon Ross #define ACPI_WIDTH "-64" 59*26f3cdf0SGordon Ross 60*26f3cdf0SGordon Ross #elif ACPI_MACHINE_WIDTH == 32 61*26f3cdf0SGordon Ross #define ACPI_WIDTH "-32" 62*26f3cdf0SGordon Ross 63*26f3cdf0SGordon Ross #else 64*26f3cdf0SGordon Ross #error unknown ACPI_MACHINE_WIDTH 65*26f3cdf0SGordon Ross #define ACPI_WIDTH "-??" 66*26f3cdf0SGordon Ross 67*26f3cdf0SGordon Ross #endif 68*26f3cdf0SGordon Ross 69*26f3cdf0SGordon Ross /* Macros for signons and file headers */ 70*26f3cdf0SGordon Ross 71*26f3cdf0SGordon Ross #define ACPI_COMMON_SIGNON(UtilityName) \ 72*26f3cdf0SGordon Ross "\n%s\n%s version %8.8X%s [%s]\n%s\n\n", \ 73*26f3cdf0SGordon Ross ACPICA_NAME, \ 74*26f3cdf0SGordon Ross UtilityName, ((UINT32) ACPI_CA_VERSION), ACPI_WIDTH, __DATE__, \ 75*26f3cdf0SGordon Ross ACPICA_COPYRIGHT 76*26f3cdf0SGordon Ross 77*26f3cdf0SGordon Ross #define ACPI_COMMON_HEADER(UtilityName, Prefix) \ 78*26f3cdf0SGordon Ross "%s%s\n%s%s version %8.8X%s [%s]\n%s%s\n%s\n", \ 79*26f3cdf0SGordon Ross Prefix, ACPICA_NAME, \ 80*26f3cdf0SGordon Ross Prefix, UtilityName, ((UINT32) ACPI_CA_VERSION), ACPI_WIDTH, __DATE__, \ 81*26f3cdf0SGordon Ross Prefix, ACPICA_COPYRIGHT, \ 82*26f3cdf0SGordon Ross Prefix 83*26f3cdf0SGordon Ross 8427f7c583Smyers #define FILE_SUFFIX_DISASSEMBLY "dsl" 8527f7c583Smyers #define ACPI_TABLE_FILE_SUFFIX ".dat" 8627f7c583Smyers 877c478bd9Sstevel@tonic-gate 8857190917SDana Myers /* 8957190917SDana Myers * getopt 9057190917SDana Myers */ 917c478bd9Sstevel@tonic-gate int 927c478bd9Sstevel@tonic-gate AcpiGetopt( 937c478bd9Sstevel@tonic-gate int argc, 947c478bd9Sstevel@tonic-gate char **argv, 957c478bd9Sstevel@tonic-gate char *opts); 967c478bd9Sstevel@tonic-gate 9757190917SDana Myers extern int AcpiGbl_Optind; 98*26f3cdf0SGordon Ross extern int AcpiGbl_Opterr; 9957190917SDana Myers extern char *AcpiGbl_Optarg; 10057190917SDana Myers 10157190917SDana Myers 10227f7c583Smyers /* 10327f7c583Smyers * adisasm 10427f7c583Smyers */ 1057c478bd9Sstevel@tonic-gate ACPI_STATUS 1067c478bd9Sstevel@tonic-gate AdAmlDisassemble ( 1077c478bd9Sstevel@tonic-gate BOOLEAN OutToFile, 1087c478bd9Sstevel@tonic-gate char *Filename, 1097c478bd9Sstevel@tonic-gate char *Prefix, 1107c478bd9Sstevel@tonic-gate char **OutFilename, 1117c478bd9Sstevel@tonic-gate BOOLEAN GetAllTables); 1127c478bd9Sstevel@tonic-gate 1137c478bd9Sstevel@tonic-gate void 11457190917SDana Myers AdPrintStatistics ( 11557190917SDana Myers void); 1167c478bd9Sstevel@tonic-gate 1177c478bd9Sstevel@tonic-gate ACPI_STATUS 1187c478bd9Sstevel@tonic-gate AdFindDsdt( 1197c478bd9Sstevel@tonic-gate UINT8 **DsdtPtr, 1207c478bd9Sstevel@tonic-gate UINT32 *DsdtLength); 1217c478bd9Sstevel@tonic-gate 1227c478bd9Sstevel@tonic-gate void 12357190917SDana Myers AdDumpTables ( 12457190917SDana Myers void); 1257c478bd9Sstevel@tonic-gate 1267c478bd9Sstevel@tonic-gate ACPI_STATUS 1277c478bd9Sstevel@tonic-gate AdGetLocalTables ( 1287c478bd9Sstevel@tonic-gate char *Filename, 1297c478bd9Sstevel@tonic-gate BOOLEAN GetAllTables); 1307c478bd9Sstevel@tonic-gate 1317c478bd9Sstevel@tonic-gate ACPI_STATUS 1327c478bd9Sstevel@tonic-gate AdParseTable ( 133db2bae30SDana Myers ACPI_TABLE_HEADER *Table, 134aa2aa9a6SDana Myers ACPI_OWNER_ID *OwnerId, 135aa2aa9a6SDana Myers BOOLEAN LoadTable, 136aa2aa9a6SDana Myers BOOLEAN External); 1377c478bd9Sstevel@tonic-gate 1387c478bd9Sstevel@tonic-gate ACPI_STATUS 1397c478bd9Sstevel@tonic-gate AdDisplayTables ( 1407c478bd9Sstevel@tonic-gate char *Filename, 1417c478bd9Sstevel@tonic-gate ACPI_TABLE_HEADER *Table); 1427c478bd9Sstevel@tonic-gate 1437c478bd9Sstevel@tonic-gate ACPI_STATUS 14457190917SDana Myers AdDisplayStatistics ( 14557190917SDana Myers void); 14657190917SDana Myers 1477c478bd9Sstevel@tonic-gate 14827f7c583Smyers /* 14927f7c583Smyers * adwalk 15027f7c583Smyers */ 15127f7c583Smyers void 15227f7c583Smyers AcpiDmCrossReferenceNamespace ( 15327f7c583Smyers ACPI_PARSE_OBJECT *ParseTreeRoot, 154aa2aa9a6SDana Myers ACPI_NAMESPACE_NODE *NamespaceRoot, 155aa2aa9a6SDana Myers ACPI_OWNER_ID OwnerId); 15627f7c583Smyers 15727f7c583Smyers void 15827f7c583Smyers AcpiDmDumpTree ( 15927f7c583Smyers ACPI_PARSE_OBJECT *Origin); 16027f7c583Smyers 16127f7c583Smyers void 16227f7c583Smyers AcpiDmFindOrphanMethods ( 16327f7c583Smyers ACPI_PARSE_OBJECT *Origin); 16427f7c583Smyers 16527f7c583Smyers void 16627f7c583Smyers AcpiDmFinishNamespaceLoad ( 16727f7c583Smyers ACPI_PARSE_OBJECT *ParseTreeRoot, 168aa2aa9a6SDana Myers ACPI_NAMESPACE_NODE *NamespaceRoot, 169aa2aa9a6SDana Myers ACPI_OWNER_ID OwnerId); 17027f7c583Smyers 17127f7c583Smyers void 17227f7c583Smyers AcpiDmConvertResourceIndexes ( 17327f7c583Smyers ACPI_PARSE_OBJECT *ParseTreeRoot, 17427f7c583Smyers ACPI_NAMESPACE_NODE *NamespaceRoot); 17527f7c583Smyers 17657190917SDana Myers 17727f7c583Smyers /* 17827f7c583Smyers * adfile 17927f7c583Smyers */ 18027f7c583Smyers ACPI_STATUS 18127f7c583Smyers AdInitialize ( 18227f7c583Smyers void); 18327f7c583Smyers 18427f7c583Smyers char * 18527f7c583Smyers FlGenerateFilename ( 18627f7c583Smyers char *InputFilename, 18727f7c583Smyers char *Suffix); 18827f7c583Smyers 18927f7c583Smyers ACPI_STATUS 19027f7c583Smyers FlSplitInputPathname ( 19127f7c583Smyers char *InputPath, 19227f7c583Smyers char **OutDirectoryPath, 19327f7c583Smyers char **OutFilename); 19427f7c583Smyers 19527f7c583Smyers char * 19627f7c583Smyers AdGenerateFilename ( 19727f7c583Smyers char *Prefix, 19827f7c583Smyers char *TableId); 19927f7c583Smyers 20027f7c583Smyers void 20127f7c583Smyers AdWriteTable ( 20227f7c583Smyers ACPI_TABLE_HEADER *Table, 20327f7c583Smyers UINT32 Length, 20427f7c583Smyers char *TableName, 20527f7c583Smyers char *OemTableId); 2067c478bd9Sstevel@tonic-gate 2077c478bd9Sstevel@tonic-gate #endif /* _ACAPPS */ 2087c478bd9Sstevel@tonic-gate 209