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 * 11 * 1. Copyright Notice 12 * 13 * Some or all of this work - Copyright (c) 1999 - 2018, Intel Corp. 14 * All rights reserved. 15 * 16 * 2. License 17 * 18 * 2.1. This is your license from Intel Corp. under its intellectual property 19 * rights. You may have additional license terms from the party that provided 20 * you this software, covering your right to use that party's intellectual 21 * property rights. 22 * 23 * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 24 * copy of the source code appearing in this file ("Covered Code") an 25 * irrevocable, perpetual, worldwide license under Intel's copyrights in the 26 * base code distributed originally by Intel ("Original Intel Code") to copy, 27 * make derivatives, distribute, use and display any portion of the Covered 28 * Code in any form, with the right to sublicense such rights; and 29 * 30 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 31 * license (with the right to sublicense), under only those claims of Intel 32 * patents that are infringed by the Original Intel Code, to make, use, sell, 33 * offer to sell, and import the Covered Code and derivative works thereof 34 * solely to the minimum extent necessary to exercise the above copyright 35 * license, and in no event shall the patent license extend to any additions 36 * to or modifications of the Original Intel Code. No other license or right 37 * is granted directly or by implication, estoppel or otherwise; 38 * 39 * The above copyright and patent license is granted only if the following 40 * conditions are met: 41 * 42 * 3. Conditions 43 * 44 * 3.1. Redistribution of Source with Rights to Further Distribute Source. 45 * Redistribution of source code of any substantial portion of the Covered 46 * Code or modification with rights to further distribute source must include 47 * the above Copyright Notice, the above License, this list of Conditions, 48 * and the following Disclaimer and Export Compliance provision. In addition, 49 * Licensee must cause all Covered Code to which Licensee contributes to 50 * contain a file documenting the changes Licensee made to create that Covered 51 * Code and the date of any change. Licensee must include in that file the 52 * documentation of any changes made by any predecessor Licensee. Licensee 53 * must include a prominent statement that the modification is derived, 54 * directly or indirectly, from Original Intel Code. 55 * 56 * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 57 * Redistribution of source code of any substantial portion of the Covered 58 * Code or modification without rights to further distribute source must 59 * include the following Disclaimer and Export Compliance provision in the 60 * documentation and/or other materials provided with distribution. In 61 * addition, Licensee may not authorize further sublicense of source of any 62 * portion of the Covered Code, and must include terms to the effect that the 63 * license from Licensee to its licensee is limited to the intellectual 64 * property embodied in the software Licensee provides to its licensee, and 65 * not to intellectual property embodied in modifications its licensee may 66 * make. 67 * 68 * 3.3. Redistribution of Executable. Redistribution in executable form of any 69 * substantial portion of the Covered Code or modification must reproduce the 70 * above Copyright Notice, and the following Disclaimer and Export Compliance 71 * provision in the documentation and/or other materials provided with the 72 * distribution. 73 * 74 * 3.4. Intel retains all right, title, and interest in and to the Original 75 * Intel Code. 76 * 77 * 3.5. Neither the name Intel nor any other trademark owned or controlled by 78 * Intel shall be used in advertising or otherwise to promote the sale, use or 79 * other dealings in products derived from or relating to the Covered Code 80 * without prior written authorization from Intel. 81 * 82 * 4. Disclaimer and Export Compliance 83 * 84 * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 85 * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 86 * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 87 * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 88 * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 89 * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 90 * PARTICULAR PURPOSE. 91 * 92 * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 93 * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 94 * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 95 * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 96 * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 97 * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 98 * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 99 * LIMITED REMEDY. 100 * 101 * 4.3. Licensee shall not export, either directly or indirectly, any of this 102 * software or system incorporating such software without first obtaining any 103 * required license or other approval from the U. S. Department of Commerce or 104 * any other agency or department of the United States Government. In the 105 * event Licensee exports any such software from the United States or 106 * re-exports any such software from a foreign destination, Licensee shall 107 * ensure that the distribution and export/re-export of the software is in 108 * compliance with all laws, regulations, orders, or other restrictions of the 109 * U.S. Export Administration Regulations. Licensee agrees that neither it nor 110 * any of its subsidiaries will export/re-export any technical data, process, 111 * software, or service, directly or indirectly, to any country for which the 112 * United States government or any agency thereof requires an export license, 113 * other governmental approval, or letter of assurance, without first obtaining 114 * such license, approval or letter. 115 * 116 ***************************************************************************** 117 * 118 * Alternatively, you may choose to be licensed under the terms of the 119 * following license: 120 * 121 * Redistribution and use in source and binary forms, with or without 122 * modification, are permitted provided that the following conditions 123 * are met: 124 * 1. Redistributions of source code must retain the above copyright 125 * notice, this list of conditions, and the following disclaimer, 126 * without modification. 127 * 2. Redistributions in binary form must reproduce at minimum a disclaimer 128 * substantially similar to the "NO WARRANTY" disclaimer below 129 * ("Disclaimer") and any redistribution must be conditioned upon 130 * including a substantially similar Disclaimer requirement for further 131 * binary redistribution. 132 * 3. Neither the names of the above-listed copyright holders nor the names 133 * of any contributors may be used to endorse or promote products derived 134 * from this software without specific prior written permission. 135 * 136 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 137 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 138 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 139 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 140 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 141 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 142 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 143 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 144 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 145 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 146 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 147 * 148 * Alternatively, you may choose to be licensed under the terms of the 149 * GNU General Public License ("GPL") version 2 as published by the Free 150 * Software Foundation. 151 * 152 *****************************************************************************/ 153 154 #ifndef __ACPIOSXF_H__ 155 #define __ACPIOSXF_H__ 156 157 #include "platform/acenv.h" 158 #include "actypes.h" 159 160 161 /* Types for AcpiOsExecute */ 162 163 typedef enum 164 { 165 OSL_GLOBAL_LOCK_HANDLER, 166 OSL_NOTIFY_HANDLER, 167 OSL_GPE_HANDLER, 168 OSL_DEBUGGER_MAIN_THREAD, 169 OSL_DEBUGGER_EXEC_THREAD, 170 OSL_EC_POLL_HANDLER, 171 OSL_EC_BURST_HANDLER 172 173 } ACPI_EXECUTE_TYPE; 174 175 #define ACPI_NO_UNIT_LIMIT ((UINT32) -1) 176 #define ACPI_MUTEX_SEM 1 177 178 179 /* Functions for AcpiOsSignal */ 180 181 #define ACPI_SIGNAL_FATAL 0 182 #define ACPI_SIGNAL_BREAKPOINT 1 183 184 typedef struct acpi_signal_fatal_info 185 { 186 UINT32 Type; 187 UINT32 Code; 188 UINT32 Argument; 189 190 } ACPI_SIGNAL_FATAL_INFO; 191 192 193 /* 194 * OSL Initialization and shutdown primitives 195 */ 196 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInitialize 197 ACPI_STATUS 198 AcpiOsInitialize ( 199 void); 200 #endif 201 202 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTerminate 203 ACPI_STATUS 204 AcpiOsTerminate ( 205 void); 206 #endif 207 208 209 /* 210 * ACPI Table interfaces 211 */ 212 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetRootPointer 213 ACPI_PHYSICAL_ADDRESS 214 AcpiOsGetRootPointer ( 215 void); 216 #endif 217 218 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPredefinedOverride 219 ACPI_STATUS 220 AcpiOsPredefinedOverride ( 221 const ACPI_PREDEFINED_NAMES *InitVal, 222 ACPI_STRING *NewVal); 223 #endif 224 225 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTableOverride 226 ACPI_STATUS 227 AcpiOsTableOverride ( 228 ACPI_TABLE_HEADER *ExistingTable, 229 ACPI_TABLE_HEADER **NewTable); 230 #endif 231 232 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPhysicalTableOverride 233 ACPI_STATUS 234 AcpiOsPhysicalTableOverride ( 235 ACPI_TABLE_HEADER *ExistingTable, 236 ACPI_PHYSICAL_ADDRESS *NewAddress, 237 UINT32 *NewTableLength); 238 #endif 239 240 241 /* 242 * Spinlock primitives 243 */ 244 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateLock 245 ACPI_STATUS 246 AcpiOsCreateLock ( 247 ACPI_SPINLOCK *OutHandle); 248 #endif 249 250 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteLock 251 void 252 AcpiOsDeleteLock ( 253 ACPI_SPINLOCK Handle); 254 #endif 255 256 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireLock 257 ACPI_CPU_FLAGS 258 AcpiOsAcquireLock ( 259 ACPI_SPINLOCK Handle); 260 #endif 261 262 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseLock 263 void 264 AcpiOsReleaseLock ( 265 ACPI_SPINLOCK Handle, 266 ACPI_CPU_FLAGS Flags); 267 #endif 268 269 270 /* 271 * Semaphore primitives 272 */ 273 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateSemaphore 274 ACPI_STATUS 275 AcpiOsCreateSemaphore ( 276 UINT32 MaxUnits, 277 UINT32 InitialUnits, 278 ACPI_SEMAPHORE *OutHandle); 279 #endif 280 281 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteSemaphore 282 ACPI_STATUS 283 AcpiOsDeleteSemaphore ( 284 ACPI_SEMAPHORE Handle); 285 #endif 286 287 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitSemaphore 288 ACPI_STATUS 289 AcpiOsWaitSemaphore ( 290 ACPI_SEMAPHORE Handle, 291 UINT32 Units, 292 UINT16 Timeout); 293 #endif 294 295 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSignalSemaphore 296 ACPI_STATUS 297 AcpiOsSignalSemaphore ( 298 ACPI_SEMAPHORE Handle, 299 UINT32 Units); 300 #endif 301 302 303 /* 304 * Mutex primitives. May be configured to use semaphores instead via 305 * ACPI_MUTEX_TYPE (see platform/acenv.h) 306 */ 307 #if (ACPI_MUTEX_TYPE != ACPI_BINARY_SEMAPHORE) 308 309 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateMutex 310 ACPI_STATUS 311 AcpiOsCreateMutex ( 312 ACPI_MUTEX *OutHandle); 313 #endif 314 315 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteMutex 316 void 317 AcpiOsDeleteMutex ( 318 ACPI_MUTEX Handle); 319 #endif 320 321 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireMutex 322 ACPI_STATUS 323 AcpiOsAcquireMutex ( 324 ACPI_MUTEX Handle, 325 UINT16 Timeout); 326 #endif 327 328 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseMutex 329 void 330 AcpiOsReleaseMutex ( 331 ACPI_MUTEX Handle); 332 #endif 333 334 #endif 335 336 337 /* 338 * Memory allocation and mapping 339 */ 340 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAllocate 341 void * 342 AcpiOsAllocate ( 343 ACPI_SIZE Size); 344 #endif 345 346 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAllocateZeroed 347 void * 348 AcpiOsAllocateZeroed ( 349 ACPI_SIZE Size); 350 #endif 351 352 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsFree 353 void 354 AcpiOsFree ( 355 void * Memory); 356 #endif 357 358 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsMapMemory 359 void * 360 AcpiOsMapMemory ( 361 ACPI_PHYSICAL_ADDRESS Where, 362 ACPI_SIZE Length); 363 #endif 364 365 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsUnmapMemory 366 void 367 AcpiOsUnmapMemory ( 368 void *LogicalAddress, 369 ACPI_SIZE Size); 370 #endif 371 372 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetPhysicalAddress 373 ACPI_STATUS 374 AcpiOsGetPhysicalAddress ( 375 void *LogicalAddress, 376 ACPI_PHYSICAL_ADDRESS *PhysicalAddress); 377 #endif 378 379 380 /* 381 * Memory/Object Cache 382 */ 383 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateCache 384 ACPI_STATUS 385 AcpiOsCreateCache ( 386 char *CacheName, 387 UINT16 ObjectSize, 388 UINT16 MaxDepth, 389 ACPI_CACHE_T **ReturnCache); 390 #endif 391 392 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteCache 393 ACPI_STATUS 394 AcpiOsDeleteCache ( 395 ACPI_CACHE_T *Cache); 396 #endif 397 398 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPurgeCache 399 ACPI_STATUS 400 AcpiOsPurgeCache ( 401 ACPI_CACHE_T *Cache); 402 #endif 403 404 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireObject 405 void * 406 AcpiOsAcquireObject ( 407 ACPI_CACHE_T *Cache); 408 #endif 409 410 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseObject 411 ACPI_STATUS 412 AcpiOsReleaseObject ( 413 ACPI_CACHE_T *Cache, 414 void *Object); 415 #endif 416 417 418 /* 419 * Interrupt handlers 420 */ 421 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInstallInterruptHandler 422 ACPI_STATUS 423 AcpiOsInstallInterruptHandler ( 424 UINT32 InterruptNumber, 425 ACPI_OSD_HANDLER ServiceRoutine, 426 void *Context); 427 #endif 428 429 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsRemoveInterruptHandler 430 ACPI_STATUS 431 AcpiOsRemoveInterruptHandler ( 432 UINT32 InterruptNumber, 433 ACPI_OSD_HANDLER ServiceRoutine); 434 #endif 435 436 437 /* 438 * Threads and Scheduling 439 */ 440 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetThreadId 441 ACPI_THREAD_ID 442 AcpiOsGetThreadId ( 443 void); 444 #endif 445 446 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsExecute 447 ACPI_STATUS 448 AcpiOsExecute ( 449 ACPI_EXECUTE_TYPE Type, 450 ACPI_OSD_EXEC_CALLBACK Function, 451 void *Context); 452 #endif 453 454 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitEventsComplete 455 void 456 AcpiOsWaitEventsComplete ( 457 void); 458 #endif 459 460 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSleep 461 void 462 AcpiOsSleep ( 463 UINT64 Milliseconds); 464 #endif 465 466 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsStall 467 void 468 AcpiOsStall ( 469 UINT32 Microseconds); 470 #endif 471 472 473 /* 474 * Platform and hardware-independent I/O interfaces 475 */ 476 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadPort 477 ACPI_STATUS 478 AcpiOsReadPort ( 479 ACPI_IO_ADDRESS Address, 480 UINT32 *Value, 481 UINT32 Width); 482 #endif 483 484 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritePort 485 ACPI_STATUS 486 AcpiOsWritePort ( 487 ACPI_IO_ADDRESS Address, 488 UINT32 Value, 489 UINT32 Width); 490 #endif 491 492 493 /* 494 * Platform and hardware-independent physical memory interfaces 495 */ 496 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadMemory 497 ACPI_STATUS 498 AcpiOsReadMemory ( 499 ACPI_PHYSICAL_ADDRESS Address, 500 UINT64 *Value, 501 UINT32 Width); 502 #endif 503 504 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWriteMemory 505 ACPI_STATUS 506 AcpiOsWriteMemory ( 507 ACPI_PHYSICAL_ADDRESS Address, 508 UINT64 Value, 509 UINT32 Width); 510 #endif 511 512 513 /* 514 * Platform and hardware-independent PCI configuration space access 515 * Note: Can't use "Register" as a parameter, changed to "Reg" -- 516 * certain compilers complain. 517 */ 518 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadPciConfiguration 519 ACPI_STATUS 520 AcpiOsReadPciConfiguration ( 521 ACPI_PCI_ID *PciId, 522 UINT32 Reg, 523 UINT64 *Value, 524 UINT32 Width); 525 #endif 526 527 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritePciConfiguration 528 ACPI_STATUS 529 AcpiOsWritePciConfiguration ( 530 ACPI_PCI_ID *PciId, 531 UINT32 Reg, 532 UINT64 Value, 533 UINT32 Width); 534 #endif 535 536 537 /* 538 * Miscellaneous 539 */ 540 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadable 541 BOOLEAN 542 AcpiOsReadable ( 543 void *Pointer, 544 ACPI_SIZE Length); 545 #endif 546 547 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritable 548 BOOLEAN 549 AcpiOsWritable ( 550 void *Pointer, 551 ACPI_SIZE Length); 552 #endif 553 554 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTimer 555 UINT64 556 AcpiOsGetTimer ( 557 void); 558 #endif 559 560 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSignal 561 ACPI_STATUS 562 AcpiOsSignal ( 563 UINT32 Function, 564 void *Info); 565 #endif 566 567 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsEnterSleep 568 ACPI_STATUS 569 AcpiOsEnterSleep ( 570 UINT8 SleepState, 571 UINT32 RegaValue, 572 UINT32 RegbValue); 573 #endif 574 575 576 /* 577 * Debug print routines 578 */ 579 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPrintf 580 void ACPI_INTERNAL_VAR_XFACE 581 AcpiOsPrintf ( 582 const char *Format, 583 ...); 584 #endif 585 586 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsVprintf 587 void 588 AcpiOsVprintf ( 589 const char *Format, 590 va_list Args); 591 #endif 592 593 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsRedirectOutput 594 void 595 AcpiOsRedirectOutput ( 596 void *Destination); 597 #endif 598 599 600 /* 601 * Debug IO 602 */ 603 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetLine 604 ACPI_STATUS 605 AcpiOsGetLine ( 606 char *Buffer, 607 UINT32 BufferLength, 608 UINT32 *BytesRead); 609 #endif 610 611 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInitializeDebugger 612 ACPI_STATUS 613 AcpiOsInitializeDebugger ( 614 void); 615 #endif 616 617 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTerminateDebugger 618 void 619 AcpiOsTerminateDebugger ( 620 void); 621 #endif 622 623 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitCommandReady 624 ACPI_STATUS 625 AcpiOsWaitCommandReady ( 626 void); 627 #endif 628 629 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsNotifyCommandComplete 630 ACPI_STATUS 631 AcpiOsNotifyCommandComplete ( 632 void); 633 #endif 634 635 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTracePoint 636 void 637 AcpiOsTracePoint ( 638 ACPI_TRACE_EVENT_TYPE Type, 639 BOOLEAN Begin, 640 UINT8 *Aml, 641 char *Pathname); 642 #endif 643 644 645 /* 646 * Obtain ACPI table(s) 647 */ 648 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByName 649 ACPI_STATUS 650 AcpiOsGetTableByName ( 651 char *Signature, 652 UINT32 Instance, 653 ACPI_TABLE_HEADER **Table, 654 ACPI_PHYSICAL_ADDRESS *Address); 655 #endif 656 657 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByIndex 658 ACPI_STATUS 659 AcpiOsGetTableByIndex ( 660 UINT32 Index, 661 ACPI_TABLE_HEADER **Table, 662 UINT32 *Instance, 663 ACPI_PHYSICAL_ADDRESS *Address); 664 #endif 665 666 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByAddress 667 ACPI_STATUS 668 AcpiOsGetTableByAddress ( 669 ACPI_PHYSICAL_ADDRESS Address, 670 ACPI_TABLE_HEADER **Table); 671 #endif 672 673 674 /* 675 * Directory manipulation 676 */ 677 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsOpenDirectory 678 void * 679 AcpiOsOpenDirectory ( 680 char *Pathname, 681 char *WildcardSpec, 682 char RequestedFileType); 683 #endif 684 685 /* RequesteFileType values */ 686 687 #define REQUEST_FILE_ONLY 0 688 #define REQUEST_DIR_ONLY 1 689 690 691 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetNextFilename 692 char * 693 AcpiOsGetNextFilename ( 694 void *DirHandle); 695 #endif 696 697 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCloseDirectory 698 void 699 AcpiOsCloseDirectory ( 700 void *DirHandle); 701 #endif 702 703 704 #endif /* __ACPIOSXF_H__ */ 705