2 /******************************************************************************
4 * Name: acpixf.h - External interfaces to the ACPI subsystem
6 *****************************************************************************/
9 * Copyright (C) 2000 - 2011, Intel Corp.
10 * All rights reserved.
12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions
15 * 1. Redistributions of source code must retain the above copyright
16 * notice, this list of conditions, and the following disclaimer,
17 * without modification.
18 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
19 * substantially similar to the "NO WARRANTY" disclaimer below
20 * ("Disclaimer") and any redistribution must be conditioned upon
21 * including a substantially similar Disclaimer requirement for further
22 * binary redistribution.
23 * 3. Neither the names of the above-listed copyright holders nor the names
24 * of any contributors may be used to endorse or promote products derived
25 * from this software without specific prior written permission.
27 * Alternatively, this software may be distributed under the terms of the
28 * GNU General Public License ("GPL") version 2 as published by the Free
29 * Software Foundation.
32 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
33 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
34 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
35 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
36 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
37 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
38 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
39 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
40 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
41 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
42 * POSSIBILITY OF SUCH DAMAGES.
49 /* Current ACPICA subsystem version in YYYYMMDD format */
51 #define ACPI_CA_VERSION 0x20110527
53 #include <contrib/dev/acpica/include/actypes.h>
54 #include <contrib/dev/acpica/include/actbl.h>
57 * Globals that are publically available
59 extern UINT32 AcpiCurrentGpeCount;
60 extern ACPI_TABLE_FADT AcpiGbl_FADT;
61 extern BOOLEAN AcpiGbl_SystemAwakeAndRunning;
63 /* Runtime configuration of debug print levels */
65 extern UINT32 AcpiDbgLevel;
66 extern UINT32 AcpiDbgLayer;
68 /* ACPICA runtime options */
70 extern UINT8 AcpiGbl_EnableInterpreterSlack;
71 extern UINT8 AcpiGbl_AllMethodsSerialized;
72 extern UINT8 AcpiGbl_CreateOsiMethod;
73 extern UINT8 AcpiGbl_UseDefaultRegisterWidths;
74 extern ACPI_NAME AcpiGbl_TraceMethodName;
75 extern UINT32 AcpiGbl_TraceFlags;
76 extern UINT8 AcpiGbl_EnableAmlDebugObject;
77 extern UINT8 AcpiGbl_CopyDsdtLocally;
78 extern UINT8 AcpiGbl_TruncateIoAddresses;
85 AcpiInitializeTables (
86 ACPI_TABLE_DESC *InitialStorage,
87 UINT32 InitialTableCount,
91 AcpiInitializeSubsystem (
99 AcpiInitializeObjects (
108 * Miscellaneous global interfaces
119 AcpiSubsystemStatus (
124 ACPI_BUFFER *RetBuffer);
128 ACPI_STATISTICS *Stats);
131 AcpiFormatException (
132 ACPI_STATUS Exception);
135 AcpiPurgeCachedObjects (
139 AcpiInstallInterface (
140 ACPI_STRING InterfaceName);
143 AcpiRemoveInterface (
144 ACPI_STRING InterfaceName);
148 * ACPI Memory management
164 * ACPI table manipulation interfaces
167 AcpiReallocateRootTable (
171 AcpiFindRootPointer (
172 ACPI_SIZE *RsdpAddress);
180 ACPI_STRING Signature,
182 ACPI_TABLE_HEADER *OutTableHeader);
186 ACPI_STRING Signature,
188 ACPI_TABLE_HEADER **OutTable);
191 AcpiGetTableByIndex (
193 ACPI_TABLE_HEADER **OutTable);
196 AcpiInstallTableHandler (
197 ACPI_TABLE_HANDLER Handler,
201 AcpiRemoveTableHandler (
202 ACPI_TABLE_HANDLER Handler);
206 * Namespace and name interfaces
210 ACPI_OBJECT_TYPE Type,
211 ACPI_HANDLE StartObject,
213 ACPI_WALK_CALLBACK PreOrderVisit,
214 ACPI_WALK_CALLBACK PostOrderVisit,
221 ACPI_WALK_CALLBACK UserFunction,
229 ACPI_BUFFER *RetPathPtr);
234 ACPI_STRING Pathname,
235 ACPI_HANDLE *RetHandle);
240 ACPI_OBJECT_HANDLER Handler,
246 ACPI_OBJECT_HANDLER Handler);
251 ACPI_OBJECT_HANDLER Handler,
263 * Object manipulation and enumeration
268 ACPI_STRING Pathname,
269 ACPI_OBJECT_LIST *ParameterObjects,
270 ACPI_BUFFER *ReturnObjectBuffer);
273 AcpiEvaluateObjectTyped (
275 ACPI_STRING Pathname,
276 ACPI_OBJECT_LIST *ExternalParams,
277 ACPI_BUFFER *ReturnBuffer,
278 ACPI_OBJECT_TYPE ReturnType);
283 ACPI_DEVICE_INFO **ReturnBuffer);
291 ACPI_OBJECT_TYPE Type,
294 ACPI_HANDLE *OutHandle);
299 ACPI_OBJECT_TYPE *OutType);
304 ACPI_HANDLE *OutHandle);
311 AcpiInstallInitializationHandler (
312 ACPI_INIT_HANDLER Handler,
316 AcpiInstallGlobalEventHandler (
317 ACPI_GBL_EVENT_HANDLER Handler,
321 AcpiInstallFixedEventHandler (
323 ACPI_EVENT_HANDLER Handler,
327 AcpiRemoveFixedEventHandler (
329 ACPI_EVENT_HANDLER Handler);
332 AcpiInstallGpeHandler (
333 ACPI_HANDLE GpeDevice,
336 ACPI_GPE_HANDLER Address,
340 AcpiRemoveGpeHandler (
341 ACPI_HANDLE GpeDevice,
343 ACPI_GPE_HANDLER Address);
346 AcpiInstallNotifyHandler (
349 ACPI_NOTIFY_HANDLER Handler,
353 AcpiRemoveNotifyHandler (
356 ACPI_NOTIFY_HANDLER Handler);
359 AcpiInstallAddressSpaceHandler (
361 ACPI_ADR_SPACE_TYPE SpaceId,
362 ACPI_ADR_SPACE_HANDLER Handler,
363 ACPI_ADR_SPACE_SETUP Setup,
367 AcpiRemoveAddressSpaceHandler (
369 ACPI_ADR_SPACE_TYPE SpaceId,
370 ACPI_ADR_SPACE_HANDLER Handler);
373 AcpiInstallExceptionHandler (
374 ACPI_EXCEPTION_HANDLER Handler);
377 AcpiInstallInterfaceHandler (
378 ACPI_INTERFACE_HANDLER Handler);
382 * Global Lock interfaces
385 AcpiAcquireGlobalLock (
390 AcpiReleaseGlobalLock (
395 * Fixed Event interfaces
414 ACPI_EVENT_STATUS *EventStatus);
418 * General Purpose Event (GPE) Interfaces
426 ACPI_HANDLE GpeDevice,
431 ACPI_HANDLE GpeDevice,
436 ACPI_HANDLE GpeDevice,
441 ACPI_HANDLE GpeDevice,
447 ACPI_HANDLE GpeDevice,
451 AcpiSetupGpeForWake (
452 ACPI_HANDLE ParentDevice,
453 ACPI_HANDLE GpeDevice,
458 ACPI_HANDLE GpeDevice,
464 ACPI_HANDLE GpeDevice,
466 ACPI_EVENT_STATUS *EventStatus);
473 AcpiEnableAllRuntimeGpes (
479 ACPI_HANDLE *GpeDevice);
482 AcpiInstallGpeBlock (
483 ACPI_HANDLE GpeDevice,
484 ACPI_GENERIC_ADDRESS *GpeBlockAddress,
485 UINT32 RegisterCount,
486 UINT32 InterruptNumber);
490 ACPI_HANDLE GpeDevice);
494 * Resource interfaces
497 ACPI_STATUS (*ACPI_WALK_RESOURCE_CALLBACK) (
498 ACPI_RESOURCE *Resource,
502 AcpiGetVendorResource (
505 ACPI_VENDOR_UUID *Uuid,
506 ACPI_BUFFER *RetBuffer);
509 AcpiGetCurrentResources (
511 ACPI_BUFFER *RetBuffer);
514 AcpiGetPossibleResources (
516 ACPI_BUFFER *RetBuffer);
522 ACPI_WALK_RESOURCE_CALLBACK UserFunction,
526 AcpiSetCurrentResources (
528 ACPI_BUFFER *InBuffer);
531 AcpiGetIrqRoutingTable (
533 ACPI_BUFFER *RetBuffer);
536 AcpiResourceToAddress64 (
537 ACPI_RESOURCE *Resource,
538 ACPI_RESOURCE_ADDRESS64 *Out);
542 * Hardware (ACPI device) interfaces
551 ACPI_GENERIC_ADDRESS *Reg);
556 ACPI_GENERIC_ADDRESS *Reg);
559 AcpiReadBitRegister (
561 UINT32 *ReturnValue);
564 AcpiWriteBitRegister (
569 AcpiGetSleepTypeData (
575 AcpiEnterSleepStatePrep (
579 AcpiEnterSleepState (
583 AcpiEnterSleepStateS4bios (
587 AcpiLeaveSleepState (
591 AcpiSetFirmwareWakingVector (
592 UINT32 PhysicalAddress);
594 #if ACPI_MACHINE_WIDTH == 64
596 AcpiSetFirmwareWakingVector64 (
597 UINT64 PhysicalAddress);
602 * Error/Warning output
604 void ACPI_INTERNAL_VAR_XFACE
606 const char *ModuleName,
609 ...) ACPI_PRINTF_LIKE(3);
611 void ACPI_INTERNAL_VAR_XFACE
613 const char *ModuleName,
617 ...) ACPI_PRINTF_LIKE(4);
619 void ACPI_INTERNAL_VAR_XFACE
621 const char *ModuleName,
624 ...) ACPI_PRINTF_LIKE(3);
626 void ACPI_INTERNAL_VAR_XFACE
628 const char *ModuleName,
631 ...) ACPI_PRINTF_LIKE(3);
637 #ifdef ACPI_DEBUG_OUTPUT
639 void ACPI_INTERNAL_VAR_XFACE
641 UINT32 RequestedDebugLevel,
643 const char *FunctionName,
644 const char *ModuleName,
647 ...) ACPI_PRINTF_LIKE(6);
649 void ACPI_INTERNAL_VAR_XFACE
651 UINT32 RequestedDebugLevel,
653 const char *FunctionName,
654 const char *ModuleName,
657 ...) ACPI_PRINTF_LIKE(6);
660 #endif /* __ACXFACE_H__ */