xref: /illumos-gate/usr/src/uts/intel/sys/acpi/acpiosxf.h (revision 26f3cdf0)
17c478bd9Sstevel@tonic-gate 
27c478bd9Sstevel@tonic-gate /******************************************************************************
37c478bd9Sstevel@tonic-gate  *
47c478bd9Sstevel@tonic-gate  * Name: acpiosxf.h - All interfaces to the OS Services Layer (OSL).  These
57c478bd9Sstevel@tonic-gate  *                    interfaces must be implemented by OSL to interface the
67c478bd9Sstevel@tonic-gate  *                    ACPI components to the host operating system.
77c478bd9Sstevel@tonic-gate  *
87c478bd9Sstevel@tonic-gate  *****************************************************************************/
97c478bd9Sstevel@tonic-gate 
107c478bd9Sstevel@tonic-gate 
11*26f3cdf0SGordon Ross /*
12*26f3cdf0SGordon Ross  * Copyright (C) 2000 - 2011, Intel Corp.
137c478bd9Sstevel@tonic-gate  * All rights reserved.
147c478bd9Sstevel@tonic-gate  *
15*26f3cdf0SGordon Ross  * Redistribution and use in source and binary forms, with or without
16*26f3cdf0SGordon Ross  * modification, are permitted provided that the following conditions
17*26f3cdf0SGordon Ross  * are met:
18*26f3cdf0SGordon Ross  * 1. Redistributions of source code must retain the above copyright
19*26f3cdf0SGordon Ross  *    notice, this list of conditions, and the following disclaimer,
20*26f3cdf0SGordon Ross  *    without modification.
21*26f3cdf0SGordon Ross  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
22*26f3cdf0SGordon Ross  *    substantially similar to the "NO WARRANTY" disclaimer below
23*26f3cdf0SGordon Ross  *    ("Disclaimer") and any redistribution must be conditioned upon
24*26f3cdf0SGordon Ross  *    including a substantially similar Disclaimer requirement for further
25*26f3cdf0SGordon Ross  *    binary redistribution.
26*26f3cdf0SGordon Ross  * 3. Neither the names of the above-listed copyright holders nor the names
27*26f3cdf0SGordon Ross  *    of any contributors may be used to endorse or promote products derived
28*26f3cdf0SGordon Ross  *    from this software without specific prior written permission.
297c478bd9Sstevel@tonic-gate  *
30*26f3cdf0SGordon Ross  * Alternatively, this software may be distributed under the terms of the
31*26f3cdf0SGordon Ross  * GNU General Public License ("GPL") version 2 as published by the Free
32*26f3cdf0SGordon Ross  * Software Foundation.
337c478bd9Sstevel@tonic-gate  *
34*26f3cdf0SGordon Ross  * NO WARRANTY
35*26f3cdf0SGordon Ross  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
36*26f3cdf0SGordon Ross  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
37*26f3cdf0SGordon Ross  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
38*26f3cdf0SGordon Ross  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
39*26f3cdf0SGordon Ross  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
40*26f3cdf0SGordon Ross  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
41*26f3cdf0SGordon Ross  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
42*26f3cdf0SGordon Ross  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
43*26f3cdf0SGordon Ross  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
44*26f3cdf0SGordon Ross  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
45*26f3cdf0SGordon Ross  * POSSIBILITY OF SUCH DAMAGES.
46*26f3cdf0SGordon Ross  */
477c478bd9Sstevel@tonic-gate 
487c478bd9Sstevel@tonic-gate #ifndef __ACPIOSXF_H__
497c478bd9Sstevel@tonic-gate #define __ACPIOSXF_H__
507c478bd9Sstevel@tonic-gate 
517c478bd9Sstevel@tonic-gate #include "platform/acenv.h"
527c478bd9Sstevel@tonic-gate #include "actypes.h"
537c478bd9Sstevel@tonic-gate 
547c478bd9Sstevel@tonic-gate 
5527f7c583Smyers /* Types for AcpiOsExecute */
567c478bd9Sstevel@tonic-gate 
5727f7c583Smyers typedef enum
5827f7c583Smyers {
5927f7c583Smyers     OSL_GLOBAL_LOCK_HANDLER,
6027f7c583Smyers     OSL_NOTIFY_HANDLER,
6127f7c583Smyers     OSL_GPE_HANDLER,
6227f7c583Smyers     OSL_DEBUGGER_THREAD,
6327f7c583Smyers     OSL_EC_POLL_HANDLER,
6427f7c583Smyers     OSL_EC_BURST_HANDLER
6527f7c583Smyers 
6627f7c583Smyers } ACPI_EXECUTE_TYPE;
677c478bd9Sstevel@tonic-gate 
687c478bd9Sstevel@tonic-gate #define ACPI_NO_UNIT_LIMIT          ((UINT32) -1)
697c478bd9Sstevel@tonic-gate #define ACPI_MUTEX_SEM              1
707c478bd9Sstevel@tonic-gate 
717c478bd9Sstevel@tonic-gate 
727c478bd9Sstevel@tonic-gate /* Functions for AcpiOsSignal */
737c478bd9Sstevel@tonic-gate 
747c478bd9Sstevel@tonic-gate #define ACPI_SIGNAL_FATAL           0
757c478bd9Sstevel@tonic-gate #define ACPI_SIGNAL_BREAKPOINT      1
767c478bd9Sstevel@tonic-gate 
777c478bd9Sstevel@tonic-gate typedef struct acpi_signal_fatal_info
787c478bd9Sstevel@tonic-gate {
797c478bd9Sstevel@tonic-gate     UINT32                  Type;
807c478bd9Sstevel@tonic-gate     UINT32                  Code;
817c478bd9Sstevel@tonic-gate     UINT32                  Argument;
827c478bd9Sstevel@tonic-gate 
837c478bd9Sstevel@tonic-gate } ACPI_SIGNAL_FATAL_INFO;
847c478bd9Sstevel@tonic-gate 
857c478bd9Sstevel@tonic-gate 
867c478bd9Sstevel@tonic-gate /*
877c478bd9Sstevel@tonic-gate  * OSL Initialization and shutdown primitives
887c478bd9Sstevel@tonic-gate  */
897c478bd9Sstevel@tonic-gate ACPI_STATUS
907c478bd9Sstevel@tonic-gate AcpiOsInitialize (
917c478bd9Sstevel@tonic-gate     void);
927c478bd9Sstevel@tonic-gate 
937c478bd9Sstevel@tonic-gate ACPI_STATUS
947c478bd9Sstevel@tonic-gate AcpiOsTerminate (
957c478bd9Sstevel@tonic-gate     void);
967c478bd9Sstevel@tonic-gate 
977c478bd9Sstevel@tonic-gate 
987c478bd9Sstevel@tonic-gate /*
997c478bd9Sstevel@tonic-gate  * ACPI Table interfaces
1007c478bd9Sstevel@tonic-gate  */
101db2bae30SDana Myers ACPI_PHYSICAL_ADDRESS
1027c478bd9Sstevel@tonic-gate AcpiOsGetRootPointer (
103db2bae30SDana Myers     void);
1047c478bd9Sstevel@tonic-gate 
1057c478bd9Sstevel@tonic-gate ACPI_STATUS
1067c478bd9Sstevel@tonic-gate AcpiOsPredefinedOverride (
1077c478bd9Sstevel@tonic-gate     const ACPI_PREDEFINED_NAMES *InitVal,
1087c478bd9Sstevel@tonic-gate     ACPI_STRING                 *NewVal);
1097c478bd9Sstevel@tonic-gate 
1107c478bd9Sstevel@tonic-gate ACPI_STATUS
1117c478bd9Sstevel@tonic-gate AcpiOsTableOverride (
1127c478bd9Sstevel@tonic-gate     ACPI_TABLE_HEADER       *ExistingTable,
1137c478bd9Sstevel@tonic-gate     ACPI_TABLE_HEADER       **NewTable);
1147c478bd9Sstevel@tonic-gate 
1157c478bd9Sstevel@tonic-gate 
1167c478bd9Sstevel@tonic-gate /*
11727f7c583Smyers  * Spinlock primitives
11827f7c583Smyers  */
11927f7c583Smyers ACPI_STATUS
12027f7c583Smyers AcpiOsCreateLock (
12127f7c583Smyers     ACPI_SPINLOCK           *OutHandle);
12227f7c583Smyers 
12327f7c583Smyers void
12427f7c583Smyers AcpiOsDeleteLock (
12527f7c583Smyers     ACPI_SPINLOCK           Handle);
12627f7c583Smyers 
12727f7c583Smyers ACPI_CPU_FLAGS
12827f7c583Smyers AcpiOsAcquireLock (
12927f7c583Smyers     ACPI_SPINLOCK           Handle);
13027f7c583Smyers 
13127f7c583Smyers void
13227f7c583Smyers AcpiOsReleaseLock (
13327f7c583Smyers     ACPI_SPINLOCK           Handle,
13427f7c583Smyers     ACPI_CPU_FLAGS          Flags);
13527f7c583Smyers 
13627f7c583Smyers 
13727f7c583Smyers /*
13827f7c583Smyers  * Semaphore primitives
1397c478bd9Sstevel@tonic-gate  */
1407c478bd9Sstevel@tonic-gate ACPI_STATUS
1417c478bd9Sstevel@tonic-gate AcpiOsCreateSemaphore (
1427c478bd9Sstevel@tonic-gate     UINT32                  MaxUnits,
1437c478bd9Sstevel@tonic-gate     UINT32                  InitialUnits,
14427f7c583Smyers     ACPI_SEMAPHORE          *OutHandle);
1457c478bd9Sstevel@tonic-gate 
1467c478bd9Sstevel@tonic-gate ACPI_STATUS
1477c478bd9Sstevel@tonic-gate AcpiOsDeleteSemaphore (
14827f7c583Smyers     ACPI_SEMAPHORE          Handle);
1497c478bd9Sstevel@tonic-gate 
1507c478bd9Sstevel@tonic-gate ACPI_STATUS
1517c478bd9Sstevel@tonic-gate AcpiOsWaitSemaphore (
15227f7c583Smyers     ACPI_SEMAPHORE          Handle,
1537c478bd9Sstevel@tonic-gate     UINT32                  Units,
1547c478bd9Sstevel@tonic-gate     UINT16                  Timeout);
1557c478bd9Sstevel@tonic-gate 
1567c478bd9Sstevel@tonic-gate ACPI_STATUS
1577c478bd9Sstevel@tonic-gate AcpiOsSignalSemaphore (
15827f7c583Smyers     ACPI_SEMAPHORE          Handle,
1597c478bd9Sstevel@tonic-gate     UINT32                  Units);
1607c478bd9Sstevel@tonic-gate 
16127f7c583Smyers 
16227f7c583Smyers /*
163aa2aa9a6SDana Myers  * Mutex primitives. May be configured to use semaphores instead via
164aa2aa9a6SDana Myers  * ACPI_MUTEX_TYPE (see platform/acenv.h)
16527f7c583Smyers  */
166aa2aa9a6SDana Myers #if (ACPI_MUTEX_TYPE != ACPI_BINARY_SEMAPHORE)
167aa2aa9a6SDana Myers 
1687c478bd9Sstevel@tonic-gate ACPI_STATUS
16927f7c583Smyers AcpiOsCreateMutex (
17027f7c583Smyers     ACPI_MUTEX              *OutHandle);
1717c478bd9Sstevel@tonic-gate 
1727c478bd9Sstevel@tonic-gate void
17327f7c583Smyers AcpiOsDeleteMutex (
17427f7c583Smyers     ACPI_MUTEX              Handle);
1757c478bd9Sstevel@tonic-gate 
17627f7c583Smyers ACPI_STATUS
17727f7c583Smyers AcpiOsAcquireMutex (
17827f7c583Smyers     ACPI_MUTEX              Handle,
17927f7c583Smyers     UINT16                  Timeout);
1807c478bd9Sstevel@tonic-gate 
1817c478bd9Sstevel@tonic-gate void
18227f7c583Smyers AcpiOsReleaseMutex (
18327f7c583Smyers     ACPI_MUTEX              Handle);
184aa2aa9a6SDana Myers #endif
1857c478bd9Sstevel@tonic-gate 
1867c478bd9Sstevel@tonic-gate 
1877c478bd9Sstevel@tonic-gate /*
1887c478bd9Sstevel@tonic-gate  * Memory allocation and mapping
1897c478bd9Sstevel@tonic-gate  */
1907c478bd9Sstevel@tonic-gate void *
1917c478bd9Sstevel@tonic-gate AcpiOsAllocate (
1927c478bd9Sstevel@tonic-gate     ACPI_SIZE               Size);
1937c478bd9Sstevel@tonic-gate 
1947c478bd9Sstevel@tonic-gate void
1957c478bd9Sstevel@tonic-gate AcpiOsFree (
1967c478bd9Sstevel@tonic-gate     void *                  Memory);
1977c478bd9Sstevel@tonic-gate 
198db2bae30SDana Myers void *
1997c478bd9Sstevel@tonic-gate AcpiOsMapMemory (
200db2bae30SDana Myers     ACPI_PHYSICAL_ADDRESS   Where,
201db2bae30SDana Myers     ACPI_SIZE               Length);
2027c478bd9Sstevel@tonic-gate 
2037c478bd9Sstevel@tonic-gate void
2047c478bd9Sstevel@tonic-gate AcpiOsUnmapMemory (
2057c478bd9Sstevel@tonic-gate     void                    *LogicalAddress,
2067c478bd9Sstevel@tonic-gate     ACPI_SIZE               Size);
2077c478bd9Sstevel@tonic-gate 
2087c478bd9Sstevel@tonic-gate ACPI_STATUS
2097c478bd9Sstevel@tonic-gate AcpiOsGetPhysicalAddress (
2107c478bd9Sstevel@tonic-gate     void                    *LogicalAddress,
2117c478bd9Sstevel@tonic-gate     ACPI_PHYSICAL_ADDRESS   *PhysicalAddress);
2127c478bd9Sstevel@tonic-gate 
2137c478bd9Sstevel@tonic-gate 
214450d6964Smyers /*
215450d6964Smyers  * Memory/Object Cache
216450d6964Smyers  */
217450d6964Smyers ACPI_STATUS
218450d6964Smyers AcpiOsCreateCache (
219450d6964Smyers     char                    *CacheName,
220450d6964Smyers     UINT16                  ObjectSize,
221450d6964Smyers     UINT16                  MaxDepth,
222450d6964Smyers     ACPI_CACHE_T            **ReturnCache);
223450d6964Smyers 
224450d6964Smyers ACPI_STATUS
225450d6964Smyers AcpiOsDeleteCache (
226450d6964Smyers     ACPI_CACHE_T            *Cache);
227450d6964Smyers 
228450d6964Smyers ACPI_STATUS
229450d6964Smyers AcpiOsPurgeCache (
230450d6964Smyers     ACPI_CACHE_T            *Cache);
231450d6964Smyers 
232450d6964Smyers void *
233450d6964Smyers AcpiOsAcquireObject (
234450d6964Smyers     ACPI_CACHE_T            *Cache);
235450d6964Smyers 
236450d6964Smyers ACPI_STATUS
237450d6964Smyers AcpiOsReleaseObject (
238450d6964Smyers     ACPI_CACHE_T            *Cache,
239450d6964Smyers     void                    *Object);
240450d6964Smyers 
241450d6964Smyers 
2427c478bd9Sstevel@tonic-gate /*
2437c478bd9Sstevel@tonic-gate  * Interrupt handlers
2447c478bd9Sstevel@tonic-gate  */
2457c478bd9Sstevel@tonic-gate ACPI_STATUS
2467c478bd9Sstevel@tonic-gate AcpiOsInstallInterruptHandler (
2477c478bd9Sstevel@tonic-gate     UINT32                  InterruptNumber,
2487c478bd9Sstevel@tonic-gate     ACPI_OSD_HANDLER        ServiceRoutine,
2497c478bd9Sstevel@tonic-gate     void                    *Context);
2507c478bd9Sstevel@tonic-gate 
2517c478bd9Sstevel@tonic-gate ACPI_STATUS
2527c478bd9Sstevel@tonic-gate AcpiOsRemoveInterruptHandler (
2537c478bd9Sstevel@tonic-gate     UINT32                  InterruptNumber,
2547c478bd9Sstevel@tonic-gate     ACPI_OSD_HANDLER        ServiceRoutine);
2557c478bd9Sstevel@tonic-gate 
2567c478bd9Sstevel@tonic-gate 
2577c478bd9Sstevel@tonic-gate /*
2587c478bd9Sstevel@tonic-gate  * Threads and Scheduling
2597c478bd9Sstevel@tonic-gate  */
26027f7c583Smyers ACPI_THREAD_ID
2617c478bd9Sstevel@tonic-gate AcpiOsGetThreadId (
2627c478bd9Sstevel@tonic-gate     void);
2637c478bd9Sstevel@tonic-gate 
2647c478bd9Sstevel@tonic-gate ACPI_STATUS
26527f7c583Smyers AcpiOsExecute (
26627f7c583Smyers     ACPI_EXECUTE_TYPE       Type,
2677c478bd9Sstevel@tonic-gate     ACPI_OSD_EXEC_CALLBACK  Function,
2687c478bd9Sstevel@tonic-gate     void                    *Context);
2697c478bd9Sstevel@tonic-gate 
2707c478bd9Sstevel@tonic-gate void
2717c478bd9Sstevel@tonic-gate AcpiOsWaitEventsComplete (
2727c478bd9Sstevel@tonic-gate     void                    *Context);
2737c478bd9Sstevel@tonic-gate 
2747c478bd9Sstevel@tonic-gate void
2757c478bd9Sstevel@tonic-gate AcpiOsSleep (
276*26f3cdf0SGordon Ross     UINT64                  Milliseconds);
2777c478bd9Sstevel@tonic-gate 
2787c478bd9Sstevel@tonic-gate void
2797c478bd9Sstevel@tonic-gate AcpiOsStall (
2807c478bd9Sstevel@tonic-gate     UINT32                  Microseconds);
2817c478bd9Sstevel@tonic-gate 
2827c478bd9Sstevel@tonic-gate 
2837c478bd9Sstevel@tonic-gate /*
2847c478bd9Sstevel@tonic-gate  * Platform and hardware-independent I/O interfaces
2857c478bd9Sstevel@tonic-gate  */
2867c478bd9Sstevel@tonic-gate ACPI_STATUS
2877c478bd9Sstevel@tonic-gate AcpiOsReadPort (
2887c478bd9Sstevel@tonic-gate     ACPI_IO_ADDRESS         Address,
2897c478bd9Sstevel@tonic-gate     UINT32                  *Value,
2907c478bd9Sstevel@tonic-gate     UINT32                  Width);
2917c478bd9Sstevel@tonic-gate 
2927c478bd9Sstevel@tonic-gate ACPI_STATUS
2937c478bd9Sstevel@tonic-gate AcpiOsWritePort (
2947c478bd9Sstevel@tonic-gate     ACPI_IO_ADDRESS         Address,
2957c478bd9Sstevel@tonic-gate     UINT32                  Value,
2967c478bd9Sstevel@tonic-gate     UINT32                  Width);
2977c478bd9Sstevel@tonic-gate 
2987c478bd9Sstevel@tonic-gate 
2997c478bd9Sstevel@tonic-gate /*
3007c478bd9Sstevel@tonic-gate  * Platform and hardware-independent physical memory interfaces
3017c478bd9Sstevel@tonic-gate  */
3027c478bd9Sstevel@tonic-gate ACPI_STATUS
3037c478bd9Sstevel@tonic-gate AcpiOsReadMemory (
3047c478bd9Sstevel@tonic-gate     ACPI_PHYSICAL_ADDRESS   Address,
3057c478bd9Sstevel@tonic-gate     UINT32                  *Value,
3067c478bd9Sstevel@tonic-gate     UINT32                  Width);
3077c478bd9Sstevel@tonic-gate 
3087c478bd9Sstevel@tonic-gate ACPI_STATUS
3097c478bd9Sstevel@tonic-gate AcpiOsWriteMemory (
3107c478bd9Sstevel@tonic-gate     ACPI_PHYSICAL_ADDRESS   Address,
3117c478bd9Sstevel@tonic-gate     UINT32                  Value,
3127c478bd9Sstevel@tonic-gate     UINT32                  Width);
3137c478bd9Sstevel@tonic-gate 
3147c478bd9Sstevel@tonic-gate 
3157c478bd9Sstevel@tonic-gate /*
3167c478bd9Sstevel@tonic-gate  * Platform and hardware-independent PCI configuration space access
3177c478bd9Sstevel@tonic-gate  * Note: Can't use "Register" as a parameter, changed to "Reg" --
3187c478bd9Sstevel@tonic-gate  * certain compilers complain.
3197c478bd9Sstevel@tonic-gate  */
3207c478bd9Sstevel@tonic-gate ACPI_STATUS
3217c478bd9Sstevel@tonic-gate AcpiOsReadPciConfiguration (
3227c478bd9Sstevel@tonic-gate     ACPI_PCI_ID             *PciId,
3237c478bd9Sstevel@tonic-gate     UINT32                  Reg,
324*26f3cdf0SGordon Ross     UINT64                  *Value,
3257c478bd9Sstevel@tonic-gate     UINT32                  Width);
3267c478bd9Sstevel@tonic-gate 
3277c478bd9Sstevel@tonic-gate ACPI_STATUS
3287c478bd9Sstevel@tonic-gate AcpiOsWritePciConfiguration (
3297c478bd9Sstevel@tonic-gate     ACPI_PCI_ID             *PciId,
3307c478bd9Sstevel@tonic-gate     UINT32                  Reg,
331*26f3cdf0SGordon Ross     UINT64                  Value,
3327c478bd9Sstevel@tonic-gate     UINT32                  Width);
3337c478bd9Sstevel@tonic-gate 
33427f7c583Smyers 
3357c478bd9Sstevel@tonic-gate /*
3367c478bd9Sstevel@tonic-gate  * Miscellaneous
3377c478bd9Sstevel@tonic-gate  */
3387c478bd9Sstevel@tonic-gate BOOLEAN
3397c478bd9Sstevel@tonic-gate AcpiOsReadable (
3407c478bd9Sstevel@tonic-gate     void                    *Pointer,
3417c478bd9Sstevel@tonic-gate     ACPI_SIZE               Length);
3427c478bd9Sstevel@tonic-gate 
3437c478bd9Sstevel@tonic-gate BOOLEAN
3447c478bd9Sstevel@tonic-gate AcpiOsWritable (
3457c478bd9Sstevel@tonic-gate     void                    *Pointer,
3467c478bd9Sstevel@tonic-gate     ACPI_SIZE               Length);
3477c478bd9Sstevel@tonic-gate 
3487c478bd9Sstevel@tonic-gate UINT64
3497c478bd9Sstevel@tonic-gate AcpiOsGetTimer (
3507c478bd9Sstevel@tonic-gate     void);
3517c478bd9Sstevel@tonic-gate 
3527c478bd9Sstevel@tonic-gate ACPI_STATUS
3537c478bd9Sstevel@tonic-gate AcpiOsSignal (
3547c478bd9Sstevel@tonic-gate     UINT32                  Function,
3557c478bd9Sstevel@tonic-gate     void                    *Info);
3567c478bd9Sstevel@tonic-gate 
35727f7c583Smyers 
3587c478bd9Sstevel@tonic-gate /*
3597c478bd9Sstevel@tonic-gate  * Debug print routines
3607c478bd9Sstevel@tonic-gate  */
3617c478bd9Sstevel@tonic-gate void ACPI_INTERNAL_VAR_XFACE
3627c478bd9Sstevel@tonic-gate AcpiOsPrintf (
3637c478bd9Sstevel@tonic-gate     const char              *Format,
3647c478bd9Sstevel@tonic-gate     ...);
3657c478bd9Sstevel@tonic-gate 
3667c478bd9Sstevel@tonic-gate void
3677c478bd9Sstevel@tonic-gate AcpiOsVprintf (
3687c478bd9Sstevel@tonic-gate     const char              *Format,
3697c478bd9Sstevel@tonic-gate     va_list                 Args);
3707c478bd9Sstevel@tonic-gate 
3717c478bd9Sstevel@tonic-gate void
3727c478bd9Sstevel@tonic-gate AcpiOsRedirectOutput (
3737c478bd9Sstevel@tonic-gate     void                    *Destination);
3747c478bd9Sstevel@tonic-gate 
3757c478bd9Sstevel@tonic-gate 
3767c478bd9Sstevel@tonic-gate /*
3777c478bd9Sstevel@tonic-gate  * Debug input
3787c478bd9Sstevel@tonic-gate  */
379*26f3cdf0SGordon Ross ACPI_STATUS
3807c478bd9Sstevel@tonic-gate AcpiOsGetLine (
381*26f3cdf0SGordon Ross     char                    *Buffer,
382*26f3cdf0SGordon Ross     UINT32                  BufferLength,
383*26f3cdf0SGordon Ross     UINT32                  *BytesRead);
3847c478bd9Sstevel@tonic-gate 
3857c478bd9Sstevel@tonic-gate 
3867c478bd9Sstevel@tonic-gate /*
3877c478bd9Sstevel@tonic-gate  * Directory manipulation
3887c478bd9Sstevel@tonic-gate  */
3897c478bd9Sstevel@tonic-gate void *
3907c478bd9Sstevel@tonic-gate AcpiOsOpenDirectory (
3917c478bd9Sstevel@tonic-gate     char                    *Pathname,
3927c478bd9Sstevel@tonic-gate     char                    *WildcardSpec,
3937c478bd9Sstevel@tonic-gate     char                    RequestedFileType);
3947c478bd9Sstevel@tonic-gate 
3957c478bd9Sstevel@tonic-gate /* RequesteFileType values */
3967c478bd9Sstevel@tonic-gate 
3977c478bd9Sstevel@tonic-gate #define REQUEST_FILE_ONLY                   0
3987c478bd9Sstevel@tonic-gate #define REQUEST_DIR_ONLY                    1
3997c478bd9Sstevel@tonic-gate 
4007c478bd9Sstevel@tonic-gate 
4017c478bd9Sstevel@tonic-gate char *
4027c478bd9Sstevel@tonic-gate AcpiOsGetNextFilename (
4037c478bd9Sstevel@tonic-gate     void                    *DirHandle);
4047c478bd9Sstevel@tonic-gate 
4057c478bd9Sstevel@tonic-gate void
4067c478bd9Sstevel@tonic-gate AcpiOsCloseDirectory (
4077c478bd9Sstevel@tonic-gate     void                    *DirHandle);
4087c478bd9Sstevel@tonic-gate 
4097c478bd9Sstevel@tonic-gate 
4107c478bd9Sstevel@tonic-gate #endif /* __ACPIOSXF_H__ */
411