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