xref: /freebsd/sys/contrib/dev/acpica/include/acapps.h (revision d244b2279c2f63fc930fa1c11a6033b7119d426a)
1a9f12690SJung-uk Kim /******************************************************************************
2a9f12690SJung-uk Kim  *
3a9f12690SJung-uk Kim  * Module Name: acapps - common include for ACPI applications/tools
4a9f12690SJung-uk Kim  *
5a9f12690SJung-uk Kim  *****************************************************************************/
6a9f12690SJung-uk Kim 
7*d244b227SJung-uk Kim /*
8*d244b227SJung-uk Kim  * Copyright (C) 2000 - 2011, Intel Corp.
9a9f12690SJung-uk Kim  * All rights reserved.
10a9f12690SJung-uk Kim  *
11*d244b227SJung-uk Kim  * Redistribution and use in source and binary forms, with or without
12*d244b227SJung-uk Kim  * modification, are permitted provided that the following conditions
13*d244b227SJung-uk Kim  * are met:
14*d244b227SJung-uk Kim  * 1. Redistributions of source code must retain the above copyright
15*d244b227SJung-uk Kim  *    notice, this list of conditions, and the following disclaimer,
16*d244b227SJung-uk Kim  *    without modification.
17*d244b227SJung-uk Kim  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18*d244b227SJung-uk Kim  *    substantially similar to the "NO WARRANTY" disclaimer below
19*d244b227SJung-uk Kim  *    ("Disclaimer") and any redistribution must be conditioned upon
20*d244b227SJung-uk Kim  *    including a substantially similar Disclaimer requirement for further
21*d244b227SJung-uk Kim  *    binary redistribution.
22*d244b227SJung-uk Kim  * 3. Neither the names of the above-listed copyright holders nor the names
23*d244b227SJung-uk Kim  *    of any contributors may be used to endorse or promote products derived
24*d244b227SJung-uk Kim  *    from this software without specific prior written permission.
25a9f12690SJung-uk Kim  *
26*d244b227SJung-uk Kim  * Alternatively, this software may be distributed under the terms of the
27*d244b227SJung-uk Kim  * GNU General Public License ("GPL") version 2 as published by the Free
28*d244b227SJung-uk Kim  * Software Foundation.
29a9f12690SJung-uk Kim  *
30*d244b227SJung-uk Kim  * NO WARRANTY
31*d244b227SJung-uk Kim  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32*d244b227SJung-uk Kim  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33*d244b227SJung-uk Kim  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34*d244b227SJung-uk Kim  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35*d244b227SJung-uk Kim  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36*d244b227SJung-uk Kim  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37*d244b227SJung-uk Kim  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38*d244b227SJung-uk Kim  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39*d244b227SJung-uk Kim  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40*d244b227SJung-uk Kim  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41*d244b227SJung-uk Kim  * POSSIBILITY OF SUCH DAMAGES.
42*d244b227SJung-uk Kim  */
43a9f12690SJung-uk Kim 
44a9f12690SJung-uk Kim #ifndef _ACAPPS
45a9f12690SJung-uk Kim #define _ACAPPS
46a9f12690SJung-uk Kim 
47a9f12690SJung-uk Kim 
48a9f12690SJung-uk Kim #ifdef _MSC_VER                 /* disable some level-4 warnings */
49a9f12690SJung-uk Kim #pragma warning(disable:4100)   /* warning C4100: unreferenced formal parameter */
50a9f12690SJung-uk Kim #endif
51a9f12690SJung-uk Kim 
523c1812acSJung-uk Kim /* Common info for tool signons */
533c1812acSJung-uk Kim 
543c1812acSJung-uk Kim #define ACPICA_NAME                 "Intel ACPI Component Architecture"
55*d244b227SJung-uk Kim #define ACPICA_COPYRIGHT            "Copyright (c) 2000 - 2011 Intel Corporation"
563c1812acSJung-uk Kim 
573c1812acSJung-uk Kim #if ACPI_MACHINE_WIDTH == 64
583c1812acSJung-uk Kim #define ACPI_WIDTH          "-64"
593c1812acSJung-uk Kim 
603c1812acSJung-uk Kim #elif ACPI_MACHINE_WIDTH == 32
613c1812acSJung-uk Kim #define ACPI_WIDTH          "-32"
623c1812acSJung-uk Kim 
633c1812acSJung-uk Kim #else
643c1812acSJung-uk Kim #error unknown ACPI_MACHINE_WIDTH
653c1812acSJung-uk Kim #define ACPI_WIDTH          "-??"
663c1812acSJung-uk Kim 
673c1812acSJung-uk Kim #endif
683c1812acSJung-uk Kim 
693c1812acSJung-uk Kim /* Macros for signons and file headers */
703c1812acSJung-uk Kim 
713c1812acSJung-uk Kim #define ACPI_COMMON_SIGNON(UtilityName) \
723c1812acSJung-uk Kim     "\n%s\n%s version %8.8X%s\n%s\n\n", \
733c1812acSJung-uk Kim     ACPICA_NAME, \
743c1812acSJung-uk Kim     UtilityName, ((UINT32) ACPI_CA_VERSION), ACPI_WIDTH, \
753c1812acSJung-uk Kim     ACPICA_COPYRIGHT
763c1812acSJung-uk Kim 
773c1812acSJung-uk Kim #define ACPI_COMMON_HEADER(UtilityName, Prefix) \
783c1812acSJung-uk Kim     "%s%s\n%s%s version %8.8X%s\n%s%s\n%s\n", \
793c1812acSJung-uk Kim     Prefix, ACPICA_NAME, \
803c1812acSJung-uk Kim     Prefix, UtilityName, ((UINT32) ACPI_CA_VERSION), ACPI_WIDTH, \
813c1812acSJung-uk Kim     Prefix, ACPICA_COPYRIGHT, \
823c1812acSJung-uk Kim     Prefix
833c1812acSJung-uk Kim 
84a9f12690SJung-uk Kim #define FILE_SUFFIX_DISASSEMBLY     "dsl"
85a9f12690SJung-uk Kim #define ACPI_TABLE_FILE_SUFFIX      ".dat"
86a9f12690SJung-uk Kim 
87a9f12690SJung-uk Kim 
88f556842eSJung-uk Kim /*
89f556842eSJung-uk Kim  * getopt
90f556842eSJung-uk Kim  */
91a9f12690SJung-uk Kim int
92a9f12690SJung-uk Kim AcpiGetopt(
93a9f12690SJung-uk Kim     int                     argc,
94a9f12690SJung-uk Kim     char                    **argv,
95a9f12690SJung-uk Kim     char                    *opts);
96a9f12690SJung-uk Kim 
97f556842eSJung-uk Kim extern int                  AcpiGbl_Optind;
989a179dd8SJung-uk Kim extern int                  AcpiGbl_Opterr;
99f556842eSJung-uk Kim extern char                 *AcpiGbl_Optarg;
100f556842eSJung-uk Kim 
101f556842eSJung-uk Kim 
102a9f12690SJung-uk Kim /*
103a9f12690SJung-uk Kim  * adisasm
104a9f12690SJung-uk Kim  */
105a9f12690SJung-uk Kim ACPI_STATUS
106a9f12690SJung-uk Kim AdAmlDisassemble (
107a9f12690SJung-uk Kim     BOOLEAN                 OutToFile,
108a9f12690SJung-uk Kim     char                    *Filename,
109a9f12690SJung-uk Kim     char                    *Prefix,
110a9f12690SJung-uk Kim     char                    **OutFilename,
111a9f12690SJung-uk Kim     BOOLEAN                 GetAllTables);
112a9f12690SJung-uk Kim 
113a9f12690SJung-uk Kim void
114f556842eSJung-uk Kim AdPrintStatistics (
115f556842eSJung-uk Kim     void);
116a9f12690SJung-uk Kim 
117a9f12690SJung-uk Kim ACPI_STATUS
118a9f12690SJung-uk Kim AdFindDsdt(
119a9f12690SJung-uk Kim     UINT8                   **DsdtPtr,
120a9f12690SJung-uk Kim     UINT32                  *DsdtLength);
121a9f12690SJung-uk Kim 
122a9f12690SJung-uk Kim void
123f556842eSJung-uk Kim AdDumpTables (
124f556842eSJung-uk Kim     void);
125a9f12690SJung-uk Kim 
126a9f12690SJung-uk Kim ACPI_STATUS
127a9f12690SJung-uk Kim AdGetLocalTables (
128a9f12690SJung-uk Kim     char                    *Filename,
129a9f12690SJung-uk Kim     BOOLEAN                 GetAllTables);
130a9f12690SJung-uk Kim 
131a9f12690SJung-uk Kim ACPI_STATUS
132a9f12690SJung-uk Kim AdParseTable (
133a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       *Table,
134a9f12690SJung-uk Kim     ACPI_OWNER_ID           *OwnerId,
135a9f12690SJung-uk Kim     BOOLEAN                 LoadTable,
136a9f12690SJung-uk Kim     BOOLEAN                 External);
137a9f12690SJung-uk Kim 
138a9f12690SJung-uk Kim ACPI_STATUS
139a9f12690SJung-uk Kim AdDisplayTables (
140a9f12690SJung-uk Kim     char                    *Filename,
141a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       *Table);
142a9f12690SJung-uk Kim 
143a9f12690SJung-uk Kim ACPI_STATUS
144f556842eSJung-uk Kim AdDisplayStatistics (
145f556842eSJung-uk Kim     void);
146f556842eSJung-uk Kim 
147a9f12690SJung-uk Kim 
148a9f12690SJung-uk Kim /*
149a9f12690SJung-uk Kim  * adwalk
150a9f12690SJung-uk Kim  */
151a9f12690SJung-uk Kim void
152a9f12690SJung-uk Kim AcpiDmCrossReferenceNamespace (
153a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *ParseTreeRoot,
154a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *NamespaceRoot,
155a9f12690SJung-uk Kim     ACPI_OWNER_ID           OwnerId);
156a9f12690SJung-uk Kim 
157a9f12690SJung-uk Kim void
158a9f12690SJung-uk Kim AcpiDmDumpTree (
159a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Origin);
160a9f12690SJung-uk Kim 
161a9f12690SJung-uk Kim void
162a9f12690SJung-uk Kim AcpiDmFindOrphanMethods (
163a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *Origin);
164a9f12690SJung-uk Kim 
165a9f12690SJung-uk Kim void
166a9f12690SJung-uk Kim AcpiDmFinishNamespaceLoad (
167a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *ParseTreeRoot,
168a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *NamespaceRoot,
169a9f12690SJung-uk Kim     ACPI_OWNER_ID           OwnerId);
170a9f12690SJung-uk Kim 
171a9f12690SJung-uk Kim void
172a9f12690SJung-uk Kim AcpiDmConvertResourceIndexes (
173a9f12690SJung-uk Kim     ACPI_PARSE_OBJECT       *ParseTreeRoot,
174a9f12690SJung-uk Kim     ACPI_NAMESPACE_NODE     *NamespaceRoot);
175a9f12690SJung-uk Kim 
176f556842eSJung-uk Kim 
177a9f12690SJung-uk Kim /*
178a9f12690SJung-uk Kim  * adfile
179a9f12690SJung-uk Kim  */
180a9f12690SJung-uk Kim ACPI_STATUS
181a9f12690SJung-uk Kim AdInitialize (
182a9f12690SJung-uk Kim     void);
183a9f12690SJung-uk Kim 
184a9f12690SJung-uk Kim char *
185a9f12690SJung-uk Kim FlGenerateFilename (
186a9f12690SJung-uk Kim     char                    *InputFilename,
187a9f12690SJung-uk Kim     char                    *Suffix);
188a9f12690SJung-uk Kim 
189a9f12690SJung-uk Kim ACPI_STATUS
190a9f12690SJung-uk Kim FlSplitInputPathname (
191a9f12690SJung-uk Kim     char                    *InputPath,
192a9f12690SJung-uk Kim     char                    **OutDirectoryPath,
193a9f12690SJung-uk Kim     char                    **OutFilename);
194a9f12690SJung-uk Kim 
195a9f12690SJung-uk Kim char *
196a9f12690SJung-uk Kim AdGenerateFilename (
197a9f12690SJung-uk Kim     char                    *Prefix,
198a9f12690SJung-uk Kim     char                    *TableId);
199a9f12690SJung-uk Kim 
200a9f12690SJung-uk Kim void
201a9f12690SJung-uk Kim AdWriteTable (
202a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       *Table,
203a9f12690SJung-uk Kim     UINT32                  Length,
204a9f12690SJung-uk Kim     char                    *TableName,
205a9f12690SJung-uk Kim     char                    *OemTableId);
206a9f12690SJung-uk Kim 
207a9f12690SJung-uk Kim #endif /* _ACAPPS */
208a9f12690SJung-uk Kim 
209