xref: /minix3/minix/drivers/power/acpi/include/acpiosxf.h (revision 29492bb71c7148a089a5afafa0c99409161218df)
1433d6423SLionel Sambuc /******************************************************************************
2433d6423SLionel Sambuc  *
3433d6423SLionel Sambuc  * Name: acpiosxf.h - All interfaces to the OS Services Layer (OSL). These
4433d6423SLionel Sambuc  *                    interfaces must be implemented by OSL to interface the
5433d6423SLionel Sambuc  *                    ACPI components to the host operating system.
6433d6423SLionel Sambuc  *
7433d6423SLionel Sambuc  *****************************************************************************/
8433d6423SLionel Sambuc 
9*29492bb7SDavid van Moolenbroek /*
10*29492bb7SDavid van Moolenbroek  * Copyright (C) 2000 - 2014, Intel Corp.
11433d6423SLionel Sambuc  * All rights reserved.
12433d6423SLionel Sambuc  *
13*29492bb7SDavid van Moolenbroek  * Redistribution and use in source and binary forms, with or without
14*29492bb7SDavid van Moolenbroek  * modification, are permitted provided that the following conditions
15*29492bb7SDavid van Moolenbroek  * are met:
16*29492bb7SDavid van Moolenbroek  * 1. Redistributions of source code must retain the above copyright
17*29492bb7SDavid van Moolenbroek  *    notice, this list of conditions, and the following disclaimer,
18*29492bb7SDavid van Moolenbroek  *    without modification.
19*29492bb7SDavid van Moolenbroek  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
20*29492bb7SDavid van Moolenbroek  *    substantially similar to the "NO WARRANTY" disclaimer below
21*29492bb7SDavid van Moolenbroek  *    ("Disclaimer") and any redistribution must be conditioned upon
22*29492bb7SDavid van Moolenbroek  *    including a substantially similar Disclaimer requirement for further
23*29492bb7SDavid van Moolenbroek  *    binary redistribution.
24*29492bb7SDavid van Moolenbroek  * 3. Neither the names of the above-listed copyright holders nor the names
25*29492bb7SDavid van Moolenbroek  *    of any contributors may be used to endorse or promote products derived
26*29492bb7SDavid van Moolenbroek  *    from this software without specific prior written permission.
27433d6423SLionel Sambuc  *
28*29492bb7SDavid van Moolenbroek  * Alternatively, this software may be distributed under the terms of the
29*29492bb7SDavid van Moolenbroek  * GNU General Public License ("GPL") version 2 as published by the Free
30*29492bb7SDavid van Moolenbroek  * Software Foundation.
31433d6423SLionel Sambuc  *
32*29492bb7SDavid van Moolenbroek  * NO WARRANTY
33*29492bb7SDavid van Moolenbroek  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
34*29492bb7SDavid van Moolenbroek  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
35*29492bb7SDavid van Moolenbroek  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
36*29492bb7SDavid van Moolenbroek  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
37*29492bb7SDavid van Moolenbroek  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
38*29492bb7SDavid van Moolenbroek  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
39*29492bb7SDavid van Moolenbroek  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
40*29492bb7SDavid van Moolenbroek  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
41*29492bb7SDavid van Moolenbroek  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
42*29492bb7SDavid van Moolenbroek  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
43*29492bb7SDavid van Moolenbroek  * POSSIBILITY OF SUCH DAMAGES.
44*29492bb7SDavid van Moolenbroek  */
45433d6423SLionel Sambuc 
46433d6423SLionel Sambuc #ifndef __ACPIOSXF_H__
47433d6423SLionel Sambuc #define __ACPIOSXF_H__
48433d6423SLionel Sambuc 
49433d6423SLionel Sambuc #include "platform/acenv.h"
50433d6423SLionel Sambuc #include "actypes.h"
51433d6423SLionel Sambuc 
52433d6423SLionel Sambuc 
53433d6423SLionel Sambuc /* Types for AcpiOsExecute */
54433d6423SLionel Sambuc 
55433d6423SLionel Sambuc typedef enum
56433d6423SLionel Sambuc {
57433d6423SLionel Sambuc     OSL_GLOBAL_LOCK_HANDLER,
58433d6423SLionel Sambuc     OSL_NOTIFY_HANDLER,
59433d6423SLionel Sambuc     OSL_GPE_HANDLER,
60433d6423SLionel Sambuc     OSL_DEBUGGER_THREAD,
61433d6423SLionel Sambuc     OSL_EC_POLL_HANDLER,
62433d6423SLionel Sambuc     OSL_EC_BURST_HANDLER
63433d6423SLionel Sambuc 
64433d6423SLionel Sambuc } ACPI_EXECUTE_TYPE;
65433d6423SLionel Sambuc 
66433d6423SLionel Sambuc #define ACPI_NO_UNIT_LIMIT          ((UINT32) -1)
67433d6423SLionel Sambuc #define ACPI_MUTEX_SEM              1
68433d6423SLionel Sambuc 
69433d6423SLionel Sambuc 
70433d6423SLionel Sambuc /* Functions for AcpiOsSignal */
71433d6423SLionel Sambuc 
72433d6423SLionel Sambuc #define ACPI_SIGNAL_FATAL           0
73433d6423SLionel Sambuc #define ACPI_SIGNAL_BREAKPOINT      1
74433d6423SLionel Sambuc 
75433d6423SLionel Sambuc typedef struct acpi_signal_fatal_info
76433d6423SLionel Sambuc {
77433d6423SLionel Sambuc     UINT32                  Type;
78433d6423SLionel Sambuc     UINT32                  Code;
79433d6423SLionel Sambuc     UINT32                  Argument;
80433d6423SLionel Sambuc 
81433d6423SLionel Sambuc } ACPI_SIGNAL_FATAL_INFO;
82433d6423SLionel Sambuc 
83433d6423SLionel Sambuc 
84433d6423SLionel Sambuc /*
85433d6423SLionel Sambuc  * OSL Initialization and shutdown primitives
86433d6423SLionel Sambuc  */
87*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInitialize
88433d6423SLionel Sambuc ACPI_STATUS
89433d6423SLionel Sambuc AcpiOsInitialize (
90433d6423SLionel Sambuc     void);
91*29492bb7SDavid van Moolenbroek #endif
92433d6423SLionel Sambuc 
93*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTerminate
94433d6423SLionel Sambuc ACPI_STATUS
95433d6423SLionel Sambuc AcpiOsTerminate (
96433d6423SLionel Sambuc     void);
97*29492bb7SDavid van Moolenbroek #endif
98433d6423SLionel Sambuc 
99433d6423SLionel Sambuc 
100433d6423SLionel Sambuc /*
101433d6423SLionel Sambuc  * ACPI Table interfaces
102433d6423SLionel Sambuc  */
103*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetRootPointer
104433d6423SLionel Sambuc ACPI_PHYSICAL_ADDRESS
105433d6423SLionel Sambuc AcpiOsGetRootPointer (
106433d6423SLionel Sambuc     void);
107*29492bb7SDavid van Moolenbroek #endif
108433d6423SLionel Sambuc 
109*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPredefinedOverride
110433d6423SLionel Sambuc ACPI_STATUS
111433d6423SLionel Sambuc AcpiOsPredefinedOverride (
112433d6423SLionel Sambuc     const ACPI_PREDEFINED_NAMES *InitVal,
113433d6423SLionel Sambuc     ACPI_STRING                 *NewVal);
114*29492bb7SDavid van Moolenbroek #endif
115433d6423SLionel Sambuc 
116*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTableOverride
117433d6423SLionel Sambuc ACPI_STATUS
118433d6423SLionel Sambuc AcpiOsTableOverride (
119433d6423SLionel Sambuc     ACPI_TABLE_HEADER       *ExistingTable,
120433d6423SLionel Sambuc     ACPI_TABLE_HEADER       **NewTable);
121*29492bb7SDavid van Moolenbroek #endif
122*29492bb7SDavid van Moolenbroek 
123*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPhysicalTableOverride
124*29492bb7SDavid van Moolenbroek ACPI_STATUS
125*29492bb7SDavid van Moolenbroek AcpiOsPhysicalTableOverride (
126*29492bb7SDavid van Moolenbroek     ACPI_TABLE_HEADER       *ExistingTable,
127*29492bb7SDavid van Moolenbroek     ACPI_PHYSICAL_ADDRESS   *NewAddress,
128*29492bb7SDavid van Moolenbroek     UINT32                  *NewTableLength);
129*29492bb7SDavid van Moolenbroek #endif
130433d6423SLionel Sambuc 
131433d6423SLionel Sambuc 
132433d6423SLionel Sambuc /*
133433d6423SLionel Sambuc  * Spinlock primitives
134433d6423SLionel Sambuc  */
135*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateLock
136433d6423SLionel Sambuc ACPI_STATUS
137433d6423SLionel Sambuc AcpiOsCreateLock (
138433d6423SLionel Sambuc     ACPI_SPINLOCK           *OutHandle);
139*29492bb7SDavid van Moolenbroek #endif
140433d6423SLionel Sambuc 
141*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteLock
142433d6423SLionel Sambuc void
143433d6423SLionel Sambuc AcpiOsDeleteLock (
144433d6423SLionel Sambuc     ACPI_SPINLOCK           Handle);
145*29492bb7SDavid van Moolenbroek #endif
146433d6423SLionel Sambuc 
147*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireLock
148433d6423SLionel Sambuc ACPI_CPU_FLAGS
149433d6423SLionel Sambuc AcpiOsAcquireLock (
150433d6423SLionel Sambuc     ACPI_SPINLOCK           Handle);
151*29492bb7SDavid van Moolenbroek #endif
152433d6423SLionel Sambuc 
153*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseLock
154433d6423SLionel Sambuc void
155433d6423SLionel Sambuc AcpiOsReleaseLock (
156433d6423SLionel Sambuc     ACPI_SPINLOCK           Handle,
157433d6423SLionel Sambuc     ACPI_CPU_FLAGS          Flags);
158*29492bb7SDavid van Moolenbroek #endif
159433d6423SLionel Sambuc 
160433d6423SLionel Sambuc 
161433d6423SLionel Sambuc /*
162433d6423SLionel Sambuc  * Semaphore primitives
163433d6423SLionel Sambuc  */
164*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateSemaphore
165433d6423SLionel Sambuc ACPI_STATUS
166433d6423SLionel Sambuc AcpiOsCreateSemaphore (
167433d6423SLionel Sambuc     UINT32                  MaxUnits,
168433d6423SLionel Sambuc     UINT32                  InitialUnits,
169433d6423SLionel Sambuc     ACPI_SEMAPHORE          *OutHandle);
170*29492bb7SDavid van Moolenbroek #endif
171433d6423SLionel Sambuc 
172*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteSemaphore
173433d6423SLionel Sambuc ACPI_STATUS
174433d6423SLionel Sambuc AcpiOsDeleteSemaphore (
175433d6423SLionel Sambuc     ACPI_SEMAPHORE          Handle);
176*29492bb7SDavid van Moolenbroek #endif
177433d6423SLionel Sambuc 
178*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitSemaphore
179433d6423SLionel Sambuc ACPI_STATUS
180433d6423SLionel Sambuc AcpiOsWaitSemaphore (
181433d6423SLionel Sambuc     ACPI_SEMAPHORE          Handle,
182433d6423SLionel Sambuc     UINT32                  Units,
183433d6423SLionel Sambuc     UINT16                  Timeout);
184*29492bb7SDavid van Moolenbroek #endif
185433d6423SLionel Sambuc 
186*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSignalSemaphore
187433d6423SLionel Sambuc ACPI_STATUS
188433d6423SLionel Sambuc AcpiOsSignalSemaphore (
189433d6423SLionel Sambuc     ACPI_SEMAPHORE          Handle,
190433d6423SLionel Sambuc     UINT32                  Units);
191*29492bb7SDavid van Moolenbroek #endif
192433d6423SLionel Sambuc 
193433d6423SLionel Sambuc 
194433d6423SLionel Sambuc /*
195433d6423SLionel Sambuc  * Mutex primitives. May be configured to use semaphores instead via
196433d6423SLionel Sambuc  * ACPI_MUTEX_TYPE (see platform/acenv.h)
197433d6423SLionel Sambuc  */
198433d6423SLionel Sambuc #if (ACPI_MUTEX_TYPE != ACPI_BINARY_SEMAPHORE)
199433d6423SLionel Sambuc 
200*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateMutex
201433d6423SLionel Sambuc ACPI_STATUS
202433d6423SLionel Sambuc AcpiOsCreateMutex (
203433d6423SLionel Sambuc     ACPI_MUTEX              *OutHandle);
204*29492bb7SDavid van Moolenbroek #endif
205433d6423SLionel Sambuc 
206*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteMutex
207433d6423SLionel Sambuc void
208433d6423SLionel Sambuc AcpiOsDeleteMutex (
209433d6423SLionel Sambuc     ACPI_MUTEX              Handle);
210*29492bb7SDavid van Moolenbroek #endif
211433d6423SLionel Sambuc 
212*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireMutex
213433d6423SLionel Sambuc ACPI_STATUS
214433d6423SLionel Sambuc AcpiOsAcquireMutex (
215433d6423SLionel Sambuc     ACPI_MUTEX              Handle,
216433d6423SLionel Sambuc     UINT16                  Timeout);
217*29492bb7SDavid van Moolenbroek #endif
218433d6423SLionel Sambuc 
219*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseMutex
220433d6423SLionel Sambuc void
221433d6423SLionel Sambuc AcpiOsReleaseMutex (
222433d6423SLionel Sambuc     ACPI_MUTEX              Handle);
223433d6423SLionel Sambuc #endif
224433d6423SLionel Sambuc 
225*29492bb7SDavid van Moolenbroek #endif
226*29492bb7SDavid van Moolenbroek 
227433d6423SLionel Sambuc 
228433d6423SLionel Sambuc /*
229433d6423SLionel Sambuc  * Memory allocation and mapping
230433d6423SLionel Sambuc  */
231*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAllocate
232433d6423SLionel Sambuc void *
233433d6423SLionel Sambuc AcpiOsAllocate (
234433d6423SLionel Sambuc     ACPI_SIZE               Size);
235*29492bb7SDavid van Moolenbroek #endif
236433d6423SLionel Sambuc 
237*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAllocateZeroed
238*29492bb7SDavid van Moolenbroek void *
239*29492bb7SDavid van Moolenbroek AcpiOsAllocateZeroed (
240*29492bb7SDavid van Moolenbroek     ACPI_SIZE               Size);
241*29492bb7SDavid van Moolenbroek #endif
242*29492bb7SDavid van Moolenbroek 
243*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsFree
244433d6423SLionel Sambuc void
245433d6423SLionel Sambuc AcpiOsFree (
246433d6423SLionel Sambuc     void *                  Memory);
247*29492bb7SDavid van Moolenbroek #endif
248433d6423SLionel Sambuc 
249*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsMapMemory
250433d6423SLionel Sambuc void *
251433d6423SLionel Sambuc AcpiOsMapMemory (
252433d6423SLionel Sambuc     ACPI_PHYSICAL_ADDRESS   Where,
253433d6423SLionel Sambuc     ACPI_SIZE               Length);
254*29492bb7SDavid van Moolenbroek #endif
255433d6423SLionel Sambuc 
256*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsUnmapMemory
257433d6423SLionel Sambuc void
258433d6423SLionel Sambuc AcpiOsUnmapMemory (
259433d6423SLionel Sambuc     void                    *LogicalAddress,
260433d6423SLionel Sambuc     ACPI_SIZE               Size);
261*29492bb7SDavid van Moolenbroek #endif
262433d6423SLionel Sambuc 
263*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetPhysicalAddress
264433d6423SLionel Sambuc ACPI_STATUS
265433d6423SLionel Sambuc AcpiOsGetPhysicalAddress (
266433d6423SLionel Sambuc     void                    *LogicalAddress,
267433d6423SLionel Sambuc     ACPI_PHYSICAL_ADDRESS   *PhysicalAddress);
268*29492bb7SDavid van Moolenbroek #endif
269433d6423SLionel Sambuc 
270433d6423SLionel Sambuc 
271433d6423SLionel Sambuc /*
272433d6423SLionel Sambuc  * Memory/Object Cache
273433d6423SLionel Sambuc  */
274*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateCache
275433d6423SLionel Sambuc ACPI_STATUS
276433d6423SLionel Sambuc AcpiOsCreateCache (
277433d6423SLionel Sambuc     char                    *CacheName,
278433d6423SLionel Sambuc     UINT16                  ObjectSize,
279433d6423SLionel Sambuc     UINT16                  MaxDepth,
280433d6423SLionel Sambuc     ACPI_CACHE_T            **ReturnCache);
281*29492bb7SDavid van Moolenbroek #endif
282433d6423SLionel Sambuc 
283*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteCache
284433d6423SLionel Sambuc ACPI_STATUS
285433d6423SLionel Sambuc AcpiOsDeleteCache (
286433d6423SLionel Sambuc     ACPI_CACHE_T            *Cache);
287*29492bb7SDavid van Moolenbroek #endif
288433d6423SLionel Sambuc 
289*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPurgeCache
290433d6423SLionel Sambuc ACPI_STATUS
291433d6423SLionel Sambuc AcpiOsPurgeCache (
292433d6423SLionel Sambuc     ACPI_CACHE_T            *Cache);
293*29492bb7SDavid van Moolenbroek #endif
294433d6423SLionel Sambuc 
295*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireObject
296433d6423SLionel Sambuc void *
297433d6423SLionel Sambuc AcpiOsAcquireObject (
298433d6423SLionel Sambuc     ACPI_CACHE_T            *Cache);
299*29492bb7SDavid van Moolenbroek #endif
300433d6423SLionel Sambuc 
301*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseObject
302433d6423SLionel Sambuc ACPI_STATUS
303433d6423SLionel Sambuc AcpiOsReleaseObject (
304433d6423SLionel Sambuc     ACPI_CACHE_T            *Cache,
305433d6423SLionel Sambuc     void                    *Object);
306*29492bb7SDavid van Moolenbroek #endif
307433d6423SLionel Sambuc 
308433d6423SLionel Sambuc 
309433d6423SLionel Sambuc /*
310433d6423SLionel Sambuc  * Interrupt handlers
311433d6423SLionel Sambuc  */
312*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInstallInterruptHandler
313433d6423SLionel Sambuc ACPI_STATUS
314433d6423SLionel Sambuc AcpiOsInstallInterruptHandler (
315433d6423SLionel Sambuc     UINT32                  InterruptNumber,
316433d6423SLionel Sambuc     ACPI_OSD_HANDLER        ServiceRoutine,
317433d6423SLionel Sambuc     void                    *Context);
318*29492bb7SDavid van Moolenbroek #endif
319433d6423SLionel Sambuc 
320*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsRemoveInterruptHandler
321433d6423SLionel Sambuc ACPI_STATUS
322433d6423SLionel Sambuc AcpiOsRemoveInterruptHandler (
323433d6423SLionel Sambuc     UINT32                  InterruptNumber,
324433d6423SLionel Sambuc     ACPI_OSD_HANDLER        ServiceRoutine);
325*29492bb7SDavid van Moolenbroek #endif
326433d6423SLionel Sambuc 
327433d6423SLionel Sambuc 
328433d6423SLionel Sambuc /*
329433d6423SLionel Sambuc  * Threads and Scheduling
330433d6423SLionel Sambuc  */
331*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetThreadId
332433d6423SLionel Sambuc ACPI_THREAD_ID
333433d6423SLionel Sambuc AcpiOsGetThreadId (
334433d6423SLionel Sambuc     void);
335*29492bb7SDavid van Moolenbroek #endif
336433d6423SLionel Sambuc 
337*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsExecute
338433d6423SLionel Sambuc ACPI_STATUS
339433d6423SLionel Sambuc AcpiOsExecute (
340433d6423SLionel Sambuc     ACPI_EXECUTE_TYPE       Type,
341433d6423SLionel Sambuc     ACPI_OSD_EXEC_CALLBACK  Function,
342433d6423SLionel Sambuc     void                    *Context);
343*29492bb7SDavid van Moolenbroek #endif
344433d6423SLionel Sambuc 
345*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitEventsComplete
346433d6423SLionel Sambuc void
347433d6423SLionel Sambuc AcpiOsWaitEventsComplete (
348*29492bb7SDavid van Moolenbroek     void);
349*29492bb7SDavid van Moolenbroek #endif
350433d6423SLionel Sambuc 
351*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSleep
352433d6423SLionel Sambuc void
353433d6423SLionel Sambuc AcpiOsSleep (
354433d6423SLionel Sambuc     UINT64                  Milliseconds);
355*29492bb7SDavid van Moolenbroek #endif
356433d6423SLionel Sambuc 
357*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsStall
358433d6423SLionel Sambuc void
359433d6423SLionel Sambuc AcpiOsStall (
360433d6423SLionel Sambuc     UINT32                  Microseconds);
361*29492bb7SDavid van Moolenbroek #endif
362433d6423SLionel Sambuc 
363433d6423SLionel Sambuc 
364433d6423SLionel Sambuc /*
365433d6423SLionel Sambuc  * Platform and hardware-independent I/O interfaces
366433d6423SLionel Sambuc  */
367*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadPort
368433d6423SLionel Sambuc ACPI_STATUS
369433d6423SLionel Sambuc AcpiOsReadPort (
370433d6423SLionel Sambuc     ACPI_IO_ADDRESS         Address,
371433d6423SLionel Sambuc     UINT32                  *Value,
372433d6423SLionel Sambuc     UINT32                  Width);
373*29492bb7SDavid van Moolenbroek #endif
374433d6423SLionel Sambuc 
375*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritePort
376433d6423SLionel Sambuc ACPI_STATUS
377433d6423SLionel Sambuc AcpiOsWritePort (
378433d6423SLionel Sambuc     ACPI_IO_ADDRESS         Address,
379433d6423SLionel Sambuc     UINT32                  Value,
380433d6423SLionel Sambuc     UINT32                  Width);
381*29492bb7SDavid van Moolenbroek #endif
382433d6423SLionel Sambuc 
383433d6423SLionel Sambuc 
384433d6423SLionel Sambuc /*
385433d6423SLionel Sambuc  * Platform and hardware-independent physical memory interfaces
386433d6423SLionel Sambuc  */
387*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadMemory
388433d6423SLionel Sambuc ACPI_STATUS
389433d6423SLionel Sambuc AcpiOsReadMemory (
390433d6423SLionel Sambuc     ACPI_PHYSICAL_ADDRESS   Address,
391*29492bb7SDavid van Moolenbroek     UINT64                  *Value,
392433d6423SLionel Sambuc     UINT32                  Width);
393*29492bb7SDavid van Moolenbroek #endif
394433d6423SLionel Sambuc 
395*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWriteMemory
396433d6423SLionel Sambuc ACPI_STATUS
397433d6423SLionel Sambuc AcpiOsWriteMemory (
398433d6423SLionel Sambuc     ACPI_PHYSICAL_ADDRESS   Address,
399*29492bb7SDavid van Moolenbroek     UINT64                  Value,
400433d6423SLionel Sambuc     UINT32                  Width);
401*29492bb7SDavid van Moolenbroek #endif
402433d6423SLionel Sambuc 
403433d6423SLionel Sambuc 
404433d6423SLionel Sambuc /*
405433d6423SLionel Sambuc  * Platform and hardware-independent PCI configuration space access
406433d6423SLionel Sambuc  * Note: Can't use "Register" as a parameter, changed to "Reg" --
407433d6423SLionel Sambuc  * certain compilers complain.
408433d6423SLionel Sambuc  */
409*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadPciConfiguration
410433d6423SLionel Sambuc ACPI_STATUS
411433d6423SLionel Sambuc AcpiOsReadPciConfiguration (
412433d6423SLionel Sambuc     ACPI_PCI_ID             *PciId,
413433d6423SLionel Sambuc     UINT32                  Reg,
414*29492bb7SDavid van Moolenbroek     UINT64                  *Value,
415433d6423SLionel Sambuc     UINT32                  Width);
416*29492bb7SDavid van Moolenbroek #endif
417433d6423SLionel Sambuc 
418*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritePciConfiguration
419433d6423SLionel Sambuc ACPI_STATUS
420433d6423SLionel Sambuc AcpiOsWritePciConfiguration (
421433d6423SLionel Sambuc     ACPI_PCI_ID             *PciId,
422433d6423SLionel Sambuc     UINT32                  Reg,
423433d6423SLionel Sambuc     UINT64                  Value,
424433d6423SLionel Sambuc     UINT32                  Width);
425*29492bb7SDavid van Moolenbroek #endif
426433d6423SLionel Sambuc 
427433d6423SLionel Sambuc 
428433d6423SLionel Sambuc /*
429433d6423SLionel Sambuc  * Miscellaneous
430433d6423SLionel Sambuc  */
431*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadable
432433d6423SLionel Sambuc BOOLEAN
433433d6423SLionel Sambuc AcpiOsReadable (
434433d6423SLionel Sambuc     void                    *Pointer,
435433d6423SLionel Sambuc     ACPI_SIZE               Length);
436*29492bb7SDavid van Moolenbroek #endif
437433d6423SLionel Sambuc 
438*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritable
439433d6423SLionel Sambuc BOOLEAN
440433d6423SLionel Sambuc AcpiOsWritable (
441433d6423SLionel Sambuc     void                    *Pointer,
442433d6423SLionel Sambuc     ACPI_SIZE               Length);
443*29492bb7SDavid van Moolenbroek #endif
444433d6423SLionel Sambuc 
445*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTimer
446433d6423SLionel Sambuc UINT64
447433d6423SLionel Sambuc AcpiOsGetTimer (
448433d6423SLionel Sambuc     void);
449*29492bb7SDavid van Moolenbroek #endif
450433d6423SLionel Sambuc 
451*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSignal
452433d6423SLionel Sambuc ACPI_STATUS
453433d6423SLionel Sambuc AcpiOsSignal (
454433d6423SLionel Sambuc     UINT32                  Function,
455433d6423SLionel Sambuc     void                    *Info);
456*29492bb7SDavid van Moolenbroek #endif
457433d6423SLionel Sambuc 
458433d6423SLionel Sambuc 
459433d6423SLionel Sambuc /*
460433d6423SLionel Sambuc  * Debug print routines
461433d6423SLionel Sambuc  */
462*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPrintf
463433d6423SLionel Sambuc void ACPI_INTERNAL_VAR_XFACE
464433d6423SLionel Sambuc AcpiOsPrintf (
465433d6423SLionel Sambuc     const char              *Format,
466433d6423SLionel Sambuc     ...);
467*29492bb7SDavid van Moolenbroek #endif
468433d6423SLionel Sambuc 
469*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsVprintf
470433d6423SLionel Sambuc void
471433d6423SLionel Sambuc AcpiOsVprintf (
472433d6423SLionel Sambuc     const char              *Format,
473433d6423SLionel Sambuc     va_list                 Args);
474*29492bb7SDavid van Moolenbroek #endif
475433d6423SLionel Sambuc 
476*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsRedirectOutput
477433d6423SLionel Sambuc void
478433d6423SLionel Sambuc AcpiOsRedirectOutput (
479433d6423SLionel Sambuc     void                    *Destination);
480*29492bb7SDavid van Moolenbroek #endif
481433d6423SLionel Sambuc 
482433d6423SLionel Sambuc 
483433d6423SLionel Sambuc /*
484433d6423SLionel Sambuc  * Debug input
485433d6423SLionel Sambuc  */
486*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetLine
487*29492bb7SDavid van Moolenbroek ACPI_STATUS
488433d6423SLionel Sambuc AcpiOsGetLine (
489*29492bb7SDavid van Moolenbroek     char                    *Buffer,
490*29492bb7SDavid van Moolenbroek     UINT32                  BufferLength,
491*29492bb7SDavid van Moolenbroek     UINT32                  *BytesRead);
492*29492bb7SDavid van Moolenbroek #endif
493*29492bb7SDavid van Moolenbroek 
494*29492bb7SDavid van Moolenbroek 
495*29492bb7SDavid van Moolenbroek /*
496*29492bb7SDavid van Moolenbroek  * Obtain ACPI table(s)
497*29492bb7SDavid van Moolenbroek  */
498*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByName
499*29492bb7SDavid van Moolenbroek ACPI_STATUS
500*29492bb7SDavid van Moolenbroek AcpiOsGetTableByName (
501*29492bb7SDavid van Moolenbroek     char                    *Signature,
502*29492bb7SDavid van Moolenbroek     UINT32                  Instance,
503*29492bb7SDavid van Moolenbroek     ACPI_TABLE_HEADER       **Table,
504*29492bb7SDavid van Moolenbroek     ACPI_PHYSICAL_ADDRESS   *Address);
505*29492bb7SDavid van Moolenbroek #endif
506*29492bb7SDavid van Moolenbroek 
507*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByIndex
508*29492bb7SDavid van Moolenbroek ACPI_STATUS
509*29492bb7SDavid van Moolenbroek AcpiOsGetTableByIndex (
510*29492bb7SDavid van Moolenbroek     UINT32                  Index,
511*29492bb7SDavid van Moolenbroek     ACPI_TABLE_HEADER       **Table,
512*29492bb7SDavid van Moolenbroek     UINT32                  *Instance,
513*29492bb7SDavid van Moolenbroek     ACPI_PHYSICAL_ADDRESS   *Address);
514*29492bb7SDavid van Moolenbroek #endif
515*29492bb7SDavid van Moolenbroek 
516*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByAddress
517*29492bb7SDavid van Moolenbroek ACPI_STATUS
518*29492bb7SDavid van Moolenbroek AcpiOsGetTableByAddress (
519*29492bb7SDavid van Moolenbroek     ACPI_PHYSICAL_ADDRESS   Address,
520*29492bb7SDavid van Moolenbroek     ACPI_TABLE_HEADER       **Table);
521*29492bb7SDavid van Moolenbroek #endif
522433d6423SLionel Sambuc 
523433d6423SLionel Sambuc 
524433d6423SLionel Sambuc /*
525433d6423SLionel Sambuc  * Directory manipulation
526433d6423SLionel Sambuc  */
527*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsOpenDirectory
528433d6423SLionel Sambuc void *
529433d6423SLionel Sambuc AcpiOsOpenDirectory (
530433d6423SLionel Sambuc     char                    *Pathname,
531433d6423SLionel Sambuc     char                    *WildcardSpec,
532433d6423SLionel Sambuc     char                    RequestedFileType);
533*29492bb7SDavid van Moolenbroek #endif
534433d6423SLionel Sambuc 
535433d6423SLionel Sambuc /* RequesteFileType values */
536433d6423SLionel Sambuc 
537433d6423SLionel Sambuc #define REQUEST_FILE_ONLY                   0
538433d6423SLionel Sambuc #define REQUEST_DIR_ONLY                    1
539433d6423SLionel Sambuc 
540433d6423SLionel Sambuc 
541*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetNextFilename
542433d6423SLionel Sambuc char *
543433d6423SLionel Sambuc AcpiOsGetNextFilename (
544433d6423SLionel Sambuc     void                    *DirHandle);
545*29492bb7SDavid van Moolenbroek #endif
546433d6423SLionel Sambuc 
547*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCloseDirectory
548433d6423SLionel Sambuc void
549433d6423SLionel Sambuc AcpiOsCloseDirectory (
550433d6423SLionel Sambuc     void                    *DirHandle);
551*29492bb7SDavid van Moolenbroek #endif
552*29492bb7SDavid van Moolenbroek 
553*29492bb7SDavid van Moolenbroek 
554*29492bb7SDavid van Moolenbroek /*
555*29492bb7SDavid van Moolenbroek  * File I/O and related support
556*29492bb7SDavid van Moolenbroek  */
557*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsOpenFile
558*29492bb7SDavid van Moolenbroek ACPI_FILE
559*29492bb7SDavid van Moolenbroek AcpiOsOpenFile (
560*29492bb7SDavid van Moolenbroek     const char              *Path,
561*29492bb7SDavid van Moolenbroek     UINT8                   Modes);
562*29492bb7SDavid van Moolenbroek #endif
563*29492bb7SDavid van Moolenbroek 
564*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCloseFile
565*29492bb7SDavid van Moolenbroek void
566*29492bb7SDavid van Moolenbroek AcpiOsCloseFile (
567*29492bb7SDavid van Moolenbroek     ACPI_FILE               File);
568*29492bb7SDavid van Moolenbroek #endif
569*29492bb7SDavid van Moolenbroek 
570*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadFile
571*29492bb7SDavid van Moolenbroek int
572*29492bb7SDavid van Moolenbroek AcpiOsReadFile (
573*29492bb7SDavid van Moolenbroek     ACPI_FILE               File,
574*29492bb7SDavid van Moolenbroek     void                    *Buffer,
575*29492bb7SDavid van Moolenbroek     ACPI_SIZE               Size,
576*29492bb7SDavid van Moolenbroek     ACPI_SIZE               Count);
577*29492bb7SDavid van Moolenbroek #endif
578*29492bb7SDavid van Moolenbroek 
579*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWriteFile
580*29492bb7SDavid van Moolenbroek int
581*29492bb7SDavid van Moolenbroek AcpiOsWriteFile (
582*29492bb7SDavid van Moolenbroek     ACPI_FILE               File,
583*29492bb7SDavid van Moolenbroek     void                    *Buffer,
584*29492bb7SDavid van Moolenbroek     ACPI_SIZE               Size,
585*29492bb7SDavid van Moolenbroek     ACPI_SIZE               Count);
586*29492bb7SDavid van Moolenbroek #endif
587*29492bb7SDavid van Moolenbroek 
588*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetFileOffset
589*29492bb7SDavid van Moolenbroek long
590*29492bb7SDavid van Moolenbroek AcpiOsGetFileOffset (
591*29492bb7SDavid van Moolenbroek     ACPI_FILE               File);
592*29492bb7SDavid van Moolenbroek #endif
593*29492bb7SDavid van Moolenbroek 
594*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSetFileOffset
595*29492bb7SDavid van Moolenbroek ACPI_STATUS
596*29492bb7SDavid van Moolenbroek AcpiOsSetFileOffset (
597*29492bb7SDavid van Moolenbroek     ACPI_FILE               File,
598*29492bb7SDavid van Moolenbroek     long                    Offset,
599*29492bb7SDavid van Moolenbroek     UINT8                   From);
600*29492bb7SDavid van Moolenbroek #endif
601433d6423SLionel Sambuc 
602433d6423SLionel Sambuc 
603433d6423SLionel Sambuc #endif /* __ACPIOSXF_H__ */
604