Fixed compatibility of output.
[AROS.git] / arch / all-pc / acpica / source / include / acpiosxf.h
blob4c4f2268af6fd431219d33764e58f8c238e07633
1 /******************************************************************************
3 * Name: acpiosxf.h - All interfaces to the OS Services Layer (OSL). These
4 * interfaces must be implemented by OSL to interface the
5 * ACPI components to the host operating system.
7 *****************************************************************************/
9 /*
10 * Copyright (C) 2000 - 2013, Intel Corp.
11 * All rights reserved.
13 * Redistribution and use in source and binary forms, with or without
14 * modification, are permitted provided that the following conditions
15 * are met:
16 * 1. Redistributions of source code must retain the above copyright
17 * notice, this list of conditions, and the following disclaimer,
18 * without modification.
19 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
20 * substantially similar to the "NO WARRANTY" disclaimer below
21 * ("Disclaimer") and any redistribution must be conditioned upon
22 * including a substantially similar Disclaimer requirement for further
23 * binary redistribution.
24 * 3. Neither the names of the above-listed copyright holders nor the names
25 * of any contributors may be used to endorse or promote products derived
26 * from this software without specific prior written permission.
28 * Alternatively, this software may be distributed under the terms of the
29 * GNU General Public License ("GPL") version 2 as published by the Free
30 * Software Foundation.
32 * NO WARRANTY
33 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
34 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
35 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
36 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
37 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
38 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
39 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
40 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
41 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
42 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
43 * POSSIBILITY OF SUCH DAMAGES.
46 #ifndef __ACPIOSXF_H__
47 #define __ACPIOSXF_H__
49 #include "platform/acenv.h"
50 #include "actypes.h"
53 /* Types for AcpiOsExecute */
55 typedef enum
57 OSL_GLOBAL_LOCK_HANDLER,
58 OSL_NOTIFY_HANDLER,
59 OSL_GPE_HANDLER,
60 OSL_DEBUGGER_THREAD,
61 OSL_EC_POLL_HANDLER,
62 OSL_EC_BURST_HANDLER
64 } ACPI_EXECUTE_TYPE;
66 #define ACPI_NO_UNIT_LIMIT ((UINT32) -1)
67 #define ACPI_MUTEX_SEM 1
70 /* Functions for AcpiOsSignal */
72 #define ACPI_SIGNAL_FATAL 0
73 #define ACPI_SIGNAL_BREAKPOINT 1
75 typedef struct acpi_signal_fatal_info
77 UINT32 Type;
78 UINT32 Code;
79 UINT32 Argument;
81 } ACPI_SIGNAL_FATAL_INFO;
85 * OSL Initialization and shutdown primitives
87 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInitialize
88 ACPI_STATUS
89 AcpiOsInitialize (
90 void);
91 #endif
93 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTerminate
94 ACPI_STATUS
95 AcpiOsTerminate (
96 void);
97 #endif
101 * ACPI Table interfaces
103 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetRootPointer
104 ACPI_PHYSICAL_ADDRESS
105 AcpiOsGetRootPointer (
106 void);
107 #endif
109 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPredefinedOverride
110 ACPI_STATUS
111 AcpiOsPredefinedOverride (
112 const ACPI_PREDEFINED_NAMES *InitVal,
113 ACPI_STRING *NewVal);
114 #endif
116 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTableOverride
117 ACPI_STATUS
118 AcpiOsTableOverride (
119 ACPI_TABLE_HEADER *ExistingTable,
120 ACPI_TABLE_HEADER **NewTable);
121 #endif
123 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPhysicalTableOverride
124 ACPI_STATUS
125 AcpiOsPhysicalTableOverride (
126 ACPI_TABLE_HEADER *ExistingTable,
127 ACPI_PHYSICAL_ADDRESS *NewAddress,
128 UINT32 *NewTableLength);
129 #endif
133 * Spinlock primitives
135 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateLock
136 ACPI_STATUS
137 AcpiOsCreateLock (
138 ACPI_SPINLOCK *OutHandle);
139 #endif
141 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteLock
142 void
143 AcpiOsDeleteLock (
144 ACPI_SPINLOCK Handle);
145 #endif
147 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireLock
148 ACPI_CPU_FLAGS
149 AcpiOsAcquireLock (
150 ACPI_SPINLOCK Handle);
151 #endif
153 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseLock
154 void
155 AcpiOsReleaseLock (
156 ACPI_SPINLOCK Handle,
157 ACPI_CPU_FLAGS Flags);
158 #endif
162 * Semaphore primitives
164 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateSemaphore
165 ACPI_STATUS
166 AcpiOsCreateSemaphore (
167 UINT32 MaxUnits,
168 UINT32 InitialUnits,
169 ACPI_SEMAPHORE *OutHandle);
170 #endif
172 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteSemaphore
173 ACPI_STATUS
174 AcpiOsDeleteSemaphore (
175 ACPI_SEMAPHORE Handle);
176 #endif
178 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitSemaphore
179 ACPI_STATUS
180 AcpiOsWaitSemaphore (
181 ACPI_SEMAPHORE Handle,
182 UINT32 Units,
183 UINT16 Timeout);
184 #endif
186 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSignalSemaphore
187 ACPI_STATUS
188 AcpiOsSignalSemaphore (
189 ACPI_SEMAPHORE Handle,
190 UINT32 Units);
191 #endif
195 * Mutex primitives. May be configured to use semaphores instead via
196 * ACPI_MUTEX_TYPE (see platform/acenv.h)
198 #if (ACPI_MUTEX_TYPE != ACPI_BINARY_SEMAPHORE)
200 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateMutex
201 ACPI_STATUS
202 AcpiOsCreateMutex (
203 ACPI_MUTEX *OutHandle);
204 #endif
206 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteMutex
207 void
208 AcpiOsDeleteMutex (
209 ACPI_MUTEX Handle);
210 #endif
212 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireMutex
213 ACPI_STATUS
214 AcpiOsAcquireMutex (
215 ACPI_MUTEX Handle,
216 UINT16 Timeout);
217 #endif
219 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseMutex
220 void
221 AcpiOsReleaseMutex (
222 ACPI_MUTEX Handle);
223 #endif
225 #endif
229 * Memory allocation and mapping
231 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAllocate
232 void *
233 AcpiOsAllocate (
234 ACPI_SIZE Size);
235 #endif
237 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAllocateZeroed
238 void *
239 AcpiOsAllocateZeroed (
240 ACPI_SIZE Size);
241 #endif
243 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsFree
244 void
245 AcpiOsFree (
246 void * Memory);
247 #endif
249 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsMapMemory
250 void *
251 AcpiOsMapMemory (
252 ACPI_PHYSICAL_ADDRESS Where,
253 ACPI_SIZE Length);
254 #endif
256 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsUnmapMemory
257 void
258 AcpiOsUnmapMemory (
259 void *LogicalAddress,
260 ACPI_SIZE Size);
261 #endif
263 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetPhysicalAddress
264 ACPI_STATUS
265 AcpiOsGetPhysicalAddress (
266 void *LogicalAddress,
267 ACPI_PHYSICAL_ADDRESS *PhysicalAddress);
268 #endif
272 * Memory/Object Cache
274 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateCache
275 ACPI_STATUS
276 AcpiOsCreateCache (
277 char *CacheName,
278 UINT16 ObjectSize,
279 UINT16 MaxDepth,
280 ACPI_CACHE_T **ReturnCache);
281 #endif
283 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteCache
284 ACPI_STATUS
285 AcpiOsDeleteCache (
286 ACPI_CACHE_T *Cache);
287 #endif
289 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPurgeCache
290 ACPI_STATUS
291 AcpiOsPurgeCache (
292 ACPI_CACHE_T *Cache);
293 #endif
295 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireObject
296 void *
297 AcpiOsAcquireObject (
298 ACPI_CACHE_T *Cache);
299 #endif
301 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseObject
302 ACPI_STATUS
303 AcpiOsReleaseObject (
304 ACPI_CACHE_T *Cache,
305 void *Object);
306 #endif
310 * Interrupt handlers
312 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInstallInterruptHandler
313 ACPI_STATUS
314 AcpiOsInstallInterruptHandler (
315 UINT32 InterruptNumber,
316 ACPI_OSD_HANDLER ServiceRoutine,
317 void *Context);
318 #endif
320 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsRemoveInterruptHandler
321 ACPI_STATUS
322 AcpiOsRemoveInterruptHandler (
323 UINT32 InterruptNumber,
324 ACPI_OSD_HANDLER ServiceRoutine);
325 #endif
329 * Threads and Scheduling
331 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetThreadId
332 ACPI_THREAD_ID
333 AcpiOsGetThreadId (
334 void);
335 #endif
337 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsExecute
338 ACPI_STATUS
339 AcpiOsExecute (
340 ACPI_EXECUTE_TYPE Type,
341 ACPI_OSD_EXEC_CALLBACK Function,
342 void *Context);
343 #endif
345 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitEventsComplete
346 void
347 AcpiOsWaitEventsComplete (
348 void);
349 #endif
351 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSleep
352 void
353 AcpiOsSleep (
354 UINT64 Milliseconds);
355 #endif
357 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsStall
358 void
359 AcpiOsStall (
360 UINT32 Microseconds);
361 #endif
365 * Platform and hardware-independent I/O interfaces
367 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadPort
368 ACPI_STATUS
369 AcpiOsReadPort (
370 ACPI_IO_ADDRESS Address,
371 UINT32 *Value,
372 UINT32 Width);
373 #endif
375 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritePort
376 ACPI_STATUS
377 AcpiOsWritePort (
378 ACPI_IO_ADDRESS Address,
379 UINT32 Value,
380 UINT32 Width);
381 #endif
385 * Platform and hardware-independent physical memory interfaces
387 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadMemory
388 ACPI_STATUS
389 AcpiOsReadMemory (
390 ACPI_PHYSICAL_ADDRESS Address,
391 UINT64 *Value,
392 UINT32 Width);
393 #endif
395 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWriteMemory
396 ACPI_STATUS
397 AcpiOsWriteMemory (
398 ACPI_PHYSICAL_ADDRESS Address,
399 UINT64 Value,
400 UINT32 Width);
401 #endif
405 * Platform and hardware-independent PCI configuration space access
406 * Note: Can't use "Register" as a parameter, changed to "Reg" --
407 * certain compilers complain.
409 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadPciConfiguration
410 ACPI_STATUS
411 AcpiOsReadPciConfiguration (
412 ACPI_PCI_ID *PciId,
413 UINT32 Reg,
414 UINT64 *Value,
415 UINT32 Width);
416 #endif
418 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritePciConfiguration
419 ACPI_STATUS
420 AcpiOsWritePciConfiguration (
421 ACPI_PCI_ID *PciId,
422 UINT32 Reg,
423 UINT64 Value,
424 UINT32 Width);
425 #endif
429 * Miscellaneous
431 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadable
432 BOOLEAN
433 AcpiOsReadable (
434 void *Pointer,
435 ACPI_SIZE Length);
436 #endif
438 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritable
439 BOOLEAN
440 AcpiOsWritable (
441 void *Pointer,
442 ACPI_SIZE Length);
443 #endif
445 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTimer
446 UINT64
447 AcpiOsGetTimer (
448 void);
449 #endif
451 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSignal
452 ACPI_STATUS
453 AcpiOsSignal (
454 UINT32 Function,
455 void *Info);
456 #endif
460 * Debug print routines
462 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPrintf
463 void ACPI_INTERNAL_VAR_XFACE
464 AcpiOsPrintf (
465 const char *Format,
466 ...);
467 #endif
469 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsVprintf
470 void
471 AcpiOsVprintf (
472 const char *Format,
473 va_list Args);
474 #endif
476 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsRedirectOutput
477 void
478 AcpiOsRedirectOutput (
479 void *Destination);
480 #endif
484 * Debug input
486 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetLine
487 ACPI_STATUS
488 AcpiOsGetLine (
489 char *Buffer,
490 UINT32 BufferLength,
491 UINT32 *BytesRead);
492 #endif
496 * Obtain ACPI table(s)
498 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByName
499 ACPI_STATUS
500 AcpiOsGetTableByName (
501 char *Signature,
502 UINT32 Instance,
503 ACPI_TABLE_HEADER **Table,
504 ACPI_PHYSICAL_ADDRESS *Address);
505 #endif
507 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByIndex
508 ACPI_STATUS
509 AcpiOsGetTableByIndex (
510 UINT32 Index,
511 ACPI_TABLE_HEADER **Table,
512 UINT32 *Instance,
513 ACPI_PHYSICAL_ADDRESS *Address);
514 #endif
516 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByAddress
517 ACPI_STATUS
518 AcpiOsGetTableByAddress (
519 ACPI_PHYSICAL_ADDRESS Address,
520 ACPI_TABLE_HEADER **Table);
521 #endif
525 * Directory manipulation
527 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsOpenDirectory
528 void *
529 AcpiOsOpenDirectory (
530 char *Pathname,
531 char *WildcardSpec,
532 char RequestedFileType);
533 #endif
535 /* RequesteFileType values */
537 #define REQUEST_FILE_ONLY 0
538 #define REQUEST_DIR_ONLY 1
541 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetNextFilename
542 char *
543 AcpiOsGetNextFilename (
544 void *DirHandle);
545 #endif
547 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCloseDirectory
548 void
549 AcpiOsCloseDirectory (
550 void *DirHandle);
551 #endif
554 #endif /* __ACPIOSXF_H__ */