acpixf.h revision 239340
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
51239340Sjkim#define ACPI_CA_VERSION                 0x20120816
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>
56239340Sjkim#include <contrib/dev/acpica/include/acbuffer.h>
5767754Smsmith
58193267Sjkim/*
59193267Sjkim * Globals that are publically available
60193267Sjkim */
61193267Sjkimextern UINT32               AcpiCurrentGpeCount;
62193267Sjkimextern ACPI_TABLE_FADT      AcpiGbl_FADT;
63212761Sjkimextern BOOLEAN              AcpiGbl_SystemAwakeAndRunning;
64228110Sjkimextern BOOLEAN              AcpiGbl_ReducedHardware;        /* ACPI 5.0 */
6577424Smsmith
66193267Sjkim/* Runtime configuration of debug print levels */
67193267Sjkim
68193267Sjkimextern UINT32               AcpiDbgLevel;
69193267Sjkimextern UINT32               AcpiDbgLayer;
70193267Sjkim
71193267Sjkim/* ACPICA runtime options */
72193267Sjkim
73193267Sjkimextern UINT8                AcpiGbl_EnableInterpreterSlack;
74193267Sjkimextern UINT8                AcpiGbl_AllMethodsSerialized;
75193267Sjkimextern UINT8                AcpiGbl_CreateOsiMethod;
76193267Sjkimextern UINT8                AcpiGbl_UseDefaultRegisterWidths;
77193267Sjkimextern ACPI_NAME            AcpiGbl_TraceMethodName;
78193267Sjkimextern UINT32               AcpiGbl_TraceFlags;
79204773Sjkimextern UINT8                AcpiGbl_EnableAmlDebugObject;
80206117Sjkimextern UINT8                AcpiGbl_CopyDsdtLocally;
81209746Sjkimextern UINT8                AcpiGbl_TruncateIoAddresses;
82228110Sjkimextern UINT8                AcpiGbl_DisableAutoRepair;
83193267Sjkim
84193267Sjkim
85151937Sjkim/*
86231844Sjkim * Hardware-reduced prototypes. All interfaces that use these macros will
87231844Sjkim * be configured out of the ACPICA build if the ACPI_REDUCED_HARDWARE flag
88231844Sjkim * is set to TRUE.
89231844Sjkim */
90231844Sjkim#if (!ACPI_REDUCED_HARDWARE)
91231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_STATUS(Prototype) \
92231844Sjkim    Prototype;
93231844Sjkim
94231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_OK(Prototype) \
95231844Sjkim    Prototype;
96231844Sjkim
97231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_VOID(Prototype) \
98231844Sjkim    Prototype;
99231844Sjkim
100231844Sjkim#else
101231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_STATUS(Prototype) \
102231844Sjkim    static ACPI_INLINE Prototype {return(AE_NOT_CONFIGURED);}
103231844Sjkim
104231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_OK(Prototype) \
105231844Sjkim    static ACPI_INLINE Prototype {return(AE_OK);}
106231844Sjkim
107231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_VOID(Prototype) \
108231844Sjkim    static ACPI_INLINE Prototype {}
109231844Sjkim
110231844Sjkim#endif /* !ACPI_REDUCED_HARDWARE */
111231844Sjkim
112231844Sjkim
113231844Sjkim/*
114216471Sjkim * Initialization
11567754Smsmith */
11667754SmsmithACPI_STATUS
117167802SjkimAcpiInitializeTables (
118167802Sjkim    ACPI_TABLE_DESC         *InitialStorage,
119167802Sjkim    UINT32                  InitialTableCount,
120167802Sjkim    BOOLEAN                 AllowResize);
121167802Sjkim
122167802SjkimACPI_STATUS
12367754SmsmithAcpiInitializeSubsystem (
12467754Smsmith    void);
12567754Smsmith
12667754SmsmithACPI_STATUS
12767754SmsmithAcpiEnableSubsystem (
12867754Smsmith    UINT32                  Flags);
12967754Smsmith
13067754SmsmithACPI_STATUS
131100966SiwasakiAcpiInitializeObjects (
132100966Siwasaki    UINT32                  Flags);
133100966Siwasaki
134100966SiwasakiACPI_STATUS
13567754SmsmithAcpiTerminate (
13667754Smsmith    void);
13767754Smsmith
13880062Smsmith
139216471Sjkim/*
140216471Sjkim * Miscellaneous global interfaces
141216471Sjkim */
142231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
14380062SmsmithACPI_STATUS
14467754SmsmithAcpiEnable (
145231844Sjkim    void))
14667754Smsmith
147231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
14867754SmsmithACPI_STATUS
14967754SmsmithAcpiDisable (
150231844Sjkim    void))
15167754Smsmith
15267754SmsmithACPI_STATUS
153216471SjkimAcpiSubsystemStatus (
154216471Sjkim    void);
155216471Sjkim
156216471SjkimACPI_STATUS
15780062SmsmithAcpiGetSystemInfo (
15867754Smsmith    ACPI_BUFFER             *RetBuffer);
15967754Smsmith
160193267SjkimACPI_STATUS
161193267SjkimAcpiGetStatistics (
162193267Sjkim    ACPI_STATISTICS         *Stats);
163193267Sjkim
16480062Smsmithconst char *
16567754SmsmithAcpiFormatException (
16680062Smsmith    ACPI_STATUS             Exception);
16767754Smsmith
16887031SmsmithACPI_STATUS
16987031SmsmithAcpiPurgeCachedObjects (
17087031Smsmith    void);
17167754Smsmith
172210976SjkimACPI_STATUS
173210976SjkimAcpiInstallInterface (
174210976Sjkim    ACPI_STRING             InterfaceName);
17587031Smsmith
176210976SjkimACPI_STATUS
177210976SjkimAcpiRemoveInterface (
178210976Sjkim    ACPI_STRING             InterfaceName);
179210976Sjkim
180229989SjkimUINT32
181229989SjkimAcpiCheckAddressRange (
182229989Sjkim    ACPI_ADR_SPACE_TYPE     SpaceId,
183229989Sjkim    ACPI_PHYSICAL_ADDRESS   Address,
184229989Sjkim    ACPI_SIZE               Length,
185229989Sjkim    BOOLEAN                 Warn);
186216471Sjkim
187239340SjkimACPI_STATUS
188239340SjkimAcpiDecodePldBuffer (
189239340Sjkim    UINT8                   *InBuffer,
190239340Sjkim    ACPI_SIZE               Length,
191239340Sjkim    ACPI_PLD_INFO           **ReturnBuffer);
192229989Sjkim
19367754Smsmith/*
194210976Sjkim * ACPI Memory management
19577424Smsmith */
19677424Smsmithvoid *
19777424SmsmithAcpiAllocate (
19877424Smsmith    UINT32                  Size);
19977424Smsmith
20077424Smsmithvoid *
20177424SmsmithAcpiCallocate (
20277424Smsmith    UINT32                  Size);
20377424Smsmith
20477424Smsmithvoid
20577424SmsmithAcpiFree (
20677424Smsmith    void                    *Address);
20777424Smsmith
20877424Smsmith
20977424Smsmith/*
210238381Sjkim * ACPI table load/unload interfaces
211238381Sjkim */
212238381SjkimACPI_STATUS
213238381SjkimAcpiLoadTable (
214238381Sjkim    ACPI_TABLE_HEADER       *Table);
215238381Sjkim
216238381SjkimACPI_STATUS
217238381SjkimAcpiUnloadParentTable (
218238381Sjkim    ACPI_HANDLE             Object);
219238381Sjkim
220238381SjkimACPI_STATUS
221238381SjkimAcpiLoadTables (
222238381Sjkim    void);
223238381Sjkim
224238381Sjkim
225238381Sjkim/*
22667754Smsmith * ACPI table manipulation interfaces
22767754Smsmith */
22867754SmsmithACPI_STATUS
229167802SjkimAcpiReallocateRootTable (
230167802Sjkim    void);
231167802Sjkim
232167802SjkimACPI_STATUS
23367754SmsmithAcpiFindRootPointer (
234193267Sjkim    ACPI_SIZE               *RsdpAddress);
23567754Smsmith
23667754SmsmithACPI_STATUS
23767754SmsmithAcpiGetTableHeader (
238167802Sjkim    ACPI_STRING             Signature,
239193267Sjkim    UINT32                  Instance,
24067754Smsmith    ACPI_TABLE_HEADER       *OutTableHeader);
24167754Smsmith
24267754SmsmithACPI_STATUS
24367754SmsmithAcpiGetTable (
244167802Sjkim    ACPI_STRING             Signature,
245193267Sjkim    UINT32                  Instance,
246167802Sjkim    ACPI_TABLE_HEADER       **OutTable);
24767754Smsmith
24878986SmsmithACPI_STATUS
249167802SjkimAcpiGetTableByIndex (
250193267Sjkim    UINT32                  TableIndex,
251167802Sjkim    ACPI_TABLE_HEADER       **OutTable);
25267754Smsmith
253193267SjkimACPI_STATUS
254193267SjkimAcpiInstallTableHandler (
255193267Sjkim    ACPI_TABLE_HANDLER      Handler,
256193267Sjkim    void                    *Context);
25778986Smsmith
258193267SjkimACPI_STATUS
259193267SjkimAcpiRemoveTableHandler (
260193267Sjkim    ACPI_TABLE_HANDLER      Handler);
261193267Sjkim
262193267Sjkim
26367754Smsmith/*
26467754Smsmith * Namespace and name interfaces
26567754Smsmith */
26667754SmsmithACPI_STATUS
26767754SmsmithAcpiWalkNamespace (
26867754Smsmith    ACPI_OBJECT_TYPE        Type,
26967754Smsmith    ACPI_HANDLE             StartObject,
27067754Smsmith    UINT32                  MaxDepth,
271199337Sjkim    ACPI_WALK_CALLBACK      PreOrderVisit,
272199337Sjkim    ACPI_WALK_CALLBACK      PostOrderVisit,
27367754Smsmith    void                    *Context,
274114237Snjl    void                    **ReturnValue);
27567754Smsmith
27667754SmsmithACPI_STATUS
27767754SmsmithAcpiGetDevices (
278114237Snjl    char                    *HID,
27977424Smsmith    ACPI_WALK_CALLBACK      UserFunction,
28067754Smsmith    void                    *Context,
28167754Smsmith    void                    **ReturnValue);
28267754Smsmith
28367754SmsmithACPI_STATUS
28467754SmsmithAcpiGetName (
285207344Sjkim    ACPI_HANDLE             Object,
28667754Smsmith    UINT32                  NameType,
28767754Smsmith    ACPI_BUFFER             *RetPathPtr);
28867754Smsmith
28967754SmsmithACPI_STATUS
29067754SmsmithAcpiGetHandle (
29167754Smsmith    ACPI_HANDLE             Parent,
29267754Smsmith    ACPI_STRING             Pathname,
29367754Smsmith    ACPI_HANDLE             *RetHandle);
29467754Smsmith
29587031SmsmithACPI_STATUS
29687031SmsmithAcpiAttachData (
297207344Sjkim    ACPI_HANDLE             Object,
29887031Smsmith    ACPI_OBJECT_HANDLER     Handler,
29987031Smsmith    void                    *Data);
30067754Smsmith
30187031SmsmithACPI_STATUS
30287031SmsmithAcpiDetachData (
303207344Sjkim    ACPI_HANDLE             Object,
30487031Smsmith    ACPI_OBJECT_HANDLER     Handler);
30587031Smsmith
30687031SmsmithACPI_STATUS
30787031SmsmithAcpiGetData (
308207344Sjkim    ACPI_HANDLE             Object,
30987031Smsmith    ACPI_OBJECT_HANDLER     Handler,
31087031Smsmith    void                    **Data);
31187031Smsmith
312151937SjkimACPI_STATUS
313151937SjkimAcpiDebugTrace (
314151937Sjkim    char                    *Name,
315151937Sjkim    UINT32                  DebugLevel,
316151937Sjkim    UINT32                  DebugLayer,
317151937Sjkim    UINT32                  Flags);
31887031Smsmith
319151937Sjkim
32067754Smsmith/*
32167754Smsmith * Object manipulation and enumeration
32267754Smsmith */
32367754SmsmithACPI_STATUS
32467754SmsmithAcpiEvaluateObject (
32567754Smsmith    ACPI_HANDLE             Object,
32667754Smsmith    ACPI_STRING             Pathname,
32767754Smsmith    ACPI_OBJECT_LIST        *ParameterObjects,
32867754Smsmith    ACPI_BUFFER             *ReturnObjectBuffer);
32967754Smsmith
33067754SmsmithACPI_STATUS
33199679SiwasakiAcpiEvaluateObjectTyped (
33299679Siwasaki    ACPI_HANDLE             Object,
33399679Siwasaki    ACPI_STRING             Pathname,
33499679Siwasaki    ACPI_OBJECT_LIST        *ExternalParams,
33599679Siwasaki    ACPI_BUFFER             *ReturnBuffer,
33699679Siwasaki    ACPI_OBJECT_TYPE        ReturnType);
33799679Siwasaki
33899679SiwasakiACPI_STATUS
33967754SmsmithAcpiGetObjectInfo (
340207344Sjkim    ACPI_HANDLE             Object,
341197104Sjkim    ACPI_DEVICE_INFO        **ReturnBuffer);
34267754Smsmith
34367754SmsmithACPI_STATUS
344193267SjkimAcpiInstallMethod (
345193267Sjkim    UINT8                   *Buffer);
346193267Sjkim
347193267SjkimACPI_STATUS
34867754SmsmithAcpiGetNextObject (
34967754Smsmith    ACPI_OBJECT_TYPE        Type,
35067754Smsmith    ACPI_HANDLE             Parent,
35167754Smsmith    ACPI_HANDLE             Child,
35267754Smsmith    ACPI_HANDLE             *OutHandle);
35367754Smsmith
35467754SmsmithACPI_STATUS
35567754SmsmithAcpiGetType (
35667754Smsmith    ACPI_HANDLE             Object,
35767754Smsmith    ACPI_OBJECT_TYPE        *OutType);
35867754Smsmith
35967754SmsmithACPI_STATUS
36067754SmsmithAcpiGetParent (
36167754Smsmith    ACPI_HANDLE             Object,
36267754Smsmith    ACPI_HANDLE             *OutHandle);
36367754Smsmith
36467754Smsmith
36567754Smsmith/*
366193267Sjkim * Handler interfaces
36767754Smsmith */
36867754SmsmithACPI_STATUS
369193267SjkimAcpiInstallInitializationHandler (
370193267Sjkim    ACPI_INIT_HANDLER       Handler,
371193267Sjkim    UINT32                  Function);
372193267Sjkim
373231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
374193267SjkimACPI_STATUS
375216471SjkimAcpiInstallGlobalEventHandler (
376216471Sjkim    ACPI_GBL_EVENT_HANDLER  Handler,
377231844Sjkim    void                    *Context))
378216471Sjkim
379231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
380216471SjkimACPI_STATUS
38167754SmsmithAcpiInstallFixedEventHandler (
38267754Smsmith    UINT32                  AcpiEvent,
38377424Smsmith    ACPI_EVENT_HANDLER      Handler,
384231844Sjkim    void                    *Context))
38567754Smsmith
386231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
38767754SmsmithACPI_STATUS
38867754SmsmithAcpiRemoveFixedEventHandler (
38967754Smsmith    UINT32                  AcpiEvent,
390231844Sjkim    ACPI_EVENT_HANDLER      Handler))
39167754Smsmith
392231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
39367754SmsmithACPI_STATUS
394216471SjkimAcpiInstallGpeHandler (
395216471Sjkim    ACPI_HANDLE             GpeDevice,
396216471Sjkim    UINT32                  GpeNumber,
397216471Sjkim    UINT32                  Type,
398216471Sjkim    ACPI_GPE_HANDLER        Address,
399231844Sjkim    void                    *Context))
400216471Sjkim
401231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
402216471SjkimACPI_STATUS
403216471SjkimAcpiRemoveGpeHandler (
404216471Sjkim    ACPI_HANDLE             GpeDevice,
405216471Sjkim    UINT32                  GpeNumber,
406231844Sjkim    ACPI_GPE_HANDLER        Address))
407216471Sjkim
408216471SjkimACPI_STATUS
40967754SmsmithAcpiInstallNotifyHandler (
41067754Smsmith    ACPI_HANDLE             Device,
41167754Smsmith    UINT32                  HandlerType,
41277424Smsmith    ACPI_NOTIFY_HANDLER     Handler,
41367754Smsmith    void                    *Context);
41467754Smsmith
41567754SmsmithACPI_STATUS
41667754SmsmithAcpiRemoveNotifyHandler (
41767754Smsmith    ACPI_HANDLE             Device,
41867754Smsmith    UINT32                  HandlerType,
41977424Smsmith    ACPI_NOTIFY_HANDLER     Handler);
42067754Smsmith
42167754SmsmithACPI_STATUS
42267754SmsmithAcpiInstallAddressSpaceHandler (
42367754Smsmith    ACPI_HANDLE             Device,
42477424Smsmith    ACPI_ADR_SPACE_TYPE     SpaceId,
42577424Smsmith    ACPI_ADR_SPACE_HANDLER  Handler,
42677424Smsmith    ACPI_ADR_SPACE_SETUP    Setup,
42767754Smsmith    void                    *Context);
42867754Smsmith
42967754SmsmithACPI_STATUS
43067754SmsmithAcpiRemoveAddressSpaceHandler (
43167754Smsmith    ACPI_HANDLE             Device,
43277424Smsmith    ACPI_ADR_SPACE_TYPE     SpaceId,
43377424Smsmith    ACPI_ADR_SPACE_HANDLER  Handler);
43467754Smsmith
43567754SmsmithACPI_STATUS
436138287SmarksAcpiInstallExceptionHandler (
437138287Smarks    ACPI_EXCEPTION_HANDLER  Handler);
438138287Smarks
439210976SjkimACPI_STATUS
440210976SjkimAcpiInstallInterfaceHandler (
441210976Sjkim    ACPI_INTERFACE_HANDLER  Handler);
442138287Smarks
443210976Sjkim
444138287Smarks/*
445216471Sjkim * Global Lock interfaces
446138287Smarks */
447231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
448138287SmarksACPI_STATUS
44967754SmsmithAcpiAcquireGlobalLock (
450107325Siwasaki    UINT16                  Timeout,
451231844Sjkim    UINT32                  *Handle))
45267754Smsmith
453231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
45467754SmsmithACPI_STATUS
45567754SmsmithAcpiReleaseGlobalLock (
456231844Sjkim    UINT32                  Handle))
45767754Smsmith
458216471Sjkim
459216471Sjkim/*
460228110Sjkim * Interfaces to AML mutex objects
461228110Sjkim */
462228110SjkimACPI_STATUS
463228110SjkimAcpiAcquireMutex (
464228110Sjkim    ACPI_HANDLE             Handle,
465228110Sjkim    ACPI_STRING             Pathname,
466228110Sjkim    UINT16                  Timeout);
467228110Sjkim
468228110SjkimACPI_STATUS
469228110SjkimAcpiReleaseMutex (
470228110Sjkim    ACPI_HANDLE             Handle,
471228110Sjkim    ACPI_STRING             Pathname);
472228110Sjkim
473228110Sjkim
474228110Sjkim/*
475216471Sjkim * Fixed Event interfaces
476216471Sjkim */
477231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
47867754SmsmithACPI_STATUS
47967754SmsmithAcpiEnableEvent (
480117521Snjl    UINT32                  Event,
481231844Sjkim    UINT32                  Flags))
48267754Smsmith
483231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
48467754SmsmithACPI_STATUS
48567754SmsmithAcpiDisableEvent (
486117521Snjl    UINT32                  Event,
487231844Sjkim    UINT32                  Flags))
48867754Smsmith
489231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
49067754SmsmithACPI_STATUS
49167754SmsmithAcpiClearEvent (
492231844Sjkim    UINT32                  Event))
49367754Smsmith
494231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
49567754SmsmithACPI_STATUS
49667754SmsmithAcpiGetEventStatus (
497117521Snjl    UINT32                  Event,
498231844Sjkim    ACPI_EVENT_STATUS       *EventStatus))
49967754Smsmith
500193267Sjkim
501193267Sjkim/*
502216471Sjkim * General Purpose Event (GPE) Interfaces
503193267Sjkim */
504231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
505117521SnjlACPI_STATUS
506216471SjkimAcpiUpdateAllGpes (
507231844Sjkim    void))
508129684Snjl
509231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
510129684SnjlACPI_STATUS
511117521SnjlAcpiEnableGpe (
512117521Snjl    ACPI_HANDLE             GpeDevice,
513231844Sjkim    UINT32                  GpeNumber))
514117521Snjl
515231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
516117521SnjlACPI_STATUS
517117521SnjlAcpiDisableGpe (
518117521Snjl    ACPI_HANDLE             GpeDevice,
519231844Sjkim    UINT32                  GpeNumber))
520117521Snjl
521231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
522117521SnjlACPI_STATUS
523117521SnjlAcpiClearGpe (
524117521Snjl    ACPI_HANDLE             GpeDevice,
525231844Sjkim    UINT32                  GpeNumber))
526117521Snjl
527231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
528117521SnjlACPI_STATUS
529216471SjkimAcpiSetGpe (
530209746Sjkim    ACPI_HANDLE             GpeDevice,
531209746Sjkim    UINT32                  GpeNumber,
532231844Sjkim    UINT8                   Action))
533209746Sjkim
534231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
535209746SjkimACPI_STATUS
536216471SjkimAcpiFinishGpe (
537216471Sjkim    ACPI_HANDLE             GpeDevice,
538231844Sjkim    UINT32                  GpeNumber))
539216471Sjkim
540231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
541216471SjkimACPI_STATUS
542216471SjkimAcpiSetupGpeForWake (
543216471Sjkim    ACPI_HANDLE             ParentDevice,
544216471Sjkim    ACPI_HANDLE             GpeDevice,
545231844Sjkim    UINT32                  GpeNumber))
546216471Sjkim
547231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
548216471SjkimACPI_STATUS
549216471SjkimAcpiSetGpeWakeMask (
550216471Sjkim    ACPI_HANDLE             GpeDevice,
551216471Sjkim    UINT32                  GpeNumber,
552231844Sjkim    UINT8                   Action))
553216471Sjkim
554231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
555216471SjkimACPI_STATUS
556117521SnjlAcpiGetGpeStatus (
557117521Snjl    ACPI_HANDLE             GpeDevice,
558117521Snjl    UINT32                  GpeNumber,
559231844Sjkim    ACPI_EVENT_STATUS       *EventStatus))
560117521Snjl
561231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
562117521SnjlACPI_STATUS
563193267SjkimAcpiDisableAllGpes (
564231844Sjkim    void))
565193267Sjkim
566231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
567193267SjkimACPI_STATUS
568193267SjkimAcpiEnableAllRuntimeGpes (
569231844Sjkim    void))
570193267Sjkim
571231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
572193267SjkimACPI_STATUS
573193267SjkimAcpiGetGpeDevice (
574193267Sjkim    UINT32                  GpeIndex,
575231844Sjkim    ACPI_HANDLE             *GpeDevice))
576193267Sjkim
577231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
578193267SjkimACPI_STATUS
579117521SnjlAcpiInstallGpeBlock (
580117521Snjl    ACPI_HANDLE             GpeDevice,
581117521Snjl    ACPI_GENERIC_ADDRESS    *GpeBlockAddress,
582117521Snjl    UINT32                  RegisterCount,
583231844Sjkim    UINT32                  InterruptNumber))
584117521Snjl
585231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
586117521SnjlACPI_STATUS
587117521SnjlAcpiRemoveGpeBlock (
588231844Sjkim    ACPI_HANDLE             GpeDevice))
589117521Snjl
590117521Snjl
59167754Smsmith/*
59267754Smsmith * Resource interfaces
59367754Smsmith */
594114237Snjltypedef
595114237SnjlACPI_STATUS (*ACPI_WALK_RESOURCE_CALLBACK) (
596114237Snjl    ACPI_RESOURCE           *Resource,
597114237Snjl    void                    *Context);
598114237Snjl
599167802SjkimACPI_STATUS
600167802SjkimAcpiGetVendorResource (
601207344Sjkim    ACPI_HANDLE             Device,
602167802Sjkim    char                    *Name,
603167802Sjkim    ACPI_VENDOR_UUID        *Uuid,
604167802Sjkim    ACPI_BUFFER             *RetBuffer);
605114237Snjl
60667754SmsmithACPI_STATUS
607207344SjkimAcpiGetCurrentResources (
608207344Sjkim    ACPI_HANDLE             Device,
60967754Smsmith    ACPI_BUFFER             *RetBuffer);
61067754Smsmith
61167754SmsmithACPI_STATUS
612207344SjkimAcpiGetPossibleResources (
613207344Sjkim    ACPI_HANDLE             Device,
61467754Smsmith    ACPI_BUFFER             *RetBuffer);
61567754Smsmith
61667754SmsmithACPI_STATUS
617228110SjkimAcpiGetEventResources (
618228110Sjkim    ACPI_HANDLE             DeviceHandle,
619228110Sjkim    ACPI_BUFFER             *RetBuffer);
620228110Sjkim
621228110SjkimACPI_STATUS
622114237SnjlAcpiWalkResources (
623207344Sjkim    ACPI_HANDLE                 Device,
624167802Sjkim    char                        *Name,
625167802Sjkim    ACPI_WALK_RESOURCE_CALLBACK UserFunction,
626167802Sjkim    void                        *Context);
627114237Snjl
628114237SnjlACPI_STATUS
62967754SmsmithAcpiSetCurrentResources (
630207344Sjkim    ACPI_HANDLE             Device,
63167754Smsmith    ACPI_BUFFER             *InBuffer);
63267754Smsmith
63367754SmsmithACPI_STATUS
634207344SjkimAcpiGetIrqRoutingTable (
635207344Sjkim    ACPI_HANDLE             Device,
63667754Smsmith    ACPI_BUFFER             *RetBuffer);
63767754Smsmith
638114237SnjlACPI_STATUS
639114237SnjlAcpiResourceToAddress64 (
640114237Snjl    ACPI_RESOURCE           *Resource,
641114237Snjl    ACPI_RESOURCE_ADDRESS64 *Out);
64267754Smsmith
643228110SjkimACPI_STATUS
644228110SjkimAcpiBufferToResource (
645228110Sjkim    UINT8                   *AmlBuffer,
646228110Sjkim    UINT16                  AmlBufferLength,
647228110Sjkim    ACPI_RESOURCE           **ResourcePtr);
648193267Sjkim
649228110Sjkim
65067754Smsmith/*
65167754Smsmith * Hardware (ACPI device) interfaces
65267754Smsmith */
65367754SmsmithACPI_STATUS
654193267SjkimAcpiReset (
655193267Sjkim    void);
656193267Sjkim
657193267SjkimACPI_STATUS
658193267SjkimAcpiRead (
659197104Sjkim    UINT64                  *Value,
660193267Sjkim    ACPI_GENERIC_ADDRESS    *Reg);
661193267Sjkim
662193267SjkimACPI_STATUS
663193267SjkimAcpiWrite (
664197104Sjkim    UINT64                  Value,
665193267Sjkim    ACPI_GENERIC_ADDRESS    *Reg);
666193267Sjkim
667231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
668193267SjkimACPI_STATUS
669193267SjkimAcpiReadBitRegister (
67099679Siwasaki    UINT32                  RegisterId,
671231844Sjkim    UINT32                  *ReturnValue))
67299679Siwasaki
673231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
67499679SiwasakiACPI_STATUS
675193267SjkimAcpiWriteBitRegister (
67699679Siwasaki    UINT32                  RegisterId,
677231844Sjkim    UINT32                  Value))
67899679Siwasaki
679231844Sjkim
680231844Sjkim/*
681231844Sjkim * Sleep/Wake interfaces
682231844Sjkim */
68399679SiwasakiACPI_STATUS
68499679SiwasakiAcpiGetSleepTypeData (
68599679Siwasaki    UINT8                   SleepState,
68699679Siwasaki    UINT8                   *Slp_TypA,
68799679Siwasaki    UINT8                   *Slp_TypB);
68887031Smsmith
68967754SmsmithACPI_STATUS
69087031SmsmithAcpiEnterSleepStatePrep (
69199679Siwasaki    UINT8                   SleepState);
69287031Smsmith
69387031SmsmithACPI_STATUS
69471867SmsmithAcpiEnterSleepState (
695239340Sjkim    UINT8                   SleepState);
69671867Smsmith
697231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
69871867SmsmithACPI_STATUS
699114237SnjlAcpiEnterSleepStateS4bios (
700231844Sjkim    void))
701114237Snjl
702114237SnjlACPI_STATUS
703231844SjkimAcpiLeaveSleepStatePrep (
704239340Sjkim    UINT8                   SleepState);
705231844Sjkim
706231844SjkimACPI_STATUS
70782367SmsmithAcpiLeaveSleepState (
708231844Sjkim    UINT8                   SleepState);
709231844Sjkim
710231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
711193267SjkimACPI_STATUS
712193267SjkimAcpiSetFirmwareWakingVector (
713231844Sjkim    UINT32                  PhysicalAddress))
71467754Smsmith
715193267Sjkim#if ACPI_MACHINE_WIDTH == 64
716231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
717193267SjkimACPI_STATUS
718193267SjkimAcpiSetFirmwareWakingVector64 (
719231844Sjkim    UINT64                  PhysicalAddress))
720193267Sjkim#endif
72199679Siwasaki
722193267Sjkim
723193267Sjkim/*
724231844Sjkim * ACPI Timer interfaces
725231844Sjkim */
726231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
727231844SjkimACPI_STATUS
728231844SjkimAcpiGetTimerResolution (
729231844Sjkim    UINT32                  *Resolution))
730231844Sjkim
731231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
732231844SjkimACPI_STATUS
733231844SjkimAcpiGetTimer (
734231844Sjkim    UINT32                  *Ticks))
735231844Sjkim
736231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
737231844SjkimACPI_STATUS
738231844SjkimAcpiGetTimerDuration (
739231844Sjkim    UINT32                  StartTicks,
740231844Sjkim    UINT32                  EndTicks,
741231844Sjkim    UINT32                  *TimeElapsed))
742231844Sjkim
743231844Sjkim
744231844Sjkim/*
745193267Sjkim * Error/Warning output
746193267Sjkim */
747193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE
748193267SjkimAcpiError (
749193267Sjkim    const char              *ModuleName,
750193267Sjkim    UINT32                  LineNumber,
751193267Sjkim    const char              *Format,
752193267Sjkim    ...) ACPI_PRINTF_LIKE(3);
753193267Sjkim
754193267Sjkimvoid  ACPI_INTERNAL_VAR_XFACE
755193267SjkimAcpiException (
756193267Sjkim    const char              *ModuleName,
757193267Sjkim    UINT32                  LineNumber,
758193267Sjkim    ACPI_STATUS             Status,
759193267Sjkim    const char              *Format,
760193267Sjkim    ...) ACPI_PRINTF_LIKE(4);
761193267Sjkim
762193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE
763193267SjkimAcpiWarning (
764193267Sjkim    const char              *ModuleName,
765193267Sjkim    UINT32                  LineNumber,
766193267Sjkim    const char              *Format,
767193267Sjkim    ...) ACPI_PRINTF_LIKE(3);
768193267Sjkim
769193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE
770193267SjkimAcpiInfo (
771193267Sjkim    const char              *ModuleName,
772193267Sjkim    UINT32                  LineNumber,
773193267Sjkim    const char              *Format,
774193267Sjkim    ...) ACPI_PRINTF_LIKE(3);
775193267Sjkim
776238381Sjkimvoid ACPI_INTERNAL_VAR_XFACE
777238381SjkimAcpiBiosError (
778238381Sjkim    const char              *ModuleName,
779238381Sjkim    UINT32                  LineNumber,
780238381Sjkim    const char              *Format,
781238381Sjkim    ...) ACPI_PRINTF_LIKE(3);
782193267Sjkim
783238381Sjkimvoid ACPI_INTERNAL_VAR_XFACE
784238381SjkimAcpiBiosWarning (
785238381Sjkim    const char              *ModuleName,
786238381Sjkim    UINT32                  LineNumber,
787238381Sjkim    const char              *Format,
788238381Sjkim    ...) ACPI_PRINTF_LIKE(3);
789238381Sjkim
790238381Sjkim
791193267Sjkim/*
792193267Sjkim * Debug output
793193267Sjkim */
794193267Sjkim#ifdef ACPI_DEBUG_OUTPUT
795193267Sjkim
796193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE
797193267SjkimAcpiDebugPrint (
798193267Sjkim    UINT32                  RequestedDebugLevel,
799193267Sjkim    UINT32                  LineNumber,
800193267Sjkim    const char              *FunctionName,
801193267Sjkim    const char              *ModuleName,
802193267Sjkim    UINT32                  ComponentId,
803193267Sjkim    const char              *Format,
804193267Sjkim    ...) ACPI_PRINTF_LIKE(6);
805193267Sjkim
806193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE
807193267SjkimAcpiDebugPrintRaw (
808193267Sjkim    UINT32                  RequestedDebugLevel,
809193267Sjkim    UINT32                  LineNumber,
810193267Sjkim    const char              *FunctionName,
811193267Sjkim    const char              *ModuleName,
812193267Sjkim    UINT32                  ComponentId,
813193267Sjkim    const char              *Format,
814193267Sjkim    ...) ACPI_PRINTF_LIKE(6);
815193267Sjkim#endif
816193267Sjkim
81767754Smsmith#endif /* __ACXFACE_H__ */
818