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 - 2023, 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 163typedef 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 184typedef 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 197ACPI_STATUS 198AcpiOsInitialize ( 199 void); 200#endif 201 202#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTerminate 203ACPI_STATUS 204AcpiOsTerminate ( 205 void); 206#endif 207 208 209/* 210 * ACPI Table interfaces 211 */ 212#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetRootPointer 213ACPI_PHYSICAL_ADDRESS 214AcpiOsGetRootPointer ( 215 void); 216#endif 217 218#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPredefinedOverride 219ACPI_STATUS 220AcpiOsPredefinedOverride ( 221 const ACPI_PREDEFINED_NAMES *InitVal, 222 ACPI_STRING *NewVal); 223#endif 224 225#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTableOverride 226ACPI_STATUS 227AcpiOsTableOverride ( 228 ACPI_TABLE_HEADER *ExistingTable, 229 ACPI_TABLE_HEADER **NewTable); 230#endif 231 232#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPhysicalTableOverride 233ACPI_STATUS 234AcpiOsPhysicalTableOverride ( 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 245ACPI_STATUS 246AcpiOsCreateLock ( 247 ACPI_SPINLOCK *OutHandle); 248#endif 249 250#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteLock 251void 252AcpiOsDeleteLock ( 253 ACPI_SPINLOCK Handle); 254#endif 255 256#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireLock 257ACPI_CPU_FLAGS 258AcpiOsAcquireLock ( 259 ACPI_SPINLOCK Handle); 260#endif 261 262#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseLock 263void 264AcpiOsReleaseLock ( 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 274ACPI_STATUS 275AcpiOsCreateSemaphore ( 276 UINT32 MaxUnits, 277 UINT32 InitialUnits, 278 ACPI_SEMAPHORE *OutHandle); 279#endif 280 281#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteSemaphore 282ACPI_STATUS 283AcpiOsDeleteSemaphore ( 284 ACPI_SEMAPHORE Handle); 285#endif 286 287#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitSemaphore 288ACPI_STATUS 289AcpiOsWaitSemaphore ( 290 ACPI_SEMAPHORE Handle, 291 UINT32 Units, 292 UINT16 Timeout); 293#endif 294 295#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSignalSemaphore 296ACPI_STATUS 297AcpiOsSignalSemaphore ( 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 310ACPI_STATUS 311AcpiOsCreateMutex ( 312 ACPI_MUTEX *OutHandle); 313#endif 314 315#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteMutex 316void 317AcpiOsDeleteMutex ( 318 ACPI_MUTEX Handle); 319#endif 320 321#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireMutex 322ACPI_STATUS 323AcpiOsAcquireMutex ( 324 ACPI_MUTEX Handle, 325 UINT16 Timeout); 326#endif 327 328#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseMutex 329void 330AcpiOsReleaseMutex ( 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 341void * 342AcpiOsAllocate ( 343 ACPI_SIZE Size); 344#endif 345 346#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAllocateZeroed 347void * 348AcpiOsAllocateZeroed ( 349 ACPI_SIZE Size); 350#endif 351 352#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsFree 353void 354AcpiOsFree ( 355 void * Memory); 356#endif 357 358#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsMapMemory 359void * 360AcpiOsMapMemory ( 361 ACPI_PHYSICAL_ADDRESS Where, 362 ACPI_SIZE Length); 363#endif 364 365#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsUnmapMemory 366void 367AcpiOsUnmapMemory ( 368 void *LogicalAddress, 369 ACPI_SIZE Size); 370#endif 371 372#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetPhysicalAddress 373ACPI_STATUS 374AcpiOsGetPhysicalAddress ( 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 384ACPI_STATUS 385AcpiOsCreateCache ( 386 char *CacheName, 387 UINT16 ObjectSize, 388 UINT16 MaxDepth, 389 ACPI_CACHE_T **ReturnCache); 390#endif 391 392#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteCache 393ACPI_STATUS 394AcpiOsDeleteCache ( 395 ACPI_CACHE_T *Cache); 396#endif 397 398#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPurgeCache 399ACPI_STATUS 400AcpiOsPurgeCache ( 401 ACPI_CACHE_T *Cache); 402#endif 403 404#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireObject 405void * 406AcpiOsAcquireObject ( 407 ACPI_CACHE_T *Cache); 408#endif 409 410#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseObject 411ACPI_STATUS 412AcpiOsReleaseObject ( 413 ACPI_CACHE_T *Cache, 414 void *Object); 415#endif 416 417 418/* 419 * Interrupt handlers 420 */ 421#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInstallInterruptHandler 422ACPI_STATUS 423AcpiOsInstallInterruptHandler ( 424 UINT32 InterruptNumber, 425 ACPI_OSD_HANDLER ServiceRoutine, 426 void *Context); 427#endif 428 429#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsRemoveInterruptHandler 430ACPI_STATUS 431AcpiOsRemoveInterruptHandler ( 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 441ACPI_THREAD_ID 442AcpiOsGetThreadId ( 443 void); 444#endif 445 446#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsExecute 447ACPI_STATUS 448AcpiOsExecute ( 449 ACPI_EXECUTE_TYPE Type, 450 ACPI_OSD_EXEC_CALLBACK Function, 451 void *Context); 452#endif 453 454#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitEventsComplete 455void 456AcpiOsWaitEventsComplete ( 457 void); 458#endif 459 460#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSleep 461void 462AcpiOsSleep ( 463 UINT64 Milliseconds); 464#endif 465 466#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsStall 467void 468AcpiOsStall ( 469 UINT32 Microseconds); 470#endif 471 472 473/* 474 * Platform and hardware-independent I/O interfaces 475 */ 476#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadPort 477ACPI_STATUS 478AcpiOsReadPort ( 479 ACPI_IO_ADDRESS Address, 480 UINT32 *Value, 481 UINT32 Width); 482#endif 483 484#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritePort 485ACPI_STATUS 486AcpiOsWritePort ( 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 497ACPI_STATUS 498AcpiOsReadMemory ( 499 ACPI_PHYSICAL_ADDRESS Address, 500 UINT64 *Value, 501 UINT32 Width); 502#endif 503 504#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWriteMemory 505ACPI_STATUS 506AcpiOsWriteMemory ( 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 519ACPI_STATUS 520AcpiOsReadPciConfiguration ( 521 ACPI_PCI_ID *PciId, 522 UINT32 Reg, 523 UINT64 *Value, 524 UINT32 Width); 525#endif 526 527#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritePciConfiguration 528ACPI_STATUS 529AcpiOsWritePciConfiguration ( 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 541BOOLEAN 542AcpiOsReadable ( 543 void *Pointer, 544 ACPI_SIZE Length); 545#endif 546 547#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritable 548BOOLEAN 549AcpiOsWritable ( 550 void *Pointer, 551 ACPI_SIZE Length); 552#endif 553 554#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTimer 555UINT64 556AcpiOsGetTimer ( 557 void); 558#endif 559 560#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSignal 561ACPI_STATUS 562AcpiOsSignal ( 563 UINT32 Function, 564 void *Info); 565#endif 566 567#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsEnterSleep 568ACPI_STATUS 569AcpiOsEnterSleep ( 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 580ACPI_PRINTF_LIKE (1) 581void ACPI_INTERNAL_VAR_XFACE 582AcpiOsPrintf ( 583 const char *Format, 584 ...); 585#endif 586 587#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsVprintf 588void 589AcpiOsVprintf ( 590 const char *Format, 591 va_list Args); 592#endif 593 594#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsRedirectOutput 595void 596AcpiOsRedirectOutput ( 597 void *Destination); 598#endif 599 600 601/* 602 * Debug IO 603 */ 604#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetLine 605ACPI_STATUS 606AcpiOsGetLine ( 607 char *Buffer, 608 UINT32 BufferLength, 609 UINT32 *BytesRead); 610#endif 611 612#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInitializeDebugger 613ACPI_STATUS 614AcpiOsInitializeDebugger ( 615 void); 616#endif 617 618#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTerminateDebugger 619void 620AcpiOsTerminateDebugger ( 621 void); 622#endif 623 624#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitCommandReady 625ACPI_STATUS 626AcpiOsWaitCommandReady ( 627 void); 628#endif 629 630#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsNotifyCommandComplete 631ACPI_STATUS 632AcpiOsNotifyCommandComplete ( 633 void); 634#endif 635 636#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTracePoint 637void 638AcpiOsTracePoint ( 639 ACPI_TRACE_EVENT_TYPE Type, 640 BOOLEAN Begin, 641 UINT8 *Aml, 642 char *Pathname); 643#endif 644 645 646/* 647 * Obtain ACPI table(s) 648 */ 649#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByName 650ACPI_STATUS 651AcpiOsGetTableByName ( 652 char *Signature, 653 UINT32 Instance, 654 ACPI_TABLE_HEADER **Table, 655 ACPI_PHYSICAL_ADDRESS *Address); 656#endif 657 658#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByIndex 659ACPI_STATUS 660AcpiOsGetTableByIndex ( 661 UINT32 Index, 662 ACPI_TABLE_HEADER **Table, 663 UINT32 *Instance, 664 ACPI_PHYSICAL_ADDRESS *Address); 665#endif 666 667#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByAddress 668ACPI_STATUS 669AcpiOsGetTableByAddress ( 670 ACPI_PHYSICAL_ADDRESS Address, 671 ACPI_TABLE_HEADER **Table); 672#endif 673 674 675/* 676 * Directory manipulation 677 */ 678#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsOpenDirectory 679void * 680AcpiOsOpenDirectory ( 681 char *Pathname, 682 char *WildcardSpec, 683 char RequestedFileType); 684#endif 685 686/* RequesteFileType values */ 687 688#define REQUEST_FILE_ONLY 0 689#define REQUEST_DIR_ONLY 1 690 691 692#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetNextFilename 693char * 694AcpiOsGetNextFilename ( 695 void *DirHandle); 696#endif 697 698#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCloseDirectory 699void 700AcpiOsCloseDirectory ( 701 void *DirHandle); 702#endif 703 704 705#endif /* __ACPIOSXF_H__ */ 706