acpixf.h revision 252279
1230557Sjimharris/******************************************************************************
2230557Sjimharris *
3230557Sjimharris * Name: acpixf.h - External interfaces to the ACPI subsystem
4230557Sjimharris *
5230557Sjimharris *****************************************************************************/
6230557Sjimharris
7230557Sjimharris/*
8230557Sjimharris * Copyright (C) 2000 - 2013, Intel Corp.
9230557Sjimharris * All rights reserved.
10230557Sjimharris *
11230557Sjimharris * Redistribution and use in source and binary forms, with or without
12230557Sjimharris * modification, are permitted provided that the following conditions
13230557Sjimharris * are met:
14230557Sjimharris * 1. Redistributions of source code must retain the above copyright
15230557Sjimharris *    notice, this list of conditions, and the following disclaimer,
16230557Sjimharris *    without modification.
17230557Sjimharris * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18230557Sjimharris *    substantially similar to the "NO WARRANTY" disclaimer below
19230557Sjimharris *    ("Disclaimer") and any redistribution must be conditioned upon
20230557Sjimharris *    including a substantially similar Disclaimer requirement for further
21230557Sjimharris *    binary redistribution.
22230557Sjimharris * 3. Neither the names of the above-listed copyright holders nor the names
23230557Sjimharris *    of any contributors may be used to endorse or promote products derived
24230557Sjimharris *    from this software without specific prior written permission.
25230557Sjimharris *
26230557Sjimharris * Alternatively, this software may be distributed under the terms of the
27230557Sjimharris * GNU General Public License ("GPL") version 2 as published by the Free
28230557Sjimharris * Software Foundation.
29230557Sjimharris *
30230557Sjimharris * NO WARRANTY
31230557Sjimharris * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32230557Sjimharris * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33230557Sjimharris * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34230557Sjimharris * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35230557Sjimharris * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36230557Sjimharris * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37230557Sjimharris * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38230557Sjimharris * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39230557Sjimharris * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40230557Sjimharris * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41230557Sjimharris * POSSIBILITY OF SUCH DAMAGES.
42230557Sjimharris */
43230557Sjimharris
44230557Sjimharris
45230557Sjimharris#ifndef __ACXFACE_H__
46230557Sjimharris#define __ACXFACE_H__
47230557Sjimharris
48230557Sjimharris/* Current ACPICA subsystem version in YYYYMMDD format */
49230557Sjimharris
50230557Sjimharris#define ACPI_CA_VERSION                 0x20130626
51230557Sjimharris
52230557Sjimharris#include <contrib/dev/acpica/include/acconfig.h>
53230557Sjimharris#include <contrib/dev/acpica/include/actypes.h>
54230557Sjimharris#include <contrib/dev/acpica/include/actbl.h>
55230557Sjimharris#include <contrib/dev/acpica/include/acbuffer.h>
56230557Sjimharris
57263276Sjimharris/*
58263276Sjimharris * Globals that are publically available
59230557Sjimharris */
60230557Sjimharrisextern UINT32               AcpiCurrentGpeCount;
61230557Sjimharrisextern ACPI_TABLE_FADT      AcpiGbl_FADT;
62230557Sjimharrisextern BOOLEAN              AcpiGbl_SystemAwakeAndRunning;
63230557Sjimharrisextern BOOLEAN              AcpiGbl_ReducedHardware;        /* ACPI 5.0 */
64230557Sjimharris
65230557Sjimharris/* Runtime configuration of debug print levels */
66230557Sjimharris
67230557Sjimharrisextern UINT32               AcpiDbgLevel;
68230557Sjimharrisextern UINT32               AcpiDbgLayer;
69230557Sjimharris
70230557Sjimharris/* ACPICA runtime options */
71230557Sjimharris
72230557Sjimharrisextern UINT8                AcpiGbl_EnableInterpreterSlack;
73230557Sjimharrisextern UINT8                AcpiGbl_AllMethodsSerialized;
74230557Sjimharrisextern UINT8                AcpiGbl_CreateOsiMethod;
75230557Sjimharrisextern UINT8                AcpiGbl_UseDefaultRegisterWidths;
76230557Sjimharrisextern ACPI_NAME            AcpiGbl_TraceMethodName;
77230557Sjimharrisextern UINT32               AcpiGbl_TraceFlags;
78230557Sjimharrisextern UINT8                AcpiGbl_EnableAmlDebugObject;
79230557Sjimharrisextern UINT8                AcpiGbl_CopyDsdtLocally;
80230557Sjimharrisextern UINT8                AcpiGbl_TruncateIoAddresses;
81230557Sjimharrisextern UINT8                AcpiGbl_DisableAutoRepair;
82230557Sjimharrisextern UINT8                AcpiGbl_DisableSsdtTableLoad;
83230557Sjimharris
84230557Sjimharris
85230557Sjimharris/*
86230557Sjimharris * Hardware-reduced prototypes. All interfaces that use these macros will
87230557Sjimharris * be configured out of the ACPICA build if the ACPI_REDUCED_HARDWARE flag
88230557Sjimharris * is set to TRUE.
89230557Sjimharris */
90230557Sjimharris#if (!ACPI_REDUCED_HARDWARE)
91230557Sjimharris#define ACPI_HW_DEPENDENT_RETURN_STATUS(Prototype) \
92230557Sjimharris    Prototype;
93230557Sjimharris
94230557Sjimharris#define ACPI_HW_DEPENDENT_RETURN_OK(Prototype) \
95230557Sjimharris    Prototype;
96230557Sjimharris
97230557Sjimharris#define ACPI_HW_DEPENDENT_RETURN_VOID(Prototype) \
98230557Sjimharris    Prototype;
99230557Sjimharris
100230557Sjimharris#else
101230557Sjimharris#define ACPI_HW_DEPENDENT_RETURN_STATUS(Prototype) \
102230557Sjimharris    static ACPI_INLINE Prototype {return(AE_NOT_CONFIGURED);}
103230557Sjimharris
104230557Sjimharris#define ACPI_HW_DEPENDENT_RETURN_OK(Prototype) \
105230557Sjimharris    static ACPI_INLINE Prototype {return(AE_OK);}
106230557Sjimharris
107230557Sjimharris#define ACPI_HW_DEPENDENT_RETURN_VOID(Prototype) \
108230557Sjimharris    static ACPI_INLINE Prototype {}
109230557Sjimharris
110230557Sjimharris#endif /* !ACPI_REDUCED_HARDWARE */
111230557Sjimharris
112230557Sjimharris
113230557Sjimharris/*
114230557Sjimharris * Initialization
115230557Sjimharris */
116230557SjimharrisACPI_STATUS
117230557SjimharrisAcpiInitializeTables (
118230557Sjimharris    ACPI_TABLE_DESC         *InitialStorage,
119230557Sjimharris    UINT32                  InitialTableCount,
120230557Sjimharris    BOOLEAN                 AllowResize);
121230557Sjimharris
122230557SjimharrisACPI_STATUS
123230557SjimharrisAcpiInitializeSubsystem (
124230557Sjimharris    void);
125230557Sjimharris
126230557SjimharrisACPI_STATUS
127230557SjimharrisAcpiEnableSubsystem (
128230557Sjimharris    UINT32                  Flags);
129230557Sjimharris
130230557SjimharrisACPI_STATUS
131230557SjimharrisAcpiInitializeObjects (
132230557Sjimharris    UINT32                  Flags);
133230557Sjimharris
134230557SjimharrisACPI_STATUS
135230557SjimharrisAcpiTerminate (
136230557Sjimharris    void);
137230557Sjimharris
138230557Sjimharris
139230557Sjimharris/*
140230557Sjimharris * Miscellaneous global interfaces
141230557Sjimharris */
142230557SjimharrisACPI_HW_DEPENDENT_RETURN_STATUS (
143230557SjimharrisACPI_STATUS
144230557SjimharrisAcpiEnable (
145230557Sjimharris    void))
146230557Sjimharris
147230557SjimharrisACPI_HW_DEPENDENT_RETURN_STATUS (
148230557SjimharrisACPI_STATUS
149230557SjimharrisAcpiDisable (
150230557Sjimharris    void))
151230557Sjimharris
152230557SjimharrisACPI_STATUS
153263276SjimharrisAcpiSubsystemStatus (
154263276Sjimharris    void);
155263276Sjimharris
156263276SjimharrisACPI_STATUS
157230557SjimharrisAcpiGetSystemInfo (
158263276Sjimharris    ACPI_BUFFER             *RetBuffer);
159263276Sjimharris
160230557SjimharrisACPI_STATUS
161230557SjimharrisAcpiGetStatistics (
162230557Sjimharris    ACPI_STATISTICS         *Stats);
163230557Sjimharris
164230557Sjimharrisconst char *
165230557SjimharrisAcpiFormatException (
166230557Sjimharris    ACPI_STATUS             Exception);
167230557Sjimharris
168230557SjimharrisACPI_STATUS
169230557SjimharrisAcpiPurgeCachedObjects (
170230557Sjimharris    void);
171230557Sjimharris
172230557SjimharrisACPI_STATUS
173230557SjimharrisAcpiInstallInterface (
174230557Sjimharris    ACPI_STRING             InterfaceName);
175230557Sjimharris
176230557SjimharrisACPI_STATUS
177230557SjimharrisAcpiRemoveInterface (
178230557Sjimharris    ACPI_STRING             InterfaceName);
179230557Sjimharris
180230557SjimharrisUINT32
181230557SjimharrisAcpiCheckAddressRange (
182230557Sjimharris    ACPI_ADR_SPACE_TYPE     SpaceId,
183230557Sjimharris    ACPI_PHYSICAL_ADDRESS   Address,
184230557Sjimharris    ACPI_SIZE               Length,
185230557Sjimharris    BOOLEAN                 Warn);
186230557Sjimharris
187230557SjimharrisACPI_STATUS
188230557SjimharrisAcpiDecodePldBuffer (
189230557Sjimharris    UINT8                   *InBuffer,
190230557Sjimharris    ACPI_SIZE               Length,
191230557Sjimharris    ACPI_PLD_INFO           **ReturnBuffer);
192230557Sjimharris
193230557Sjimharris/*
194230557Sjimharris * ACPI Memory management
195230557Sjimharris */
196230557Sjimharrisvoid *
197230557SjimharrisAcpiAllocate (
198230557Sjimharris    UINT32                  Size);
199230557Sjimharris
200230557Sjimharrisvoid *
201230557SjimharrisAcpiCallocate (
202230557Sjimharris    UINT32                  Size);
203230557Sjimharris
204230557Sjimharrisvoid
205230557SjimharrisAcpiFree (
206230557Sjimharris    void                    *Address);
207230557Sjimharris
208230557Sjimharris
209230557Sjimharris/*
210230557Sjimharris * ACPI table load/unload interfaces
211230557Sjimharris */
212230557SjimharrisACPI_STATUS
213230557SjimharrisAcpiLoadTable (
214230557Sjimharris    ACPI_TABLE_HEADER       *Table);
215230557Sjimharris
216230557SjimharrisACPI_STATUS
217230557SjimharrisAcpiUnloadParentTable (
218230557Sjimharris    ACPI_HANDLE             Object);
219230557Sjimharris
220230557SjimharrisACPI_STATUS
221230557SjimharrisAcpiLoadTables (
222230557Sjimharris    void);
223230557Sjimharris
224230557Sjimharris
225/*
226 * ACPI table manipulation interfaces
227 */
228ACPI_STATUS
229AcpiReallocateRootTable (
230    void);
231
232ACPI_STATUS
233AcpiFindRootPointer (
234    ACPI_SIZE               *RsdpAddress);
235
236ACPI_STATUS
237AcpiGetTableHeader (
238    ACPI_STRING             Signature,
239    UINT32                  Instance,
240    ACPI_TABLE_HEADER       *OutTableHeader);
241
242ACPI_STATUS
243AcpiGetTable (
244    ACPI_STRING             Signature,
245    UINT32                  Instance,
246    ACPI_TABLE_HEADER       **OutTable);
247
248ACPI_STATUS
249AcpiGetTableByIndex (
250    UINT32                  TableIndex,
251    ACPI_TABLE_HEADER       **OutTable);
252
253ACPI_STATUS
254AcpiInstallTableHandler (
255    ACPI_TABLE_HANDLER      Handler,
256    void                    *Context);
257
258ACPI_STATUS
259AcpiRemoveTableHandler (
260    ACPI_TABLE_HANDLER      Handler);
261
262
263/*
264 * Namespace and name interfaces
265 */
266ACPI_STATUS
267AcpiWalkNamespace (
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
276ACPI_STATUS
277AcpiGetDevices (
278    char                    *HID,
279    ACPI_WALK_CALLBACK      UserFunction,
280    void                    *Context,
281    void                    **ReturnValue);
282
283ACPI_STATUS
284AcpiGetName (
285    ACPI_HANDLE             Object,
286    UINT32                  NameType,
287    ACPI_BUFFER             *RetPathPtr);
288
289ACPI_STATUS
290AcpiGetHandle (
291    ACPI_HANDLE             Parent,
292    ACPI_STRING             Pathname,
293    ACPI_HANDLE             *RetHandle);
294
295ACPI_STATUS
296AcpiAttachData (
297    ACPI_HANDLE             Object,
298    ACPI_OBJECT_HANDLER     Handler,
299    void                    *Data);
300
301ACPI_STATUS
302AcpiDetachData (
303    ACPI_HANDLE             Object,
304    ACPI_OBJECT_HANDLER     Handler);
305
306ACPI_STATUS
307AcpiGetData (
308    ACPI_HANDLE             Object,
309    ACPI_OBJECT_HANDLER     Handler,
310    void                    **Data);
311
312ACPI_STATUS
313AcpiDebugTrace (
314    char                    *Name,
315    UINT32                  DebugLevel,
316    UINT32                  DebugLayer,
317    UINT32                  Flags);
318
319
320/*
321 * Object manipulation and enumeration
322 */
323ACPI_STATUS
324AcpiEvaluateObject (
325    ACPI_HANDLE             Object,
326    ACPI_STRING             Pathname,
327    ACPI_OBJECT_LIST        *ParameterObjects,
328    ACPI_BUFFER             *ReturnObjectBuffer);
329
330ACPI_STATUS
331AcpiEvaluateObjectTyped (
332    ACPI_HANDLE             Object,
333    ACPI_STRING             Pathname,
334    ACPI_OBJECT_LIST        *ExternalParams,
335    ACPI_BUFFER             *ReturnBuffer,
336    ACPI_OBJECT_TYPE        ReturnType);
337
338ACPI_STATUS
339AcpiGetObjectInfo (
340    ACPI_HANDLE             Object,
341    ACPI_DEVICE_INFO        **ReturnBuffer);
342
343ACPI_STATUS
344AcpiInstallMethod (
345    UINT8                   *Buffer);
346
347ACPI_STATUS
348AcpiGetNextObject (
349    ACPI_OBJECT_TYPE        Type,
350    ACPI_HANDLE             Parent,
351    ACPI_HANDLE             Child,
352    ACPI_HANDLE             *OutHandle);
353
354ACPI_STATUS
355AcpiGetType (
356    ACPI_HANDLE             Object,
357    ACPI_OBJECT_TYPE        *OutType);
358
359ACPI_STATUS
360AcpiGetParent (
361    ACPI_HANDLE             Object,
362    ACPI_HANDLE             *OutHandle);
363
364
365/*
366 * Handler interfaces
367 */
368ACPI_STATUS
369AcpiInstallInitializationHandler (
370    ACPI_INIT_HANDLER       Handler,
371    UINT32                  Function);
372
373ACPI_HW_DEPENDENT_RETURN_STATUS (
374ACPI_STATUS
375AcpiInstallGlobalEventHandler (
376    ACPI_GBL_EVENT_HANDLER  Handler,
377    void                    *Context))
378
379ACPI_HW_DEPENDENT_RETURN_STATUS (
380ACPI_STATUS
381AcpiInstallFixedEventHandler (
382    UINT32                  AcpiEvent,
383    ACPI_EVENT_HANDLER      Handler,
384    void                    *Context))
385
386ACPI_HW_DEPENDENT_RETURN_STATUS (
387ACPI_STATUS
388AcpiRemoveFixedEventHandler (
389    UINT32                  AcpiEvent,
390    ACPI_EVENT_HANDLER      Handler))
391
392ACPI_HW_DEPENDENT_RETURN_STATUS (
393ACPI_STATUS
394AcpiInstallGpeHandler (
395    ACPI_HANDLE             GpeDevice,
396    UINT32                  GpeNumber,
397    UINT32                  Type,
398    ACPI_GPE_HANDLER        Address,
399    void                    *Context))
400
401ACPI_HW_DEPENDENT_RETURN_STATUS (
402ACPI_STATUS
403AcpiRemoveGpeHandler (
404    ACPI_HANDLE             GpeDevice,
405    UINT32                  GpeNumber,
406    ACPI_GPE_HANDLER        Address))
407
408ACPI_STATUS
409AcpiInstallNotifyHandler (
410    ACPI_HANDLE             Device,
411    UINT32                  HandlerType,
412    ACPI_NOTIFY_HANDLER     Handler,
413    void                    *Context);
414
415ACPI_STATUS
416AcpiRemoveNotifyHandler (
417    ACPI_HANDLE             Device,
418    UINT32                  HandlerType,
419    ACPI_NOTIFY_HANDLER     Handler);
420
421ACPI_STATUS
422AcpiInstallAddressSpaceHandler (
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
429ACPI_STATUS
430AcpiRemoveAddressSpaceHandler (
431    ACPI_HANDLE             Device,
432    ACPI_ADR_SPACE_TYPE     SpaceId,
433    ACPI_ADR_SPACE_HANDLER  Handler);
434
435ACPI_STATUS
436AcpiInstallExceptionHandler (
437    ACPI_EXCEPTION_HANDLER  Handler);
438
439ACPI_STATUS
440AcpiInstallInterfaceHandler (
441    ACPI_INTERFACE_HANDLER  Handler);
442
443
444/*
445 * Global Lock interfaces
446 */
447ACPI_HW_DEPENDENT_RETURN_STATUS (
448ACPI_STATUS
449AcpiAcquireGlobalLock (
450    UINT16                  Timeout,
451    UINT32                  *Handle))
452
453ACPI_HW_DEPENDENT_RETURN_STATUS (
454ACPI_STATUS
455AcpiReleaseGlobalLock (
456    UINT32                  Handle))
457
458
459/*
460 * Interfaces to AML mutex objects
461 */
462ACPI_STATUS
463AcpiAcquireMutex (
464    ACPI_HANDLE             Handle,
465    ACPI_STRING             Pathname,
466    UINT16                  Timeout);
467
468ACPI_STATUS
469AcpiReleaseMutex (
470    ACPI_HANDLE             Handle,
471    ACPI_STRING             Pathname);
472
473
474/*
475 * Fixed Event interfaces
476 */
477ACPI_HW_DEPENDENT_RETURN_STATUS (
478ACPI_STATUS
479AcpiEnableEvent (
480    UINT32                  Event,
481    UINT32                  Flags))
482
483ACPI_HW_DEPENDENT_RETURN_STATUS (
484ACPI_STATUS
485AcpiDisableEvent (
486    UINT32                  Event,
487    UINT32                  Flags))
488
489ACPI_HW_DEPENDENT_RETURN_STATUS (
490ACPI_STATUS
491AcpiClearEvent (
492    UINT32                  Event))
493
494ACPI_HW_DEPENDENT_RETURN_STATUS (
495ACPI_STATUS
496AcpiGetEventStatus (
497    UINT32                  Event,
498    ACPI_EVENT_STATUS       *EventStatus))
499
500
501/*
502 * General Purpose Event (GPE) Interfaces
503 */
504ACPI_HW_DEPENDENT_RETURN_STATUS (
505ACPI_STATUS
506AcpiUpdateAllGpes (
507    void))
508
509ACPI_HW_DEPENDENT_RETURN_STATUS (
510ACPI_STATUS
511AcpiEnableGpe (
512    ACPI_HANDLE             GpeDevice,
513    UINT32                  GpeNumber))
514
515ACPI_HW_DEPENDENT_RETURN_STATUS (
516ACPI_STATUS
517AcpiDisableGpe (
518    ACPI_HANDLE             GpeDevice,
519    UINT32                  GpeNumber))
520
521ACPI_HW_DEPENDENT_RETURN_STATUS (
522ACPI_STATUS
523AcpiClearGpe (
524    ACPI_HANDLE             GpeDevice,
525    UINT32                  GpeNumber))
526
527ACPI_HW_DEPENDENT_RETURN_STATUS (
528ACPI_STATUS
529AcpiSetGpe (
530    ACPI_HANDLE             GpeDevice,
531    UINT32                  GpeNumber,
532    UINT8                   Action))
533
534ACPI_HW_DEPENDENT_RETURN_STATUS (
535ACPI_STATUS
536AcpiFinishGpe (
537    ACPI_HANDLE             GpeDevice,
538    UINT32                  GpeNumber))
539
540ACPI_HW_DEPENDENT_RETURN_STATUS (
541ACPI_STATUS
542AcpiSetupGpeForWake (
543    ACPI_HANDLE             ParentDevice,
544    ACPI_HANDLE             GpeDevice,
545    UINT32                  GpeNumber))
546
547ACPI_HW_DEPENDENT_RETURN_STATUS (
548ACPI_STATUS
549AcpiSetGpeWakeMask (
550    ACPI_HANDLE             GpeDevice,
551    UINT32                  GpeNumber,
552    UINT8                   Action))
553
554ACPI_HW_DEPENDENT_RETURN_STATUS (
555ACPI_STATUS
556AcpiGetGpeStatus (
557    ACPI_HANDLE             GpeDevice,
558    UINT32                  GpeNumber,
559    ACPI_EVENT_STATUS       *EventStatus))
560
561ACPI_HW_DEPENDENT_RETURN_STATUS (
562ACPI_STATUS
563AcpiDisableAllGpes (
564    void))
565
566ACPI_HW_DEPENDENT_RETURN_STATUS (
567ACPI_STATUS
568AcpiEnableAllRuntimeGpes (
569    void))
570
571ACPI_HW_DEPENDENT_RETURN_STATUS (
572ACPI_STATUS
573AcpiGetGpeDevice (
574    UINT32                  GpeIndex,
575    ACPI_HANDLE             *GpeDevice))
576
577ACPI_HW_DEPENDENT_RETURN_STATUS (
578ACPI_STATUS
579AcpiInstallGpeBlock (
580    ACPI_HANDLE             GpeDevice,
581    ACPI_GENERIC_ADDRESS    *GpeBlockAddress,
582    UINT32                  RegisterCount,
583    UINT32                  InterruptNumber))
584
585ACPI_HW_DEPENDENT_RETURN_STATUS (
586ACPI_STATUS
587AcpiRemoveGpeBlock (
588    ACPI_HANDLE             GpeDevice))
589
590
591/*
592 * Resource interfaces
593 */
594typedef
595ACPI_STATUS (*ACPI_WALK_RESOURCE_CALLBACK) (
596    ACPI_RESOURCE           *Resource,
597    void                    *Context);
598
599ACPI_STATUS
600AcpiGetVendorResource (
601    ACPI_HANDLE             Device,
602    char                    *Name,
603    ACPI_VENDOR_UUID        *Uuid,
604    ACPI_BUFFER             *RetBuffer);
605
606ACPI_STATUS
607AcpiGetCurrentResources (
608    ACPI_HANDLE             Device,
609    ACPI_BUFFER             *RetBuffer);
610
611ACPI_STATUS
612AcpiGetPossibleResources (
613    ACPI_HANDLE             Device,
614    ACPI_BUFFER             *RetBuffer);
615
616ACPI_STATUS
617AcpiGetEventResources (
618    ACPI_HANDLE             DeviceHandle,
619    ACPI_BUFFER             *RetBuffer);
620
621ACPI_STATUS
622AcpiWalkResourceBuffer (
623    ACPI_BUFFER                 *Buffer,
624    ACPI_WALK_RESOURCE_CALLBACK UserFunction,
625    void                        *Context);
626
627ACPI_STATUS
628AcpiWalkResources (
629    ACPI_HANDLE                 Device,
630    char                        *Name,
631    ACPI_WALK_RESOURCE_CALLBACK UserFunction,
632    void                        *Context);
633
634ACPI_STATUS
635AcpiSetCurrentResources (
636    ACPI_HANDLE             Device,
637    ACPI_BUFFER             *InBuffer);
638
639ACPI_STATUS
640AcpiGetIrqRoutingTable (
641    ACPI_HANDLE             Device,
642    ACPI_BUFFER             *RetBuffer);
643
644ACPI_STATUS
645AcpiResourceToAddress64 (
646    ACPI_RESOURCE           *Resource,
647    ACPI_RESOURCE_ADDRESS64 *Out);
648
649ACPI_STATUS
650AcpiBufferToResource (
651    UINT8                   *AmlBuffer,
652    UINT16                  AmlBufferLength,
653    ACPI_RESOURCE           **ResourcePtr);
654
655
656/*
657 * Hardware (ACPI device) interfaces
658 */
659ACPI_STATUS
660AcpiReset (
661    void);
662
663ACPI_STATUS
664AcpiRead (
665    UINT64                  *Value,
666    ACPI_GENERIC_ADDRESS    *Reg);
667
668ACPI_STATUS
669AcpiWrite (
670    UINT64                  Value,
671    ACPI_GENERIC_ADDRESS    *Reg);
672
673ACPI_HW_DEPENDENT_RETURN_STATUS (
674ACPI_STATUS
675AcpiReadBitRegister (
676    UINT32                  RegisterId,
677    UINT32                  *ReturnValue))
678
679ACPI_HW_DEPENDENT_RETURN_STATUS (
680ACPI_STATUS
681AcpiWriteBitRegister (
682    UINT32                  RegisterId,
683    UINT32                  Value))
684
685
686/*
687 * Sleep/Wake interfaces
688 */
689ACPI_STATUS
690AcpiGetSleepTypeData (
691    UINT8                   SleepState,
692    UINT8                   *Slp_TypA,
693    UINT8                   *Slp_TypB);
694
695ACPI_STATUS
696AcpiEnterSleepStatePrep (
697    UINT8                   SleepState);
698
699ACPI_STATUS
700AcpiEnterSleepState (
701    UINT8                   SleepState);
702
703ACPI_HW_DEPENDENT_RETURN_STATUS (
704ACPI_STATUS
705AcpiEnterSleepStateS4bios (
706    void))
707
708ACPI_STATUS
709AcpiLeaveSleepStatePrep (
710    UINT8                   SleepState);
711
712ACPI_STATUS
713AcpiLeaveSleepState (
714    UINT8                   SleepState);
715
716ACPI_HW_DEPENDENT_RETURN_STATUS (
717ACPI_STATUS
718AcpiSetFirmwareWakingVector (
719    UINT32                  PhysicalAddress))
720
721#if ACPI_MACHINE_WIDTH == 64
722ACPI_HW_DEPENDENT_RETURN_STATUS (
723ACPI_STATUS
724AcpiSetFirmwareWakingVector64 (
725    UINT64                  PhysicalAddress))
726#endif
727
728
729/*
730 * ACPI Timer interfaces
731 */
732ACPI_HW_DEPENDENT_RETURN_STATUS (
733ACPI_STATUS
734AcpiGetTimerResolution (
735    UINT32                  *Resolution))
736
737ACPI_HW_DEPENDENT_RETURN_STATUS (
738ACPI_STATUS
739AcpiGetTimer (
740    UINT32                  *Ticks))
741
742ACPI_HW_DEPENDENT_RETURN_STATUS (
743ACPI_STATUS
744AcpiGetTimerDuration (
745    UINT32                  StartTicks,
746    UINT32                  EndTicks,
747    UINT32                  *TimeElapsed))
748
749
750/*
751 * Error/Warning output
752 */
753void ACPI_INTERNAL_VAR_XFACE
754AcpiError (
755    const char              *ModuleName,
756    UINT32                  LineNumber,
757    const char              *Format,
758    ...) ACPI_PRINTF_LIKE(3);
759
760void  ACPI_INTERNAL_VAR_XFACE
761AcpiException (
762    const char              *ModuleName,
763    UINT32                  LineNumber,
764    ACPI_STATUS             Status,
765    const char              *Format,
766    ...) ACPI_PRINTF_LIKE(4);
767
768void ACPI_INTERNAL_VAR_XFACE
769AcpiWarning (
770    const char              *ModuleName,
771    UINT32                  LineNumber,
772    const char              *Format,
773    ...) ACPI_PRINTF_LIKE(3);
774
775void ACPI_INTERNAL_VAR_XFACE
776AcpiInfo (
777    const char              *ModuleName,
778    UINT32                  LineNumber,
779    const char              *Format,
780    ...) ACPI_PRINTF_LIKE(3);
781
782void ACPI_INTERNAL_VAR_XFACE
783AcpiBiosError (
784    const char              *ModuleName,
785    UINT32                  LineNumber,
786    const char              *Format,
787    ...) ACPI_PRINTF_LIKE(3);
788
789void ACPI_INTERNAL_VAR_XFACE
790AcpiBiosWarning (
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
802void ACPI_INTERNAL_VAR_XFACE
803AcpiDebugPrint (
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
812void ACPI_INTERNAL_VAR_XFACE
813AcpiDebugPrintRaw (
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