Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:41

0001 /******************************************************************************
0002  *
0003  * Name: acpiosxf.h - All interfaces to the OS Services Layer (OSL). These
0004  *                    interfaces must be implemented by OSL to interface the
0005  *                    ACPI components to the host operating system.
0006  *
0007  *****************************************************************************/
0008 
0009 /******************************************************************************
0010  *
0011  * 1. Copyright Notice
0012  *
0013  * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp.
0014  * All rights reserved.
0015  *
0016  * 2. License
0017  *
0018  * 2.1. This is your license from Intel Corp. under its intellectual property
0019  * rights. You may have additional license terms from the party that provided
0020  * you this software, covering your right to use that party's intellectual
0021  * property rights.
0022  *
0023  * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
0024  * copy of the source code appearing in this file ("Covered Code") an
0025  * irrevocable, perpetual, worldwide license under Intel's copyrights in the
0026  * base code distributed originally by Intel ("Original Intel Code") to copy,
0027  * make derivatives, distribute, use and display any portion of the Covered
0028  * Code in any form, with the right to sublicense such rights; and
0029  *
0030  * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
0031  * license (with the right to sublicense), under only those claims of Intel
0032  * patents that are infringed by the Original Intel Code, to make, use, sell,
0033  * offer to sell, and import the Covered Code and derivative works thereof
0034  * solely to the minimum extent necessary to exercise the above copyright
0035  * license, and in no event shall the patent license extend to any additions
0036  * to or modifications of the Original Intel Code. No other license or right
0037  * is granted directly or by implication, estoppel or otherwise;
0038  *
0039  * The above copyright and patent license is granted only if the following
0040  * conditions are met:
0041  *
0042  * 3. Conditions
0043  *
0044  * 3.1. Redistribution of Source with Rights to Further Distribute Source.
0045  * Redistribution of source code of any substantial portion of the Covered
0046  * Code or modification with rights to further distribute source must include
0047  * the above Copyright Notice, the above License, this list of Conditions,
0048  * and the following Disclaimer and Export Compliance provision. In addition,
0049  * Licensee must cause all Covered Code to which Licensee contributes to
0050  * contain a file documenting the changes Licensee made to create that Covered
0051  * Code and the date of any change. Licensee must include in that file the
0052  * documentation of any changes made by any predecessor Licensee. Licensee
0053  * must include a prominent statement that the modification is derived,
0054  * directly or indirectly, from Original Intel Code.
0055  *
0056  * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
0057  * Redistribution of source code of any substantial portion of the Covered
0058  * Code or modification without rights to further distribute source must
0059  * include the following Disclaimer and Export Compliance provision in the
0060  * documentation and/or other materials provided with distribution. In
0061  * addition, Licensee may not authorize further sublicense of source of any
0062  * portion of the Covered Code, and must include terms to the effect that the
0063  * license from Licensee to its licensee is limited to the intellectual
0064  * property embodied in the software Licensee provides to its licensee, and
0065  * not to intellectual property embodied in modifications its licensee may
0066  * make.
0067  *
0068  * 3.3. Redistribution of Executable. Redistribution in executable form of any
0069  * substantial portion of the Covered Code or modification must reproduce the
0070  * above Copyright Notice, and the following Disclaimer and Export Compliance
0071  * provision in the documentation and/or other materials provided with the
0072  * distribution.
0073  *
0074  * 3.4. Intel retains all right, title, and interest in and to the Original
0075  * Intel Code.
0076  *
0077  * 3.5. Neither the name Intel nor any other trademark owned or controlled by
0078  * Intel shall be used in advertising or otherwise to promote the sale, use or
0079  * other dealings in products derived from or relating to the Covered Code
0080  * without prior written authorization from Intel.
0081  *
0082  * 4. Disclaimer and Export Compliance
0083  *
0084  * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
0085  * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
0086  * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
0087  * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
0088  * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
0089  * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
0090  * PARTICULAR PURPOSE.
0091  *
0092  * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
0093  * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
0094  * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
0095  * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
0096  * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
0097  * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
0098  * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
0099  * LIMITED REMEDY.
0100  *
0101  * 4.3. Licensee shall not export, either directly or indirectly, any of this
0102  * software or system incorporating such software without first obtaining any
0103  * required license or other approval from the U. S. Department of Commerce or
0104  * any other agency or department of the United States Government. In the
0105  * event Licensee exports any such software from the United States or
0106  * re-exports any such software from a foreign destination, Licensee shall
0107  * ensure that the distribution and export/re-export of the software is in
0108  * compliance with all laws, regulations, orders, or other restrictions of the
0109  * U.S. Export Administration Regulations. Licensee agrees that neither it nor
0110  * any of its subsidiaries will export/re-export any technical data, process,
0111  * software, or service, directly or indirectly, to any country for which the
0112  * United States government or any agency thereof requires an export license,
0113  * other governmental approval, or letter of assurance, without first obtaining
0114  * such license, approval or letter.
0115  *
0116  *****************************************************************************
0117  *
0118  * Alternatively, you may choose to be licensed under the terms of the
0119  * following license:
0120  *
0121  * Redistribution and use in source and binary forms, with or without
0122  * modification, are permitted provided that the following conditions
0123  * are met:
0124  * 1. Redistributions of source code must retain the above copyright
0125  *    notice, this list of conditions, and the following disclaimer,
0126  *    without modification.
0127  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
0128  *    substantially similar to the "NO WARRANTY" disclaimer below
0129  *    ("Disclaimer") and any redistribution must be conditioned upon
0130  *    including a substantially similar Disclaimer requirement for further
0131  *    binary redistribution.
0132  * 3. Neither the names of the above-listed copyright holders nor the names
0133  *    of any contributors may be used to endorse or promote products derived
0134  *    from this software without specific prior written permission.
0135  *
0136  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
0137  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
0138  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
0139  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
0140  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
0141  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
0142  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
0143  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
0144  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
0145  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
0146  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
0147  *
0148  * Alternatively, you may choose to be licensed under the terms of the
0149  * GNU General Public License ("GPL") version 2 as published by the Free
0150  * Software Foundation.
0151  *
0152  *****************************************************************************/
0153 
0154 #ifndef __ACPIOSXF_H__
0155 #define __ACPIOSXF_H__
0156 
0157 #include "platform/acenv.h"
0158 #include "actypes.h"
0159 
0160 
0161 /* Types for AcpiOsExecute */
0162 
0163 typedef enum
0164 {
0165     OSL_GLOBAL_LOCK_HANDLER,
0166     OSL_NOTIFY_HANDLER,
0167     OSL_GPE_HANDLER,
0168     OSL_DEBUGGER_MAIN_THREAD,
0169     OSL_DEBUGGER_EXEC_THREAD,
0170     OSL_EC_POLL_HANDLER,
0171     OSL_EC_BURST_HANDLER
0172 
0173 } ACPI_EXECUTE_TYPE;
0174 
0175 #define ACPI_NO_UNIT_LIMIT          ((UINT32) -1)
0176 #define ACPI_MUTEX_SEM              1
0177 
0178 
0179 /* Functions for AcpiOsSignal */
0180 
0181 #define ACPI_SIGNAL_FATAL           0
0182 #define ACPI_SIGNAL_BREAKPOINT      1
0183 
0184 typedef struct acpi_signal_fatal_info
0185 {
0186     UINT32                  Type;
0187     UINT32                  Code;
0188     UINT32                  Argument;
0189 
0190 } ACPI_SIGNAL_FATAL_INFO;
0191 
0192 
0193 /*
0194  * OSL Initialization and shutdown primitives
0195  */
0196 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInitialize
0197 ACPI_STATUS
0198 AcpiOsInitialize (
0199     void);
0200 #endif
0201 
0202 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTerminate
0203 ACPI_STATUS
0204 AcpiOsTerminate (
0205     void);
0206 #endif
0207 
0208 
0209 /*
0210  * ACPI Table interfaces
0211  */
0212 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetRootPointer
0213 ACPI_PHYSICAL_ADDRESS
0214 AcpiOsGetRootPointer (
0215     void);
0216 #endif
0217 
0218 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPredefinedOverride
0219 ACPI_STATUS
0220 AcpiOsPredefinedOverride (
0221     const ACPI_PREDEFINED_NAMES *InitVal,
0222     ACPI_STRING                 *NewVal);
0223 #endif
0224 
0225 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTableOverride
0226 ACPI_STATUS
0227 AcpiOsTableOverride (
0228     ACPI_TABLE_HEADER       *ExistingTable,
0229     ACPI_TABLE_HEADER       **NewTable);
0230 #endif
0231 
0232 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPhysicalTableOverride
0233 ACPI_STATUS
0234 AcpiOsPhysicalTableOverride (
0235     ACPI_TABLE_HEADER       *ExistingTable,
0236     ACPI_PHYSICAL_ADDRESS   *NewAddress,
0237     UINT32                  *NewTableLength);
0238 #endif
0239 
0240 
0241 /*
0242  * Spinlock primitives
0243  */
0244 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateLock
0245 ACPI_STATUS
0246 AcpiOsCreateLock (
0247     ACPI_SPINLOCK           *OutHandle);
0248 #endif
0249 
0250 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteLock
0251 void
0252 AcpiOsDeleteLock (
0253     ACPI_SPINLOCK           Handle);
0254 #endif
0255 
0256 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireLock
0257 ACPI_CPU_FLAGS
0258 AcpiOsAcquireLock (
0259     ACPI_SPINLOCK           Handle);
0260 #endif
0261 
0262 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseLock
0263 void
0264 AcpiOsReleaseLock (
0265     ACPI_SPINLOCK           Handle,
0266     ACPI_CPU_FLAGS          Flags);
0267 #endif
0268 
0269 
0270 /*
0271  * Semaphore primitives
0272  */
0273 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateSemaphore
0274 ACPI_STATUS
0275 AcpiOsCreateSemaphore (
0276     UINT32                  MaxUnits,
0277     UINT32                  InitialUnits,
0278     ACPI_SEMAPHORE          *OutHandle);
0279 #endif
0280 
0281 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteSemaphore
0282 ACPI_STATUS
0283 AcpiOsDeleteSemaphore (
0284     ACPI_SEMAPHORE          Handle);
0285 #endif
0286 
0287 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitSemaphore
0288 ACPI_STATUS
0289 AcpiOsWaitSemaphore (
0290     ACPI_SEMAPHORE          Handle,
0291     UINT32                  Units,
0292     UINT16                  Timeout);
0293 #endif
0294 
0295 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSignalSemaphore
0296 ACPI_STATUS
0297 AcpiOsSignalSemaphore (
0298     ACPI_SEMAPHORE          Handle,
0299     UINT32                  Units);
0300 #endif
0301 
0302 
0303 /*
0304  * Mutex primitives. May be configured to use semaphores instead via
0305  * ACPI_MUTEX_TYPE (see platform/acenv.h)
0306  */
0307 #if (ACPI_MUTEX_TYPE != ACPI_BINARY_SEMAPHORE)
0308 
0309 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateMutex
0310 ACPI_STATUS
0311 AcpiOsCreateMutex (
0312     ACPI_MUTEX              *OutHandle);
0313 #endif
0314 
0315 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteMutex
0316 void
0317 AcpiOsDeleteMutex (
0318     ACPI_MUTEX              Handle);
0319 #endif
0320 
0321 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireMutex
0322 ACPI_STATUS
0323 AcpiOsAcquireMutex (
0324     ACPI_MUTEX              Handle,
0325     UINT16                  Timeout);
0326 #endif
0327 
0328 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseMutex
0329 void
0330 AcpiOsReleaseMutex (
0331     ACPI_MUTEX              Handle);
0332 #endif
0333 
0334 #endif
0335 
0336 
0337 /*
0338  * Memory allocation and mapping
0339  */
0340 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAllocate
0341 void *
0342 AcpiOsAllocate (
0343     ACPI_SIZE               Size);
0344 #endif
0345 
0346 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAllocateZeroed
0347 void *
0348 AcpiOsAllocateZeroed (
0349     ACPI_SIZE               Size);
0350 #endif
0351 
0352 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsFree
0353 void
0354 AcpiOsFree (
0355     void *                  Memory);
0356 #endif
0357 
0358 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsMapMemory
0359 void *
0360 AcpiOsMapMemory (
0361     ACPI_PHYSICAL_ADDRESS   Where,
0362     ACPI_SIZE               Length);
0363 #endif
0364 
0365 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsUnmapMemory
0366 void
0367 AcpiOsUnmapMemory (
0368     void                    *LogicalAddress,
0369     ACPI_SIZE               Size);
0370 #endif
0371 
0372 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetPhysicalAddress
0373 ACPI_STATUS
0374 AcpiOsGetPhysicalAddress (
0375     void                    *LogicalAddress,
0376     ACPI_PHYSICAL_ADDRESS   *PhysicalAddress);
0377 #endif
0378 
0379 
0380 /*
0381  * Memory/Object Cache
0382  */
0383 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateCache
0384 ACPI_STATUS
0385 AcpiOsCreateCache (
0386     char                    *CacheName,
0387     UINT16                  ObjectSize,
0388     UINT16                  MaxDepth,
0389     ACPI_CACHE_T            **ReturnCache);
0390 #endif
0391 
0392 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteCache
0393 ACPI_STATUS
0394 AcpiOsDeleteCache (
0395     ACPI_CACHE_T            *Cache);
0396 #endif
0397 
0398 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPurgeCache
0399 ACPI_STATUS
0400 AcpiOsPurgeCache (
0401     ACPI_CACHE_T            *Cache);
0402 #endif
0403 
0404 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireObject
0405 void *
0406 AcpiOsAcquireObject (
0407     ACPI_CACHE_T            *Cache);
0408 #endif
0409 
0410 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseObject
0411 ACPI_STATUS
0412 AcpiOsReleaseObject (
0413     ACPI_CACHE_T            *Cache,
0414     void                    *Object);
0415 #endif
0416 
0417 
0418 /*
0419  * Interrupt handlers
0420  */
0421 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInstallInterruptHandler
0422 ACPI_STATUS
0423 AcpiOsInstallInterruptHandler (
0424     UINT32                  InterruptNumber,
0425     ACPI_OSD_HANDLER        ServiceRoutine,
0426     void                    *Context);
0427 #endif
0428 
0429 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsRemoveInterruptHandler
0430 ACPI_STATUS
0431 AcpiOsRemoveInterruptHandler (
0432     UINT32                  InterruptNumber,
0433     ACPI_OSD_HANDLER        ServiceRoutine);
0434 #endif
0435 
0436 
0437 /*
0438  * Threads and Scheduling
0439  */
0440 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetThreadId
0441 ACPI_THREAD_ID
0442 AcpiOsGetThreadId (
0443     void);
0444 #endif
0445 
0446 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsExecute
0447 ACPI_STATUS
0448 AcpiOsExecute (
0449     ACPI_EXECUTE_TYPE       Type,
0450     ACPI_OSD_EXEC_CALLBACK  Function,
0451     void                    *Context);
0452 #endif
0453 
0454 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitEventsComplete
0455 void
0456 AcpiOsWaitEventsComplete (
0457     void);
0458 #endif
0459 
0460 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSleep
0461 void
0462 AcpiOsSleep (
0463     UINT64                  Milliseconds);
0464 #endif
0465 
0466 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsStall
0467 void
0468 AcpiOsStall (
0469     UINT32                  Microseconds);
0470 #endif
0471 
0472 
0473 /*
0474  * Platform and hardware-independent I/O interfaces
0475  */
0476 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadPort
0477 ACPI_STATUS
0478 AcpiOsReadPort (
0479     ACPI_IO_ADDRESS         Address,
0480     UINT32                  *Value,
0481     UINT32                  Width);
0482 #endif
0483 
0484 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritePort
0485 ACPI_STATUS
0486 AcpiOsWritePort (
0487     ACPI_IO_ADDRESS         Address,
0488     UINT32                  Value,
0489     UINT32                  Width);
0490 #endif
0491 
0492 
0493 /*
0494  * Platform and hardware-independent physical memory interfaces
0495  */
0496 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadMemory
0497 ACPI_STATUS
0498 AcpiOsReadMemory (
0499     ACPI_PHYSICAL_ADDRESS   Address,
0500     UINT64                  *Value,
0501     UINT32                  Width);
0502 #endif
0503 
0504 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWriteMemory
0505 ACPI_STATUS
0506 AcpiOsWriteMemory (
0507     ACPI_PHYSICAL_ADDRESS   Address,
0508     UINT64                  Value,
0509     UINT32                  Width);
0510 #endif
0511 
0512 
0513 /*
0514  * Platform and hardware-independent PCI configuration space access
0515  * Note: Can't use "Register" as a parameter, changed to "Reg" --
0516  * certain compilers complain.
0517  */
0518 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadPciConfiguration
0519 ACPI_STATUS
0520 AcpiOsReadPciConfiguration (
0521     ACPI_PCI_ID             *PciId,
0522     UINT32                  Reg,
0523     UINT64                  *Value,
0524     UINT32                  Width);
0525 #endif
0526 
0527 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritePciConfiguration
0528 ACPI_STATUS
0529 AcpiOsWritePciConfiguration (
0530     ACPI_PCI_ID             *PciId,
0531     UINT32                  Reg,
0532     UINT64                  Value,
0533     UINT32                  Width);
0534 #endif
0535 
0536 
0537 /*
0538  * Miscellaneous
0539  */
0540 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadable
0541 BOOLEAN
0542 AcpiOsReadable (
0543     void                    *Pointer,
0544     ACPI_SIZE               Length);
0545 #endif
0546 
0547 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritable
0548 BOOLEAN
0549 AcpiOsWritable (
0550     void                    *Pointer,
0551     ACPI_SIZE               Length);
0552 #endif
0553 
0554 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTimer
0555 UINT64
0556 AcpiOsGetTimer (
0557     void);
0558 #endif
0559 
0560 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSignal
0561 ACPI_STATUS
0562 AcpiOsSignal (
0563     UINT32                  Function,
0564     void                    *Info);
0565 #endif
0566 
0567 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsEnterSleep
0568 ACPI_STATUS
0569 AcpiOsEnterSleep (
0570     UINT8                   SleepState,
0571     UINT32                  RegaValue,
0572     UINT32                  RegbValue);
0573 #endif
0574 
0575 
0576 /*
0577  * Debug print routines
0578  */
0579 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPrintf
0580 ACPI_PRINTF_LIKE (1)
0581 void ACPI_INTERNAL_VAR_XFACE
0582 AcpiOsPrintf (
0583     const char              *Format,
0584     ...);
0585 #endif
0586 
0587 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsVprintf
0588 void
0589 AcpiOsVprintf (
0590     const char              *Format,
0591     va_list                 Args);
0592 #endif
0593 
0594 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsRedirectOutput
0595 void
0596 AcpiOsRedirectOutput (
0597     void                    *Destination);
0598 #endif
0599 
0600 
0601 /*
0602  * Debug IO
0603  */
0604 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetLine
0605 ACPI_STATUS
0606 AcpiOsGetLine (
0607     char                    *Buffer,
0608     UINT32                  BufferLength,
0609     UINT32                  *BytesRead);
0610 #endif
0611 
0612 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInitializeDebugger
0613 ACPI_STATUS
0614 AcpiOsInitializeDebugger (
0615     void);
0616 #endif
0617 
0618 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTerminateDebugger
0619 void
0620 AcpiOsTerminateDebugger (
0621     void);
0622 #endif
0623 
0624 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitCommandReady
0625 ACPI_STATUS
0626 AcpiOsWaitCommandReady (
0627     void);
0628 #endif
0629 
0630 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsNotifyCommandComplete
0631 ACPI_STATUS
0632 AcpiOsNotifyCommandComplete (
0633     void);
0634 #endif
0635 
0636 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTracePoint
0637 void
0638 AcpiOsTracePoint (
0639     ACPI_TRACE_EVENT_TYPE   Type,
0640     BOOLEAN                 Begin,
0641     UINT8                   *Aml,
0642     char                    *Pathname);
0643 #endif
0644 
0645 
0646 /*
0647  * Obtain ACPI table(s)
0648  */
0649 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByName
0650 ACPI_STATUS
0651 AcpiOsGetTableByName (
0652     char                    *Signature,
0653     UINT32                  Instance,
0654     ACPI_TABLE_HEADER       **Table,
0655     ACPI_PHYSICAL_ADDRESS   *Address);
0656 #endif
0657 
0658 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByIndex
0659 ACPI_STATUS
0660 AcpiOsGetTableByIndex (
0661     UINT32                  Index,
0662     ACPI_TABLE_HEADER       **Table,
0663     UINT32                  *Instance,
0664     ACPI_PHYSICAL_ADDRESS   *Address);
0665 #endif
0666 
0667 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByAddress
0668 ACPI_STATUS
0669 AcpiOsGetTableByAddress (
0670     ACPI_PHYSICAL_ADDRESS   Address,
0671     ACPI_TABLE_HEADER       **Table);
0672 #endif
0673 
0674 
0675 /*
0676  * Directory manipulation
0677  */
0678 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsOpenDirectory
0679 void *
0680 AcpiOsOpenDirectory (
0681     char                    *Pathname,
0682     char                    *WildcardSpec,
0683     char                    RequestedFileType);
0684 #endif
0685 
0686 /* RequesteFileType values */
0687 
0688 #define REQUEST_FILE_ONLY                   0
0689 #define REQUEST_DIR_ONLY                    1
0690 
0691 
0692 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetNextFilename
0693 char *
0694 AcpiOsGetNextFilename (
0695     void                    *DirHandle);
0696 #endif
0697 
0698 #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCloseDirectory
0699 void
0700 AcpiOsCloseDirectory (
0701     void                    *DirHandle);
0702 #endif
0703 
0704 
0705 #endif /* __ACPIOSXF_H__ */