acpixf.h revision 238381
167754Smsmith
267754Smsmith/******************************************************************************
367754Smsmith *
470243Smsmith * Name: acpixf.h - External interfaces to the ACPI subsystem
567754Smsmith *
667754Smsmith *****************************************************************************/
767754Smsmith
8217365Sjkim/*
9229989Sjkim * Copyright (C) 2000 - 2012, Intel Corp.
1070243Smsmith * All rights reserved.
1167754Smsmith *
12217365Sjkim * Redistribution and use in source and binary forms, with or without
13217365Sjkim * modification, are permitted provided that the following conditions
14217365Sjkim * are met:
15217365Sjkim * 1. Redistributions of source code must retain the above copyright
16217365Sjkim *    notice, this list of conditions, and the following disclaimer,
17217365Sjkim *    without modification.
18217365Sjkim * 2. Redistributions in binary form must reproduce at minimum a disclaimer
19217365Sjkim *    substantially similar to the "NO WARRANTY" disclaimer below
20217365Sjkim *    ("Disclaimer") and any redistribution must be conditioned upon
21217365Sjkim *    including a substantially similar Disclaimer requirement for further
22217365Sjkim *    binary redistribution.
23217365Sjkim * 3. Neither the names of the above-listed copyright holders nor the names
24217365Sjkim *    of any contributors may be used to endorse or promote products derived
25217365Sjkim *    from this software without specific prior written permission.
2667754Smsmith *
27217365Sjkim * Alternatively, this software may be distributed under the terms of the
28217365Sjkim * GNU General Public License ("GPL") version 2 as published by the Free
29217365Sjkim * Software Foundation.
3067754Smsmith *
31217365Sjkim * NO WARRANTY
32217365Sjkim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
33217365Sjkim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
34217365Sjkim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
35217365Sjkim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
36217365Sjkim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
37217365Sjkim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
38217365Sjkim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
39217365Sjkim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
40217365Sjkim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
41217365Sjkim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
42217365Sjkim * POSSIBILITY OF SUCH DAMAGES.
43217365Sjkim */
4467754Smsmith
4567754Smsmith
4667754Smsmith#ifndef __ACXFACE_H__
4767754Smsmith#define __ACXFACE_H__
4867754Smsmith
49193267Sjkim/* Current ACPICA subsystem version in YYYYMMDD format */
50193267Sjkim
51238381Sjkim#define ACPI_CA_VERSION                 0x20120711
52193267Sjkim
53231844Sjkim#include <contrib/dev/acpica/include/acconfig.h>
54193341Sjkim#include <contrib/dev/acpica/include/actypes.h>
55193341Sjkim#include <contrib/dev/acpica/include/actbl.h>
5667754Smsmith
57193267Sjkim/*
58193267Sjkim * Globals that are publically available
59193267Sjkim */
60193267Sjkimextern UINT32               AcpiCurrentGpeCount;
61193267Sjkimextern ACPI_TABLE_FADT      AcpiGbl_FADT;
62212761Sjkimextern BOOLEAN              AcpiGbl_SystemAwakeAndRunning;
63228110Sjkimextern BOOLEAN              AcpiGbl_ReducedHardware;        /* ACPI 5.0 */
6477424Smsmith
65193267Sjkim/* Runtime configuration of debug print levels */
66193267Sjkim
67193267Sjkimextern UINT32               AcpiDbgLevel;
68193267Sjkimextern UINT32               AcpiDbgLayer;
69193267Sjkim
70193267Sjkim/* ACPICA runtime options */
71193267Sjkim
72193267Sjkimextern UINT8                AcpiGbl_EnableInterpreterSlack;
73193267Sjkimextern UINT8                AcpiGbl_AllMethodsSerialized;
74193267Sjkimextern UINT8                AcpiGbl_CreateOsiMethod;
75193267Sjkimextern UINT8                AcpiGbl_UseDefaultRegisterWidths;
76193267Sjkimextern ACPI_NAME            AcpiGbl_TraceMethodName;
77193267Sjkimextern UINT32               AcpiGbl_TraceFlags;
78204773Sjkimextern UINT8                AcpiGbl_EnableAmlDebugObject;
79206117Sjkimextern UINT8                AcpiGbl_CopyDsdtLocally;
80209746Sjkimextern UINT8                AcpiGbl_TruncateIoAddresses;
81228110Sjkimextern UINT8                AcpiGbl_DisableAutoRepair;
82193267Sjkim
83193267Sjkim
84151937Sjkim/*
85231844Sjkim * Hardware-reduced prototypes. All interfaces that use these macros will
86231844Sjkim * be configured out of the ACPICA build if the ACPI_REDUCED_HARDWARE flag
87231844Sjkim * is set to TRUE.
88231844Sjkim */
89231844Sjkim#if (!ACPI_REDUCED_HARDWARE)
90231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_STATUS(Prototype) \
91231844Sjkim    Prototype;
92231844Sjkim
93231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_OK(Prototype) \
94231844Sjkim    Prototype;
95231844Sjkim
96231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_VOID(Prototype) \
97231844Sjkim    Prototype;
98231844Sjkim
99231844Sjkim#else
100231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_STATUS(Prototype) \
101231844Sjkim    static ACPI_INLINE Prototype {return(AE_NOT_CONFIGURED);}
102231844Sjkim
103231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_OK(Prototype) \
104231844Sjkim    static ACPI_INLINE Prototype {return(AE_OK);}
105231844Sjkim
106231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_VOID(Prototype) \
107231844Sjkim    static ACPI_INLINE Prototype {}
108231844Sjkim
109231844Sjkim#endif /* !ACPI_REDUCED_HARDWARE */
110231844Sjkim
111231844Sjkim
112231844Sjkim/*
113216471Sjkim * Initialization
11467754Smsmith */
11567754SmsmithACPI_STATUS
116167802SjkimAcpiInitializeTables (
117167802Sjkim    ACPI_TABLE_DESC         *InitialStorage,
118167802Sjkim    UINT32                  InitialTableCount,
119167802Sjkim    BOOLEAN                 AllowResize);
120167802Sjkim
121167802SjkimACPI_STATUS
12267754SmsmithAcpiInitializeSubsystem (
12367754Smsmith    void);
12467754Smsmith
12567754SmsmithACPI_STATUS
12667754SmsmithAcpiEnableSubsystem (
12767754Smsmith    UINT32                  Flags);
12867754Smsmith
12967754SmsmithACPI_STATUS
130100966SiwasakiAcpiInitializeObjects (
131100966Siwasaki    UINT32                  Flags);
132100966Siwasaki
133100966SiwasakiACPI_STATUS
13467754SmsmithAcpiTerminate (
13567754Smsmith    void);
13667754Smsmith
13780062Smsmith
138216471Sjkim/*
139216471Sjkim * Miscellaneous global interfaces
140216471Sjkim */
141231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
14280062SmsmithACPI_STATUS
14367754SmsmithAcpiEnable (
144231844Sjkim    void))
14567754Smsmith
146231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
14767754SmsmithACPI_STATUS
14867754SmsmithAcpiDisable (
149231844Sjkim    void))
15067754Smsmith
15167754SmsmithACPI_STATUS
152216471SjkimAcpiSubsystemStatus (
153216471Sjkim    void);
154216471Sjkim
155216471SjkimACPI_STATUS
15680062SmsmithAcpiGetSystemInfo (
15767754Smsmith    ACPI_BUFFER             *RetBuffer);
15867754Smsmith
159193267SjkimACPI_STATUS
160193267SjkimAcpiGetStatistics (
161193267Sjkim    ACPI_STATISTICS         *Stats);
162193267Sjkim
16380062Smsmithconst char *
16467754SmsmithAcpiFormatException (
16580062Smsmith    ACPI_STATUS             Exception);
16667754Smsmith
16787031SmsmithACPI_STATUS
16887031SmsmithAcpiPurgeCachedObjects (
16987031Smsmith    void);
17067754Smsmith
171210976SjkimACPI_STATUS
172210976SjkimAcpiInstallInterface (
173210976Sjkim    ACPI_STRING             InterfaceName);
17487031Smsmith
175210976SjkimACPI_STATUS
176210976SjkimAcpiRemoveInterface (
177210976Sjkim    ACPI_STRING             InterfaceName);
178210976Sjkim
179229989SjkimUINT32
180229989SjkimAcpiCheckAddressRange (
181229989Sjkim    ACPI_ADR_SPACE_TYPE     SpaceId,
182229989Sjkim    ACPI_PHYSICAL_ADDRESS   Address,
183229989Sjkim    ACPI_SIZE               Length,
184229989Sjkim    BOOLEAN                 Warn);
185216471Sjkim
186229989Sjkim
18767754Smsmith/*
188210976Sjkim * ACPI Memory management
18977424Smsmith */
19077424Smsmithvoid *
19177424SmsmithAcpiAllocate (
19277424Smsmith    UINT32                  Size);
19377424Smsmith
19477424Smsmithvoid *
19577424SmsmithAcpiCallocate (
19677424Smsmith    UINT32                  Size);
19777424Smsmith
19877424Smsmithvoid
19977424SmsmithAcpiFree (
20077424Smsmith    void                    *Address);
20177424Smsmith
20277424Smsmith
20377424Smsmith/*
204238381Sjkim * ACPI table load/unload interfaces
205238381Sjkim */
206238381SjkimACPI_STATUS
207238381SjkimAcpiLoadTable (
208238381Sjkim    ACPI_TABLE_HEADER       *Table);
209238381Sjkim
210238381SjkimACPI_STATUS
211238381SjkimAcpiUnloadParentTable (
212238381Sjkim    ACPI_HANDLE             Object);
213238381Sjkim
214238381SjkimACPI_STATUS
215238381SjkimAcpiLoadTables (
216238381Sjkim    void);
217238381Sjkim
218238381Sjkim
219238381Sjkim/*
22067754Smsmith * ACPI table manipulation interfaces
22167754Smsmith */
22267754SmsmithACPI_STATUS
223167802SjkimAcpiReallocateRootTable (
224167802Sjkim    void);
225167802Sjkim
226167802SjkimACPI_STATUS
22767754SmsmithAcpiFindRootPointer (
228193267Sjkim    ACPI_SIZE               *RsdpAddress);
22967754Smsmith
23067754SmsmithACPI_STATUS
23167754SmsmithAcpiGetTableHeader (
232167802Sjkim    ACPI_STRING             Signature,
233193267Sjkim    UINT32                  Instance,
23467754Smsmith    ACPI_TABLE_HEADER       *OutTableHeader);
23567754Smsmith
23667754SmsmithACPI_STATUS
23767754SmsmithAcpiGetTable (
238167802Sjkim    ACPI_STRING             Signature,
239193267Sjkim    UINT32                  Instance,
240167802Sjkim    ACPI_TABLE_HEADER       **OutTable);
24167754Smsmith
24278986SmsmithACPI_STATUS
243167802SjkimAcpiGetTableByIndex (
244193267Sjkim    UINT32                  TableIndex,
245167802Sjkim    ACPI_TABLE_HEADER       **OutTable);
24667754Smsmith
247193267SjkimACPI_STATUS
248193267SjkimAcpiInstallTableHandler (
249193267Sjkim    ACPI_TABLE_HANDLER      Handler,
250193267Sjkim    void                    *Context);
25178986Smsmith
252193267SjkimACPI_STATUS
253193267SjkimAcpiRemoveTableHandler (
254193267Sjkim    ACPI_TABLE_HANDLER      Handler);
255193267Sjkim
256193267Sjkim
25767754Smsmith/*
25867754Smsmith * Namespace and name interfaces
25967754Smsmith */
26067754SmsmithACPI_STATUS
26167754SmsmithAcpiWalkNamespace (
26267754Smsmith    ACPI_OBJECT_TYPE        Type,
26367754Smsmith    ACPI_HANDLE             StartObject,
26467754Smsmith    UINT32                  MaxDepth,
265199337Sjkim    ACPI_WALK_CALLBACK      PreOrderVisit,
266199337Sjkim    ACPI_WALK_CALLBACK      PostOrderVisit,
26767754Smsmith    void                    *Context,
268114237Snjl    void                    **ReturnValue);
26967754Smsmith
27067754SmsmithACPI_STATUS
27167754SmsmithAcpiGetDevices (
272114237Snjl    char                    *HID,
27377424Smsmith    ACPI_WALK_CALLBACK      UserFunction,
27467754Smsmith    void                    *Context,
27567754Smsmith    void                    **ReturnValue);
27667754Smsmith
27767754SmsmithACPI_STATUS
27867754SmsmithAcpiGetName (
279207344Sjkim    ACPI_HANDLE             Object,
28067754Smsmith    UINT32                  NameType,
28167754Smsmith    ACPI_BUFFER             *RetPathPtr);
28267754Smsmith
28367754SmsmithACPI_STATUS
28467754SmsmithAcpiGetHandle (
28567754Smsmith    ACPI_HANDLE             Parent,
28667754Smsmith    ACPI_STRING             Pathname,
28767754Smsmith    ACPI_HANDLE             *RetHandle);
28867754Smsmith
28987031SmsmithACPI_STATUS
29087031SmsmithAcpiAttachData (
291207344Sjkim    ACPI_HANDLE             Object,
29287031Smsmith    ACPI_OBJECT_HANDLER     Handler,
29387031Smsmith    void                    *Data);
29467754Smsmith
29587031SmsmithACPI_STATUS
29687031SmsmithAcpiDetachData (
297207344Sjkim    ACPI_HANDLE             Object,
29887031Smsmith    ACPI_OBJECT_HANDLER     Handler);
29987031Smsmith
30087031SmsmithACPI_STATUS
30187031SmsmithAcpiGetData (
302207344Sjkim    ACPI_HANDLE             Object,
30387031Smsmith    ACPI_OBJECT_HANDLER     Handler,
30487031Smsmith    void                    **Data);
30587031Smsmith
306151937SjkimACPI_STATUS
307151937SjkimAcpiDebugTrace (
308151937Sjkim    char                    *Name,
309151937Sjkim    UINT32                  DebugLevel,
310151937Sjkim    UINT32                  DebugLayer,
311151937Sjkim    UINT32                  Flags);
31287031Smsmith
313151937Sjkim
31467754Smsmith/*
31567754Smsmith * Object manipulation and enumeration
31667754Smsmith */
31767754SmsmithACPI_STATUS
31867754SmsmithAcpiEvaluateObject (
31967754Smsmith    ACPI_HANDLE             Object,
32067754Smsmith    ACPI_STRING             Pathname,
32167754Smsmith    ACPI_OBJECT_LIST        *ParameterObjects,
32267754Smsmith    ACPI_BUFFER             *ReturnObjectBuffer);
32367754Smsmith
32467754SmsmithACPI_STATUS
32599679SiwasakiAcpiEvaluateObjectTyped (
32699679Siwasaki    ACPI_HANDLE             Object,
32799679Siwasaki    ACPI_STRING             Pathname,
32899679Siwasaki    ACPI_OBJECT_LIST        *ExternalParams,
32999679Siwasaki    ACPI_BUFFER             *ReturnBuffer,
33099679Siwasaki    ACPI_OBJECT_TYPE        ReturnType);
33199679Siwasaki
33299679SiwasakiACPI_STATUS
33367754SmsmithAcpiGetObjectInfo (
334207344Sjkim    ACPI_HANDLE             Object,
335197104Sjkim    ACPI_DEVICE_INFO        **ReturnBuffer);
33667754Smsmith
33767754SmsmithACPI_STATUS
338193267SjkimAcpiInstallMethod (
339193267Sjkim    UINT8                   *Buffer);
340193267Sjkim
341193267SjkimACPI_STATUS
34267754SmsmithAcpiGetNextObject (
34367754Smsmith    ACPI_OBJECT_TYPE        Type,
34467754Smsmith    ACPI_HANDLE             Parent,
34567754Smsmith    ACPI_HANDLE             Child,
34667754Smsmith    ACPI_HANDLE             *OutHandle);
34767754Smsmith
34867754SmsmithACPI_STATUS
34967754SmsmithAcpiGetType (
35067754Smsmith    ACPI_HANDLE             Object,
35167754Smsmith    ACPI_OBJECT_TYPE        *OutType);
35267754Smsmith
35367754SmsmithACPI_STATUS
35467754SmsmithAcpiGetParent (
35567754Smsmith    ACPI_HANDLE             Object,
35667754Smsmith    ACPI_HANDLE             *OutHandle);
35767754Smsmith
35867754Smsmith
35967754Smsmith/*
360193267Sjkim * Handler interfaces
36167754Smsmith */
36267754SmsmithACPI_STATUS
363193267SjkimAcpiInstallInitializationHandler (
364193267Sjkim    ACPI_INIT_HANDLER       Handler,
365193267Sjkim    UINT32                  Function);
366193267Sjkim
367231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
368193267SjkimACPI_STATUS
369216471SjkimAcpiInstallGlobalEventHandler (
370216471Sjkim    ACPI_GBL_EVENT_HANDLER  Handler,
371231844Sjkim    void                    *Context))
372216471Sjkim
373231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
374216471SjkimACPI_STATUS
37567754SmsmithAcpiInstallFixedEventHandler (
37667754Smsmith    UINT32                  AcpiEvent,
37777424Smsmith    ACPI_EVENT_HANDLER      Handler,
378231844Sjkim    void                    *Context))
37967754Smsmith
380231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
38167754SmsmithACPI_STATUS
38267754SmsmithAcpiRemoveFixedEventHandler (
38367754Smsmith    UINT32                  AcpiEvent,
384231844Sjkim    ACPI_EVENT_HANDLER      Handler))
38567754Smsmith
386231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
38767754SmsmithACPI_STATUS
388216471SjkimAcpiInstallGpeHandler (
389216471Sjkim    ACPI_HANDLE             GpeDevice,
390216471Sjkim    UINT32                  GpeNumber,
391216471Sjkim    UINT32                  Type,
392216471Sjkim    ACPI_GPE_HANDLER        Address,
393231844Sjkim    void                    *Context))
394216471Sjkim
395231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
396216471SjkimACPI_STATUS
397216471SjkimAcpiRemoveGpeHandler (
398216471Sjkim    ACPI_HANDLE             GpeDevice,
399216471Sjkim    UINT32                  GpeNumber,
400231844Sjkim    ACPI_GPE_HANDLER        Address))
401216471Sjkim
402216471SjkimACPI_STATUS
40367754SmsmithAcpiInstallNotifyHandler (
40467754Smsmith    ACPI_HANDLE             Device,
40567754Smsmith    UINT32                  HandlerType,
40677424Smsmith    ACPI_NOTIFY_HANDLER     Handler,
40767754Smsmith    void                    *Context);
40867754Smsmith
40967754SmsmithACPI_STATUS
41067754SmsmithAcpiRemoveNotifyHandler (
41167754Smsmith    ACPI_HANDLE             Device,
41267754Smsmith    UINT32                  HandlerType,
41377424Smsmith    ACPI_NOTIFY_HANDLER     Handler);
41467754Smsmith
41567754SmsmithACPI_STATUS
41667754SmsmithAcpiInstallAddressSpaceHandler (
41767754Smsmith    ACPI_HANDLE             Device,
41877424Smsmith    ACPI_ADR_SPACE_TYPE     SpaceId,
41977424Smsmith    ACPI_ADR_SPACE_HANDLER  Handler,
42077424Smsmith    ACPI_ADR_SPACE_SETUP    Setup,
42167754Smsmith    void                    *Context);
42267754Smsmith
42367754SmsmithACPI_STATUS
42467754SmsmithAcpiRemoveAddressSpaceHandler (
42567754Smsmith    ACPI_HANDLE             Device,
42677424Smsmith    ACPI_ADR_SPACE_TYPE     SpaceId,
42777424Smsmith    ACPI_ADR_SPACE_HANDLER  Handler);
42867754Smsmith
42967754SmsmithACPI_STATUS
430138287SmarksAcpiInstallExceptionHandler (
431138287Smarks    ACPI_EXCEPTION_HANDLER  Handler);
432138287Smarks
433210976SjkimACPI_STATUS
434210976SjkimAcpiInstallInterfaceHandler (
435210976Sjkim    ACPI_INTERFACE_HANDLER  Handler);
436138287Smarks
437210976Sjkim
438138287Smarks/*
439216471Sjkim * Global Lock interfaces
440138287Smarks */
441231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
442138287SmarksACPI_STATUS
44367754SmsmithAcpiAcquireGlobalLock (
444107325Siwasaki    UINT16                  Timeout,
445231844Sjkim    UINT32                  *Handle))
44667754Smsmith
447231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
44867754SmsmithACPI_STATUS
44967754SmsmithAcpiReleaseGlobalLock (
450231844Sjkim    UINT32                  Handle))
45167754Smsmith
452216471Sjkim
453216471Sjkim/*
454228110Sjkim * Interfaces to AML mutex objects
455228110Sjkim */
456228110SjkimACPI_STATUS
457228110SjkimAcpiAcquireMutex (
458228110Sjkim    ACPI_HANDLE             Handle,
459228110Sjkim    ACPI_STRING             Pathname,
460228110Sjkim    UINT16                  Timeout);
461228110Sjkim
462228110SjkimACPI_STATUS
463228110SjkimAcpiReleaseMutex (
464228110Sjkim    ACPI_HANDLE             Handle,
465228110Sjkim    ACPI_STRING             Pathname);
466228110Sjkim
467228110Sjkim
468228110Sjkim/*
469216471Sjkim * Fixed Event interfaces
470216471Sjkim */
471231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
47267754SmsmithACPI_STATUS
47367754SmsmithAcpiEnableEvent (
474117521Snjl    UINT32                  Event,
475231844Sjkim    UINT32                  Flags))
47667754Smsmith
477231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
47867754SmsmithACPI_STATUS
47967754SmsmithAcpiDisableEvent (
480117521Snjl    UINT32                  Event,
481231844Sjkim    UINT32                  Flags))
48267754Smsmith
483231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
48467754SmsmithACPI_STATUS
48567754SmsmithAcpiClearEvent (
486231844Sjkim    UINT32                  Event))
48767754Smsmith
488231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
48967754SmsmithACPI_STATUS
49067754SmsmithAcpiGetEventStatus (
491117521Snjl    UINT32                  Event,
492231844Sjkim    ACPI_EVENT_STATUS       *EventStatus))
49367754Smsmith
494193267Sjkim
495193267Sjkim/*
496216471Sjkim * General Purpose Event (GPE) Interfaces
497193267Sjkim */
498231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
499117521SnjlACPI_STATUS
500216471SjkimAcpiUpdateAllGpes (
501231844Sjkim    void))
502129684Snjl
503231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
504129684SnjlACPI_STATUS
505117521SnjlAcpiEnableGpe (
506117521Snjl    ACPI_HANDLE             GpeDevice,
507231844Sjkim    UINT32                  GpeNumber))
508117521Snjl
509231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
510117521SnjlACPI_STATUS
511117521SnjlAcpiDisableGpe (
512117521Snjl    ACPI_HANDLE             GpeDevice,
513231844Sjkim    UINT32                  GpeNumber))
514117521Snjl
515231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
516117521SnjlACPI_STATUS
517117521SnjlAcpiClearGpe (
518117521Snjl    ACPI_HANDLE             GpeDevice,
519231844Sjkim    UINT32                  GpeNumber))
520117521Snjl
521231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
522117521SnjlACPI_STATUS
523216471SjkimAcpiSetGpe (
524209746Sjkim    ACPI_HANDLE             GpeDevice,
525209746Sjkim    UINT32                  GpeNumber,
526231844Sjkim    UINT8                   Action))
527209746Sjkim
528231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
529209746SjkimACPI_STATUS
530216471SjkimAcpiFinishGpe (
531216471Sjkim    ACPI_HANDLE             GpeDevice,
532231844Sjkim    UINT32                  GpeNumber))
533216471Sjkim
534231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
535216471SjkimACPI_STATUS
536216471SjkimAcpiSetupGpeForWake (
537216471Sjkim    ACPI_HANDLE             ParentDevice,
538216471Sjkim    ACPI_HANDLE             GpeDevice,
539231844Sjkim    UINT32                  GpeNumber))
540216471Sjkim
541231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
542216471SjkimACPI_STATUS
543216471SjkimAcpiSetGpeWakeMask (
544216471Sjkim    ACPI_HANDLE             GpeDevice,
545216471Sjkim    UINT32                  GpeNumber,
546231844Sjkim    UINT8                   Action))
547216471Sjkim
548231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
549216471SjkimACPI_STATUS
550117521SnjlAcpiGetGpeStatus (
551117521Snjl    ACPI_HANDLE             GpeDevice,
552117521Snjl    UINT32                  GpeNumber,
553231844Sjkim    ACPI_EVENT_STATUS       *EventStatus))
554117521Snjl
555231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
556117521SnjlACPI_STATUS
557193267SjkimAcpiDisableAllGpes (
558231844Sjkim    void))
559193267Sjkim
560231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
561193267SjkimACPI_STATUS
562193267SjkimAcpiEnableAllRuntimeGpes (
563231844Sjkim    void))
564193267Sjkim
565231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
566193267SjkimACPI_STATUS
567193267SjkimAcpiGetGpeDevice (
568193267Sjkim    UINT32                  GpeIndex,
569231844Sjkim    ACPI_HANDLE             *GpeDevice))
570193267Sjkim
571231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
572193267SjkimACPI_STATUS
573117521SnjlAcpiInstallGpeBlock (
574117521Snjl    ACPI_HANDLE             GpeDevice,
575117521Snjl    ACPI_GENERIC_ADDRESS    *GpeBlockAddress,
576117521Snjl    UINT32                  RegisterCount,
577231844Sjkim    UINT32                  InterruptNumber))
578117521Snjl
579231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
580117521SnjlACPI_STATUS
581117521SnjlAcpiRemoveGpeBlock (
582231844Sjkim    ACPI_HANDLE             GpeDevice))
583117521Snjl
584117521Snjl
58567754Smsmith/*
58667754Smsmith * Resource interfaces
58767754Smsmith */
588114237Snjltypedef
589114237SnjlACPI_STATUS (*ACPI_WALK_RESOURCE_CALLBACK) (
590114237Snjl    ACPI_RESOURCE           *Resource,
591114237Snjl    void                    *Context);
592114237Snjl
593167802SjkimACPI_STATUS
594167802SjkimAcpiGetVendorResource (
595207344Sjkim    ACPI_HANDLE             Device,
596167802Sjkim    char                    *Name,
597167802Sjkim    ACPI_VENDOR_UUID        *Uuid,
598167802Sjkim    ACPI_BUFFER             *RetBuffer);
599114237Snjl
60067754SmsmithACPI_STATUS
601207344SjkimAcpiGetCurrentResources (
602207344Sjkim    ACPI_HANDLE             Device,
60367754Smsmith    ACPI_BUFFER             *RetBuffer);
60467754Smsmith
60567754SmsmithACPI_STATUS
606207344SjkimAcpiGetPossibleResources (
607207344Sjkim    ACPI_HANDLE             Device,
60867754Smsmith    ACPI_BUFFER             *RetBuffer);
60967754Smsmith
61067754SmsmithACPI_STATUS
611228110SjkimAcpiGetEventResources (
612228110Sjkim    ACPI_HANDLE             DeviceHandle,
613228110Sjkim    ACPI_BUFFER             *RetBuffer);
614228110Sjkim
615228110SjkimACPI_STATUS
616114237SnjlAcpiWalkResources (
617207344Sjkim    ACPI_HANDLE                 Device,
618167802Sjkim    char                        *Name,
619167802Sjkim    ACPI_WALK_RESOURCE_CALLBACK UserFunction,
620167802Sjkim    void                        *Context);
621114237Snjl
622114237SnjlACPI_STATUS
62367754SmsmithAcpiSetCurrentResources (
624207344Sjkim    ACPI_HANDLE             Device,
62567754Smsmith    ACPI_BUFFER             *InBuffer);
62667754Smsmith
62767754SmsmithACPI_STATUS
628207344SjkimAcpiGetIrqRoutingTable (
629207344Sjkim    ACPI_HANDLE             Device,
63067754Smsmith    ACPI_BUFFER             *RetBuffer);
63167754Smsmith
632114237SnjlACPI_STATUS
633114237SnjlAcpiResourceToAddress64 (
634114237Snjl    ACPI_RESOURCE           *Resource,
635114237Snjl    ACPI_RESOURCE_ADDRESS64 *Out);
63667754Smsmith
637228110SjkimACPI_STATUS
638228110SjkimAcpiBufferToResource (
639228110Sjkim    UINT8                   *AmlBuffer,
640228110Sjkim    UINT16                  AmlBufferLength,
641228110Sjkim    ACPI_RESOURCE           **ResourcePtr);
642193267Sjkim
643228110Sjkim
64467754Smsmith/*
64567754Smsmith * Hardware (ACPI device) interfaces
64667754Smsmith */
64767754SmsmithACPI_STATUS
648193267SjkimAcpiReset (
649193267Sjkim    void);
650193267Sjkim
651193267SjkimACPI_STATUS
652193267SjkimAcpiRead (
653197104Sjkim    UINT64                  *Value,
654193267Sjkim    ACPI_GENERIC_ADDRESS    *Reg);
655193267Sjkim
656193267SjkimACPI_STATUS
657193267SjkimAcpiWrite (
658197104Sjkim    UINT64                  Value,
659193267Sjkim    ACPI_GENERIC_ADDRESS    *Reg);
660193267Sjkim
661231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
662193267SjkimACPI_STATUS
663193267SjkimAcpiReadBitRegister (
66499679Siwasaki    UINT32                  RegisterId,
665231844Sjkim    UINT32                  *ReturnValue))
66699679Siwasaki
667231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
66899679SiwasakiACPI_STATUS
669193267SjkimAcpiWriteBitRegister (
67099679Siwasaki    UINT32                  RegisterId,
671231844Sjkim    UINT32                  Value))
67299679Siwasaki
673231844Sjkim
674231844Sjkim/*
675231844Sjkim * Sleep/Wake interfaces
676231844Sjkim */
67799679SiwasakiACPI_STATUS
67899679SiwasakiAcpiGetSleepTypeData (
67999679Siwasaki    UINT8                   SleepState,
68099679Siwasaki    UINT8                   *Slp_TypA,
68199679Siwasaki    UINT8                   *Slp_TypB);
68287031Smsmith
68367754SmsmithACPI_STATUS
68487031SmsmithAcpiEnterSleepStatePrep (
68599679Siwasaki    UINT8                   SleepState);
68687031Smsmith
68787031SmsmithACPI_STATUS
68871867SmsmithAcpiEnterSleepState (
689233250Sjkim    UINT8                   SleepState,
690233250Sjkim    UINT8                   Flags);
69171867Smsmith
692231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
69371867SmsmithACPI_STATUS
694114237SnjlAcpiEnterSleepStateS4bios (
695231844Sjkim    void))
696114237Snjl
697114237SnjlACPI_STATUS
698231844SjkimAcpiLeaveSleepStatePrep (
699233250Sjkim    UINT8                   SleepState,
700233250Sjkim    UINT8                   Flags);
701231844Sjkim
702231844SjkimACPI_STATUS
70382367SmsmithAcpiLeaveSleepState (
704231844Sjkim    UINT8                   SleepState);
705231844Sjkim
706231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
707193267SjkimACPI_STATUS
708193267SjkimAcpiSetFirmwareWakingVector (
709231844Sjkim    UINT32                  PhysicalAddress))
71067754Smsmith
711193267Sjkim#if ACPI_MACHINE_WIDTH == 64
712231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
713193267SjkimACPI_STATUS
714193267SjkimAcpiSetFirmwareWakingVector64 (
715231844Sjkim    UINT64                  PhysicalAddress))
716193267Sjkim#endif
71799679Siwasaki
718193267Sjkim
719193267Sjkim/*
720231844Sjkim * ACPI Timer interfaces
721231844Sjkim */
722231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
723231844SjkimACPI_STATUS
724231844SjkimAcpiGetTimerResolution (
725231844Sjkim    UINT32                  *Resolution))
726231844Sjkim
727231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
728231844SjkimACPI_STATUS
729231844SjkimAcpiGetTimer (
730231844Sjkim    UINT32                  *Ticks))
731231844Sjkim
732231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
733231844SjkimACPI_STATUS
734231844SjkimAcpiGetTimerDuration (
735231844Sjkim    UINT32                  StartTicks,
736231844Sjkim    UINT32                  EndTicks,
737231844Sjkim    UINT32                  *TimeElapsed))
738231844Sjkim
739231844Sjkim
740231844Sjkim/*
741193267Sjkim * Error/Warning output
742193267Sjkim */
743193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE
744193267SjkimAcpiError (
745193267Sjkim    const char              *ModuleName,
746193267Sjkim    UINT32                  LineNumber,
747193267Sjkim    const char              *Format,
748193267Sjkim    ...) ACPI_PRINTF_LIKE(3);
749193267Sjkim
750193267Sjkimvoid  ACPI_INTERNAL_VAR_XFACE
751193267SjkimAcpiException (
752193267Sjkim    const char              *ModuleName,
753193267Sjkim    UINT32                  LineNumber,
754193267Sjkim    ACPI_STATUS             Status,
755193267Sjkim    const char              *Format,
756193267Sjkim    ...) ACPI_PRINTF_LIKE(4);
757193267Sjkim
758193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE
759193267SjkimAcpiWarning (
760193267Sjkim    const char              *ModuleName,
761193267Sjkim    UINT32                  LineNumber,
762193267Sjkim    const char              *Format,
763193267Sjkim    ...) ACPI_PRINTF_LIKE(3);
764193267Sjkim
765193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE
766193267SjkimAcpiInfo (
767193267Sjkim    const char              *ModuleName,
768193267Sjkim    UINT32                  LineNumber,
769193267Sjkim    const char              *Format,
770193267Sjkim    ...) ACPI_PRINTF_LIKE(3);
771193267Sjkim
772238381Sjkimvoid ACPI_INTERNAL_VAR_XFACE
773238381SjkimAcpiBiosError (
774238381Sjkim    const char              *ModuleName,
775238381Sjkim    UINT32                  LineNumber,
776238381Sjkim    const char              *Format,
777238381Sjkim    ...) ACPI_PRINTF_LIKE(3);
778193267Sjkim
779238381Sjkimvoid ACPI_INTERNAL_VAR_XFACE
780238381SjkimAcpiBiosWarning (
781238381Sjkim    const char              *ModuleName,
782238381Sjkim    UINT32                  LineNumber,
783238381Sjkim    const char              *Format,
784238381Sjkim    ...) ACPI_PRINTF_LIKE(3);
785238381Sjkim
786238381Sjkim
787193267Sjkim/*
788193267Sjkim * Debug output
789193267Sjkim */
790193267Sjkim#ifdef ACPI_DEBUG_OUTPUT
791193267Sjkim
792193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE
793193267SjkimAcpiDebugPrint (
794193267Sjkim    UINT32                  RequestedDebugLevel,
795193267Sjkim    UINT32                  LineNumber,
796193267Sjkim    const char              *FunctionName,
797193267Sjkim    const char              *ModuleName,
798193267Sjkim    UINT32                  ComponentId,
799193267Sjkim    const char              *Format,
800193267Sjkim    ...) ACPI_PRINTF_LIKE(6);
801193267Sjkim
802193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE
803193267SjkimAcpiDebugPrintRaw (
804193267Sjkim    UINT32                  RequestedDebugLevel,
805193267Sjkim    UINT32                  LineNumber,
806193267Sjkim    const char              *FunctionName,
807193267Sjkim    const char              *ModuleName,
808193267Sjkim    UINT32                  ComponentId,
809193267Sjkim    const char              *Format,
810193267Sjkim    ...) ACPI_PRINTF_LIKE(6);
811193267Sjkim#endif
812193267Sjkim
81367754Smsmith#endif /* __ACXFACE_H__ */
814