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