1 | /****************************************************************************** |
2 | * |
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. |
6 | * |
7 | *****************************************************************************/ |
8 | |
9 | /* |
10 | * Copyright (C) 2000 - 2019, Intel Corp. |
11 | * All rights reserved. |
12 | * |
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. |
27 | * |
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. |
31 | * |
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. |
44 | */ |
45 | |
46 | #ifndef __ACPIOSXF_H__ |
47 | #define __ACPIOSXF_H__ |
48 | |
49 | #include "platform/acenv.h" |
50 | #include "actypes.h" |
51 | |
52 | |
53 | /* Types for AcpiOsExecute */ |
54 | |
55 | typedef enum |
56 | { |
57 | OSL_GLOBAL_LOCK_HANDLER, |
58 | OSL_NOTIFY_HANDLER, |
59 | OSL_GPE_HANDLER, |
60 | OSL_DEBUGGER_MAIN_THREAD, |
61 | OSL_DEBUGGER_EXEC_THREAD, |
62 | OSL_EC_POLL_HANDLER, |
63 | OSL_EC_BURST_HANDLER |
64 | |
65 | } ACPI_EXECUTE_TYPE; |
66 | |
67 | #define ACPI_NO_UNIT_LIMIT ((UINT32) -1) |
68 | #define ACPI_MUTEX_SEM 1 |
69 | |
70 | |
71 | /* Functions for AcpiOsSignal */ |
72 | |
73 | #define ACPI_SIGNAL_FATAL 0 |
74 | #define ACPI_SIGNAL_BREAKPOINT 1 |
75 | |
76 | typedef struct acpi_signal_fatal_info |
77 | { |
78 | UINT32 Type; |
79 | UINT32 Code; |
80 | UINT32 Argument; |
81 | |
82 | } ACPI_SIGNAL_FATAL_INFO; |
83 | |
84 | |
85 | /* |
86 | * OSL Initialization and shutdown primitives |
87 | */ |
88 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInitialize |
89 | ACPI_STATUS |
90 | AcpiOsInitialize ( |
91 | void); |
92 | #endif |
93 | |
94 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTerminate |
95 | ACPI_STATUS |
96 | AcpiOsTerminate ( |
97 | void); |
98 | #endif |
99 | |
100 | |
101 | /* |
102 | * ACPI Table interfaces |
103 | */ |
104 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetRootPointer |
105 | ACPI_PHYSICAL_ADDRESS |
106 | AcpiOsGetRootPointer ( |
107 | void); |
108 | #endif |
109 | |
110 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPredefinedOverride |
111 | ACPI_STATUS |
112 | AcpiOsPredefinedOverride ( |
113 | const ACPI_PREDEFINED_NAMES *InitVal, |
114 | ACPI_STRING *NewVal); |
115 | #endif |
116 | |
117 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTableOverride |
118 | ACPI_STATUS |
119 | AcpiOsTableOverride ( |
120 | ACPI_TABLE_HEADER *ExistingTable, |
121 | ACPI_TABLE_HEADER **NewTable); |
122 | #endif |
123 | |
124 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPhysicalTableOverride |
125 | ACPI_STATUS |
126 | AcpiOsPhysicalTableOverride ( |
127 | ACPI_TABLE_HEADER *ExistingTable, |
128 | ACPI_PHYSICAL_ADDRESS *NewAddress, |
129 | UINT32 *NewTableLength); |
130 | #endif |
131 | |
132 | |
133 | /* |
134 | * Spinlock primitives |
135 | */ |
136 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateLock |
137 | ACPI_STATUS |
138 | AcpiOsCreateLock ( |
139 | ACPI_SPINLOCK *OutHandle); |
140 | #endif |
141 | |
142 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteLock |
143 | void |
144 | AcpiOsDeleteLock ( |
145 | ACPI_SPINLOCK Handle); |
146 | #endif |
147 | |
148 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireLock |
149 | ACPI_CPU_FLAGS |
150 | AcpiOsAcquireLock ( |
151 | ACPI_SPINLOCK Handle); |
152 | #endif |
153 | |
154 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseLock |
155 | void |
156 | AcpiOsReleaseLock ( |
157 | ACPI_SPINLOCK Handle, |
158 | ACPI_CPU_FLAGS Flags); |
159 | #endif |
160 | |
161 | |
162 | /* |
163 | * Semaphore primitives |
164 | */ |
165 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateSemaphore |
166 | ACPI_STATUS |
167 | AcpiOsCreateSemaphore ( |
168 | UINT32 MaxUnits, |
169 | UINT32 InitialUnits, |
170 | ACPI_SEMAPHORE *OutHandle); |
171 | #endif |
172 | |
173 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteSemaphore |
174 | ACPI_STATUS |
175 | AcpiOsDeleteSemaphore ( |
176 | ACPI_SEMAPHORE Handle); |
177 | #endif |
178 | |
179 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitSemaphore |
180 | ACPI_STATUS |
181 | AcpiOsWaitSemaphore ( |
182 | ACPI_SEMAPHORE Handle, |
183 | UINT32 Units, |
184 | UINT16 Timeout); |
185 | #endif |
186 | |
187 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSignalSemaphore |
188 | ACPI_STATUS |
189 | AcpiOsSignalSemaphore ( |
190 | ACPI_SEMAPHORE Handle, |
191 | UINT32 Units); |
192 | #endif |
193 | |
194 | |
195 | /* |
196 | * Mutex primitives. May be configured to use semaphores instead via |
197 | * ACPI_MUTEX_TYPE (see platform/acenv.h) |
198 | */ |
199 | #if (ACPI_MUTEX_TYPE != ACPI_BINARY_SEMAPHORE) |
200 | |
201 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateMutex |
202 | ACPI_STATUS |
203 | AcpiOsCreateMutex ( |
204 | ACPI_MUTEX *OutHandle); |
205 | #endif |
206 | |
207 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteMutex |
208 | void |
209 | AcpiOsDeleteMutex ( |
210 | ACPI_MUTEX Handle); |
211 | #endif |
212 | |
213 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireMutex |
214 | ACPI_STATUS |
215 | AcpiOsAcquireMutex ( |
216 | ACPI_MUTEX Handle, |
217 | UINT16 Timeout); |
218 | #endif |
219 | |
220 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseMutex |
221 | void |
222 | AcpiOsReleaseMutex ( |
223 | ACPI_MUTEX Handle); |
224 | #endif |
225 | |
226 | #endif |
227 | |
228 | |
229 | /* |
230 | * Memory allocation and mapping |
231 | */ |
232 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAllocate |
233 | void * |
234 | AcpiOsAllocate ( |
235 | ACPI_SIZE Size); |
236 | #endif |
237 | |
238 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAllocateZeroed |
239 | void * |
240 | AcpiOsAllocateZeroed ( |
241 | ACPI_SIZE Size); |
242 | #endif |
243 | |
244 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsFree |
245 | void |
246 | AcpiOsFree ( |
247 | void * Memory); |
248 | #endif |
249 | |
250 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsMapMemory |
251 | void * |
252 | AcpiOsMapMemory ( |
253 | ACPI_PHYSICAL_ADDRESS Where, |
254 | ACPI_SIZE Length); |
255 | #endif |
256 | |
257 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsUnmapMemory |
258 | void |
259 | AcpiOsUnmapMemory ( |
260 | void *LogicalAddress, |
261 | ACPI_SIZE Size); |
262 | #endif |
263 | |
264 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetPhysicalAddress |
265 | ACPI_STATUS |
266 | AcpiOsGetPhysicalAddress ( |
267 | void *LogicalAddress, |
268 | ACPI_PHYSICAL_ADDRESS *PhysicalAddress); |
269 | #endif |
270 | |
271 | |
272 | /* |
273 | * Memory/Object Cache |
274 | */ |
275 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateCache |
276 | ACPI_STATUS |
277 | AcpiOsCreateCache ( |
278 | const char *CacheName, |
279 | UINT16 ObjectSize, |
280 | UINT16 MaxDepth, |
281 | ACPI_CACHE_T **ReturnCache); |
282 | #endif |
283 | |
284 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteCache |
285 | ACPI_STATUS |
286 | AcpiOsDeleteCache ( |
287 | ACPI_CACHE_T *Cache); |
288 | #endif |
289 | |
290 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPurgeCache |
291 | ACPI_STATUS |
292 | AcpiOsPurgeCache ( |
293 | ACPI_CACHE_T *Cache); |
294 | #endif |
295 | |
296 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireObject |
297 | void * |
298 | AcpiOsAcquireObject ( |
299 | ACPI_CACHE_T *Cache); |
300 | #endif |
301 | |
302 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseObject |
303 | ACPI_STATUS |
304 | AcpiOsReleaseObject ( |
305 | ACPI_CACHE_T *Cache, |
306 | void *Object); |
307 | #endif |
308 | |
309 | |
310 | /* |
311 | * Interrupt handlers |
312 | */ |
313 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInstallInterruptHandler |
314 | ACPI_STATUS |
315 | AcpiOsInstallInterruptHandler ( |
316 | UINT32 InterruptNumber, |
317 | ACPI_OSD_HANDLER ServiceRoutine, |
318 | void *Context); |
319 | #endif |
320 | |
321 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsRemoveInterruptHandler |
322 | ACPI_STATUS |
323 | AcpiOsRemoveInterruptHandler ( |
324 | UINT32 InterruptNumber, |
325 | ACPI_OSD_HANDLER ServiceRoutine); |
326 | #endif |
327 | |
328 | |
329 | /* |
330 | * Threads and Scheduling |
331 | */ |
332 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetThreadId |
333 | ACPI_THREAD_ID |
334 | AcpiOsGetThreadId ( |
335 | void); |
336 | #endif |
337 | |
338 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsExecute |
339 | ACPI_STATUS |
340 | AcpiOsExecute ( |
341 | ACPI_EXECUTE_TYPE Type, |
342 | ACPI_OSD_EXEC_CALLBACK Function, |
343 | void *Context); |
344 | #endif |
345 | |
346 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitEventsComplete |
347 | void |
348 | AcpiOsWaitEventsComplete ( |
349 | void); |
350 | #endif |
351 | |
352 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSleep |
353 | void |
354 | AcpiOsSleep ( |
355 | UINT64 Milliseconds); |
356 | #endif |
357 | |
358 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsStall |
359 | void |
360 | AcpiOsStall ( |
361 | UINT32 Microseconds); |
362 | #endif |
363 | |
364 | |
365 | /* |
366 | * Platform and hardware-independent I/O interfaces |
367 | */ |
368 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadPort |
369 | ACPI_STATUS |
370 | AcpiOsReadPort ( |
371 | ACPI_IO_ADDRESS Address, |
372 | UINT32 *Value, |
373 | UINT32 Width); |
374 | #endif |
375 | |
376 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritePort |
377 | ACPI_STATUS |
378 | AcpiOsWritePort ( |
379 | ACPI_IO_ADDRESS Address, |
380 | UINT32 Value, |
381 | UINT32 Width); |
382 | #endif |
383 | |
384 | |
385 | /* |
386 | * Platform and hardware-independent physical memory interfaces |
387 | */ |
388 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadMemory |
389 | ACPI_STATUS |
390 | AcpiOsReadMemory ( |
391 | ACPI_PHYSICAL_ADDRESS Address, |
392 | UINT64 *Value, |
393 | UINT32 Width); |
394 | #endif |
395 | |
396 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWriteMemory |
397 | ACPI_STATUS |
398 | AcpiOsWriteMemory ( |
399 | ACPI_PHYSICAL_ADDRESS Address, |
400 | UINT64 Value, |
401 | UINT32 Width); |
402 | #endif |
403 | |
404 | |
405 | /* |
406 | * Platform and hardware-independent PCI configuration space access |
407 | * Note: Can't use "Register" as a parameter, changed to "Reg" -- |
408 | * certain compilers complain. |
409 | */ |
410 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadPciConfiguration |
411 | ACPI_STATUS |
412 | AcpiOsReadPciConfiguration ( |
413 | ACPI_PCI_ID *PciId, |
414 | UINT32 Reg, |
415 | UINT64 *Value, |
416 | UINT32 Width); |
417 | #endif |
418 | |
419 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritePciConfiguration |
420 | ACPI_STATUS |
421 | AcpiOsWritePciConfiguration ( |
422 | ACPI_PCI_ID *PciId, |
423 | UINT32 Reg, |
424 | UINT64 Value, |
425 | UINT32 Width); |
426 | #endif |
427 | |
428 | |
429 | /* |
430 | * Miscellaneous |
431 | */ |
432 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadable |
433 | BOOLEAN |
434 | AcpiOsReadable ( |
435 | void *Pointer, |
436 | ACPI_SIZE Length); |
437 | #endif |
438 | |
439 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritable |
440 | BOOLEAN |
441 | AcpiOsWritable ( |
442 | void *Pointer, |
443 | ACPI_SIZE Length); |
444 | #endif |
445 | |
446 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTimer |
447 | UINT64 |
448 | AcpiOsGetTimer ( |
449 | void); |
450 | #endif |
451 | |
452 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSignal |
453 | ACPI_STATUS |
454 | AcpiOsSignal ( |
455 | UINT32 Function, |
456 | void *Info); |
457 | #endif |
458 | |
459 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsEnterSleep |
460 | ACPI_STATUS |
461 | AcpiOsEnterSleep ( |
462 | UINT8 SleepState, |
463 | UINT32 RegaValue, |
464 | UINT32 RegbValue); |
465 | #endif |
466 | |
467 | |
468 | /* |
469 | * Debug print routines |
470 | */ |
471 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPrintf |
472 | void ACPI_INTERNAL_VAR_XFACE |
473 | AcpiOsPrintf ( |
474 | const char *Format, |
475 | ...); |
476 | #endif |
477 | |
478 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsVprintf |
479 | void |
480 | AcpiOsVprintf ( |
481 | const char *Format, |
482 | va_list Args); |
483 | #endif |
484 | |
485 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsRedirectOutput |
486 | void |
487 | AcpiOsRedirectOutput ( |
488 | void *Destination); |
489 | #endif |
490 | |
491 | |
492 | /* |
493 | * Debug IO |
494 | */ |
495 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetLine |
496 | ACPI_STATUS |
497 | AcpiOsGetLine ( |
498 | char *Buffer, |
499 | UINT32 BufferLength, |
500 | UINT32 *BytesRead); |
501 | #endif |
502 | |
503 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInitializeDebugger |
504 | ACPI_STATUS |
505 | AcpiOsInitializeDebugger ( |
506 | void); |
507 | #endif |
508 | |
509 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTerminateDebugger |
510 | void |
511 | AcpiOsTerminateDebugger ( |
512 | void); |
513 | #endif |
514 | |
515 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitCommandReady |
516 | ACPI_STATUS |
517 | AcpiOsWaitCommandReady ( |
518 | void); |
519 | #endif |
520 | |
521 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsNotifyCommandComplete |
522 | ACPI_STATUS |
523 | AcpiOsNotifyCommandComplete ( |
524 | void); |
525 | #endif |
526 | |
527 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTracePoint |
528 | void |
529 | AcpiOsTracePoint ( |
530 | ACPI_TRACE_EVENT_TYPE Type, |
531 | BOOLEAN Begin, |
532 | UINT8 *Aml, |
533 | char *Pathname); |
534 | #endif |
535 | |
536 | |
537 | /* |
538 | * Obtain ACPI table(s) |
539 | */ |
540 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByName |
541 | ACPI_STATUS |
542 | AcpiOsGetTableByName ( |
543 | char *Signature, |
544 | UINT32 Instance, |
545 | ACPI_TABLE_HEADER **Table, |
546 | ACPI_PHYSICAL_ADDRESS *Address); |
547 | #endif |
548 | |
549 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByIndex |
550 | ACPI_STATUS |
551 | AcpiOsGetTableByIndex ( |
552 | UINT32 Index, |
553 | ACPI_TABLE_HEADER **Table, |
554 | UINT32 *Instance, |
555 | ACPI_PHYSICAL_ADDRESS *Address); |
556 | #endif |
557 | |
558 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByAddress |
559 | ACPI_STATUS |
560 | AcpiOsGetTableByAddress ( |
561 | ACPI_PHYSICAL_ADDRESS Address, |
562 | ACPI_TABLE_HEADER **Table); |
563 | #endif |
564 | |
565 | |
566 | /* |
567 | * Directory manipulation |
568 | */ |
569 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsOpenDirectory |
570 | void * |
571 | AcpiOsOpenDirectory ( |
572 | char *Pathname, |
573 | char *WildcardSpec, |
574 | char RequestedFileType); |
575 | #endif |
576 | |
577 | /* RequesteFileType values */ |
578 | |
579 | #define REQUEST_FILE_ONLY 0 |
580 | #define REQUEST_DIR_ONLY 1 |
581 | |
582 | |
583 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetNextFilename |
584 | char * |
585 | AcpiOsGetNextFilename ( |
586 | void *DirHandle); |
587 | #endif |
588 | |
589 | #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCloseDirectory |
590 | void |
591 | AcpiOsCloseDirectory ( |
592 | void *DirHandle); |
593 | #endif |
594 | |
595 | |
596 | #endif /* __ACPIOSXF_H__ */ |
597 | |