31adb7026afd6974a31fa1440678178b78073170
[dragonfly.git] / sys / contrib / dev / acpica / source / include / acpixf.h
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 #ifndef __ACXFACE_H__
45 #define __ACXFACE_H__
46
47 /* Current ACPICA subsystem version in YYYYMMDD format */
48
49 #define ACPI_CA_VERSION                 0x20140627
50
51 #include "acconfig.h"
52 #include "actypes.h"
53 #include "actbl.h"
54 #include "acbuffer.h"
55
56
57 /*****************************************************************************
58  *
59  * Macros used for ACPICA globals and configuration
60  *
61  ****************************************************************************/
62
63 /*
64  * Ensure that global variables are defined and initialized only once.
65  *
66  * The use of these macros allows for a single list of globals (here)
67  * in order to simplify maintenance of the code.
68  */
69 #ifdef DEFINE_ACPI_GLOBALS
70 #define ACPI_GLOBAL(type,name) \
71     extern type name; \
72     type name
73
74 #define ACPI_INIT_GLOBAL(type,name,value) \
75     type name=value
76
77 #else
78 #ifndef ACPI_GLOBAL
79 #define ACPI_GLOBAL(type,name) \
80     extern type name
81 #endif
82
83 #ifndef ACPI_INIT_GLOBAL
84 #define ACPI_INIT_GLOBAL(type,name,value) \
85     extern type name
86 #endif
87 #endif
88
89 /*
90  * These macros configure the various ACPICA interfaces. They are
91  * useful for generating stub inline functions for features that are
92  * configured out of the current kernel or ACPICA application.
93  */
94 #ifndef ACPI_EXTERNAL_RETURN_STATUS
95 #define ACPI_EXTERNAL_RETURN_STATUS(Prototype) \
96     Prototype;
97 #endif
98
99 #ifndef ACPI_EXTERNAL_RETURN_OK
100 #define ACPI_EXTERNAL_RETURN_OK(Prototype) \
101     Prototype;
102 #endif
103
104 #ifndef ACPI_EXTERNAL_RETURN_VOID
105 #define ACPI_EXTERNAL_RETURN_VOID(Prototype) \
106     Prototype;
107 #endif
108
109 #ifndef ACPI_EXTERNAL_RETURN_UINT32
110 #define ACPI_EXTERNAL_RETURN_UINT32(Prototype) \
111     Prototype;
112 #endif
113
114 #ifndef ACPI_EXTERNAL_RETURN_PTR
115 #define ACPI_EXTERNAL_RETURN_PTR(Prototype) \
116     Prototype;
117 #endif
118
119
120 /*****************************************************************************
121  *
122  * Public globals and runtime configuration options
123  *
124  ****************************************************************************/
125
126 /*
127  * Enable "slack mode" of the AML interpreter?  Default is FALSE, and the
128  * interpreter strictly follows the ACPI specification. Setting to TRUE
129  * allows the interpreter to ignore certain errors and/or bad AML constructs.
130  *
131  * Currently, these features are enabled by this flag:
132  *
133  * 1) Allow "implicit return" of last value in a control method
134  * 2) Allow access beyond the end of an operation region
135  * 3) Allow access to uninitialized locals/args (auto-init to integer 0)
136  * 4) Allow ANY object type to be a source operand for the Store() operator
137  * 5) Allow unresolved references (invalid target name) in package objects
138  * 6) Enable warning messages for behavior that is not ACPI spec compliant
139  */
140 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_EnableInterpreterSlack, FALSE);
141
142 /*
143  * Automatically serialize all methods that create named objects? Default
144  * is TRUE, meaning that all NonSerialized methods are scanned once at
145  * table load time to determine those that create named objects. Methods
146  * that create named objects are marked Serialized in order to prevent
147  * possible run-time problems if they are entered by more than one thread.
148  */
149 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_AutoSerializeMethods, TRUE);
150
151 /*
152  * Create the predefined _OSI method in the namespace? Default is TRUE
153  * because ACPICA is fully compatible with other ACPI implementations.
154  * Changing this will revert ACPICA (and machine ASL) to pre-OSI behavior.
155  */
156 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_CreateOsiMethod, TRUE);
157
158 /*
159  * Optionally use default values for the ACPI register widths. Set this to
160  * TRUE to use the defaults, if an FADT contains incorrect widths/lengths.
161  */
162 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_UseDefaultRegisterWidths, TRUE);
163
164 /*
165  * Whether or not to verify the table checksum before installation. Set
166  * this to TRUE to verify the table checksum before install it to the table
167  * manager. Note that enabling this option causes errors to happen in some
168  * OSPMs during early initialization stages. Default behavior is to do such
169  * verification.
170  */
171 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_VerifyTableChecksum, TRUE);
172
173 /*
174  * Optionally enable output from the AML Debug Object.
175  */
176 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_EnableAmlDebugObject, FALSE);
177
178 /*
179  * Optionally copy the entire DSDT to local memory (instead of simply
180  * mapping it.) There are some BIOSs that corrupt or replace the original
181  * DSDT, creating the need for this option. Default is FALSE, do not copy
182  * the DSDT.
183  */
184 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_CopyDsdtLocally, FALSE);
185
186 /*
187  * Optionally ignore an XSDT if present and use the RSDT instead.
188  * Although the ACPI specification requires that an XSDT be used instead
189  * of the RSDT, the XSDT has been found to be corrupt or ill-formed on
190  * some machines. Default behavior is to use the XSDT if present.
191  */
192 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_DoNotUseXsdt, FALSE);
193
194 /*
195  * Optionally use 32-bit FADT addresses if and when there is a conflict
196  * (address mismatch) between the 32-bit and 64-bit versions of the
197  * address. Although ACPICA adheres to the ACPI specification which
198  * requires the use of the corresponding 64-bit address if it is non-zero,
199  * some machines have been found to have a corrupted non-zero 64-bit
200  * address. Default is FALSE, do not favor the 32-bit addresses.
201  */
202 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_Use32BitFadtAddresses, FALSE);
203
204 /*
205  * Optionally truncate I/O addresses to 16 bits. Provides compatibility
206  * with other ACPI implementations. NOTE: During ACPICA initialization,
207  * this value is set to TRUE if any Windows OSI strings have been
208  * requested by the BIOS.
209  */
210 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_TruncateIoAddresses, FALSE);
211
212 /*
213  * Disable runtime checking and repair of values returned by control methods.
214  * Use only if the repair is causing a problem on a particular machine.
215  */
216 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_DisableAutoRepair, FALSE);
217
218 /*
219  * Optionally do not install any SSDTs from the RSDT/XSDT during initialization.
220  * This can be useful for debugging ACPI problems on some machines.
221  */
222 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_DisableSsdtTableInstall, FALSE);
223
224 /*
225  * We keep track of the latest version of Windows that has been requested by
226  * the BIOS. ACPI 5.0.
227  */
228 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_OsiData, 0);
229
230 /*
231  * ACPI 5.0 introduces the concept of a "reduced hardware platform", meaning
232  * that the ACPI hardware is no longer required. A flag in the FADT indicates
233  * a reduced HW machine, and that flag is duplicated here for convenience.
234  */
235 ACPI_INIT_GLOBAL (BOOLEAN,          AcpiGbl_ReducedHardware, FALSE);
236
237 /*
238  * This mechanism is used to trace a specified AML method. The method is
239  * traced each time it is executed.
240  */
241 ACPI_INIT_GLOBAL (UINT32,           AcpiGbl_TraceFlags, 0);
242 ACPI_INIT_GLOBAL (ACPI_NAME,        AcpiGbl_TraceMethodName, 0);
243
244 /*
245  * Runtime configuration of debug output control masks. We want the debug
246  * switches statically initialized so they are already set when the debugger
247  * is entered.
248  */
249 #ifdef ACPI_DEBUG_OUTPUT
250 ACPI_INIT_GLOBAL (UINT32,           AcpiDbgLevel, ACPI_DEBUG_DEFAULT);
251 #else
252 ACPI_INIT_GLOBAL (UINT32,           AcpiDbgLevel, ACPI_NORMAL_DEFAULT);
253 #endif
254 ACPI_INIT_GLOBAL (UINT32,           AcpiDbgLayer, ACPI_COMPONENT_DEFAULT);
255
256 /*
257  * Other miscellaneous globals
258  */
259 ACPI_GLOBAL (ACPI_TABLE_FADT,       AcpiGbl_FADT);
260 ACPI_GLOBAL (UINT32,                AcpiCurrentGpeCount);
261 ACPI_GLOBAL (BOOLEAN,               AcpiGbl_SystemAwakeAndRunning);
262
263
264 /*****************************************************************************
265  *
266  * ACPICA public interface configuration.
267  *
268  * Interfaces that are configured out of the ACPICA build are replaced
269  * by inlined stubs by default.
270  *
271  ****************************************************************************/
272
273 /*
274  * Hardware-reduced prototypes (default: Not hardware reduced).
275  *
276  * All ACPICA hardware-related interfaces that use these macros will be
277  * configured out of the ACPICA build if the ACPI_REDUCED_HARDWARE flag
278  * is set to TRUE.
279  *
280  * Note: This static build option for reduced hardware is intended to
281  * reduce ACPICA code size if desired or necessary. However, even if this
282  * option is not specified, the runtime behavior of ACPICA is dependent
283  * on the actual FADT reduced hardware flag (HW_REDUCED_ACPI). If set,
284  * the flag will enable similar behavior -- ACPICA will not attempt
285  * to access any ACPI-relate hardware (SCI, GPEs, Fixed Events, etc.)
286  */
287 #if (!ACPI_REDUCED_HARDWARE)
288 #define ACPI_HW_DEPENDENT_RETURN_STATUS(Prototype) \
289     ACPI_EXTERNAL_RETURN_STATUS(Prototype)
290
291 #define ACPI_HW_DEPENDENT_RETURN_OK(Prototype) \
292     ACPI_EXTERNAL_RETURN_OK(Prototype)
293
294 #define ACPI_HW_DEPENDENT_RETURN_VOID(Prototype) \
295     ACPI_EXTERNAL_RETURN_VOID(Prototype)
296
297 #else
298 #define ACPI_HW_DEPENDENT_RETURN_STATUS(Prototype) \
299     static ACPI_INLINE Prototype {return(AE_NOT_CONFIGURED);}
300
301 #define ACPI_HW_DEPENDENT_RETURN_OK(Prototype) \
302     static ACPI_INLINE Prototype {return(AE_OK);}
303
304 #define ACPI_HW_DEPENDENT_RETURN_VOID(Prototype) \
305     static ACPI_INLINE Prototype {return;}
306
307 #endif /* !ACPI_REDUCED_HARDWARE */
308
309
310 /*
311  * Error message prototypes (default: error messages enabled).
312  *
313  * All interfaces related to error and warning messages
314  * will be configured out of the ACPICA build if the
315  * ACPI_NO_ERROR_MESSAGE flag is defined.
316  */
317 #ifndef ACPI_NO_ERROR_MESSAGES
318 #define ACPI_MSG_DEPENDENT_RETURN_VOID(Prototype) \
319     Prototype;
320
321 #else
322 #define ACPI_MSG_DEPENDENT_RETURN_VOID(Prototype) \
323     static ACPI_INLINE Prototype {return;}
324
325 #endif /* ACPI_NO_ERROR_MESSAGES */
326
327
328 /*
329  * Debugging output prototypes (default: no debug output).
330  *
331  * All interfaces related to debug output messages
332  * will be configured out of the ACPICA build unless the
333  * ACPI_DEBUG_OUTPUT flag is defined.
334  */
335 #ifdef ACPI_DEBUG_OUTPUT
336 #define ACPI_DBG_DEPENDENT_RETURN_VOID(Prototype) \
337     Prototype;
338
339 #else
340 #define ACPI_DBG_DEPENDENT_RETURN_VOID(Prototype) \
341     static ACPI_INLINE Prototype {return;}
342
343 #endif /* ACPI_DEBUG_OUTPUT */
344
345
346 /*
347  * Application prototypes
348  *
349  * All interfaces used by application will be configured
350  * out of the ACPICA build unless the ACPI_APPLICATION
351  * flag is defined.
352  */
353 #ifdef ACPI_APPLICATION
354 #define ACPI_APP_DEPENDENT_RETURN_VOID(Prototype) \
355     Prototype;
356
357 #else
358 #define ACPI_APP_DEPENDENT_RETURN_VOID(Prototype) \
359     static ACPI_INLINE Prototype {return;}
360
361 #endif /* ACPI_APPLICATION */
362
363
364 /*****************************************************************************
365  *
366  * ACPICA public interface prototypes
367  *
368  ****************************************************************************/
369
370 /*
371  * Initialization
372  */
373 ACPI_EXTERNAL_RETURN_STATUS (
374 ACPI_STATUS
375 AcpiInitializeTables (
376     ACPI_TABLE_DESC         *InitialStorage,
377     UINT32                  InitialTableCount,
378     BOOLEAN                 AllowResize))
379
380 ACPI_EXTERNAL_RETURN_STATUS (
381 ACPI_STATUS
382 AcpiInitializeSubsystem (
383     void))
384
385 ACPI_EXTERNAL_RETURN_STATUS (
386 ACPI_STATUS
387 AcpiEnableSubsystem (
388     UINT32                  Flags))
389
390 ACPI_EXTERNAL_RETURN_STATUS (
391 ACPI_STATUS
392 AcpiInitializeObjects (
393     UINT32                  Flags))
394
395 ACPI_EXTERNAL_RETURN_STATUS (
396 ACPI_STATUS
397 AcpiTerminate (
398     void))
399
400
401 /*
402  * Miscellaneous global interfaces
403  */
404 ACPI_HW_DEPENDENT_RETURN_STATUS (
405 ACPI_STATUS
406 AcpiEnable (
407     void))
408
409 ACPI_HW_DEPENDENT_RETURN_STATUS (
410 ACPI_STATUS
411 AcpiDisable (
412     void))
413
414 ACPI_EXTERNAL_RETURN_STATUS (
415 ACPI_STATUS
416 AcpiSubsystemStatus (
417     void))
418
419 ACPI_EXTERNAL_RETURN_STATUS (
420 ACPI_STATUS
421 AcpiGetSystemInfo (
422     ACPI_BUFFER             *RetBuffer))
423
424 ACPI_EXTERNAL_RETURN_STATUS (
425 ACPI_STATUS
426 AcpiGetStatistics (
427     ACPI_STATISTICS         *Stats))
428
429 ACPI_EXTERNAL_RETURN_PTR (
430 const char *
431 AcpiFormatException (
432     ACPI_STATUS             Exception))
433
434 ACPI_EXTERNAL_RETURN_STATUS (
435 ACPI_STATUS
436 AcpiPurgeCachedObjects (
437     void))
438
439 ACPI_EXTERNAL_RETURN_STATUS (
440 ACPI_STATUS
441 AcpiInstallInterface (
442     ACPI_STRING             InterfaceName))
443
444 ACPI_EXTERNAL_RETURN_STATUS (
445 ACPI_STATUS
446 AcpiRemoveInterface (
447     ACPI_STRING             InterfaceName))
448
449 ACPI_EXTERNAL_RETURN_STATUS (
450 ACPI_STATUS
451 AcpiUpdateInterfaces (
452     UINT8                   Action))
453
454 ACPI_EXTERNAL_RETURN_UINT32 (
455 UINT32
456 AcpiCheckAddressRange (
457     ACPI_ADR_SPACE_TYPE     SpaceId,
458     ACPI_PHYSICAL_ADDRESS   Address,
459     ACPI_SIZE               Length,
460     BOOLEAN                 Warn))
461
462 ACPI_EXTERNAL_RETURN_STATUS (
463 ACPI_STATUS
464 AcpiDecodePldBuffer (
465     UINT8                   *InBuffer,
466     ACPI_SIZE               Length,
467     ACPI_PLD_INFO           **ReturnBuffer))
468
469
470 /*
471  * ACPI table load/unload interfaces
472  */
473 ACPI_EXTERNAL_RETURN_STATUS (
474 ACPI_STATUS
475 AcpiInstallTable (
476     ACPI_PHYSICAL_ADDRESS   Address,
477     BOOLEAN                 Physical))
478
479 ACPI_EXTERNAL_RETURN_STATUS (
480 ACPI_STATUS
481 AcpiLoadTable (
482     ACPI_TABLE_HEADER       *Table))
483
484 ACPI_EXTERNAL_RETURN_STATUS (
485 ACPI_STATUS
486 AcpiUnloadParentTable (
487     ACPI_HANDLE             Object))
488
489 ACPI_EXTERNAL_RETURN_STATUS (
490 ACPI_STATUS
491 AcpiLoadTables (
492     void))
493
494
495 /*
496  * ACPI table manipulation interfaces
497  */
498 ACPI_EXTERNAL_RETURN_STATUS (
499 ACPI_STATUS
500 AcpiReallocateRootTable (
501     void))
502
503 ACPI_EXTERNAL_RETURN_STATUS (
504 ACPI_STATUS
505 AcpiFindRootPointer (
506     ACPI_SIZE               *RsdpAddress))
507
508 ACPI_EXTERNAL_RETURN_STATUS (
509 ACPI_STATUS
510 AcpiGetTableHeader (
511     ACPI_STRING             Signature,
512     UINT32                  Instance,
513     ACPI_TABLE_HEADER       *OutTableHeader))
514
515 ACPI_EXTERNAL_RETURN_STATUS (
516 ACPI_STATUS
517 AcpiGetTable (
518     ACPI_STRING             Signature,
519     UINT32                  Instance,
520     ACPI_TABLE_HEADER       **OutTable))
521
522 ACPI_EXTERNAL_RETURN_STATUS (
523 ACPI_STATUS
524 AcpiGetTableByIndex (
525     UINT32                  TableIndex,
526     ACPI_TABLE_HEADER       **OutTable))
527
528 ACPI_EXTERNAL_RETURN_STATUS (
529 ACPI_STATUS
530 AcpiInstallTableHandler (
531     ACPI_TABLE_HANDLER      Handler,
532     void                    *Context))
533
534 ACPI_EXTERNAL_RETURN_STATUS (
535 ACPI_STATUS
536 AcpiRemoveTableHandler (
537     ACPI_TABLE_HANDLER      Handler))
538
539
540 /*
541  * Namespace and name interfaces
542  */
543 ACPI_EXTERNAL_RETURN_STATUS (
544 ACPI_STATUS
545 AcpiWalkNamespace (
546     ACPI_OBJECT_TYPE        Type,
547     ACPI_HANDLE             StartObject,
548     UINT32                  MaxDepth,
549     ACPI_WALK_CALLBACK      DescendingCallback,
550     ACPI_WALK_CALLBACK      AscendingCallback,
551     void                    *Context,
552     void                    **ReturnValue))
553
554 ACPI_EXTERNAL_RETURN_STATUS (
555 ACPI_STATUS
556 AcpiGetDevices (
557     char                    *HID,
558     ACPI_WALK_CALLBACK      UserFunction,
559     void                    *Context,
560     void                    **ReturnValue))
561
562 ACPI_EXTERNAL_RETURN_STATUS (
563 ACPI_STATUS
564 AcpiGetName (
565     ACPI_HANDLE             Object,
566     UINT32                  NameType,
567     ACPI_BUFFER             *RetPathPtr))
568
569 ACPI_EXTERNAL_RETURN_STATUS (
570 ACPI_STATUS
571 AcpiGetHandle (
572     ACPI_HANDLE             Parent,
573     ACPI_STRING             Pathname,
574     ACPI_HANDLE             *RetHandle))
575
576 ACPI_EXTERNAL_RETURN_STATUS (
577 ACPI_STATUS
578 AcpiAttachData (
579     ACPI_HANDLE             Object,
580     ACPI_OBJECT_HANDLER     Handler,
581     void                    *Data))
582
583 ACPI_EXTERNAL_RETURN_STATUS (
584 ACPI_STATUS
585 AcpiDetachData (
586     ACPI_HANDLE             Object,
587     ACPI_OBJECT_HANDLER     Handler))
588
589 ACPI_EXTERNAL_RETURN_STATUS (
590 ACPI_STATUS
591 AcpiGetData (
592     ACPI_HANDLE             Object,
593     ACPI_OBJECT_HANDLER     Handler,
594     void                    **Data))
595
596 ACPI_EXTERNAL_RETURN_STATUS (
597 ACPI_STATUS
598 AcpiDebugTrace (
599     char                    *Name,
600     UINT32                  DebugLevel,
601     UINT32                  DebugLayer,
602     UINT32                  Flags))
603
604
605 /*
606  * Object manipulation and enumeration
607  */
608 ACPI_EXTERNAL_RETURN_STATUS (
609 ACPI_STATUS
610 AcpiEvaluateObject (
611     ACPI_HANDLE             Object,
612     ACPI_STRING             Pathname,
613     ACPI_OBJECT_LIST        *ParameterObjects,
614     ACPI_BUFFER             *ReturnObjectBuffer))
615
616 ACPI_EXTERNAL_RETURN_STATUS (
617 ACPI_STATUS
618 AcpiEvaluateObjectTyped (
619     ACPI_HANDLE             Object,
620     ACPI_STRING             Pathname,
621     ACPI_OBJECT_LIST        *ExternalParams,
622     ACPI_BUFFER             *ReturnBuffer,
623     ACPI_OBJECT_TYPE        ReturnType))
624
625 ACPI_EXTERNAL_RETURN_STATUS (
626 ACPI_STATUS
627 AcpiGetObjectInfo (
628     ACPI_HANDLE             Object,
629     ACPI_DEVICE_INFO        **ReturnBuffer))
630
631 ACPI_EXTERNAL_RETURN_STATUS (
632 ACPI_STATUS
633 AcpiInstallMethod (
634     UINT8                   *Buffer))
635
636 ACPI_EXTERNAL_RETURN_STATUS (
637 ACPI_STATUS
638 AcpiGetNextObject (
639     ACPI_OBJECT_TYPE        Type,
640     ACPI_HANDLE             Parent,
641     ACPI_HANDLE             Child,
642     ACPI_HANDLE             *OutHandle))
643
644 ACPI_EXTERNAL_RETURN_STATUS (
645 ACPI_STATUS
646 AcpiGetType (
647     ACPI_HANDLE             Object,
648     ACPI_OBJECT_TYPE        *OutType))
649
650 ACPI_EXTERNAL_RETURN_STATUS (
651 ACPI_STATUS
652 AcpiGetParent (
653     ACPI_HANDLE             Object,
654     ACPI_HANDLE             *OutHandle))
655
656
657 /*
658  * Handler interfaces
659  */
660 ACPI_EXTERNAL_RETURN_STATUS (
661 ACPI_STATUS
662 AcpiInstallInitializationHandler (
663     ACPI_INIT_HANDLER       Handler,
664     UINT32                  Function))
665
666 ACPI_HW_DEPENDENT_RETURN_STATUS (
667 ACPI_STATUS
668 AcpiInstallSciHandler (
669     ACPI_SCI_HANDLER        Address,
670     void                    *Context))
671
672 ACPI_HW_DEPENDENT_RETURN_STATUS (
673 ACPI_STATUS
674 AcpiRemoveSciHandler (
675     ACPI_SCI_HANDLER        Address))
676
677 ACPI_HW_DEPENDENT_RETURN_STATUS (
678 ACPI_STATUS
679 AcpiInstallGlobalEventHandler (
680     ACPI_GBL_EVENT_HANDLER  Handler,
681     void                    *Context))
682
683 ACPI_HW_DEPENDENT_RETURN_STATUS (
684 ACPI_STATUS
685 AcpiInstallFixedEventHandler (
686     UINT32                  AcpiEvent,
687     ACPI_EVENT_HANDLER      Handler,
688     void                    *Context))
689
690 ACPI_HW_DEPENDENT_RETURN_STATUS (
691 ACPI_STATUS
692 AcpiRemoveFixedEventHandler (
693     UINT32                  AcpiEvent,
694     ACPI_EVENT_HANDLER      Handler))
695
696 ACPI_HW_DEPENDENT_RETURN_STATUS (
697 ACPI_STATUS
698 AcpiInstallGpeHandler (
699     ACPI_HANDLE             GpeDevice,
700     UINT32                  GpeNumber,
701     UINT32                  Type,
702     ACPI_GPE_HANDLER        Address,
703     void                    *Context))
704
705 ACPI_HW_DEPENDENT_RETURN_STATUS (
706 ACPI_STATUS
707 AcpiRemoveGpeHandler (
708     ACPI_HANDLE             GpeDevice,
709     UINT32                  GpeNumber,
710     ACPI_GPE_HANDLER        Address))
711
712 ACPI_EXTERNAL_RETURN_STATUS (
713 ACPI_STATUS
714 AcpiInstallNotifyHandler (
715     ACPI_HANDLE             Device,
716     UINT32                  HandlerType,
717     ACPI_NOTIFY_HANDLER     Handler,
718     void                    *Context))
719
720 ACPI_EXTERNAL_RETURN_STATUS (
721 ACPI_STATUS
722 AcpiRemoveNotifyHandler (
723     ACPI_HANDLE             Device,
724     UINT32                  HandlerType,
725     ACPI_NOTIFY_HANDLER     Handler))
726
727 ACPI_EXTERNAL_RETURN_STATUS (
728 ACPI_STATUS
729 AcpiInstallAddressSpaceHandler (
730     ACPI_HANDLE             Device,
731     ACPI_ADR_SPACE_TYPE     SpaceId,
732     ACPI_ADR_SPACE_HANDLER  Handler,
733     ACPI_ADR_SPACE_SETUP    Setup,
734     void                    *Context))
735
736 ACPI_EXTERNAL_RETURN_STATUS (
737 ACPI_STATUS
738 AcpiRemoveAddressSpaceHandler (
739     ACPI_HANDLE             Device,
740     ACPI_ADR_SPACE_TYPE     SpaceId,
741     ACPI_ADR_SPACE_HANDLER  Handler))
742
743 ACPI_EXTERNAL_RETURN_STATUS (
744 ACPI_STATUS
745 AcpiInstallExceptionHandler (
746     ACPI_EXCEPTION_HANDLER  Handler))
747
748 ACPI_EXTERNAL_RETURN_STATUS (
749 ACPI_STATUS
750 AcpiInstallInterfaceHandler (
751     ACPI_INTERFACE_HANDLER  Handler))
752
753
754 /*
755  * Global Lock interfaces
756  */
757 ACPI_HW_DEPENDENT_RETURN_STATUS (
758 ACPI_STATUS
759 AcpiAcquireGlobalLock (
760     UINT16                  Timeout,
761     UINT32                  *Handle))
762
763 ACPI_HW_DEPENDENT_RETURN_STATUS (
764 ACPI_STATUS
765 AcpiReleaseGlobalLock (
766     UINT32                  Handle))
767
768
769 /*
770  * Interfaces to AML mutex objects
771  */
772 ACPI_EXTERNAL_RETURN_STATUS (
773 ACPI_STATUS
774 AcpiAcquireMutex (
775     ACPI_HANDLE             Handle,
776     ACPI_STRING             Pathname,
777     UINT16                  Timeout))
778
779 ACPI_EXTERNAL_RETURN_STATUS (
780 ACPI_STATUS
781 AcpiReleaseMutex (
782     ACPI_HANDLE             Handle,
783     ACPI_STRING             Pathname))
784
785
786 /*
787  * Fixed Event interfaces
788  */
789 ACPI_HW_DEPENDENT_RETURN_STATUS (
790 ACPI_STATUS
791 AcpiEnableEvent (
792     UINT32                  Event,
793     UINT32                  Flags))
794
795 ACPI_HW_DEPENDENT_RETURN_STATUS (
796 ACPI_STATUS
797 AcpiDisableEvent (
798     UINT32                  Event,
799     UINT32                  Flags))
800
801 ACPI_HW_DEPENDENT_RETURN_STATUS (
802 ACPI_STATUS
803 AcpiClearEvent (
804     UINT32                  Event))
805
806 ACPI_HW_DEPENDENT_RETURN_STATUS (
807 ACPI_STATUS
808 AcpiGetEventStatus (
809     UINT32                  Event,
810     ACPI_EVENT_STATUS       *EventStatus))
811
812
813 /*
814  * General Purpose Event (GPE) Interfaces
815  */
816 ACPI_HW_DEPENDENT_RETURN_STATUS (
817 ACPI_STATUS
818 AcpiUpdateAllGpes (
819     void))
820
821 ACPI_HW_DEPENDENT_RETURN_STATUS (
822 ACPI_STATUS
823 AcpiEnableGpe (
824     ACPI_HANDLE             GpeDevice,
825     UINT32                  GpeNumber))
826
827 ACPI_HW_DEPENDENT_RETURN_STATUS (
828 ACPI_STATUS
829 AcpiDisableGpe (
830     ACPI_HANDLE             GpeDevice,
831     UINT32                  GpeNumber))
832
833 ACPI_HW_DEPENDENT_RETURN_STATUS (
834 ACPI_STATUS
835 AcpiClearGpe (
836     ACPI_HANDLE             GpeDevice,
837     UINT32                  GpeNumber))
838
839 ACPI_HW_DEPENDENT_RETURN_STATUS (
840 ACPI_STATUS
841 AcpiSetGpe (
842     ACPI_HANDLE             GpeDevice,
843     UINT32                  GpeNumber,
844     UINT8                   Action))
845
846 ACPI_HW_DEPENDENT_RETURN_STATUS (
847 ACPI_STATUS
848 AcpiFinishGpe (
849     ACPI_HANDLE             GpeDevice,
850     UINT32                  GpeNumber))
851
852 ACPI_HW_DEPENDENT_RETURN_STATUS (
853 ACPI_STATUS
854 AcpiSetupGpeForWake (
855     ACPI_HANDLE             ParentDevice,
856     ACPI_HANDLE             GpeDevice,
857     UINT32                  GpeNumber))
858
859 ACPI_HW_DEPENDENT_RETURN_STATUS (
860 ACPI_STATUS
861 AcpiSetGpeWakeMask (
862     ACPI_HANDLE             GpeDevice,
863     UINT32                  GpeNumber,
864     UINT8                   Action))
865
866 ACPI_HW_DEPENDENT_RETURN_STATUS (
867 ACPI_STATUS
868 AcpiGetGpeStatus (
869     ACPI_HANDLE             GpeDevice,
870     UINT32                  GpeNumber,
871     ACPI_EVENT_STATUS       *EventStatus))
872
873 ACPI_HW_DEPENDENT_RETURN_STATUS (
874 ACPI_STATUS
875 AcpiDisableAllGpes (
876     void))
877
878 ACPI_HW_DEPENDENT_RETURN_STATUS (
879 ACPI_STATUS
880 AcpiEnableAllRuntimeGpes (
881     void))
882
883 ACPI_HW_DEPENDENT_RETURN_STATUS (
884 ACPI_STATUS
885 AcpiGetGpeDevice (
886     UINT32                  GpeIndex,
887     ACPI_HANDLE             *GpeDevice))
888
889 ACPI_HW_DEPENDENT_RETURN_STATUS (
890 ACPI_STATUS
891 AcpiInstallGpeBlock (
892     ACPI_HANDLE             GpeDevice,
893     ACPI_GENERIC_ADDRESS    *GpeBlockAddress,
894     UINT32                  RegisterCount,
895     UINT32                  InterruptNumber))
896
897 ACPI_HW_DEPENDENT_RETURN_STATUS (
898 ACPI_STATUS
899 AcpiRemoveGpeBlock (
900     ACPI_HANDLE             GpeDevice))
901
902
903 /*
904  * Resource interfaces
905  */
906 typedef
907 ACPI_STATUS (*ACPI_WALK_RESOURCE_CALLBACK) (
908     ACPI_RESOURCE           *Resource,
909     void                    *Context);
910
911 ACPI_EXTERNAL_RETURN_STATUS (
912 ACPI_STATUS
913 AcpiGetVendorResource (
914     ACPI_HANDLE             Device,
915     char                    *Name,
916     ACPI_VENDOR_UUID        *Uuid,
917     ACPI_BUFFER             *RetBuffer))
918
919 ACPI_EXTERNAL_RETURN_STATUS (
920 ACPI_STATUS
921 AcpiGetCurrentResources (
922     ACPI_HANDLE             Device,
923     ACPI_BUFFER             *RetBuffer))
924
925 ACPI_EXTERNAL_RETURN_STATUS (
926 ACPI_STATUS
927 AcpiGetPossibleResources (
928     ACPI_HANDLE             Device,
929     ACPI_BUFFER             *RetBuffer))
930
931 ACPI_EXTERNAL_RETURN_STATUS (
932 ACPI_STATUS
933 AcpiGetEventResources (
934     ACPI_HANDLE             DeviceHandle,
935     ACPI_BUFFER             *RetBuffer))
936
937 ACPI_EXTERNAL_RETURN_STATUS (
938 ACPI_STATUS
939 AcpiWalkResourceBuffer (
940     ACPI_BUFFER                 *Buffer,
941     ACPI_WALK_RESOURCE_CALLBACK UserFunction,
942     void                        *Context))
943
944 ACPI_EXTERNAL_RETURN_STATUS (
945 ACPI_STATUS
946 AcpiWalkResources (
947     ACPI_HANDLE                 Device,
948     char                        *Name,
949     ACPI_WALK_RESOURCE_CALLBACK UserFunction,
950     void                        *Context))
951
952 ACPI_EXTERNAL_RETURN_STATUS (
953 ACPI_STATUS
954 AcpiSetCurrentResources (
955     ACPI_HANDLE             Device,
956     ACPI_BUFFER             *InBuffer))
957
958 ACPI_EXTERNAL_RETURN_STATUS (
959 ACPI_STATUS
960 AcpiGetIrqRoutingTable (
961     ACPI_HANDLE             Device,
962     ACPI_BUFFER             *RetBuffer))
963
964 ACPI_EXTERNAL_RETURN_STATUS (
965 ACPI_STATUS
966 AcpiResourceToAddress64 (
967     ACPI_RESOURCE           *Resource,
968     ACPI_RESOURCE_ADDRESS64 *Out))
969
970 ACPI_EXTERNAL_RETURN_STATUS (
971 ACPI_STATUS
972 AcpiBufferToResource (
973     UINT8                   *AmlBuffer,
974     UINT16                  AmlBufferLength,
975     ACPI_RESOURCE           **ResourcePtr))
976
977
978 /*
979  * Hardware (ACPI device) interfaces
980  */
981 ACPI_EXTERNAL_RETURN_STATUS (
982 ACPI_STATUS
983 AcpiReset (
984     void))
985
986 ACPI_EXTERNAL_RETURN_STATUS (
987 ACPI_STATUS
988 AcpiRead (
989     UINT64                  *Value,
990     ACPI_GENERIC_ADDRESS    *Reg))
991
992 ACPI_EXTERNAL_RETURN_STATUS (
993 ACPI_STATUS
994 AcpiWrite (
995     UINT64                  Value,
996     ACPI_GENERIC_ADDRESS    *Reg))
997
998 ACPI_HW_DEPENDENT_RETURN_STATUS (
999 ACPI_STATUS
1000 AcpiReadBitRegister (
1001     UINT32                  RegisterId,
1002     UINT32                  *ReturnValue))
1003
1004 ACPI_HW_DEPENDENT_RETURN_STATUS (
1005 ACPI_STATUS
1006 AcpiWriteBitRegister (
1007     UINT32                  RegisterId,
1008     UINT32                  Value))
1009
1010
1011 /*
1012  * Sleep/Wake interfaces
1013  */
1014 ACPI_EXTERNAL_RETURN_STATUS (
1015 ACPI_STATUS
1016 AcpiGetSleepTypeData (
1017     UINT8                   SleepState,
1018     UINT8                   *Slp_TypA,
1019     UINT8                   *Slp_TypB))
1020
1021 ACPI_EXTERNAL_RETURN_STATUS (
1022 ACPI_STATUS
1023 AcpiEnterSleepStatePrep (
1024     UINT8                   SleepState))
1025
1026 ACPI_EXTERNAL_RETURN_STATUS (
1027 ACPI_STATUS
1028 AcpiEnterSleepState (
1029     UINT8                   SleepState))
1030
1031 ACPI_HW_DEPENDENT_RETURN_STATUS (
1032 ACPI_STATUS
1033 AcpiEnterSleepStateS4bios (
1034     void))
1035
1036 ACPI_EXTERNAL_RETURN_STATUS (
1037 ACPI_STATUS
1038 AcpiLeaveSleepStatePrep (
1039     UINT8                   SleepState))
1040
1041 ACPI_EXTERNAL_RETURN_STATUS (
1042 ACPI_STATUS
1043 AcpiLeaveSleepState (
1044     UINT8                   SleepState))
1045
1046 ACPI_HW_DEPENDENT_RETURN_STATUS (
1047 ACPI_STATUS
1048 AcpiSetFirmwareWakingVector (
1049     UINT32                  PhysicalAddress))
1050
1051 #if ACPI_MACHINE_WIDTH == 64
1052 ACPI_HW_DEPENDENT_RETURN_STATUS (
1053 ACPI_STATUS
1054 AcpiSetFirmwareWakingVector64 (
1055     UINT64                  PhysicalAddress))
1056 #endif
1057
1058
1059 /*
1060  * ACPI Timer interfaces
1061  */
1062 ACPI_HW_DEPENDENT_RETURN_STATUS (
1063 ACPI_STATUS
1064 AcpiGetTimerResolution (
1065     UINT32                  *Resolution))
1066
1067 ACPI_HW_DEPENDENT_RETURN_STATUS (
1068 ACPI_STATUS
1069 AcpiGetTimer (
1070     UINT32                  *Ticks))
1071
1072 ACPI_HW_DEPENDENT_RETURN_STATUS (
1073 ACPI_STATUS
1074 AcpiGetTimerDuration (
1075     UINT32                  StartTicks,
1076     UINT32                  EndTicks,
1077     UINT32                  *TimeElapsed))
1078
1079
1080 /*
1081  * Error/Warning output
1082  */
1083 ACPI_MSG_DEPENDENT_RETURN_VOID (
1084 ACPI_PRINTF_LIKE(3)
1085 void ACPI_INTERNAL_VAR_XFACE
1086 AcpiError (
1087     const char              *ModuleName,
1088     UINT32                  LineNumber,
1089     const char              *Format,
1090     ...))
1091
1092 ACPI_MSG_DEPENDENT_RETURN_VOID (
1093 ACPI_PRINTF_LIKE(4)
1094 void  ACPI_INTERNAL_VAR_XFACE
1095 AcpiException (
1096     const char              *ModuleName,
1097     UINT32                  LineNumber,
1098     ACPI_STATUS             Status,
1099     const char              *Format,
1100     ...))
1101
1102 ACPI_MSG_DEPENDENT_RETURN_VOID (
1103 ACPI_PRINTF_LIKE(3)
1104 void ACPI_INTERNAL_VAR_XFACE
1105 AcpiWarning (
1106     const char              *ModuleName,
1107     UINT32                  LineNumber,
1108     const char              *Format,
1109     ...))
1110
1111 ACPI_MSG_DEPENDENT_RETURN_VOID (
1112 ACPI_PRINTF_LIKE(3)
1113 void ACPI_INTERNAL_VAR_XFACE
1114 AcpiInfo (
1115     const char              *ModuleName,
1116     UINT32                  LineNumber,
1117     const char              *Format,
1118     ...))
1119
1120 ACPI_MSG_DEPENDENT_RETURN_VOID (
1121 ACPI_PRINTF_LIKE(3)
1122 void ACPI_INTERNAL_VAR_XFACE
1123 AcpiBiosError (
1124     const char              *ModuleName,
1125     UINT32                  LineNumber,
1126     const char              *Format,
1127     ...))
1128
1129 ACPI_MSG_DEPENDENT_RETURN_VOID (
1130 ACPI_PRINTF_LIKE(3)
1131 void ACPI_INTERNAL_VAR_XFACE
1132 AcpiBiosWarning (
1133     const char              *ModuleName,
1134     UINT32                  LineNumber,
1135     const char              *Format,
1136     ...))
1137
1138
1139 /*
1140  * Debug output
1141  */
1142 ACPI_DBG_DEPENDENT_RETURN_VOID (
1143 ACPI_PRINTF_LIKE(6)
1144 void ACPI_INTERNAL_VAR_XFACE
1145 AcpiDebugPrint (
1146     UINT32                  RequestedDebugLevel,
1147     UINT32                  LineNumber,
1148     const char              *FunctionName,
1149     const char              *ModuleName,
1150     UINT32                  ComponentId,
1151     const char              *Format,
1152     ...))
1153
1154 ACPI_DBG_DEPENDENT_RETURN_VOID (
1155 ACPI_PRINTF_LIKE(6)
1156 void ACPI_INTERNAL_VAR_XFACE
1157 AcpiDebugPrintRaw (
1158     UINT32                  RequestedDebugLevel,
1159     UINT32                  LineNumber,
1160     const char              *FunctionName,
1161     const char              *ModuleName,
1162     UINT32                  ComponentId,
1163     const char              *Format,
1164     ...))
1165
1166 ACPI_APP_DEPENDENT_RETURN_VOID (
1167 ACPI_PRINTF_LIKE(1)
1168 void ACPI_INTERNAL_VAR_XFACE
1169 AcpiLogError (
1170     const char              *Format,
1171     ...))
1172
1173 #endif /* __ACXFACE_H__ */