xref: /illumos-gate/usr/src/uts/intel/sys/acpi/acpixf.h (revision 26f3cdf0)
17c478bd9Sstevel@tonic-gate 
27c478bd9Sstevel@tonic-gate /******************************************************************************
37c478bd9Sstevel@tonic-gate  *
47c478bd9Sstevel@tonic-gate  * Name: acpixf.h - External interfaces to the ACPI subsystem
57c478bd9Sstevel@tonic-gate  *
67c478bd9Sstevel@tonic-gate  *****************************************************************************/
77c478bd9Sstevel@tonic-gate 
8*26f3cdf0SGordon Ross /*
9*26f3cdf0SGordon Ross  * Copyright (C) 2000 - 2011, Intel Corp.
107c478bd9Sstevel@tonic-gate  * All rights reserved.
117c478bd9Sstevel@tonic-gate  *
12*26f3cdf0SGordon Ross  * Redistribution and use in source and binary forms, with or without
13*26f3cdf0SGordon Ross  * modification, are permitted provided that the following conditions
14*26f3cdf0SGordon Ross  * are met:
15*26f3cdf0SGordon Ross  * 1. Redistributions of source code must retain the above copyright
16*26f3cdf0SGordon Ross  *    notice, this list of conditions, and the following disclaimer,
17*26f3cdf0SGordon Ross  *    without modification.
18*26f3cdf0SGordon Ross  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
19*26f3cdf0SGordon Ross  *    substantially similar to the "NO WARRANTY" disclaimer below
20*26f3cdf0SGordon Ross  *    ("Disclaimer") and any redistribution must be conditioned upon
21*26f3cdf0SGordon Ross  *    including a substantially similar Disclaimer requirement for further
22*26f3cdf0SGordon Ross  *    binary redistribution.
23*26f3cdf0SGordon Ross  * 3. Neither the names of the above-listed copyright holders nor the names
24*26f3cdf0SGordon Ross  *    of any contributors may be used to endorse or promote products derived
25*26f3cdf0SGordon Ross  *    from this software without specific prior written permission.
267c478bd9Sstevel@tonic-gate  *
27*26f3cdf0SGordon Ross  * Alternatively, this software may be distributed under the terms of the
28*26f3cdf0SGordon Ross  * GNU General Public License ("GPL") version 2 as published by the Free
29*26f3cdf0SGordon Ross  * Software Foundation.
307c478bd9Sstevel@tonic-gate  *
31*26f3cdf0SGordon Ross  * NO WARRANTY
32*26f3cdf0SGordon Ross  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
33*26f3cdf0SGordon Ross  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
34*26f3cdf0SGordon Ross  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
35*26f3cdf0SGordon Ross  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
36*26f3cdf0SGordon Ross  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
37*26f3cdf0SGordon Ross  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
38*26f3cdf0SGordon Ross  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
39*26f3cdf0SGordon Ross  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
40*26f3cdf0SGordon Ross  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
41*26f3cdf0SGordon Ross  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
42*26f3cdf0SGordon Ross  * POSSIBILITY OF SUCH DAMAGES.
43*26f3cdf0SGordon Ross  */
447c478bd9Sstevel@tonic-gate 
457c478bd9Sstevel@tonic-gate 
467c478bd9Sstevel@tonic-gate #ifndef __ACXFACE_H__
477c478bd9Sstevel@tonic-gate #define __ACXFACE_H__
487c478bd9Sstevel@tonic-gate 
49aa2aa9a6SDana Myers /* Current ACPICA subsystem version in YYYYMMDD format */
50aa2aa9a6SDana Myers 
51*26f3cdf0SGordon Ross #define ACPI_CA_VERSION                 0x20110527
52aa2aa9a6SDana Myers 
537c478bd9Sstevel@tonic-gate #include "actypes.h"
547c478bd9Sstevel@tonic-gate #include "actbl.h"
557c478bd9Sstevel@tonic-gate 
56aa2aa9a6SDana Myers /*
57aa2aa9a6SDana Myers  * Globals that are publically available
58aa2aa9a6SDana Myers  */
59aa2aa9a6SDana Myers extern UINT32               AcpiCurrentGpeCount;
60aa2aa9a6SDana Myers extern ACPI_TABLE_FADT      AcpiGbl_FADT;
61*26f3cdf0SGordon Ross extern BOOLEAN              AcpiGbl_SystemAwakeAndRunning;
62aa2aa9a6SDana Myers 
6357190917SDana Myers /* Runtime configuration of debug print levels */
64aa2aa9a6SDana Myers 
65aa2aa9a6SDana Myers extern UINT32               AcpiDbgLevel;
66aa2aa9a6SDana Myers extern UINT32               AcpiDbgLayer;
6757190917SDana Myers 
6857190917SDana Myers /* ACPICA runtime options */
6957190917SDana Myers 
70aa2aa9a6SDana Myers extern UINT8                AcpiGbl_EnableInterpreterSlack;
71aa2aa9a6SDana Myers extern UINT8                AcpiGbl_AllMethodsSerialized;
72aa2aa9a6SDana Myers extern UINT8                AcpiGbl_CreateOsiMethod;
7357190917SDana Myers extern UINT8                AcpiGbl_UseDefaultRegisterWidths;
74aa2aa9a6SDana Myers extern ACPI_NAME            AcpiGbl_TraceMethodName;
75aa2aa9a6SDana Myers extern UINT32               AcpiGbl_TraceFlags;
76*26f3cdf0SGordon Ross extern UINT8                AcpiGbl_EnableAmlDebugObject;
77*26f3cdf0SGordon Ross extern UINT8                AcpiGbl_CopyDsdtLocally;
78*26f3cdf0SGordon Ross extern UINT8                AcpiGbl_TruncateIoAddresses;
79aa2aa9a6SDana Myers 
807c478bd9Sstevel@tonic-gate 
817c478bd9Sstevel@tonic-gate /*
82*26f3cdf0SGordon Ross  * Initialization
837c478bd9Sstevel@tonic-gate  */
847c478bd9Sstevel@tonic-gate ACPI_STATUS
85db2bae30SDana Myers AcpiInitializeTables (
86db2bae30SDana Myers     ACPI_TABLE_DESC         *InitialStorage,
87db2bae30SDana Myers     UINT32                  InitialTableCount,
88db2bae30SDana Myers     BOOLEAN                 AllowResize);
89db2bae30SDana Myers 
90db2bae30SDana Myers ACPI_STATUS
917c478bd9Sstevel@tonic-gate AcpiInitializeSubsystem (
927c478bd9Sstevel@tonic-gate     void);
937c478bd9Sstevel@tonic-gate 
947c478bd9Sstevel@tonic-gate ACPI_STATUS
957c478bd9Sstevel@tonic-gate AcpiEnableSubsystem (
967c478bd9Sstevel@tonic-gate     UINT32                  Flags);
977c478bd9Sstevel@tonic-gate 
987c478bd9Sstevel@tonic-gate ACPI_STATUS
997c478bd9Sstevel@tonic-gate AcpiInitializeObjects (
1007c478bd9Sstevel@tonic-gate     UINT32                  Flags);
1017c478bd9Sstevel@tonic-gate 
1027c478bd9Sstevel@tonic-gate ACPI_STATUS
1037c478bd9Sstevel@tonic-gate AcpiTerminate (
1047c478bd9Sstevel@tonic-gate     void);
1057c478bd9Sstevel@tonic-gate 
1067c478bd9Sstevel@tonic-gate 
107*26f3cdf0SGordon Ross /*
108*26f3cdf0SGordon Ross  * Miscellaneous global interfaces
109*26f3cdf0SGordon Ross  */
1107c478bd9Sstevel@tonic-gate ACPI_STATUS
1117c478bd9Sstevel@tonic-gate AcpiEnable (
1127c478bd9Sstevel@tonic-gate     void);
1137c478bd9Sstevel@tonic-gate 
1147c478bd9Sstevel@tonic-gate ACPI_STATUS
1157c478bd9Sstevel@tonic-gate AcpiDisable (
1167c478bd9Sstevel@tonic-gate     void);
1177c478bd9Sstevel@tonic-gate 
118*26f3cdf0SGordon Ross ACPI_STATUS
119*26f3cdf0SGordon Ross AcpiSubsystemStatus (
120*26f3cdf0SGordon Ross     void);
121*26f3cdf0SGordon Ross 
1227c478bd9Sstevel@tonic-gate ACPI_STATUS
1237c478bd9Sstevel@tonic-gate AcpiGetSystemInfo (
1247c478bd9Sstevel@tonic-gate     ACPI_BUFFER             *RetBuffer);
1257c478bd9Sstevel@tonic-gate 
126db2bae30SDana Myers ACPI_STATUS
127db2bae30SDana Myers AcpiGetStatistics (
128db2bae30SDana Myers     ACPI_STATISTICS         *Stats);
129db2bae30SDana Myers 
1307c478bd9Sstevel@tonic-gate const char *
1317c478bd9Sstevel@tonic-gate AcpiFormatException (
1327c478bd9Sstevel@tonic-gate     ACPI_STATUS             Exception);
1337c478bd9Sstevel@tonic-gate 
1347c478bd9Sstevel@tonic-gate ACPI_STATUS
1357c478bd9Sstevel@tonic-gate AcpiPurgeCachedObjects (
1367c478bd9Sstevel@tonic-gate     void);
1377c478bd9Sstevel@tonic-gate 
138*26f3cdf0SGordon Ross ACPI_STATUS
139*26f3cdf0SGordon Ross AcpiInstallInterface (
140*26f3cdf0SGordon Ross     ACPI_STRING             InterfaceName);
141*26f3cdf0SGordon Ross 
142*26f3cdf0SGordon Ross ACPI_STATUS
143*26f3cdf0SGordon Ross AcpiRemoveInterface (
144*26f3cdf0SGordon Ross     ACPI_STRING             InterfaceName);
145*26f3cdf0SGordon Ross 
1467c478bd9Sstevel@tonic-gate 
1477c478bd9Sstevel@tonic-gate /*
148*26f3cdf0SGordon Ross  * ACPI Memory management
1497c478bd9Sstevel@tonic-gate  */
1507c478bd9Sstevel@tonic-gate void *
1517c478bd9Sstevel@tonic-gate AcpiAllocate (
1527c478bd9Sstevel@tonic-gate     UINT32                  Size);
1537c478bd9Sstevel@tonic-gate 
1547c478bd9Sstevel@tonic-gate void *
1557c478bd9Sstevel@tonic-gate AcpiCallocate (
1567c478bd9Sstevel@tonic-gate     UINT32                  Size);
1577c478bd9Sstevel@tonic-gate 
1587c478bd9Sstevel@tonic-gate void
1597c478bd9Sstevel@tonic-gate AcpiFree (
1607c478bd9Sstevel@tonic-gate     void                    *Address);
1617c478bd9Sstevel@tonic-gate 
1627c478bd9Sstevel@tonic-gate 
1637c478bd9Sstevel@tonic-gate /*
1647c478bd9Sstevel@tonic-gate  * ACPI table manipulation interfaces
1657c478bd9Sstevel@tonic-gate  */
1667c478bd9Sstevel@tonic-gate ACPI_STATUS
167db2bae30SDana Myers AcpiReallocateRootTable (
1687c478bd9Sstevel@tonic-gate     void);
1697c478bd9Sstevel@tonic-gate 
1707c478bd9Sstevel@tonic-gate ACPI_STATUS
171db2bae30SDana Myers AcpiFindRootPointer (
172db2bae30SDana Myers     ACPI_SIZE               *RsdpAddress);
1737c478bd9Sstevel@tonic-gate 
1747c478bd9Sstevel@tonic-gate ACPI_STATUS
175db2bae30SDana Myers AcpiLoadTables (
176db2bae30SDana Myers     void);
1777c478bd9Sstevel@tonic-gate 
1787c478bd9Sstevel@tonic-gate ACPI_STATUS
1797c478bd9Sstevel@tonic-gate AcpiGetTableHeader (
180db2bae30SDana Myers     ACPI_STRING             Signature,
1817c478bd9Sstevel@tonic-gate     UINT32                  Instance,
1827c478bd9Sstevel@tonic-gate     ACPI_TABLE_HEADER       *OutTableHeader);
1837c478bd9Sstevel@tonic-gate 
1847c478bd9Sstevel@tonic-gate ACPI_STATUS
1857c478bd9Sstevel@tonic-gate AcpiGetTable (
186db2bae30SDana Myers     ACPI_STRING             Signature,
1877c478bd9Sstevel@tonic-gate     UINT32                  Instance,
188db2bae30SDana Myers     ACPI_TABLE_HEADER       **OutTable);
1897c478bd9Sstevel@tonic-gate 
1907c478bd9Sstevel@tonic-gate ACPI_STATUS
191db2bae30SDana Myers AcpiGetTableByIndex (
192db2bae30SDana Myers     UINT32                  TableIndex,
193db2bae30SDana Myers     ACPI_TABLE_HEADER       **OutTable);
194db2bae30SDana Myers 
195db2bae30SDana Myers ACPI_STATUS
196db2bae30SDana Myers AcpiInstallTableHandler (
197db2bae30SDana Myers     ACPI_TABLE_HANDLER      Handler,
198db2bae30SDana Myers     void                    *Context);
199db2bae30SDana Myers 
200db2bae30SDana Myers ACPI_STATUS
201db2bae30SDana Myers AcpiRemoveTableHandler (
202db2bae30SDana Myers     ACPI_TABLE_HANDLER      Handler);
2037c478bd9Sstevel@tonic-gate 
2047c478bd9Sstevel@tonic-gate 
2057c478bd9Sstevel@tonic-gate /*
2067c478bd9Sstevel@tonic-gate  * Namespace and name interfaces
2077c478bd9Sstevel@tonic-gate  */
2087c478bd9Sstevel@tonic-gate ACPI_STATUS
2097c478bd9Sstevel@tonic-gate AcpiWalkNamespace (
2107c478bd9Sstevel@tonic-gate     ACPI_OBJECT_TYPE        Type,
2117c478bd9Sstevel@tonic-gate     ACPI_HANDLE             StartObject,
2127c478bd9Sstevel@tonic-gate     UINT32                  MaxDepth,
21357190917SDana Myers     ACPI_WALK_CALLBACK      PreOrderVisit,
21457190917SDana Myers     ACPI_WALK_CALLBACK      PostOrderVisit,
2157c478bd9Sstevel@tonic-gate     void                    *Context,
2167c478bd9Sstevel@tonic-gate     void                    **ReturnValue);
2177c478bd9Sstevel@tonic-gate 
2187c478bd9Sstevel@tonic-gate ACPI_STATUS
2197c478bd9Sstevel@tonic-gate AcpiGetDevices (
2207c478bd9Sstevel@tonic-gate     char                    *HID,
2217c478bd9Sstevel@tonic-gate     ACPI_WALK_CALLBACK      UserFunction,
2227c478bd9Sstevel@tonic-gate     void                    *Context,
2237c478bd9Sstevel@tonic-gate     void                    **ReturnValue);
2247c478bd9Sstevel@tonic-gate 
2257c478bd9Sstevel@tonic-gate ACPI_STATUS
2267c478bd9Sstevel@tonic-gate AcpiGetName (
227*26f3cdf0SGordon Ross     ACPI_HANDLE             Object,
2287c478bd9Sstevel@tonic-gate     UINT32                  NameType,
2297c478bd9Sstevel@tonic-gate     ACPI_BUFFER             *RetPathPtr);
2307c478bd9Sstevel@tonic-gate 
2317c478bd9Sstevel@tonic-gate ACPI_STATUS
2327c478bd9Sstevel@tonic-gate AcpiGetHandle (
2337c478bd9Sstevel@tonic-gate     ACPI_HANDLE             Parent,
2347c478bd9Sstevel@tonic-gate     ACPI_STRING             Pathname,
2357c478bd9Sstevel@tonic-gate     ACPI_HANDLE             *RetHandle);
2367c478bd9Sstevel@tonic-gate 
2377c478bd9Sstevel@tonic-gate ACPI_STATUS
2387c478bd9Sstevel@tonic-gate AcpiAttachData (
239*26f3cdf0SGordon Ross     ACPI_HANDLE             Object,
2407c478bd9Sstevel@tonic-gate     ACPI_OBJECT_HANDLER     Handler,
2417c478bd9Sstevel@tonic-gate     void                    *Data);
2427c478bd9Sstevel@tonic-gate 
2437c478bd9Sstevel@tonic-gate ACPI_STATUS
2447c478bd9Sstevel@tonic-gate AcpiDetachData (
245*26f3cdf0SGordon Ross     ACPI_HANDLE             Object,
2467c478bd9Sstevel@tonic-gate     ACPI_OBJECT_HANDLER     Handler);
2477c478bd9Sstevel@tonic-gate 
2487c478bd9Sstevel@tonic-gate ACPI_STATUS
2497c478bd9Sstevel@tonic-gate AcpiGetData (
250*26f3cdf0SGordon Ross     ACPI_HANDLE             Object,
2517c478bd9Sstevel@tonic-gate     ACPI_OBJECT_HANDLER     Handler,
2527c478bd9Sstevel@tonic-gate     void                    **Data);
2537c478bd9Sstevel@tonic-gate 
254186507a7Smyers ACPI_STATUS
255186507a7Smyers AcpiDebugTrace (
256186507a7Smyers     char                    *Name,
257186507a7Smyers     UINT32                  DebugLevel,
258186507a7Smyers     UINT32                  DebugLayer,
259186507a7Smyers     UINT32                  Flags);
260186507a7Smyers 
2617c478bd9Sstevel@tonic-gate 
2627c478bd9Sstevel@tonic-gate /*
2637c478bd9Sstevel@tonic-gate  * Object manipulation and enumeration
2647c478bd9Sstevel@tonic-gate  */
2657c478bd9Sstevel@tonic-gate ACPI_STATUS
2667c478bd9Sstevel@tonic-gate AcpiEvaluateObject (
2677c478bd9Sstevel@tonic-gate     ACPI_HANDLE             Object,
2687c478bd9Sstevel@tonic-gate     ACPI_STRING             Pathname,
2697c478bd9Sstevel@tonic-gate     ACPI_OBJECT_LIST        *ParameterObjects,
2707c478bd9Sstevel@tonic-gate     ACPI_BUFFER             *ReturnObjectBuffer);
2717c478bd9Sstevel@tonic-gate 
2727c478bd9Sstevel@tonic-gate ACPI_STATUS
2737c478bd9Sstevel@tonic-gate AcpiEvaluateObjectTyped (
2747c478bd9Sstevel@tonic-gate     ACPI_HANDLE             Object,
2757c478bd9Sstevel@tonic-gate     ACPI_STRING             Pathname,
2767c478bd9Sstevel@tonic-gate     ACPI_OBJECT_LIST        *ExternalParams,
2777c478bd9Sstevel@tonic-gate     ACPI_BUFFER             *ReturnBuffer,
2787c478bd9Sstevel@tonic-gate     ACPI_OBJECT_TYPE        ReturnType);
2797c478bd9Sstevel@tonic-gate 
2807c478bd9Sstevel@tonic-gate ACPI_STATUS
2817c478bd9Sstevel@tonic-gate AcpiGetObjectInfo (
282*26f3cdf0SGordon Ross     ACPI_HANDLE             Object,
28357190917SDana Myers     ACPI_DEVICE_INFO        **ReturnBuffer);
2847c478bd9Sstevel@tonic-gate 
285aa2aa9a6SDana Myers ACPI_STATUS
286aa2aa9a6SDana Myers AcpiInstallMethod (
287aa2aa9a6SDana Myers     UINT8                   *Buffer);
288aa2aa9a6SDana Myers 
2897c478bd9Sstevel@tonic-gate ACPI_STATUS
2907c478bd9Sstevel@tonic-gate AcpiGetNextObject (
2917c478bd9Sstevel@tonic-gate     ACPI_OBJECT_TYPE        Type,
2927c478bd9Sstevel@tonic-gate     ACPI_HANDLE             Parent,
2937c478bd9Sstevel@tonic-gate     ACPI_HANDLE             Child,
2947c478bd9Sstevel@tonic-gate     ACPI_HANDLE             *OutHandle);
2957c478bd9Sstevel@tonic-gate 
2967c478bd9Sstevel@tonic-gate ACPI_STATUS
2977c478bd9Sstevel@tonic-gate AcpiGetType (
2987c478bd9Sstevel@tonic-gate     ACPI_HANDLE             Object,
2997c478bd9Sstevel@tonic-gate     ACPI_OBJECT_TYPE        *OutType);
3007c478bd9Sstevel@tonic-gate 
3017c478bd9Sstevel@tonic-gate ACPI_STATUS
3027c478bd9Sstevel@tonic-gate AcpiGetParent (
3037c478bd9Sstevel@tonic-gate     ACPI_HANDLE             Object,
3047c478bd9Sstevel@tonic-gate     ACPI_HANDLE             *OutHandle);
3057c478bd9Sstevel@tonic-gate 
3067c478bd9Sstevel@tonic-gate 
3077c478bd9Sstevel@tonic-gate /*
308aa2aa9a6SDana Myers  * Handler interfaces
3097c478bd9Sstevel@tonic-gate  */
3107c478bd9Sstevel@tonic-gate ACPI_STATUS
311aa2aa9a6SDana Myers AcpiInstallInitializationHandler (
312aa2aa9a6SDana Myers     ACPI_INIT_HANDLER       Handler,
313aa2aa9a6SDana Myers     UINT32                  Function);
314aa2aa9a6SDana Myers 
315*26f3cdf0SGordon Ross ACPI_STATUS
316*26f3cdf0SGordon Ross AcpiInstallGlobalEventHandler (
317*26f3cdf0SGordon Ross     ACPI_GBL_EVENT_HANDLER  Handler,
318*26f3cdf0SGordon Ross     void                    *Context);
319*26f3cdf0SGordon Ross 
320aa2aa9a6SDana Myers ACPI_STATUS
3217c478bd9Sstevel@tonic-gate AcpiInstallFixedEventHandler (
3227c478bd9Sstevel@tonic-gate     UINT32                  AcpiEvent,
3237c478bd9Sstevel@tonic-gate     ACPI_EVENT_HANDLER      Handler,
3247c478bd9Sstevel@tonic-gate     void                    *Context);
3257c478bd9Sstevel@tonic-gate 
3267c478bd9Sstevel@tonic-gate ACPI_STATUS
3277c478bd9Sstevel@tonic-gate AcpiRemoveFixedEventHandler (
3287c478bd9Sstevel@tonic-gate     UINT32                  AcpiEvent,
3297c478bd9Sstevel@tonic-gate     ACPI_EVENT_HANDLER      Handler);
3307c478bd9Sstevel@tonic-gate 
331*26f3cdf0SGordon Ross ACPI_STATUS
332*26f3cdf0SGordon Ross AcpiInstallGpeHandler (
333*26f3cdf0SGordon Ross     ACPI_HANDLE             GpeDevice,
334*26f3cdf0SGordon Ross     UINT32                  GpeNumber,
335*26f3cdf0SGordon Ross     UINT32                  Type,
336*26f3cdf0SGordon Ross     ACPI_GPE_HANDLER        Address,
337*26f3cdf0SGordon Ross     void                    *Context);
338*26f3cdf0SGordon Ross 
339*26f3cdf0SGordon Ross ACPI_STATUS
340*26f3cdf0SGordon Ross AcpiRemoveGpeHandler (
341*26f3cdf0SGordon Ross     ACPI_HANDLE             GpeDevice,
342*26f3cdf0SGordon Ross     UINT32                  GpeNumber,
343*26f3cdf0SGordon Ross     ACPI_GPE_HANDLER        Address);
344*26f3cdf0SGordon Ross 
3457c478bd9Sstevel@tonic-gate ACPI_STATUS
3467c478bd9Sstevel@tonic-gate AcpiInstallNotifyHandler (
3477c478bd9Sstevel@tonic-gate     ACPI_HANDLE             Device,
3487c478bd9Sstevel@tonic-gate     UINT32                  HandlerType,
3497c478bd9Sstevel@tonic-gate     ACPI_NOTIFY_HANDLER     Handler,
3507c478bd9Sstevel@tonic-gate     void                    *Context);
3517c478bd9Sstevel@tonic-gate 
3527c478bd9Sstevel@tonic-gate ACPI_STATUS
3537c478bd9Sstevel@tonic-gate AcpiRemoveNotifyHandler (
3547c478bd9Sstevel@tonic-gate     ACPI_HANDLE             Device,
3557c478bd9Sstevel@tonic-gate     UINT32                  HandlerType,
3567c478bd9Sstevel@tonic-gate     ACPI_NOTIFY_HANDLER     Handler);
3577c478bd9Sstevel@tonic-gate 
3587c478bd9Sstevel@tonic-gate ACPI_STATUS
3597c478bd9Sstevel@tonic-gate AcpiInstallAddressSpaceHandler (
3607c478bd9Sstevel@tonic-gate     ACPI_HANDLE             Device,
3617c478bd9Sstevel@tonic-gate     ACPI_ADR_SPACE_TYPE     SpaceId,
3627c478bd9Sstevel@tonic-gate     ACPI_ADR_SPACE_HANDLER  Handler,
3637c478bd9Sstevel@tonic-gate     ACPI_ADR_SPACE_SETUP    Setup,
3647c478bd9Sstevel@tonic-gate     void                    *Context);
3657c478bd9Sstevel@tonic-gate 
3667c478bd9Sstevel@tonic-gate ACPI_STATUS
3677c478bd9Sstevel@tonic-gate AcpiRemoveAddressSpaceHandler (
3687c478bd9Sstevel@tonic-gate     ACPI_HANDLE             Device,
3697c478bd9Sstevel@tonic-gate     ACPI_ADR_SPACE_TYPE     SpaceId,
3707c478bd9Sstevel@tonic-gate     ACPI_ADR_SPACE_HANDLER  Handler);
3717c478bd9Sstevel@tonic-gate 
3727c478bd9Sstevel@tonic-gate ACPI_STATUS
3737c478bd9Sstevel@tonic-gate AcpiInstallExceptionHandler (
3747c478bd9Sstevel@tonic-gate     ACPI_EXCEPTION_HANDLER  Handler);
3757c478bd9Sstevel@tonic-gate 
376*26f3cdf0SGordon Ross ACPI_STATUS
377*26f3cdf0SGordon Ross AcpiInstallInterfaceHandler (
378*26f3cdf0SGordon Ross     ACPI_INTERFACE_HANDLER  Handler);
379*26f3cdf0SGordon Ross 
3807c478bd9Sstevel@tonic-gate 
3817c478bd9Sstevel@tonic-gate /*
382*26f3cdf0SGordon Ross  * Global Lock interfaces
3837c478bd9Sstevel@tonic-gate  */
3847c478bd9Sstevel@tonic-gate ACPI_STATUS
3857c478bd9Sstevel@tonic-gate AcpiAcquireGlobalLock (
3867c478bd9Sstevel@tonic-gate     UINT16                  Timeout,
3877c478bd9Sstevel@tonic-gate     UINT32                  *Handle);
3887c478bd9Sstevel@tonic-gate 
3897c478bd9Sstevel@tonic-gate ACPI_STATUS
3907c478bd9Sstevel@tonic-gate AcpiReleaseGlobalLock (
3917c478bd9Sstevel@tonic-gate     UINT32                  Handle);
3927c478bd9Sstevel@tonic-gate 
393*26f3cdf0SGordon Ross 
394*26f3cdf0SGordon Ross /*
395*26f3cdf0SGordon Ross  * Fixed Event interfaces
396*26f3cdf0SGordon Ross  */
3977c478bd9Sstevel@tonic-gate ACPI_STATUS
3987c478bd9Sstevel@tonic-gate AcpiEnableEvent (
3997c478bd9Sstevel@tonic-gate     UINT32                  Event,
4007c478bd9Sstevel@tonic-gate     UINT32                  Flags);
4017c478bd9Sstevel@tonic-gate 
4027c478bd9Sstevel@tonic-gate ACPI_STATUS
4037c478bd9Sstevel@tonic-gate AcpiDisableEvent (
4047c478bd9Sstevel@tonic-gate     UINT32                  Event,
4057c478bd9Sstevel@tonic-gate     UINT32                  Flags);
4067c478bd9Sstevel@tonic-gate 
4077c478bd9Sstevel@tonic-gate ACPI_STATUS
4087c478bd9Sstevel@tonic-gate AcpiClearEvent (
4097c478bd9Sstevel@tonic-gate     UINT32                  Event);
4107c478bd9Sstevel@tonic-gate 
4117c478bd9Sstevel@tonic-gate ACPI_STATUS
4127c478bd9Sstevel@tonic-gate AcpiGetEventStatus (
4137c478bd9Sstevel@tonic-gate     UINT32                  Event,
4147c478bd9Sstevel@tonic-gate     ACPI_EVENT_STATUS       *EventStatus);
4157c478bd9Sstevel@tonic-gate 
416aa2aa9a6SDana Myers 
417aa2aa9a6SDana Myers /*
418*26f3cdf0SGordon Ross  * General Purpose Event (GPE) Interfaces
419aa2aa9a6SDana Myers  */
4207c478bd9Sstevel@tonic-gate ACPI_STATUS
421*26f3cdf0SGordon Ross AcpiUpdateAllGpes (
422*26f3cdf0SGordon Ross     void);
4237c478bd9Sstevel@tonic-gate 
4247c478bd9Sstevel@tonic-gate ACPI_STATUS
4257c478bd9Sstevel@tonic-gate AcpiEnableGpe (
4267c478bd9Sstevel@tonic-gate     ACPI_HANDLE             GpeDevice,
427*26f3cdf0SGordon Ross     UINT32                  GpeNumber);
4287c478bd9Sstevel@tonic-gate 
4297c478bd9Sstevel@tonic-gate ACPI_STATUS
4307c478bd9Sstevel@tonic-gate AcpiDisableGpe (
4317c478bd9Sstevel@tonic-gate     ACPI_HANDLE             GpeDevice,
432*26f3cdf0SGordon Ross     UINT32                  GpeNumber);
4337c478bd9Sstevel@tonic-gate 
4347c478bd9Sstevel@tonic-gate ACPI_STATUS
4357c478bd9Sstevel@tonic-gate AcpiClearGpe (
436*26f3cdf0SGordon Ross     ACPI_HANDLE             GpeDevice,
437*26f3cdf0SGordon Ross     UINT32                  GpeNumber);
438*26f3cdf0SGordon Ross 
439*26f3cdf0SGordon Ross ACPI_STATUS
440*26f3cdf0SGordon Ross AcpiSetGpe (
4417c478bd9Sstevel@tonic-gate     ACPI_HANDLE             GpeDevice,
4427c478bd9Sstevel@tonic-gate     UINT32                  GpeNumber,
443*26f3cdf0SGordon Ross     UINT8                   Action);
444*26f3cdf0SGordon Ross 
445*26f3cdf0SGordon Ross ACPI_STATUS
446*26f3cdf0SGordon Ross AcpiFinishGpe (
447*26f3cdf0SGordon Ross     ACPI_HANDLE             GpeDevice,
448*26f3cdf0SGordon Ross     UINT32                  GpeNumber);
449*26f3cdf0SGordon Ross 
450*26f3cdf0SGordon Ross ACPI_STATUS
451*26f3cdf0SGordon Ross AcpiSetupGpeForWake (
452*26f3cdf0SGordon Ross     ACPI_HANDLE             ParentDevice,
453*26f3cdf0SGordon Ross     ACPI_HANDLE             GpeDevice,
454*26f3cdf0SGordon Ross     UINT32                  GpeNumber);
455*26f3cdf0SGordon Ross 
456*26f3cdf0SGordon Ross ACPI_STATUS
457*26f3cdf0SGordon Ross AcpiSetGpeWakeMask (
458*26f3cdf0SGordon Ross     ACPI_HANDLE             GpeDevice,
459*26f3cdf0SGordon Ross     UINT32                  GpeNumber,
460*26f3cdf0SGordon Ross     UINT8                   Action);
4617c478bd9Sstevel@tonic-gate 
4627c478bd9Sstevel@tonic-gate ACPI_STATUS
4637c478bd9Sstevel@tonic-gate AcpiGetGpeStatus (
4647c478bd9Sstevel@tonic-gate     ACPI_HANDLE             GpeDevice,
4657c478bd9Sstevel@tonic-gate     UINT32                  GpeNumber,
4667c478bd9Sstevel@tonic-gate     ACPI_EVENT_STATUS       *EventStatus);
4677c478bd9Sstevel@tonic-gate 
468aa2aa9a6SDana Myers ACPI_STATUS
469aa2aa9a6SDana Myers AcpiDisableAllGpes (
470aa2aa9a6SDana Myers     void);
471aa2aa9a6SDana Myers 
472aa2aa9a6SDana Myers ACPI_STATUS
473aa2aa9a6SDana Myers AcpiEnableAllRuntimeGpes (
474aa2aa9a6SDana Myers     void);
475aa2aa9a6SDana Myers 
476aa2aa9a6SDana Myers ACPI_STATUS
477aa2aa9a6SDana Myers AcpiGetGpeDevice (
478aa2aa9a6SDana Myers     UINT32                  GpeIndex,
479aa2aa9a6SDana Myers     ACPI_HANDLE             *GpeDevice);
480aa2aa9a6SDana Myers 
4817c478bd9Sstevel@tonic-gate ACPI_STATUS
4827c478bd9Sstevel@tonic-gate AcpiInstallGpeBlock (
4837c478bd9Sstevel@tonic-gate     ACPI_HANDLE             GpeDevice,
4847c478bd9Sstevel@tonic-gate     ACPI_GENERIC_ADDRESS    *GpeBlockAddress,
4857c478bd9Sstevel@tonic-gate     UINT32                  RegisterCount,
486450d6964Smyers     UINT32                  InterruptNumber);
4877c478bd9Sstevel@tonic-gate 
4887c478bd9Sstevel@tonic-gate ACPI_STATUS
4897c478bd9Sstevel@tonic-gate AcpiRemoveGpeBlock (
4907c478bd9Sstevel@tonic-gate     ACPI_HANDLE             GpeDevice);
4917c478bd9Sstevel@tonic-gate 
4927c478bd9Sstevel@tonic-gate 
4937c478bd9Sstevel@tonic-gate /*
4947c478bd9Sstevel@tonic-gate  * Resource interfaces
4957c478bd9Sstevel@tonic-gate  */
4967c478bd9Sstevel@tonic-gate typedef
4977c478bd9Sstevel@tonic-gate ACPI_STATUS (*ACPI_WALK_RESOURCE_CALLBACK) (
4987c478bd9Sstevel@tonic-gate     ACPI_RESOURCE           *Resource,
4997c478bd9Sstevel@tonic-gate     void                    *Context);
5007c478bd9Sstevel@tonic-gate 
50130082d0cSmyers ACPI_STATUS
50230082d0cSmyers AcpiGetVendorResource (
503*26f3cdf0SGordon Ross     ACPI_HANDLE             Device,
50430082d0cSmyers     char                    *Name,
50530082d0cSmyers     ACPI_VENDOR_UUID        *Uuid,
50630082d0cSmyers     ACPI_BUFFER             *RetBuffer);
5077c478bd9Sstevel@tonic-gate 
5087c478bd9Sstevel@tonic-gate ACPI_STATUS
509*26f3cdf0SGordon Ross AcpiGetCurrentResources (
510*26f3cdf0SGordon Ross     ACPI_HANDLE             Device,
5117c478bd9Sstevel@tonic-gate     ACPI_BUFFER             *RetBuffer);
5127c478bd9Sstevel@tonic-gate 
5137c478bd9Sstevel@tonic-gate ACPI_STATUS
514*26f3cdf0SGordon Ross AcpiGetPossibleResources (
515*26f3cdf0SGordon Ross     ACPI_HANDLE             Device,
5167c478bd9Sstevel@tonic-gate     ACPI_BUFFER             *RetBuffer);
5177c478bd9Sstevel@tonic-gate 
5187c478bd9Sstevel@tonic-gate ACPI_STATUS
5197c478bd9Sstevel@tonic-gate AcpiWalkResources (
520*26f3cdf0SGordon Ross     ACPI_HANDLE                 Device,
52130082d0cSmyers     char                        *Name,
52230082d0cSmyers     ACPI_WALK_RESOURCE_CALLBACK UserFunction,
52330082d0cSmyers     void                        *Context);
5247c478bd9Sstevel@tonic-gate 
5257c478bd9Sstevel@tonic-gate ACPI_STATUS
5267c478bd9Sstevel@tonic-gate AcpiSetCurrentResources (
527*26f3cdf0SGordon Ross     ACPI_HANDLE             Device,
5287c478bd9Sstevel@tonic-gate     ACPI_BUFFER             *InBuffer);
5297c478bd9Sstevel@tonic-gate 
5307c478bd9Sstevel@tonic-gate ACPI_STATUS
531*26f3cdf0SGordon Ross AcpiGetIrqRoutingTable (
532*26f3cdf0SGordon Ross     ACPI_HANDLE             Device,
5337c478bd9Sstevel@tonic-gate     ACPI_BUFFER             *RetBuffer);
5347c478bd9Sstevel@tonic-gate 
5357c478bd9Sstevel@tonic-gate ACPI_STATUS
5367c478bd9Sstevel@tonic-gate AcpiResourceToAddress64 (
5377c478bd9Sstevel@tonic-gate     ACPI_RESOURCE           *Resource,
5387c478bd9Sstevel@tonic-gate     ACPI_RESOURCE_ADDRESS64 *Out);
5397c478bd9Sstevel@tonic-gate 
540aa2aa9a6SDana Myers 
5417c478bd9Sstevel@tonic-gate /*
5427c478bd9Sstevel@tonic-gate  * Hardware (ACPI device) interfaces
5437c478bd9Sstevel@tonic-gate  */
5447c478bd9Sstevel@tonic-gate ACPI_STATUS
545aa2aa9a6SDana Myers AcpiReset (
546aa2aa9a6SDana Myers     void);
547db2bae30SDana Myers 
548db2bae30SDana Myers ACPI_STATUS
549aa2aa9a6SDana Myers AcpiRead (
55057190917SDana Myers     UINT64                  *Value,
551aa2aa9a6SDana Myers     ACPI_GENERIC_ADDRESS    *Reg);
5527c478bd9Sstevel@tonic-gate 
5537c478bd9Sstevel@tonic-gate ACPI_STATUS
554aa2aa9a6SDana Myers AcpiWrite (
55557190917SDana Myers     UINT64                  Value,
556aa2aa9a6SDana Myers     ACPI_GENERIC_ADDRESS    *Reg);
5577c478bd9Sstevel@tonic-gate 
5587c478bd9Sstevel@tonic-gate ACPI_STATUS
559aa2aa9a6SDana Myers AcpiReadBitRegister (
560aa2aa9a6SDana Myers     UINT32                  RegisterId,
561aa2aa9a6SDana Myers     UINT32                  *ReturnValue);
5627c478bd9Sstevel@tonic-gate 
5637c478bd9Sstevel@tonic-gate ACPI_STATUS
564aa2aa9a6SDana Myers AcpiWriteBitRegister (
565aa2aa9a6SDana Myers     UINT32                  RegisterId,
566aa2aa9a6SDana Myers     UINT32                  Value);
5677c478bd9Sstevel@tonic-gate 
5687c478bd9Sstevel@tonic-gate ACPI_STATUS
5697c478bd9Sstevel@tonic-gate AcpiGetSleepTypeData (
5707c478bd9Sstevel@tonic-gate     UINT8                   SleepState,
5717c478bd9Sstevel@tonic-gate     UINT8                   *Slp_TypA,
5727c478bd9Sstevel@tonic-gate     UINT8                   *Slp_TypB);
5737c478bd9Sstevel@tonic-gate 
5747c478bd9Sstevel@tonic-gate ACPI_STATUS
5757c478bd9Sstevel@tonic-gate AcpiEnterSleepStatePrep (
5767c478bd9Sstevel@tonic-gate     UINT8                   SleepState);
5777c478bd9Sstevel@tonic-gate 
5787c478bd9Sstevel@tonic-gate ACPI_STATUS
5797c478bd9Sstevel@tonic-gate AcpiEnterSleepState (
5807c478bd9Sstevel@tonic-gate     UINT8                   SleepState);
5817c478bd9Sstevel@tonic-gate 
5827c478bd9Sstevel@tonic-gate ACPI_STATUS
5837c478bd9Sstevel@tonic-gate AcpiEnterSleepStateS4bios (
5847c478bd9Sstevel@tonic-gate     void);
5857c478bd9Sstevel@tonic-gate 
5867c478bd9Sstevel@tonic-gate ACPI_STATUS
5877c478bd9Sstevel@tonic-gate AcpiLeaveSleepState (
588aa2aa9a6SDana Myers     UINT8                   SleepState)
589aa2aa9a6SDana Myers     ;
590aa2aa9a6SDana Myers ACPI_STATUS
591aa2aa9a6SDana Myers AcpiSetFirmwareWakingVector (
592aa2aa9a6SDana Myers     UINT32                  PhysicalAddress);
593aa2aa9a6SDana Myers 
594aa2aa9a6SDana Myers #if ACPI_MACHINE_WIDTH == 64
595aa2aa9a6SDana Myers ACPI_STATUS
596aa2aa9a6SDana Myers AcpiSetFirmwareWakingVector64 (
597aa2aa9a6SDana Myers     UINT64                  PhysicalAddress);
598aa2aa9a6SDana Myers #endif
599aa2aa9a6SDana Myers 
600aa2aa9a6SDana Myers 
601aa2aa9a6SDana Myers /*
602aa2aa9a6SDana Myers  * Error/Warning output
603aa2aa9a6SDana Myers  */
604aa2aa9a6SDana Myers void ACPI_INTERNAL_VAR_XFACE
605aa2aa9a6SDana Myers AcpiError (
606aa2aa9a6SDana Myers     const char              *ModuleName,
607aa2aa9a6SDana Myers     UINT32                  LineNumber,
608aa2aa9a6SDana Myers     const char              *Format,
609aa2aa9a6SDana Myers     ...) ACPI_PRINTF_LIKE(3);
610aa2aa9a6SDana Myers 
611aa2aa9a6SDana Myers void  ACPI_INTERNAL_VAR_XFACE
612aa2aa9a6SDana Myers AcpiException (
613aa2aa9a6SDana Myers     const char              *ModuleName,
614aa2aa9a6SDana Myers     UINT32                  LineNumber,
615aa2aa9a6SDana Myers     ACPI_STATUS             Status,
616aa2aa9a6SDana Myers     const char              *Format,
617aa2aa9a6SDana Myers     ...) ACPI_PRINTF_LIKE(4);
618aa2aa9a6SDana Myers 
619aa2aa9a6SDana Myers void ACPI_INTERNAL_VAR_XFACE
620aa2aa9a6SDana Myers AcpiWarning (
621aa2aa9a6SDana Myers     const char              *ModuleName,
622aa2aa9a6SDana Myers     UINT32                  LineNumber,
623aa2aa9a6SDana Myers     const char              *Format,
624aa2aa9a6SDana Myers     ...) ACPI_PRINTF_LIKE(3);
625aa2aa9a6SDana Myers 
626aa2aa9a6SDana Myers void ACPI_INTERNAL_VAR_XFACE
627aa2aa9a6SDana Myers AcpiInfo (
628aa2aa9a6SDana Myers     const char              *ModuleName,
629aa2aa9a6SDana Myers     UINT32                  LineNumber,
630aa2aa9a6SDana Myers     const char              *Format,
631aa2aa9a6SDana Myers     ...) ACPI_PRINTF_LIKE(3);
632aa2aa9a6SDana Myers 
6337c478bd9Sstevel@tonic-gate 
634aa2aa9a6SDana Myers /*
635aa2aa9a6SDana Myers  * Debug output
636aa2aa9a6SDana Myers  */
637aa2aa9a6SDana Myers #ifdef ACPI_DEBUG_OUTPUT
638aa2aa9a6SDana Myers 
639aa2aa9a6SDana Myers void ACPI_INTERNAL_VAR_XFACE
640aa2aa9a6SDana Myers AcpiDebugPrint (
641aa2aa9a6SDana Myers     UINT32                  RequestedDebugLevel,
642aa2aa9a6SDana Myers     UINT32                  LineNumber,
643aa2aa9a6SDana Myers     const char              *FunctionName,
644aa2aa9a6SDana Myers     const char              *ModuleName,
645aa2aa9a6SDana Myers     UINT32                  ComponentId,
646aa2aa9a6SDana Myers     const char              *Format,
647aa2aa9a6SDana Myers     ...) ACPI_PRINTF_LIKE(6);
648aa2aa9a6SDana Myers 
649aa2aa9a6SDana Myers void ACPI_INTERNAL_VAR_XFACE
650aa2aa9a6SDana Myers AcpiDebugPrintRaw (
651aa2aa9a6SDana Myers     UINT32                  RequestedDebugLevel,
652aa2aa9a6SDana Myers     UINT32                  LineNumber,
653aa2aa9a6SDana Myers     const char              *FunctionName,
654aa2aa9a6SDana Myers     const char              *ModuleName,
655aa2aa9a6SDana Myers     UINT32                  ComponentId,
656aa2aa9a6SDana Myers     const char              *Format,
657aa2aa9a6SDana Myers     ...) ACPI_PRINTF_LIKE(6);
658aa2aa9a6SDana Myers #endif
6597c478bd9Sstevel@tonic-gate 
6607c478bd9Sstevel@tonic-gate #endif /* __ACXFACE_H__ */
661