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