xref: /freebsd/sys/contrib/dev/acpica/include/acpixf.h (revision 3f0275a0331d5d477f9d8dc5accbba3533ac4cbf)
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 
8d244b227SJung-uk Kim /*
9d244b227SJung-uk Kim  * Copyright (C) 2000 - 2011, Intel Corp.
10a9f12690SJung-uk Kim  * All rights reserved.
11a9f12690SJung-uk Kim  *
12d244b227SJung-uk Kim  * Redistribution and use in source and binary forms, with or without
13d244b227SJung-uk Kim  * modification, are permitted provided that the following conditions
14d244b227SJung-uk Kim  * are met:
15d244b227SJung-uk Kim  * 1. Redistributions of source code must retain the above copyright
16d244b227SJung-uk Kim  *    notice, this list of conditions, and the following disclaimer,
17d244b227SJung-uk Kim  *    without modification.
18d244b227SJung-uk Kim  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
19d244b227SJung-uk Kim  *    substantially similar to the "NO WARRANTY" disclaimer below
20d244b227SJung-uk Kim  *    ("Disclaimer") and any redistribution must be conditioned upon
21d244b227SJung-uk Kim  *    including a substantially similar Disclaimer requirement for further
22d244b227SJung-uk Kim  *    binary redistribution.
23d244b227SJung-uk Kim  * 3. Neither the names of the above-listed copyright holders nor the names
24d244b227SJung-uk Kim  *    of any contributors may be used to endorse or promote products derived
25d244b227SJung-uk Kim  *    from this software without specific prior written permission.
26a9f12690SJung-uk Kim  *
27d244b227SJung-uk Kim  * Alternatively, this software may be distributed under the terms of the
28d244b227SJung-uk Kim  * GNU General Public License ("GPL") version 2 as published by the Free
29d244b227SJung-uk Kim  * Software Foundation.
30a9f12690SJung-uk Kim  *
31d244b227SJung-uk Kim  * NO WARRANTY
32d244b227SJung-uk Kim  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
33d244b227SJung-uk Kim  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
34d244b227SJung-uk Kim  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
35d244b227SJung-uk Kim  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
36d244b227SJung-uk Kim  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
37d244b227SJung-uk Kim  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
38d244b227SJung-uk Kim  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
39d244b227SJung-uk Kim  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
40d244b227SJung-uk Kim  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
41d244b227SJung-uk Kim  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
42d244b227SJung-uk Kim  * POSSIBILITY OF SUCH DAMAGES.
43d244b227SJung-uk Kim  */
44a9f12690SJung-uk Kim 
45a9f12690SJung-uk Kim 
46a9f12690SJung-uk Kim #ifndef __ACXFACE_H__
47a9f12690SJung-uk Kim #define __ACXFACE_H__
48a9f12690SJung-uk Kim 
49a9f12690SJung-uk Kim /* Current ACPICA subsystem version in YYYYMMDD format */
50a9f12690SJung-uk Kim 
51*3f0275a0SJung-uk Kim #define ACPI_CA_VERSION                 0x20111123
52a9f12690SJung-uk Kim 
53ab6f3bf9SJung-uk Kim #include <contrib/dev/acpica/include/actypes.h>
54ab6f3bf9SJung-uk Kim #include <contrib/dev/acpica/include/actbl.h>
55a9f12690SJung-uk Kim 
56a9f12690SJung-uk Kim /*
57a9f12690SJung-uk Kim  * Globals that are publically available
58a9f12690SJung-uk Kim  */
59a9f12690SJung-uk Kim extern UINT32               AcpiCurrentGpeCount;
60a9f12690SJung-uk Kim extern ACPI_TABLE_FADT      AcpiGbl_FADT;
6142fecd12SJung-uk Kim extern BOOLEAN              AcpiGbl_SystemAwakeAndRunning;
62*3f0275a0SJung-uk Kim extern BOOLEAN              AcpiGbl_ReducedHardware;        /* ACPI 5.0 */
63a9f12690SJung-uk Kim 
64a9f12690SJung-uk Kim /* Runtime configuration of debug print levels */
65a9f12690SJung-uk Kim 
66a9f12690SJung-uk Kim extern UINT32               AcpiDbgLevel;
67a9f12690SJung-uk Kim extern UINT32               AcpiDbgLayer;
68a9f12690SJung-uk Kim 
69a9f12690SJung-uk Kim /* ACPICA runtime options */
70a9f12690SJung-uk Kim 
71a9f12690SJung-uk Kim extern UINT8                AcpiGbl_EnableInterpreterSlack;
72a9f12690SJung-uk Kim extern UINT8                AcpiGbl_AllMethodsSerialized;
73a9f12690SJung-uk Kim extern UINT8                AcpiGbl_CreateOsiMethod;
74a9f12690SJung-uk Kim extern UINT8                AcpiGbl_UseDefaultRegisterWidths;
75a9f12690SJung-uk Kim extern ACPI_NAME            AcpiGbl_TraceMethodName;
76a9f12690SJung-uk Kim extern UINT32               AcpiGbl_TraceFlags;
77ca3cf4faSJung-uk Kim extern UINT8                AcpiGbl_EnableAmlDebugObject;
788c8be05fSJung-uk Kim extern UINT8                AcpiGbl_CopyDsdtLocally;
79a88e22b7SJung-uk Kim extern UINT8                AcpiGbl_TruncateIoAddresses;
80*3f0275a0SJung-uk Kim extern UINT8                AcpiGbl_DisableAutoRepair;
81a9f12690SJung-uk Kim 
82a9f12690SJung-uk Kim 
83a9f12690SJung-uk Kim /*
845a77b11bSJung-uk Kim  * Initialization
85a9f12690SJung-uk Kim  */
86a9f12690SJung-uk Kim ACPI_STATUS
87a9f12690SJung-uk Kim AcpiInitializeTables (
88a9f12690SJung-uk Kim     ACPI_TABLE_DESC         *InitialStorage,
89a9f12690SJung-uk Kim     UINT32                  InitialTableCount,
90a9f12690SJung-uk Kim     BOOLEAN                 AllowResize);
91a9f12690SJung-uk Kim 
92a9f12690SJung-uk Kim ACPI_STATUS
93a9f12690SJung-uk Kim AcpiInitializeSubsystem (
94a9f12690SJung-uk Kim     void);
95a9f12690SJung-uk Kim 
96a9f12690SJung-uk Kim ACPI_STATUS
97a9f12690SJung-uk Kim AcpiEnableSubsystem (
98a9f12690SJung-uk Kim     UINT32                  Flags);
99a9f12690SJung-uk Kim 
100a9f12690SJung-uk Kim ACPI_STATUS
101a9f12690SJung-uk Kim AcpiInitializeObjects (
102a9f12690SJung-uk Kim     UINT32                  Flags);
103a9f12690SJung-uk Kim 
104a9f12690SJung-uk Kim ACPI_STATUS
105a9f12690SJung-uk Kim AcpiTerminate (
106a9f12690SJung-uk Kim     void);
107a9f12690SJung-uk Kim 
108a9f12690SJung-uk Kim 
1095a77b11bSJung-uk Kim /*
1105a77b11bSJung-uk Kim  * Miscellaneous global interfaces
1115a77b11bSJung-uk Kim  */
112a9f12690SJung-uk Kim ACPI_STATUS
113a9f12690SJung-uk Kim AcpiEnable (
114a9f12690SJung-uk Kim     void);
115a9f12690SJung-uk Kim 
116a9f12690SJung-uk Kim ACPI_STATUS
117a9f12690SJung-uk Kim AcpiDisable (
118a9f12690SJung-uk Kim     void);
119a9f12690SJung-uk Kim 
120a9f12690SJung-uk Kim ACPI_STATUS
1215a77b11bSJung-uk Kim AcpiSubsystemStatus (
1225a77b11bSJung-uk Kim     void);
1235a77b11bSJung-uk Kim 
1245a77b11bSJung-uk Kim ACPI_STATUS
125a9f12690SJung-uk Kim AcpiGetSystemInfo (
126a9f12690SJung-uk Kim     ACPI_BUFFER             *RetBuffer);
127a9f12690SJung-uk Kim 
128a9f12690SJung-uk Kim ACPI_STATUS
129a9f12690SJung-uk Kim AcpiGetStatistics (
130a9f12690SJung-uk Kim     ACPI_STATISTICS         *Stats);
131a9f12690SJung-uk Kim 
132a9f12690SJung-uk Kim const char *
133a9f12690SJung-uk Kim AcpiFormatException (
134a9f12690SJung-uk Kim     ACPI_STATUS             Exception);
135a9f12690SJung-uk Kim 
136a9f12690SJung-uk Kim ACPI_STATUS
137a9f12690SJung-uk Kim AcpiPurgeCachedObjects (
138a9f12690SJung-uk Kim     void);
139a9f12690SJung-uk Kim 
140709fac06SJung-uk Kim ACPI_STATUS
141709fac06SJung-uk Kim AcpiInstallInterface (
142709fac06SJung-uk Kim     ACPI_STRING             InterfaceName);
143709fac06SJung-uk Kim 
144709fac06SJung-uk Kim ACPI_STATUS
145709fac06SJung-uk Kim AcpiRemoveInterface (
146709fac06SJung-uk Kim     ACPI_STRING             InterfaceName);
147a9f12690SJung-uk Kim 
1485a77b11bSJung-uk Kim 
149a9f12690SJung-uk Kim /*
150709fac06SJung-uk Kim  * ACPI Memory management
151a9f12690SJung-uk Kim  */
152a9f12690SJung-uk Kim void *
153a9f12690SJung-uk Kim AcpiAllocate (
154a9f12690SJung-uk Kim     UINT32                  Size);
155a9f12690SJung-uk Kim 
156a9f12690SJung-uk Kim void *
157a9f12690SJung-uk Kim AcpiCallocate (
158a9f12690SJung-uk Kim     UINT32                  Size);
159a9f12690SJung-uk Kim 
160a9f12690SJung-uk Kim void
161a9f12690SJung-uk Kim AcpiFree (
162a9f12690SJung-uk Kim     void                    *Address);
163a9f12690SJung-uk Kim 
164a9f12690SJung-uk Kim 
165a9f12690SJung-uk Kim /*
166a9f12690SJung-uk Kim  * ACPI table manipulation interfaces
167a9f12690SJung-uk Kim  */
168a9f12690SJung-uk Kim ACPI_STATUS
169a9f12690SJung-uk Kim AcpiReallocateRootTable (
170a9f12690SJung-uk Kim     void);
171a9f12690SJung-uk Kim 
172a9f12690SJung-uk Kim ACPI_STATUS
173a9f12690SJung-uk Kim AcpiFindRootPointer (
174a9f12690SJung-uk Kim     ACPI_SIZE               *RsdpAddress);
175a9f12690SJung-uk Kim 
176a9f12690SJung-uk Kim ACPI_STATUS
177a9f12690SJung-uk Kim AcpiLoadTables (
178a9f12690SJung-uk Kim     void);
179a9f12690SJung-uk Kim 
180a9f12690SJung-uk Kim ACPI_STATUS
181a9f12690SJung-uk Kim AcpiGetTableHeader (
182a9f12690SJung-uk Kim     ACPI_STRING             Signature,
183a9f12690SJung-uk Kim     UINT32                  Instance,
184a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       *OutTableHeader);
185a9f12690SJung-uk Kim 
186a9f12690SJung-uk Kim ACPI_STATUS
187a9f12690SJung-uk Kim AcpiGetTable (
188a9f12690SJung-uk Kim     ACPI_STRING             Signature,
189a9f12690SJung-uk Kim     UINT32                  Instance,
190a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       **OutTable);
191a9f12690SJung-uk Kim 
192a9f12690SJung-uk Kim ACPI_STATUS
193a9f12690SJung-uk Kim AcpiGetTableByIndex (
194a9f12690SJung-uk Kim     UINT32                  TableIndex,
195a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       **OutTable);
196a9f12690SJung-uk Kim 
197a9f12690SJung-uk Kim ACPI_STATUS
198a9f12690SJung-uk Kim AcpiInstallTableHandler (
199a9f12690SJung-uk Kim     ACPI_TABLE_HANDLER      Handler,
200a9f12690SJung-uk Kim     void                    *Context);
201a9f12690SJung-uk Kim 
202a9f12690SJung-uk Kim ACPI_STATUS
203a9f12690SJung-uk Kim AcpiRemoveTableHandler (
204a9f12690SJung-uk Kim     ACPI_TABLE_HANDLER      Handler);
205a9f12690SJung-uk Kim 
206a9f12690SJung-uk Kim 
207a9f12690SJung-uk Kim /*
208a9f12690SJung-uk Kim  * Namespace and name interfaces
209a9f12690SJung-uk Kim  */
210a9f12690SJung-uk Kim ACPI_STATUS
211a9f12690SJung-uk Kim AcpiWalkNamespace (
212a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
213a9f12690SJung-uk Kim     ACPI_HANDLE             StartObject,
214a9f12690SJung-uk Kim     UINT32                  MaxDepth,
2152272d050SJung-uk Kim     ACPI_WALK_CALLBACK      PreOrderVisit,
2162272d050SJung-uk Kim     ACPI_WALK_CALLBACK      PostOrderVisit,
217a9f12690SJung-uk Kim     void                    *Context,
218a9f12690SJung-uk Kim     void                    **ReturnValue);
219a9f12690SJung-uk Kim 
220a9f12690SJung-uk Kim ACPI_STATUS
221a9f12690SJung-uk Kim AcpiGetDevices (
222a9f12690SJung-uk Kim     char                    *HID,
223a9f12690SJung-uk Kim     ACPI_WALK_CALLBACK      UserFunction,
224a9f12690SJung-uk Kim     void                    *Context,
225a9f12690SJung-uk Kim     void                    **ReturnValue);
226a9f12690SJung-uk Kim 
227a9f12690SJung-uk Kim ACPI_STATUS
228a9f12690SJung-uk Kim AcpiGetName (
2293f5e024cSJung-uk Kim     ACPI_HANDLE             Object,
230a9f12690SJung-uk Kim     UINT32                  NameType,
231a9f12690SJung-uk Kim     ACPI_BUFFER             *RetPathPtr);
232a9f12690SJung-uk Kim 
233a9f12690SJung-uk Kim ACPI_STATUS
234a9f12690SJung-uk Kim AcpiGetHandle (
235a9f12690SJung-uk Kim     ACPI_HANDLE             Parent,
236a9f12690SJung-uk Kim     ACPI_STRING             Pathname,
237a9f12690SJung-uk Kim     ACPI_HANDLE             *RetHandle);
238a9f12690SJung-uk Kim 
239a9f12690SJung-uk Kim ACPI_STATUS
240a9f12690SJung-uk Kim AcpiAttachData (
2413f5e024cSJung-uk Kim     ACPI_HANDLE             Object,
242a9f12690SJung-uk Kim     ACPI_OBJECT_HANDLER     Handler,
243a9f12690SJung-uk Kim     void                    *Data);
244a9f12690SJung-uk Kim 
245a9f12690SJung-uk Kim ACPI_STATUS
246a9f12690SJung-uk Kim AcpiDetachData (
2473f5e024cSJung-uk Kim     ACPI_HANDLE             Object,
248a9f12690SJung-uk Kim     ACPI_OBJECT_HANDLER     Handler);
249a9f12690SJung-uk Kim 
250a9f12690SJung-uk Kim ACPI_STATUS
251a9f12690SJung-uk Kim AcpiGetData (
2523f5e024cSJung-uk Kim     ACPI_HANDLE             Object,
253a9f12690SJung-uk Kim     ACPI_OBJECT_HANDLER     Handler,
254a9f12690SJung-uk Kim     void                    **Data);
255a9f12690SJung-uk Kim 
256a9f12690SJung-uk Kim ACPI_STATUS
257a9f12690SJung-uk Kim AcpiDebugTrace (
258a9f12690SJung-uk Kim     char                    *Name,
259a9f12690SJung-uk Kim     UINT32                  DebugLevel,
260a9f12690SJung-uk Kim     UINT32                  DebugLayer,
261a9f12690SJung-uk Kim     UINT32                  Flags);
262a9f12690SJung-uk Kim 
263a9f12690SJung-uk Kim 
264a9f12690SJung-uk Kim /*
265a9f12690SJung-uk Kim  * Object manipulation and enumeration
266a9f12690SJung-uk Kim  */
267a9f12690SJung-uk Kim ACPI_STATUS
268a9f12690SJung-uk Kim AcpiEvaluateObject (
269a9f12690SJung-uk Kim     ACPI_HANDLE             Object,
270a9f12690SJung-uk Kim     ACPI_STRING             Pathname,
271a9f12690SJung-uk Kim     ACPI_OBJECT_LIST        *ParameterObjects,
272a9f12690SJung-uk Kim     ACPI_BUFFER             *ReturnObjectBuffer);
273a9f12690SJung-uk Kim 
274a9f12690SJung-uk Kim ACPI_STATUS
275a9f12690SJung-uk Kim AcpiEvaluateObjectTyped (
276a9f12690SJung-uk Kim     ACPI_HANDLE             Object,
277a9f12690SJung-uk Kim     ACPI_STRING             Pathname,
278a9f12690SJung-uk Kim     ACPI_OBJECT_LIST        *ExternalParams,
279a9f12690SJung-uk Kim     ACPI_BUFFER             *ReturnBuffer,
280a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        ReturnType);
281a9f12690SJung-uk Kim 
282a9f12690SJung-uk Kim ACPI_STATUS
283a9f12690SJung-uk Kim AcpiGetObjectInfo (
2843f5e024cSJung-uk Kim     ACPI_HANDLE             Object,
285d6dd1baeSJung-uk Kim     ACPI_DEVICE_INFO        **ReturnBuffer);
286a9f12690SJung-uk Kim 
287a9f12690SJung-uk Kim ACPI_STATUS
288a9f12690SJung-uk Kim AcpiInstallMethod (
289a9f12690SJung-uk Kim     UINT8                   *Buffer);
290a9f12690SJung-uk Kim 
291a9f12690SJung-uk Kim ACPI_STATUS
292a9f12690SJung-uk Kim AcpiGetNextObject (
293a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        Type,
294a9f12690SJung-uk Kim     ACPI_HANDLE             Parent,
295a9f12690SJung-uk Kim     ACPI_HANDLE             Child,
296a9f12690SJung-uk Kim     ACPI_HANDLE             *OutHandle);
297a9f12690SJung-uk Kim 
298a9f12690SJung-uk Kim ACPI_STATUS
299a9f12690SJung-uk Kim AcpiGetType (
300a9f12690SJung-uk Kim     ACPI_HANDLE             Object,
301a9f12690SJung-uk Kim     ACPI_OBJECT_TYPE        *OutType);
302a9f12690SJung-uk Kim 
303a9f12690SJung-uk Kim ACPI_STATUS
304a9f12690SJung-uk Kim AcpiGetParent (
305a9f12690SJung-uk Kim     ACPI_HANDLE             Object,
306a9f12690SJung-uk Kim     ACPI_HANDLE             *OutHandle);
307a9f12690SJung-uk Kim 
308a9f12690SJung-uk Kim 
309a9f12690SJung-uk Kim /*
310a9f12690SJung-uk Kim  * Handler interfaces
311a9f12690SJung-uk Kim  */
312a9f12690SJung-uk Kim ACPI_STATUS
313a9f12690SJung-uk Kim AcpiInstallInitializationHandler (
314a9f12690SJung-uk Kim     ACPI_INIT_HANDLER       Handler,
315a9f12690SJung-uk Kim     UINT32                  Function);
316a9f12690SJung-uk Kim 
317a9f12690SJung-uk Kim ACPI_STATUS
3185a77b11bSJung-uk Kim AcpiInstallGlobalEventHandler (
3195a77b11bSJung-uk Kim     ACPI_GBL_EVENT_HANDLER  Handler,
3205a77b11bSJung-uk Kim     void                    *Context);
3215a77b11bSJung-uk Kim 
3225a77b11bSJung-uk Kim ACPI_STATUS
323a9f12690SJung-uk Kim AcpiInstallFixedEventHandler (
324a9f12690SJung-uk Kim     UINT32                  AcpiEvent,
325a9f12690SJung-uk Kim     ACPI_EVENT_HANDLER      Handler,
326a9f12690SJung-uk Kim     void                    *Context);
327a9f12690SJung-uk Kim 
328a9f12690SJung-uk Kim ACPI_STATUS
329a9f12690SJung-uk Kim AcpiRemoveFixedEventHandler (
330a9f12690SJung-uk Kim     UINT32                  AcpiEvent,
331a9f12690SJung-uk Kim     ACPI_EVENT_HANDLER      Handler);
332a9f12690SJung-uk Kim 
333a9f12690SJung-uk Kim ACPI_STATUS
3345a77b11bSJung-uk Kim AcpiInstallGpeHandler (
3355a77b11bSJung-uk Kim     ACPI_HANDLE             GpeDevice,
3365a77b11bSJung-uk Kim     UINT32                  GpeNumber,
3375a77b11bSJung-uk Kim     UINT32                  Type,
3385a77b11bSJung-uk Kim     ACPI_GPE_HANDLER        Address,
3395a77b11bSJung-uk Kim     void                    *Context);
3405a77b11bSJung-uk Kim 
3415a77b11bSJung-uk Kim ACPI_STATUS
3425a77b11bSJung-uk Kim AcpiRemoveGpeHandler (
3435a77b11bSJung-uk Kim     ACPI_HANDLE             GpeDevice,
3445a77b11bSJung-uk Kim     UINT32                  GpeNumber,
3455a77b11bSJung-uk Kim     ACPI_GPE_HANDLER        Address);
3465a77b11bSJung-uk Kim 
3475a77b11bSJung-uk Kim ACPI_STATUS
348a9f12690SJung-uk Kim AcpiInstallNotifyHandler (
349a9f12690SJung-uk Kim     ACPI_HANDLE             Device,
350a9f12690SJung-uk Kim     UINT32                  HandlerType,
351a9f12690SJung-uk Kim     ACPI_NOTIFY_HANDLER     Handler,
352a9f12690SJung-uk Kim     void                    *Context);
353a9f12690SJung-uk Kim 
354a9f12690SJung-uk Kim ACPI_STATUS
355a9f12690SJung-uk Kim AcpiRemoveNotifyHandler (
356a9f12690SJung-uk Kim     ACPI_HANDLE             Device,
357a9f12690SJung-uk Kim     UINT32                  HandlerType,
358a9f12690SJung-uk Kim     ACPI_NOTIFY_HANDLER     Handler);
359a9f12690SJung-uk Kim 
360a9f12690SJung-uk Kim ACPI_STATUS
361a9f12690SJung-uk Kim AcpiInstallAddressSpaceHandler (
362a9f12690SJung-uk Kim     ACPI_HANDLE             Device,
363a9f12690SJung-uk Kim     ACPI_ADR_SPACE_TYPE     SpaceId,
364a9f12690SJung-uk Kim     ACPI_ADR_SPACE_HANDLER  Handler,
365a9f12690SJung-uk Kim     ACPI_ADR_SPACE_SETUP    Setup,
366a9f12690SJung-uk Kim     void                    *Context);
367a9f12690SJung-uk Kim 
368a9f12690SJung-uk Kim ACPI_STATUS
369a9f12690SJung-uk Kim AcpiRemoveAddressSpaceHandler (
370a9f12690SJung-uk Kim     ACPI_HANDLE             Device,
371a9f12690SJung-uk Kim     ACPI_ADR_SPACE_TYPE     SpaceId,
372a9f12690SJung-uk Kim     ACPI_ADR_SPACE_HANDLER  Handler);
373a9f12690SJung-uk Kim 
374a9f12690SJung-uk Kim ACPI_STATUS
375a9f12690SJung-uk Kim AcpiInstallExceptionHandler (
376a9f12690SJung-uk Kim     ACPI_EXCEPTION_HANDLER  Handler);
377a9f12690SJung-uk Kim 
378709fac06SJung-uk Kim ACPI_STATUS
379709fac06SJung-uk Kim AcpiInstallInterfaceHandler (
380709fac06SJung-uk Kim     ACPI_INTERFACE_HANDLER  Handler);
381709fac06SJung-uk Kim 
382a9f12690SJung-uk Kim 
383a9f12690SJung-uk Kim /*
3845a77b11bSJung-uk Kim  * Global Lock interfaces
385a9f12690SJung-uk Kim  */
386a9f12690SJung-uk Kim ACPI_STATUS
387a9f12690SJung-uk Kim AcpiAcquireGlobalLock (
388a9f12690SJung-uk Kim     UINT16                  Timeout,
389a9f12690SJung-uk Kim     UINT32                  *Handle);
390a9f12690SJung-uk Kim 
391a9f12690SJung-uk Kim ACPI_STATUS
392a9f12690SJung-uk Kim AcpiReleaseGlobalLock (
393a9f12690SJung-uk Kim     UINT32                  Handle);
394a9f12690SJung-uk Kim 
3955a77b11bSJung-uk Kim 
3965a77b11bSJung-uk Kim /*
397*3f0275a0SJung-uk Kim  * Interfaces to AML mutex objects
398*3f0275a0SJung-uk Kim  */
399*3f0275a0SJung-uk Kim ACPI_STATUS
400*3f0275a0SJung-uk Kim AcpiAcquireMutex (
401*3f0275a0SJung-uk Kim     ACPI_HANDLE             Handle,
402*3f0275a0SJung-uk Kim     ACPI_STRING             Pathname,
403*3f0275a0SJung-uk Kim     UINT16                  Timeout);
404*3f0275a0SJung-uk Kim 
405*3f0275a0SJung-uk Kim ACPI_STATUS
406*3f0275a0SJung-uk Kim AcpiReleaseMutex (
407*3f0275a0SJung-uk Kim     ACPI_HANDLE             Handle,
408*3f0275a0SJung-uk Kim     ACPI_STRING             Pathname);
409*3f0275a0SJung-uk Kim 
410*3f0275a0SJung-uk Kim 
411*3f0275a0SJung-uk Kim /*
4125a77b11bSJung-uk Kim  * Fixed Event interfaces
4135a77b11bSJung-uk Kim  */
414a9f12690SJung-uk Kim ACPI_STATUS
415a9f12690SJung-uk Kim AcpiEnableEvent (
416a9f12690SJung-uk Kim     UINT32                  Event,
417a9f12690SJung-uk Kim     UINT32                  Flags);
418a9f12690SJung-uk Kim 
419a9f12690SJung-uk Kim ACPI_STATUS
420a9f12690SJung-uk Kim AcpiDisableEvent (
421a9f12690SJung-uk Kim     UINT32                  Event,
422a9f12690SJung-uk Kim     UINT32                  Flags);
423a9f12690SJung-uk Kim 
424a9f12690SJung-uk Kim ACPI_STATUS
425a9f12690SJung-uk Kim AcpiClearEvent (
426a9f12690SJung-uk Kim     UINT32                  Event);
427a9f12690SJung-uk Kim 
428a9f12690SJung-uk Kim ACPI_STATUS
429a9f12690SJung-uk Kim AcpiGetEventStatus (
430a9f12690SJung-uk Kim     UINT32                  Event,
431a9f12690SJung-uk Kim     ACPI_EVENT_STATUS       *EventStatus);
432a9f12690SJung-uk Kim 
433a9f12690SJung-uk Kim 
434a9f12690SJung-uk Kim /*
4355a77b11bSJung-uk Kim  * General Purpose Event (GPE) Interfaces
436a9f12690SJung-uk Kim  */
437a9f12690SJung-uk Kim ACPI_STATUS
4385a77b11bSJung-uk Kim AcpiUpdateAllGpes (
4395a77b11bSJung-uk Kim     void);
440a9f12690SJung-uk Kim 
441a9f12690SJung-uk Kim ACPI_STATUS
442a9f12690SJung-uk Kim AcpiEnableGpe (
443a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice,
444a88e22b7SJung-uk Kim     UINT32                  GpeNumber);
445a9f12690SJung-uk Kim 
446a9f12690SJung-uk Kim ACPI_STATUS
447a9f12690SJung-uk Kim AcpiDisableGpe (
448a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice,
449a88e22b7SJung-uk Kim     UINT32                  GpeNumber);
450a9f12690SJung-uk Kim 
451a9f12690SJung-uk Kim ACPI_STATUS
452a9f12690SJung-uk Kim AcpiClearGpe (
453a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice,
4548c8be05fSJung-uk Kim     UINT32                  GpeNumber);
455a9f12690SJung-uk Kim 
456a9f12690SJung-uk Kim ACPI_STATUS
4575a77b11bSJung-uk Kim AcpiSetGpe (
4585a77b11bSJung-uk Kim     ACPI_HANDLE             GpeDevice,
4595a77b11bSJung-uk Kim     UINT32                  GpeNumber,
4605a77b11bSJung-uk Kim     UINT8                   Action);
4615a77b11bSJung-uk Kim 
4625a77b11bSJung-uk Kim ACPI_STATUS
4635a77b11bSJung-uk Kim AcpiFinishGpe (
4645a77b11bSJung-uk Kim     ACPI_HANDLE             GpeDevice,
4655a77b11bSJung-uk Kim     UINT32                  GpeNumber);
4665a77b11bSJung-uk Kim 
4675a77b11bSJung-uk Kim ACPI_STATUS
4685a77b11bSJung-uk Kim AcpiSetupGpeForWake (
4695a77b11bSJung-uk Kim     ACPI_HANDLE             ParentDevice,
4705a77b11bSJung-uk Kim     ACPI_HANDLE             GpeDevice,
4715a77b11bSJung-uk Kim     UINT32                  GpeNumber);
4725a77b11bSJung-uk Kim 
4735a77b11bSJung-uk Kim ACPI_STATUS
4745a77b11bSJung-uk Kim AcpiSetGpeWakeMask (
475a88e22b7SJung-uk Kim     ACPI_HANDLE             GpeDevice,
476a88e22b7SJung-uk Kim     UINT32                  GpeNumber,
477a88e22b7SJung-uk Kim     UINT8                   Action);
478a88e22b7SJung-uk Kim 
479a88e22b7SJung-uk Kim ACPI_STATUS
480a9f12690SJung-uk Kim AcpiGetGpeStatus (
481a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice,
482a9f12690SJung-uk Kim     UINT32                  GpeNumber,
483a9f12690SJung-uk Kim     ACPI_EVENT_STATUS       *EventStatus);
484a9f12690SJung-uk Kim 
485a9f12690SJung-uk Kim ACPI_STATUS
486a9f12690SJung-uk Kim AcpiDisableAllGpes (
487a9f12690SJung-uk Kim     void);
488a9f12690SJung-uk Kim 
489a9f12690SJung-uk Kim ACPI_STATUS
490a9f12690SJung-uk Kim AcpiEnableAllRuntimeGpes (
491a9f12690SJung-uk Kim     void);
492a9f12690SJung-uk Kim 
493a9f12690SJung-uk Kim ACPI_STATUS
494a9f12690SJung-uk Kim AcpiGetGpeDevice (
495a9f12690SJung-uk Kim     UINT32                  GpeIndex,
496a9f12690SJung-uk Kim     ACPI_HANDLE             *GpeDevice);
497a9f12690SJung-uk Kim 
498a9f12690SJung-uk Kim ACPI_STATUS
499a9f12690SJung-uk Kim AcpiInstallGpeBlock (
500a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice,
501a9f12690SJung-uk Kim     ACPI_GENERIC_ADDRESS    *GpeBlockAddress,
502a9f12690SJung-uk Kim     UINT32                  RegisterCount,
503a9f12690SJung-uk Kim     UINT32                  InterruptNumber);
504a9f12690SJung-uk Kim 
505a9f12690SJung-uk Kim ACPI_STATUS
506a9f12690SJung-uk Kim AcpiRemoveGpeBlock (
507a9f12690SJung-uk Kim     ACPI_HANDLE             GpeDevice);
508a9f12690SJung-uk Kim 
509a9f12690SJung-uk Kim 
510a9f12690SJung-uk Kim /*
511a9f12690SJung-uk Kim  * Resource interfaces
512a9f12690SJung-uk Kim  */
513a9f12690SJung-uk Kim typedef
514a9f12690SJung-uk Kim ACPI_STATUS (*ACPI_WALK_RESOURCE_CALLBACK) (
515a9f12690SJung-uk Kim     ACPI_RESOURCE           *Resource,
516a9f12690SJung-uk Kim     void                    *Context);
517a9f12690SJung-uk Kim 
518a9f12690SJung-uk Kim ACPI_STATUS
519a9f12690SJung-uk Kim AcpiGetVendorResource (
5203f5e024cSJung-uk Kim     ACPI_HANDLE             Device,
521a9f12690SJung-uk Kim     char                    *Name,
522a9f12690SJung-uk Kim     ACPI_VENDOR_UUID        *Uuid,
523a9f12690SJung-uk Kim     ACPI_BUFFER             *RetBuffer);
524a9f12690SJung-uk Kim 
525a9f12690SJung-uk Kim ACPI_STATUS
526a9f12690SJung-uk Kim AcpiGetCurrentResources (
5273f5e024cSJung-uk Kim     ACPI_HANDLE             Device,
528a9f12690SJung-uk Kim     ACPI_BUFFER             *RetBuffer);
529a9f12690SJung-uk Kim 
530a9f12690SJung-uk Kim ACPI_STATUS
531a9f12690SJung-uk Kim AcpiGetPossibleResources (
5323f5e024cSJung-uk Kim     ACPI_HANDLE             Device,
533a9f12690SJung-uk Kim     ACPI_BUFFER             *RetBuffer);
534a9f12690SJung-uk Kim 
535a9f12690SJung-uk Kim ACPI_STATUS
536*3f0275a0SJung-uk Kim AcpiGetEventResources (
537*3f0275a0SJung-uk Kim     ACPI_HANDLE             DeviceHandle,
538*3f0275a0SJung-uk Kim     ACPI_BUFFER             *RetBuffer);
539*3f0275a0SJung-uk Kim 
540*3f0275a0SJung-uk Kim ACPI_STATUS
541a9f12690SJung-uk Kim AcpiWalkResources (
5423f5e024cSJung-uk Kim     ACPI_HANDLE                 Device,
543a9f12690SJung-uk Kim     char                        *Name,
544a9f12690SJung-uk Kim     ACPI_WALK_RESOURCE_CALLBACK UserFunction,
545a9f12690SJung-uk Kim     void                        *Context);
546a9f12690SJung-uk Kim 
547a9f12690SJung-uk Kim ACPI_STATUS
548a9f12690SJung-uk Kim AcpiSetCurrentResources (
5493f5e024cSJung-uk Kim     ACPI_HANDLE             Device,
550a9f12690SJung-uk Kim     ACPI_BUFFER             *InBuffer);
551a9f12690SJung-uk Kim 
552a9f12690SJung-uk Kim ACPI_STATUS
553a9f12690SJung-uk Kim AcpiGetIrqRoutingTable (
5543f5e024cSJung-uk Kim     ACPI_HANDLE             Device,
555a9f12690SJung-uk Kim     ACPI_BUFFER             *RetBuffer);
556a9f12690SJung-uk Kim 
557a9f12690SJung-uk Kim ACPI_STATUS
558a9f12690SJung-uk Kim AcpiResourceToAddress64 (
559a9f12690SJung-uk Kim     ACPI_RESOURCE           *Resource,
560a9f12690SJung-uk Kim     ACPI_RESOURCE_ADDRESS64 *Out);
561a9f12690SJung-uk Kim 
562*3f0275a0SJung-uk Kim ACPI_STATUS
563*3f0275a0SJung-uk Kim AcpiBufferToResource (
564*3f0275a0SJung-uk Kim     UINT8                   *AmlBuffer,
565*3f0275a0SJung-uk Kim     UINT16                  AmlBufferLength,
566*3f0275a0SJung-uk Kim     ACPI_RESOURCE           **ResourcePtr);
567*3f0275a0SJung-uk Kim 
568a9f12690SJung-uk Kim 
569a9f12690SJung-uk Kim /*
570a9f12690SJung-uk Kim  * Hardware (ACPI device) interfaces
571a9f12690SJung-uk Kim  */
572a9f12690SJung-uk Kim ACPI_STATUS
573a9f12690SJung-uk Kim AcpiReset (
574a9f12690SJung-uk Kim     void);
575a9f12690SJung-uk Kim 
576a9f12690SJung-uk Kim ACPI_STATUS
577a9f12690SJung-uk Kim AcpiRead (
578d6dd1baeSJung-uk Kim     UINT64                  *Value,
579a9f12690SJung-uk Kim     ACPI_GENERIC_ADDRESS    *Reg);
580a9f12690SJung-uk Kim 
581a9f12690SJung-uk Kim ACPI_STATUS
582a9f12690SJung-uk Kim AcpiWrite (
583d6dd1baeSJung-uk Kim     UINT64                  Value,
584a9f12690SJung-uk Kim     ACPI_GENERIC_ADDRESS    *Reg);
585a9f12690SJung-uk Kim 
586a9f12690SJung-uk Kim ACPI_STATUS
587a9f12690SJung-uk Kim AcpiReadBitRegister (
588a9f12690SJung-uk Kim     UINT32                  RegisterId,
589a9f12690SJung-uk Kim     UINT32                  *ReturnValue);
590a9f12690SJung-uk Kim 
591a9f12690SJung-uk Kim ACPI_STATUS
592a9f12690SJung-uk Kim AcpiWriteBitRegister (
593a9f12690SJung-uk Kim     UINT32                  RegisterId,
594a9f12690SJung-uk Kim     UINT32                  Value);
595a9f12690SJung-uk Kim 
596a9f12690SJung-uk Kim ACPI_STATUS
597a9f12690SJung-uk Kim AcpiGetSleepTypeData (
598a9f12690SJung-uk Kim     UINT8                   SleepState,
599a9f12690SJung-uk Kim     UINT8                   *Slp_TypA,
600a9f12690SJung-uk Kim     UINT8                   *Slp_TypB);
601a9f12690SJung-uk Kim 
602a9f12690SJung-uk Kim ACPI_STATUS
603a9f12690SJung-uk Kim AcpiEnterSleepStatePrep (
604a9f12690SJung-uk Kim     UINT8                   SleepState);
605a9f12690SJung-uk Kim 
606a9f12690SJung-uk Kim ACPI_STATUS
607a9f12690SJung-uk Kim AcpiEnterSleepState (
608a9f12690SJung-uk Kim     UINT8                   SleepState);
609a9f12690SJung-uk Kim 
610a9f12690SJung-uk Kim ACPI_STATUS
611a9f12690SJung-uk Kim AcpiEnterSleepStateS4bios (
612a9f12690SJung-uk Kim     void);
613a9f12690SJung-uk Kim 
614a9f12690SJung-uk Kim ACPI_STATUS
615a9f12690SJung-uk Kim AcpiLeaveSleepState (
616a9f12690SJung-uk Kim     UINT8                   SleepState)
617a9f12690SJung-uk Kim     ;
618a9f12690SJung-uk Kim ACPI_STATUS
619a9f12690SJung-uk Kim AcpiSetFirmwareWakingVector (
620a9f12690SJung-uk Kim     UINT32                  PhysicalAddress);
621a9f12690SJung-uk Kim 
622a9f12690SJung-uk Kim #if ACPI_MACHINE_WIDTH == 64
623a9f12690SJung-uk Kim ACPI_STATUS
624a9f12690SJung-uk Kim AcpiSetFirmwareWakingVector64 (
625a9f12690SJung-uk Kim     UINT64                  PhysicalAddress);
626a9f12690SJung-uk Kim #endif
627a9f12690SJung-uk Kim 
628a9f12690SJung-uk Kim 
629a9f12690SJung-uk Kim /*
630a9f12690SJung-uk Kim  * Error/Warning output
631a9f12690SJung-uk Kim  */
632a9f12690SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE
633a9f12690SJung-uk Kim AcpiError (
634a9f12690SJung-uk Kim     const char              *ModuleName,
635a9f12690SJung-uk Kim     UINT32                  LineNumber,
636a9f12690SJung-uk Kim     const char              *Format,
637a9f12690SJung-uk Kim     ...) ACPI_PRINTF_LIKE(3);
638a9f12690SJung-uk Kim 
639a9f12690SJung-uk Kim void  ACPI_INTERNAL_VAR_XFACE
640a9f12690SJung-uk Kim AcpiException (
641a9f12690SJung-uk Kim     const char              *ModuleName,
642a9f12690SJung-uk Kim     UINT32                  LineNumber,
643a9f12690SJung-uk Kim     ACPI_STATUS             Status,
644a9f12690SJung-uk Kim     const char              *Format,
645a9f12690SJung-uk Kim     ...) ACPI_PRINTF_LIKE(4);
646a9f12690SJung-uk Kim 
647a9f12690SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE
648a9f12690SJung-uk Kim AcpiWarning (
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 AcpiInfo (
656a9f12690SJung-uk Kim     const char              *ModuleName,
657a9f12690SJung-uk Kim     UINT32                  LineNumber,
658a9f12690SJung-uk Kim     const char              *Format,
659a9f12690SJung-uk Kim     ...) ACPI_PRINTF_LIKE(3);
660a9f12690SJung-uk Kim 
661a9f12690SJung-uk Kim 
662a9f12690SJung-uk Kim /*
663a9f12690SJung-uk Kim  * Debug output
664a9f12690SJung-uk Kim  */
665a9f12690SJung-uk Kim #ifdef ACPI_DEBUG_OUTPUT
666a9f12690SJung-uk Kim 
667a9f12690SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE
668a9f12690SJung-uk Kim AcpiDebugPrint (
669a9f12690SJung-uk Kim     UINT32                  RequestedDebugLevel,
670a9f12690SJung-uk Kim     UINT32                  LineNumber,
671a9f12690SJung-uk Kim     const char              *FunctionName,
672a9f12690SJung-uk Kim     const char              *ModuleName,
673a9f12690SJung-uk Kim     UINT32                  ComponentId,
674a9f12690SJung-uk Kim     const char              *Format,
675a9f12690SJung-uk Kim     ...) ACPI_PRINTF_LIKE(6);
676a9f12690SJung-uk Kim 
677a9f12690SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE
678a9f12690SJung-uk Kim AcpiDebugPrintRaw (
679a9f12690SJung-uk Kim     UINT32                  RequestedDebugLevel,
680a9f12690SJung-uk Kim     UINT32                  LineNumber,
681a9f12690SJung-uk Kim     const char              *FunctionName,
682a9f12690SJung-uk Kim     const char              *ModuleName,
683a9f12690SJung-uk Kim     UINT32                  ComponentId,
684a9f12690SJung-uk Kim     const char              *Format,
685a9f12690SJung-uk Kim     ...) ACPI_PRINTF_LIKE(6);
686a9f12690SJung-uk Kim #endif
687a9f12690SJung-uk Kim 
688a9f12690SJung-uk Kim #endif /* __ACXFACE_H__ */
689