1433d6423SLionel Sambuc /****************************************************************************** 2433d6423SLionel Sambuc * 3433d6423SLionel Sambuc * Name: acpiosxf.h - All interfaces to the OS Services Layer (OSL). These 4433d6423SLionel Sambuc * interfaces must be implemented by OSL to interface the 5433d6423SLionel Sambuc * ACPI components to the host operating system. 6433d6423SLionel Sambuc * 7433d6423SLionel Sambuc *****************************************************************************/ 8433d6423SLionel Sambuc 9*29492bb7SDavid van Moolenbroek /* 10*29492bb7SDavid van Moolenbroek * Copyright (C) 2000 - 2014, Intel Corp. 11433d6423SLionel Sambuc * All rights reserved. 12433d6423SLionel Sambuc * 13*29492bb7SDavid van Moolenbroek * Redistribution and use in source and binary forms, with or without 14*29492bb7SDavid van Moolenbroek * modification, are permitted provided that the following conditions 15*29492bb7SDavid van Moolenbroek * are met: 16*29492bb7SDavid van Moolenbroek * 1. Redistributions of source code must retain the above copyright 17*29492bb7SDavid van Moolenbroek * notice, this list of conditions, and the following disclaimer, 18*29492bb7SDavid van Moolenbroek * without modification. 19*29492bb7SDavid van Moolenbroek * 2. Redistributions in binary form must reproduce at minimum a disclaimer 20*29492bb7SDavid van Moolenbroek * substantially similar to the "NO WARRANTY" disclaimer below 21*29492bb7SDavid van Moolenbroek * ("Disclaimer") and any redistribution must be conditioned upon 22*29492bb7SDavid van Moolenbroek * including a substantially similar Disclaimer requirement for further 23*29492bb7SDavid van Moolenbroek * binary redistribution. 24*29492bb7SDavid van Moolenbroek * 3. Neither the names of the above-listed copyright holders nor the names 25*29492bb7SDavid van Moolenbroek * of any contributors may be used to endorse or promote products derived 26*29492bb7SDavid van Moolenbroek * from this software without specific prior written permission. 27433d6423SLionel Sambuc * 28*29492bb7SDavid van Moolenbroek * Alternatively, this software may be distributed under the terms of the 29*29492bb7SDavid van Moolenbroek * GNU General Public License ("GPL") version 2 as published by the Free 30*29492bb7SDavid van Moolenbroek * Software Foundation. 31433d6423SLionel Sambuc * 32*29492bb7SDavid van Moolenbroek * NO WARRANTY 33*29492bb7SDavid van Moolenbroek * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 34*29492bb7SDavid van Moolenbroek * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 35*29492bb7SDavid van Moolenbroek * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 36*29492bb7SDavid van Moolenbroek * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 37*29492bb7SDavid van Moolenbroek * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 38*29492bb7SDavid van Moolenbroek * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 39*29492bb7SDavid van Moolenbroek * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 40*29492bb7SDavid van Moolenbroek * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 41*29492bb7SDavid van Moolenbroek * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 42*29492bb7SDavid van Moolenbroek * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 43*29492bb7SDavid van Moolenbroek * POSSIBILITY OF SUCH DAMAGES. 44*29492bb7SDavid van Moolenbroek */ 45433d6423SLionel Sambuc 46433d6423SLionel Sambuc #ifndef __ACPIOSXF_H__ 47433d6423SLionel Sambuc #define __ACPIOSXF_H__ 48433d6423SLionel Sambuc 49433d6423SLionel Sambuc #include "platform/acenv.h" 50433d6423SLionel Sambuc #include "actypes.h" 51433d6423SLionel Sambuc 52433d6423SLionel Sambuc 53433d6423SLionel Sambuc /* Types for AcpiOsExecute */ 54433d6423SLionel Sambuc 55433d6423SLionel Sambuc typedef enum 56433d6423SLionel Sambuc { 57433d6423SLionel Sambuc OSL_GLOBAL_LOCK_HANDLER, 58433d6423SLionel Sambuc OSL_NOTIFY_HANDLER, 59433d6423SLionel Sambuc OSL_GPE_HANDLER, 60433d6423SLionel Sambuc OSL_DEBUGGER_THREAD, 61433d6423SLionel Sambuc OSL_EC_POLL_HANDLER, 62433d6423SLionel Sambuc OSL_EC_BURST_HANDLER 63433d6423SLionel Sambuc 64433d6423SLionel Sambuc } ACPI_EXECUTE_TYPE; 65433d6423SLionel Sambuc 66433d6423SLionel Sambuc #define ACPI_NO_UNIT_LIMIT ((UINT32) -1) 67433d6423SLionel Sambuc #define ACPI_MUTEX_SEM 1 68433d6423SLionel Sambuc 69433d6423SLionel Sambuc 70433d6423SLionel Sambuc /* Functions for AcpiOsSignal */ 71433d6423SLionel Sambuc 72433d6423SLionel Sambuc #define ACPI_SIGNAL_FATAL 0 73433d6423SLionel Sambuc #define ACPI_SIGNAL_BREAKPOINT 1 74433d6423SLionel Sambuc 75433d6423SLionel Sambuc typedef struct acpi_signal_fatal_info 76433d6423SLionel Sambuc { 77433d6423SLionel Sambuc UINT32 Type; 78433d6423SLionel Sambuc UINT32 Code; 79433d6423SLionel Sambuc UINT32 Argument; 80433d6423SLionel Sambuc 81433d6423SLionel Sambuc } ACPI_SIGNAL_FATAL_INFO; 82433d6423SLionel Sambuc 83433d6423SLionel Sambuc 84433d6423SLionel Sambuc /* 85433d6423SLionel Sambuc * OSL Initialization and shutdown primitives 86433d6423SLionel Sambuc */ 87*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInitialize 88433d6423SLionel Sambuc ACPI_STATUS 89433d6423SLionel Sambuc AcpiOsInitialize ( 90433d6423SLionel Sambuc void); 91*29492bb7SDavid van Moolenbroek #endif 92433d6423SLionel Sambuc 93*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTerminate 94433d6423SLionel Sambuc ACPI_STATUS 95433d6423SLionel Sambuc AcpiOsTerminate ( 96433d6423SLionel Sambuc void); 97*29492bb7SDavid van Moolenbroek #endif 98433d6423SLionel Sambuc 99433d6423SLionel Sambuc 100433d6423SLionel Sambuc /* 101433d6423SLionel Sambuc * ACPI Table interfaces 102433d6423SLionel Sambuc */ 103*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetRootPointer 104433d6423SLionel Sambuc ACPI_PHYSICAL_ADDRESS 105433d6423SLionel Sambuc AcpiOsGetRootPointer ( 106433d6423SLionel Sambuc void); 107*29492bb7SDavid van Moolenbroek #endif 108433d6423SLionel Sambuc 109*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPredefinedOverride 110433d6423SLionel Sambuc ACPI_STATUS 111433d6423SLionel Sambuc AcpiOsPredefinedOverride ( 112433d6423SLionel Sambuc const ACPI_PREDEFINED_NAMES *InitVal, 113433d6423SLionel Sambuc ACPI_STRING *NewVal); 114*29492bb7SDavid van Moolenbroek #endif 115433d6423SLionel Sambuc 116*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTableOverride 117433d6423SLionel Sambuc ACPI_STATUS 118433d6423SLionel Sambuc AcpiOsTableOverride ( 119433d6423SLionel Sambuc ACPI_TABLE_HEADER *ExistingTable, 120433d6423SLionel Sambuc ACPI_TABLE_HEADER **NewTable); 121*29492bb7SDavid van Moolenbroek #endif 122*29492bb7SDavid van Moolenbroek 123*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPhysicalTableOverride 124*29492bb7SDavid van Moolenbroek ACPI_STATUS 125*29492bb7SDavid van Moolenbroek AcpiOsPhysicalTableOverride ( 126*29492bb7SDavid van Moolenbroek ACPI_TABLE_HEADER *ExistingTable, 127*29492bb7SDavid van Moolenbroek ACPI_PHYSICAL_ADDRESS *NewAddress, 128*29492bb7SDavid van Moolenbroek UINT32 *NewTableLength); 129*29492bb7SDavid van Moolenbroek #endif 130433d6423SLionel Sambuc 131433d6423SLionel Sambuc 132433d6423SLionel Sambuc /* 133433d6423SLionel Sambuc * Spinlock primitives 134433d6423SLionel Sambuc */ 135*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateLock 136433d6423SLionel Sambuc ACPI_STATUS 137433d6423SLionel Sambuc AcpiOsCreateLock ( 138433d6423SLionel Sambuc ACPI_SPINLOCK *OutHandle); 139*29492bb7SDavid van Moolenbroek #endif 140433d6423SLionel Sambuc 141*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteLock 142433d6423SLionel Sambuc void 143433d6423SLionel Sambuc AcpiOsDeleteLock ( 144433d6423SLionel Sambuc ACPI_SPINLOCK Handle); 145*29492bb7SDavid van Moolenbroek #endif 146433d6423SLionel Sambuc 147*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireLock 148433d6423SLionel Sambuc ACPI_CPU_FLAGS 149433d6423SLionel Sambuc AcpiOsAcquireLock ( 150433d6423SLionel Sambuc ACPI_SPINLOCK Handle); 151*29492bb7SDavid van Moolenbroek #endif 152433d6423SLionel Sambuc 153*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseLock 154433d6423SLionel Sambuc void 155433d6423SLionel Sambuc AcpiOsReleaseLock ( 156433d6423SLionel Sambuc ACPI_SPINLOCK Handle, 157433d6423SLionel Sambuc ACPI_CPU_FLAGS Flags); 158*29492bb7SDavid van Moolenbroek #endif 159433d6423SLionel Sambuc 160433d6423SLionel Sambuc 161433d6423SLionel Sambuc /* 162433d6423SLionel Sambuc * Semaphore primitives 163433d6423SLionel Sambuc */ 164*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateSemaphore 165433d6423SLionel Sambuc ACPI_STATUS 166433d6423SLionel Sambuc AcpiOsCreateSemaphore ( 167433d6423SLionel Sambuc UINT32 MaxUnits, 168433d6423SLionel Sambuc UINT32 InitialUnits, 169433d6423SLionel Sambuc ACPI_SEMAPHORE *OutHandle); 170*29492bb7SDavid van Moolenbroek #endif 171433d6423SLionel Sambuc 172*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteSemaphore 173433d6423SLionel Sambuc ACPI_STATUS 174433d6423SLionel Sambuc AcpiOsDeleteSemaphore ( 175433d6423SLionel Sambuc ACPI_SEMAPHORE Handle); 176*29492bb7SDavid van Moolenbroek #endif 177433d6423SLionel Sambuc 178*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitSemaphore 179433d6423SLionel Sambuc ACPI_STATUS 180433d6423SLionel Sambuc AcpiOsWaitSemaphore ( 181433d6423SLionel Sambuc ACPI_SEMAPHORE Handle, 182433d6423SLionel Sambuc UINT32 Units, 183433d6423SLionel Sambuc UINT16 Timeout); 184*29492bb7SDavid van Moolenbroek #endif 185433d6423SLionel Sambuc 186*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSignalSemaphore 187433d6423SLionel Sambuc ACPI_STATUS 188433d6423SLionel Sambuc AcpiOsSignalSemaphore ( 189433d6423SLionel Sambuc ACPI_SEMAPHORE Handle, 190433d6423SLionel Sambuc UINT32 Units); 191*29492bb7SDavid van Moolenbroek #endif 192433d6423SLionel Sambuc 193433d6423SLionel Sambuc 194433d6423SLionel Sambuc /* 195433d6423SLionel Sambuc * Mutex primitives. May be configured to use semaphores instead via 196433d6423SLionel Sambuc * ACPI_MUTEX_TYPE (see platform/acenv.h) 197433d6423SLionel Sambuc */ 198433d6423SLionel Sambuc #if (ACPI_MUTEX_TYPE != ACPI_BINARY_SEMAPHORE) 199433d6423SLionel Sambuc 200*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateMutex 201433d6423SLionel Sambuc ACPI_STATUS 202433d6423SLionel Sambuc AcpiOsCreateMutex ( 203433d6423SLionel Sambuc ACPI_MUTEX *OutHandle); 204*29492bb7SDavid van Moolenbroek #endif 205433d6423SLionel Sambuc 206*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteMutex 207433d6423SLionel Sambuc void 208433d6423SLionel Sambuc AcpiOsDeleteMutex ( 209433d6423SLionel Sambuc ACPI_MUTEX Handle); 210*29492bb7SDavid van Moolenbroek #endif 211433d6423SLionel Sambuc 212*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireMutex 213433d6423SLionel Sambuc ACPI_STATUS 214433d6423SLionel Sambuc AcpiOsAcquireMutex ( 215433d6423SLionel Sambuc ACPI_MUTEX Handle, 216433d6423SLionel Sambuc UINT16 Timeout); 217*29492bb7SDavid van Moolenbroek #endif 218433d6423SLionel Sambuc 219*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseMutex 220433d6423SLionel Sambuc void 221433d6423SLionel Sambuc AcpiOsReleaseMutex ( 222433d6423SLionel Sambuc ACPI_MUTEX Handle); 223433d6423SLionel Sambuc #endif 224433d6423SLionel Sambuc 225*29492bb7SDavid van Moolenbroek #endif 226*29492bb7SDavid van Moolenbroek 227433d6423SLionel Sambuc 228433d6423SLionel Sambuc /* 229433d6423SLionel Sambuc * Memory allocation and mapping 230433d6423SLionel Sambuc */ 231*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAllocate 232433d6423SLionel Sambuc void * 233433d6423SLionel Sambuc AcpiOsAllocate ( 234433d6423SLionel Sambuc ACPI_SIZE Size); 235*29492bb7SDavid van Moolenbroek #endif 236433d6423SLionel Sambuc 237*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAllocateZeroed 238*29492bb7SDavid van Moolenbroek void * 239*29492bb7SDavid van Moolenbroek AcpiOsAllocateZeroed ( 240*29492bb7SDavid van Moolenbroek ACPI_SIZE Size); 241*29492bb7SDavid van Moolenbroek #endif 242*29492bb7SDavid van Moolenbroek 243*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsFree 244433d6423SLionel Sambuc void 245433d6423SLionel Sambuc AcpiOsFree ( 246433d6423SLionel Sambuc void * Memory); 247*29492bb7SDavid van Moolenbroek #endif 248433d6423SLionel Sambuc 249*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsMapMemory 250433d6423SLionel Sambuc void * 251433d6423SLionel Sambuc AcpiOsMapMemory ( 252433d6423SLionel Sambuc ACPI_PHYSICAL_ADDRESS Where, 253433d6423SLionel Sambuc ACPI_SIZE Length); 254*29492bb7SDavid van Moolenbroek #endif 255433d6423SLionel Sambuc 256*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsUnmapMemory 257433d6423SLionel Sambuc void 258433d6423SLionel Sambuc AcpiOsUnmapMemory ( 259433d6423SLionel Sambuc void *LogicalAddress, 260433d6423SLionel Sambuc ACPI_SIZE Size); 261*29492bb7SDavid van Moolenbroek #endif 262433d6423SLionel Sambuc 263*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetPhysicalAddress 264433d6423SLionel Sambuc ACPI_STATUS 265433d6423SLionel Sambuc AcpiOsGetPhysicalAddress ( 266433d6423SLionel Sambuc void *LogicalAddress, 267433d6423SLionel Sambuc ACPI_PHYSICAL_ADDRESS *PhysicalAddress); 268*29492bb7SDavid van Moolenbroek #endif 269433d6423SLionel Sambuc 270433d6423SLionel Sambuc 271433d6423SLionel Sambuc /* 272433d6423SLionel Sambuc * Memory/Object Cache 273433d6423SLionel Sambuc */ 274*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateCache 275433d6423SLionel Sambuc ACPI_STATUS 276433d6423SLionel Sambuc AcpiOsCreateCache ( 277433d6423SLionel Sambuc char *CacheName, 278433d6423SLionel Sambuc UINT16 ObjectSize, 279433d6423SLionel Sambuc UINT16 MaxDepth, 280433d6423SLionel Sambuc ACPI_CACHE_T **ReturnCache); 281*29492bb7SDavid van Moolenbroek #endif 282433d6423SLionel Sambuc 283*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteCache 284433d6423SLionel Sambuc ACPI_STATUS 285433d6423SLionel Sambuc AcpiOsDeleteCache ( 286433d6423SLionel Sambuc ACPI_CACHE_T *Cache); 287*29492bb7SDavid van Moolenbroek #endif 288433d6423SLionel Sambuc 289*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPurgeCache 290433d6423SLionel Sambuc ACPI_STATUS 291433d6423SLionel Sambuc AcpiOsPurgeCache ( 292433d6423SLionel Sambuc ACPI_CACHE_T *Cache); 293*29492bb7SDavid van Moolenbroek #endif 294433d6423SLionel Sambuc 295*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireObject 296433d6423SLionel Sambuc void * 297433d6423SLionel Sambuc AcpiOsAcquireObject ( 298433d6423SLionel Sambuc ACPI_CACHE_T *Cache); 299*29492bb7SDavid van Moolenbroek #endif 300433d6423SLionel Sambuc 301*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseObject 302433d6423SLionel Sambuc ACPI_STATUS 303433d6423SLionel Sambuc AcpiOsReleaseObject ( 304433d6423SLionel Sambuc ACPI_CACHE_T *Cache, 305433d6423SLionel Sambuc void *Object); 306*29492bb7SDavid van Moolenbroek #endif 307433d6423SLionel Sambuc 308433d6423SLionel Sambuc 309433d6423SLionel Sambuc /* 310433d6423SLionel Sambuc * Interrupt handlers 311433d6423SLionel Sambuc */ 312*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInstallInterruptHandler 313433d6423SLionel Sambuc ACPI_STATUS 314433d6423SLionel Sambuc AcpiOsInstallInterruptHandler ( 315433d6423SLionel Sambuc UINT32 InterruptNumber, 316433d6423SLionel Sambuc ACPI_OSD_HANDLER ServiceRoutine, 317433d6423SLionel Sambuc void *Context); 318*29492bb7SDavid van Moolenbroek #endif 319433d6423SLionel Sambuc 320*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsRemoveInterruptHandler 321433d6423SLionel Sambuc ACPI_STATUS 322433d6423SLionel Sambuc AcpiOsRemoveInterruptHandler ( 323433d6423SLionel Sambuc UINT32 InterruptNumber, 324433d6423SLionel Sambuc ACPI_OSD_HANDLER ServiceRoutine); 325*29492bb7SDavid van Moolenbroek #endif 326433d6423SLionel Sambuc 327433d6423SLionel Sambuc 328433d6423SLionel Sambuc /* 329433d6423SLionel Sambuc * Threads and Scheduling 330433d6423SLionel Sambuc */ 331*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetThreadId 332433d6423SLionel Sambuc ACPI_THREAD_ID 333433d6423SLionel Sambuc AcpiOsGetThreadId ( 334433d6423SLionel Sambuc void); 335*29492bb7SDavid van Moolenbroek #endif 336433d6423SLionel Sambuc 337*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsExecute 338433d6423SLionel Sambuc ACPI_STATUS 339433d6423SLionel Sambuc AcpiOsExecute ( 340433d6423SLionel Sambuc ACPI_EXECUTE_TYPE Type, 341433d6423SLionel Sambuc ACPI_OSD_EXEC_CALLBACK Function, 342433d6423SLionel Sambuc void *Context); 343*29492bb7SDavid van Moolenbroek #endif 344433d6423SLionel Sambuc 345*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitEventsComplete 346433d6423SLionel Sambuc void 347433d6423SLionel Sambuc AcpiOsWaitEventsComplete ( 348*29492bb7SDavid van Moolenbroek void); 349*29492bb7SDavid van Moolenbroek #endif 350433d6423SLionel Sambuc 351*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSleep 352433d6423SLionel Sambuc void 353433d6423SLionel Sambuc AcpiOsSleep ( 354433d6423SLionel Sambuc UINT64 Milliseconds); 355*29492bb7SDavid van Moolenbroek #endif 356433d6423SLionel Sambuc 357*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsStall 358433d6423SLionel Sambuc void 359433d6423SLionel Sambuc AcpiOsStall ( 360433d6423SLionel Sambuc UINT32 Microseconds); 361*29492bb7SDavid van Moolenbroek #endif 362433d6423SLionel Sambuc 363433d6423SLionel Sambuc 364433d6423SLionel Sambuc /* 365433d6423SLionel Sambuc * Platform and hardware-independent I/O interfaces 366433d6423SLionel Sambuc */ 367*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadPort 368433d6423SLionel Sambuc ACPI_STATUS 369433d6423SLionel Sambuc AcpiOsReadPort ( 370433d6423SLionel Sambuc ACPI_IO_ADDRESS Address, 371433d6423SLionel Sambuc UINT32 *Value, 372433d6423SLionel Sambuc UINT32 Width); 373*29492bb7SDavid van Moolenbroek #endif 374433d6423SLionel Sambuc 375*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritePort 376433d6423SLionel Sambuc ACPI_STATUS 377433d6423SLionel Sambuc AcpiOsWritePort ( 378433d6423SLionel Sambuc ACPI_IO_ADDRESS Address, 379433d6423SLionel Sambuc UINT32 Value, 380433d6423SLionel Sambuc UINT32 Width); 381*29492bb7SDavid van Moolenbroek #endif 382433d6423SLionel Sambuc 383433d6423SLionel Sambuc 384433d6423SLionel Sambuc /* 385433d6423SLionel Sambuc * Platform and hardware-independent physical memory interfaces 386433d6423SLionel Sambuc */ 387*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadMemory 388433d6423SLionel Sambuc ACPI_STATUS 389433d6423SLionel Sambuc AcpiOsReadMemory ( 390433d6423SLionel Sambuc ACPI_PHYSICAL_ADDRESS Address, 391*29492bb7SDavid van Moolenbroek UINT64 *Value, 392433d6423SLionel Sambuc UINT32 Width); 393*29492bb7SDavid van Moolenbroek #endif 394433d6423SLionel Sambuc 395*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWriteMemory 396433d6423SLionel Sambuc ACPI_STATUS 397433d6423SLionel Sambuc AcpiOsWriteMemory ( 398433d6423SLionel Sambuc ACPI_PHYSICAL_ADDRESS Address, 399*29492bb7SDavid van Moolenbroek UINT64 Value, 400433d6423SLionel Sambuc UINT32 Width); 401*29492bb7SDavid van Moolenbroek #endif 402433d6423SLionel Sambuc 403433d6423SLionel Sambuc 404433d6423SLionel Sambuc /* 405433d6423SLionel Sambuc * Platform and hardware-independent PCI configuration space access 406433d6423SLionel Sambuc * Note: Can't use "Register" as a parameter, changed to "Reg" -- 407433d6423SLionel Sambuc * certain compilers complain. 408433d6423SLionel Sambuc */ 409*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadPciConfiguration 410433d6423SLionel Sambuc ACPI_STATUS 411433d6423SLionel Sambuc AcpiOsReadPciConfiguration ( 412433d6423SLionel Sambuc ACPI_PCI_ID *PciId, 413433d6423SLionel Sambuc UINT32 Reg, 414*29492bb7SDavid van Moolenbroek UINT64 *Value, 415433d6423SLionel Sambuc UINT32 Width); 416*29492bb7SDavid van Moolenbroek #endif 417433d6423SLionel Sambuc 418*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritePciConfiguration 419433d6423SLionel Sambuc ACPI_STATUS 420433d6423SLionel Sambuc AcpiOsWritePciConfiguration ( 421433d6423SLionel Sambuc ACPI_PCI_ID *PciId, 422433d6423SLionel Sambuc UINT32 Reg, 423433d6423SLionel Sambuc UINT64 Value, 424433d6423SLionel Sambuc UINT32 Width); 425*29492bb7SDavid van Moolenbroek #endif 426433d6423SLionel Sambuc 427433d6423SLionel Sambuc 428433d6423SLionel Sambuc /* 429433d6423SLionel Sambuc * Miscellaneous 430433d6423SLionel Sambuc */ 431*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadable 432433d6423SLionel Sambuc BOOLEAN 433433d6423SLionel Sambuc AcpiOsReadable ( 434433d6423SLionel Sambuc void *Pointer, 435433d6423SLionel Sambuc ACPI_SIZE Length); 436*29492bb7SDavid van Moolenbroek #endif 437433d6423SLionel Sambuc 438*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritable 439433d6423SLionel Sambuc BOOLEAN 440433d6423SLionel Sambuc AcpiOsWritable ( 441433d6423SLionel Sambuc void *Pointer, 442433d6423SLionel Sambuc ACPI_SIZE Length); 443*29492bb7SDavid van Moolenbroek #endif 444433d6423SLionel Sambuc 445*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTimer 446433d6423SLionel Sambuc UINT64 447433d6423SLionel Sambuc AcpiOsGetTimer ( 448433d6423SLionel Sambuc void); 449*29492bb7SDavid van Moolenbroek #endif 450433d6423SLionel Sambuc 451*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSignal 452433d6423SLionel Sambuc ACPI_STATUS 453433d6423SLionel Sambuc AcpiOsSignal ( 454433d6423SLionel Sambuc UINT32 Function, 455433d6423SLionel Sambuc void *Info); 456*29492bb7SDavid van Moolenbroek #endif 457433d6423SLionel Sambuc 458433d6423SLionel Sambuc 459433d6423SLionel Sambuc /* 460433d6423SLionel Sambuc * Debug print routines 461433d6423SLionel Sambuc */ 462*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPrintf 463433d6423SLionel Sambuc void ACPI_INTERNAL_VAR_XFACE 464433d6423SLionel Sambuc AcpiOsPrintf ( 465433d6423SLionel Sambuc const char *Format, 466433d6423SLionel Sambuc ...); 467*29492bb7SDavid van Moolenbroek #endif 468433d6423SLionel Sambuc 469*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsVprintf 470433d6423SLionel Sambuc void 471433d6423SLionel Sambuc AcpiOsVprintf ( 472433d6423SLionel Sambuc const char *Format, 473433d6423SLionel Sambuc va_list Args); 474*29492bb7SDavid van Moolenbroek #endif 475433d6423SLionel Sambuc 476*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsRedirectOutput 477433d6423SLionel Sambuc void 478433d6423SLionel Sambuc AcpiOsRedirectOutput ( 479433d6423SLionel Sambuc void *Destination); 480*29492bb7SDavid van Moolenbroek #endif 481433d6423SLionel Sambuc 482433d6423SLionel Sambuc 483433d6423SLionel Sambuc /* 484433d6423SLionel Sambuc * Debug input 485433d6423SLionel Sambuc */ 486*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetLine 487*29492bb7SDavid van Moolenbroek ACPI_STATUS 488433d6423SLionel Sambuc AcpiOsGetLine ( 489*29492bb7SDavid van Moolenbroek char *Buffer, 490*29492bb7SDavid van Moolenbroek UINT32 BufferLength, 491*29492bb7SDavid van Moolenbroek UINT32 *BytesRead); 492*29492bb7SDavid van Moolenbroek #endif 493*29492bb7SDavid van Moolenbroek 494*29492bb7SDavid van Moolenbroek 495*29492bb7SDavid van Moolenbroek /* 496*29492bb7SDavid van Moolenbroek * Obtain ACPI table(s) 497*29492bb7SDavid van Moolenbroek */ 498*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByName 499*29492bb7SDavid van Moolenbroek ACPI_STATUS 500*29492bb7SDavid van Moolenbroek AcpiOsGetTableByName ( 501*29492bb7SDavid van Moolenbroek char *Signature, 502*29492bb7SDavid van Moolenbroek UINT32 Instance, 503*29492bb7SDavid van Moolenbroek ACPI_TABLE_HEADER **Table, 504*29492bb7SDavid van Moolenbroek ACPI_PHYSICAL_ADDRESS *Address); 505*29492bb7SDavid van Moolenbroek #endif 506*29492bb7SDavid van Moolenbroek 507*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByIndex 508*29492bb7SDavid van Moolenbroek ACPI_STATUS 509*29492bb7SDavid van Moolenbroek AcpiOsGetTableByIndex ( 510*29492bb7SDavid van Moolenbroek UINT32 Index, 511*29492bb7SDavid van Moolenbroek ACPI_TABLE_HEADER **Table, 512*29492bb7SDavid van Moolenbroek UINT32 *Instance, 513*29492bb7SDavid van Moolenbroek ACPI_PHYSICAL_ADDRESS *Address); 514*29492bb7SDavid van Moolenbroek #endif 515*29492bb7SDavid van Moolenbroek 516*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByAddress 517*29492bb7SDavid van Moolenbroek ACPI_STATUS 518*29492bb7SDavid van Moolenbroek AcpiOsGetTableByAddress ( 519*29492bb7SDavid van Moolenbroek ACPI_PHYSICAL_ADDRESS Address, 520*29492bb7SDavid van Moolenbroek ACPI_TABLE_HEADER **Table); 521*29492bb7SDavid van Moolenbroek #endif 522433d6423SLionel Sambuc 523433d6423SLionel Sambuc 524433d6423SLionel Sambuc /* 525433d6423SLionel Sambuc * Directory manipulation 526433d6423SLionel Sambuc */ 527*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsOpenDirectory 528433d6423SLionel Sambuc void * 529433d6423SLionel Sambuc AcpiOsOpenDirectory ( 530433d6423SLionel Sambuc char *Pathname, 531433d6423SLionel Sambuc char *WildcardSpec, 532433d6423SLionel Sambuc char RequestedFileType); 533*29492bb7SDavid van Moolenbroek #endif 534433d6423SLionel Sambuc 535433d6423SLionel Sambuc /* RequesteFileType values */ 536433d6423SLionel Sambuc 537433d6423SLionel Sambuc #define REQUEST_FILE_ONLY 0 538433d6423SLionel Sambuc #define REQUEST_DIR_ONLY 1 539433d6423SLionel Sambuc 540433d6423SLionel Sambuc 541*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetNextFilename 542433d6423SLionel Sambuc char * 543433d6423SLionel Sambuc AcpiOsGetNextFilename ( 544433d6423SLionel Sambuc void *DirHandle); 545*29492bb7SDavid van Moolenbroek #endif 546433d6423SLionel Sambuc 547*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCloseDirectory 548433d6423SLionel Sambuc void 549433d6423SLionel Sambuc AcpiOsCloseDirectory ( 550433d6423SLionel Sambuc void *DirHandle); 551*29492bb7SDavid van Moolenbroek #endif 552*29492bb7SDavid van Moolenbroek 553*29492bb7SDavid van Moolenbroek 554*29492bb7SDavid van Moolenbroek /* 555*29492bb7SDavid van Moolenbroek * File I/O and related support 556*29492bb7SDavid van Moolenbroek */ 557*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsOpenFile 558*29492bb7SDavid van Moolenbroek ACPI_FILE 559*29492bb7SDavid van Moolenbroek AcpiOsOpenFile ( 560*29492bb7SDavid van Moolenbroek const char *Path, 561*29492bb7SDavid van Moolenbroek UINT8 Modes); 562*29492bb7SDavid van Moolenbroek #endif 563*29492bb7SDavid van Moolenbroek 564*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCloseFile 565*29492bb7SDavid van Moolenbroek void 566*29492bb7SDavid van Moolenbroek AcpiOsCloseFile ( 567*29492bb7SDavid van Moolenbroek ACPI_FILE File); 568*29492bb7SDavid van Moolenbroek #endif 569*29492bb7SDavid van Moolenbroek 570*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadFile 571*29492bb7SDavid van Moolenbroek int 572*29492bb7SDavid van Moolenbroek AcpiOsReadFile ( 573*29492bb7SDavid van Moolenbroek ACPI_FILE File, 574*29492bb7SDavid van Moolenbroek void *Buffer, 575*29492bb7SDavid van Moolenbroek ACPI_SIZE Size, 576*29492bb7SDavid van Moolenbroek ACPI_SIZE Count); 577*29492bb7SDavid van Moolenbroek #endif 578*29492bb7SDavid van Moolenbroek 579*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWriteFile 580*29492bb7SDavid van Moolenbroek int 581*29492bb7SDavid van Moolenbroek AcpiOsWriteFile ( 582*29492bb7SDavid van Moolenbroek ACPI_FILE File, 583*29492bb7SDavid van Moolenbroek void *Buffer, 584*29492bb7SDavid van Moolenbroek ACPI_SIZE Size, 585*29492bb7SDavid van Moolenbroek ACPI_SIZE Count); 586*29492bb7SDavid van Moolenbroek #endif 587*29492bb7SDavid van Moolenbroek 588*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetFileOffset 589*29492bb7SDavid van Moolenbroek long 590*29492bb7SDavid van Moolenbroek AcpiOsGetFileOffset ( 591*29492bb7SDavid van Moolenbroek ACPI_FILE File); 592*29492bb7SDavid van Moolenbroek #endif 593*29492bb7SDavid van Moolenbroek 594*29492bb7SDavid van Moolenbroek #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSetFileOffset 595*29492bb7SDavid van Moolenbroek ACPI_STATUS 596*29492bb7SDavid van Moolenbroek AcpiOsSetFileOffset ( 597*29492bb7SDavid van Moolenbroek ACPI_FILE File, 598*29492bb7SDavid van Moolenbroek long Offset, 599*29492bb7SDavid van Moolenbroek UINT8 From); 600*29492bb7SDavid van Moolenbroek #endif 601433d6423SLionel Sambuc 602433d6423SLionel Sambuc 603433d6423SLionel Sambuc #endif /* __ACPIOSXF_H__ */ 604