167754Smsmith/******************************************************************************
267754Smsmith *
370243Smsmith * Name: acpixf.h - External interfaces to the ACPI subsystem
467754Smsmith *
567754Smsmith *****************************************************************************/
667754Smsmith
7217365Sjkim/*
8281075Sdim * Copyright (C) 2000 - 2015, Intel Corp.
970243Smsmith * All rights reserved.
1067754Smsmith *
11217365Sjkim * Redistribution and use in source and binary forms, with or without
12217365Sjkim * modification, are permitted provided that the following conditions
13217365Sjkim * are met:
14217365Sjkim * 1. Redistributions of source code must retain the above copyright
15217365Sjkim *    notice, this list of conditions, and the following disclaimer,
16217365Sjkim *    without modification.
17217365Sjkim * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18217365Sjkim *    substantially similar to the "NO WARRANTY" disclaimer below
19217365Sjkim *    ("Disclaimer") and any redistribution must be conditioned upon
20217365Sjkim *    including a substantially similar Disclaimer requirement for further
21217365Sjkim *    binary redistribution.
22217365Sjkim * 3. Neither the names of the above-listed copyright holders nor the names
23217365Sjkim *    of any contributors may be used to endorse or promote products derived
24217365Sjkim *    from this software without specific prior written permission.
2567754Smsmith *
26217365Sjkim * Alternatively, this software may be distributed under the terms of the
27217365Sjkim * GNU General Public License ("GPL") version 2 as published by the Free
28217365Sjkim * Software Foundation.
2967754Smsmith *
30217365Sjkim * NO WARRANTY
31217365Sjkim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32217365Sjkim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33217365Sjkim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34217365Sjkim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35217365Sjkim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36217365Sjkim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37217365Sjkim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38217365Sjkim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39217365Sjkim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40217365Sjkim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41217365Sjkim * POSSIBILITY OF SUCH DAMAGES.
42217365Sjkim */
4367754Smsmith
4467754Smsmith#ifndef __ACXFACE_H__
4567754Smsmith#define __ACXFACE_H__
4667754Smsmith
47193267Sjkim/* Current ACPICA subsystem version in YYYYMMDD format */
48193267Sjkim
49284460Sjkim#define ACPI_CA_VERSION                 0x20150515
50193267Sjkim
51231844Sjkim#include <contrib/dev/acpica/include/acconfig.h>
52193341Sjkim#include <contrib/dev/acpica/include/actypes.h>
53193341Sjkim#include <contrib/dev/acpica/include/actbl.h>
54239340Sjkim#include <contrib/dev/acpica/include/acbuffer.h>
5567754Smsmith
56281075Sdim
57281075Sdim/*****************************************************************************
58281075Sdim *
59281075Sdim * Macros used for ACPICA globals and configuration
60281075Sdim *
61281075Sdim ****************************************************************************/
62281075Sdim
63193267Sjkim/*
64281075Sdim * Ensure that global variables are defined and initialized only once.
65281075Sdim *
66281075Sdim * The use of these macros allows for a single list of globals (here)
67281075Sdim * in order to simplify maintenance of the code.
68193267Sjkim */
69281075Sdim#ifdef DEFINE_ACPI_GLOBALS
70281075Sdim#define ACPI_GLOBAL(type,name) \
71281075Sdim    extern type name; \
72281075Sdim    type name
7377424Smsmith
74281075Sdim#define ACPI_INIT_GLOBAL(type,name,value) \
75281075Sdim    type name=value
76193267Sjkim
77281075Sdim#else
78281075Sdim#ifndef ACPI_GLOBAL
79281075Sdim#define ACPI_GLOBAL(type,name) \
80281075Sdim    extern type name
81281075Sdim#endif
82193267Sjkim
83281075Sdim#ifndef ACPI_INIT_GLOBAL
84281075Sdim#define ACPI_INIT_GLOBAL(type,name,value) \
85281075Sdim    extern type name
86281075Sdim#endif
87281075Sdim#endif
88193267Sjkim
89281075Sdim/*
90281075Sdim * These macros configure the various ACPICA interfaces. They are
91281075Sdim * useful for generating stub inline functions for features that are
92281075Sdim * configured out of the current kernel or ACPICA application.
93281075Sdim */
94281075Sdim#ifndef ACPI_EXTERNAL_RETURN_STATUS
95281075Sdim#define ACPI_EXTERNAL_RETURN_STATUS(Prototype) \
96281075Sdim    Prototype;
97281075Sdim#endif
98193267Sjkim
99281075Sdim#ifndef ACPI_EXTERNAL_RETURN_OK
100281075Sdim#define ACPI_EXTERNAL_RETURN_OK(Prototype) \
101281075Sdim    Prototype;
102281075Sdim#endif
103193267Sjkim
104281075Sdim#ifndef ACPI_EXTERNAL_RETURN_VOID
105281075Sdim#define ACPI_EXTERNAL_RETURN_VOID(Prototype) \
106281075Sdim    Prototype;
107281075Sdim#endif
108281075Sdim
109281075Sdim#ifndef ACPI_EXTERNAL_RETURN_UINT32
110281075Sdim#define ACPI_EXTERNAL_RETURN_UINT32(Prototype) \
111281075Sdim    Prototype;
112281075Sdim#endif
113281075Sdim
114281075Sdim#ifndef ACPI_EXTERNAL_RETURN_PTR
115281075Sdim#define ACPI_EXTERNAL_RETURN_PTR(Prototype) \
116281075Sdim    Prototype;
117281075Sdim#endif
118281075Sdim
119281075Sdim
120281075Sdim/*****************************************************************************
121281075Sdim *
122281075Sdim * Public globals and runtime configuration options
123281075Sdim *
124281075Sdim ****************************************************************************/
125281075Sdim
126151937Sjkim/*
127281075Sdim * Enable "slack mode" of the AML interpreter?  Default is FALSE, and the
128281075Sdim * interpreter strictly follows the ACPI specification. Setting to TRUE
129281075Sdim * allows the interpreter to ignore certain errors and/or bad AML constructs.
130281075Sdim *
131281075Sdim * Currently, these features are enabled by this flag:
132281075Sdim *
133281075Sdim * 1) Allow "implicit return" of last value in a control method
134281075Sdim * 2) Allow access beyond the end of an operation region
135281075Sdim * 3) Allow access to uninitialized locals/args (auto-init to integer 0)
136281075Sdim * 4) Allow ANY object type to be a source operand for the Store() operator
137281075Sdim * 5) Allow unresolved references (invalid target name) in package objects
138281075Sdim * 6) Enable warning messages for behavior that is not ACPI spec compliant
139281075Sdim */
140281075SdimACPI_INIT_GLOBAL (UINT8,            AcpiGbl_EnableInterpreterSlack, FALSE);
141281075Sdim
142281075Sdim/*
143281075Sdim * Automatically serialize all methods that create named objects? Default
144281075Sdim * is TRUE, meaning that all NonSerialized methods are scanned once at
145281075Sdim * table load time to determine those that create named objects. Methods
146281075Sdim * that create named objects are marked Serialized in order to prevent
147281075Sdim * possible run-time problems if they are entered by more than one thread.
148281075Sdim */
149281075SdimACPI_INIT_GLOBAL (UINT8,            AcpiGbl_AutoSerializeMethods, TRUE);
150281075Sdim
151281075Sdim/*
152281075Sdim * Create the predefined _OSI method in the namespace? Default is TRUE
153281075Sdim * because ACPICA is fully compatible with other ACPI implementations.
154281075Sdim * Changing this will revert ACPICA (and machine ASL) to pre-OSI behavior.
155281075Sdim */
156281075SdimACPI_INIT_GLOBAL (UINT8,            AcpiGbl_CreateOsiMethod, TRUE);
157281075Sdim
158281075Sdim/*
159281075Sdim * Optionally use default values for the ACPI register widths. Set this to
160281075Sdim * TRUE to use the defaults, if an FADT contains incorrect widths/lengths.
161281075Sdim */
162281075SdimACPI_INIT_GLOBAL (UINT8,            AcpiGbl_UseDefaultRegisterWidths, TRUE);
163281075Sdim
164281075Sdim/*
165281075Sdim * Whether or not to verify the table checksum before installation. Set
166281075Sdim * this to TRUE to verify the table checksum before install it to the table
167281075Sdim * manager. Note that enabling this option causes errors to happen in some
168281075Sdim * OSPMs during early initialization stages. Default behavior is to do such
169281075Sdim * verification.
170281075Sdim */
171281075SdimACPI_INIT_GLOBAL (UINT8,            AcpiGbl_VerifyTableChecksum, TRUE);
172281075Sdim
173281075Sdim/*
174281075Sdim * Optionally enable output from the AML Debug Object.
175281075Sdim */
176281075SdimACPI_INIT_GLOBAL (UINT8,            AcpiGbl_EnableAmlDebugObject, FALSE);
177281075Sdim
178281075Sdim/*
179281075Sdim * Optionally copy the entire DSDT to local memory (instead of simply
180281075Sdim * mapping it.) There are some BIOSs that corrupt or replace the original
181281075Sdim * DSDT, creating the need for this option. Default is FALSE, do not copy
182281075Sdim * the DSDT.
183281075Sdim */
184281075SdimACPI_INIT_GLOBAL (UINT8,            AcpiGbl_CopyDsdtLocally, FALSE);
185281075Sdim
186281075Sdim/*
187281075Sdim * Optionally ignore an XSDT if present and use the RSDT instead.
188281075Sdim * Although the ACPI specification requires that an XSDT be used instead
189281075Sdim * of the RSDT, the XSDT has been found to be corrupt or ill-formed on
190281075Sdim * some machines. Default behavior is to use the XSDT if present.
191281075Sdim */
192281075SdimACPI_INIT_GLOBAL (UINT8,            AcpiGbl_DoNotUseXsdt, FALSE);
193281075Sdim
194281075Sdim/*
195281075Sdim * Optionally use 32-bit FADT addresses if and when there is a conflict
196281075Sdim * (address mismatch) between the 32-bit and 64-bit versions of the
197281075Sdim * address. Although ACPICA adheres to the ACPI specification which
198281075Sdim * requires the use of the corresponding 64-bit address if it is non-zero,
199281075Sdim * some machines have been found to have a corrupted non-zero 64-bit
200281075Sdim * address. Default is FALSE, do not favor the 32-bit addresses.
201281075Sdim */
202281075SdimACPI_INIT_GLOBAL (UINT8,            AcpiGbl_Use32BitFadtAddresses, FALSE);
203281075Sdim
204281075Sdim/*
205281075Sdim * Optionally truncate I/O addresses to 16 bits. Provides compatibility
206281075Sdim * with other ACPI implementations. NOTE: During ACPICA initialization,
207281075Sdim * this value is set to TRUE if any Windows OSI strings have been
208281075Sdim * requested by the BIOS.
209281075Sdim */
210281075SdimACPI_INIT_GLOBAL (UINT8,            AcpiGbl_TruncateIoAddresses, FALSE);
211281075Sdim
212281075Sdim/*
213281075Sdim * Disable runtime checking and repair of values returned by control methods.
214281075Sdim * Use only if the repair is causing a problem on a particular machine.
215281075Sdim */
216281075SdimACPI_INIT_GLOBAL (UINT8,            AcpiGbl_DisableAutoRepair, FALSE);
217281075Sdim
218281075Sdim/*
219281075Sdim * Optionally do not install any SSDTs from the RSDT/XSDT during initialization.
220281075Sdim * This can be useful for debugging ACPI problems on some machines.
221281075Sdim */
222281075SdimACPI_INIT_GLOBAL (UINT8,            AcpiGbl_DisableSsdtTableInstall, FALSE);
223281075Sdim
224281075Sdim/*
225281075Sdim * We keep track of the latest version of Windows that has been requested by
226281075Sdim * the BIOS. ACPI 5.0.
227281075Sdim */
228281075SdimACPI_INIT_GLOBAL (UINT8,            AcpiGbl_OsiData, 0);
229281075Sdim
230281075Sdim/*
231281075Sdim * ACPI 5.0 introduces the concept of a "reduced hardware platform", meaning
232281075Sdim * that the ACPI hardware is no longer required. A flag in the FADT indicates
233281075Sdim * a reduced HW machine, and that flag is duplicated here for convenience.
234281075Sdim */
235281075SdimACPI_INIT_GLOBAL (BOOLEAN,          AcpiGbl_ReducedHardware, FALSE);
236281075Sdim
237281075Sdim/*
238281075Sdim * This mechanism is used to trace a specified AML method. The method is
239281075Sdim * traced each time it is executed.
240281075Sdim */
241281075SdimACPI_INIT_GLOBAL (UINT32,           AcpiGbl_TraceFlags, 0);
242281075SdimACPI_INIT_GLOBAL (ACPI_NAME,        AcpiGbl_TraceMethodName, 0);
243281075Sdim
244281075Sdim/*
245281075Sdim * Runtime configuration of debug output control masks. We want the debug
246281075Sdim * switches statically initialized so they are already set when the debugger
247281075Sdim * is entered.
248281075Sdim */
249281075Sdim#ifdef ACPI_DEBUG_OUTPUT
250281075SdimACPI_INIT_GLOBAL (UINT32,           AcpiDbgLevel, ACPI_DEBUG_DEFAULT);
251281075Sdim#else
252281075SdimACPI_INIT_GLOBAL (UINT32,           AcpiDbgLevel, ACPI_NORMAL_DEFAULT);
253281075Sdim#endif
254281075SdimACPI_INIT_GLOBAL (UINT32,           AcpiDbgLayer, ACPI_COMPONENT_DEFAULT);
255281075Sdim
256281075Sdim/*
257281075Sdim * Other miscellaneous globals
258281075Sdim */
259281075SdimACPI_GLOBAL (ACPI_TABLE_FADT,       AcpiGbl_FADT);
260281075SdimACPI_GLOBAL (UINT32,                AcpiCurrentGpeCount);
261281075SdimACPI_GLOBAL (BOOLEAN,               AcpiGbl_SystemAwakeAndRunning);
262281075Sdim
263281075Sdim
264281075Sdim/*****************************************************************************
265281075Sdim *
266281075Sdim * ACPICA public interface configuration.
267281075Sdim *
268281075Sdim * Interfaces that are configured out of the ACPICA build are replaced
269281075Sdim * by inlined stubs by default.
270281075Sdim *
271281075Sdim ****************************************************************************/
272281075Sdim
273281075Sdim/*
274281075Sdim * Hardware-reduced prototypes (default: Not hardware reduced).
275281075Sdim *
276281075Sdim * All ACPICA hardware-related interfaces that use these macros will be
277281075Sdim * configured out of the ACPICA build if the ACPI_REDUCED_HARDWARE flag
278231844Sjkim * is set to TRUE.
279281075Sdim *
280281075Sdim * Note: This static build option for reduced hardware is intended to
281281075Sdim * reduce ACPICA code size if desired or necessary. However, even if this
282281075Sdim * option is not specified, the runtime behavior of ACPICA is dependent
283281075Sdim * on the actual FADT reduced hardware flag (HW_REDUCED_ACPI). If set,
284281075Sdim * the flag will enable similar behavior -- ACPICA will not attempt
285281075Sdim * to access any ACPI-relate hardware (SCI, GPEs, Fixed Events, etc.)
286231844Sjkim */
287231844Sjkim#if (!ACPI_REDUCED_HARDWARE)
288231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_STATUS(Prototype) \
289281075Sdim    ACPI_EXTERNAL_RETURN_STATUS(Prototype)
290231844Sjkim
291231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_OK(Prototype) \
292281075Sdim    ACPI_EXTERNAL_RETURN_OK(Prototype)
293231844Sjkim
294231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_VOID(Prototype) \
295281075Sdim    ACPI_EXTERNAL_RETURN_VOID(Prototype)
296231844Sjkim
297231844Sjkim#else
298231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_STATUS(Prototype) \
299231844Sjkim    static ACPI_INLINE Prototype {return(AE_NOT_CONFIGURED);}
300231844Sjkim
301231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_OK(Prototype) \
302231844Sjkim    static ACPI_INLINE Prototype {return(AE_OK);}
303231844Sjkim
304231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_VOID(Prototype) \
305281075Sdim    static ACPI_INLINE Prototype {return;}
306231844Sjkim
307231844Sjkim#endif /* !ACPI_REDUCED_HARDWARE */
308231844Sjkim
309231844Sjkim
310231844Sjkim/*
311281075Sdim * Error message prototypes (default: error messages enabled).
312281075Sdim *
313281075Sdim * All interfaces related to error and warning messages
314281075Sdim * will be configured out of the ACPICA build if the
315281075Sdim * ACPI_NO_ERROR_MESSAGE flag is defined.
316281075Sdim */
317281075Sdim#ifndef ACPI_NO_ERROR_MESSAGES
318281075Sdim#define ACPI_MSG_DEPENDENT_RETURN_VOID(Prototype) \
319281075Sdim    Prototype;
320281075Sdim
321281075Sdim#else
322281075Sdim#define ACPI_MSG_DEPENDENT_RETURN_VOID(Prototype) \
323281075Sdim    static ACPI_INLINE Prototype {return;}
324281075Sdim
325281075Sdim#endif /* ACPI_NO_ERROR_MESSAGES */
326281075Sdim
327281075Sdim
328281075Sdim/*
329281075Sdim * Debugging output prototypes (default: no debug output).
330281075Sdim *
331281075Sdim * All interfaces related to debug output messages
332281075Sdim * will be configured out of the ACPICA build unless the
333281075Sdim * ACPI_DEBUG_OUTPUT flag is defined.
334281075Sdim */
335281075Sdim#ifdef ACPI_DEBUG_OUTPUT
336281075Sdim#define ACPI_DBG_DEPENDENT_RETURN_VOID(Prototype) \
337281075Sdim    Prototype;
338281075Sdim
339281075Sdim#else
340281075Sdim#define ACPI_DBG_DEPENDENT_RETURN_VOID(Prototype) \
341281075Sdim    static ACPI_INLINE Prototype {return;}
342281075Sdim
343281075Sdim#endif /* ACPI_DEBUG_OUTPUT */
344281075Sdim
345281075Sdim
346281075Sdim/*
347281075Sdim * Application prototypes
348281075Sdim *
349281075Sdim * All interfaces used by application will be configured
350281075Sdim * out of the ACPICA build unless the ACPI_APPLICATION
351281075Sdim * flag is defined.
352281075Sdim */
353281075Sdim#ifdef ACPI_APPLICATION
354281075Sdim#define ACPI_APP_DEPENDENT_RETURN_VOID(Prototype) \
355281075Sdim    Prototype;
356281075Sdim
357281075Sdim#else
358281075Sdim#define ACPI_APP_DEPENDENT_RETURN_VOID(Prototype) \
359281075Sdim    static ACPI_INLINE Prototype {return;}
360281075Sdim
361281075Sdim#endif /* ACPI_APPLICATION */
362281075Sdim
363281075Sdim
364281075Sdim/*****************************************************************************
365281075Sdim *
366281075Sdim * ACPICA public interface prototypes
367281075Sdim *
368281075Sdim ****************************************************************************/
369281075Sdim
370281075Sdim/*
371216471Sjkim * Initialization
37267754Smsmith */
373281075SdimACPI_EXTERNAL_RETURN_STATUS (
37467754SmsmithACPI_STATUS
375167802SjkimAcpiInitializeTables (
376167802Sjkim    ACPI_TABLE_DESC         *InitialStorage,
377167802Sjkim    UINT32                  InitialTableCount,
378281075Sdim    BOOLEAN                 AllowResize))
379167802Sjkim
380281075SdimACPI_EXTERNAL_RETURN_STATUS (
381167802SjkimACPI_STATUS
38267754SmsmithAcpiInitializeSubsystem (
383281075Sdim    void))
38467754Smsmith
385281075SdimACPI_EXTERNAL_RETURN_STATUS (
38667754SmsmithACPI_STATUS
38767754SmsmithAcpiEnableSubsystem (
388281075Sdim    UINT32                  Flags))
38967754Smsmith
390281075SdimACPI_EXTERNAL_RETURN_STATUS (
39167754SmsmithACPI_STATUS
392100966SiwasakiAcpiInitializeObjects (
393281075Sdim    UINT32                  Flags))
394100966Siwasaki
395281075SdimACPI_EXTERNAL_RETURN_STATUS (
396100966SiwasakiACPI_STATUS
39767754SmsmithAcpiTerminate (
398281075Sdim    void))
39967754Smsmith
40080062Smsmith
401216471Sjkim/*
402216471Sjkim * Miscellaneous global interfaces
403216471Sjkim */
404231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
40580062SmsmithACPI_STATUS
40667754SmsmithAcpiEnable (
407231844Sjkim    void))
40867754Smsmith
409231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
41067754SmsmithACPI_STATUS
41167754SmsmithAcpiDisable (
412231844Sjkim    void))
41367754Smsmith
414281075SdimACPI_EXTERNAL_RETURN_STATUS (
41567754SmsmithACPI_STATUS
416216471SjkimAcpiSubsystemStatus (
417281075Sdim    void))
418216471Sjkim
419281075SdimACPI_EXTERNAL_RETURN_STATUS (
420216471SjkimACPI_STATUS
42180062SmsmithAcpiGetSystemInfo (
422281075Sdim    ACPI_BUFFER             *RetBuffer))
42367754Smsmith
424281075SdimACPI_EXTERNAL_RETURN_STATUS (
425193267SjkimACPI_STATUS
426193267SjkimAcpiGetStatistics (
427281075Sdim    ACPI_STATISTICS         *Stats))
428193267Sjkim
429281075SdimACPI_EXTERNAL_RETURN_PTR (
43080062Smsmithconst char *
43167754SmsmithAcpiFormatException (
432281075Sdim    ACPI_STATUS             Exception))
43367754Smsmith
434281075SdimACPI_EXTERNAL_RETURN_STATUS (
43587031SmsmithACPI_STATUS
43687031SmsmithAcpiPurgeCachedObjects (
437281075Sdim    void))
43867754Smsmith
439281075SdimACPI_EXTERNAL_RETURN_STATUS (
440210976SjkimACPI_STATUS
441210976SjkimAcpiInstallInterface (
442281075Sdim    ACPI_STRING             InterfaceName))
44387031Smsmith
444281075SdimACPI_EXTERNAL_RETURN_STATUS (
445210976SjkimACPI_STATUS
446210976SjkimAcpiRemoveInterface (
447281075Sdim    ACPI_STRING             InterfaceName))
448210976Sjkim
449281075SdimACPI_EXTERNAL_RETURN_STATUS (
450253690SjkimACPI_STATUS
451253690SjkimAcpiUpdateInterfaces (
452281075Sdim    UINT8                   Action))
453253690Sjkim
454281075SdimACPI_EXTERNAL_RETURN_UINT32 (
455229989SjkimUINT32
456229989SjkimAcpiCheckAddressRange (
457229989Sjkim    ACPI_ADR_SPACE_TYPE     SpaceId,
458229989Sjkim    ACPI_PHYSICAL_ADDRESS   Address,
459229989Sjkim    ACPI_SIZE               Length,
460281075Sdim    BOOLEAN                 Warn))
461216471Sjkim
462281075SdimACPI_EXTERNAL_RETURN_STATUS (
463239340SjkimACPI_STATUS
464239340SjkimAcpiDecodePldBuffer (
465239340Sjkim    UINT8                   *InBuffer,
466239340Sjkim    ACPI_SIZE               Length,
467281075Sdim    ACPI_PLD_INFO           **ReturnBuffer))
468229989Sjkim
46977424Smsmith
47077424Smsmith/*
471238381Sjkim * ACPI table load/unload interfaces
472238381Sjkim */
473281075SdimACPI_EXTERNAL_RETURN_STATUS (
474238381SjkimACPI_STATUS
475281075SdimAcpiInstallTable (
476281075Sdim    ACPI_PHYSICAL_ADDRESS   Address,
477281075Sdim    BOOLEAN                 Physical))
478281075Sdim
479281075SdimACPI_EXTERNAL_RETURN_STATUS (
480281075SdimACPI_STATUS
481238381SjkimAcpiLoadTable (
482281075Sdim    ACPI_TABLE_HEADER       *Table))
483238381Sjkim
484281075SdimACPI_EXTERNAL_RETURN_STATUS (
485238381SjkimACPI_STATUS
486238381SjkimAcpiUnloadParentTable (
487281075Sdim    ACPI_HANDLE             Object))
488238381Sjkim
489281075SdimACPI_EXTERNAL_RETURN_STATUS (
490238381SjkimACPI_STATUS
491238381SjkimAcpiLoadTables (
492281075Sdim    void))
493238381Sjkim
494238381Sjkim
495238381Sjkim/*
49667754Smsmith * ACPI table manipulation interfaces
49767754Smsmith */
498281075SdimACPI_EXTERNAL_RETURN_STATUS (
49967754SmsmithACPI_STATUS
500167802SjkimAcpiReallocateRootTable (
501281075Sdim    void))
502167802Sjkim
503281075SdimACPI_EXTERNAL_RETURN_STATUS (
504167802SjkimACPI_STATUS
50567754SmsmithAcpiFindRootPointer (
506281687Sjkim    ACPI_PHYSICAL_ADDRESS   *RsdpAddress))
50767754Smsmith
508281075SdimACPI_EXTERNAL_RETURN_STATUS (
50967754SmsmithACPI_STATUS
51067754SmsmithAcpiGetTableHeader (
511167802Sjkim    ACPI_STRING             Signature,
512193267Sjkim    UINT32                  Instance,
513281075Sdim    ACPI_TABLE_HEADER       *OutTableHeader))
51467754Smsmith
515281075SdimACPI_EXTERNAL_RETURN_STATUS (
51667754SmsmithACPI_STATUS
51767754SmsmithAcpiGetTable (
518167802Sjkim    ACPI_STRING             Signature,
519193267Sjkim    UINT32                  Instance,
520281075Sdim    ACPI_TABLE_HEADER       **OutTable))
52167754Smsmith
522281075SdimACPI_EXTERNAL_RETURN_STATUS (
52378986SmsmithACPI_STATUS
524167802SjkimAcpiGetTableByIndex (
525193267Sjkim    UINT32                  TableIndex,
526281075Sdim    ACPI_TABLE_HEADER       **OutTable))
52767754Smsmith
528281075SdimACPI_EXTERNAL_RETURN_STATUS (
529193267SjkimACPI_STATUS
530193267SjkimAcpiInstallTableHandler (
531193267Sjkim    ACPI_TABLE_HANDLER      Handler,
532281075Sdim    void                    *Context))
53378986Smsmith
534281075SdimACPI_EXTERNAL_RETURN_STATUS (
535193267SjkimACPI_STATUS
536193267SjkimAcpiRemoveTableHandler (
537281075Sdim    ACPI_TABLE_HANDLER      Handler))
538193267Sjkim
539193267Sjkim
54067754Smsmith/*
54167754Smsmith * Namespace and name interfaces
54267754Smsmith */
543281075SdimACPI_EXTERNAL_RETURN_STATUS (
54467754SmsmithACPI_STATUS
54567754SmsmithAcpiWalkNamespace (
54667754Smsmith    ACPI_OBJECT_TYPE        Type,
54767754Smsmith    ACPI_HANDLE             StartObject,
54867754Smsmith    UINT32                  MaxDepth,
549253690Sjkim    ACPI_WALK_CALLBACK      DescendingCallback,
550253690Sjkim    ACPI_WALK_CALLBACK      AscendingCallback,
55167754Smsmith    void                    *Context,
552281075Sdim    void                    **ReturnValue))
55367754Smsmith
554281075SdimACPI_EXTERNAL_RETURN_STATUS (
55567754SmsmithACPI_STATUS
55667754SmsmithAcpiGetDevices (
557114237Snjl    char                    *HID,
55877424Smsmith    ACPI_WALK_CALLBACK      UserFunction,
55967754Smsmith    void                    *Context,
560281075Sdim    void                    **ReturnValue))
56167754Smsmith
562281075SdimACPI_EXTERNAL_RETURN_STATUS (
56367754SmsmithACPI_STATUS
56467754SmsmithAcpiGetName (
565207344Sjkim    ACPI_HANDLE             Object,
56667754Smsmith    UINT32                  NameType,
567281075Sdim    ACPI_BUFFER             *RetPathPtr))
56867754Smsmith
569281075SdimACPI_EXTERNAL_RETURN_STATUS (
57067754SmsmithACPI_STATUS
57167754SmsmithAcpiGetHandle (
57267754Smsmith    ACPI_HANDLE             Parent,
57367754Smsmith    ACPI_STRING             Pathname,
574281075Sdim    ACPI_HANDLE             *RetHandle))
57567754Smsmith
576281075SdimACPI_EXTERNAL_RETURN_STATUS (
57787031SmsmithACPI_STATUS
57887031SmsmithAcpiAttachData (
579207344Sjkim    ACPI_HANDLE             Object,
58087031Smsmith    ACPI_OBJECT_HANDLER     Handler,
581281075Sdim    void                    *Data))
58267754Smsmith
583281075SdimACPI_EXTERNAL_RETURN_STATUS (
58487031SmsmithACPI_STATUS
58587031SmsmithAcpiDetachData (
586207344Sjkim    ACPI_HANDLE             Object,
587281075Sdim    ACPI_OBJECT_HANDLER     Handler))
58887031Smsmith
589281075SdimACPI_EXTERNAL_RETURN_STATUS (
59087031SmsmithACPI_STATUS
59187031SmsmithAcpiGetData (
592207344Sjkim    ACPI_HANDLE             Object,
59387031Smsmith    ACPI_OBJECT_HANDLER     Handler,
594281075Sdim    void                    **Data))
59587031Smsmith
596281075SdimACPI_EXTERNAL_RETURN_STATUS (
597151937SjkimACPI_STATUS
598151937SjkimAcpiDebugTrace (
599151937Sjkim    char                    *Name,
600151937Sjkim    UINT32                  DebugLevel,
601151937Sjkim    UINT32                  DebugLayer,
602281075Sdim    UINT32                  Flags))
60387031Smsmith
604151937Sjkim
60567754Smsmith/*
60667754Smsmith * Object manipulation and enumeration
60767754Smsmith */
608281075SdimACPI_EXTERNAL_RETURN_STATUS (
60967754SmsmithACPI_STATUS
61067754SmsmithAcpiEvaluateObject (
61167754Smsmith    ACPI_HANDLE             Object,
61267754Smsmith    ACPI_STRING             Pathname,
61367754Smsmith    ACPI_OBJECT_LIST        *ParameterObjects,
614281075Sdim    ACPI_BUFFER             *ReturnObjectBuffer))
61567754Smsmith
616281075SdimACPI_EXTERNAL_RETURN_STATUS (
61767754SmsmithACPI_STATUS
61899679SiwasakiAcpiEvaluateObjectTyped (
61999679Siwasaki    ACPI_HANDLE             Object,
62099679Siwasaki    ACPI_STRING             Pathname,
62199679Siwasaki    ACPI_OBJECT_LIST        *ExternalParams,
62299679Siwasaki    ACPI_BUFFER             *ReturnBuffer,
623281075Sdim    ACPI_OBJECT_TYPE        ReturnType))
62499679Siwasaki
625281075SdimACPI_EXTERNAL_RETURN_STATUS (
62699679SiwasakiACPI_STATUS
62767754SmsmithAcpiGetObjectInfo (
628207344Sjkim    ACPI_HANDLE             Object,
629281075Sdim    ACPI_DEVICE_INFO        **ReturnBuffer))
63067754Smsmith
631281075SdimACPI_EXTERNAL_RETURN_STATUS (
63267754SmsmithACPI_STATUS
633193267SjkimAcpiInstallMethod (
634281075Sdim    UINT8                   *Buffer))
635193267Sjkim
636281075SdimACPI_EXTERNAL_RETURN_STATUS (
637193267SjkimACPI_STATUS
63867754SmsmithAcpiGetNextObject (
63967754Smsmith    ACPI_OBJECT_TYPE        Type,
64067754Smsmith    ACPI_HANDLE             Parent,
64167754Smsmith    ACPI_HANDLE             Child,
642281075Sdim    ACPI_HANDLE             *OutHandle))
64367754Smsmith
644281075SdimACPI_EXTERNAL_RETURN_STATUS (
64567754SmsmithACPI_STATUS
64667754SmsmithAcpiGetType (
64767754Smsmith    ACPI_HANDLE             Object,
648281075Sdim    ACPI_OBJECT_TYPE        *OutType))
64967754Smsmith
650281075SdimACPI_EXTERNAL_RETURN_STATUS (
65167754SmsmithACPI_STATUS
65267754SmsmithAcpiGetParent (
65367754Smsmith    ACPI_HANDLE             Object,
654281075Sdim    ACPI_HANDLE             *OutHandle))
65567754Smsmith
65667754Smsmith
65767754Smsmith/*
658193267Sjkim * Handler interfaces
65967754Smsmith */
660281075SdimACPI_EXTERNAL_RETURN_STATUS (
66167754SmsmithACPI_STATUS
662193267SjkimAcpiInstallInitializationHandler (
663193267Sjkim    ACPI_INIT_HANDLER       Handler,
664281075Sdim    UINT32                  Function))
665193267Sjkim
666231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
667193267SjkimACPI_STATUS
668254745SjkimAcpiInstallSciHandler (
669254745Sjkim    ACPI_SCI_HANDLER        Address,
670254745Sjkim    void                    *Context))
671254745Sjkim
672254745SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
673254745SjkimACPI_STATUS
674254745SjkimAcpiRemoveSciHandler (
675254745Sjkim    ACPI_SCI_HANDLER        Address))
676254745Sjkim
677254745SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
678254745SjkimACPI_STATUS
679216471SjkimAcpiInstallGlobalEventHandler (
680216471Sjkim    ACPI_GBL_EVENT_HANDLER  Handler,
681231844Sjkim    void                    *Context))
682216471Sjkim
683231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
684216471SjkimACPI_STATUS
68567754SmsmithAcpiInstallFixedEventHandler (
68667754Smsmith    UINT32                  AcpiEvent,
68777424Smsmith    ACPI_EVENT_HANDLER      Handler,
688231844Sjkim    void                    *Context))
68967754Smsmith
690231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
69167754SmsmithACPI_STATUS
69267754SmsmithAcpiRemoveFixedEventHandler (
69367754Smsmith    UINT32                  AcpiEvent,
694231844Sjkim    ACPI_EVENT_HANDLER      Handler))
69567754Smsmith
696231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
69767754SmsmithACPI_STATUS
698216471SjkimAcpiInstallGpeHandler (
699216471Sjkim    ACPI_HANDLE             GpeDevice,
700216471Sjkim    UINT32                  GpeNumber,
701216471Sjkim    UINT32                  Type,
702216471Sjkim    ACPI_GPE_HANDLER        Address,
703231844Sjkim    void                    *Context))
704216471Sjkim
705231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
706216471SjkimACPI_STATUS
707281075SdimAcpiInstallGpeRawHandler (
708281075Sdim    ACPI_HANDLE             GpeDevice,
709281075Sdim    UINT32                  GpeNumber,
710281075Sdim    UINT32                  Type,
711281075Sdim    ACPI_GPE_HANDLER        Address,
712281075Sdim    void                    *Context))
713281075Sdim
714281075SdimACPI_HW_DEPENDENT_RETURN_STATUS (
715281075SdimACPI_STATUS
716216471SjkimAcpiRemoveGpeHandler (
717216471Sjkim    ACPI_HANDLE             GpeDevice,
718216471Sjkim    UINT32                  GpeNumber,
719231844Sjkim    ACPI_GPE_HANDLER        Address))
720216471Sjkim
721281075SdimACPI_EXTERNAL_RETURN_STATUS (
722216471SjkimACPI_STATUS
72367754SmsmithAcpiInstallNotifyHandler (
72467754Smsmith    ACPI_HANDLE             Device,
72567754Smsmith    UINT32                  HandlerType,
72677424Smsmith    ACPI_NOTIFY_HANDLER     Handler,
727281075Sdim    void                    *Context))
72867754Smsmith
729281075SdimACPI_EXTERNAL_RETURN_STATUS (
73067754SmsmithACPI_STATUS
73167754SmsmithAcpiRemoveNotifyHandler (
73267754Smsmith    ACPI_HANDLE             Device,
73367754Smsmith    UINT32                  HandlerType,
734281075Sdim    ACPI_NOTIFY_HANDLER     Handler))
73567754Smsmith
736281075SdimACPI_EXTERNAL_RETURN_STATUS (
73767754SmsmithACPI_STATUS
73867754SmsmithAcpiInstallAddressSpaceHandler (
73967754Smsmith    ACPI_HANDLE             Device,
74077424Smsmith    ACPI_ADR_SPACE_TYPE     SpaceId,
74177424Smsmith    ACPI_ADR_SPACE_HANDLER  Handler,
74277424Smsmith    ACPI_ADR_SPACE_SETUP    Setup,
743281075Sdim    void                    *Context))
74467754Smsmith
745281075SdimACPI_EXTERNAL_RETURN_STATUS (
74667754SmsmithACPI_STATUS
74767754SmsmithAcpiRemoveAddressSpaceHandler (
74867754Smsmith    ACPI_HANDLE             Device,
74977424Smsmith    ACPI_ADR_SPACE_TYPE     SpaceId,
750281075Sdim    ACPI_ADR_SPACE_HANDLER  Handler))
75167754Smsmith
752281075SdimACPI_EXTERNAL_RETURN_STATUS (
75367754SmsmithACPI_STATUS
754138287SmarksAcpiInstallExceptionHandler (
755281075Sdim    ACPI_EXCEPTION_HANDLER  Handler))
756138287Smarks
757281075SdimACPI_EXTERNAL_RETURN_STATUS (
758210976SjkimACPI_STATUS
759210976SjkimAcpiInstallInterfaceHandler (
760281075Sdim    ACPI_INTERFACE_HANDLER  Handler))
761138287Smarks
762210976Sjkim
763138287Smarks/*
764216471Sjkim * Global Lock interfaces
765138287Smarks */
766231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
767138287SmarksACPI_STATUS
76867754SmsmithAcpiAcquireGlobalLock (
769107325Siwasaki    UINT16                  Timeout,
770231844Sjkim    UINT32                  *Handle))
77167754Smsmith
772231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
77367754SmsmithACPI_STATUS
77467754SmsmithAcpiReleaseGlobalLock (
775231844Sjkim    UINT32                  Handle))
77667754Smsmith
777216471Sjkim
778216471Sjkim/*
779228110Sjkim * Interfaces to AML mutex objects
780228110Sjkim */
781281075SdimACPI_EXTERNAL_RETURN_STATUS (
782228110SjkimACPI_STATUS
783228110SjkimAcpiAcquireMutex (
784228110Sjkim    ACPI_HANDLE             Handle,
785228110Sjkim    ACPI_STRING             Pathname,
786281075Sdim    UINT16                  Timeout))
787228110Sjkim
788281075SdimACPI_EXTERNAL_RETURN_STATUS (
789228110SjkimACPI_STATUS
790228110SjkimAcpiReleaseMutex (
791228110Sjkim    ACPI_HANDLE             Handle,
792281075Sdim    ACPI_STRING             Pathname))
793228110Sjkim
794228110Sjkim
795228110Sjkim/*
796216471Sjkim * Fixed Event interfaces
797216471Sjkim */
798231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
79967754SmsmithACPI_STATUS
80067754SmsmithAcpiEnableEvent (
801117521Snjl    UINT32                  Event,
802231844Sjkim    UINT32                  Flags))
80367754Smsmith
804231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
80567754SmsmithACPI_STATUS
80667754SmsmithAcpiDisableEvent (
807117521Snjl    UINT32                  Event,
808231844Sjkim    UINT32                  Flags))
80967754Smsmith
810231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
81167754SmsmithACPI_STATUS
81267754SmsmithAcpiClearEvent (
813231844Sjkim    UINT32                  Event))
81467754Smsmith
815231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
81667754SmsmithACPI_STATUS
81767754SmsmithAcpiGetEventStatus (
818117521Snjl    UINT32                  Event,
819231844Sjkim    ACPI_EVENT_STATUS       *EventStatus))
82067754Smsmith
821193267Sjkim
822193267Sjkim/*
823216471Sjkim * General Purpose Event (GPE) Interfaces
824193267Sjkim */
825231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
826117521SnjlACPI_STATUS
827216471SjkimAcpiUpdateAllGpes (
828231844Sjkim    void))
829129684Snjl
830231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
831129684SnjlACPI_STATUS
832117521SnjlAcpiEnableGpe (
833117521Snjl    ACPI_HANDLE             GpeDevice,
834231844Sjkim    UINT32                  GpeNumber))
835117521Snjl
836231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
837117521SnjlACPI_STATUS
838117521SnjlAcpiDisableGpe (
839117521Snjl    ACPI_HANDLE             GpeDevice,
840231844Sjkim    UINT32                  GpeNumber))
841117521Snjl
842231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
843117521SnjlACPI_STATUS
844117521SnjlAcpiClearGpe (
845117521Snjl    ACPI_HANDLE             GpeDevice,
846231844Sjkim    UINT32                  GpeNumber))
847117521Snjl
848231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
849117521SnjlACPI_STATUS
850216471SjkimAcpiSetGpe (
851209746Sjkim    ACPI_HANDLE             GpeDevice,
852209746Sjkim    UINT32                  GpeNumber,
853231844Sjkim    UINT8                   Action))
854209746Sjkim
855231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
856209746SjkimACPI_STATUS
857216471SjkimAcpiFinishGpe (
858216471Sjkim    ACPI_HANDLE             GpeDevice,
859231844Sjkim    UINT32                  GpeNumber))
860216471Sjkim
861231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
862216471SjkimACPI_STATUS
863281075SdimAcpiMarkGpeForWake (
864281075Sdim    ACPI_HANDLE             GpeDevice,
865281075Sdim    UINT32                  GpeNumber))
866281075Sdim
867281075SdimACPI_HW_DEPENDENT_RETURN_STATUS (
868281075SdimACPI_STATUS
869216471SjkimAcpiSetupGpeForWake (
870216471Sjkim    ACPI_HANDLE             ParentDevice,
871216471Sjkim    ACPI_HANDLE             GpeDevice,
872231844Sjkim    UINT32                  GpeNumber))
873216471Sjkim
874231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
875216471SjkimACPI_STATUS
876216471SjkimAcpiSetGpeWakeMask (
877216471Sjkim    ACPI_HANDLE             GpeDevice,
878216471Sjkim    UINT32                  GpeNumber,
879231844Sjkim    UINT8                   Action))
880216471Sjkim
881231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
882216471SjkimACPI_STATUS
883117521SnjlAcpiGetGpeStatus (
884117521Snjl    ACPI_HANDLE             GpeDevice,
885117521Snjl    UINT32                  GpeNumber,
886231844Sjkim    ACPI_EVENT_STATUS       *EventStatus))
887117521Snjl
888231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
889117521SnjlACPI_STATUS
890193267SjkimAcpiDisableAllGpes (
891231844Sjkim    void))
892193267Sjkim
893231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
894193267SjkimACPI_STATUS
895193267SjkimAcpiEnableAllRuntimeGpes (
896231844Sjkim    void))
897193267Sjkim
898231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
899193267SjkimACPI_STATUS
900281075SdimAcpiEnableAllWakeupGpes (
901281075Sdim    void))
902281075Sdim
903281075SdimACPI_HW_DEPENDENT_RETURN_STATUS (
904281075SdimACPI_STATUS
905193267SjkimAcpiGetGpeDevice (
906193267Sjkim    UINT32                  GpeIndex,
907231844Sjkim    ACPI_HANDLE             *GpeDevice))
908193267Sjkim
909231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
910193267SjkimACPI_STATUS
911117521SnjlAcpiInstallGpeBlock (
912117521Snjl    ACPI_HANDLE             GpeDevice,
913117521Snjl    ACPI_GENERIC_ADDRESS    *GpeBlockAddress,
914117521Snjl    UINT32                  RegisterCount,
915231844Sjkim    UINT32                  InterruptNumber))
916117521Snjl
917231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
918117521SnjlACPI_STATUS
919117521SnjlAcpiRemoveGpeBlock (
920231844Sjkim    ACPI_HANDLE             GpeDevice))
921117521Snjl
922117521Snjl
92367754Smsmith/*
92467754Smsmith * Resource interfaces
92567754Smsmith */
926114237Snjltypedef
927114237SnjlACPI_STATUS (*ACPI_WALK_RESOURCE_CALLBACK) (
928114237Snjl    ACPI_RESOURCE           *Resource,
929114237Snjl    void                    *Context);
930114237Snjl
931281075SdimACPI_EXTERNAL_RETURN_STATUS (
932167802SjkimACPI_STATUS
933167802SjkimAcpiGetVendorResource (
934207344Sjkim    ACPI_HANDLE             Device,
935167802Sjkim    char                    *Name,
936167802Sjkim    ACPI_VENDOR_UUID        *Uuid,
937281075Sdim    ACPI_BUFFER             *RetBuffer))
938114237Snjl
939281075SdimACPI_EXTERNAL_RETURN_STATUS (
94067754SmsmithACPI_STATUS
941207344SjkimAcpiGetCurrentResources (
942207344Sjkim    ACPI_HANDLE             Device,
943281075Sdim    ACPI_BUFFER             *RetBuffer))
94467754Smsmith
945281075SdimACPI_EXTERNAL_RETURN_STATUS (
94667754SmsmithACPI_STATUS
947207344SjkimAcpiGetPossibleResources (
948207344Sjkim    ACPI_HANDLE             Device,
949281075Sdim    ACPI_BUFFER             *RetBuffer))
95067754Smsmith
951281075SdimACPI_EXTERNAL_RETURN_STATUS (
95267754SmsmithACPI_STATUS
953228110SjkimAcpiGetEventResources (
954228110Sjkim    ACPI_HANDLE             DeviceHandle,
955281075Sdim    ACPI_BUFFER             *RetBuffer))
956228110Sjkim
957281075SdimACPI_EXTERNAL_RETURN_STATUS (
958228110SjkimACPI_STATUS
959245582SjkimAcpiWalkResourceBuffer (
960245582Sjkim    ACPI_BUFFER                 *Buffer,
961245582Sjkim    ACPI_WALK_RESOURCE_CALLBACK UserFunction,
962281075Sdim    void                        *Context))
963245582Sjkim
964281075SdimACPI_EXTERNAL_RETURN_STATUS (
965245582SjkimACPI_STATUS
966114237SnjlAcpiWalkResources (
967207344Sjkim    ACPI_HANDLE                 Device,
968167802Sjkim    char                        *Name,
969167802Sjkim    ACPI_WALK_RESOURCE_CALLBACK UserFunction,
970281075Sdim    void                        *Context))
971114237Snjl
972281075SdimACPI_EXTERNAL_RETURN_STATUS (
973114237SnjlACPI_STATUS
97467754SmsmithAcpiSetCurrentResources (
975207344Sjkim    ACPI_HANDLE             Device,
976281075Sdim    ACPI_BUFFER             *InBuffer))
97767754Smsmith
978281075SdimACPI_EXTERNAL_RETURN_STATUS (
97967754SmsmithACPI_STATUS
980207344SjkimAcpiGetIrqRoutingTable (
981207344Sjkim    ACPI_HANDLE             Device,
982281075Sdim    ACPI_BUFFER             *RetBuffer))
98367754Smsmith
984281075SdimACPI_EXTERNAL_RETURN_STATUS (
985114237SnjlACPI_STATUS
986114237SnjlAcpiResourceToAddress64 (
987114237Snjl    ACPI_RESOURCE           *Resource,
988281075Sdim    ACPI_RESOURCE_ADDRESS64 *Out))
98967754Smsmith
990281075SdimACPI_EXTERNAL_RETURN_STATUS (
991228110SjkimACPI_STATUS
992228110SjkimAcpiBufferToResource (
993228110Sjkim    UINT8                   *AmlBuffer,
994228110Sjkim    UINT16                  AmlBufferLength,
995281075Sdim    ACPI_RESOURCE           **ResourcePtr))
996193267Sjkim
997228110Sjkim
99867754Smsmith/*
99967754Smsmith * Hardware (ACPI device) interfaces
100067754Smsmith */
1001281075SdimACPI_EXTERNAL_RETURN_STATUS (
100267754SmsmithACPI_STATUS
1003193267SjkimAcpiReset (
1004281075Sdim    void))
1005193267Sjkim
1006281075SdimACPI_EXTERNAL_RETURN_STATUS (
1007193267SjkimACPI_STATUS
1008193267SjkimAcpiRead (
1009197104Sjkim    UINT64                  *Value,
1010281075Sdim    ACPI_GENERIC_ADDRESS    *Reg))
1011193267Sjkim
1012281075SdimACPI_EXTERNAL_RETURN_STATUS (
1013193267SjkimACPI_STATUS
1014193267SjkimAcpiWrite (
1015197104Sjkim    UINT64                  Value,
1016281075Sdim    ACPI_GENERIC_ADDRESS    *Reg))
1017193267Sjkim
1018231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
1019193267SjkimACPI_STATUS
1020193267SjkimAcpiReadBitRegister (
102199679Siwasaki    UINT32                  RegisterId,
1022231844Sjkim    UINT32                  *ReturnValue))
102399679Siwasaki
1024231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
102599679SiwasakiACPI_STATUS
1026193267SjkimAcpiWriteBitRegister (
102799679Siwasaki    UINT32                  RegisterId,
1028231844Sjkim    UINT32                  Value))
102999679Siwasaki
1030231844Sjkim
1031231844Sjkim/*
1032231844Sjkim * Sleep/Wake interfaces
1033231844Sjkim */
1034281075SdimACPI_EXTERNAL_RETURN_STATUS (
103599679SiwasakiACPI_STATUS
103699679SiwasakiAcpiGetSleepTypeData (
103799679Siwasaki    UINT8                   SleepState,
103899679Siwasaki    UINT8                   *Slp_TypA,
1039281075Sdim    UINT8                   *Slp_TypB))
104087031Smsmith
1041281075SdimACPI_EXTERNAL_RETURN_STATUS (
104267754SmsmithACPI_STATUS
104387031SmsmithAcpiEnterSleepStatePrep (
1044281075Sdim    UINT8                   SleepState))
104587031Smsmith
1046281075SdimACPI_EXTERNAL_RETURN_STATUS (
104787031SmsmithACPI_STATUS
104871867SmsmithAcpiEnterSleepState (
1049281075Sdim    UINT8                   SleepState))
105071867Smsmith
1051231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
105271867SmsmithACPI_STATUS
1053114237SnjlAcpiEnterSleepStateS4bios (
1054231844Sjkim    void))
1055114237Snjl
1056281075SdimACPI_EXTERNAL_RETURN_STATUS (
1057114237SnjlACPI_STATUS
1058231844SjkimAcpiLeaveSleepStatePrep (
1059281075Sdim    UINT8                   SleepState))
1060231844Sjkim
1061281075SdimACPI_EXTERNAL_RETURN_STATUS (
1062231844SjkimACPI_STATUS
106382367SmsmithAcpiLeaveSleepState (
1064281075Sdim    UINT8                   SleepState))
1065231844Sjkim
1066231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
1067193267SjkimACPI_STATUS
1068193267SjkimAcpiSetFirmwareWakingVector (
1069231844Sjkim    UINT32                  PhysicalAddress))
107067754Smsmith
1071193267Sjkim#if ACPI_MACHINE_WIDTH == 64
1072231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
1073193267SjkimACPI_STATUS
1074193267SjkimAcpiSetFirmwareWakingVector64 (
1075231844Sjkim    UINT64                  PhysicalAddress))
1076193267Sjkim#endif
107799679Siwasaki
1078193267Sjkim
1079193267Sjkim/*
1080231844Sjkim * ACPI Timer interfaces
1081231844Sjkim */
1082231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
1083231844SjkimACPI_STATUS
1084231844SjkimAcpiGetTimerResolution (
1085231844Sjkim    UINT32                  *Resolution))
1086231844Sjkim
1087231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
1088231844SjkimACPI_STATUS
1089231844SjkimAcpiGetTimer (
1090231844Sjkim    UINT32                  *Ticks))
1091231844Sjkim
1092231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
1093231844SjkimACPI_STATUS
1094231844SjkimAcpiGetTimerDuration (
1095231844Sjkim    UINT32                  StartTicks,
1096231844Sjkim    UINT32                  EndTicks,
1097231844Sjkim    UINT32                  *TimeElapsed))
1098231844Sjkim
1099231844Sjkim
1100231844Sjkim/*
1101193267Sjkim * Error/Warning output
1102193267Sjkim */
1103281075SdimACPI_MSG_DEPENDENT_RETURN_VOID (
1104281075SdimACPI_PRINTF_LIKE(3)
1105193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE
1106193267SjkimAcpiError (
1107193267Sjkim    const char              *ModuleName,
1108193267Sjkim    UINT32                  LineNumber,
1109193267Sjkim    const char              *Format,
1110281075Sdim    ...))
1111193267Sjkim
1112281075SdimACPI_MSG_DEPENDENT_RETURN_VOID (
1113281075SdimACPI_PRINTF_LIKE(4)
1114193267Sjkimvoid  ACPI_INTERNAL_VAR_XFACE
1115193267SjkimAcpiException (
1116193267Sjkim    const char              *ModuleName,
1117193267Sjkim    UINT32                  LineNumber,
1118193267Sjkim    ACPI_STATUS             Status,
1119193267Sjkim    const char              *Format,
1120281075Sdim    ...))
1121193267Sjkim
1122281075SdimACPI_MSG_DEPENDENT_RETURN_VOID (
1123281075SdimACPI_PRINTF_LIKE(3)
1124193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE
1125193267SjkimAcpiWarning (
1126193267Sjkim    const char              *ModuleName,
1127193267Sjkim    UINT32                  LineNumber,
1128193267Sjkim    const char              *Format,
1129281075Sdim    ...))
1130193267Sjkim
1131281075SdimACPI_MSG_DEPENDENT_RETURN_VOID (
1132281075SdimACPI_PRINTF_LIKE(3)
1133193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE
1134193267SjkimAcpiInfo (
1135193267Sjkim    const char              *ModuleName,
1136193267Sjkim    UINT32                  LineNumber,
1137193267Sjkim    const char              *Format,
1138281075Sdim    ...))
1139193267Sjkim
1140281075SdimACPI_MSG_DEPENDENT_RETURN_VOID (
1141281075SdimACPI_PRINTF_LIKE(3)
1142238381Sjkimvoid ACPI_INTERNAL_VAR_XFACE
1143238381SjkimAcpiBiosError (
1144238381Sjkim    const char              *ModuleName,
1145238381Sjkim    UINT32                  LineNumber,
1146238381Sjkim    const char              *Format,
1147281075Sdim    ...))
1148193267Sjkim
1149281075SdimACPI_MSG_DEPENDENT_RETURN_VOID (
1150281075SdimACPI_PRINTF_LIKE(3)
1151238381Sjkimvoid ACPI_INTERNAL_VAR_XFACE
1152238381SjkimAcpiBiosWarning (
1153238381Sjkim    const char              *ModuleName,
1154238381Sjkim    UINT32                  LineNumber,
1155238381Sjkim    const char              *Format,
1156281075Sdim    ...))
1157238381Sjkim
1158238381Sjkim
1159193267Sjkim/*
1160193267Sjkim * Debug output
1161193267Sjkim */
1162281075SdimACPI_DBG_DEPENDENT_RETURN_VOID (
1163281075SdimACPI_PRINTF_LIKE(6)
1164193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE
1165193267SjkimAcpiDebugPrint (
1166193267Sjkim    UINT32                  RequestedDebugLevel,
1167193267Sjkim    UINT32                  LineNumber,
1168193267Sjkim    const char              *FunctionName,
1169193267Sjkim    const char              *ModuleName,
1170193267Sjkim    UINT32                  ComponentId,
1171193267Sjkim    const char              *Format,
1172281075Sdim    ...))
1173193267Sjkim
1174281075SdimACPI_DBG_DEPENDENT_RETURN_VOID (
1175281075SdimACPI_PRINTF_LIKE(6)
1176193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE
1177193267SjkimAcpiDebugPrintRaw (
1178193267Sjkim    UINT32                  RequestedDebugLevel,
1179193267Sjkim    UINT32                  LineNumber,
1180193267Sjkim    const char              *FunctionName,
1181193267Sjkim    const char              *ModuleName,
1182193267Sjkim    UINT32                  ComponentId,
1183193267Sjkim    const char              *Format,
1184281075Sdim    ...))
1185193267Sjkim
1186281075SdimACPI_APP_DEPENDENT_RETURN_VOID (
1187281075SdimACPI_PRINTF_LIKE(1)
1188281075Sdimvoid ACPI_INTERNAL_VAR_XFACE
1189281075SdimAcpiLogError (
1190281075Sdim    const char              *Format,
1191281075Sdim    ...))
1192281075Sdim
119367754Smsmith#endif /* __ACXFACE_H__ */
1194