xref: /minix3/minix/drivers/power/acpi/include/acapps.h (revision 29492bb71c7148a089a5afafa0c99409161218df)
1433d6423SLionel Sambuc /******************************************************************************
2433d6423SLionel Sambuc  *
3433d6423SLionel Sambuc  * Module Name: acapps - common include for ACPI applications/tools
4433d6423SLionel Sambuc  *
5433d6423SLionel Sambuc  *****************************************************************************/
6433d6423SLionel Sambuc 
7*29492bb7SDavid van Moolenbroek /*
8*29492bb7SDavid van Moolenbroek  * Copyright (C) 2000 - 2014, Intel Corp.
9433d6423SLionel Sambuc  * All rights reserved.
10433d6423SLionel Sambuc  *
11*29492bb7SDavid van Moolenbroek  * Redistribution and use in source and binary forms, with or without
12*29492bb7SDavid van Moolenbroek  * modification, are permitted provided that the following conditions
13*29492bb7SDavid van Moolenbroek  * are met:
14*29492bb7SDavid van Moolenbroek  * 1. Redistributions of source code must retain the above copyright
15*29492bb7SDavid van Moolenbroek  *    notice, this list of conditions, and the following disclaimer,
16*29492bb7SDavid van Moolenbroek  *    without modification.
17*29492bb7SDavid van Moolenbroek  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18*29492bb7SDavid van Moolenbroek  *    substantially similar to the "NO WARRANTY" disclaimer below
19*29492bb7SDavid van Moolenbroek  *    ("Disclaimer") and any redistribution must be conditioned upon
20*29492bb7SDavid van Moolenbroek  *    including a substantially similar Disclaimer requirement for further
21*29492bb7SDavid van Moolenbroek  *    binary redistribution.
22*29492bb7SDavid van Moolenbroek  * 3. Neither the names of the above-listed copyright holders nor the names
23*29492bb7SDavid van Moolenbroek  *    of any contributors may be used to endorse or promote products derived
24*29492bb7SDavid van Moolenbroek  *    from this software without specific prior written permission.
25433d6423SLionel Sambuc  *
26*29492bb7SDavid van Moolenbroek  * Alternatively, this software may be distributed under the terms of the
27*29492bb7SDavid van Moolenbroek  * GNU General Public License ("GPL") version 2 as published by the Free
28*29492bb7SDavid van Moolenbroek  * Software Foundation.
29433d6423SLionel Sambuc  *
30*29492bb7SDavid van Moolenbroek  * NO WARRANTY
31*29492bb7SDavid van Moolenbroek  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32*29492bb7SDavid van Moolenbroek  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33*29492bb7SDavid van Moolenbroek  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34*29492bb7SDavid van Moolenbroek  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35*29492bb7SDavid van Moolenbroek  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36*29492bb7SDavid van Moolenbroek  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37*29492bb7SDavid van Moolenbroek  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38*29492bb7SDavid van Moolenbroek  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39*29492bb7SDavid van Moolenbroek  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40*29492bb7SDavid van Moolenbroek  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41*29492bb7SDavid van Moolenbroek  * POSSIBILITY OF SUCH DAMAGES.
42*29492bb7SDavid van Moolenbroek  */
43433d6423SLionel Sambuc 
44433d6423SLionel Sambuc #ifndef _ACAPPS
45433d6423SLionel Sambuc #define _ACAPPS
46433d6423SLionel Sambuc 
47433d6423SLionel Sambuc 
48433d6423SLionel Sambuc #ifdef _MSC_VER                 /* disable some level-4 warnings */
49433d6423SLionel Sambuc #pragma warning(disable:4100)   /* warning C4100: unreferenced formal parameter */
50433d6423SLionel Sambuc #endif
51433d6423SLionel Sambuc 
52*29492bb7SDavid van Moolenbroek /* Common info for tool signons */
53*29492bb7SDavid van Moolenbroek 
54*29492bb7SDavid van Moolenbroek #define ACPICA_NAME                 "Intel ACPI Component Architecture"
55*29492bb7SDavid van Moolenbroek #define ACPICA_COPYRIGHT            "Copyright (c) 2000 - 2014 Intel Corporation"
56*29492bb7SDavid van Moolenbroek 
57*29492bb7SDavid van Moolenbroek #if ACPI_MACHINE_WIDTH == 64
58*29492bb7SDavid van Moolenbroek #define ACPI_WIDTH          "-64"
59*29492bb7SDavid van Moolenbroek 
60*29492bb7SDavid van Moolenbroek #elif ACPI_MACHINE_WIDTH == 32
61*29492bb7SDavid van Moolenbroek #define ACPI_WIDTH          "-32"
62*29492bb7SDavid van Moolenbroek 
63*29492bb7SDavid van Moolenbroek #else
64*29492bb7SDavid van Moolenbroek #error unknown ACPI_MACHINE_WIDTH
65*29492bb7SDavid van Moolenbroek #define ACPI_WIDTH          "-??"
66*29492bb7SDavid van Moolenbroek 
67*29492bb7SDavid van Moolenbroek #endif
68*29492bb7SDavid van Moolenbroek 
69*29492bb7SDavid van Moolenbroek /* Macros for signons and file headers */
70*29492bb7SDavid van Moolenbroek 
71*29492bb7SDavid van Moolenbroek #define ACPI_COMMON_SIGNON(UtilityName) \
72*29492bb7SDavid van Moolenbroek     "\n%s\n%s version %8.8X%s [%s]\n%s\n\n", \
73*29492bb7SDavid van Moolenbroek     ACPICA_NAME, \
74*29492bb7SDavid van Moolenbroek     UtilityName, ((UINT32) ACPI_CA_VERSION), ACPI_WIDTH, __DATE__, \
75*29492bb7SDavid van Moolenbroek     ACPICA_COPYRIGHT
76*29492bb7SDavid van Moolenbroek 
77*29492bb7SDavid van Moolenbroek #define ACPI_COMMON_HEADER(UtilityName, Prefix) \
78*29492bb7SDavid van Moolenbroek     "%s%s\n%s%s version %8.8X%s [%s]\n%s%s\n%s\n", \
79*29492bb7SDavid van Moolenbroek     Prefix, ACPICA_NAME, \
80*29492bb7SDavid van Moolenbroek     Prefix, UtilityName, ((UINT32) ACPI_CA_VERSION), ACPI_WIDTH, __DATE__, \
81*29492bb7SDavid van Moolenbroek     Prefix, ACPICA_COPYRIGHT, \
82*29492bb7SDavid van Moolenbroek     Prefix
83*29492bb7SDavid van Moolenbroek 
84*29492bb7SDavid van Moolenbroek /* Macros for usage messages */
85*29492bb7SDavid van Moolenbroek 
86*29492bb7SDavid van Moolenbroek #define ACPI_USAGE_HEADER(Usage) \
87*29492bb7SDavid van Moolenbroek     AcpiOsPrintf ("Usage: %s\nOptions:\n", Usage);
88*29492bb7SDavid van Moolenbroek 
89*29492bb7SDavid van Moolenbroek #define ACPI_USAGE_TEXT(Description) \
90*29492bb7SDavid van Moolenbroek     AcpiOsPrintf (Description);
91*29492bb7SDavid van Moolenbroek 
92*29492bb7SDavid van Moolenbroek #define ACPI_OPTION(Name, Description) \
93*29492bb7SDavid van Moolenbroek     AcpiOsPrintf ("  %-18s%s\n", Name, Description);
94*29492bb7SDavid van Moolenbroek 
95*29492bb7SDavid van Moolenbroek 
96433d6423SLionel Sambuc #define FILE_SUFFIX_DISASSEMBLY     "dsl"
97433d6423SLionel Sambuc #define ACPI_TABLE_FILE_SUFFIX      ".dat"
98433d6423SLionel Sambuc 
99433d6423SLionel Sambuc 
100433d6423SLionel Sambuc /*
101433d6423SLionel Sambuc  * getopt
102433d6423SLionel Sambuc  */
103433d6423SLionel Sambuc int
104433d6423SLionel Sambuc AcpiGetopt(
105433d6423SLionel Sambuc     int                     argc,
106433d6423SLionel Sambuc     char                    **argv,
107433d6423SLionel Sambuc     char                    *opts);
108433d6423SLionel Sambuc 
109*29492bb7SDavid van Moolenbroek int
110*29492bb7SDavid van Moolenbroek AcpiGetoptArgument (
111*29492bb7SDavid van Moolenbroek     int                     argc,
112*29492bb7SDavid van Moolenbroek     char                    **argv);
113*29492bb7SDavid van Moolenbroek 
114433d6423SLionel Sambuc extern int                  AcpiGbl_Optind;
115433d6423SLionel Sambuc extern int                  AcpiGbl_Opterr;
116*29492bb7SDavid van Moolenbroek extern int                  AcpiGbl_SubOptChar;
117433d6423SLionel Sambuc extern char                 *AcpiGbl_Optarg;
118433d6423SLionel Sambuc 
119433d6423SLionel Sambuc 
120433d6423SLionel Sambuc /*
121*29492bb7SDavid van Moolenbroek  * cmfsize - Common get file size function
122*29492bb7SDavid van Moolenbroek  */
123*29492bb7SDavid van Moolenbroek UINT32
124*29492bb7SDavid van Moolenbroek CmGetFileSize (
125*29492bb7SDavid van Moolenbroek     ACPI_FILE               File);
126*29492bb7SDavid van Moolenbroek 
127*29492bb7SDavid van Moolenbroek 
128*29492bb7SDavid van Moolenbroek #ifndef ACPI_DUMP_APP
129*29492bb7SDavid van Moolenbroek /*
130433d6423SLionel Sambuc  * adisasm
131433d6423SLionel Sambuc  */
132433d6423SLionel Sambuc ACPI_STATUS
133433d6423SLionel Sambuc AdAmlDisassemble (
134433d6423SLionel Sambuc     BOOLEAN                 OutToFile,
135433d6423SLionel Sambuc     char                    *Filename,
136433d6423SLionel Sambuc     char                    *Prefix,
137*29492bb7SDavid van Moolenbroek     char                    **OutFilename);
138433d6423SLionel Sambuc 
139433d6423SLionel Sambuc void
140433d6423SLionel Sambuc AdPrintStatistics (
141433d6423SLionel Sambuc     void);
142433d6423SLionel Sambuc 
143433d6423SLionel Sambuc ACPI_STATUS
144433d6423SLionel Sambuc AdFindDsdt(
145433d6423SLionel Sambuc     UINT8                   **DsdtPtr,
146433d6423SLionel Sambuc     UINT32                  *DsdtLength);
147433d6423SLionel Sambuc 
148433d6423SLionel Sambuc void
149433d6423SLionel Sambuc AdDumpTables (
150433d6423SLionel Sambuc     void);
151433d6423SLionel Sambuc 
152433d6423SLionel Sambuc ACPI_STATUS
153433d6423SLionel Sambuc AdGetLocalTables (
154*29492bb7SDavid van Moolenbroek     void);
155433d6423SLionel Sambuc 
156433d6423SLionel Sambuc ACPI_STATUS
157433d6423SLionel Sambuc AdParseTable (
158433d6423SLionel Sambuc     ACPI_TABLE_HEADER       *Table,
159433d6423SLionel Sambuc     ACPI_OWNER_ID           *OwnerId,
160433d6423SLionel Sambuc     BOOLEAN                 LoadTable,
161433d6423SLionel Sambuc     BOOLEAN                 External);
162433d6423SLionel Sambuc 
163433d6423SLionel Sambuc ACPI_STATUS
164433d6423SLionel Sambuc AdDisplayTables (
165433d6423SLionel Sambuc     char                    *Filename,
166433d6423SLionel Sambuc     ACPI_TABLE_HEADER       *Table);
167433d6423SLionel Sambuc 
168433d6423SLionel Sambuc ACPI_STATUS
169433d6423SLionel Sambuc AdDisplayStatistics (
170433d6423SLionel Sambuc     void);
171433d6423SLionel Sambuc 
172433d6423SLionel Sambuc 
173433d6423SLionel Sambuc /*
174433d6423SLionel Sambuc  * adwalk
175433d6423SLionel Sambuc  */
176433d6423SLionel Sambuc void
177433d6423SLionel Sambuc AcpiDmCrossReferenceNamespace (
178433d6423SLionel Sambuc     ACPI_PARSE_OBJECT       *ParseTreeRoot,
179433d6423SLionel Sambuc     ACPI_NAMESPACE_NODE     *NamespaceRoot,
180433d6423SLionel Sambuc     ACPI_OWNER_ID           OwnerId);
181433d6423SLionel Sambuc 
182433d6423SLionel Sambuc void
183433d6423SLionel Sambuc AcpiDmDumpTree (
184433d6423SLionel Sambuc     ACPI_PARSE_OBJECT       *Origin);
185433d6423SLionel Sambuc 
186433d6423SLionel Sambuc void
187433d6423SLionel Sambuc AcpiDmFindOrphanMethods (
188433d6423SLionel Sambuc     ACPI_PARSE_OBJECT       *Origin);
189433d6423SLionel Sambuc 
190433d6423SLionel Sambuc void
191433d6423SLionel Sambuc AcpiDmFinishNamespaceLoad (
192433d6423SLionel Sambuc     ACPI_PARSE_OBJECT       *ParseTreeRoot,
193433d6423SLionel Sambuc     ACPI_NAMESPACE_NODE     *NamespaceRoot,
194433d6423SLionel Sambuc     ACPI_OWNER_ID           OwnerId);
195433d6423SLionel Sambuc 
196433d6423SLionel Sambuc void
197433d6423SLionel Sambuc AcpiDmConvertResourceIndexes (
198433d6423SLionel Sambuc     ACPI_PARSE_OBJECT       *ParseTreeRoot,
199433d6423SLionel Sambuc     ACPI_NAMESPACE_NODE     *NamespaceRoot);
200433d6423SLionel Sambuc 
201433d6423SLionel Sambuc 
202433d6423SLionel Sambuc /*
203433d6423SLionel Sambuc  * adfile
204433d6423SLionel Sambuc  */
205433d6423SLionel Sambuc ACPI_STATUS
206433d6423SLionel Sambuc AdInitialize (
207433d6423SLionel Sambuc     void);
208433d6423SLionel Sambuc 
209433d6423SLionel Sambuc char *
210433d6423SLionel Sambuc FlGenerateFilename (
211433d6423SLionel Sambuc     char                    *InputFilename,
212433d6423SLionel Sambuc     char                    *Suffix);
213433d6423SLionel Sambuc 
214433d6423SLionel Sambuc ACPI_STATUS
215433d6423SLionel Sambuc FlSplitInputPathname (
216433d6423SLionel Sambuc     char                    *InputPath,
217433d6423SLionel Sambuc     char                    **OutDirectoryPath,
218433d6423SLionel Sambuc     char                    **OutFilename);
219433d6423SLionel Sambuc 
220433d6423SLionel Sambuc char *
221433d6423SLionel Sambuc AdGenerateFilename (
222433d6423SLionel Sambuc     char                    *Prefix,
223433d6423SLionel Sambuc     char                    *TableId);
224433d6423SLionel Sambuc 
225433d6423SLionel Sambuc void
226433d6423SLionel Sambuc AdWriteTable (
227433d6423SLionel Sambuc     ACPI_TABLE_HEADER       *Table,
228433d6423SLionel Sambuc     UINT32                  Length,
229433d6423SLionel Sambuc     char                    *TableName,
230433d6423SLionel Sambuc     char                    *OemTableId);
231*29492bb7SDavid van Moolenbroek #endif
232433d6423SLionel Sambuc 
233433d6423SLionel Sambuc #endif /* _ACAPPS */
234