1a9f12690SJung-uk Kim /****************************************************************************** 2a9f12690SJung-uk Kim * 3a9f12690SJung-uk Kim * Name: acpiosxf.h - All interfaces to the OS Services Layer (OSL). These 4a9f12690SJung-uk Kim * interfaces must be implemented by OSL to interface the 5a9f12690SJung-uk Kim * ACPI components to the host operating system. 6a9f12690SJung-uk Kim * 7a9f12690SJung-uk Kim *****************************************************************************/ 8a9f12690SJung-uk Kim 9d244b227SJung-uk Kim /* 10313a0c13SJung-uk Kim * Copyright (C) 2000 - 2014, Intel Corp. 11a9f12690SJung-uk Kim * All rights reserved. 12a9f12690SJung-uk Kim * 13d244b227SJung-uk Kim * Redistribution and use in source and binary forms, with or without 14d244b227SJung-uk Kim * modification, are permitted provided that the following conditions 15d244b227SJung-uk Kim * are met: 16d244b227SJung-uk Kim * 1. Redistributions of source code must retain the above copyright 17d244b227SJung-uk Kim * notice, this list of conditions, and the following disclaimer, 18d244b227SJung-uk Kim * without modification. 19d244b227SJung-uk Kim * 2. Redistributions in binary form must reproduce at minimum a disclaimer 20d244b227SJung-uk Kim * substantially similar to the "NO WARRANTY" disclaimer below 21d244b227SJung-uk Kim * ("Disclaimer") and any redistribution must be conditioned upon 22d244b227SJung-uk Kim * including a substantially similar Disclaimer requirement for further 23d244b227SJung-uk Kim * binary redistribution. 24d244b227SJung-uk Kim * 3. Neither the names of the above-listed copyright holders nor the names 25d244b227SJung-uk Kim * of any contributors may be used to endorse or promote products derived 26d244b227SJung-uk Kim * from this software without specific prior written permission. 27a9f12690SJung-uk Kim * 28d244b227SJung-uk Kim * Alternatively, this software may be distributed under the terms of the 29d244b227SJung-uk Kim * GNU General Public License ("GPL") version 2 as published by the Free 30d244b227SJung-uk Kim * Software Foundation. 31a9f12690SJung-uk Kim * 32d244b227SJung-uk Kim * NO WARRANTY 33d244b227SJung-uk Kim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 34d244b227SJung-uk Kim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 35d244b227SJung-uk Kim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 36d244b227SJung-uk Kim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 37d244b227SJung-uk Kim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 38d244b227SJung-uk Kim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 39d244b227SJung-uk Kim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 40d244b227SJung-uk Kim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 41d244b227SJung-uk Kim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 42d244b227SJung-uk Kim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 43d244b227SJung-uk Kim * POSSIBILITY OF SUCH DAMAGES. 44d244b227SJung-uk Kim */ 45a9f12690SJung-uk Kim 46a9f12690SJung-uk Kim #ifndef __ACPIOSXF_H__ 47a9f12690SJung-uk Kim #define __ACPIOSXF_H__ 48a9f12690SJung-uk Kim 49ab6f3bf9SJung-uk Kim #include <contrib/dev/acpica/include/platform/acenv.h> 50ab6f3bf9SJung-uk Kim #include <contrib/dev/acpica/include/actypes.h> 51a9f12690SJung-uk Kim 52a9f12690SJung-uk Kim 53a9f12690SJung-uk Kim /* Types for AcpiOsExecute */ 54a9f12690SJung-uk Kim 55a9f12690SJung-uk Kim typedef enum 56a9f12690SJung-uk Kim { 57a9f12690SJung-uk Kim OSL_GLOBAL_LOCK_HANDLER, 58a9f12690SJung-uk Kim OSL_NOTIFY_HANDLER, 59a9f12690SJung-uk Kim OSL_GPE_HANDLER, 60a9f12690SJung-uk Kim OSL_DEBUGGER_THREAD, 61a9f12690SJung-uk Kim OSL_EC_POLL_HANDLER, 62a9f12690SJung-uk Kim OSL_EC_BURST_HANDLER 63a9f12690SJung-uk Kim 64a9f12690SJung-uk Kim } ACPI_EXECUTE_TYPE; 65a9f12690SJung-uk Kim 66a9f12690SJung-uk Kim #define ACPI_NO_UNIT_LIMIT ((UINT32) -1) 67a9f12690SJung-uk Kim #define ACPI_MUTEX_SEM 1 68a9f12690SJung-uk Kim 69a9f12690SJung-uk Kim 70a9f12690SJung-uk Kim /* Functions for AcpiOsSignal */ 71a9f12690SJung-uk Kim 72a9f12690SJung-uk Kim #define ACPI_SIGNAL_FATAL 0 73a9f12690SJung-uk Kim #define ACPI_SIGNAL_BREAKPOINT 1 74a9f12690SJung-uk Kim 75a9f12690SJung-uk Kim typedef struct acpi_signal_fatal_info 76a9f12690SJung-uk Kim { 77a9f12690SJung-uk Kim UINT32 Type; 78a9f12690SJung-uk Kim UINT32 Code; 79a9f12690SJung-uk Kim UINT32 Argument; 80a9f12690SJung-uk Kim 81a9f12690SJung-uk Kim } ACPI_SIGNAL_FATAL_INFO; 82a9f12690SJung-uk Kim 83a9f12690SJung-uk Kim 84a9f12690SJung-uk Kim /* 85a9f12690SJung-uk Kim * OSL Initialization and shutdown primitives 86a9f12690SJung-uk Kim */ 87313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInitialize 88a9f12690SJung-uk Kim ACPI_STATUS 89a9f12690SJung-uk Kim AcpiOsInitialize ( 90a9f12690SJung-uk Kim void); 91313a0c13SJung-uk Kim #endif 92a9f12690SJung-uk Kim 93313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTerminate 94a9f12690SJung-uk Kim ACPI_STATUS 95a9f12690SJung-uk Kim AcpiOsTerminate ( 96a9f12690SJung-uk Kim void); 97313a0c13SJung-uk Kim #endif 98a9f12690SJung-uk Kim 99a9f12690SJung-uk Kim 100a9f12690SJung-uk Kim /* 101a9f12690SJung-uk Kim * ACPI Table interfaces 102a9f12690SJung-uk Kim */ 103313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetRootPointer 104a9f12690SJung-uk Kim ACPI_PHYSICAL_ADDRESS 105a9f12690SJung-uk Kim AcpiOsGetRootPointer ( 106a9f12690SJung-uk Kim void); 107313a0c13SJung-uk Kim #endif 108a9f12690SJung-uk Kim 109313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPredefinedOverride 110a9f12690SJung-uk Kim ACPI_STATUS 111a9f12690SJung-uk Kim AcpiOsPredefinedOverride ( 112a9f12690SJung-uk Kim const ACPI_PREDEFINED_NAMES *InitVal, 113a9f12690SJung-uk Kim ACPI_STRING *NewVal); 114313a0c13SJung-uk Kim #endif 115a9f12690SJung-uk Kim 116313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTableOverride 117a9f12690SJung-uk Kim ACPI_STATUS 118a9f12690SJung-uk Kim AcpiOsTableOverride ( 119a9f12690SJung-uk Kim ACPI_TABLE_HEADER *ExistingTable, 120a9f12690SJung-uk Kim ACPI_TABLE_HEADER **NewTable); 121313a0c13SJung-uk Kim #endif 122a9f12690SJung-uk Kim 123313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPhysicalTableOverride 124a159c266SJung-uk Kim ACPI_STATUS 125a159c266SJung-uk Kim AcpiOsPhysicalTableOverride ( 126a159c266SJung-uk Kim ACPI_TABLE_HEADER *ExistingTable, 127a159c266SJung-uk Kim ACPI_PHYSICAL_ADDRESS *NewAddress, 128a159c266SJung-uk Kim UINT32 *NewTableLength); 129313a0c13SJung-uk Kim #endif 130a159c266SJung-uk Kim 131a9f12690SJung-uk Kim 132a9f12690SJung-uk Kim /* 133a9f12690SJung-uk Kim * Spinlock primitives 134a9f12690SJung-uk Kim */ 135313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateLock 136a9f12690SJung-uk Kim ACPI_STATUS 137a9f12690SJung-uk Kim AcpiOsCreateLock ( 138a9f12690SJung-uk Kim ACPI_SPINLOCK *OutHandle); 1398ef1a331SJung-uk Kim #endif 140a9f12690SJung-uk Kim 141313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteLock 142a9f12690SJung-uk Kim void 143a9f12690SJung-uk Kim AcpiOsDeleteLock ( 144a9f12690SJung-uk Kim ACPI_SPINLOCK Handle); 145313a0c13SJung-uk Kim #endif 146a9f12690SJung-uk Kim 147313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireLock 148a9f12690SJung-uk Kim ACPI_CPU_FLAGS 149a9f12690SJung-uk Kim AcpiOsAcquireLock ( 150a9f12690SJung-uk Kim ACPI_SPINLOCK Handle); 151313a0c13SJung-uk Kim #endif 152a9f12690SJung-uk Kim 153313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseLock 154a9f12690SJung-uk Kim void 155a9f12690SJung-uk Kim AcpiOsReleaseLock ( 156a9f12690SJung-uk Kim ACPI_SPINLOCK Handle, 157a9f12690SJung-uk Kim ACPI_CPU_FLAGS Flags); 158313a0c13SJung-uk Kim #endif 159a9f12690SJung-uk Kim 160a9f12690SJung-uk Kim 161a9f12690SJung-uk Kim /* 162a9f12690SJung-uk Kim * Semaphore primitives 163a9f12690SJung-uk Kim */ 164313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateSemaphore 165a9f12690SJung-uk Kim ACPI_STATUS 166a9f12690SJung-uk Kim AcpiOsCreateSemaphore ( 167a9f12690SJung-uk Kim UINT32 MaxUnits, 168a9f12690SJung-uk Kim UINT32 InitialUnits, 169a9f12690SJung-uk Kim ACPI_SEMAPHORE *OutHandle); 170313a0c13SJung-uk Kim #endif 171a9f12690SJung-uk Kim 172313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteSemaphore 173a9f12690SJung-uk Kim ACPI_STATUS 174a9f12690SJung-uk Kim AcpiOsDeleteSemaphore ( 175a9f12690SJung-uk Kim ACPI_SEMAPHORE Handle); 176313a0c13SJung-uk Kim #endif 177a9f12690SJung-uk Kim 178313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitSemaphore 179a9f12690SJung-uk Kim ACPI_STATUS 180a9f12690SJung-uk Kim AcpiOsWaitSemaphore ( 181a9f12690SJung-uk Kim ACPI_SEMAPHORE Handle, 182a9f12690SJung-uk Kim UINT32 Units, 183a9f12690SJung-uk Kim UINT16 Timeout); 184313a0c13SJung-uk Kim #endif 185a9f12690SJung-uk Kim 186313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSignalSemaphore 187a9f12690SJung-uk Kim ACPI_STATUS 188a9f12690SJung-uk Kim AcpiOsSignalSemaphore ( 189a9f12690SJung-uk Kim ACPI_SEMAPHORE Handle, 190a9f12690SJung-uk Kim UINT32 Units); 191313a0c13SJung-uk Kim #endif 192a9f12690SJung-uk Kim 193a9f12690SJung-uk Kim 194a9f12690SJung-uk Kim /* 195a9f12690SJung-uk Kim * Mutex primitives. May be configured to use semaphores instead via 196a9f12690SJung-uk Kim * ACPI_MUTEX_TYPE (see platform/acenv.h) 197a9f12690SJung-uk Kim */ 198a9f12690SJung-uk Kim #if (ACPI_MUTEX_TYPE != ACPI_BINARY_SEMAPHORE) 199a9f12690SJung-uk Kim 200313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateMutex 201a9f12690SJung-uk Kim ACPI_STATUS 202a9f12690SJung-uk Kim AcpiOsCreateMutex ( 203a9f12690SJung-uk Kim ACPI_MUTEX *OutHandle); 204313a0c13SJung-uk Kim #endif 205a9f12690SJung-uk Kim 206313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteMutex 207a9f12690SJung-uk Kim void 208a9f12690SJung-uk Kim AcpiOsDeleteMutex ( 209a9f12690SJung-uk Kim ACPI_MUTEX Handle); 210313a0c13SJung-uk Kim #endif 211a9f12690SJung-uk Kim 212313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireMutex 213a9f12690SJung-uk Kim ACPI_STATUS 214a9f12690SJung-uk Kim AcpiOsAcquireMutex ( 215a9f12690SJung-uk Kim ACPI_MUTEX Handle, 216a9f12690SJung-uk Kim UINT16 Timeout); 217313a0c13SJung-uk Kim #endif 218a9f12690SJung-uk Kim 219313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseMutex 220a9f12690SJung-uk Kim void 221a9f12690SJung-uk Kim AcpiOsReleaseMutex ( 222a9f12690SJung-uk Kim ACPI_MUTEX Handle); 223a9f12690SJung-uk Kim #endif 224a9f12690SJung-uk Kim 225313a0c13SJung-uk Kim #endif 226313a0c13SJung-uk Kim 227a9f12690SJung-uk Kim 228a9f12690SJung-uk Kim /* 229a9f12690SJung-uk Kim * Memory allocation and mapping 230a9f12690SJung-uk Kim */ 231313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAllocate 232a9f12690SJung-uk Kim void * 233a9f12690SJung-uk Kim AcpiOsAllocate ( 234a9f12690SJung-uk Kim ACPI_SIZE Size); 235313a0c13SJung-uk Kim #endif 236a9f12690SJung-uk Kim 237313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAllocateZeroed 238313a0c13SJung-uk Kim void * 239313a0c13SJung-uk Kim AcpiOsAllocateZeroed ( 240313a0c13SJung-uk Kim ACPI_SIZE Size); 241313a0c13SJung-uk Kim #endif 242313a0c13SJung-uk Kim 243313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsFree 244a9f12690SJung-uk Kim void 245a9f12690SJung-uk Kim AcpiOsFree ( 246a9f12690SJung-uk Kim void * Memory); 247313a0c13SJung-uk Kim #endif 248a9f12690SJung-uk Kim 249313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsMapMemory 250a9f12690SJung-uk Kim void * 251a9f12690SJung-uk Kim AcpiOsMapMemory ( 252a9f12690SJung-uk Kim ACPI_PHYSICAL_ADDRESS Where, 253a9f12690SJung-uk Kim ACPI_SIZE Length); 254313a0c13SJung-uk Kim #endif 255a9f12690SJung-uk Kim 256313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsUnmapMemory 257a9f12690SJung-uk Kim void 258a9f12690SJung-uk Kim AcpiOsUnmapMemory ( 259a9f12690SJung-uk Kim void *LogicalAddress, 260a9f12690SJung-uk Kim ACPI_SIZE Size); 261313a0c13SJung-uk Kim #endif 262a9f12690SJung-uk Kim 263313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetPhysicalAddress 264a9f12690SJung-uk Kim ACPI_STATUS 265a9f12690SJung-uk Kim AcpiOsGetPhysicalAddress ( 266a9f12690SJung-uk Kim void *LogicalAddress, 267a9f12690SJung-uk Kim ACPI_PHYSICAL_ADDRESS *PhysicalAddress); 268313a0c13SJung-uk Kim #endif 269a9f12690SJung-uk Kim 270a9f12690SJung-uk Kim 271a9f12690SJung-uk Kim /* 272a9f12690SJung-uk Kim * Memory/Object Cache 273a9f12690SJung-uk Kim */ 274313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateCache 275a9f12690SJung-uk Kim ACPI_STATUS 276a9f12690SJung-uk Kim AcpiOsCreateCache ( 277a9f12690SJung-uk Kim char *CacheName, 278a9f12690SJung-uk Kim UINT16 ObjectSize, 279a9f12690SJung-uk Kim UINT16 MaxDepth, 280a9f12690SJung-uk Kim ACPI_CACHE_T **ReturnCache); 281313a0c13SJung-uk Kim #endif 282a9f12690SJung-uk Kim 283313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteCache 284a9f12690SJung-uk Kim ACPI_STATUS 285a9f12690SJung-uk Kim AcpiOsDeleteCache ( 286a9f12690SJung-uk Kim ACPI_CACHE_T *Cache); 287313a0c13SJung-uk Kim #endif 288a9f12690SJung-uk Kim 289313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPurgeCache 290a9f12690SJung-uk Kim ACPI_STATUS 291a9f12690SJung-uk Kim AcpiOsPurgeCache ( 292a9f12690SJung-uk Kim ACPI_CACHE_T *Cache); 293313a0c13SJung-uk Kim #endif 294a9f12690SJung-uk Kim 295313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireObject 296a9f12690SJung-uk Kim void * 297a9f12690SJung-uk Kim AcpiOsAcquireObject ( 298a9f12690SJung-uk Kim ACPI_CACHE_T *Cache); 299313a0c13SJung-uk Kim #endif 300a9f12690SJung-uk Kim 301313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseObject 302a9f12690SJung-uk Kim ACPI_STATUS 303a9f12690SJung-uk Kim AcpiOsReleaseObject ( 304a9f12690SJung-uk Kim ACPI_CACHE_T *Cache, 305a9f12690SJung-uk Kim void *Object); 306313a0c13SJung-uk Kim #endif 307a9f12690SJung-uk Kim 308a9f12690SJung-uk Kim 309a9f12690SJung-uk Kim /* 310a9f12690SJung-uk Kim * Interrupt handlers 311a9f12690SJung-uk Kim */ 312313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInstallInterruptHandler 313a9f12690SJung-uk Kim ACPI_STATUS 314a9f12690SJung-uk Kim AcpiOsInstallInterruptHandler ( 315a9f12690SJung-uk Kim UINT32 InterruptNumber, 316a9f12690SJung-uk Kim ACPI_OSD_HANDLER ServiceRoutine, 317a9f12690SJung-uk Kim void *Context); 318313a0c13SJung-uk Kim #endif 319a9f12690SJung-uk Kim 320313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsRemoveInterruptHandler 321a9f12690SJung-uk Kim ACPI_STATUS 322a9f12690SJung-uk Kim AcpiOsRemoveInterruptHandler ( 323a9f12690SJung-uk Kim UINT32 InterruptNumber, 324a9f12690SJung-uk Kim ACPI_OSD_HANDLER ServiceRoutine); 325313a0c13SJung-uk Kim #endif 326a9f12690SJung-uk Kim 327a9f12690SJung-uk Kim 328a9f12690SJung-uk Kim /* 329a9f12690SJung-uk Kim * Threads and Scheduling 330a9f12690SJung-uk Kim */ 331313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetThreadId 332a9f12690SJung-uk Kim ACPI_THREAD_ID 333a9f12690SJung-uk Kim AcpiOsGetThreadId ( 334a9f12690SJung-uk Kim void); 335313a0c13SJung-uk Kim #endif 336a9f12690SJung-uk Kim 337313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsExecute 338a9f12690SJung-uk Kim ACPI_STATUS 339a9f12690SJung-uk Kim AcpiOsExecute ( 340a9f12690SJung-uk Kim ACPI_EXECUTE_TYPE Type, 341a9f12690SJung-uk Kim ACPI_OSD_EXEC_CALLBACK Function, 342a9f12690SJung-uk Kim void *Context); 343313a0c13SJung-uk Kim #endif 344a9f12690SJung-uk Kim 345313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitEventsComplete 346a9f12690SJung-uk Kim void 347a9f12690SJung-uk Kim AcpiOsWaitEventsComplete ( 348a7a3b383SJung-uk Kim void); 349313a0c13SJung-uk Kim #endif 350a9f12690SJung-uk Kim 351313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSleep 352a9f12690SJung-uk Kim void 353a9f12690SJung-uk Kim AcpiOsSleep ( 3549a179dd8SJung-uk Kim UINT64 Milliseconds); 355313a0c13SJung-uk Kim #endif 356a9f12690SJung-uk Kim 357313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsStall 358a9f12690SJung-uk Kim void 359a9f12690SJung-uk Kim AcpiOsStall ( 360a9f12690SJung-uk Kim UINT32 Microseconds); 361313a0c13SJung-uk Kim #endif 362a9f12690SJung-uk Kim 363a9f12690SJung-uk Kim 364a9f12690SJung-uk Kim /* 365a9f12690SJung-uk Kim * Platform and hardware-independent I/O interfaces 366a9f12690SJung-uk Kim */ 367313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadPort 368a9f12690SJung-uk Kim ACPI_STATUS 369a9f12690SJung-uk Kim AcpiOsReadPort ( 370a9f12690SJung-uk Kim ACPI_IO_ADDRESS Address, 371a9f12690SJung-uk Kim UINT32 *Value, 372a9f12690SJung-uk Kim UINT32 Width); 373313a0c13SJung-uk Kim #endif 374a9f12690SJung-uk Kim 375313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritePort 376a9f12690SJung-uk Kim ACPI_STATUS 377a9f12690SJung-uk Kim AcpiOsWritePort ( 378a9f12690SJung-uk Kim ACPI_IO_ADDRESS Address, 379a9f12690SJung-uk Kim UINT32 Value, 380a9f12690SJung-uk Kim UINT32 Width); 381313a0c13SJung-uk Kim #endif 382a9f12690SJung-uk Kim 383a9f12690SJung-uk Kim 384a9f12690SJung-uk Kim /* 385a9f12690SJung-uk Kim * Platform and hardware-independent physical memory interfaces 386a9f12690SJung-uk Kim */ 387313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadMemory 388a9f12690SJung-uk Kim ACPI_STATUS 389a9f12690SJung-uk Kim AcpiOsReadMemory ( 390a9f12690SJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 391a159c266SJung-uk Kim UINT64 *Value, 392a9f12690SJung-uk Kim UINT32 Width); 393313a0c13SJung-uk Kim #endif 394a9f12690SJung-uk Kim 395313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWriteMemory 396a9f12690SJung-uk Kim ACPI_STATUS 397a9f12690SJung-uk Kim AcpiOsWriteMemory ( 398a9f12690SJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 399a159c266SJung-uk Kim UINT64 Value, 400a9f12690SJung-uk Kim UINT32 Width); 401313a0c13SJung-uk Kim #endif 402a9f12690SJung-uk Kim 403a9f12690SJung-uk Kim 404a9f12690SJung-uk Kim /* 405a9f12690SJung-uk Kim * Platform and hardware-independent PCI configuration space access 406a9f12690SJung-uk Kim * Note: Can't use "Register" as a parameter, changed to "Reg" -- 407a9f12690SJung-uk Kim * certain compilers complain. 408a9f12690SJung-uk Kim */ 409313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadPciConfiguration 410a9f12690SJung-uk Kim ACPI_STATUS 411a9f12690SJung-uk Kim AcpiOsReadPciConfiguration ( 412a9f12690SJung-uk Kim ACPI_PCI_ID *PciId, 413a9f12690SJung-uk Kim UINT32 Reg, 414709fac06SJung-uk Kim UINT64 *Value, 415a9f12690SJung-uk Kim UINT32 Width); 416313a0c13SJung-uk Kim #endif 417a9f12690SJung-uk Kim 418313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritePciConfiguration 419a9f12690SJung-uk Kim ACPI_STATUS 420a9f12690SJung-uk Kim AcpiOsWritePciConfiguration ( 421a9f12690SJung-uk Kim ACPI_PCI_ID *PciId, 422a9f12690SJung-uk Kim UINT32 Reg, 4239a179dd8SJung-uk Kim UINT64 Value, 424a9f12690SJung-uk Kim UINT32 Width); 425313a0c13SJung-uk Kim #endif 426a9f12690SJung-uk Kim 427a9f12690SJung-uk Kim 428a9f12690SJung-uk Kim /* 429a9f12690SJung-uk Kim * Miscellaneous 430a9f12690SJung-uk Kim */ 431313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadable 432a9f12690SJung-uk Kim BOOLEAN 433a9f12690SJung-uk Kim AcpiOsReadable ( 434a9f12690SJung-uk Kim void *Pointer, 435a9f12690SJung-uk Kim ACPI_SIZE Length); 436313a0c13SJung-uk Kim #endif 437a9f12690SJung-uk Kim 438313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritable 439a9f12690SJung-uk Kim BOOLEAN 440a9f12690SJung-uk Kim AcpiOsWritable ( 441a9f12690SJung-uk Kim void *Pointer, 442a9f12690SJung-uk Kim ACPI_SIZE Length); 443313a0c13SJung-uk Kim #endif 444a9f12690SJung-uk Kim 445313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTimer 446a9f12690SJung-uk Kim UINT64 447a9f12690SJung-uk Kim AcpiOsGetTimer ( 448a9f12690SJung-uk Kim void); 449313a0c13SJung-uk Kim #endif 450a9f12690SJung-uk Kim 451313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSignal 452a9f12690SJung-uk Kim ACPI_STATUS 453a9f12690SJung-uk Kim AcpiOsSignal ( 454a9f12690SJung-uk Kim UINT32 Function, 455a9f12690SJung-uk Kim void *Info); 456313a0c13SJung-uk Kim #endif 457a9f12690SJung-uk Kim 458a9f12690SJung-uk Kim 459a9f12690SJung-uk Kim /* 460a9f12690SJung-uk Kim * Debug print routines 461a9f12690SJung-uk Kim */ 462313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPrintf 463a9f12690SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE 464a9f12690SJung-uk Kim AcpiOsPrintf ( 465a9f12690SJung-uk Kim const char *Format, 466a9f12690SJung-uk Kim ...); 467313a0c13SJung-uk Kim #endif 468a9f12690SJung-uk Kim 469313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsVprintf 470a9f12690SJung-uk Kim void 471a9f12690SJung-uk Kim AcpiOsVprintf ( 472a9f12690SJung-uk Kim const char *Format, 473a9f12690SJung-uk Kim va_list Args); 474313a0c13SJung-uk Kim #endif 475a9f12690SJung-uk Kim 476313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsRedirectOutput 477a9f12690SJung-uk Kim void 478a9f12690SJung-uk Kim AcpiOsRedirectOutput ( 479a9f12690SJung-uk Kim void *Destination); 480313a0c13SJung-uk Kim #endif 481a9f12690SJung-uk Kim 482a9f12690SJung-uk Kim 483a9f12690SJung-uk Kim /* 484a9f12690SJung-uk Kim * Debug input 485a9f12690SJung-uk Kim */ 486313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetLine 48742e58c03SJung-uk Kim ACPI_STATUS 488a9f12690SJung-uk Kim AcpiOsGetLine ( 48942e58c03SJung-uk Kim char *Buffer, 49042e58c03SJung-uk Kim UINT32 BufferLength, 49142e58c03SJung-uk Kim UINT32 *BytesRead); 492313a0c13SJung-uk Kim #endif 493a9f12690SJung-uk Kim 494a9f12690SJung-uk Kim 495a9f12690SJung-uk Kim /* 496a9d8d09cSJung-uk Kim * Obtain ACPI table(s) 497a9d8d09cSJung-uk Kim */ 498313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByName 499a9d8d09cSJung-uk Kim ACPI_STATUS 500a9d8d09cSJung-uk Kim AcpiOsGetTableByName ( 501a9d8d09cSJung-uk Kim char *Signature, 502a9d8d09cSJung-uk Kim UINT32 Instance, 503a9d8d09cSJung-uk Kim ACPI_TABLE_HEADER **Table, 504a9d8d09cSJung-uk Kim ACPI_PHYSICAL_ADDRESS *Address); 505313a0c13SJung-uk Kim #endif 506a9d8d09cSJung-uk Kim 507313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByIndex 508a9d8d09cSJung-uk Kim ACPI_STATUS 509a9d8d09cSJung-uk Kim AcpiOsGetTableByIndex ( 510a9d8d09cSJung-uk Kim UINT32 Index, 511a9d8d09cSJung-uk Kim ACPI_TABLE_HEADER **Table, 51279c6d946SJung-uk Kim UINT32 *Instance, 513a9d8d09cSJung-uk Kim ACPI_PHYSICAL_ADDRESS *Address); 514313a0c13SJung-uk Kim #endif 515a9d8d09cSJung-uk Kim 516313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByAddress 517a9d8d09cSJung-uk Kim ACPI_STATUS 518a9d8d09cSJung-uk Kim AcpiOsGetTableByAddress ( 519a9d8d09cSJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 520a9d8d09cSJung-uk Kim ACPI_TABLE_HEADER **Table); 521313a0c13SJung-uk Kim #endif 522a9d8d09cSJung-uk Kim 523a9d8d09cSJung-uk Kim 524a9d8d09cSJung-uk Kim /* 525a9f12690SJung-uk Kim * Directory manipulation 526a9f12690SJung-uk Kim */ 527313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsOpenDirectory 528a9f12690SJung-uk Kim void * 529a9f12690SJung-uk Kim AcpiOsOpenDirectory ( 530a9f12690SJung-uk Kim char *Pathname, 531a9f12690SJung-uk Kim char *WildcardSpec, 532a9f12690SJung-uk Kim char RequestedFileType); 533313a0c13SJung-uk Kim #endif 534a9f12690SJung-uk Kim 535a9f12690SJung-uk Kim /* RequesteFileType values */ 536a9f12690SJung-uk Kim 537a9f12690SJung-uk Kim #define REQUEST_FILE_ONLY 0 538a9f12690SJung-uk Kim #define REQUEST_DIR_ONLY 1 539a9f12690SJung-uk Kim 540a9f12690SJung-uk Kim 541313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetNextFilename 542a9f12690SJung-uk Kim char * 543a9f12690SJung-uk Kim AcpiOsGetNextFilename ( 544a9f12690SJung-uk Kim void *DirHandle); 545313a0c13SJung-uk Kim #endif 546a9f12690SJung-uk Kim 547313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCloseDirectory 548a9f12690SJung-uk Kim void 549a9f12690SJung-uk Kim AcpiOsCloseDirectory ( 550a9f12690SJung-uk Kim void *DirHandle); 551313a0c13SJung-uk Kim #endif 552313a0c13SJung-uk Kim 553313a0c13SJung-uk Kim 554313a0c13SJung-uk Kim /* 555313a0c13SJung-uk Kim * File I/O and related support 556313a0c13SJung-uk Kim */ 557313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsOpenFile 558313a0c13SJung-uk Kim ACPI_FILE 559313a0c13SJung-uk Kim AcpiOsOpenFile ( 560313a0c13SJung-uk Kim const char *Path, 561313a0c13SJung-uk Kim UINT8 Modes); 562313a0c13SJung-uk Kim #endif 563313a0c13SJung-uk Kim 564313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCloseFile 565313a0c13SJung-uk Kim void 566313a0c13SJung-uk Kim AcpiOsCloseFile ( 567313a0c13SJung-uk Kim ACPI_FILE File); 568313a0c13SJung-uk Kim #endif 569313a0c13SJung-uk Kim 570313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadFile 571313a0c13SJung-uk Kim int 572313a0c13SJung-uk Kim AcpiOsReadFile ( 573313a0c13SJung-uk Kim ACPI_FILE File, 574313a0c13SJung-uk Kim void *Buffer, 575313a0c13SJung-uk Kim ACPI_SIZE Size, 576313a0c13SJung-uk Kim ACPI_SIZE Count); 577313a0c13SJung-uk Kim #endif 578313a0c13SJung-uk Kim 579313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWriteFile 580313a0c13SJung-uk Kim int 581313a0c13SJung-uk Kim AcpiOsWriteFile ( 582313a0c13SJung-uk Kim ACPI_FILE File, 583313a0c13SJung-uk Kim void *Buffer, 584313a0c13SJung-uk Kim ACPI_SIZE Size, 585313a0c13SJung-uk Kim ACPI_SIZE Count); 586313a0c13SJung-uk Kim #endif 587313a0c13SJung-uk Kim 588313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetFileOffset 589313a0c13SJung-uk Kim long 590313a0c13SJung-uk Kim AcpiOsGetFileOffset ( 591313a0c13SJung-uk Kim ACPI_FILE File); 592313a0c13SJung-uk Kim #endif 593313a0c13SJung-uk Kim 594313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSetFileOffset 595313a0c13SJung-uk Kim ACPI_STATUS 596313a0c13SJung-uk Kim AcpiOsSetFileOffset ( 597313a0c13SJung-uk Kim ACPI_FILE File, 598313a0c13SJung-uk Kim long Offset, 599313a0c13SJung-uk Kim UINT8 From); 600313a0c13SJung-uk Kim #endif 601a9f12690SJung-uk Kim 602a9f12690SJung-uk Kim 603a9f12690SJung-uk Kim #endif /* __ACPIOSXF_H__ */ 604