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 /* 10f8146b88SJung-uk Kim * Copyright (C) 2000 - 2016, 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, 60f8146b88SJung-uk Kim OSL_DEBUGGER_MAIN_THREAD, 61f8146b88SJung-uk Kim OSL_DEBUGGER_EXEC_THREAD, 62a9f12690SJung-uk Kim OSL_EC_POLL_HANDLER, 63a9f12690SJung-uk Kim OSL_EC_BURST_HANDLER 64a9f12690SJung-uk Kim 65a9f12690SJung-uk Kim } ACPI_EXECUTE_TYPE; 66a9f12690SJung-uk Kim 67a9f12690SJung-uk Kim #define ACPI_NO_UNIT_LIMIT ((UINT32) -1) 68a9f12690SJung-uk Kim #define ACPI_MUTEX_SEM 1 69a9f12690SJung-uk Kim 70a9f12690SJung-uk Kim 71a9f12690SJung-uk Kim /* Functions for AcpiOsSignal */ 72a9f12690SJung-uk Kim 73a9f12690SJung-uk Kim #define ACPI_SIGNAL_FATAL 0 74a9f12690SJung-uk Kim #define ACPI_SIGNAL_BREAKPOINT 1 75a9f12690SJung-uk Kim 76a9f12690SJung-uk Kim typedef struct acpi_signal_fatal_info 77a9f12690SJung-uk Kim { 78a9f12690SJung-uk Kim UINT32 Type; 79a9f12690SJung-uk Kim UINT32 Code; 80a9f12690SJung-uk Kim UINT32 Argument; 81a9f12690SJung-uk Kim 82a9f12690SJung-uk Kim } ACPI_SIGNAL_FATAL_INFO; 83a9f12690SJung-uk Kim 84a9f12690SJung-uk Kim 85a9f12690SJung-uk Kim /* 86a9f12690SJung-uk Kim * OSL Initialization and shutdown primitives 87a9f12690SJung-uk Kim */ 88313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInitialize 89a9f12690SJung-uk Kim ACPI_STATUS 90a9f12690SJung-uk Kim AcpiOsInitialize ( 91a9f12690SJung-uk Kim void); 92313a0c13SJung-uk Kim #endif 93a9f12690SJung-uk Kim 94313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTerminate 95a9f12690SJung-uk Kim ACPI_STATUS 96a9f12690SJung-uk Kim AcpiOsTerminate ( 97a9f12690SJung-uk Kim void); 98313a0c13SJung-uk Kim #endif 99a9f12690SJung-uk Kim 100a9f12690SJung-uk Kim 101a9f12690SJung-uk Kim /* 102a9f12690SJung-uk Kim * ACPI Table interfaces 103a9f12690SJung-uk Kim */ 104313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetRootPointer 105a9f12690SJung-uk Kim ACPI_PHYSICAL_ADDRESS 106a9f12690SJung-uk Kim AcpiOsGetRootPointer ( 107a9f12690SJung-uk Kim void); 108313a0c13SJung-uk Kim #endif 109a9f12690SJung-uk Kim 110313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPredefinedOverride 111a9f12690SJung-uk Kim ACPI_STATUS 112a9f12690SJung-uk Kim AcpiOsPredefinedOverride ( 113a9f12690SJung-uk Kim const ACPI_PREDEFINED_NAMES *InitVal, 114a9f12690SJung-uk Kim ACPI_STRING *NewVal); 115313a0c13SJung-uk Kim #endif 116a9f12690SJung-uk Kim 117313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTableOverride 118a9f12690SJung-uk Kim ACPI_STATUS 119a9f12690SJung-uk Kim AcpiOsTableOverride ( 120a9f12690SJung-uk Kim ACPI_TABLE_HEADER *ExistingTable, 121a9f12690SJung-uk Kim ACPI_TABLE_HEADER **NewTable); 122313a0c13SJung-uk Kim #endif 123a9f12690SJung-uk Kim 124313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPhysicalTableOverride 125a159c266SJung-uk Kim ACPI_STATUS 126a159c266SJung-uk Kim AcpiOsPhysicalTableOverride ( 127a159c266SJung-uk Kim ACPI_TABLE_HEADER *ExistingTable, 128a159c266SJung-uk Kim ACPI_PHYSICAL_ADDRESS *NewAddress, 129a159c266SJung-uk Kim UINT32 *NewTableLength); 130313a0c13SJung-uk Kim #endif 131a159c266SJung-uk Kim 132a9f12690SJung-uk Kim 133a9f12690SJung-uk Kim /* 134a9f12690SJung-uk Kim * Spinlock primitives 135a9f12690SJung-uk Kim */ 136313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateLock 137a9f12690SJung-uk Kim ACPI_STATUS 138a9f12690SJung-uk Kim AcpiOsCreateLock ( 139a9f12690SJung-uk Kim ACPI_SPINLOCK *OutHandle); 1408ef1a331SJung-uk Kim #endif 141a9f12690SJung-uk Kim 142313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteLock 143a9f12690SJung-uk Kim void 144a9f12690SJung-uk Kim AcpiOsDeleteLock ( 145a9f12690SJung-uk Kim ACPI_SPINLOCK Handle); 146313a0c13SJung-uk Kim #endif 147a9f12690SJung-uk Kim 148313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireLock 149a9f12690SJung-uk Kim ACPI_CPU_FLAGS 150a9f12690SJung-uk Kim AcpiOsAcquireLock ( 151a9f12690SJung-uk Kim ACPI_SPINLOCK Handle); 152313a0c13SJung-uk Kim #endif 153a9f12690SJung-uk Kim 154313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseLock 155a9f12690SJung-uk Kim void 156a9f12690SJung-uk Kim AcpiOsReleaseLock ( 157a9f12690SJung-uk Kim ACPI_SPINLOCK Handle, 158a9f12690SJung-uk Kim ACPI_CPU_FLAGS Flags); 159313a0c13SJung-uk Kim #endif 160a9f12690SJung-uk Kim 161a9f12690SJung-uk Kim 162a9f12690SJung-uk Kim /* 163a9f12690SJung-uk Kim * Semaphore primitives 164a9f12690SJung-uk Kim */ 165313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateSemaphore 166a9f12690SJung-uk Kim ACPI_STATUS 167a9f12690SJung-uk Kim AcpiOsCreateSemaphore ( 168a9f12690SJung-uk Kim UINT32 MaxUnits, 169a9f12690SJung-uk Kim UINT32 InitialUnits, 170a9f12690SJung-uk Kim ACPI_SEMAPHORE *OutHandle); 171313a0c13SJung-uk Kim #endif 172a9f12690SJung-uk Kim 173313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteSemaphore 174a9f12690SJung-uk Kim ACPI_STATUS 175a9f12690SJung-uk Kim AcpiOsDeleteSemaphore ( 176a9f12690SJung-uk Kim ACPI_SEMAPHORE Handle); 177313a0c13SJung-uk Kim #endif 178a9f12690SJung-uk Kim 179313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitSemaphore 180a9f12690SJung-uk Kim ACPI_STATUS 181a9f12690SJung-uk Kim AcpiOsWaitSemaphore ( 182a9f12690SJung-uk Kim ACPI_SEMAPHORE Handle, 183a9f12690SJung-uk Kim UINT32 Units, 184a9f12690SJung-uk Kim UINT16 Timeout); 185313a0c13SJung-uk Kim #endif 186a9f12690SJung-uk Kim 187313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSignalSemaphore 188a9f12690SJung-uk Kim ACPI_STATUS 189a9f12690SJung-uk Kim AcpiOsSignalSemaphore ( 190a9f12690SJung-uk Kim ACPI_SEMAPHORE Handle, 191a9f12690SJung-uk Kim UINT32 Units); 192313a0c13SJung-uk Kim #endif 193a9f12690SJung-uk Kim 194a9f12690SJung-uk Kim 195a9f12690SJung-uk Kim /* 196a9f12690SJung-uk Kim * Mutex primitives. May be configured to use semaphores instead via 197a9f12690SJung-uk Kim * ACPI_MUTEX_TYPE (see platform/acenv.h) 198a9f12690SJung-uk Kim */ 199a9f12690SJung-uk Kim #if (ACPI_MUTEX_TYPE != ACPI_BINARY_SEMAPHORE) 200a9f12690SJung-uk Kim 201313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateMutex 202a9f12690SJung-uk Kim ACPI_STATUS 203a9f12690SJung-uk Kim AcpiOsCreateMutex ( 204a9f12690SJung-uk Kim ACPI_MUTEX *OutHandle); 205313a0c13SJung-uk Kim #endif 206a9f12690SJung-uk Kim 207313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteMutex 208a9f12690SJung-uk Kim void 209a9f12690SJung-uk Kim AcpiOsDeleteMutex ( 210a9f12690SJung-uk Kim ACPI_MUTEX Handle); 211313a0c13SJung-uk Kim #endif 212a9f12690SJung-uk Kim 213313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireMutex 214a9f12690SJung-uk Kim ACPI_STATUS 215a9f12690SJung-uk Kim AcpiOsAcquireMutex ( 216a9f12690SJung-uk Kim ACPI_MUTEX Handle, 217a9f12690SJung-uk Kim UINT16 Timeout); 218313a0c13SJung-uk Kim #endif 219a9f12690SJung-uk Kim 220313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseMutex 221a9f12690SJung-uk Kim void 222a9f12690SJung-uk Kim AcpiOsReleaseMutex ( 223a9f12690SJung-uk Kim ACPI_MUTEX Handle); 224a9f12690SJung-uk Kim #endif 225a9f12690SJung-uk Kim 226313a0c13SJung-uk Kim #endif 227313a0c13SJung-uk Kim 228a9f12690SJung-uk Kim 229a9f12690SJung-uk Kim /* 230a9f12690SJung-uk Kim * Memory allocation and mapping 231a9f12690SJung-uk Kim */ 232313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAllocate 233a9f12690SJung-uk Kim void * 234a9f12690SJung-uk Kim AcpiOsAllocate ( 235a9f12690SJung-uk Kim ACPI_SIZE Size); 236313a0c13SJung-uk Kim #endif 237a9f12690SJung-uk Kim 238313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAllocateZeroed 239313a0c13SJung-uk Kim void * 240313a0c13SJung-uk Kim AcpiOsAllocateZeroed ( 241313a0c13SJung-uk Kim ACPI_SIZE Size); 242313a0c13SJung-uk Kim #endif 243313a0c13SJung-uk Kim 244313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsFree 245a9f12690SJung-uk Kim void 246a9f12690SJung-uk Kim AcpiOsFree ( 247a9f12690SJung-uk Kim void * Memory); 248313a0c13SJung-uk Kim #endif 249a9f12690SJung-uk Kim 250313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsMapMemory 251a9f12690SJung-uk Kim void * 252a9f12690SJung-uk Kim AcpiOsMapMemory ( 253a9f12690SJung-uk Kim ACPI_PHYSICAL_ADDRESS Where, 254a9f12690SJung-uk Kim ACPI_SIZE Length); 255313a0c13SJung-uk Kim #endif 256a9f12690SJung-uk Kim 257313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsUnmapMemory 258a9f12690SJung-uk Kim void 259a9f12690SJung-uk Kim AcpiOsUnmapMemory ( 260a9f12690SJung-uk Kim void *LogicalAddress, 261a9f12690SJung-uk Kim ACPI_SIZE Size); 262313a0c13SJung-uk Kim #endif 263a9f12690SJung-uk Kim 264313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetPhysicalAddress 265a9f12690SJung-uk Kim ACPI_STATUS 266a9f12690SJung-uk Kim AcpiOsGetPhysicalAddress ( 267a9f12690SJung-uk Kim void *LogicalAddress, 268a9f12690SJung-uk Kim ACPI_PHYSICAL_ADDRESS *PhysicalAddress); 269313a0c13SJung-uk Kim #endif 270a9f12690SJung-uk Kim 271a9f12690SJung-uk Kim 272a9f12690SJung-uk Kim /* 273a9f12690SJung-uk Kim * Memory/Object Cache 274a9f12690SJung-uk Kim */ 275313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateCache 276a9f12690SJung-uk Kim ACPI_STATUS 277a9f12690SJung-uk Kim AcpiOsCreateCache ( 278a9f12690SJung-uk Kim char *CacheName, 279a9f12690SJung-uk Kim UINT16 ObjectSize, 280a9f12690SJung-uk Kim UINT16 MaxDepth, 281a9f12690SJung-uk Kim ACPI_CACHE_T **ReturnCache); 282313a0c13SJung-uk Kim #endif 283a9f12690SJung-uk Kim 284313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteCache 285a9f12690SJung-uk Kim ACPI_STATUS 286a9f12690SJung-uk Kim AcpiOsDeleteCache ( 287a9f12690SJung-uk Kim ACPI_CACHE_T *Cache); 288313a0c13SJung-uk Kim #endif 289a9f12690SJung-uk Kim 290313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPurgeCache 291a9f12690SJung-uk Kim ACPI_STATUS 292a9f12690SJung-uk Kim AcpiOsPurgeCache ( 293a9f12690SJung-uk Kim ACPI_CACHE_T *Cache); 294313a0c13SJung-uk Kim #endif 295a9f12690SJung-uk Kim 296313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireObject 297a9f12690SJung-uk Kim void * 298a9f12690SJung-uk Kim AcpiOsAcquireObject ( 299a9f12690SJung-uk Kim ACPI_CACHE_T *Cache); 300313a0c13SJung-uk Kim #endif 301a9f12690SJung-uk Kim 302313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseObject 303a9f12690SJung-uk Kim ACPI_STATUS 304a9f12690SJung-uk Kim AcpiOsReleaseObject ( 305a9f12690SJung-uk Kim ACPI_CACHE_T *Cache, 306a9f12690SJung-uk Kim void *Object); 307313a0c13SJung-uk Kim #endif 308a9f12690SJung-uk Kim 309a9f12690SJung-uk Kim 310a9f12690SJung-uk Kim /* 311a9f12690SJung-uk Kim * Interrupt handlers 312a9f12690SJung-uk Kim */ 313313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInstallInterruptHandler 314a9f12690SJung-uk Kim ACPI_STATUS 315a9f12690SJung-uk Kim AcpiOsInstallInterruptHandler ( 316a9f12690SJung-uk Kim UINT32 InterruptNumber, 317a9f12690SJung-uk Kim ACPI_OSD_HANDLER ServiceRoutine, 318a9f12690SJung-uk Kim void *Context); 319313a0c13SJung-uk Kim #endif 320a9f12690SJung-uk Kim 321313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsRemoveInterruptHandler 322a9f12690SJung-uk Kim ACPI_STATUS 323a9f12690SJung-uk Kim AcpiOsRemoveInterruptHandler ( 324a9f12690SJung-uk Kim UINT32 InterruptNumber, 325a9f12690SJung-uk Kim ACPI_OSD_HANDLER ServiceRoutine); 326313a0c13SJung-uk Kim #endif 327a9f12690SJung-uk Kim 328a9f12690SJung-uk Kim 329a9f12690SJung-uk Kim /* 330a9f12690SJung-uk Kim * Threads and Scheduling 331a9f12690SJung-uk Kim */ 332313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetThreadId 333a9f12690SJung-uk Kim ACPI_THREAD_ID 334a9f12690SJung-uk Kim AcpiOsGetThreadId ( 335a9f12690SJung-uk Kim void); 336313a0c13SJung-uk Kim #endif 337a9f12690SJung-uk Kim 338313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsExecute 339a9f12690SJung-uk Kim ACPI_STATUS 340a9f12690SJung-uk Kim AcpiOsExecute ( 341a9f12690SJung-uk Kim ACPI_EXECUTE_TYPE Type, 342a9f12690SJung-uk Kim ACPI_OSD_EXEC_CALLBACK Function, 343a9f12690SJung-uk Kim void *Context); 344313a0c13SJung-uk Kim #endif 345a9f12690SJung-uk Kim 346313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitEventsComplete 347a9f12690SJung-uk Kim void 348a9f12690SJung-uk Kim AcpiOsWaitEventsComplete ( 349a7a3b383SJung-uk Kim void); 350313a0c13SJung-uk Kim #endif 351a9f12690SJung-uk Kim 352313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSleep 353a9f12690SJung-uk Kim void 354a9f12690SJung-uk Kim AcpiOsSleep ( 3559a179dd8SJung-uk Kim UINT64 Milliseconds); 356313a0c13SJung-uk Kim #endif 357a9f12690SJung-uk Kim 358313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsStall 359a9f12690SJung-uk Kim void 360a9f12690SJung-uk Kim AcpiOsStall ( 361a9f12690SJung-uk Kim UINT32 Microseconds); 362313a0c13SJung-uk Kim #endif 363a9f12690SJung-uk Kim 364a9f12690SJung-uk Kim 365a9f12690SJung-uk Kim /* 366a9f12690SJung-uk Kim * Platform and hardware-independent I/O interfaces 367a9f12690SJung-uk Kim */ 368313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadPort 369a9f12690SJung-uk Kim ACPI_STATUS 370a9f12690SJung-uk Kim AcpiOsReadPort ( 371a9f12690SJung-uk Kim ACPI_IO_ADDRESS Address, 372a9f12690SJung-uk Kim UINT32 *Value, 373a9f12690SJung-uk Kim UINT32 Width); 374313a0c13SJung-uk Kim #endif 375a9f12690SJung-uk Kim 376313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritePort 377a9f12690SJung-uk Kim ACPI_STATUS 378a9f12690SJung-uk Kim AcpiOsWritePort ( 379a9f12690SJung-uk Kim ACPI_IO_ADDRESS Address, 380a9f12690SJung-uk Kim UINT32 Value, 381a9f12690SJung-uk Kim UINT32 Width); 382313a0c13SJung-uk Kim #endif 383a9f12690SJung-uk Kim 384a9f12690SJung-uk Kim 385a9f12690SJung-uk Kim /* 386a9f12690SJung-uk Kim * Platform and hardware-independent physical memory interfaces 387a9f12690SJung-uk Kim */ 388313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadMemory 389a9f12690SJung-uk Kim ACPI_STATUS 390a9f12690SJung-uk Kim AcpiOsReadMemory ( 391a9f12690SJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 392a159c266SJung-uk Kim UINT64 *Value, 393a9f12690SJung-uk Kim UINT32 Width); 394313a0c13SJung-uk Kim #endif 395a9f12690SJung-uk Kim 396313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWriteMemory 397a9f12690SJung-uk Kim ACPI_STATUS 398a9f12690SJung-uk Kim AcpiOsWriteMemory ( 399a9f12690SJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 400a159c266SJung-uk Kim UINT64 Value, 401a9f12690SJung-uk Kim UINT32 Width); 402313a0c13SJung-uk Kim #endif 403a9f12690SJung-uk Kim 404a9f12690SJung-uk Kim 405a9f12690SJung-uk Kim /* 406a9f12690SJung-uk Kim * Platform and hardware-independent PCI configuration space access 407a9f12690SJung-uk Kim * Note: Can't use "Register" as a parameter, changed to "Reg" -- 408a9f12690SJung-uk Kim * certain compilers complain. 409a9f12690SJung-uk Kim */ 410313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadPciConfiguration 411a9f12690SJung-uk Kim ACPI_STATUS 412a9f12690SJung-uk Kim AcpiOsReadPciConfiguration ( 413a9f12690SJung-uk Kim ACPI_PCI_ID *PciId, 414a9f12690SJung-uk Kim UINT32 Reg, 415709fac06SJung-uk Kim UINT64 *Value, 416a9f12690SJung-uk Kim UINT32 Width); 417313a0c13SJung-uk Kim #endif 418a9f12690SJung-uk Kim 419313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritePciConfiguration 420a9f12690SJung-uk Kim ACPI_STATUS 421a9f12690SJung-uk Kim AcpiOsWritePciConfiguration ( 422a9f12690SJung-uk Kim ACPI_PCI_ID *PciId, 423a9f12690SJung-uk Kim UINT32 Reg, 4249a179dd8SJung-uk Kim UINT64 Value, 425a9f12690SJung-uk Kim UINT32 Width); 426313a0c13SJung-uk Kim #endif 427a9f12690SJung-uk Kim 428a9f12690SJung-uk Kim 429a9f12690SJung-uk Kim /* 430a9f12690SJung-uk Kim * Miscellaneous 431a9f12690SJung-uk Kim */ 432313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadable 433a9f12690SJung-uk Kim BOOLEAN 434a9f12690SJung-uk Kim AcpiOsReadable ( 435a9f12690SJung-uk Kim void *Pointer, 436a9f12690SJung-uk Kim ACPI_SIZE Length); 437313a0c13SJung-uk Kim #endif 438a9f12690SJung-uk Kim 439313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritable 440a9f12690SJung-uk Kim BOOLEAN 441a9f12690SJung-uk Kim AcpiOsWritable ( 442a9f12690SJung-uk Kim void *Pointer, 443a9f12690SJung-uk Kim ACPI_SIZE Length); 444313a0c13SJung-uk Kim #endif 445a9f12690SJung-uk Kim 446313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTimer 447a9f12690SJung-uk Kim UINT64 448a9f12690SJung-uk Kim AcpiOsGetTimer ( 449a9f12690SJung-uk Kim void); 450313a0c13SJung-uk Kim #endif 451a9f12690SJung-uk Kim 452313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSignal 453a9f12690SJung-uk Kim ACPI_STATUS 454a9f12690SJung-uk Kim AcpiOsSignal ( 455a9f12690SJung-uk Kim UINT32 Function, 456a9f12690SJung-uk Kim void *Info); 457313a0c13SJung-uk Kim #endif 458a9f12690SJung-uk Kim 459a9f12690SJung-uk Kim 460a9f12690SJung-uk Kim /* 461a9f12690SJung-uk Kim * Debug print routines 462a9f12690SJung-uk Kim */ 463313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPrintf 464a9f12690SJung-uk Kim void ACPI_INTERNAL_VAR_XFACE 465a9f12690SJung-uk Kim AcpiOsPrintf ( 466a9f12690SJung-uk Kim const char *Format, 467a9f12690SJung-uk Kim ...); 468313a0c13SJung-uk Kim #endif 469a9f12690SJung-uk Kim 470313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsVprintf 471a9f12690SJung-uk Kim void 472a9f12690SJung-uk Kim AcpiOsVprintf ( 473a9f12690SJung-uk Kim const char *Format, 474a9f12690SJung-uk Kim va_list Args); 475313a0c13SJung-uk Kim #endif 476a9f12690SJung-uk Kim 477313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsRedirectOutput 478a9f12690SJung-uk Kim void 479a9f12690SJung-uk Kim AcpiOsRedirectOutput ( 480a9f12690SJung-uk Kim void *Destination); 481313a0c13SJung-uk Kim #endif 482a9f12690SJung-uk Kim 483a9f12690SJung-uk Kim 484a9f12690SJung-uk Kim /* 485a9f12690SJung-uk Kim * Debug input 486a9f12690SJung-uk Kim */ 487313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetLine 48842e58c03SJung-uk Kim ACPI_STATUS 489a9f12690SJung-uk Kim AcpiOsGetLine ( 49042e58c03SJung-uk Kim char *Buffer, 49142e58c03SJung-uk Kim UINT32 BufferLength, 49242e58c03SJung-uk Kim UINT32 *BytesRead); 493313a0c13SJung-uk Kim #endif 494a9f12690SJung-uk Kim 495493deb39SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTracePoint 496493deb39SJung-uk Kim void 497493deb39SJung-uk Kim AcpiOsTracePoint ( 498493deb39SJung-uk Kim ACPI_TRACE_EVENT_TYPE Type, 499493deb39SJung-uk Kim BOOLEAN Begin, 500493deb39SJung-uk Kim UINT8 *Aml, 501493deb39SJung-uk Kim char *Pathname); 502493deb39SJung-uk Kim #endif 503493deb39SJung-uk Kim 504a9f12690SJung-uk Kim 505a9f12690SJung-uk Kim /* 506a9d8d09cSJung-uk Kim * Obtain ACPI table(s) 507a9d8d09cSJung-uk Kim */ 508313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByName 509a9d8d09cSJung-uk Kim ACPI_STATUS 510a9d8d09cSJung-uk Kim AcpiOsGetTableByName ( 511a9d8d09cSJung-uk Kim char *Signature, 512a9d8d09cSJung-uk Kim UINT32 Instance, 513a9d8d09cSJung-uk Kim ACPI_TABLE_HEADER **Table, 514a9d8d09cSJung-uk Kim ACPI_PHYSICAL_ADDRESS *Address); 515313a0c13SJung-uk Kim #endif 516a9d8d09cSJung-uk Kim 517313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByIndex 518a9d8d09cSJung-uk Kim ACPI_STATUS 519a9d8d09cSJung-uk Kim AcpiOsGetTableByIndex ( 520a9d8d09cSJung-uk Kim UINT32 Index, 521a9d8d09cSJung-uk Kim ACPI_TABLE_HEADER **Table, 52279c6d946SJung-uk Kim UINT32 *Instance, 523a9d8d09cSJung-uk Kim ACPI_PHYSICAL_ADDRESS *Address); 524313a0c13SJung-uk Kim #endif 525a9d8d09cSJung-uk Kim 526313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByAddress 527a9d8d09cSJung-uk Kim ACPI_STATUS 528a9d8d09cSJung-uk Kim AcpiOsGetTableByAddress ( 529a9d8d09cSJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 530a9d8d09cSJung-uk Kim ACPI_TABLE_HEADER **Table); 531313a0c13SJung-uk Kim #endif 532a9d8d09cSJung-uk Kim 533a9d8d09cSJung-uk Kim 534a9d8d09cSJung-uk Kim /* 535a9f12690SJung-uk Kim * Directory manipulation 536a9f12690SJung-uk Kim */ 537313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsOpenDirectory 538a9f12690SJung-uk Kim void * 539a9f12690SJung-uk Kim AcpiOsOpenDirectory ( 540a9f12690SJung-uk Kim char *Pathname, 541a9f12690SJung-uk Kim char *WildcardSpec, 542a9f12690SJung-uk Kim char RequestedFileType); 543313a0c13SJung-uk Kim #endif 544a9f12690SJung-uk Kim 545a9f12690SJung-uk Kim /* RequesteFileType values */ 546a9f12690SJung-uk Kim 547a9f12690SJung-uk Kim #define REQUEST_FILE_ONLY 0 548a9f12690SJung-uk Kim #define REQUEST_DIR_ONLY 1 549a9f12690SJung-uk Kim 550a9f12690SJung-uk Kim 551313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetNextFilename 552a9f12690SJung-uk Kim char * 553a9f12690SJung-uk Kim AcpiOsGetNextFilename ( 554a9f12690SJung-uk Kim void *DirHandle); 555313a0c13SJung-uk Kim #endif 556a9f12690SJung-uk Kim 557313a0c13SJung-uk Kim #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCloseDirectory 558a9f12690SJung-uk Kim void 559a9f12690SJung-uk Kim AcpiOsCloseDirectory ( 560a9f12690SJung-uk Kim void *DirHandle); 561313a0c13SJung-uk Kim #endif 562313a0c13SJung-uk Kim 563313a0c13SJung-uk Kim 564a9f12690SJung-uk Kim #endif /* __ACPIOSXF_H__ */ 565