1a9f12690SJung-uk Kim /******************************************************************************
2a9f12690SJung-uk Kim  *
3a9f12690SJung-uk Kim  * Name: acpiosxf.h - All interfaces to the OS Services Layer (OSL). These
4a9f12690SJung-uk Kim  *                    interfaces must be implemented by OSL to interface the
5a9f12690SJung-uk Kim  *                    ACPI components to the host operating system.
6a9f12690SJung-uk Kim  *
7a9f12690SJung-uk Kim  *****************************************************************************/
8a9f12690SJung-uk Kim 
9a9f12690SJung-uk Kim 
10d244b227SJung-uk Kim /*
11efcc2a30SJung-uk Kim  * Copyright (C) 2000 - 2013, Intel Corp.
12a9f12690SJung-uk Kim  * All rights reserved.
13a9f12690SJung-uk Kim  *
14d244b227SJung-uk Kim  * Redistribution and use in source and binary forms, with or without
15d244b227SJung-uk Kim  * modification, are permitted provided that the following conditions
16d244b227SJung-uk Kim  * are met:
17d244b227SJung-uk Kim  * 1. Redistributions of source code must retain the above copyright
18d244b227SJung-uk Kim  *    notice, this list of conditions, and the following disclaimer,
19d244b227SJung-uk Kim  *    without modification.
20d244b227SJung-uk Kim  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
21d244b227SJung-uk Kim  *    substantially similar to the "NO WARRANTY" disclaimer below
22d244b227SJung-uk Kim  *    ("Disclaimer") and any redistribution must be conditioned upon
23d244b227SJung-uk Kim  *    including a substantially similar Disclaimer requirement for further
24d244b227SJung-uk Kim  *    binary redistribution.
25d244b227SJung-uk Kim  * 3. Neither the names of the above-listed copyright holders nor the names
26d244b227SJung-uk Kim  *    of any contributors may be used to endorse or promote products derived
27d244b227SJung-uk Kim  *    from this software without specific prior written permission.
28a9f12690SJung-uk Kim  *
29d244b227SJung-uk Kim  * Alternatively, this software may be distributed under the terms of the
30d244b227SJung-uk Kim  * GNU General Public License ("GPL") version 2 as published by the Free
31d244b227SJung-uk Kim  * Software Foundation.
32a9f12690SJung-uk Kim  *
33d244b227SJung-uk Kim  * NO WARRANTY
34d244b227SJung-uk Kim  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
35d244b227SJung-uk Kim  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
36d244b227SJung-uk Kim  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
37d244b227SJung-uk Kim  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
38d244b227SJung-uk Kim  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
39d244b227SJung-uk Kim  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
40d244b227SJung-uk Kim  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
41d244b227SJung-uk Kim  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
42d244b227SJung-uk Kim  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
43d244b227SJung-uk Kim  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
44d244b227SJung-uk Kim  * POSSIBILITY OF SUCH DAMAGES.
45d244b227SJung-uk Kim  */
46a9f12690SJung-uk Kim 
47a9f12690SJung-uk Kim #ifndef __ACPIOSXF_H__
48a9f12690SJung-uk Kim #define __ACPIOSXF_H__
49a9f12690SJung-uk Kim 
50ab6f3bf9SJung-uk Kim #include <contrib/dev/acpica/include/platform/acenv.h>
51ab6f3bf9SJung-uk Kim #include <contrib/dev/acpica/include/actypes.h>
52a9f12690SJung-uk Kim 
53a9f12690SJung-uk Kim 
54a9f12690SJung-uk Kim /* Types for AcpiOsExecute */
55a9f12690SJung-uk Kim 
56a9f12690SJung-uk Kim typedef enum
57a9f12690SJung-uk Kim {
58a9f12690SJung-uk Kim     OSL_GLOBAL_LOCK_HANDLER,
59a9f12690SJung-uk Kim     OSL_NOTIFY_HANDLER,
60a9f12690SJung-uk Kim     OSL_GPE_HANDLER,
61a9f12690SJung-uk Kim     OSL_DEBUGGER_THREAD,
62a9f12690SJung-uk Kim     OSL_EC_POLL_HANDLER,
63a9f12690SJung-uk Kim     OSL_EC_BURST_HANDLER
64a9f12690SJung-uk Kim 
65a9f12690SJung-uk Kim } ACPI_EXECUTE_TYPE;
66a9f12690SJung-uk Kim 
67a9f12690SJung-uk Kim #define ACPI_NO_UNIT_LIMIT          ((UINT32) -1)
68a9f12690SJung-uk Kim #define ACPI_MUTEX_SEM              1
69a9f12690SJung-uk Kim 
70a9f12690SJung-uk Kim 
71a9f12690SJung-uk Kim /* Functions for AcpiOsSignal */
72a9f12690SJung-uk Kim 
73a9f12690SJung-uk Kim #define ACPI_SIGNAL_FATAL           0
74a9f12690SJung-uk Kim #define ACPI_SIGNAL_BREAKPOINT      1
75a9f12690SJung-uk Kim 
76a9f12690SJung-uk Kim typedef struct acpi_signal_fatal_info
77a9f12690SJung-uk Kim {
78a9f12690SJung-uk Kim     UINT32                  Type;
79a9f12690SJung-uk Kim     UINT32                  Code;
80a9f12690SJung-uk Kim     UINT32                  Argument;
81a9f12690SJung-uk Kim 
82a9f12690SJung-uk Kim } ACPI_SIGNAL_FATAL_INFO;
83a9f12690SJung-uk Kim 
84a9f12690SJung-uk Kim 
85a9f12690SJung-uk Kim /*
86a9f12690SJung-uk Kim  * OSL Initialization and shutdown primitives
87a9f12690SJung-uk Kim  */
88a9f12690SJung-uk Kim ACPI_STATUS
89a9f12690SJung-uk Kim AcpiOsInitialize (
90a9f12690SJung-uk Kim     void);
91a9f12690SJung-uk Kim 
92a9f12690SJung-uk Kim ACPI_STATUS
93a9f12690SJung-uk Kim AcpiOsTerminate (
94a9f12690SJung-uk Kim     void);
95a9f12690SJung-uk Kim 
96a9f12690SJung-uk Kim 
97a9f12690SJung-uk Kim /*
98a9f12690SJung-uk Kim  * ACPI Table interfaces
99a9f12690SJung-uk Kim  */
100a9f12690SJung-uk Kim ACPI_PHYSICAL_ADDRESS
101a9f12690SJung-uk Kim AcpiOsGetRootPointer (
102a9f12690SJung-uk Kim     void);
103a9f12690SJung-uk Kim 
104a9f12690SJung-uk Kim ACPI_STATUS
105a9f12690SJung-uk Kim AcpiOsPredefinedOverride (
106a9f12690SJung-uk Kim     const ACPI_PREDEFINED_NAMES *InitVal,
107a9f12690SJung-uk Kim     ACPI_STRING                 *NewVal);
108a9f12690SJung-uk Kim 
109a9f12690SJung-uk Kim ACPI_STATUS
110a9f12690SJung-uk Kim AcpiOsTableOverride (
111a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       *ExistingTable,
112a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       **NewTable);
113a9f12690SJung-uk Kim 
114a159c266SJung-uk Kim ACPI_STATUS
115a159c266SJung-uk Kim AcpiOsPhysicalTableOverride (
116a159c266SJung-uk Kim     ACPI_TABLE_HEADER       *ExistingTable,
117a159c266SJung-uk Kim     ACPI_PHYSICAL_ADDRESS   *NewAddress,
118a159c266SJung-uk Kim     UINT32                  *NewTableLength);
119a159c266SJung-uk Kim 
120a9f12690SJung-uk Kim 
121a9f12690SJung-uk Kim /*
122a9f12690SJung-uk Kim  * Spinlock primitives
123a9f12690SJung-uk Kim  */
1248ef1a331SJung-uk Kim #ifndef AcpiOsCreateLock
125a9f12690SJung-uk Kim ACPI_STATUS
126a9f12690SJung-uk Kim AcpiOsCreateLock (
127a9f12690SJung-uk Kim     ACPI_SPINLOCK           *OutHandle);
1288ef1a331SJung-uk Kim #endif
129a9f12690SJung-uk Kim 
130a9f12690SJung-uk Kim void
131a9f12690SJung-uk Kim AcpiOsDeleteLock (
132a9f12690SJung-uk Kim     ACPI_SPINLOCK           Handle);
133a9f12690SJung-uk Kim 
134a9f12690SJung-uk Kim ACPI_CPU_FLAGS
135a9f12690SJung-uk Kim AcpiOsAcquireLock (
136a9f12690SJung-uk Kim     ACPI_SPINLOCK           Handle);
137a9f12690SJung-uk Kim 
138a9f12690SJung-uk Kim void
139a9f12690SJung-uk Kim AcpiOsReleaseLock (
140a9f12690SJung-uk Kim     ACPI_SPINLOCK           Handle,
141a9f12690SJung-uk Kim     ACPI_CPU_FLAGS          Flags);
142a9f12690SJung-uk Kim 
143a9f12690SJung-uk Kim 
144a9f12690SJung-uk Kim /*
145a9f12690SJung-uk Kim  * Semaphore primitives
146a9f12690SJung-uk Kim  */
147a9f12690SJung-uk Kim ACPI_STATUS
148a9f12690SJung-uk Kim AcpiOsCreateSemaphore (
149a9f12690SJung-uk Kim     UINT32                  MaxUnits,
150a9f12690SJung-uk Kim     UINT32                  InitialUnits,
151a9f12690SJung-uk Kim     ACPI_SEMAPHORE          *OutHandle);
152a9f12690SJung-uk Kim 
153a9f12690SJung-uk Kim ACPI_STATUS
154a9f12690SJung-uk Kim AcpiOsDeleteSemaphore (
155a9f12690SJung-uk Kim     ACPI_SEMAPHORE          Handle);
156a9f12690SJung-uk Kim 
157a9f12690SJung-uk Kim ACPI_STATUS
158a9f12690SJung-uk Kim AcpiOsWaitSemaphore (
159a9f12690SJung-uk Kim     ACPI_SEMAPHORE          Handle,
160a9f12690SJung-uk Kim     UINT32                  Units,
161a9f12690SJung-uk Kim     UINT16                  Timeout);
162a9f12690SJung-uk Kim 
163a9f12690SJung-uk Kim ACPI_STATUS
164a9f12690SJung-uk Kim AcpiOsSignalSemaphore (
165a9f12690SJung-uk Kim     ACPI_SEMAPHORE          Handle,
166a9f12690SJung-uk Kim     UINT32                  Units);
167a9f12690SJung-uk Kim 
168a9f12690SJung-uk Kim 
169a9f12690SJung-uk Kim /*
170a9f12690SJung-uk Kim  * Mutex primitives. May be configured to use semaphores instead via
171a9f12690SJung-uk Kim  * ACPI_MUTEX_TYPE (see platform/acenv.h)
172a9f12690SJung-uk Kim  */
173a9f12690SJung-uk Kim #if (ACPI_MUTEX_TYPE != ACPI_BINARY_SEMAPHORE)
174a9f12690SJung-uk Kim 
175a9f12690SJung-uk Kim ACPI_STATUS
176a9f12690SJung-uk Kim AcpiOsCreateMutex (
177a9f12690SJung-uk Kim     ACPI_MUTEX              *OutHandle);
178a9f12690SJung-uk Kim 
179a9f12690SJung-uk Kim void
180a9f12690SJung-uk Kim AcpiOsDeleteMutex (
181a9f12690SJung-uk Kim     ACPI_MUTEX              Handle);
182a9f12690SJung-uk Kim 
183a9f12690SJung-uk Kim ACPI_STATUS
184a9f12690SJung-uk Kim AcpiOsAcquireMutex (
185a9f12690SJung-uk Kim     ACPI_MUTEX              Handle,
186a9f12690SJung-uk Kim     UINT16                  Timeout);
187a9f12690SJung-uk Kim 
188a9f12690SJung-uk Kim void
189a9f12690SJung-uk Kim AcpiOsReleaseMutex (
190a9f12690SJung-uk Kim     ACPI_MUTEX              Handle);
191a9f12690SJung-uk Kim #endif
192a9f12690SJung-uk Kim 
193a9f12690SJung-uk Kim 
194a9f12690SJung-uk Kim /*
195a9f12690SJung-uk Kim  * Memory allocation and mapping
196a9f12690SJung-uk Kim  */
197a9f12690SJung-uk Kim void *
198a9f12690SJung-uk Kim AcpiOsAllocate (
199a9f12690SJung-uk Kim     ACPI_SIZE               Size);
200a9f12690SJung-uk Kim 
201a9f12690SJung-uk Kim void
202a9f12690SJung-uk Kim AcpiOsFree (
203a9f12690SJung-uk Kim     void *                  Memory);
204a9f12690SJung-uk Kim 
205a9f12690SJung-uk Kim void *
206a9f12690SJung-uk Kim AcpiOsMapMemory (
207a9f12690SJung-uk Kim     ACPI_PHYSICAL_ADDRESS   Where,
208a9f12690SJung-uk Kim     ACPI_SIZE               Length);
209a9f12690SJung-uk Kim 
210a9f12690SJung-uk Kim void
211a9f12690SJung-uk Kim AcpiOsUnmapMemory (
212a9f12690SJung-uk Kim     void                    *LogicalAddress,
213a9f12690SJung-uk Kim     ACPI_SIZE               Size);
214a9f12690SJung-uk Kim 
215a9f12690SJung-uk Kim ACPI_STATUS
216a9f12690SJung-uk Kim AcpiOsGetPhysicalAddress (
217a9f12690SJung-uk Kim     void                    *LogicalAddress,
218a9f12690SJung-uk Kim     ACPI_PHYSICAL_ADDRESS   *PhysicalAddress);
219a9f12690SJung-uk Kim 
220a9f12690SJung-uk Kim 
221a9f12690SJung-uk Kim /*
222a9f12690SJung-uk Kim  * Memory/Object Cache
223a9f12690SJung-uk Kim  */
224a9f12690SJung-uk Kim ACPI_STATUS
225a9f12690SJung-uk Kim AcpiOsCreateCache (
226a9f12690SJung-uk Kim     char                    *CacheName,
227a9f12690SJung-uk Kim     UINT16                  ObjectSize,
228a9f12690SJung-uk Kim     UINT16                  MaxDepth,
229a9f12690SJung-uk Kim     ACPI_CACHE_T            **ReturnCache);
230a9f12690SJung-uk Kim 
231a9f12690SJung-uk Kim ACPI_STATUS
232a9f12690SJung-uk Kim AcpiOsDeleteCache (
233a9f12690SJung-uk Kim     ACPI_CACHE_T            *Cache);
234a9f12690SJung-uk Kim 
235a9f12690SJung-uk Kim ACPI_STATUS
236a9f12690SJung-uk Kim AcpiOsPurgeCache (
237a9f12690SJung-uk Kim     ACPI_CACHE_T            *Cache);
238a9f12690SJung-uk Kim 
239a9f12690SJung-uk Kim void *
240a9f12690SJung-uk Kim AcpiOsAcquireObject (
241a9f12690SJung-uk Kim     ACPI_CACHE_T            *Cache);
242a9f12690SJung-uk Kim 
243a9f12690SJung-uk Kim ACPI_STATUS
244a9f12690SJung-uk Kim AcpiOsReleaseObject (
245a9f12690SJung-uk Kim     ACPI_CACHE_T            *Cache,
246a9f12690SJung-uk Kim     void                    *Object);
247a9f12690SJung-uk Kim 
248a9f12690SJung-uk Kim 
249a9f12690SJung-uk Kim /*
250a9f12690SJung-uk Kim  * Interrupt handlers
251a9f12690SJung-uk Kim  */
252a9f12690SJung-uk Kim ACPI_STATUS
253a9f12690SJung-uk Kim AcpiOsInstallInterruptHandler (
254a9f12690SJung-uk Kim     UINT32                  InterruptNumber,
255a9f12690SJung-uk Kim     ACPI_OSD_HANDLER        ServiceRoutine,
256a9f12690SJung-uk Kim     void                    *Context);
257a9f12690SJung-uk Kim 
258a9f12690SJung-uk Kim ACPI_STATUS
259a9f12690SJung-uk Kim AcpiOsRemoveInterruptHandler (
260a9f12690SJung-uk Kim     UINT32                  InterruptNumber,
261a9f12690SJung-uk Kim     ACPI_OSD_HANDLER        ServiceRoutine);
262a9f12690SJung-uk Kim 
263a9f12690SJung-uk Kim 
264a9f12690SJung-uk Kim /*
265a9f12690SJung-uk Kim  * Threads and Scheduling
266a9f12690SJung-uk Kim  */
267a9f12690SJung-uk Kim ACPI_THREAD_ID
268a9f12690SJung-uk Kim AcpiOsGetThreadId (
269a9f12690SJung-uk Kim     void);
270a9f12690SJung-uk Kim 
271a9f12690SJung-uk Kim ACPI_STATUS
272a9f12690SJung-uk Kim AcpiOsExecute (
273a9f12690SJung-uk Kim     ACPI_EXECUTE_TYPE       Type,
274a9f12690SJung-uk Kim     ACPI_OSD_EXEC_CALLBACK  Function,
275a9f12690SJung-uk Kim     void                    *Context);
276a9f12690SJung-uk Kim 
277a9f12690SJung-uk Kim void
278a9f12690SJung-uk Kim AcpiOsWaitEventsComplete (
279a7a3b383SJung-uk Kim     void);
280a9f12690SJung-uk Kim 
281a9f12690SJung-uk Kim void
282a9f12690SJung-uk Kim AcpiOsSleep (
2839a179dd8SJung-uk Kim     UINT64                  Milliseconds);
284a9f12690SJung-uk Kim 
285a9f12690SJung-uk Kim void
286a9f12690SJung-uk Kim AcpiOsStall (
287a9f12690SJung-uk Kim     UINT32                  Microseconds);
288a9f12690SJung-uk Kim 
289a9f12690SJung-uk Kim 
290a9f12690SJung-uk Kim /*
291a9f12690SJung-uk Kim  * Platform and hardware-independent I/O interfaces
292a9f12690SJung-uk Kim  */
293a9f12690SJung-uk Kim ACPI_STATUS
294a9f12690SJung-uk Kim AcpiOsReadPort (
295a9f12690SJung-uk Kim     ACPI_IO_ADDRESS         Address,
296a9f12690SJung-uk Kim     UINT32                  *Value,
297a9f12690SJung-uk Kim     UINT32                  Width);
298a9f12690SJung-uk Kim 
299a9f12690SJung-uk Kim ACPI_STATUS
300a9f12690SJung-uk Kim AcpiOsWritePort (
301a9f12690SJung-uk Kim     ACPI_IO_ADDRESS         Address,
302a9f12690SJung-uk Kim     UINT32                  Value,
303a9f12690SJung-uk Kim     UINT32                  Width);
304a9f12690SJung-uk Kim 
305a9f12690SJung-uk Kim 
306a9f12690SJung-uk Kim /*
307a9f12690SJung-uk Kim  * Platform and hardware-independent physical memory interfaces
308a9f12690SJung-uk Kim  */
309a9f12690SJung-uk Kim ACPI_STATUS
310a9f12690SJung-uk Kim AcpiOsReadMemory (
311a9f12690SJung-uk Kim     ACPI_PHYSICAL_ADDRESS   Address,
312a159c266SJung-uk Kim     UINT64                  *Value,
313a9f12690SJung-uk Kim     UINT32                  Width);
314a9f12690SJung-uk Kim 
315a9f12690SJung-uk Kim ACPI_STATUS
316a9f12690SJung-uk Kim AcpiOsWriteMemory (
317a9f12690SJung-uk Kim     ACPI_PHYSICAL_ADDRESS   Address,
318a159c266SJung-uk Kim     UINT64                  Value,
319a9f12690SJung-uk Kim     UINT32                  Width);
320a9f12690SJung-uk Kim 
321a9f12690SJung-uk Kim 
322a9f12690SJung-uk Kim /*
323a9f12690SJung-uk Kim  * Platform and hardware-independent PCI configuration space access
324a9f12690SJung-uk Kim  * Note: Can't use "Register" as a parameter, changed to "Reg" --
325a9f12690SJung-uk Kim  * certain compilers complain.
326a9f12690SJung-uk Kim  */
327a9f12690SJung-uk Kim ACPI_STATUS
328a9f12690SJung-uk Kim AcpiOsReadPciConfiguration (
329a9f12690SJung-uk Kim     ACPI_PCI_ID             *PciId,
330a9f12690SJung-uk Kim     UINT32                  Reg,
331709fac06SJung-uk Kim     UINT64                  *Value,
332a9f12690SJung-uk Kim     UINT32                  Width);
333a9f12690SJung-uk Kim 
334a9f12690SJung-uk Kim ACPI_STATUS
335a9f12690SJung-uk Kim AcpiOsWritePciConfiguration (
336a9f12690SJung-uk Kim     ACPI_PCI_ID             *PciId,
337a9f12690SJung-uk Kim     UINT32                  Reg,
3389a179dd8SJung-uk Kim     UINT64                  Value,
339a9f12690SJung-uk Kim     UINT32                  Width);
340a9f12690SJung-uk Kim 
341a9f12690SJung-uk Kim 
342a9f12690SJung-uk Kim /*
343a9f12690SJung-uk Kim  * Miscellaneous
344a9f12690SJung-uk Kim  */
345a9f12690SJung-uk Kim BOOLEAN
346a9f12690SJung-uk Kim AcpiOsReadable (
347a9f12690SJung-uk Kim     void                    *Pointer,
348a9f12690SJung-uk Kim     ACPI_SIZE               Length);
349a9f12690SJung-uk Kim 
350a9f12690SJung-uk Kim BOOLEAN
351a9f12690SJung-uk Kim AcpiOsWritable (
352a9f12690SJung-uk Kim     void                    *Pointer,
353a9f12690SJung-uk Kim     ACPI_SIZE               Length);
354a9f12690SJung-uk Kim 
355a9f12690SJung-uk Kim UINT64
356a9f12690SJung-uk Kim AcpiOsGetTimer (
357a9f12690SJung-uk Kim     void);
358a9f12690SJung-uk Kim 
359a9f12690SJung-uk Kim ACPI_STATUS
360a9f12690SJung-uk Kim AcpiOsSignal (
361a9f12690SJung-uk Kim     UINT32                  Function,
362a9f12690SJung-uk Kim     void                    *Info);
363a9f12690SJung-uk Kim 
364a9f12690SJung-uk Kim 
365a9f12690SJung-uk Kim /*
366a9f12690SJung-uk Kim  * Debug print routines
367a9f12690SJung-uk Kim  */
368a9f12690SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE
369a9f12690SJung-uk Kim AcpiOsPrintf (
370a9f12690SJung-uk Kim     const char              *Format,
371a9f12690SJung-uk Kim     ...);
372a9f12690SJung-uk Kim 
373a9f12690SJung-uk Kim void
374a9f12690SJung-uk Kim AcpiOsVprintf (
375a9f12690SJung-uk Kim     const char              *Format,
376a9f12690SJung-uk Kim     va_list                 Args);
377a9f12690SJung-uk Kim 
378a9f12690SJung-uk Kim void
379a9f12690SJung-uk Kim AcpiOsRedirectOutput (
380a9f12690SJung-uk Kim     void                    *Destination);
381a9f12690SJung-uk Kim 
382a9f12690SJung-uk Kim 
383a9f12690SJung-uk Kim /*
384a9f12690SJung-uk Kim  * Debug input
385a9f12690SJung-uk Kim  */
38642e58c03SJung-uk Kim ACPI_STATUS
387a9f12690SJung-uk Kim AcpiOsGetLine (
38842e58c03SJung-uk Kim     char                    *Buffer,
38942e58c03SJung-uk Kim     UINT32                  BufferLength,
39042e58c03SJung-uk Kim     UINT32                  *BytesRead);
391a9f12690SJung-uk Kim 
392a9f12690SJung-uk Kim 
393a9f12690SJung-uk Kim /*
394a9d8d09cSJung-uk Kim  * Obtain ACPI table(s)
395a9d8d09cSJung-uk Kim  */
396a9d8d09cSJung-uk Kim ACPI_STATUS
397a9d8d09cSJung-uk Kim AcpiOsGetTableByName (
398a9d8d09cSJung-uk Kim     char                    *Signature,
399a9d8d09cSJung-uk Kim     UINT32                  Instance,
400a9d8d09cSJung-uk Kim     ACPI_TABLE_HEADER       **Table,
401a9d8d09cSJung-uk Kim     ACPI_PHYSICAL_ADDRESS   *Address);
402a9d8d09cSJung-uk Kim 
403a9d8d09cSJung-uk Kim ACPI_STATUS
404a9d8d09cSJung-uk Kim AcpiOsGetTableByIndex (
405a9d8d09cSJung-uk Kim     UINT32                  Index,
406a9d8d09cSJung-uk Kim     ACPI_TABLE_HEADER       **Table,
40779c6d946SJung-uk Kim     UINT32                  *Instance,
408a9d8d09cSJung-uk Kim     ACPI_PHYSICAL_ADDRESS   *Address);
409a9d8d09cSJung-uk Kim 
410a9d8d09cSJung-uk Kim ACPI_STATUS
411a9d8d09cSJung-uk Kim AcpiOsGetTableByAddress (
412a9d8d09cSJung-uk Kim     ACPI_PHYSICAL_ADDRESS   Address,
413a9d8d09cSJung-uk Kim     ACPI_TABLE_HEADER       **Table);
414a9d8d09cSJung-uk Kim 
415a9d8d09cSJung-uk Kim 
416a9d8d09cSJung-uk Kim /*
417a9f12690SJung-uk Kim  * Directory manipulation
418a9f12690SJung-uk Kim  */
419a9f12690SJung-uk Kim void *
420a9f12690SJung-uk Kim AcpiOsOpenDirectory (
421a9f12690SJung-uk Kim     char                    *Pathname,
422a9f12690SJung-uk Kim     char                    *WildcardSpec,
423a9f12690SJung-uk Kim     char                    RequestedFileType);
424a9f12690SJung-uk Kim 
425a9f12690SJung-uk Kim /* RequesteFileType values */
426a9f12690SJung-uk Kim 
427a9f12690SJung-uk Kim #define REQUEST_FILE_ONLY                   0
428a9f12690SJung-uk Kim #define REQUEST_DIR_ONLY                    1
429a9f12690SJung-uk Kim 
430a9f12690SJung-uk Kim 
431a9f12690SJung-uk Kim char *
432a9f12690SJung-uk Kim AcpiOsGetNextFilename (
433a9f12690SJung-uk Kim     void                    *DirHandle);
434a9f12690SJung-uk Kim 
435a9f12690SJung-uk Kim void
436a9f12690SJung-uk Kim AcpiOsCloseDirectory (
437a9f12690SJung-uk Kim     void                    *DirHandle);
438a9f12690SJung-uk Kim 
439a9f12690SJung-uk Kim 
440a9f12690SJung-uk Kim #endif /* __ACPIOSXF_H__ */
441