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