1 /******************************************************************************
   2  *
   3  * Name: acpixf.h - External interfaces to the ACPI subsystem
   4  *
   5  *****************************************************************************/
   6 
   7 /*
   8  * Copyright (C) 2000 - 2014, Intel Corp.
   9  * All rights reserved.
  10  *
  11  * Redistribution and use in source and binary forms, with or without
  12  * modification, are permitted provided that the following conditions
  13  * are met:
  14  * 1. Redistributions of source code must retain the above copyright
  15  *    notice, this list of conditions, and the following disclaimer,
  16  *    without modification.
  17  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
  18  *    substantially similar to the "NO WARRANTY" disclaimer below
  19  *    ("Disclaimer") and any redistribution must be conditioned upon
  20  *    including a substantially similar Disclaimer requirement for further
  21  *    binary redistribution.
  22  * 3. Neither the names of the above-listed copyright holders nor the names
  23  *    of any contributors may be used to endorse or promote products derived
  24  *    from this software without specific prior written permission.
  25  *
  26  * Alternatively, this software may be distributed under the terms of the
  27  * GNU General Public License ("GPL") version 2 as published by the Free
  28  * Software Foundation.
  29  *
  30  * NO WARRANTY
  31  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  32  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  33  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
  34  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  35  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  36  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  37  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  38  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
  39  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
  40  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  41  * POSSIBILITY OF SUCH DAMAGES.
  42  */
  43 
  44 
  45 #ifndef __ACXFACE_H__
  46 #define __ACXFACE_H__
  47 
  48 /* Current ACPICA subsystem version in YYYYMMDD format */
  49 
  50 #define ACPI_CA_VERSION                 0x20140114
  51 
  52 #include "acconfig.h"
  53 #include "actypes.h"
  54 #include "actbl.h"
  55 #include "acbuffer.h"
  56 
  57 /*
  58  * Globals that are publically available
  59  */
  60 extern UINT32               AcpiCurrentGpeCount;
  61 extern ACPI_TABLE_FADT      AcpiGbl_FADT;
  62 extern BOOLEAN              AcpiGbl_SystemAwakeAndRunning;
  63 extern BOOLEAN              AcpiGbl_ReducedHardware;        /* ACPI 5.0 */
  64 extern UINT8                AcpiGbl_OsiData;
  65 
  66 /* Runtime configuration of debug print levels */
  67 
  68 extern UINT32               AcpiDbgLevel;
  69 extern UINT32               AcpiDbgLayer;
  70 
  71 /* ACPICA runtime options */
  72 
  73 extern UINT8                AcpiGbl_AllMethodsSerialized;
  74 extern UINT8                AcpiGbl_CopyDsdtLocally;
  75 extern UINT8                AcpiGbl_CreateOsiMethod;
  76 extern UINT8                AcpiGbl_DisableAutoRepair;
  77 extern UINT8                AcpiGbl_DisableSsdtTableLoad;
  78 extern UINT8                AcpiGbl_DoNotUseXsdt;
  79 extern UINT8                AcpiGbl_EnableAmlDebugObject;
  80 extern UINT8                AcpiGbl_EnableInterpreterSlack;
  81 extern UINT32               AcpiGbl_TraceFlags;
  82 extern ACPI_NAME            AcpiGbl_TraceMethodName;
  83 extern UINT8                AcpiGbl_TruncateIoAddresses;
  84 extern UINT8                AcpiGbl_Use32BitFadtAddresses;
  85 extern UINT8                AcpiGbl_UseDefaultRegisterWidths;
  86 
  87 
  88 /*
  89  * Hardware-reduced prototypes. All interfaces that use these macros will
  90  * be configured out of the ACPICA build if the ACPI_REDUCED_HARDWARE flag
  91  * is set to TRUE.
  92  */
  93 #if (!ACPI_REDUCED_HARDWARE)
  94 #define ACPI_HW_DEPENDENT_RETURN_STATUS(Prototype) \
  95     Prototype;
  96 
  97 #define ACPI_HW_DEPENDENT_RETURN_OK(Prototype) \
  98     Prototype;
  99 
 100 #define ACPI_HW_DEPENDENT_RETURN_VOID(Prototype) \
 101     Prototype;
 102 
 103 #else
 104 #define ACPI_HW_DEPENDENT_RETURN_STATUS(Prototype) \
 105     static ACPI_INLINE Prototype {return(AE_NOT_CONFIGURED);}
 106 
 107 #define ACPI_HW_DEPENDENT_RETURN_OK(Prototype) \
 108     static ACPI_INLINE Prototype {return(AE_OK);}
 109 
 110 #define ACPI_HW_DEPENDENT_RETURN_VOID(Prototype) \
 111     static ACPI_INLINE Prototype {return;}
 112 
 113 #endif /* !ACPI_REDUCED_HARDWARE */
 114 
 115 
 116 /*
 117  * Initialization
 118  */
 119 ACPI_STATUS
 120 AcpiInitializeTables (
 121     ACPI_TABLE_DESC         *InitialStorage,
 122     UINT32                  InitialTableCount,
 123     BOOLEAN                 AllowResize);
 124 
 125 ACPI_STATUS
 126 AcpiInitializeSubsystem (
 127     void);
 128 
 129 ACPI_STATUS
 130 AcpiEnableSubsystem (
 131     UINT32                  Flags);
 132 
 133 ACPI_STATUS
 134 AcpiInitializeObjects (
 135     UINT32                  Flags);
 136 
 137 ACPI_STATUS
 138 AcpiTerminate (
 139     void);
 140 
 141 
 142 /*
 143  * Miscellaneous global interfaces
 144  */
 145 ACPI_HW_DEPENDENT_RETURN_STATUS (
 146 ACPI_STATUS
 147 AcpiEnable (
 148     void))
 149 
 150 ACPI_HW_DEPENDENT_RETURN_STATUS (
 151 ACPI_STATUS
 152 AcpiDisable (
 153     void))
 154 
 155 ACPI_STATUS
 156 AcpiSubsystemStatus (
 157     void);
 158 
 159 ACPI_STATUS
 160 AcpiGetSystemInfo (
 161     ACPI_BUFFER             *RetBuffer);
 162 
 163 ACPI_STATUS
 164 AcpiGetStatistics (
 165     ACPI_STATISTICS         *Stats);
 166 
 167 const char *
 168 AcpiFormatException (
 169     ACPI_STATUS             Exception);
 170 
 171 ACPI_STATUS
 172 AcpiPurgeCachedObjects (
 173     void);
 174 
 175 ACPI_STATUS
 176 AcpiInstallInterface (
 177     ACPI_STRING             InterfaceName);
 178 
 179 ACPI_STATUS
 180 AcpiRemoveInterface (
 181     ACPI_STRING             InterfaceName);
 182 
 183 ACPI_STATUS
 184 AcpiUpdateInterfaces (
 185     UINT8                   Action);
 186 
 187 UINT32
 188 AcpiCheckAddressRange (
 189     ACPI_ADR_SPACE_TYPE     SpaceId,
 190     ACPI_PHYSICAL_ADDRESS   Address,
 191     ACPI_SIZE               Length,
 192     BOOLEAN                 Warn);
 193 
 194 ACPI_STATUS
 195 AcpiDecodePldBuffer (
 196     UINT8                   *InBuffer,
 197     ACPI_SIZE               Length,
 198     ACPI_PLD_INFO           **ReturnBuffer);
 199 
 200 
 201 /*
 202  * ACPI table load/unload interfaces
 203  */
 204 ACPI_STATUS
 205 AcpiLoadTable (
 206     ACPI_TABLE_HEADER       *Table);
 207 
 208 ACPI_STATUS
 209 AcpiUnloadParentTable (
 210     ACPI_HANDLE             Object);
 211 
 212 ACPI_STATUS
 213 AcpiLoadTables (
 214     void);
 215 
 216 
 217 /*
 218  * ACPI table manipulation interfaces
 219  */
 220 ACPI_STATUS
 221 AcpiReallocateRootTable (
 222     void);
 223 
 224 ACPI_STATUS
 225 AcpiFindRootPointer (
 226     ACPI_SIZE               *RsdpAddress);
 227 
 228 ACPI_STATUS
 229 AcpiGetTableHeader (
 230     ACPI_STRING             Signature,
 231     UINT32                  Instance,
 232     ACPI_TABLE_HEADER       *OutTableHeader);
 233 
 234 ACPI_STATUS
 235 AcpiGetTable (
 236     ACPI_STRING             Signature,
 237     UINT32                  Instance,
 238     ACPI_TABLE_HEADER       **OutTable);
 239 
 240 ACPI_STATUS
 241 AcpiGetTableByIndex (
 242     UINT32                  TableIndex,
 243     ACPI_TABLE_HEADER       **OutTable);
 244 
 245 ACPI_STATUS
 246 AcpiInstallTableHandler (
 247     ACPI_TABLE_HANDLER      Handler,
 248     void                    *Context);
 249 
 250 ACPI_STATUS
 251 AcpiRemoveTableHandler (
 252     ACPI_TABLE_HANDLER      Handler);
 253 
 254 
 255 /*
 256  * Namespace and name interfaces
 257  */
 258 ACPI_STATUS
 259 AcpiWalkNamespace (
 260     ACPI_OBJECT_TYPE        Type,
 261     ACPI_HANDLE             StartObject,
 262     UINT32                  MaxDepth,
 263     ACPI_WALK_CALLBACK      DescendingCallback,
 264     ACPI_WALK_CALLBACK      AscendingCallback,
 265     void                    *Context,
 266     void                    **ReturnValue);
 267 
 268 ACPI_STATUS
 269 AcpiGetDevices (
 270     char                    *HID,
 271     ACPI_WALK_CALLBACK      UserFunction,
 272     void                    *Context,
 273     void                    **ReturnValue);
 274 
 275 ACPI_STATUS
 276 AcpiGetName (
 277     ACPI_HANDLE             Object,
 278     UINT32                  NameType,
 279     ACPI_BUFFER             *RetPathPtr);
 280 
 281 ACPI_STATUS
 282 AcpiGetHandle (
 283     ACPI_HANDLE             Parent,
 284     ACPI_STRING             Pathname,
 285     ACPI_HANDLE             *RetHandle);
 286 
 287 ACPI_STATUS
 288 AcpiAttachData (
 289     ACPI_HANDLE             Object,
 290     ACPI_OBJECT_HANDLER     Handler,
 291     void                    *Data);
 292 
 293 ACPI_STATUS
 294 AcpiDetachData (
 295     ACPI_HANDLE             Object,
 296     ACPI_OBJECT_HANDLER     Handler);
 297 
 298 ACPI_STATUS
 299 AcpiGetData (
 300     ACPI_HANDLE             Object,
 301     ACPI_OBJECT_HANDLER     Handler,
 302     void                    **Data);
 303 
 304 ACPI_STATUS
 305 AcpiDebugTrace (
 306     char                    *Name,
 307     UINT32                  DebugLevel,
 308     UINT32                  DebugLayer,
 309     UINT32                  Flags);
 310 
 311 
 312 /*
 313  * Object manipulation and enumeration
 314  */
 315 ACPI_STATUS
 316 AcpiEvaluateObject (
 317     ACPI_HANDLE             Object,
 318     ACPI_STRING             Pathname,
 319     ACPI_OBJECT_LIST        *ParameterObjects,
 320     ACPI_BUFFER             *ReturnObjectBuffer);
 321 
 322 ACPI_STATUS
 323 AcpiEvaluateObjectTyped (
 324     ACPI_HANDLE             Object,
 325     ACPI_STRING             Pathname,
 326     ACPI_OBJECT_LIST        *ExternalParams,
 327     ACPI_BUFFER             *ReturnBuffer,
 328     ACPI_OBJECT_TYPE        ReturnType);
 329 
 330 ACPI_STATUS
 331 AcpiGetObjectInfo (
 332     ACPI_HANDLE             Object,
 333     ACPI_DEVICE_INFO        **ReturnBuffer);
 334 
 335 ACPI_STATUS
 336 AcpiInstallMethod (
 337     UINT8                   *Buffer);
 338 
 339 ACPI_STATUS
 340 AcpiGetNextObject (
 341     ACPI_OBJECT_TYPE        Type,
 342     ACPI_HANDLE             Parent,
 343     ACPI_HANDLE             Child,
 344     ACPI_HANDLE             *OutHandle);
 345 
 346 ACPI_STATUS
 347 AcpiGetType (
 348     ACPI_HANDLE             Object,
 349     ACPI_OBJECT_TYPE        *OutType);
 350 
 351 ACPI_STATUS
 352 AcpiGetParent (
 353     ACPI_HANDLE             Object,
 354     ACPI_HANDLE             *OutHandle);
 355 
 356 
 357 /*
 358  * Handler interfaces
 359  */
 360 ACPI_STATUS
 361 AcpiInstallInitializationHandler (
 362     ACPI_INIT_HANDLER       Handler,
 363     UINT32                  Function);
 364 
 365 ACPI_HW_DEPENDENT_RETURN_STATUS (
 366 ACPI_STATUS
 367 AcpiInstallSciHandler (
 368     ACPI_SCI_HANDLER        Address,
 369     void                    *Context))
 370 
 371 ACPI_HW_DEPENDENT_RETURN_STATUS (
 372 ACPI_STATUS
 373 AcpiRemoveSciHandler (
 374     ACPI_SCI_HANDLER        Address))
 375 
 376 ACPI_HW_DEPENDENT_RETURN_STATUS (
 377 ACPI_STATUS
 378 AcpiInstallGlobalEventHandler (
 379     ACPI_GBL_EVENT_HANDLER  Handler,
 380     void                    *Context))
 381 
 382 ACPI_HW_DEPENDENT_RETURN_STATUS (
 383 ACPI_STATUS
 384 AcpiInstallFixedEventHandler (
 385     UINT32                  AcpiEvent,
 386     ACPI_EVENT_HANDLER      Handler,
 387     void                    *Context))
 388 
 389 ACPI_HW_DEPENDENT_RETURN_STATUS (
 390 ACPI_STATUS
 391 AcpiRemoveFixedEventHandler (
 392     UINT32                  AcpiEvent,
 393     ACPI_EVENT_HANDLER      Handler))
 394 
 395 ACPI_HW_DEPENDENT_RETURN_STATUS (
 396 ACPI_STATUS
 397 AcpiInstallGpeHandler (
 398     ACPI_HANDLE             GpeDevice,
 399     UINT32                  GpeNumber,
 400     UINT32                  Type,
 401     ACPI_GPE_HANDLER        Address,
 402     void                    *Context))
 403 
 404 ACPI_HW_DEPENDENT_RETURN_STATUS (
 405 ACPI_STATUS
 406 AcpiRemoveGpeHandler (
 407     ACPI_HANDLE             GpeDevice,
 408     UINT32                  GpeNumber,
 409     ACPI_GPE_HANDLER        Address))
 410 
 411 ACPI_STATUS
 412 AcpiInstallNotifyHandler (
 413     ACPI_HANDLE             Device,
 414     UINT32                  HandlerType,
 415     ACPI_NOTIFY_HANDLER     Handler,
 416     void                    *Context);
 417 
 418 ACPI_STATUS
 419 AcpiRemoveNotifyHandler (
 420     ACPI_HANDLE             Device,
 421     UINT32                  HandlerType,
 422     ACPI_NOTIFY_HANDLER     Handler);
 423 
 424 ACPI_STATUS
 425 AcpiInstallAddressSpaceHandler (
 426     ACPI_HANDLE             Device,
 427     ACPI_ADR_SPACE_TYPE     SpaceId,
 428     ACPI_ADR_SPACE_HANDLER  Handler,
 429     ACPI_ADR_SPACE_SETUP    Setup,
 430     void                    *Context);
 431 
 432 ACPI_STATUS
 433 AcpiRemoveAddressSpaceHandler (
 434     ACPI_HANDLE             Device,
 435     ACPI_ADR_SPACE_TYPE     SpaceId,
 436     ACPI_ADR_SPACE_HANDLER  Handler);
 437 
 438 ACPI_STATUS
 439 AcpiInstallExceptionHandler (
 440     ACPI_EXCEPTION_HANDLER  Handler);
 441 
 442 ACPI_STATUS
 443 AcpiInstallInterfaceHandler (
 444     ACPI_INTERFACE_HANDLER  Handler);
 445 
 446 
 447 /*
 448  * Global Lock interfaces
 449  */
 450 ACPI_HW_DEPENDENT_RETURN_STATUS (
 451 ACPI_STATUS
 452 AcpiAcquireGlobalLock (
 453     UINT16                  Timeout,
 454     UINT32                  *Handle))
 455 
 456 ACPI_HW_DEPENDENT_RETURN_STATUS (
 457 ACPI_STATUS
 458 AcpiReleaseGlobalLock (
 459     UINT32                  Handle))
 460 
 461 
 462 /*
 463  * Interfaces to AML mutex objects
 464  */
 465 ACPI_STATUS
 466 AcpiAcquireMutex (
 467     ACPI_HANDLE             Handle,
 468     ACPI_STRING             Pathname,
 469     UINT16                  Timeout);
 470 
 471 ACPI_STATUS
 472 AcpiReleaseMutex (
 473     ACPI_HANDLE             Handle,
 474     ACPI_STRING             Pathname);
 475 
 476 
 477 /*
 478  * Fixed Event interfaces
 479  */
 480 ACPI_HW_DEPENDENT_RETURN_STATUS (
 481 ACPI_STATUS
 482 AcpiEnableEvent (
 483     UINT32                  Event,
 484     UINT32                  Flags))
 485 
 486 ACPI_HW_DEPENDENT_RETURN_STATUS (
 487 ACPI_STATUS
 488 AcpiDisableEvent (
 489     UINT32                  Event,
 490     UINT32                  Flags))
 491 
 492 ACPI_HW_DEPENDENT_RETURN_STATUS (
 493 ACPI_STATUS
 494 AcpiClearEvent (
 495     UINT32                  Event))
 496 
 497 ACPI_HW_DEPENDENT_RETURN_STATUS (
 498 ACPI_STATUS
 499 AcpiGetEventStatus (
 500     UINT32                  Event,
 501     ACPI_EVENT_STATUS       *EventStatus))
 502 
 503 
 504 /*
 505  * General Purpose Event (GPE) Interfaces
 506  */
 507 ACPI_HW_DEPENDENT_RETURN_STATUS (
 508 ACPI_STATUS
 509 AcpiUpdateAllGpes (
 510     void))
 511 
 512 ACPI_HW_DEPENDENT_RETURN_STATUS (
 513 ACPI_STATUS
 514 AcpiEnableGpe (
 515     ACPI_HANDLE             GpeDevice,
 516     UINT32                  GpeNumber))
 517 
 518 ACPI_HW_DEPENDENT_RETURN_STATUS (
 519 ACPI_STATUS
 520 AcpiDisableGpe (
 521     ACPI_HANDLE             GpeDevice,
 522     UINT32                  GpeNumber))
 523 
 524 ACPI_HW_DEPENDENT_RETURN_STATUS (
 525 ACPI_STATUS
 526 AcpiClearGpe (
 527     ACPI_HANDLE             GpeDevice,
 528     UINT32                  GpeNumber))
 529 
 530 ACPI_HW_DEPENDENT_RETURN_STATUS (
 531 ACPI_STATUS
 532 AcpiSetGpe (
 533     ACPI_HANDLE             GpeDevice,
 534     UINT32                  GpeNumber,
 535     UINT8                   Action))
 536 
 537 ACPI_HW_DEPENDENT_RETURN_STATUS (
 538 ACPI_STATUS
 539 AcpiFinishGpe (
 540     ACPI_HANDLE             GpeDevice,
 541     UINT32                  GpeNumber))
 542 
 543 ACPI_HW_DEPENDENT_RETURN_STATUS (
 544 ACPI_STATUS
 545 AcpiSetupGpeForWake (
 546     ACPI_HANDLE             ParentDevice,
 547     ACPI_HANDLE             GpeDevice,
 548     UINT32                  GpeNumber))
 549 
 550 ACPI_HW_DEPENDENT_RETURN_STATUS (
 551 ACPI_STATUS
 552 AcpiSetGpeWakeMask (
 553     ACPI_HANDLE             GpeDevice,
 554     UINT32                  GpeNumber,
 555     UINT8                   Action))
 556 
 557 ACPI_HW_DEPENDENT_RETURN_STATUS (
 558 ACPI_STATUS
 559 AcpiGetGpeStatus (
 560     ACPI_HANDLE             GpeDevice,
 561     UINT32                  GpeNumber,
 562     ACPI_EVENT_STATUS       *EventStatus))
 563 
 564 ACPI_HW_DEPENDENT_RETURN_STATUS (
 565 ACPI_STATUS
 566 AcpiDisableAllGpes (
 567     void))
 568 
 569 ACPI_HW_DEPENDENT_RETURN_STATUS (
 570 ACPI_STATUS
 571 AcpiEnableAllRuntimeGpes (
 572     void))
 573 
 574 ACPI_HW_DEPENDENT_RETURN_STATUS (
 575 ACPI_STATUS
 576 AcpiGetGpeDevice (
 577     UINT32                  GpeIndex,
 578     ACPI_HANDLE             *GpeDevice))
 579 
 580 ACPI_HW_DEPENDENT_RETURN_STATUS (
 581 ACPI_STATUS
 582 AcpiInstallGpeBlock (
 583     ACPI_HANDLE             GpeDevice,
 584     ACPI_GENERIC_ADDRESS    *GpeBlockAddress,
 585     UINT32                  RegisterCount,
 586     UINT32                  InterruptNumber))
 587 
 588 ACPI_HW_DEPENDENT_RETURN_STATUS (
 589 ACPI_STATUS
 590 AcpiRemoveGpeBlock (
 591     ACPI_HANDLE             GpeDevice))
 592 
 593 
 594 /*
 595  * Resource interfaces
 596  */
 597 typedef
 598 ACPI_STATUS (*ACPI_WALK_RESOURCE_CALLBACK) (
 599     ACPI_RESOURCE           *Resource,
 600     void                    *Context);
 601 
 602 ACPI_STATUS
 603 AcpiGetVendorResource (
 604     ACPI_HANDLE             Device,
 605     char                    *Name,
 606     ACPI_VENDOR_UUID        *Uuid,
 607     ACPI_BUFFER             *RetBuffer);
 608 
 609 ACPI_STATUS
 610 AcpiGetCurrentResources (
 611     ACPI_HANDLE             Device,
 612     ACPI_BUFFER             *RetBuffer);
 613 
 614 ACPI_STATUS
 615 AcpiGetPossibleResources (
 616     ACPI_HANDLE             Device,
 617     ACPI_BUFFER             *RetBuffer);
 618 
 619 ACPI_STATUS
 620 AcpiGetEventResources (
 621     ACPI_HANDLE             DeviceHandle,
 622     ACPI_BUFFER             *RetBuffer);
 623 
 624 ACPI_STATUS
 625 AcpiWalkResourceBuffer (
 626     ACPI_BUFFER                 *Buffer,
 627     ACPI_WALK_RESOURCE_CALLBACK UserFunction,
 628     void                        *Context);
 629 
 630 ACPI_STATUS
 631 AcpiWalkResources (
 632     ACPI_HANDLE                 Device,
 633     char                        *Name,
 634     ACPI_WALK_RESOURCE_CALLBACK UserFunction,
 635     void                        *Context);
 636 
 637 ACPI_STATUS
 638 AcpiSetCurrentResources (
 639     ACPI_HANDLE             Device,
 640     ACPI_BUFFER             *InBuffer);
 641 
 642 ACPI_STATUS
 643 AcpiGetIrqRoutingTable (
 644     ACPI_HANDLE             Device,
 645     ACPI_BUFFER             *RetBuffer);
 646 
 647 ACPI_STATUS
 648 AcpiResourceToAddress64 (
 649     ACPI_RESOURCE           *Resource,
 650     ACPI_RESOURCE_ADDRESS64 *Out);
 651 
 652 ACPI_STATUS
 653 AcpiBufferToResource (
 654     UINT8                   *AmlBuffer,
 655     UINT16                  AmlBufferLength,
 656     ACPI_RESOURCE           **ResourcePtr);
 657 
 658 
 659 /*
 660  * Hardware (ACPI device) interfaces
 661  */
 662 ACPI_STATUS
 663 AcpiReset (
 664     void);
 665 
 666 ACPI_STATUS
 667 AcpiRead (
 668     UINT64                  *Value,
 669     ACPI_GENERIC_ADDRESS    *Reg);
 670 
 671 ACPI_STATUS
 672 AcpiWrite (
 673     UINT64                  Value,
 674     ACPI_GENERIC_ADDRESS    *Reg);
 675 
 676 ACPI_HW_DEPENDENT_RETURN_STATUS (
 677 ACPI_STATUS
 678 AcpiReadBitRegister (
 679     UINT32                  RegisterId,
 680     UINT32                  *ReturnValue))
 681 
 682 ACPI_HW_DEPENDENT_RETURN_STATUS (
 683 ACPI_STATUS
 684 AcpiWriteBitRegister (
 685     UINT32                  RegisterId,
 686     UINT32                  Value))
 687 
 688 
 689 /*
 690  * Sleep/Wake interfaces
 691  */
 692 ACPI_STATUS
 693 AcpiGetSleepTypeData (
 694     UINT8                   SleepState,
 695     UINT8                   *Slp_TypA,
 696     UINT8                   *Slp_TypB);
 697 
 698 ACPI_STATUS
 699 AcpiEnterSleepStatePrep (
 700     UINT8                   SleepState);
 701 
 702 ACPI_STATUS
 703 AcpiEnterSleepState (
 704     UINT8                   SleepState);
 705 
 706 ACPI_HW_DEPENDENT_RETURN_STATUS (
 707 ACPI_STATUS
 708 AcpiEnterSleepStateS4bios (
 709     void))
 710 
 711 ACPI_STATUS
 712 AcpiLeaveSleepStatePrep (
 713     UINT8                   SleepState);
 714 
 715 ACPI_STATUS
 716 AcpiLeaveSleepState (
 717     UINT8                   SleepState);
 718 
 719 ACPI_HW_DEPENDENT_RETURN_STATUS (
 720 ACPI_STATUS
 721 AcpiSetFirmwareWakingVector (
 722     UINT32                  PhysicalAddress))
 723 
 724 #if ACPI_MACHINE_WIDTH == 64
 725 ACPI_HW_DEPENDENT_RETURN_STATUS (
 726 ACPI_STATUS
 727 AcpiSetFirmwareWakingVector64 (
 728     UINT64                  PhysicalAddress))
 729 #endif
 730 
 731 
 732 /*
 733  * ACPI Timer interfaces
 734  */
 735 ACPI_HW_DEPENDENT_RETURN_STATUS (
 736 ACPI_STATUS
 737 AcpiGetTimerResolution (
 738     UINT32                  *Resolution))
 739 
 740 ACPI_HW_DEPENDENT_RETURN_STATUS (
 741 ACPI_STATUS
 742 AcpiGetTimer (
 743     UINT32                  *Ticks))
 744 
 745 ACPI_HW_DEPENDENT_RETURN_STATUS (
 746 ACPI_STATUS
 747 AcpiGetTimerDuration (
 748     UINT32                  StartTicks,
 749     UINT32                  EndTicks,
 750     UINT32                  *TimeElapsed))
 751 
 752 
 753 /*
 754  * Error/Warning output
 755  */
 756 ACPI_PRINTF_LIKE(3)
 757 void ACPI_INTERNAL_VAR_XFACE
 758 AcpiError (
 759     const char              *ModuleName,
 760     UINT32                  LineNumber,
 761     const char              *Format,
 762     ...);
 763 
 764 ACPI_PRINTF_LIKE(4)
 765 void  ACPI_INTERNAL_VAR_XFACE
 766 AcpiException (
 767     const char              *ModuleName,
 768     UINT32                  LineNumber,
 769     ACPI_STATUS             Status,
 770     const char              *Format,
 771     ...);
 772 
 773 ACPI_PRINTF_LIKE(3)
 774 void ACPI_INTERNAL_VAR_XFACE
 775 AcpiWarning (
 776     const char              *ModuleName,
 777     UINT32                  LineNumber,
 778     const char              *Format,
 779     ...);
 780 
 781 ACPI_PRINTF_LIKE(3)
 782 void ACPI_INTERNAL_VAR_XFACE
 783 AcpiInfo (
 784     const char              *ModuleName,
 785     UINT32                  LineNumber,
 786     const char              *Format,
 787     ...);
 788 
 789 ACPI_PRINTF_LIKE(3)
 790 void ACPI_INTERNAL_VAR_XFACE
 791 AcpiBiosError (
 792     const char              *ModuleName,
 793     UINT32                  LineNumber,
 794     const char              *Format,
 795     ...);
 796 
 797 ACPI_PRINTF_LIKE(3)
 798 void ACPI_INTERNAL_VAR_XFACE
 799 AcpiBiosWarning (
 800     const char              *ModuleName,
 801     UINT32                  LineNumber,
 802     const char              *Format,
 803     ...);
 804 
 805 
 806 /*
 807  * Debug output
 808  */
 809 #ifdef ACPI_DEBUG_OUTPUT
 810 
 811 ACPI_PRINTF_LIKE(6)
 812 void ACPI_INTERNAL_VAR_XFACE
 813 AcpiDebugPrint (
 814     UINT32                  RequestedDebugLevel,
 815     UINT32                  LineNumber,
 816     const char              *FunctionName,
 817     const char              *ModuleName,
 818     UINT32                  ComponentId,
 819     const char              *Format,
 820     ...);
 821 
 822 ACPI_PRINTF_LIKE(6)
 823 void ACPI_INTERNAL_VAR_XFACE
 824 AcpiDebugPrintRaw (
 825     UINT32                  RequestedDebugLevel,
 826     UINT32                  LineNumber,
 827     const char              *FunctionName,
 828     const char              *ModuleName,
 829     UINT32                  ComponentId,
 830     const char              *Format,
 831     ...);
 832 #endif
 833 
 834 #endif /* __ACXFACE_H__ */