acpixf.h revision 238381
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 51238381Sjkim#define ACPI_CA_VERSION 0x20120711 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> 5667754Smsmith 57193267Sjkim/* 58193267Sjkim * Globals that are publically available 59193267Sjkim */ 60193267Sjkimextern UINT32 AcpiCurrentGpeCount; 61193267Sjkimextern ACPI_TABLE_FADT AcpiGbl_FADT; 62212761Sjkimextern BOOLEAN AcpiGbl_SystemAwakeAndRunning; 63228110Sjkimextern BOOLEAN AcpiGbl_ReducedHardware; /* ACPI 5.0 */ 6477424Smsmith 65193267Sjkim/* Runtime configuration of debug print levels */ 66193267Sjkim 67193267Sjkimextern UINT32 AcpiDbgLevel; 68193267Sjkimextern UINT32 AcpiDbgLayer; 69193267Sjkim 70193267Sjkim/* ACPICA runtime options */ 71193267Sjkim 72193267Sjkimextern UINT8 AcpiGbl_EnableInterpreterSlack; 73193267Sjkimextern UINT8 AcpiGbl_AllMethodsSerialized; 74193267Sjkimextern UINT8 AcpiGbl_CreateOsiMethod; 75193267Sjkimextern UINT8 AcpiGbl_UseDefaultRegisterWidths; 76193267Sjkimextern ACPI_NAME AcpiGbl_TraceMethodName; 77193267Sjkimextern UINT32 AcpiGbl_TraceFlags; 78204773Sjkimextern UINT8 AcpiGbl_EnableAmlDebugObject; 79206117Sjkimextern UINT8 AcpiGbl_CopyDsdtLocally; 80209746Sjkimextern UINT8 AcpiGbl_TruncateIoAddresses; 81228110Sjkimextern UINT8 AcpiGbl_DisableAutoRepair; 82193267Sjkim 83193267Sjkim 84151937Sjkim/* 85231844Sjkim * Hardware-reduced prototypes. All interfaces that use these macros will 86231844Sjkim * be configured out of the ACPICA build if the ACPI_REDUCED_HARDWARE flag 87231844Sjkim * is set to TRUE. 88231844Sjkim */ 89231844Sjkim#if (!ACPI_REDUCED_HARDWARE) 90231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_STATUS(Prototype) \ 91231844Sjkim Prototype; 92231844Sjkim 93231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_OK(Prototype) \ 94231844Sjkim Prototype; 95231844Sjkim 96231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_VOID(Prototype) \ 97231844Sjkim Prototype; 98231844Sjkim 99231844Sjkim#else 100231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_STATUS(Prototype) \ 101231844Sjkim static ACPI_INLINE Prototype {return(AE_NOT_CONFIGURED);} 102231844Sjkim 103231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_OK(Prototype) \ 104231844Sjkim static ACPI_INLINE Prototype {return(AE_OK);} 105231844Sjkim 106231844Sjkim#define ACPI_HW_DEPENDENT_RETURN_VOID(Prototype) \ 107231844Sjkim static ACPI_INLINE Prototype {} 108231844Sjkim 109231844Sjkim#endif /* !ACPI_REDUCED_HARDWARE */ 110231844Sjkim 111231844Sjkim 112231844Sjkim/* 113216471Sjkim * Initialization 11467754Smsmith */ 11567754SmsmithACPI_STATUS 116167802SjkimAcpiInitializeTables ( 117167802Sjkim ACPI_TABLE_DESC *InitialStorage, 118167802Sjkim UINT32 InitialTableCount, 119167802Sjkim BOOLEAN AllowResize); 120167802Sjkim 121167802SjkimACPI_STATUS 12267754SmsmithAcpiInitializeSubsystem ( 12367754Smsmith void); 12467754Smsmith 12567754SmsmithACPI_STATUS 12667754SmsmithAcpiEnableSubsystem ( 12767754Smsmith UINT32 Flags); 12867754Smsmith 12967754SmsmithACPI_STATUS 130100966SiwasakiAcpiInitializeObjects ( 131100966Siwasaki UINT32 Flags); 132100966Siwasaki 133100966SiwasakiACPI_STATUS 13467754SmsmithAcpiTerminate ( 13567754Smsmith void); 13667754Smsmith 13780062Smsmith 138216471Sjkim/* 139216471Sjkim * Miscellaneous global interfaces 140216471Sjkim */ 141231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 14280062SmsmithACPI_STATUS 14367754SmsmithAcpiEnable ( 144231844Sjkim void)) 14567754Smsmith 146231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 14767754SmsmithACPI_STATUS 14867754SmsmithAcpiDisable ( 149231844Sjkim void)) 15067754Smsmith 15167754SmsmithACPI_STATUS 152216471SjkimAcpiSubsystemStatus ( 153216471Sjkim void); 154216471Sjkim 155216471SjkimACPI_STATUS 15680062SmsmithAcpiGetSystemInfo ( 15767754Smsmith ACPI_BUFFER *RetBuffer); 15867754Smsmith 159193267SjkimACPI_STATUS 160193267SjkimAcpiGetStatistics ( 161193267Sjkim ACPI_STATISTICS *Stats); 162193267Sjkim 16380062Smsmithconst char * 16467754SmsmithAcpiFormatException ( 16580062Smsmith ACPI_STATUS Exception); 16667754Smsmith 16787031SmsmithACPI_STATUS 16887031SmsmithAcpiPurgeCachedObjects ( 16987031Smsmith void); 17067754Smsmith 171210976SjkimACPI_STATUS 172210976SjkimAcpiInstallInterface ( 173210976Sjkim ACPI_STRING InterfaceName); 17487031Smsmith 175210976SjkimACPI_STATUS 176210976SjkimAcpiRemoveInterface ( 177210976Sjkim ACPI_STRING InterfaceName); 178210976Sjkim 179229989SjkimUINT32 180229989SjkimAcpiCheckAddressRange ( 181229989Sjkim ACPI_ADR_SPACE_TYPE SpaceId, 182229989Sjkim ACPI_PHYSICAL_ADDRESS Address, 183229989Sjkim ACPI_SIZE Length, 184229989Sjkim BOOLEAN Warn); 185216471Sjkim 186229989Sjkim 18767754Smsmith/* 188210976Sjkim * ACPI Memory management 18977424Smsmith */ 19077424Smsmithvoid * 19177424SmsmithAcpiAllocate ( 19277424Smsmith UINT32 Size); 19377424Smsmith 19477424Smsmithvoid * 19577424SmsmithAcpiCallocate ( 19677424Smsmith UINT32 Size); 19777424Smsmith 19877424Smsmithvoid 19977424SmsmithAcpiFree ( 20077424Smsmith void *Address); 20177424Smsmith 20277424Smsmith 20377424Smsmith/* 204238381Sjkim * ACPI table load/unload interfaces 205238381Sjkim */ 206238381SjkimACPI_STATUS 207238381SjkimAcpiLoadTable ( 208238381Sjkim ACPI_TABLE_HEADER *Table); 209238381Sjkim 210238381SjkimACPI_STATUS 211238381SjkimAcpiUnloadParentTable ( 212238381Sjkim ACPI_HANDLE Object); 213238381Sjkim 214238381SjkimACPI_STATUS 215238381SjkimAcpiLoadTables ( 216238381Sjkim void); 217238381Sjkim 218238381Sjkim 219238381Sjkim/* 22067754Smsmith * ACPI table manipulation interfaces 22167754Smsmith */ 22267754SmsmithACPI_STATUS 223167802SjkimAcpiReallocateRootTable ( 224167802Sjkim void); 225167802Sjkim 226167802SjkimACPI_STATUS 22767754SmsmithAcpiFindRootPointer ( 228193267Sjkim ACPI_SIZE *RsdpAddress); 22967754Smsmith 23067754SmsmithACPI_STATUS 23167754SmsmithAcpiGetTableHeader ( 232167802Sjkim ACPI_STRING Signature, 233193267Sjkim UINT32 Instance, 23467754Smsmith ACPI_TABLE_HEADER *OutTableHeader); 23567754Smsmith 23667754SmsmithACPI_STATUS 23767754SmsmithAcpiGetTable ( 238167802Sjkim ACPI_STRING Signature, 239193267Sjkim UINT32 Instance, 240167802Sjkim ACPI_TABLE_HEADER **OutTable); 24167754Smsmith 24278986SmsmithACPI_STATUS 243167802SjkimAcpiGetTableByIndex ( 244193267Sjkim UINT32 TableIndex, 245167802Sjkim ACPI_TABLE_HEADER **OutTable); 24667754Smsmith 247193267SjkimACPI_STATUS 248193267SjkimAcpiInstallTableHandler ( 249193267Sjkim ACPI_TABLE_HANDLER Handler, 250193267Sjkim void *Context); 25178986Smsmith 252193267SjkimACPI_STATUS 253193267SjkimAcpiRemoveTableHandler ( 254193267Sjkim ACPI_TABLE_HANDLER Handler); 255193267Sjkim 256193267Sjkim 25767754Smsmith/* 25867754Smsmith * Namespace and name interfaces 25967754Smsmith */ 26067754SmsmithACPI_STATUS 26167754SmsmithAcpiWalkNamespace ( 26267754Smsmith ACPI_OBJECT_TYPE Type, 26367754Smsmith ACPI_HANDLE StartObject, 26467754Smsmith UINT32 MaxDepth, 265199337Sjkim ACPI_WALK_CALLBACK PreOrderVisit, 266199337Sjkim ACPI_WALK_CALLBACK PostOrderVisit, 26767754Smsmith void *Context, 268114237Snjl void **ReturnValue); 26967754Smsmith 27067754SmsmithACPI_STATUS 27167754SmsmithAcpiGetDevices ( 272114237Snjl char *HID, 27377424Smsmith ACPI_WALK_CALLBACK UserFunction, 27467754Smsmith void *Context, 27567754Smsmith void **ReturnValue); 27667754Smsmith 27767754SmsmithACPI_STATUS 27867754SmsmithAcpiGetName ( 279207344Sjkim ACPI_HANDLE Object, 28067754Smsmith UINT32 NameType, 28167754Smsmith ACPI_BUFFER *RetPathPtr); 28267754Smsmith 28367754SmsmithACPI_STATUS 28467754SmsmithAcpiGetHandle ( 28567754Smsmith ACPI_HANDLE Parent, 28667754Smsmith ACPI_STRING Pathname, 28767754Smsmith ACPI_HANDLE *RetHandle); 28867754Smsmith 28987031SmsmithACPI_STATUS 29087031SmsmithAcpiAttachData ( 291207344Sjkim ACPI_HANDLE Object, 29287031Smsmith ACPI_OBJECT_HANDLER Handler, 29387031Smsmith void *Data); 29467754Smsmith 29587031SmsmithACPI_STATUS 29687031SmsmithAcpiDetachData ( 297207344Sjkim ACPI_HANDLE Object, 29887031Smsmith ACPI_OBJECT_HANDLER Handler); 29987031Smsmith 30087031SmsmithACPI_STATUS 30187031SmsmithAcpiGetData ( 302207344Sjkim ACPI_HANDLE Object, 30387031Smsmith ACPI_OBJECT_HANDLER Handler, 30487031Smsmith void **Data); 30587031Smsmith 306151937SjkimACPI_STATUS 307151937SjkimAcpiDebugTrace ( 308151937Sjkim char *Name, 309151937Sjkim UINT32 DebugLevel, 310151937Sjkim UINT32 DebugLayer, 311151937Sjkim UINT32 Flags); 31287031Smsmith 313151937Sjkim 31467754Smsmith/* 31567754Smsmith * Object manipulation and enumeration 31667754Smsmith */ 31767754SmsmithACPI_STATUS 31867754SmsmithAcpiEvaluateObject ( 31967754Smsmith ACPI_HANDLE Object, 32067754Smsmith ACPI_STRING Pathname, 32167754Smsmith ACPI_OBJECT_LIST *ParameterObjects, 32267754Smsmith ACPI_BUFFER *ReturnObjectBuffer); 32367754Smsmith 32467754SmsmithACPI_STATUS 32599679SiwasakiAcpiEvaluateObjectTyped ( 32699679Siwasaki ACPI_HANDLE Object, 32799679Siwasaki ACPI_STRING Pathname, 32899679Siwasaki ACPI_OBJECT_LIST *ExternalParams, 32999679Siwasaki ACPI_BUFFER *ReturnBuffer, 33099679Siwasaki ACPI_OBJECT_TYPE ReturnType); 33199679Siwasaki 33299679SiwasakiACPI_STATUS 33367754SmsmithAcpiGetObjectInfo ( 334207344Sjkim ACPI_HANDLE Object, 335197104Sjkim ACPI_DEVICE_INFO **ReturnBuffer); 33667754Smsmith 33767754SmsmithACPI_STATUS 338193267SjkimAcpiInstallMethod ( 339193267Sjkim UINT8 *Buffer); 340193267Sjkim 341193267SjkimACPI_STATUS 34267754SmsmithAcpiGetNextObject ( 34367754Smsmith ACPI_OBJECT_TYPE Type, 34467754Smsmith ACPI_HANDLE Parent, 34567754Smsmith ACPI_HANDLE Child, 34667754Smsmith ACPI_HANDLE *OutHandle); 34767754Smsmith 34867754SmsmithACPI_STATUS 34967754SmsmithAcpiGetType ( 35067754Smsmith ACPI_HANDLE Object, 35167754Smsmith ACPI_OBJECT_TYPE *OutType); 35267754Smsmith 35367754SmsmithACPI_STATUS 35467754SmsmithAcpiGetParent ( 35567754Smsmith ACPI_HANDLE Object, 35667754Smsmith ACPI_HANDLE *OutHandle); 35767754Smsmith 35867754Smsmith 35967754Smsmith/* 360193267Sjkim * Handler interfaces 36167754Smsmith */ 36267754SmsmithACPI_STATUS 363193267SjkimAcpiInstallInitializationHandler ( 364193267Sjkim ACPI_INIT_HANDLER Handler, 365193267Sjkim UINT32 Function); 366193267Sjkim 367231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 368193267SjkimACPI_STATUS 369216471SjkimAcpiInstallGlobalEventHandler ( 370216471Sjkim ACPI_GBL_EVENT_HANDLER Handler, 371231844Sjkim void *Context)) 372216471Sjkim 373231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 374216471SjkimACPI_STATUS 37567754SmsmithAcpiInstallFixedEventHandler ( 37667754Smsmith UINT32 AcpiEvent, 37777424Smsmith ACPI_EVENT_HANDLER Handler, 378231844Sjkim void *Context)) 37967754Smsmith 380231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 38167754SmsmithACPI_STATUS 38267754SmsmithAcpiRemoveFixedEventHandler ( 38367754Smsmith UINT32 AcpiEvent, 384231844Sjkim ACPI_EVENT_HANDLER Handler)) 38567754Smsmith 386231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 38767754SmsmithACPI_STATUS 388216471SjkimAcpiInstallGpeHandler ( 389216471Sjkim ACPI_HANDLE GpeDevice, 390216471Sjkim UINT32 GpeNumber, 391216471Sjkim UINT32 Type, 392216471Sjkim ACPI_GPE_HANDLER Address, 393231844Sjkim void *Context)) 394216471Sjkim 395231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 396216471SjkimACPI_STATUS 397216471SjkimAcpiRemoveGpeHandler ( 398216471Sjkim ACPI_HANDLE GpeDevice, 399216471Sjkim UINT32 GpeNumber, 400231844Sjkim ACPI_GPE_HANDLER Address)) 401216471Sjkim 402216471SjkimACPI_STATUS 40367754SmsmithAcpiInstallNotifyHandler ( 40467754Smsmith ACPI_HANDLE Device, 40567754Smsmith UINT32 HandlerType, 40677424Smsmith ACPI_NOTIFY_HANDLER Handler, 40767754Smsmith void *Context); 40867754Smsmith 40967754SmsmithACPI_STATUS 41067754SmsmithAcpiRemoveNotifyHandler ( 41167754Smsmith ACPI_HANDLE Device, 41267754Smsmith UINT32 HandlerType, 41377424Smsmith ACPI_NOTIFY_HANDLER Handler); 41467754Smsmith 41567754SmsmithACPI_STATUS 41667754SmsmithAcpiInstallAddressSpaceHandler ( 41767754Smsmith ACPI_HANDLE Device, 41877424Smsmith ACPI_ADR_SPACE_TYPE SpaceId, 41977424Smsmith ACPI_ADR_SPACE_HANDLER Handler, 42077424Smsmith ACPI_ADR_SPACE_SETUP Setup, 42167754Smsmith void *Context); 42267754Smsmith 42367754SmsmithACPI_STATUS 42467754SmsmithAcpiRemoveAddressSpaceHandler ( 42567754Smsmith ACPI_HANDLE Device, 42677424Smsmith ACPI_ADR_SPACE_TYPE SpaceId, 42777424Smsmith ACPI_ADR_SPACE_HANDLER Handler); 42867754Smsmith 42967754SmsmithACPI_STATUS 430138287SmarksAcpiInstallExceptionHandler ( 431138287Smarks ACPI_EXCEPTION_HANDLER Handler); 432138287Smarks 433210976SjkimACPI_STATUS 434210976SjkimAcpiInstallInterfaceHandler ( 435210976Sjkim ACPI_INTERFACE_HANDLER Handler); 436138287Smarks 437210976Sjkim 438138287Smarks/* 439216471Sjkim * Global Lock interfaces 440138287Smarks */ 441231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 442138287SmarksACPI_STATUS 44367754SmsmithAcpiAcquireGlobalLock ( 444107325Siwasaki UINT16 Timeout, 445231844Sjkim UINT32 *Handle)) 44667754Smsmith 447231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 44867754SmsmithACPI_STATUS 44967754SmsmithAcpiReleaseGlobalLock ( 450231844Sjkim UINT32 Handle)) 45167754Smsmith 452216471Sjkim 453216471Sjkim/* 454228110Sjkim * Interfaces to AML mutex objects 455228110Sjkim */ 456228110SjkimACPI_STATUS 457228110SjkimAcpiAcquireMutex ( 458228110Sjkim ACPI_HANDLE Handle, 459228110Sjkim ACPI_STRING Pathname, 460228110Sjkim UINT16 Timeout); 461228110Sjkim 462228110SjkimACPI_STATUS 463228110SjkimAcpiReleaseMutex ( 464228110Sjkim ACPI_HANDLE Handle, 465228110Sjkim ACPI_STRING Pathname); 466228110Sjkim 467228110Sjkim 468228110Sjkim/* 469216471Sjkim * Fixed Event interfaces 470216471Sjkim */ 471231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 47267754SmsmithACPI_STATUS 47367754SmsmithAcpiEnableEvent ( 474117521Snjl UINT32 Event, 475231844Sjkim UINT32 Flags)) 47667754Smsmith 477231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 47867754SmsmithACPI_STATUS 47967754SmsmithAcpiDisableEvent ( 480117521Snjl UINT32 Event, 481231844Sjkim UINT32 Flags)) 48267754Smsmith 483231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 48467754SmsmithACPI_STATUS 48567754SmsmithAcpiClearEvent ( 486231844Sjkim UINT32 Event)) 48767754Smsmith 488231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 48967754SmsmithACPI_STATUS 49067754SmsmithAcpiGetEventStatus ( 491117521Snjl UINT32 Event, 492231844Sjkim ACPI_EVENT_STATUS *EventStatus)) 49367754Smsmith 494193267Sjkim 495193267Sjkim/* 496216471Sjkim * General Purpose Event (GPE) Interfaces 497193267Sjkim */ 498231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 499117521SnjlACPI_STATUS 500216471SjkimAcpiUpdateAllGpes ( 501231844Sjkim void)) 502129684Snjl 503231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 504129684SnjlACPI_STATUS 505117521SnjlAcpiEnableGpe ( 506117521Snjl ACPI_HANDLE GpeDevice, 507231844Sjkim UINT32 GpeNumber)) 508117521Snjl 509231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 510117521SnjlACPI_STATUS 511117521SnjlAcpiDisableGpe ( 512117521Snjl ACPI_HANDLE GpeDevice, 513231844Sjkim UINT32 GpeNumber)) 514117521Snjl 515231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 516117521SnjlACPI_STATUS 517117521SnjlAcpiClearGpe ( 518117521Snjl ACPI_HANDLE GpeDevice, 519231844Sjkim UINT32 GpeNumber)) 520117521Snjl 521231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 522117521SnjlACPI_STATUS 523216471SjkimAcpiSetGpe ( 524209746Sjkim ACPI_HANDLE GpeDevice, 525209746Sjkim UINT32 GpeNumber, 526231844Sjkim UINT8 Action)) 527209746Sjkim 528231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 529209746SjkimACPI_STATUS 530216471SjkimAcpiFinishGpe ( 531216471Sjkim ACPI_HANDLE GpeDevice, 532231844Sjkim UINT32 GpeNumber)) 533216471Sjkim 534231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 535216471SjkimACPI_STATUS 536216471SjkimAcpiSetupGpeForWake ( 537216471Sjkim ACPI_HANDLE ParentDevice, 538216471Sjkim ACPI_HANDLE GpeDevice, 539231844Sjkim UINT32 GpeNumber)) 540216471Sjkim 541231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 542216471SjkimACPI_STATUS 543216471SjkimAcpiSetGpeWakeMask ( 544216471Sjkim ACPI_HANDLE GpeDevice, 545216471Sjkim UINT32 GpeNumber, 546231844Sjkim UINT8 Action)) 547216471Sjkim 548231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 549216471SjkimACPI_STATUS 550117521SnjlAcpiGetGpeStatus ( 551117521Snjl ACPI_HANDLE GpeDevice, 552117521Snjl UINT32 GpeNumber, 553231844Sjkim ACPI_EVENT_STATUS *EventStatus)) 554117521Snjl 555231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 556117521SnjlACPI_STATUS 557193267SjkimAcpiDisableAllGpes ( 558231844Sjkim void)) 559193267Sjkim 560231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 561193267SjkimACPI_STATUS 562193267SjkimAcpiEnableAllRuntimeGpes ( 563231844Sjkim void)) 564193267Sjkim 565231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 566193267SjkimACPI_STATUS 567193267SjkimAcpiGetGpeDevice ( 568193267Sjkim UINT32 GpeIndex, 569231844Sjkim ACPI_HANDLE *GpeDevice)) 570193267Sjkim 571231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 572193267SjkimACPI_STATUS 573117521SnjlAcpiInstallGpeBlock ( 574117521Snjl ACPI_HANDLE GpeDevice, 575117521Snjl ACPI_GENERIC_ADDRESS *GpeBlockAddress, 576117521Snjl UINT32 RegisterCount, 577231844Sjkim UINT32 InterruptNumber)) 578117521Snjl 579231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 580117521SnjlACPI_STATUS 581117521SnjlAcpiRemoveGpeBlock ( 582231844Sjkim ACPI_HANDLE GpeDevice)) 583117521Snjl 584117521Snjl 58567754Smsmith/* 58667754Smsmith * Resource interfaces 58767754Smsmith */ 588114237Snjltypedef 589114237SnjlACPI_STATUS (*ACPI_WALK_RESOURCE_CALLBACK) ( 590114237Snjl ACPI_RESOURCE *Resource, 591114237Snjl void *Context); 592114237Snjl 593167802SjkimACPI_STATUS 594167802SjkimAcpiGetVendorResource ( 595207344Sjkim ACPI_HANDLE Device, 596167802Sjkim char *Name, 597167802Sjkim ACPI_VENDOR_UUID *Uuid, 598167802Sjkim ACPI_BUFFER *RetBuffer); 599114237Snjl 60067754SmsmithACPI_STATUS 601207344SjkimAcpiGetCurrentResources ( 602207344Sjkim ACPI_HANDLE Device, 60367754Smsmith ACPI_BUFFER *RetBuffer); 60467754Smsmith 60567754SmsmithACPI_STATUS 606207344SjkimAcpiGetPossibleResources ( 607207344Sjkim ACPI_HANDLE Device, 60867754Smsmith ACPI_BUFFER *RetBuffer); 60967754Smsmith 61067754SmsmithACPI_STATUS 611228110SjkimAcpiGetEventResources ( 612228110Sjkim ACPI_HANDLE DeviceHandle, 613228110Sjkim ACPI_BUFFER *RetBuffer); 614228110Sjkim 615228110SjkimACPI_STATUS 616114237SnjlAcpiWalkResources ( 617207344Sjkim ACPI_HANDLE Device, 618167802Sjkim char *Name, 619167802Sjkim ACPI_WALK_RESOURCE_CALLBACK UserFunction, 620167802Sjkim void *Context); 621114237Snjl 622114237SnjlACPI_STATUS 62367754SmsmithAcpiSetCurrentResources ( 624207344Sjkim ACPI_HANDLE Device, 62567754Smsmith ACPI_BUFFER *InBuffer); 62667754Smsmith 62767754SmsmithACPI_STATUS 628207344SjkimAcpiGetIrqRoutingTable ( 629207344Sjkim ACPI_HANDLE Device, 63067754Smsmith ACPI_BUFFER *RetBuffer); 63167754Smsmith 632114237SnjlACPI_STATUS 633114237SnjlAcpiResourceToAddress64 ( 634114237Snjl ACPI_RESOURCE *Resource, 635114237Snjl ACPI_RESOURCE_ADDRESS64 *Out); 63667754Smsmith 637228110SjkimACPI_STATUS 638228110SjkimAcpiBufferToResource ( 639228110Sjkim UINT8 *AmlBuffer, 640228110Sjkim UINT16 AmlBufferLength, 641228110Sjkim ACPI_RESOURCE **ResourcePtr); 642193267Sjkim 643228110Sjkim 64467754Smsmith/* 64567754Smsmith * Hardware (ACPI device) interfaces 64667754Smsmith */ 64767754SmsmithACPI_STATUS 648193267SjkimAcpiReset ( 649193267Sjkim void); 650193267Sjkim 651193267SjkimACPI_STATUS 652193267SjkimAcpiRead ( 653197104Sjkim UINT64 *Value, 654193267Sjkim ACPI_GENERIC_ADDRESS *Reg); 655193267Sjkim 656193267SjkimACPI_STATUS 657193267SjkimAcpiWrite ( 658197104Sjkim UINT64 Value, 659193267Sjkim ACPI_GENERIC_ADDRESS *Reg); 660193267Sjkim 661231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 662193267SjkimACPI_STATUS 663193267SjkimAcpiReadBitRegister ( 66499679Siwasaki UINT32 RegisterId, 665231844Sjkim UINT32 *ReturnValue)) 66699679Siwasaki 667231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 66899679SiwasakiACPI_STATUS 669193267SjkimAcpiWriteBitRegister ( 67099679Siwasaki UINT32 RegisterId, 671231844Sjkim UINT32 Value)) 67299679Siwasaki 673231844Sjkim 674231844Sjkim/* 675231844Sjkim * Sleep/Wake interfaces 676231844Sjkim */ 67799679SiwasakiACPI_STATUS 67899679SiwasakiAcpiGetSleepTypeData ( 67999679Siwasaki UINT8 SleepState, 68099679Siwasaki UINT8 *Slp_TypA, 68199679Siwasaki UINT8 *Slp_TypB); 68287031Smsmith 68367754SmsmithACPI_STATUS 68487031SmsmithAcpiEnterSleepStatePrep ( 68599679Siwasaki UINT8 SleepState); 68687031Smsmith 68787031SmsmithACPI_STATUS 68871867SmsmithAcpiEnterSleepState ( 689233250Sjkim UINT8 SleepState, 690233250Sjkim UINT8 Flags); 69171867Smsmith 692231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 69371867SmsmithACPI_STATUS 694114237SnjlAcpiEnterSleepStateS4bios ( 695231844Sjkim void)) 696114237Snjl 697114237SnjlACPI_STATUS 698231844SjkimAcpiLeaveSleepStatePrep ( 699233250Sjkim UINT8 SleepState, 700233250Sjkim UINT8 Flags); 701231844Sjkim 702231844SjkimACPI_STATUS 70382367SmsmithAcpiLeaveSleepState ( 704231844Sjkim UINT8 SleepState); 705231844Sjkim 706231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 707193267SjkimACPI_STATUS 708193267SjkimAcpiSetFirmwareWakingVector ( 709231844Sjkim UINT32 PhysicalAddress)) 71067754Smsmith 711193267Sjkim#if ACPI_MACHINE_WIDTH == 64 712231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 713193267SjkimACPI_STATUS 714193267SjkimAcpiSetFirmwareWakingVector64 ( 715231844Sjkim UINT64 PhysicalAddress)) 716193267Sjkim#endif 71799679Siwasaki 718193267Sjkim 719193267Sjkim/* 720231844Sjkim * ACPI Timer interfaces 721231844Sjkim */ 722231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 723231844SjkimACPI_STATUS 724231844SjkimAcpiGetTimerResolution ( 725231844Sjkim UINT32 *Resolution)) 726231844Sjkim 727231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 728231844SjkimACPI_STATUS 729231844SjkimAcpiGetTimer ( 730231844Sjkim UINT32 *Ticks)) 731231844Sjkim 732231844SjkimACPI_HW_DEPENDENT_RETURN_STATUS ( 733231844SjkimACPI_STATUS 734231844SjkimAcpiGetTimerDuration ( 735231844Sjkim UINT32 StartTicks, 736231844Sjkim UINT32 EndTicks, 737231844Sjkim UINT32 *TimeElapsed)) 738231844Sjkim 739231844Sjkim 740231844Sjkim/* 741193267Sjkim * Error/Warning output 742193267Sjkim */ 743193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE 744193267SjkimAcpiError ( 745193267Sjkim const char *ModuleName, 746193267Sjkim UINT32 LineNumber, 747193267Sjkim const char *Format, 748193267Sjkim ...) ACPI_PRINTF_LIKE(3); 749193267Sjkim 750193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE 751193267SjkimAcpiException ( 752193267Sjkim const char *ModuleName, 753193267Sjkim UINT32 LineNumber, 754193267Sjkim ACPI_STATUS Status, 755193267Sjkim const char *Format, 756193267Sjkim ...) ACPI_PRINTF_LIKE(4); 757193267Sjkim 758193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE 759193267SjkimAcpiWarning ( 760193267Sjkim const char *ModuleName, 761193267Sjkim UINT32 LineNumber, 762193267Sjkim const char *Format, 763193267Sjkim ...) ACPI_PRINTF_LIKE(3); 764193267Sjkim 765193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE 766193267SjkimAcpiInfo ( 767193267Sjkim const char *ModuleName, 768193267Sjkim UINT32 LineNumber, 769193267Sjkim const char *Format, 770193267Sjkim ...) ACPI_PRINTF_LIKE(3); 771193267Sjkim 772238381Sjkimvoid ACPI_INTERNAL_VAR_XFACE 773238381SjkimAcpiBiosError ( 774238381Sjkim const char *ModuleName, 775238381Sjkim UINT32 LineNumber, 776238381Sjkim const char *Format, 777238381Sjkim ...) ACPI_PRINTF_LIKE(3); 778193267Sjkim 779238381Sjkimvoid ACPI_INTERNAL_VAR_XFACE 780238381SjkimAcpiBiosWarning ( 781238381Sjkim const char *ModuleName, 782238381Sjkim UINT32 LineNumber, 783238381Sjkim const char *Format, 784238381Sjkim ...) ACPI_PRINTF_LIKE(3); 785238381Sjkim 786238381Sjkim 787193267Sjkim/* 788193267Sjkim * Debug output 789193267Sjkim */ 790193267Sjkim#ifdef ACPI_DEBUG_OUTPUT 791193267Sjkim 792193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE 793193267SjkimAcpiDebugPrint ( 794193267Sjkim UINT32 RequestedDebugLevel, 795193267Sjkim UINT32 LineNumber, 796193267Sjkim const char *FunctionName, 797193267Sjkim const char *ModuleName, 798193267Sjkim UINT32 ComponentId, 799193267Sjkim const char *Format, 800193267Sjkim ...) ACPI_PRINTF_LIKE(6); 801193267Sjkim 802193267Sjkimvoid ACPI_INTERNAL_VAR_XFACE 803193267SjkimAcpiDebugPrintRaw ( 804193267Sjkim UINT32 RequestedDebugLevel, 805193267Sjkim UINT32 LineNumber, 806193267Sjkim const char *FunctionName, 807193267Sjkim const char *ModuleName, 808193267Sjkim UINT32 ComponentId, 809193267Sjkim const char *Format, 810193267Sjkim ...) ACPI_PRINTF_LIKE(6); 811193267Sjkim#endif 812193267Sjkim 81367754Smsmith#endif /* __ACXFACE_H__ */ 814