acpixf.h revision 253690
167754Smsmith/******************************************************************************
267754Smsmith *
370243Smsmith * Name: acpixf.h - External interfaces to the ACPI subsystem
467754Smsmith *
567754Smsmith *****************************************************************************/
667754Smsmith
7217365Sjkim/*
8245582Sjkim * Copyright (C) 2000 - 2013, 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
4567754Smsmith#ifndef __ACXFACE_H__
4667754Smsmith#define __ACXFACE_H__
4767754Smsmith
48193267Sjkim/* Current ACPICA subsystem version in YYYYMMDD format */
49193267Sjkim
50253690Sjkim#define ACPI_CA_VERSION                 0x20130725
51193267Sjkim
52231844Sjkim#include <contrib/dev/acpica/include/acconfig.h>
53193341Sjkim#include <contrib/dev/acpica/include/actypes.h>
54193341Sjkim#include <contrib/dev/acpica/include/actbl.h>
55239340Sjkim#include <contrib/dev/acpica/include/acbuffer.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 */
64253690Sjkimextern UINT8                AcpiGbl_OsiData;
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;
83250838Sjkimextern UINT8                AcpiGbl_DisableSsdtTableLoad;
84193267Sjkim
85193267Sjkim
86151937Sjkim/*
87231844Sjkim * Hardware-reduced prototypes. All interfaces that use these macros will
88231844Sjkim * be configured out of the ACPICA build if the ACPI_REDUCED_HARDWARE flag
89231844Sjkim * is set to TRUE.
90231844Sjkim */
91231844Sjkim#if (!ACPI_REDUCED_HARDWARE)
92231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_STATUS(Prototype) \
93231844Sjkim    Prototype;
94231844Sjkim
95231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_OK(Prototype) \
96231844Sjkim    Prototype;
97231844Sjkim
98231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_VOID(Prototype) \
99231844Sjkim    Prototype;
100231844Sjkim
101231844Sjkim#else
102231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_STATUS(Prototype) \
103231844Sjkim    static ACPI_INLINE Prototype {return(AE_NOT_CONFIGURED);}
104231844Sjkim
105231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_OK(Prototype) \
106231844Sjkim    static ACPI_INLINE Prototype {return(AE_OK);}
107231844Sjkim
108231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_VOID(Prototype) \
109231844Sjkim    static ACPI_INLINE Prototype {}
110231844Sjkim
111231844Sjkim#endif /* !ACPI_REDUCED_HARDWARE */
112231844Sjkim
113231844Sjkim
114231844Sjkim/*
115216471Sjkim * Initialization
11667754Smsmith */
11767754SmsmithACPI_STATUS
118167802SjkimAcpiInitializeTables (
119167802Sjkim    ACPI_TABLE_DESC         *InitialStorage,
120167802Sjkim    UINT32                  InitialTableCount,
121167802Sjkim    BOOLEAN                 AllowResize);
122167802Sjkim
123167802SjkimACPI_STATUS
12467754SmsmithAcpiInitializeSubsystem (
12567754Smsmith    void);
12667754Smsmith
12767754SmsmithACPI_STATUS
12867754SmsmithAcpiEnableSubsystem (
12967754Smsmith    UINT32                  Flags);
13067754Smsmith
13167754SmsmithACPI_STATUS
132100966SiwasakiAcpiInitializeObjects (
133100966Siwasaki    UINT32                  Flags);
134100966Siwasaki
135100966SiwasakiACPI_STATUS
13667754SmsmithAcpiTerminate (
13767754Smsmith    void);
13867754Smsmith
13980062Smsmith
140216471Sjkim/*
141216471Sjkim * Miscellaneous global interfaces
142216471Sjkim */
143231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
14480062SmsmithACPI_STATUS
14567754SmsmithAcpiEnable (
146231844Sjkim    void))
14767754Smsmith
148231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
14967754SmsmithACPI_STATUS
15067754SmsmithAcpiDisable (
151231844Sjkim    void))
15267754Smsmith
15367754SmsmithACPI_STATUS
154216471SjkimAcpiSubsystemStatus (
155216471Sjkim    void);
156216471Sjkim
157216471SjkimACPI_STATUS
15880062SmsmithAcpiGetSystemInfo (
15967754Smsmith    ACPI_BUFFER             *RetBuffer);
16067754Smsmith
161193267SjkimACPI_STATUS
162193267SjkimAcpiGetStatistics (
163193267Sjkim    ACPI_STATISTICS         *Stats);
164193267Sjkim
16580062Smsmithconst char *
16667754SmsmithAcpiFormatException (
16780062Smsmith    ACPI_STATUS             Exception);
16867754Smsmith
16987031SmsmithACPI_STATUS
17087031SmsmithAcpiPurgeCachedObjects (
17187031Smsmith    void);
17267754Smsmith
173210976SjkimACPI_STATUS
174210976SjkimAcpiInstallInterface (
175210976Sjkim    ACPI_STRING             InterfaceName);
17687031Smsmith
177210976SjkimACPI_STATUS
178210976SjkimAcpiRemoveInterface (
179210976Sjkim    ACPI_STRING             InterfaceName);
180210976Sjkim
181253690SjkimACPI_STATUS
182253690SjkimAcpiUpdateInterfaces (
183253690Sjkim    UINT8                   Action);
184253690Sjkim
185229989SjkimUINT32
186229989SjkimAcpiCheckAddressRange (
187229989Sjkim    ACPI_ADR_SPACE_TYPE     SpaceId,
188229989Sjkim    ACPI_PHYSICAL_ADDRESS   Address,
189229989Sjkim    ACPI_SIZE               Length,
190229989Sjkim    BOOLEAN                 Warn);
191216471Sjkim
192239340SjkimACPI_STATUS
193239340SjkimAcpiDecodePldBuffer (
194239340Sjkim    UINT8                   *InBuffer,
195239340Sjkim    ACPI_SIZE               Length,
196239340Sjkim    ACPI_PLD_INFO           **ReturnBuffer);
197229989Sjkim
19867754Smsmith/*
199210976Sjkim * ACPI Memory management
20077424Smsmith */
20177424Smsmithvoid *
20277424SmsmithAcpiAllocate (
20377424Smsmith    UINT32                  Size);
20477424Smsmith
20577424Smsmithvoid *
20677424SmsmithAcpiCallocate (
20777424Smsmith    UINT32                  Size);
20877424Smsmith
20977424Smsmithvoid
21077424SmsmithAcpiFree (
21177424Smsmith    void                    *Address);
21277424Smsmith
21377424Smsmith
21477424Smsmith/*
215238381Sjkim * ACPI table load/unload interfaces
216238381Sjkim */
217238381SjkimACPI_STATUS
218238381SjkimAcpiLoadTable (
219238381Sjkim    ACPI_TABLE_HEADER       *Table);
220238381Sjkim
221238381SjkimACPI_STATUS
222238381SjkimAcpiUnloadParentTable (
223238381Sjkim    ACPI_HANDLE             Object);
224238381Sjkim
225238381SjkimACPI_STATUS
226238381SjkimAcpiLoadTables (
227238381Sjkim    void);
228238381Sjkim
229238381Sjkim
230238381Sjkim/*
23167754Smsmith * ACPI table manipulation interfaces
23267754Smsmith */
23367754SmsmithACPI_STATUS
234167802SjkimAcpiReallocateRootTable (
235167802Sjkim    void);
236167802Sjkim
237167802SjkimACPI_STATUS
23867754SmsmithAcpiFindRootPointer (
239193267Sjkim    ACPI_SIZE               *RsdpAddress);
24067754Smsmith
24167754SmsmithACPI_STATUS
24267754SmsmithAcpiGetTableHeader (
243167802Sjkim    ACPI_STRING             Signature,
244193267Sjkim    UINT32                  Instance,
24567754Smsmith    ACPI_TABLE_HEADER       *OutTableHeader);
24667754Smsmith
24767754SmsmithACPI_STATUS
24867754SmsmithAcpiGetTable (
249167802Sjkim    ACPI_STRING             Signature,
250193267Sjkim    UINT32                  Instance,
251167802Sjkim    ACPI_TABLE_HEADER       **OutTable);
25267754Smsmith
25378986SmsmithACPI_STATUS
254167802SjkimAcpiGetTableByIndex (
255193267Sjkim    UINT32                  TableIndex,
256167802Sjkim    ACPI_TABLE_HEADER       **OutTable);
25767754Smsmith
258193267SjkimACPI_STATUS
259193267SjkimAcpiInstallTableHandler (
260193267Sjkim    ACPI_TABLE_HANDLER      Handler,
261193267Sjkim    void                    *Context);
26278986Smsmith
263193267SjkimACPI_STATUS
264193267SjkimAcpiRemoveTableHandler (
265193267Sjkim    ACPI_TABLE_HANDLER      Handler);
266193267Sjkim
267193267Sjkim
26867754Smsmith/*
26967754Smsmith * Namespace and name interfaces
27067754Smsmith */
27167754SmsmithACPI_STATUS
27267754SmsmithAcpiWalkNamespace (
27367754Smsmith    ACPI_OBJECT_TYPE        Type,
27467754Smsmith    ACPI_HANDLE             StartObject,
27567754Smsmith    UINT32                  MaxDepth,
276253690Sjkim    ACPI_WALK_CALLBACK      DescendingCallback,
277253690Sjkim    ACPI_WALK_CALLBACK      AscendingCallback,
27867754Smsmith    void                    *Context,
279114237Snjl    void                    **ReturnValue);
28067754Smsmith
28167754SmsmithACPI_STATUS
28267754SmsmithAcpiGetDevices (
283114237Snjl    char                    *HID,
28477424Smsmith    ACPI_WALK_CALLBACK      UserFunction,
28567754Smsmith    void                    *Context,
28667754Smsmith    void                    **ReturnValue);
28767754Smsmith
28867754SmsmithACPI_STATUS
28967754SmsmithAcpiGetName (
290207344Sjkim    ACPI_HANDLE             Object,
29167754Smsmith    UINT32                  NameType,
29267754Smsmith    ACPI_BUFFER             *RetPathPtr);
29367754Smsmith
29467754SmsmithACPI_STATUS
29567754SmsmithAcpiGetHandle (
29667754Smsmith    ACPI_HANDLE             Parent,
29767754Smsmith    ACPI_STRING             Pathname,
29867754Smsmith    ACPI_HANDLE             *RetHandle);
29967754Smsmith
30087031SmsmithACPI_STATUS
30187031SmsmithAcpiAttachData (
302207344Sjkim    ACPI_HANDLE             Object,
30387031Smsmith    ACPI_OBJECT_HANDLER     Handler,
30487031Smsmith    void                    *Data);
30567754Smsmith
30687031SmsmithACPI_STATUS
30787031SmsmithAcpiDetachData (
308207344Sjkim    ACPI_HANDLE             Object,
30987031Smsmith    ACPI_OBJECT_HANDLER     Handler);
31087031Smsmith
31187031SmsmithACPI_STATUS
31287031SmsmithAcpiGetData (
313207344Sjkim    ACPI_HANDLE             Object,
31487031Smsmith    ACPI_OBJECT_HANDLER     Handler,
31587031Smsmith    void                    **Data);
31687031Smsmith
317151937SjkimACPI_STATUS
318151937SjkimAcpiDebugTrace (
319151937Sjkim    char                    *Name,
320151937Sjkim    UINT32                  DebugLevel,
321151937Sjkim    UINT32                  DebugLayer,
322151937Sjkim    UINT32                  Flags);
32387031Smsmith
324151937Sjkim
32567754Smsmith/*
32667754Smsmith * Object manipulation and enumeration
32767754Smsmith */
32867754SmsmithACPI_STATUS
32967754SmsmithAcpiEvaluateObject (
33067754Smsmith    ACPI_HANDLE             Object,
33167754Smsmith    ACPI_STRING             Pathname,
33267754Smsmith    ACPI_OBJECT_LIST        *ParameterObjects,
33367754Smsmith    ACPI_BUFFER             *ReturnObjectBuffer);
33467754Smsmith
33567754SmsmithACPI_STATUS
33699679SiwasakiAcpiEvaluateObjectTyped (
33799679Siwasaki    ACPI_HANDLE             Object,
33899679Siwasaki    ACPI_STRING             Pathname,
33999679Siwasaki    ACPI_OBJECT_LIST        *ExternalParams,
34099679Siwasaki    ACPI_BUFFER             *ReturnBuffer,
34199679Siwasaki    ACPI_OBJECT_TYPE        ReturnType);
34299679Siwasaki
34399679SiwasakiACPI_STATUS
34467754SmsmithAcpiGetObjectInfo (
345207344Sjkim    ACPI_HANDLE             Object,
346197104Sjkim    ACPI_DEVICE_INFO        **ReturnBuffer);
34767754Smsmith
34867754SmsmithACPI_STATUS
349193267SjkimAcpiInstallMethod (
350193267Sjkim    UINT8                   *Buffer);
351193267Sjkim
352193267SjkimACPI_STATUS
35367754SmsmithAcpiGetNextObject (
35467754Smsmith    ACPI_OBJECT_TYPE        Type,
35567754Smsmith    ACPI_HANDLE             Parent,
35667754Smsmith    ACPI_HANDLE             Child,
35767754Smsmith    ACPI_HANDLE             *OutHandle);
35867754Smsmith
35967754SmsmithACPI_STATUS
36067754SmsmithAcpiGetType (
36167754Smsmith    ACPI_HANDLE             Object,
36267754Smsmith    ACPI_OBJECT_TYPE        *OutType);
36367754Smsmith
36467754SmsmithACPI_STATUS
36567754SmsmithAcpiGetParent (
36667754Smsmith    ACPI_HANDLE             Object,
36767754Smsmith    ACPI_HANDLE             *OutHandle);
36867754Smsmith
36967754Smsmith
37067754Smsmith/*
371193267Sjkim * Handler interfaces
37267754Smsmith */
37367754SmsmithACPI_STATUS
374193267SjkimAcpiInstallInitializationHandler (
375193267Sjkim    ACPI_INIT_HANDLER       Handler,
376193267Sjkim    UINT32                  Function);
377193267Sjkim
378231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
379193267SjkimACPI_STATUS
380216471SjkimAcpiInstallGlobalEventHandler (
381216471Sjkim    ACPI_GBL_EVENT_HANDLER  Handler,
382231844Sjkim    void                    *Context))
383216471Sjkim
384231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
385216471SjkimACPI_STATUS
38667754SmsmithAcpiInstallFixedEventHandler (
38767754Smsmith    UINT32                  AcpiEvent,
38877424Smsmith    ACPI_EVENT_HANDLER      Handler,
389231844Sjkim    void                    *Context))
39067754Smsmith
391231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
39267754SmsmithACPI_STATUS
39367754SmsmithAcpiRemoveFixedEventHandler (
39467754Smsmith    UINT32                  AcpiEvent,
395231844Sjkim    ACPI_EVENT_HANDLER      Handler))
39667754Smsmith
397231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
39867754SmsmithACPI_STATUS
399216471SjkimAcpiInstallGpeHandler (
400216471Sjkim    ACPI_HANDLE             GpeDevice,
401216471Sjkim    UINT32                  GpeNumber,
402216471Sjkim    UINT32                  Type,
403216471Sjkim    ACPI_GPE_HANDLER        Address,
404231844Sjkim    void                    *Context))
405216471Sjkim
406231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
407216471SjkimACPI_STATUS
408216471SjkimAcpiRemoveGpeHandler (
409216471Sjkim    ACPI_HANDLE             GpeDevice,
410216471Sjkim    UINT32                  GpeNumber,
411231844Sjkim    ACPI_GPE_HANDLER        Address))
412216471Sjkim
413216471SjkimACPI_STATUS
41467754SmsmithAcpiInstallNotifyHandler (
41567754Smsmith    ACPI_HANDLE             Device,
41667754Smsmith    UINT32                  HandlerType,
41777424Smsmith    ACPI_NOTIFY_HANDLER     Handler,
41867754Smsmith    void                    *Context);
41967754Smsmith
42067754SmsmithACPI_STATUS
42167754SmsmithAcpiRemoveNotifyHandler (
42267754Smsmith    ACPI_HANDLE             Device,
42367754Smsmith    UINT32                  HandlerType,
42477424Smsmith    ACPI_NOTIFY_HANDLER     Handler);
42567754Smsmith
42667754SmsmithACPI_STATUS
42767754SmsmithAcpiInstallAddressSpaceHandler (
42867754Smsmith    ACPI_HANDLE             Device,
42977424Smsmith    ACPI_ADR_SPACE_TYPE     SpaceId,
43077424Smsmith    ACPI_ADR_SPACE_HANDLER  Handler,
43177424Smsmith    ACPI_ADR_SPACE_SETUP    Setup,
43267754Smsmith    void                    *Context);
43367754Smsmith
43467754SmsmithACPI_STATUS
43567754SmsmithAcpiRemoveAddressSpaceHandler (
43667754Smsmith    ACPI_HANDLE             Device,
43777424Smsmith    ACPI_ADR_SPACE_TYPE     SpaceId,
43877424Smsmith    ACPI_ADR_SPACE_HANDLER  Handler);
43967754Smsmith
44067754SmsmithACPI_STATUS
441138287SmarksAcpiInstallExceptionHandler (
442138287Smarks    ACPI_EXCEPTION_HANDLER  Handler);
443138287Smarks
444210976SjkimACPI_STATUS
445210976SjkimAcpiInstallInterfaceHandler (
446210976Sjkim    ACPI_INTERFACE_HANDLER  Handler);
447138287Smarks
448210976Sjkim
449138287Smarks/*
450216471Sjkim * Global Lock interfaces
451138287Smarks */
452231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
453138287SmarksACPI_STATUS
45467754SmsmithAcpiAcquireGlobalLock (
455107325Siwasaki    UINT16                  Timeout,
456231844Sjkim    UINT32                  *Handle))
45767754Smsmith
458231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
45967754SmsmithACPI_STATUS
46067754SmsmithAcpiReleaseGlobalLock (
461231844Sjkim    UINT32                  Handle))
46267754Smsmith
463216471Sjkim
464216471Sjkim/*
465228110Sjkim * Interfaces to AML mutex objects
466228110Sjkim */
467228110SjkimACPI_STATUS
468228110SjkimAcpiAcquireMutex (
469228110Sjkim    ACPI_HANDLE             Handle,
470228110Sjkim    ACPI_STRING             Pathname,
471228110Sjkim    UINT16                  Timeout);
472228110Sjkim
473228110SjkimACPI_STATUS
474228110SjkimAcpiReleaseMutex (
475228110Sjkim    ACPI_HANDLE             Handle,
476228110Sjkim    ACPI_STRING             Pathname);
477228110Sjkim
478228110Sjkim
479228110Sjkim/*
480216471Sjkim * Fixed Event interfaces
481216471Sjkim */
482231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
48367754SmsmithACPI_STATUS
48467754SmsmithAcpiEnableEvent (
485117521Snjl    UINT32                  Event,
486231844Sjkim    UINT32                  Flags))
48767754Smsmith
488231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
48967754SmsmithACPI_STATUS
49067754SmsmithAcpiDisableEvent (
491117521Snjl    UINT32                  Event,
492231844Sjkim    UINT32                  Flags))
49367754Smsmith
494231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
49567754SmsmithACPI_STATUS
49667754SmsmithAcpiClearEvent (
497231844Sjkim    UINT32                  Event))
49867754Smsmith
499231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
50067754SmsmithACPI_STATUS
50167754SmsmithAcpiGetEventStatus (
502117521Snjl    UINT32                  Event,
503231844Sjkim    ACPI_EVENT_STATUS       *EventStatus))
50467754Smsmith
505193267Sjkim
506193267Sjkim/*
507216471Sjkim * General Purpose Event (GPE) Interfaces
508193267Sjkim */
509231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
510117521SnjlACPI_STATUS
511216471SjkimAcpiUpdateAllGpes (
512231844Sjkim    void))
513129684Snjl
514231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
515129684SnjlACPI_STATUS
516117521SnjlAcpiEnableGpe (
517117521Snjl    ACPI_HANDLE             GpeDevice,
518231844Sjkim    UINT32                  GpeNumber))
519117521Snjl
520231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
521117521SnjlACPI_STATUS
522117521SnjlAcpiDisableGpe (
523117521Snjl    ACPI_HANDLE             GpeDevice,
524231844Sjkim    UINT32                  GpeNumber))
525117521Snjl
526231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
527117521SnjlACPI_STATUS
528117521SnjlAcpiClearGpe (
529117521Snjl    ACPI_HANDLE             GpeDevice,
530231844Sjkim    UINT32                  GpeNumber))
531117521Snjl
532231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
533117521SnjlACPI_STATUS
534216471SjkimAcpiSetGpe (
535209746Sjkim    ACPI_HANDLE             GpeDevice,
536209746Sjkim    UINT32                  GpeNumber,
537231844Sjkim    UINT8                   Action))
538209746Sjkim
539231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
540209746SjkimACPI_STATUS
541216471SjkimAcpiFinishGpe (
542216471Sjkim    ACPI_HANDLE             GpeDevice,
543231844Sjkim    UINT32                  GpeNumber))
544216471Sjkim
545231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
546216471SjkimACPI_STATUS
547216471SjkimAcpiSetupGpeForWake (
548216471Sjkim    ACPI_HANDLE             ParentDevice,
549216471Sjkim    ACPI_HANDLE             GpeDevice,
550231844Sjkim    UINT32                  GpeNumber))
551216471Sjkim
552231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
553216471SjkimACPI_STATUS
554216471SjkimAcpiSetGpeWakeMask (
555216471Sjkim    ACPI_HANDLE             GpeDevice,
556216471Sjkim    UINT32                  GpeNumber,
557231844Sjkim    UINT8                   Action))
558216471Sjkim
559231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
560216471SjkimACPI_STATUS
561117521SnjlAcpiGetGpeStatus (
562117521Snjl    ACPI_HANDLE             GpeDevice,
563117521Snjl    UINT32                  GpeNumber,
564231844Sjkim    ACPI_EVENT_STATUS       *EventStatus))
565117521Snjl
566231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
567117521SnjlACPI_STATUS
568193267SjkimAcpiDisableAllGpes (
569231844Sjkim    void))
570193267Sjkim
571231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
572193267SjkimACPI_STATUS
573193267SjkimAcpiEnableAllRuntimeGpes (
574231844Sjkim    void))
575193267Sjkim
576231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
577193267SjkimACPI_STATUS
578193267SjkimAcpiGetGpeDevice (
579193267Sjkim    UINT32                  GpeIndex,
580231844Sjkim    ACPI_HANDLE             *GpeDevice))
581193267Sjkim
582231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
583193267SjkimACPI_STATUS
584117521SnjlAcpiInstallGpeBlock (
585117521Snjl    ACPI_HANDLE             GpeDevice,
586117521Snjl    ACPI_GENERIC_ADDRESS    *GpeBlockAddress,
587117521Snjl    UINT32                  RegisterCount,
588231844Sjkim    UINT32                  InterruptNumber))
589117521Snjl
590231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
591117521SnjlACPI_STATUS
592117521SnjlAcpiRemoveGpeBlock (
593231844Sjkim    ACPI_HANDLE             GpeDevice))
594117521Snjl
595117521Snjl
59667754Smsmith/*
59767754Smsmith * Resource interfaces
59867754Smsmith */
599114237Snjltypedef
600114237SnjlACPI_STATUS (*ACPI_WALK_RESOURCE_CALLBACK) (
601114237Snjl    ACPI_RESOURCE           *Resource,
602114237Snjl    void                    *Context);
603114237Snjl
604167802SjkimACPI_STATUS
605167802SjkimAcpiGetVendorResource (
606207344Sjkim    ACPI_HANDLE             Device,
607167802Sjkim    char                    *Name,
608167802Sjkim    ACPI_VENDOR_UUID        *Uuid,
609167802Sjkim    ACPI_BUFFER             *RetBuffer);
610114237Snjl
61167754SmsmithACPI_STATUS
612207344SjkimAcpiGetCurrentResources (
613207344Sjkim    ACPI_HANDLE             Device,
61467754Smsmith    ACPI_BUFFER             *RetBuffer);
61567754Smsmith
61667754SmsmithACPI_STATUS
617207344SjkimAcpiGetPossibleResources (
618207344Sjkim    ACPI_HANDLE             Device,
61967754Smsmith    ACPI_BUFFER             *RetBuffer);
62067754Smsmith
62167754SmsmithACPI_STATUS
622228110SjkimAcpiGetEventResources (
623228110Sjkim    ACPI_HANDLE             DeviceHandle,
624228110Sjkim    ACPI_BUFFER             *RetBuffer);
625228110Sjkim
626228110SjkimACPI_STATUS
627245582SjkimAcpiWalkResourceBuffer (
628245582Sjkim    ACPI_BUFFER                 *Buffer,
629245582Sjkim    ACPI_WALK_RESOURCE_CALLBACK UserFunction,
630245582Sjkim    void                        *Context);
631245582Sjkim
632245582SjkimACPI_STATUS
633114237SnjlAcpiWalkResources (
634207344Sjkim    ACPI_HANDLE                 Device,
635167802Sjkim    char                        *Name,
636167802Sjkim    ACPI_WALK_RESOURCE_CALLBACK UserFunction,
637167802Sjkim    void                        *Context);
638114237Snjl
639114237SnjlACPI_STATUS
64067754SmsmithAcpiSetCurrentResources (
641207344Sjkim    ACPI_HANDLE             Device,
64267754Smsmith    ACPI_BUFFER             *InBuffer);
64367754Smsmith
64467754SmsmithACPI_STATUS
645207344SjkimAcpiGetIrqRoutingTable (
646207344Sjkim    ACPI_HANDLE             Device,
64767754Smsmith    ACPI_BUFFER             *RetBuffer);
64867754Smsmith
649114237SnjlACPI_STATUS
650114237SnjlAcpiResourceToAddress64 (
651114237Snjl    ACPI_RESOURCE           *Resource,
652114237Snjl    ACPI_RESOURCE_ADDRESS64 *Out);
65367754Smsmith
654228110SjkimACPI_STATUS
655228110SjkimAcpiBufferToResource (
656228110Sjkim    UINT8                   *AmlBuffer,
657228110Sjkim    UINT16                  AmlBufferLength,
658228110Sjkim    ACPI_RESOURCE           **ResourcePtr);
659193267Sjkim
660228110Sjkim
66167754Smsmith/*
66267754Smsmith * Hardware (ACPI device) interfaces
66367754Smsmith */
66467754SmsmithACPI_STATUS
665193267SjkimAcpiReset (
666193267Sjkim    void);
667193267Sjkim
668193267SjkimACPI_STATUS
669193267SjkimAcpiRead (
670197104Sjkim    UINT64                  *Value,
671193267Sjkim    ACPI_GENERIC_ADDRESS    *Reg);
672193267Sjkim
673193267SjkimACPI_STATUS
674193267SjkimAcpiWrite (
675197104Sjkim    UINT64                  Value,
676193267Sjkim    ACPI_GENERIC_ADDRESS    *Reg);
677193267Sjkim
678231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
679193267SjkimACPI_STATUS
680193267SjkimAcpiReadBitRegister (
68199679Siwasaki    UINT32                  RegisterId,
682231844Sjkim    UINT32                  *ReturnValue))
68399679Siwasaki
684231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
68599679SiwasakiACPI_STATUS
686193267SjkimAcpiWriteBitRegister (
68799679Siwasaki    UINT32                  RegisterId,
688231844Sjkim    UINT32                  Value))
68999679Siwasaki
690231844Sjkim
691231844Sjkim/*
692231844Sjkim * Sleep/Wake interfaces
693231844Sjkim */
69499679SiwasakiACPI_STATUS
69599679SiwasakiAcpiGetSleepTypeData (
69699679Siwasaki    UINT8                   SleepState,
69799679Siwasaki    UINT8                   *Slp_TypA,
69899679Siwasaki    UINT8                   *Slp_TypB);
69987031Smsmith
70067754SmsmithACPI_STATUS
70187031SmsmithAcpiEnterSleepStatePrep (
70299679Siwasaki    UINT8                   SleepState);
70387031Smsmith
70487031SmsmithACPI_STATUS
70571867SmsmithAcpiEnterSleepState (
706239340Sjkim    UINT8                   SleepState);
70771867Smsmith
708231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
70971867SmsmithACPI_STATUS
710114237SnjlAcpiEnterSleepStateS4bios (
711231844Sjkim    void))
712114237Snjl
713114237SnjlACPI_STATUS
714231844SjkimAcpiLeaveSleepStatePrep (
715239340Sjkim    UINT8                   SleepState);
716231844Sjkim
717231844SjkimACPI_STATUS
71882367SmsmithAcpiLeaveSleepState (
719231844Sjkim    UINT8                   SleepState);
720231844Sjkim
721231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
722193267SjkimACPI_STATUS
723193267SjkimAcpiSetFirmwareWakingVector (
724231844Sjkim    UINT32                  PhysicalAddress))
72567754Smsmith
726193267Sjkim#if ACPI_MACHINE_WIDTH == 64
727231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
728193267SjkimACPI_STATUS
729193267SjkimAcpiSetFirmwareWakingVector64 (
730231844Sjkim    UINT64                  PhysicalAddress))
731193267Sjkim#endif
73299679Siwasaki
733193267Sjkim
734193267Sjkim/*
735231844Sjkim * ACPI Timer interfaces
736231844Sjkim */
737231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
738231844SjkimACPI_STATUS
739231844SjkimAcpiGetTimerResolution (
740231844Sjkim    UINT32                  *Resolution))
741231844Sjkim
742231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
743231844SjkimACPI_STATUS
744231844SjkimAcpiGetTimer (
745231844Sjkim    UINT32                  *Ticks))
746231844Sjkim
747231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS (
748231844SjkimACPI_STATUS
749231844SjkimAcpiGetTimerDuration (
750231844Sjkim    UINT32                  StartTicks,
751231844Sjkim    UINT32                  EndTicks,
752231844Sjkim    UINT32                  *TimeElapsed))
753231844Sjkim
754231844Sjkim
755231844Sjkim/*
756193267Sjkim * Error/Warning output
757193267Sjkim */
758193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE
759193267SjkimAcpiError (
760193267Sjkim    const char              *ModuleName,
761193267Sjkim    UINT32                  LineNumber,
762193267Sjkim    const char              *Format,
763193267Sjkim    ...) ACPI_PRINTF_LIKE(3);
764193267Sjkim
765193267Sjkimvoid  ACPI_INTERNAL_VAR_XFACE
766193267SjkimAcpiException (
767193267Sjkim    const char              *ModuleName,
768193267Sjkim    UINT32                  LineNumber,
769193267Sjkim    ACPI_STATUS             Status,
770193267Sjkim    const char              *Format,
771193267Sjkim    ...) ACPI_PRINTF_LIKE(4);
772193267Sjkim
773193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE
774193267SjkimAcpiWarning (
775193267Sjkim    const char              *ModuleName,
776193267Sjkim    UINT32                  LineNumber,
777193267Sjkim    const char              *Format,
778193267Sjkim    ...) ACPI_PRINTF_LIKE(3);
779193267Sjkim
780193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE
781193267SjkimAcpiInfo (
782193267Sjkim    const char              *ModuleName,
783193267Sjkim    UINT32                  LineNumber,
784193267Sjkim    const char              *Format,
785193267Sjkim    ...) ACPI_PRINTF_LIKE(3);
786193267Sjkim
787238381Sjkimvoid ACPI_INTERNAL_VAR_XFACE
788238381SjkimAcpiBiosError (
789238381Sjkim    const char              *ModuleName,
790238381Sjkim    UINT32                  LineNumber,
791238381Sjkim    const char              *Format,
792238381Sjkim    ...) ACPI_PRINTF_LIKE(3);
793193267Sjkim
794238381Sjkimvoid ACPI_INTERNAL_VAR_XFACE
795238381SjkimAcpiBiosWarning (
796238381Sjkim    const char              *ModuleName,
797238381Sjkim    UINT32                  LineNumber,
798238381Sjkim    const char              *Format,
799238381Sjkim    ...) ACPI_PRINTF_LIKE(3);
800238381Sjkim
801238381Sjkim
802193267Sjkim/*
803193267Sjkim * Debug output
804193267Sjkim */
805193267Sjkim#ifdef ACPI_DEBUG_OUTPUT
806193267Sjkim
807193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE
808193267SjkimAcpiDebugPrint (
809193267Sjkim    UINT32                  RequestedDebugLevel,
810193267Sjkim    UINT32                  LineNumber,
811193267Sjkim    const char              *FunctionName,
812193267Sjkim    const char              *ModuleName,
813193267Sjkim    UINT32                  ComponentId,
814193267Sjkim    const char              *Format,
815193267Sjkim    ...) ACPI_PRINTF_LIKE(6);
816193267Sjkim
817193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE
818193267SjkimAcpiDebugPrintRaw (
819193267Sjkim    UINT32                  RequestedDebugLevel,
820193267Sjkim    UINT32                  LineNumber,
821193267Sjkim    const char              *FunctionName,
822193267Sjkim    const char              *ModuleName,
823193267Sjkim    UINT32                  ComponentId,
824193267Sjkim    const char              *Format,
825193267Sjkim    ...) ACPI_PRINTF_LIKE(6);
826193267Sjkim#endif
827193267Sjkim
82867754Smsmith#endif /* __ACXFACE_H__ */
829