xref: /freebsd/sys/contrib/dev/acpica/include/acpixf.h (revision 709fac06161594e03e54a1075a2ee7e064053cb7)
1a9f12690SJung-uk Kim 
2a9f12690SJung-uk Kim /******************************************************************************
3a9f12690SJung-uk Kim  *
4a9f12690SJung-uk Kim  * Name: acpixf.h - External interfaces to the ACPI subsystem
5a9f12690SJung-uk Kim  *
6a9f12690SJung-uk Kim  *****************************************************************************/
7a9f12690SJung-uk Kim 
8a9f12690SJung-uk Kim /******************************************************************************
9a9f12690SJung-uk Kim  *
10a9f12690SJung-uk Kim  * 1. Copyright Notice
11a9f12690SJung-uk Kim  *
129a179dd8SJung-uk Kim  * Some or all of this work - Copyright (c) 1999 - 2010, Intel Corp.
13a9f12690SJung-uk Kim  * All rights reserved.
14a9f12690SJung-uk Kim  *
15a9f12690SJung-uk Kim  * 2. License
16a9f12690SJung-uk Kim  *
17a9f12690SJung-uk Kim  * 2.1. This is your license from Intel Corp. under its intellectual property
18a9f12690SJung-uk Kim  * rights.  You may have additional license terms from the party that provided
19a9f12690SJung-uk Kim  * you this software, covering your right to use that party's intellectual
20a9f12690SJung-uk Kim  * property rights.
21a9f12690SJung-uk Kim  *
22a9f12690SJung-uk Kim  * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
23a9f12690SJung-uk Kim  * copy of the source code appearing in this file ("Covered Code") an
24a9f12690SJung-uk Kim  * irrevocable, perpetual, worldwide license under Intel's copyrights in the
25a9f12690SJung-uk Kim  * base code distributed originally by Intel ("Original Intel Code") to copy,
26a9f12690SJung-uk Kim  * make derivatives, distribute, use and display any portion of the Covered
27a9f12690SJung-uk Kim  * Code in any form, with the right to sublicense such rights; and
28a9f12690SJung-uk Kim  *
29a9f12690SJung-uk Kim  * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
30a9f12690SJung-uk Kim  * license (with the right to sublicense), under only those claims of Intel
31a9f12690SJung-uk Kim  * patents that are infringed by the Original Intel Code, to make, use, sell,
32a9f12690SJung-uk Kim  * offer to sell, and import the Covered Code and derivative works thereof
33a9f12690SJung-uk Kim  * solely to the minimum extent necessary to exercise the above copyright
34a9f12690SJung-uk Kim  * license, and in no event shall the patent license extend to any additions
35a9f12690SJung-uk Kim  * to or modifications of the Original Intel Code.  No other license or right
36a9f12690SJung-uk Kim  * is granted directly or by implication, estoppel or otherwise;
37a9f12690SJung-uk Kim  *
38a9f12690SJung-uk Kim  * The above copyright and patent license is granted only if the following
39a9f12690SJung-uk Kim  * conditions are met:
40a9f12690SJung-uk Kim  *
41a9f12690SJung-uk Kim  * 3. Conditions
42a9f12690SJung-uk Kim  *
43a9f12690SJung-uk Kim  * 3.1. Redistribution of Source with Rights to Further Distribute Source.
44a9f12690SJung-uk Kim  * Redistribution of source code of any substantial portion of the Covered
45a9f12690SJung-uk Kim  * Code or modification with rights to further distribute source must include
46a9f12690SJung-uk Kim  * the above Copyright Notice, the above License, this list of Conditions,
47a9f12690SJung-uk Kim  * and the following Disclaimer and Export Compliance provision.  In addition,
48a9f12690SJung-uk Kim  * Licensee must cause all Covered Code to which Licensee contributes to
49a9f12690SJung-uk Kim  * contain a file documenting the changes Licensee made to create that Covered
50a9f12690SJung-uk Kim  * Code and the date of any change.  Licensee must include in that file the
51a9f12690SJung-uk Kim  * documentation of any changes made by any predecessor Licensee.  Licensee
52a9f12690SJung-uk Kim  * must include a prominent statement that the modification is derived,
53a9f12690SJung-uk Kim  * directly or indirectly, from Original Intel Code.
54a9f12690SJung-uk Kim  *
55a9f12690SJung-uk Kim  * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
56a9f12690SJung-uk Kim  * Redistribution of source code of any substantial portion of the Covered
57a9f12690SJung-uk Kim  * Code or modification without rights to further distribute source must
58a9f12690SJung-uk Kim  * include the following Disclaimer and Export Compliance provision in the
59a9f12690SJung-uk Kim  * documentation and/or other materials provided with distribution.  In
60a9f12690SJung-uk Kim  * addition, Licensee may not authorize further sublicense of source of any
61a9f12690SJung-uk Kim  * portion of the Covered Code, and must include terms to the effect that the
62a9f12690SJung-uk Kim  * license from Licensee to its licensee is limited to the intellectual
63a9f12690SJung-uk Kim  * property embodied in the software Licensee provides to its licensee, and
64a9f12690SJung-uk Kim  * not to intellectual property embodied in modifications its licensee may
65a9f12690SJung-uk Kim  * make.
66a9f12690SJung-uk Kim  *
67a9f12690SJung-uk Kim  * 3.3. Redistribution of Executable. Redistribution in executable form of any
68a9f12690SJung-uk Kim  * substantial portion of the Covered Code or modification must reproduce the
69a9f12690SJung-uk Kim  * above Copyright Notice, and the following Disclaimer and Export Compliance
70a9f12690SJung-uk Kim  * provision in the documentation and/or other materials provided with the
71a9f12690SJung-uk Kim  * distribution.
72a9f12690SJung-uk Kim  *
73a9f12690SJung-uk Kim  * 3.4. Intel retains all right, title, and interest in and to the Original
74a9f12690SJung-uk Kim  * Intel Code.
75a9f12690SJung-uk Kim  *
76a9f12690SJung-uk Kim  * 3.5. Neither the name Intel nor any other trademark owned or controlled by
77a9f12690SJung-uk Kim  * Intel shall be used in advertising or otherwise to promote the sale, use or
78a9f12690SJung-uk Kim  * other dealings in products derived from or relating to the Covered Code
79a9f12690SJung-uk Kim  * without prior written authorization from Intel.
80a9f12690SJung-uk Kim  *
81a9f12690SJung-uk Kim  * 4. Disclaimer and Export Compliance
82a9f12690SJung-uk Kim  *
83a9f12690SJung-uk Kim  * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
84a9f12690SJung-uk Kim  * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
85a9f12690SJung-uk Kim  * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
86a9f12690SJung-uk Kim  * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
87a9f12690SJung-uk Kim  * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
88a9f12690SJung-uk Kim  * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
89a9f12690SJung-uk Kim  * PARTICULAR PURPOSE.
90a9f12690SJung-uk Kim  *
91a9f12690SJung-uk Kim  * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
92a9f12690SJung-uk Kim  * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
93a9f12690SJung-uk Kim  * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
94a9f12690SJung-uk Kim  * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
95a9f12690SJung-uk Kim  * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
96a9f12690SJung-uk Kim  * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
97a9f12690SJung-uk Kim  * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
98a9f12690SJung-uk Kim  * LIMITED REMEDY.
99a9f12690SJung-uk Kim  *
100a9f12690SJung-uk Kim  * 4.3. Licensee shall not export, either directly or indirectly, any of this
101a9f12690SJung-uk Kim  * software or system incorporating such software without first obtaining any
102a9f12690SJung-uk Kim  * required license or other approval from the U. S. Department of Commerce or
103a9f12690SJung-uk Kim  * any other agency or department of the United States Government.  In the
104a9f12690SJung-uk Kim  * event Licensee exports any such software from the United States or
105a9f12690SJung-uk Kim  * re-exports any such software from a foreign destination, Licensee shall
106a9f12690SJung-uk Kim  * ensure that the distribution and export/re-export of the software is in
107a9f12690SJung-uk Kim  * compliance with all laws, regulations, orders, or other restrictions of the
108a9f12690SJung-uk Kim  * U.S. Export Administration Regulations. Licensee agrees that neither it nor
109a9f12690SJung-uk Kim  * any of its subsidiaries will export/re-export any technical data, process,
110a9f12690SJung-uk Kim  * software, or service, directly or indirectly, to any country for which the
111a9f12690SJung-uk Kim  * United States government or any agency thereof requires an export license,
112a9f12690SJung-uk Kim  * other governmental approval, or letter of assurance, without first obtaining
113a9f12690SJung-uk Kim  * such license, approval or letter.
114a9f12690SJung-uk Kim  *
115a9f12690SJung-uk Kim  *****************************************************************************/
116a9f12690SJung-uk Kim 
117a9f12690SJung-uk Kim 
118a9f12690SJung-uk Kim #ifndef __ACXFACE_H__
119a9f12690SJung-uk Kim #define __ACXFACE_H__
120a9f12690SJung-uk Kim 
121a9f12690SJung-uk Kim /* Current ACPICA subsystem version in YYYYMMDD format */
122a9f12690SJung-uk Kim 
123*709fac06SJung-uk Kim #define ACPI_CA_VERSION                 0x20100806
124a9f12690SJung-uk Kim 
125ab6f3bf9SJung-uk Kim #include <contrib/dev/acpica/include/actypes.h>
126ab6f3bf9SJung-uk Kim #include <contrib/dev/acpica/include/actbl.h>
127a9f12690SJung-uk Kim 
128a9f12690SJung-uk Kim /*
129a9f12690SJung-uk Kim  * Globals that are publically available
130a9f12690SJung-uk Kim  */
131a9f12690SJung-uk Kim extern UINT32               AcpiCurrentGpeCount;
132a9f12690SJung-uk Kim extern ACPI_TABLE_FADT      AcpiGbl_FADT;
133a9f12690SJung-uk Kim 
134a9f12690SJung-uk Kim /* Runtime configuration of debug print levels */
135a9f12690SJung-uk Kim 
136a9f12690SJung-uk Kim extern UINT32               AcpiDbgLevel;
137a9f12690SJung-uk Kim extern UINT32               AcpiDbgLayer;
138a9f12690SJung-uk Kim 
139a9f12690SJung-uk Kim /* ACPICA runtime options */
140a9f12690SJung-uk Kim 
141a9f12690SJung-uk Kim extern UINT8                AcpiGbl_EnableInterpreterSlack;
142a9f12690SJung-uk Kim extern UINT8                AcpiGbl_AllMethodsSerialized;
143a9f12690SJung-uk Kim extern UINT8                AcpiGbl_CreateOsiMethod;
144a9f12690SJung-uk Kim extern UINT8                AcpiGbl_LeaveWakeGpesDisabled;
145a9f12690SJung-uk Kim extern UINT8                AcpiGbl_UseDefaultRegisterWidths;
146a9f12690SJung-uk Kim extern ACPI_NAME            AcpiGbl_TraceMethodName;
147a9f12690SJung-uk Kim extern UINT32               AcpiGbl_TraceFlags;
148ca3cf4faSJung-uk Kim extern UINT8                AcpiGbl_EnableAmlDebugObject;
1498c8be05fSJung-uk Kim extern UINT8                AcpiGbl_CopyDsdtLocally;
150a88e22b7SJung-uk Kim extern UINT8                AcpiGbl_TruncateIoAddresses;
151a9f12690SJung-uk Kim 
152a9f12690SJung-uk Kim 
153a9f12690SJung-uk Kim /*
154a9f12690SJung-uk Kim  * Global interfaces
155a9f12690SJung-uk Kim  */
156a9f12690SJung-uk Kim ACPI_STATUS
157a9f12690SJung-uk Kim AcpiInitializeTables (
158a9f12690SJung-uk Kim     ACPI_TABLE_DESC         *InitialStorage,
159a9f12690SJung-uk Kim     UINT32                  InitialTableCount,
160a9f12690SJung-uk Kim     BOOLEAN                 AllowResize);
161a9f12690SJung-uk Kim 
162a9f12690SJung-uk Kim ACPI_STATUS
163a9f12690SJung-uk Kim AcpiInitializeSubsystem (
164a9f12690SJung-uk Kim     void);
165a9f12690SJung-uk Kim 
166a9f12690SJung-uk Kim ACPI_STATUS
167a9f12690SJung-uk Kim AcpiEnableSubsystem (
168a9f12690SJung-uk Kim     UINT32                  Flags);
169a9f12690SJung-uk Kim 
170a9f12690SJung-uk Kim ACPI_STATUS
171a9f12690SJung-uk Kim AcpiInitializeObjects (
172a9f12690SJung-uk Kim     UINT32                  Flags);
173a9f12690SJung-uk Kim 
174a9f12690SJung-uk Kim ACPI_STATUS
175a9f12690SJung-uk Kim AcpiTerminate (
176a9f12690SJung-uk Kim     void);
177a9f12690SJung-uk Kim 
178a9f12690SJung-uk Kim ACPI_STATUS
179a9f12690SJung-uk Kim AcpiSubsystemStatus (
180a9f12690SJung-uk Kim     void);
181a9f12690SJung-uk Kim 
182a9f12690SJung-uk Kim ACPI_STATUS
183a9f12690SJung-uk Kim AcpiEnable (
184a9f12690SJung-uk Kim     void);
185a9f12690SJung-uk Kim 
186a9f12690SJung-uk Kim ACPI_STATUS
187a9f12690SJung-uk Kim AcpiDisable (
188a9f12690SJung-uk Kim     void);
189a9f12690SJung-uk Kim 
190a9f12690SJung-uk Kim ACPI_STATUS
191a9f12690SJung-uk Kim AcpiGetSystemInfo (
192a9f12690SJung-uk Kim     ACPI_BUFFER             *RetBuffer);
193a9f12690SJung-uk Kim 
194a9f12690SJung-uk Kim ACPI_STATUS
195a9f12690SJung-uk Kim AcpiGetStatistics (
196a9f12690SJung-uk Kim     ACPI_STATISTICS         *Stats);
197a9f12690SJung-uk Kim 
198a9f12690SJung-uk Kim const char *
199a9f12690SJung-uk Kim AcpiFormatException (
200a9f12690SJung-uk Kim     ACPI_STATUS             Exception);
201a9f12690SJung-uk Kim 
202a9f12690SJung-uk Kim ACPI_STATUS
203a9f12690SJung-uk Kim AcpiPurgeCachedObjects (
204a9f12690SJung-uk Kim     void);
205a9f12690SJung-uk Kim 
206*709fac06SJung-uk Kim ACPI_STATUS
207*709fac06SJung-uk Kim AcpiInstallInterface (
208*709fac06SJung-uk Kim     ACPI_STRING             InterfaceName);
209*709fac06SJung-uk Kim 
210*709fac06SJung-uk Kim ACPI_STATUS
211*709fac06SJung-uk Kim AcpiRemoveInterface (
212*709fac06SJung-uk Kim     ACPI_STRING             InterfaceName);
213a9f12690SJung-uk Kim 
214a9f12690SJung-uk Kim /*
215*709fac06SJung-uk Kim  * ACPI Memory management
216a9f12690SJung-uk Kim  */
217a9f12690SJung-uk Kim void *
218a9f12690SJung-uk Kim AcpiAllocate (
219a9f12690SJung-uk Kim     UINT32                  Size);
220a9f12690SJung-uk Kim 
221a9f12690SJung-uk Kim void *
222a9f12690SJung-uk Kim AcpiCallocate (
223a9f12690SJung-uk Kim     UINT32                  Size);
224a9f12690SJung-uk Kim 
225a9f12690SJung-uk Kim void
226a9f12690SJung-uk Kim AcpiFree (
227a9f12690SJung-uk Kim     void                    *Address);
228a9f12690SJung-uk Kim 
229a9f12690SJung-uk Kim 
230a9f12690SJung-uk Kim /*
231a9f12690SJung-uk Kim  * ACPI table manipulation interfaces
232a9f12690SJung-uk Kim  */
233a9f12690SJung-uk Kim ACPI_STATUS
234a9f12690SJung-uk Kim AcpiReallocateRootTable (
235a9f12690SJung-uk Kim     void);
236a9f12690SJung-uk Kim 
237a9f12690SJung-uk Kim ACPI_STATUS
238a9f12690SJung-uk Kim AcpiFindRootPointer (
239a9f12690SJung-uk Kim     ACPI_SIZE               *RsdpAddress);
240a9f12690SJung-uk Kim 
241a9f12690SJung-uk Kim ACPI_STATUS
242a9f12690SJung-uk Kim AcpiLoadTables (
243a9f12690SJung-uk Kim     void);
244a9f12690SJung-uk Kim 
245a9f12690SJung-uk Kim ACPI_STATUS
246a9f12690SJung-uk Kim AcpiGetTableHeader (
247a9f12690SJung-uk Kim     ACPI_STRING             Signature,
248a9f12690SJung-uk Kim     UINT32                  Instance,
249a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       *OutTableHeader);
250a9f12690SJung-uk Kim 
251a9f12690SJung-uk Kim ACPI_STATUS
252a9f12690SJung-uk Kim AcpiGetTable (
253a9f12690SJung-uk Kim     ACPI_STRING             Signature,
254a9f12690SJung-uk Kim     UINT32                  Instance,
255a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       **OutTable);
256a9f12690SJung-uk Kim 
257a9f12690SJung-uk Kim ACPI_STATUS
258a9f12690SJung-uk Kim AcpiGetTableByIndex (
259a9f12690SJung-uk Kim     UINT32                  TableIndex,
260a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       **OutTable);
261a9f12690SJung-uk Kim 
262a9f12690SJung-uk Kim ACPI_STATUS
263a9f12690SJung-uk Kim AcpiInstallTableHandler (
264a9f12690SJung-uk Kim     ACPI_TABLE_HANDLER      Handler,
265a9f12690SJung-uk Kim     void                    *Context);
266a9f12690SJung-uk Kim 
267a9f12690SJung-uk Kim ACPI_STATUS
268a9f12690SJung-uk Kim AcpiRemoveTableHandler (
269a9f12690SJung-uk Kim     ACPI_TABLE_HANDLER      Handler);
270a9f12690SJung-uk Kim 
271a9f12690SJung-uk Kim 
272a9f12690SJung-uk Kim /*
273a9f12690SJung-uk Kim  * Namespace and name interfaces
274a9f12690SJung-uk Kim  */
275a9f12690SJung-uk Kim ACPI_STATUS
276a9f12690SJung-uk Kim AcpiWalkNamespace (
277a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
278a9f12690SJung-uk Kim     ACPI_HANDLE             StartObject,
279a9f12690SJung-uk Kim     UINT32                  MaxDepth,
2802272d050SJung-uk Kim     ACPI_WALK_CALLBACK      PreOrderVisit,
2812272d050SJung-uk Kim     ACPI_WALK_CALLBACK      PostOrderVisit,
282a9f12690SJung-uk Kim     void                    *Context,
283a9f12690SJung-uk Kim     void                    **ReturnValue);
284a9f12690SJung-uk Kim 
285a9f12690SJung-uk Kim ACPI_STATUS
286a9f12690SJung-uk Kim AcpiGetDevices (
287a9f12690SJung-uk Kim     char                    *HID,
288a9f12690SJung-uk Kim     ACPI_WALK_CALLBACK      UserFunction,
289a9f12690SJung-uk Kim     void                    *Context,
290a9f12690SJung-uk Kim     void                    **ReturnValue);
291a9f12690SJung-uk Kim 
292a9f12690SJung-uk Kim ACPI_STATUS
293a9f12690SJung-uk Kim AcpiGetName (
2943f5e024cSJung-uk Kim     ACPI_HANDLE             Object,
295a9f12690SJung-uk Kim     UINT32                  NameType,
296a9f12690SJung-uk Kim     ACPI_BUFFER             *RetPathPtr);
297a9f12690SJung-uk Kim 
298a9f12690SJung-uk Kim ACPI_STATUS
299a9f12690SJung-uk Kim AcpiGetHandle (
300a9f12690SJung-uk Kim     ACPI_HANDLE             Parent,
301a9f12690SJung-uk Kim     ACPI_STRING             Pathname,
302a9f12690SJung-uk Kim     ACPI_HANDLE             *RetHandle);
303a9f12690SJung-uk Kim 
304a9f12690SJung-uk Kim ACPI_STATUS
305a9f12690SJung-uk Kim AcpiAttachData (
3063f5e024cSJung-uk Kim     ACPI_HANDLE             Object,
307a9f12690SJung-uk Kim     ACPI_OBJECT_HANDLER     Handler,
308a9f12690SJung-uk Kim     void                    *Data);
309a9f12690SJung-uk Kim 
310a9f12690SJung-uk Kim ACPI_STATUS
311a9f12690SJung-uk Kim AcpiDetachData (
3123f5e024cSJung-uk Kim     ACPI_HANDLE             Object,
313a9f12690SJung-uk Kim     ACPI_OBJECT_HANDLER     Handler);
314a9f12690SJung-uk Kim 
315a9f12690SJung-uk Kim ACPI_STATUS
316a9f12690SJung-uk Kim AcpiGetData (
3173f5e024cSJung-uk Kim     ACPI_HANDLE             Object,
318a9f12690SJung-uk Kim     ACPI_OBJECT_HANDLER     Handler,
319a9f12690SJung-uk Kim     void                    **Data);
320a9f12690SJung-uk Kim 
321a9f12690SJung-uk Kim ACPI_STATUS
322a9f12690SJung-uk Kim AcpiDebugTrace (
323a9f12690SJung-uk Kim     char                    *Name,
324a9f12690SJung-uk Kim     UINT32                  DebugLevel,
325a9f12690SJung-uk Kim     UINT32                  DebugLayer,
326a9f12690SJung-uk Kim     UINT32                  Flags);
327a9f12690SJung-uk Kim 
328a9f12690SJung-uk Kim 
329a9f12690SJung-uk Kim /*
330a9f12690SJung-uk Kim  * Object manipulation and enumeration
331a9f12690SJung-uk Kim  */
332a9f12690SJung-uk Kim ACPI_STATUS
333a9f12690SJung-uk Kim AcpiEvaluateObject (
334a9f12690SJung-uk Kim     ACPI_HANDLE             Object,
335a9f12690SJung-uk Kim     ACPI_STRING             Pathname,
336a9f12690SJung-uk Kim     ACPI_OBJECT_LIST        *ParameterObjects,
337a9f12690SJung-uk Kim     ACPI_BUFFER             *ReturnObjectBuffer);
338a9f12690SJung-uk Kim 
339a9f12690SJung-uk Kim ACPI_STATUS
340a9f12690SJung-uk Kim AcpiEvaluateObjectTyped (
341a9f12690SJung-uk Kim     ACPI_HANDLE             Object,
342a9f12690SJung-uk Kim     ACPI_STRING             Pathname,
343a9f12690SJung-uk Kim     ACPI_OBJECT_LIST        *ExternalParams,
344a9f12690SJung-uk Kim     ACPI_BUFFER             *ReturnBuffer,
345a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        ReturnType);
346a9f12690SJung-uk Kim 
347a9f12690SJung-uk Kim ACPI_STATUS
348a9f12690SJung-uk Kim AcpiGetObjectInfo (
3493f5e024cSJung-uk Kim     ACPI_HANDLE             Object,
350d6dd1baeSJung-uk Kim     ACPI_DEVICE_INFO        **ReturnBuffer);
351a9f12690SJung-uk Kim 
352a9f12690SJung-uk Kim ACPI_STATUS
353a9f12690SJung-uk Kim AcpiInstallMethod (
354a9f12690SJung-uk Kim     UINT8                   *Buffer);
355a9f12690SJung-uk Kim 
356a9f12690SJung-uk Kim ACPI_STATUS
357a9f12690SJung-uk Kim AcpiGetNextObject (
358a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
359a9f12690SJung-uk Kim     ACPI_HANDLE             Parent,
360a9f12690SJung-uk Kim     ACPI_HANDLE             Child,
361a9f12690SJung-uk Kim     ACPI_HANDLE             *OutHandle);
362a9f12690SJung-uk Kim 
363a9f12690SJung-uk Kim ACPI_STATUS
364a9f12690SJung-uk Kim AcpiGetType (
365a9f12690SJung-uk Kim     ACPI_HANDLE             Object,
366a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        *OutType);
367a9f12690SJung-uk Kim 
368a9f12690SJung-uk Kim ACPI_STATUS
369a9f12690SJung-uk Kim AcpiGetParent (
370a9f12690SJung-uk Kim     ACPI_HANDLE             Object,
371a9f12690SJung-uk Kim     ACPI_HANDLE             *OutHandle);
372a9f12690SJung-uk Kim 
373a9f12690SJung-uk Kim 
374a9f12690SJung-uk Kim /*
375a9f12690SJung-uk Kim  * Handler interfaces
376a9f12690SJung-uk Kim  */
377a9f12690SJung-uk Kim ACPI_STATUS
378a9f12690SJung-uk Kim AcpiInstallInitializationHandler (
379a9f12690SJung-uk Kim     ACPI_INIT_HANDLER       Handler,
380a9f12690SJung-uk Kim     UINT32                  Function);
381a9f12690SJung-uk Kim 
382a9f12690SJung-uk Kim ACPI_STATUS
383a9f12690SJung-uk Kim AcpiInstallFixedEventHandler (
384a9f12690SJung-uk Kim     UINT32                  AcpiEvent,
385a9f12690SJung-uk Kim     ACPI_EVENT_HANDLER      Handler,
386a9f12690SJung-uk Kim     void                    *Context);
387a9f12690SJung-uk Kim 
388a9f12690SJung-uk Kim ACPI_STATUS
389a9f12690SJung-uk Kim AcpiRemoveFixedEventHandler (
390a9f12690SJung-uk Kim     UINT32                  AcpiEvent,
391a9f12690SJung-uk Kim     ACPI_EVENT_HANDLER      Handler);
392a9f12690SJung-uk Kim 
393a9f12690SJung-uk Kim ACPI_STATUS
394a9f12690SJung-uk Kim AcpiInstallNotifyHandler (
395a9f12690SJung-uk Kim     ACPI_HANDLE             Device,
396a9f12690SJung-uk Kim     UINT32                  HandlerType,
397a9f12690SJung-uk Kim     ACPI_NOTIFY_HANDLER     Handler,
398a9f12690SJung-uk Kim     void                    *Context);
399a9f12690SJung-uk Kim 
400a9f12690SJung-uk Kim ACPI_STATUS
401a9f12690SJung-uk Kim AcpiRemoveNotifyHandler (
402a9f12690SJung-uk Kim     ACPI_HANDLE             Device,
403a9f12690SJung-uk Kim     UINT32                  HandlerType,
404a9f12690SJung-uk Kim     ACPI_NOTIFY_HANDLER     Handler);
405a9f12690SJung-uk Kim 
406a9f12690SJung-uk Kim ACPI_STATUS
407a9f12690SJung-uk Kim AcpiInstallAddressSpaceHandler (
408a9f12690SJung-uk Kim     ACPI_HANDLE             Device,
409a9f12690SJung-uk Kim     ACPI_ADR_SPACE_TYPE     SpaceId,
410a9f12690SJung-uk Kim     ACPI_ADR_SPACE_HANDLER  Handler,
411a9f12690SJung-uk Kim     ACPI_ADR_SPACE_SETUP    Setup,
412a9f12690SJung-uk Kim     void                    *Context);
413a9f12690SJung-uk Kim 
414a9f12690SJung-uk Kim ACPI_STATUS
415a9f12690SJung-uk Kim AcpiRemoveAddressSpaceHandler (
416a9f12690SJung-uk Kim     ACPI_HANDLE             Device,
417a9f12690SJung-uk Kim     ACPI_ADR_SPACE_TYPE     SpaceId,
418a9f12690SJung-uk Kim     ACPI_ADR_SPACE_HANDLER  Handler);
419a9f12690SJung-uk Kim 
420a9f12690SJung-uk Kim ACPI_STATUS
421a9f12690SJung-uk Kim AcpiInstallGpeHandler (
422a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice,
423a9f12690SJung-uk Kim     UINT32                  GpeNumber,
424a9f12690SJung-uk Kim     UINT32                  Type,
425a9f12690SJung-uk Kim     ACPI_EVENT_HANDLER      Address,
426a9f12690SJung-uk Kim     void                    *Context);
427a9f12690SJung-uk Kim 
428a9f12690SJung-uk Kim ACPI_STATUS
429a9f12690SJung-uk Kim AcpiRemoveGpeHandler (
430a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice,
431a9f12690SJung-uk Kim     UINT32                  GpeNumber,
432a9f12690SJung-uk Kim     ACPI_EVENT_HANDLER      Address);
433a9f12690SJung-uk Kim 
434a9f12690SJung-uk Kim ACPI_STATUS
435a9f12690SJung-uk Kim AcpiInstallExceptionHandler (
436a9f12690SJung-uk Kim     ACPI_EXCEPTION_HANDLER  Handler);
437a9f12690SJung-uk Kim 
438*709fac06SJung-uk Kim ACPI_STATUS
439*709fac06SJung-uk Kim AcpiInstallInterfaceHandler (
440*709fac06SJung-uk Kim     ACPI_INTERFACE_HANDLER  Handler);
441*709fac06SJung-uk Kim 
442a9f12690SJung-uk Kim 
443a9f12690SJung-uk Kim /*
444a9f12690SJung-uk Kim  * Event interfaces
445a9f12690SJung-uk Kim  */
446a9f12690SJung-uk Kim ACPI_STATUS
447a9f12690SJung-uk Kim AcpiAcquireGlobalLock (
448a9f12690SJung-uk Kim     UINT16                  Timeout,
449a9f12690SJung-uk Kim     UINT32                  *Handle);
450a9f12690SJung-uk Kim 
451a9f12690SJung-uk Kim ACPI_STATUS
452a9f12690SJung-uk Kim AcpiReleaseGlobalLock (
453a9f12690SJung-uk Kim     UINT32                  Handle);
454a9f12690SJung-uk Kim 
455a9f12690SJung-uk Kim ACPI_STATUS
456a9f12690SJung-uk Kim AcpiEnableEvent (
457a9f12690SJung-uk Kim     UINT32                  Event,
458a9f12690SJung-uk Kim     UINT32                  Flags);
459a9f12690SJung-uk Kim 
460a9f12690SJung-uk Kim ACPI_STATUS
461a9f12690SJung-uk Kim AcpiDisableEvent (
462a9f12690SJung-uk Kim     UINT32                  Event,
463a9f12690SJung-uk Kim     UINT32                  Flags);
464a9f12690SJung-uk Kim 
465a9f12690SJung-uk Kim ACPI_STATUS
466a9f12690SJung-uk Kim AcpiClearEvent (
467a9f12690SJung-uk Kim     UINT32                  Event);
468a9f12690SJung-uk Kim 
469a9f12690SJung-uk Kim ACPI_STATUS
470a9f12690SJung-uk Kim AcpiGetEventStatus (
471a9f12690SJung-uk Kim     UINT32                  Event,
472a9f12690SJung-uk Kim     ACPI_EVENT_STATUS       *EventStatus);
473a9f12690SJung-uk Kim 
474a9f12690SJung-uk Kim 
475a9f12690SJung-uk Kim /*
476a9f12690SJung-uk Kim  * GPE Interfaces
477a9f12690SJung-uk Kim  */
478a9f12690SJung-uk Kim ACPI_STATUS
4798c8be05fSJung-uk Kim AcpiSetGpe (
480a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice,
481a9f12690SJung-uk Kim     UINT32                  GpeNumber,
4828c8be05fSJung-uk Kim     UINT8                   Action);
483a9f12690SJung-uk Kim 
484a9f12690SJung-uk Kim ACPI_STATUS
485a9f12690SJung-uk Kim AcpiEnableGpe (
486a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice,
487a88e22b7SJung-uk Kim     UINT32                  GpeNumber);
488a9f12690SJung-uk Kim 
489a9f12690SJung-uk Kim ACPI_STATUS
490a9f12690SJung-uk Kim AcpiDisableGpe (
491a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice,
492a88e22b7SJung-uk Kim     UINT32                  GpeNumber);
493a9f12690SJung-uk Kim 
494a9f12690SJung-uk Kim ACPI_STATUS
495a9f12690SJung-uk Kim AcpiClearGpe (
496a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice,
4978c8be05fSJung-uk Kim     UINT32                  GpeNumber);
498a9f12690SJung-uk Kim 
499a9f12690SJung-uk Kim ACPI_STATUS
500a88e22b7SJung-uk Kim AcpiGpeWakeup (
501a88e22b7SJung-uk Kim     ACPI_HANDLE             GpeDevice,
502a88e22b7SJung-uk Kim     UINT32                  GpeNumber,
503a88e22b7SJung-uk Kim     UINT8                   Action);
504a88e22b7SJung-uk Kim 
505a88e22b7SJung-uk Kim ACPI_STATUS
506a9f12690SJung-uk Kim AcpiGetGpeStatus (
507a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice,
508a9f12690SJung-uk Kim     UINT32                  GpeNumber,
509a9f12690SJung-uk Kim     ACPI_EVENT_STATUS       *EventStatus);
510a9f12690SJung-uk Kim 
511a9f12690SJung-uk Kim ACPI_STATUS
512a9f12690SJung-uk Kim AcpiDisableAllGpes (
513a9f12690SJung-uk Kim     void);
514a9f12690SJung-uk Kim 
515a9f12690SJung-uk Kim ACPI_STATUS
516a9f12690SJung-uk Kim AcpiEnableAllRuntimeGpes (
517a9f12690SJung-uk Kim     void);
518a9f12690SJung-uk Kim 
519a9f12690SJung-uk Kim ACPI_STATUS
520a9f12690SJung-uk Kim AcpiGetGpeDevice (
521a9f12690SJung-uk Kim     UINT32                  GpeIndex,
522a9f12690SJung-uk Kim     ACPI_HANDLE             *GpeDevice);
523a9f12690SJung-uk Kim 
524a9f12690SJung-uk Kim ACPI_STATUS
525a9f12690SJung-uk Kim AcpiInstallGpeBlock (
526a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice,
527a9f12690SJung-uk Kim     ACPI_GENERIC_ADDRESS    *GpeBlockAddress,
528a9f12690SJung-uk Kim     UINT32                  RegisterCount,
529a9f12690SJung-uk Kim     UINT32                  InterruptNumber);
530a9f12690SJung-uk Kim 
531a9f12690SJung-uk Kim ACPI_STATUS
532a9f12690SJung-uk Kim AcpiRemoveGpeBlock (
533a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice);
534a9f12690SJung-uk Kim 
535a9f12690SJung-uk Kim 
536a9f12690SJung-uk Kim /*
537a9f12690SJung-uk Kim  * Resource interfaces
538a9f12690SJung-uk Kim  */
539a9f12690SJung-uk Kim typedef
540a9f12690SJung-uk Kim ACPI_STATUS (*ACPI_WALK_RESOURCE_CALLBACK) (
541a9f12690SJung-uk Kim     ACPI_RESOURCE           *Resource,
542a9f12690SJung-uk Kim     void                    *Context);
543a9f12690SJung-uk Kim 
544a9f12690SJung-uk Kim ACPI_STATUS
545a9f12690SJung-uk Kim AcpiGetVendorResource (
5463f5e024cSJung-uk Kim     ACPI_HANDLE             Device,
547a9f12690SJung-uk Kim     char                    *Name,
548a9f12690SJung-uk Kim     ACPI_VENDOR_UUID        *Uuid,
549a9f12690SJung-uk Kim     ACPI_BUFFER             *RetBuffer);
550a9f12690SJung-uk Kim 
551a9f12690SJung-uk Kim ACPI_STATUS
552a9f12690SJung-uk Kim AcpiGetCurrentResources (
5533f5e024cSJung-uk Kim     ACPI_HANDLE             Device,
554a9f12690SJung-uk Kim     ACPI_BUFFER             *RetBuffer);
555a9f12690SJung-uk Kim 
556a9f12690SJung-uk Kim ACPI_STATUS
557a9f12690SJung-uk Kim AcpiGetPossibleResources (
5583f5e024cSJung-uk Kim     ACPI_HANDLE             Device,
559a9f12690SJung-uk Kim     ACPI_BUFFER             *RetBuffer);
560a9f12690SJung-uk Kim 
561a9f12690SJung-uk Kim ACPI_STATUS
562a9f12690SJung-uk Kim AcpiWalkResources (
5633f5e024cSJung-uk Kim     ACPI_HANDLE                 Device,
564a9f12690SJung-uk Kim     char                        *Name,
565a9f12690SJung-uk Kim     ACPI_WALK_RESOURCE_CALLBACK UserFunction,
566a9f12690SJung-uk Kim     void                        *Context);
567a9f12690SJung-uk Kim 
568a9f12690SJung-uk Kim ACPI_STATUS
569a9f12690SJung-uk Kim AcpiSetCurrentResources (
5703f5e024cSJung-uk Kim     ACPI_HANDLE             Device,
571a9f12690SJung-uk Kim     ACPI_BUFFER             *InBuffer);
572a9f12690SJung-uk Kim 
573a9f12690SJung-uk Kim ACPI_STATUS
574a9f12690SJung-uk Kim AcpiGetIrqRoutingTable (
5753f5e024cSJung-uk Kim     ACPI_HANDLE             Device,
576a9f12690SJung-uk Kim     ACPI_BUFFER             *RetBuffer);
577a9f12690SJung-uk Kim 
578a9f12690SJung-uk Kim ACPI_STATUS
579a9f12690SJung-uk Kim AcpiResourceToAddress64 (
580a9f12690SJung-uk Kim     ACPI_RESOURCE           *Resource,
581a9f12690SJung-uk Kim     ACPI_RESOURCE_ADDRESS64 *Out);
582a9f12690SJung-uk Kim 
583a9f12690SJung-uk Kim 
584a9f12690SJung-uk Kim /*
585a9f12690SJung-uk Kim  * Hardware (ACPI device) interfaces
586a9f12690SJung-uk Kim  */
587a9f12690SJung-uk Kim ACPI_STATUS
588a9f12690SJung-uk Kim AcpiReset (
589a9f12690SJung-uk Kim     void);
590a9f12690SJung-uk Kim 
591a9f12690SJung-uk Kim ACPI_STATUS
592a9f12690SJung-uk Kim AcpiRead (
593d6dd1baeSJung-uk Kim     UINT64                  *Value,
594a9f12690SJung-uk Kim     ACPI_GENERIC_ADDRESS    *Reg);
595a9f12690SJung-uk Kim 
596a9f12690SJung-uk Kim ACPI_STATUS
597a9f12690SJung-uk Kim AcpiWrite (
598d6dd1baeSJung-uk Kim     UINT64                  Value,
599a9f12690SJung-uk Kim     ACPI_GENERIC_ADDRESS    *Reg);
600a9f12690SJung-uk Kim 
601a9f12690SJung-uk Kim ACPI_STATUS
602a9f12690SJung-uk Kim AcpiReadBitRegister (
603a9f12690SJung-uk Kim     UINT32                  RegisterId,
604a9f12690SJung-uk Kim     UINT32                  *ReturnValue);
605a9f12690SJung-uk Kim 
606a9f12690SJung-uk Kim ACPI_STATUS
607a9f12690SJung-uk Kim AcpiWriteBitRegister (
608a9f12690SJung-uk Kim     UINT32                  RegisterId,
609a9f12690SJung-uk Kim     UINT32                  Value);
610a9f12690SJung-uk Kim 
611a9f12690SJung-uk Kim ACPI_STATUS
612a9f12690SJung-uk Kim AcpiGetSleepTypeData (
613a9f12690SJung-uk Kim     UINT8                   SleepState,
614a9f12690SJung-uk Kim     UINT8                   *Slp_TypA,
615a9f12690SJung-uk Kim     UINT8                   *Slp_TypB);
616a9f12690SJung-uk Kim 
617a9f12690SJung-uk Kim ACPI_STATUS
618a9f12690SJung-uk Kim AcpiEnterSleepStatePrep (
619a9f12690SJung-uk Kim     UINT8                   SleepState);
620a9f12690SJung-uk Kim 
621a9f12690SJung-uk Kim ACPI_STATUS
622a9f12690SJung-uk Kim AcpiEnterSleepState (
623a9f12690SJung-uk Kim     UINT8                   SleepState);
624a9f12690SJung-uk Kim 
625a9f12690SJung-uk Kim ACPI_STATUS
626a9f12690SJung-uk Kim AcpiEnterSleepStateS4bios (
627a9f12690SJung-uk Kim     void);
628a9f12690SJung-uk Kim 
629a9f12690SJung-uk Kim ACPI_STATUS
630a9f12690SJung-uk Kim AcpiLeaveSleepState (
631a9f12690SJung-uk Kim     UINT8                   SleepState)
632a9f12690SJung-uk Kim     ;
633a9f12690SJung-uk Kim ACPI_STATUS
634a9f12690SJung-uk Kim AcpiSetFirmwareWakingVector (
635a9f12690SJung-uk Kim     UINT32                  PhysicalAddress);
636a9f12690SJung-uk Kim 
637a9f12690SJung-uk Kim #if ACPI_MACHINE_WIDTH == 64
638a9f12690SJung-uk Kim ACPI_STATUS
639a9f12690SJung-uk Kim AcpiSetFirmwareWakingVector64 (
640a9f12690SJung-uk Kim     UINT64                  PhysicalAddress);
641a9f12690SJung-uk Kim #endif
642a9f12690SJung-uk Kim 
643a9f12690SJung-uk Kim 
644a9f12690SJung-uk Kim /*
645a9f12690SJung-uk Kim  * Error/Warning output
646a9f12690SJung-uk Kim  */
647a9f12690SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE
648a9f12690SJung-uk Kim AcpiError (
649a9f12690SJung-uk Kim     const char              *ModuleName,
650a9f12690SJung-uk Kim     UINT32                  LineNumber,
651a9f12690SJung-uk Kim     const char              *Format,
652a9f12690SJung-uk Kim     ...) ACPI_PRINTF_LIKE(3);
653a9f12690SJung-uk Kim 
654a9f12690SJung-uk Kim void  ACPI_INTERNAL_VAR_XFACE
655a9f12690SJung-uk Kim AcpiException (
656a9f12690SJung-uk Kim     const char              *ModuleName,
657a9f12690SJung-uk Kim     UINT32                  LineNumber,
658a9f12690SJung-uk Kim     ACPI_STATUS             Status,
659a9f12690SJung-uk Kim     const char              *Format,
660a9f12690SJung-uk Kim     ...) ACPI_PRINTF_LIKE(4);
661a9f12690SJung-uk Kim 
662a9f12690SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE
663a9f12690SJung-uk Kim AcpiWarning (
664a9f12690SJung-uk Kim     const char              *ModuleName,
665a9f12690SJung-uk Kim     UINT32                  LineNumber,
666a9f12690SJung-uk Kim     const char              *Format,
667a9f12690SJung-uk Kim     ...) ACPI_PRINTF_LIKE(3);
668a9f12690SJung-uk Kim 
669a9f12690SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE
670a9f12690SJung-uk Kim AcpiInfo (
671a9f12690SJung-uk Kim     const char              *ModuleName,
672a9f12690SJung-uk Kim     UINT32                  LineNumber,
673a9f12690SJung-uk Kim     const char              *Format,
674a9f12690SJung-uk Kim     ...) ACPI_PRINTF_LIKE(3);
675a9f12690SJung-uk Kim 
676a9f12690SJung-uk Kim 
677a9f12690SJung-uk Kim /*
678a9f12690SJung-uk Kim  * Debug output
679a9f12690SJung-uk Kim  */
680a9f12690SJung-uk Kim #ifdef ACPI_DEBUG_OUTPUT
681a9f12690SJung-uk Kim 
682a9f12690SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE
683a9f12690SJung-uk Kim AcpiDebugPrint (
684a9f12690SJung-uk Kim     UINT32                  RequestedDebugLevel,
685a9f12690SJung-uk Kim     UINT32                  LineNumber,
686a9f12690SJung-uk Kim     const char              *FunctionName,
687a9f12690SJung-uk Kim     const char              *ModuleName,
688a9f12690SJung-uk Kim     UINT32                  ComponentId,
689a9f12690SJung-uk Kim     const char              *Format,
690a9f12690SJung-uk Kim     ...) ACPI_PRINTF_LIKE(6);
691a9f12690SJung-uk Kim 
692a9f12690SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE
693a9f12690SJung-uk Kim AcpiDebugPrintRaw (
694a9f12690SJung-uk Kim     UINT32                  RequestedDebugLevel,
695a9f12690SJung-uk Kim     UINT32                  LineNumber,
696a9f12690SJung-uk Kim     const char              *FunctionName,
697a9f12690SJung-uk Kim     const char              *ModuleName,
698a9f12690SJung-uk Kim     UINT32                  ComponentId,
699a9f12690SJung-uk Kim     const char              *Format,
700a9f12690SJung-uk Kim     ...) ACPI_PRINTF_LIKE(6);
701a9f12690SJung-uk Kim #endif
702a9f12690SJung-uk Kim 
703a9f12690SJung-uk Kim #endif /* __ACXFACE_H__ */
704