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