xref: /freebsd/sys/contrib/dev/acpica/include/acpixf.h (revision a88e22b7ad0a8400875be9c3d02d09d0a8010b9c)
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*a88e22b7SJung-uk Kim #define ACPI_CA_VERSION                 0x20100702
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;
150*a88e22b7SJung-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 
206a9f12690SJung-uk Kim 
207a9f12690SJung-uk Kim /*
208a9f12690SJung-uk Kim  * ACPI Memory managment
209a9f12690SJung-uk Kim  */
210a9f12690SJung-uk Kim void *
211a9f12690SJung-uk Kim AcpiAllocate (
212a9f12690SJung-uk Kim     UINT32                  Size);
213a9f12690SJung-uk Kim 
214a9f12690SJung-uk Kim void *
215a9f12690SJung-uk Kim AcpiCallocate (
216a9f12690SJung-uk Kim     UINT32                  Size);
217a9f12690SJung-uk Kim 
218a9f12690SJung-uk Kim void
219a9f12690SJung-uk Kim AcpiFree (
220a9f12690SJung-uk Kim     void                    *Address);
221a9f12690SJung-uk Kim 
222a9f12690SJung-uk Kim 
223a9f12690SJung-uk Kim /*
224a9f12690SJung-uk Kim  * ACPI table manipulation interfaces
225a9f12690SJung-uk Kim  */
226a9f12690SJung-uk Kim ACPI_STATUS
227a9f12690SJung-uk Kim AcpiReallocateRootTable (
228a9f12690SJung-uk Kim     void);
229a9f12690SJung-uk Kim 
230a9f12690SJung-uk Kim ACPI_STATUS
231a9f12690SJung-uk Kim AcpiFindRootPointer (
232a9f12690SJung-uk Kim     ACPI_SIZE               *RsdpAddress);
233a9f12690SJung-uk Kim 
234a9f12690SJung-uk Kim ACPI_STATUS
235a9f12690SJung-uk Kim AcpiLoadTables (
236a9f12690SJung-uk Kim     void);
237a9f12690SJung-uk Kim 
238a9f12690SJung-uk Kim ACPI_STATUS
239a9f12690SJung-uk Kim AcpiGetTableHeader (
240a9f12690SJung-uk Kim     ACPI_STRING             Signature,
241a9f12690SJung-uk Kim     UINT32                  Instance,
242a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       *OutTableHeader);
243a9f12690SJung-uk Kim 
244a9f12690SJung-uk Kim ACPI_STATUS
245a9f12690SJung-uk Kim AcpiGetTable (
246a9f12690SJung-uk Kim     ACPI_STRING             Signature,
247a9f12690SJung-uk Kim     UINT32                  Instance,
248a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       **OutTable);
249a9f12690SJung-uk Kim 
250a9f12690SJung-uk Kim ACPI_STATUS
251a9f12690SJung-uk Kim AcpiGetTableByIndex (
252a9f12690SJung-uk Kim     UINT32                  TableIndex,
253a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       **OutTable);
254a9f12690SJung-uk Kim 
255a9f12690SJung-uk Kim ACPI_STATUS
256a9f12690SJung-uk Kim AcpiInstallTableHandler (
257a9f12690SJung-uk Kim     ACPI_TABLE_HANDLER      Handler,
258a9f12690SJung-uk Kim     void                    *Context);
259a9f12690SJung-uk Kim 
260a9f12690SJung-uk Kim ACPI_STATUS
261a9f12690SJung-uk Kim AcpiRemoveTableHandler (
262a9f12690SJung-uk Kim     ACPI_TABLE_HANDLER      Handler);
263a9f12690SJung-uk Kim 
264a9f12690SJung-uk Kim 
265a9f12690SJung-uk Kim /*
266a9f12690SJung-uk Kim  * Namespace and name interfaces
267a9f12690SJung-uk Kim  */
268a9f12690SJung-uk Kim ACPI_STATUS
269a9f12690SJung-uk Kim AcpiWalkNamespace (
270a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
271a9f12690SJung-uk Kim     ACPI_HANDLE             StartObject,
272a9f12690SJung-uk Kim     UINT32                  MaxDepth,
2732272d050SJung-uk Kim     ACPI_WALK_CALLBACK      PreOrderVisit,
2742272d050SJung-uk Kim     ACPI_WALK_CALLBACK      PostOrderVisit,
275a9f12690SJung-uk Kim     void                    *Context,
276a9f12690SJung-uk Kim     void                    **ReturnValue);
277a9f12690SJung-uk Kim 
278a9f12690SJung-uk Kim ACPI_STATUS
279a9f12690SJung-uk Kim AcpiGetDevices (
280a9f12690SJung-uk Kim     char                    *HID,
281a9f12690SJung-uk Kim     ACPI_WALK_CALLBACK      UserFunction,
282a9f12690SJung-uk Kim     void                    *Context,
283a9f12690SJung-uk Kim     void                    **ReturnValue);
284a9f12690SJung-uk Kim 
285a9f12690SJung-uk Kim ACPI_STATUS
286a9f12690SJung-uk Kim AcpiGetName (
2873f5e024cSJung-uk Kim     ACPI_HANDLE             Object,
288a9f12690SJung-uk Kim     UINT32                  NameType,
289a9f12690SJung-uk Kim     ACPI_BUFFER             *RetPathPtr);
290a9f12690SJung-uk Kim 
291a9f12690SJung-uk Kim ACPI_STATUS
292a9f12690SJung-uk Kim AcpiGetHandle (
293a9f12690SJung-uk Kim     ACPI_HANDLE             Parent,
294a9f12690SJung-uk Kim     ACPI_STRING             Pathname,
295a9f12690SJung-uk Kim     ACPI_HANDLE             *RetHandle);
296a9f12690SJung-uk Kim 
297a9f12690SJung-uk Kim ACPI_STATUS
298a9f12690SJung-uk Kim AcpiAttachData (
2993f5e024cSJung-uk Kim     ACPI_HANDLE             Object,
300a9f12690SJung-uk Kim     ACPI_OBJECT_HANDLER     Handler,
301a9f12690SJung-uk Kim     void                    *Data);
302a9f12690SJung-uk Kim 
303a9f12690SJung-uk Kim ACPI_STATUS
304a9f12690SJung-uk Kim AcpiDetachData (
3053f5e024cSJung-uk Kim     ACPI_HANDLE             Object,
306a9f12690SJung-uk Kim     ACPI_OBJECT_HANDLER     Handler);
307a9f12690SJung-uk Kim 
308a9f12690SJung-uk Kim ACPI_STATUS
309a9f12690SJung-uk Kim AcpiGetData (
3103f5e024cSJung-uk Kim     ACPI_HANDLE             Object,
311a9f12690SJung-uk Kim     ACPI_OBJECT_HANDLER     Handler,
312a9f12690SJung-uk Kim     void                    **Data);
313a9f12690SJung-uk Kim 
314a9f12690SJung-uk Kim ACPI_STATUS
315a9f12690SJung-uk Kim AcpiDebugTrace (
316a9f12690SJung-uk Kim     char                    *Name,
317a9f12690SJung-uk Kim     UINT32                  DebugLevel,
318a9f12690SJung-uk Kim     UINT32                  DebugLayer,
319a9f12690SJung-uk Kim     UINT32                  Flags);
320a9f12690SJung-uk Kim 
321a9f12690SJung-uk Kim 
322a9f12690SJung-uk Kim /*
323a9f12690SJung-uk Kim  * Object manipulation and enumeration
324a9f12690SJung-uk Kim  */
325a9f12690SJung-uk Kim ACPI_STATUS
326a9f12690SJung-uk Kim AcpiEvaluateObject (
327a9f12690SJung-uk Kim     ACPI_HANDLE             Object,
328a9f12690SJung-uk Kim     ACPI_STRING             Pathname,
329a9f12690SJung-uk Kim     ACPI_OBJECT_LIST        *ParameterObjects,
330a9f12690SJung-uk Kim     ACPI_BUFFER             *ReturnObjectBuffer);
331a9f12690SJung-uk Kim 
332a9f12690SJung-uk Kim ACPI_STATUS
333a9f12690SJung-uk Kim AcpiEvaluateObjectTyped (
334a9f12690SJung-uk Kim     ACPI_HANDLE             Object,
335a9f12690SJung-uk Kim     ACPI_STRING             Pathname,
336a9f12690SJung-uk Kim     ACPI_OBJECT_LIST        *ExternalParams,
337a9f12690SJung-uk Kim     ACPI_BUFFER             *ReturnBuffer,
338a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        ReturnType);
339a9f12690SJung-uk Kim 
340a9f12690SJung-uk Kim ACPI_STATUS
341a9f12690SJung-uk Kim AcpiGetObjectInfo (
3423f5e024cSJung-uk Kim     ACPI_HANDLE             Object,
343d6dd1baeSJung-uk Kim     ACPI_DEVICE_INFO        **ReturnBuffer);
344a9f12690SJung-uk Kim 
345a9f12690SJung-uk Kim ACPI_STATUS
346a9f12690SJung-uk Kim AcpiInstallMethod (
347a9f12690SJung-uk Kim     UINT8                   *Buffer);
348a9f12690SJung-uk Kim 
349a9f12690SJung-uk Kim ACPI_STATUS
350a9f12690SJung-uk Kim AcpiGetNextObject (
351a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
352a9f12690SJung-uk Kim     ACPI_HANDLE             Parent,
353a9f12690SJung-uk Kim     ACPI_HANDLE             Child,
354a9f12690SJung-uk Kim     ACPI_HANDLE             *OutHandle);
355a9f12690SJung-uk Kim 
356a9f12690SJung-uk Kim ACPI_STATUS
357a9f12690SJung-uk Kim AcpiGetType (
358a9f12690SJung-uk Kim     ACPI_HANDLE             Object,
359a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        *OutType);
360a9f12690SJung-uk Kim 
361a9f12690SJung-uk Kim ACPI_STATUS
362a9f12690SJung-uk Kim AcpiGetParent (
363a9f12690SJung-uk Kim     ACPI_HANDLE             Object,
364a9f12690SJung-uk Kim     ACPI_HANDLE             *OutHandle);
365a9f12690SJung-uk Kim 
366a9f12690SJung-uk Kim 
367a9f12690SJung-uk Kim /*
368a9f12690SJung-uk Kim  * Handler interfaces
369a9f12690SJung-uk Kim  */
370a9f12690SJung-uk Kim ACPI_STATUS
371a9f12690SJung-uk Kim AcpiInstallInitializationHandler (
372a9f12690SJung-uk Kim     ACPI_INIT_HANDLER       Handler,
373a9f12690SJung-uk Kim     UINT32                  Function);
374a9f12690SJung-uk Kim 
375a9f12690SJung-uk Kim ACPI_STATUS
376a9f12690SJung-uk Kim AcpiInstallFixedEventHandler (
377a9f12690SJung-uk Kim     UINT32                  AcpiEvent,
378a9f12690SJung-uk Kim     ACPI_EVENT_HANDLER      Handler,
379a9f12690SJung-uk Kim     void                    *Context);
380a9f12690SJung-uk Kim 
381a9f12690SJung-uk Kim ACPI_STATUS
382a9f12690SJung-uk Kim AcpiRemoveFixedEventHandler (
383a9f12690SJung-uk Kim     UINT32                  AcpiEvent,
384a9f12690SJung-uk Kim     ACPI_EVENT_HANDLER      Handler);
385a9f12690SJung-uk Kim 
386a9f12690SJung-uk Kim ACPI_STATUS
387a9f12690SJung-uk Kim AcpiInstallNotifyHandler (
388a9f12690SJung-uk Kim     ACPI_HANDLE             Device,
389a9f12690SJung-uk Kim     UINT32                  HandlerType,
390a9f12690SJung-uk Kim     ACPI_NOTIFY_HANDLER     Handler,
391a9f12690SJung-uk Kim     void                    *Context);
392a9f12690SJung-uk Kim 
393a9f12690SJung-uk Kim ACPI_STATUS
394a9f12690SJung-uk Kim AcpiRemoveNotifyHandler (
395a9f12690SJung-uk Kim     ACPI_HANDLE             Device,
396a9f12690SJung-uk Kim     UINT32                  HandlerType,
397a9f12690SJung-uk Kim     ACPI_NOTIFY_HANDLER     Handler);
398a9f12690SJung-uk Kim 
399a9f12690SJung-uk Kim ACPI_STATUS
400a9f12690SJung-uk Kim AcpiInstallAddressSpaceHandler (
401a9f12690SJung-uk Kim     ACPI_HANDLE             Device,
402a9f12690SJung-uk Kim     ACPI_ADR_SPACE_TYPE     SpaceId,
403a9f12690SJung-uk Kim     ACPI_ADR_SPACE_HANDLER  Handler,
404a9f12690SJung-uk Kim     ACPI_ADR_SPACE_SETUP    Setup,
405a9f12690SJung-uk Kim     void                    *Context);
406a9f12690SJung-uk Kim 
407a9f12690SJung-uk Kim ACPI_STATUS
408a9f12690SJung-uk Kim AcpiRemoveAddressSpaceHandler (
409a9f12690SJung-uk Kim     ACPI_HANDLE             Device,
410a9f12690SJung-uk Kim     ACPI_ADR_SPACE_TYPE     SpaceId,
411a9f12690SJung-uk Kim     ACPI_ADR_SPACE_HANDLER  Handler);
412a9f12690SJung-uk Kim 
413a9f12690SJung-uk Kim ACPI_STATUS
414a9f12690SJung-uk Kim AcpiInstallGpeHandler (
415a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice,
416a9f12690SJung-uk Kim     UINT32                  GpeNumber,
417a9f12690SJung-uk Kim     UINT32                  Type,
418a9f12690SJung-uk Kim     ACPI_EVENT_HANDLER      Address,
419a9f12690SJung-uk Kim     void                    *Context);
420a9f12690SJung-uk Kim 
421a9f12690SJung-uk Kim ACPI_STATUS
422a9f12690SJung-uk Kim AcpiRemoveGpeHandler (
423a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice,
424a9f12690SJung-uk Kim     UINT32                  GpeNumber,
425a9f12690SJung-uk Kim     ACPI_EVENT_HANDLER      Address);
426a9f12690SJung-uk Kim 
427a9f12690SJung-uk Kim ACPI_STATUS
428a9f12690SJung-uk Kim AcpiInstallExceptionHandler (
429a9f12690SJung-uk Kim     ACPI_EXCEPTION_HANDLER  Handler);
430a9f12690SJung-uk Kim 
431a9f12690SJung-uk Kim 
432a9f12690SJung-uk Kim /*
433a9f12690SJung-uk Kim  * Event interfaces
434a9f12690SJung-uk Kim  */
435a9f12690SJung-uk Kim ACPI_STATUS
436a9f12690SJung-uk Kim AcpiAcquireGlobalLock (
437a9f12690SJung-uk Kim     UINT16                  Timeout,
438a9f12690SJung-uk Kim     UINT32                  *Handle);
439a9f12690SJung-uk Kim 
440a9f12690SJung-uk Kim ACPI_STATUS
441a9f12690SJung-uk Kim AcpiReleaseGlobalLock (
442a9f12690SJung-uk Kim     UINT32                  Handle);
443a9f12690SJung-uk Kim 
444a9f12690SJung-uk Kim ACPI_STATUS
445a9f12690SJung-uk Kim AcpiEnableEvent (
446a9f12690SJung-uk Kim     UINT32                  Event,
447a9f12690SJung-uk Kim     UINT32                  Flags);
448a9f12690SJung-uk Kim 
449a9f12690SJung-uk Kim ACPI_STATUS
450a9f12690SJung-uk Kim AcpiDisableEvent (
451a9f12690SJung-uk Kim     UINT32                  Event,
452a9f12690SJung-uk Kim     UINT32                  Flags);
453a9f12690SJung-uk Kim 
454a9f12690SJung-uk Kim ACPI_STATUS
455a9f12690SJung-uk Kim AcpiClearEvent (
456a9f12690SJung-uk Kim     UINT32                  Event);
457a9f12690SJung-uk Kim 
458a9f12690SJung-uk Kim ACPI_STATUS
459a9f12690SJung-uk Kim AcpiGetEventStatus (
460a9f12690SJung-uk Kim     UINT32                  Event,
461a9f12690SJung-uk Kim     ACPI_EVENT_STATUS       *EventStatus);
462a9f12690SJung-uk Kim 
463a9f12690SJung-uk Kim 
464a9f12690SJung-uk Kim /*
465a9f12690SJung-uk Kim  * GPE Interfaces
466a9f12690SJung-uk Kim  */
467a9f12690SJung-uk Kim ACPI_STATUS
4688c8be05fSJung-uk Kim AcpiSetGpe (
469a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice,
470a9f12690SJung-uk Kim     UINT32                  GpeNumber,
4718c8be05fSJung-uk Kim     UINT8                   Action);
472a9f12690SJung-uk Kim 
473a9f12690SJung-uk Kim ACPI_STATUS
474a9f12690SJung-uk Kim AcpiEnableGpe (
475a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice,
476*a88e22b7SJung-uk Kim     UINT32                  GpeNumber);
477a9f12690SJung-uk Kim 
478a9f12690SJung-uk Kim ACPI_STATUS
479a9f12690SJung-uk Kim AcpiDisableGpe (
480a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice,
481*a88e22b7SJung-uk Kim     UINT32                  GpeNumber);
482a9f12690SJung-uk Kim 
483a9f12690SJung-uk Kim ACPI_STATUS
484a9f12690SJung-uk Kim AcpiClearGpe (
485a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice,
4868c8be05fSJung-uk Kim     UINT32                  GpeNumber);
487a9f12690SJung-uk Kim 
488a9f12690SJung-uk Kim ACPI_STATUS
489*a88e22b7SJung-uk Kim AcpiGpeWakeup (
490*a88e22b7SJung-uk Kim     ACPI_HANDLE             GpeDevice,
491*a88e22b7SJung-uk Kim     UINT32                  GpeNumber,
492*a88e22b7SJung-uk Kim     UINT8                   Action);
493*a88e22b7SJung-uk Kim 
494*a88e22b7SJung-uk Kim ACPI_STATUS
495a9f12690SJung-uk Kim AcpiGetGpeStatus (
496a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice,
497a9f12690SJung-uk Kim     UINT32                  GpeNumber,
498a9f12690SJung-uk Kim     ACPI_EVENT_STATUS       *EventStatus);
499a9f12690SJung-uk Kim 
500a9f12690SJung-uk Kim ACPI_STATUS
501a9f12690SJung-uk Kim AcpiDisableAllGpes (
502a9f12690SJung-uk Kim     void);
503a9f12690SJung-uk Kim 
504a9f12690SJung-uk Kim ACPI_STATUS
505a9f12690SJung-uk Kim AcpiEnableAllRuntimeGpes (
506a9f12690SJung-uk Kim     void);
507a9f12690SJung-uk Kim 
508a9f12690SJung-uk Kim ACPI_STATUS
509a9f12690SJung-uk Kim AcpiGetGpeDevice (
510a9f12690SJung-uk Kim     UINT32                  GpeIndex,
511a9f12690SJung-uk Kim     ACPI_HANDLE             *GpeDevice);
512a9f12690SJung-uk Kim 
513a9f12690SJung-uk Kim ACPI_STATUS
514a9f12690SJung-uk Kim AcpiInstallGpeBlock (
515a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice,
516a9f12690SJung-uk Kim     ACPI_GENERIC_ADDRESS    *GpeBlockAddress,
517a9f12690SJung-uk Kim     UINT32                  RegisterCount,
518a9f12690SJung-uk Kim     UINT32                  InterruptNumber);
519a9f12690SJung-uk Kim 
520a9f12690SJung-uk Kim ACPI_STATUS
521a9f12690SJung-uk Kim AcpiRemoveGpeBlock (
522a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice);
523a9f12690SJung-uk Kim 
524a9f12690SJung-uk Kim 
525a9f12690SJung-uk Kim /*
526a9f12690SJung-uk Kim  * Resource interfaces
527a9f12690SJung-uk Kim  */
528a9f12690SJung-uk Kim typedef
529a9f12690SJung-uk Kim ACPI_STATUS (*ACPI_WALK_RESOURCE_CALLBACK) (
530a9f12690SJung-uk Kim     ACPI_RESOURCE           *Resource,
531a9f12690SJung-uk Kim     void                    *Context);
532a9f12690SJung-uk Kim 
533a9f12690SJung-uk Kim ACPI_STATUS
534a9f12690SJung-uk Kim AcpiGetVendorResource (
5353f5e024cSJung-uk Kim     ACPI_HANDLE             Device,
536a9f12690SJung-uk Kim     char                    *Name,
537a9f12690SJung-uk Kim     ACPI_VENDOR_UUID        *Uuid,
538a9f12690SJung-uk Kim     ACPI_BUFFER             *RetBuffer);
539a9f12690SJung-uk Kim 
540a9f12690SJung-uk Kim ACPI_STATUS
541a9f12690SJung-uk Kim AcpiGetCurrentResources (
5423f5e024cSJung-uk Kim     ACPI_HANDLE             Device,
543a9f12690SJung-uk Kim     ACPI_BUFFER             *RetBuffer);
544a9f12690SJung-uk Kim 
545a9f12690SJung-uk Kim ACPI_STATUS
546a9f12690SJung-uk Kim AcpiGetPossibleResources (
5473f5e024cSJung-uk Kim     ACPI_HANDLE             Device,
548a9f12690SJung-uk Kim     ACPI_BUFFER             *RetBuffer);
549a9f12690SJung-uk Kim 
550a9f12690SJung-uk Kim ACPI_STATUS
551a9f12690SJung-uk Kim AcpiWalkResources (
5523f5e024cSJung-uk Kim     ACPI_HANDLE                 Device,
553a9f12690SJung-uk Kim     char                        *Name,
554a9f12690SJung-uk Kim     ACPI_WALK_RESOURCE_CALLBACK UserFunction,
555a9f12690SJung-uk Kim     void                        *Context);
556a9f12690SJung-uk Kim 
557a9f12690SJung-uk Kim ACPI_STATUS
558a9f12690SJung-uk Kim AcpiSetCurrentResources (
5593f5e024cSJung-uk Kim     ACPI_HANDLE             Device,
560a9f12690SJung-uk Kim     ACPI_BUFFER             *InBuffer);
561a9f12690SJung-uk Kim 
562a9f12690SJung-uk Kim ACPI_STATUS
563a9f12690SJung-uk Kim AcpiGetIrqRoutingTable (
5643f5e024cSJung-uk Kim     ACPI_HANDLE             Device,
565a9f12690SJung-uk Kim     ACPI_BUFFER             *RetBuffer);
566a9f12690SJung-uk Kim 
567a9f12690SJung-uk Kim ACPI_STATUS
568a9f12690SJung-uk Kim AcpiResourceToAddress64 (
569a9f12690SJung-uk Kim     ACPI_RESOURCE           *Resource,
570a9f12690SJung-uk Kim     ACPI_RESOURCE_ADDRESS64 *Out);
571a9f12690SJung-uk Kim 
572a9f12690SJung-uk Kim 
573a9f12690SJung-uk Kim /*
574a9f12690SJung-uk Kim  * Hardware (ACPI device) interfaces
575a9f12690SJung-uk Kim  */
576a9f12690SJung-uk Kim ACPI_STATUS
577a9f12690SJung-uk Kim AcpiReset (
578a9f12690SJung-uk Kim     void);
579a9f12690SJung-uk Kim 
580a9f12690SJung-uk Kim ACPI_STATUS
581a9f12690SJung-uk Kim AcpiRead (
582d6dd1baeSJung-uk Kim     UINT64                  *Value,
583a9f12690SJung-uk Kim     ACPI_GENERIC_ADDRESS    *Reg);
584a9f12690SJung-uk Kim 
585a9f12690SJung-uk Kim ACPI_STATUS
586a9f12690SJung-uk Kim AcpiWrite (
587d6dd1baeSJung-uk Kim     UINT64                  Value,
588a9f12690SJung-uk Kim     ACPI_GENERIC_ADDRESS    *Reg);
589a9f12690SJung-uk Kim 
590a9f12690SJung-uk Kim ACPI_STATUS
591a9f12690SJung-uk Kim AcpiReadBitRegister (
592a9f12690SJung-uk Kim     UINT32                  RegisterId,
593a9f12690SJung-uk Kim     UINT32                  *ReturnValue);
594a9f12690SJung-uk Kim 
595a9f12690SJung-uk Kim ACPI_STATUS
596a9f12690SJung-uk Kim AcpiWriteBitRegister (
597a9f12690SJung-uk Kim     UINT32                  RegisterId,
598a9f12690SJung-uk Kim     UINT32                  Value);
599a9f12690SJung-uk Kim 
600a9f12690SJung-uk Kim ACPI_STATUS
601a9f12690SJung-uk Kim AcpiGetSleepTypeData (
602a9f12690SJung-uk Kim     UINT8                   SleepState,
603a9f12690SJung-uk Kim     UINT8                   *Slp_TypA,
604a9f12690SJung-uk Kim     UINT8                   *Slp_TypB);
605a9f12690SJung-uk Kim 
606a9f12690SJung-uk Kim ACPI_STATUS
607a9f12690SJung-uk Kim AcpiEnterSleepStatePrep (
608a9f12690SJung-uk Kim     UINT8                   SleepState);
609a9f12690SJung-uk Kim 
610a9f12690SJung-uk Kim ACPI_STATUS
611a9f12690SJung-uk Kim AcpiEnterSleepState (
612a9f12690SJung-uk Kim     UINT8                   SleepState);
613a9f12690SJung-uk Kim 
614a9f12690SJung-uk Kim ACPI_STATUS
615a9f12690SJung-uk Kim AcpiEnterSleepStateS4bios (
616a9f12690SJung-uk Kim     void);
617a9f12690SJung-uk Kim 
618a9f12690SJung-uk Kim ACPI_STATUS
619a9f12690SJung-uk Kim AcpiLeaveSleepState (
620a9f12690SJung-uk Kim     UINT8                   SleepState)
621a9f12690SJung-uk Kim     ;
622a9f12690SJung-uk Kim ACPI_STATUS
623a9f12690SJung-uk Kim AcpiSetFirmwareWakingVector (
624a9f12690SJung-uk Kim     UINT32                  PhysicalAddress);
625a9f12690SJung-uk Kim 
626a9f12690SJung-uk Kim #if ACPI_MACHINE_WIDTH == 64
627a9f12690SJung-uk Kim ACPI_STATUS
628a9f12690SJung-uk Kim AcpiSetFirmwareWakingVector64 (
629a9f12690SJung-uk Kim     UINT64                  PhysicalAddress);
630a9f12690SJung-uk Kim #endif
631a9f12690SJung-uk Kim 
632a9f12690SJung-uk Kim 
633a9f12690SJung-uk Kim /*
634a9f12690SJung-uk Kim  * Error/Warning output
635a9f12690SJung-uk Kim  */
636a9f12690SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE
637a9f12690SJung-uk Kim AcpiError (
638a9f12690SJung-uk Kim     const char              *ModuleName,
639a9f12690SJung-uk Kim     UINT32                  LineNumber,
640a9f12690SJung-uk Kim     const char              *Format,
641a9f12690SJung-uk Kim     ...) ACPI_PRINTF_LIKE(3);
642a9f12690SJung-uk Kim 
643a9f12690SJung-uk Kim void  ACPI_INTERNAL_VAR_XFACE
644a9f12690SJung-uk Kim AcpiException (
645a9f12690SJung-uk Kim     const char              *ModuleName,
646a9f12690SJung-uk Kim     UINT32                  LineNumber,
647a9f12690SJung-uk Kim     ACPI_STATUS             Status,
648a9f12690SJung-uk Kim     const char              *Format,
649a9f12690SJung-uk Kim     ...) ACPI_PRINTF_LIKE(4);
650a9f12690SJung-uk Kim 
651a9f12690SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE
652a9f12690SJung-uk Kim AcpiWarning (
653a9f12690SJung-uk Kim     const char              *ModuleName,
654a9f12690SJung-uk Kim     UINT32                  LineNumber,
655a9f12690SJung-uk Kim     const char              *Format,
656a9f12690SJung-uk Kim     ...) ACPI_PRINTF_LIKE(3);
657a9f12690SJung-uk Kim 
658a9f12690SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE
659a9f12690SJung-uk Kim AcpiInfo (
660a9f12690SJung-uk Kim     const char              *ModuleName,
661a9f12690SJung-uk Kim     UINT32                  LineNumber,
662a9f12690SJung-uk Kim     const char              *Format,
663a9f12690SJung-uk Kim     ...) ACPI_PRINTF_LIKE(3);
664a9f12690SJung-uk Kim 
665a9f12690SJung-uk Kim 
666a9f12690SJung-uk Kim /*
667a9f12690SJung-uk Kim  * Debug output
668a9f12690SJung-uk Kim  */
669a9f12690SJung-uk Kim #ifdef ACPI_DEBUG_OUTPUT
670a9f12690SJung-uk Kim 
671a9f12690SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE
672a9f12690SJung-uk Kim AcpiDebugPrint (
673a9f12690SJung-uk Kim     UINT32                  RequestedDebugLevel,
674a9f12690SJung-uk Kim     UINT32                  LineNumber,
675a9f12690SJung-uk Kim     const char              *FunctionName,
676a9f12690SJung-uk Kim     const char              *ModuleName,
677a9f12690SJung-uk Kim     UINT32                  ComponentId,
678a9f12690SJung-uk Kim     const char              *Format,
679a9f12690SJung-uk Kim     ...) ACPI_PRINTF_LIKE(6);
680a9f12690SJung-uk Kim 
681a9f12690SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE
682a9f12690SJung-uk Kim AcpiDebugPrintRaw (
683a9f12690SJung-uk Kim     UINT32                  RequestedDebugLevel,
684a9f12690SJung-uk Kim     UINT32                  LineNumber,
685a9f12690SJung-uk Kim     const char              *FunctionName,
686a9f12690SJung-uk Kim     const char              *ModuleName,
687a9f12690SJung-uk Kim     UINT32                  ComponentId,
688a9f12690SJung-uk Kim     const char              *Format,
689a9f12690SJung-uk Kim     ...) ACPI_PRINTF_LIKE(6);
690a9f12690SJung-uk Kim #endif
691a9f12690SJung-uk Kim 
692a9f12690SJung-uk Kim #endif /* __ACXFACE_H__ */
693