xref: /illumos-gate/usr/src/uts/intel/sys/acpi/acapps.h (revision 26f3cdf0)
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