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