167754Smsmith/****************************************************************************** 267754Smsmith * 3241973Sjkim * Name: acpiosxf.h - All interfaces to the OS Services Layer (OSL). These 477424Smsmith * interfaces must be implemented by OSL to interface the 577424Smsmith * ACPI components to the host operating system. 667754Smsmith * 767754Smsmith *****************************************************************************/ 867754Smsmith 9217365Sjkim/* 10306536Sjkim * Copyright (C) 2000 - 2016, Intel Corp. 1170243Smsmith * All rights reserved. 1267754Smsmith * 13217365Sjkim * Redistribution and use in source and binary forms, with or without 14217365Sjkim * modification, are permitted provided that the following conditions 15217365Sjkim * are met: 16217365Sjkim * 1. Redistributions of source code must retain the above copyright 17217365Sjkim * notice, this list of conditions, and the following disclaimer, 18217365Sjkim * without modification. 19217365Sjkim * 2. Redistributions in binary form must reproduce at minimum a disclaimer 20217365Sjkim * substantially similar to the "NO WARRANTY" disclaimer below 21217365Sjkim * ("Disclaimer") and any redistribution must be conditioned upon 22217365Sjkim * including a substantially similar Disclaimer requirement for further 23217365Sjkim * binary redistribution. 24217365Sjkim * 3. Neither the names of the above-listed copyright holders nor the names 25217365Sjkim * of any contributors may be used to endorse or promote products derived 26217365Sjkim * from this software without specific prior written permission. 2767754Smsmith * 28217365Sjkim * Alternatively, this software may be distributed under the terms of the 29217365Sjkim * GNU General Public License ("GPL") version 2 as published by the Free 30217365Sjkim * Software Foundation. 3167754Smsmith * 32217365Sjkim * NO WARRANTY 33217365Sjkim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 34217365Sjkim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 35217365Sjkim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 36217365Sjkim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 37217365Sjkim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 38217365Sjkim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 39217365Sjkim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 40217365Sjkim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 41217365Sjkim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 42217365Sjkim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 43217365Sjkim * POSSIBILITY OF SUCH DAMAGES. 44217365Sjkim */ 4567754Smsmith 4677424Smsmith#ifndef __ACPIOSXF_H__ 4777424Smsmith#define __ACPIOSXF_H__ 4867754Smsmith 49193341Sjkim#include <contrib/dev/acpica/include/platform/acenv.h> 50193341Sjkim#include <contrib/dev/acpica/include/actypes.h> 5167754Smsmith 5267754Smsmith 53167802Sjkim/* Types for AcpiOsExecute */ 5467754Smsmith 55167802Sjkimtypedef enum 56167802Sjkim{ 57167802Sjkim OSL_GLOBAL_LOCK_HANDLER, 58167802Sjkim OSL_NOTIFY_HANDLER, 59167802Sjkim OSL_GPE_HANDLER, 60306536Sjkim OSL_DEBUGGER_MAIN_THREAD, 61306536Sjkim OSL_DEBUGGER_EXEC_THREAD, 62167802Sjkim OSL_EC_POLL_HANDLER, 63167802Sjkim OSL_EC_BURST_HANDLER 6467754Smsmith 65167802Sjkim} ACPI_EXECUTE_TYPE; 66167802Sjkim 6777424Smsmith#define ACPI_NO_UNIT_LIMIT ((UINT32) -1) 6877424Smsmith#define ACPI_MUTEX_SEM 1 6967754Smsmith 7067754Smsmith 7180062Smsmith/* Functions for AcpiOsSignal */ 7280062Smsmith 7380062Smsmith#define ACPI_SIGNAL_FATAL 0 7480062Smsmith#define ACPI_SIGNAL_BREAKPOINT 1 7580062Smsmith 76114237Snjltypedef struct acpi_signal_fatal_info 7780062Smsmith{ 7880062Smsmith UINT32 Type; 7980062Smsmith UINT32 Code; 8080062Smsmith UINT32 Argument; 8180062Smsmith 8280062Smsmith} ACPI_SIGNAL_FATAL_INFO; 8380062Smsmith 8480062Smsmith 8567754Smsmith/* 8677424Smsmith * OSL Initialization and shutdown primitives 8767754Smsmith */ 88281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInitialize 8967754SmsmithACPI_STATUS 9067754SmsmithAcpiOsInitialize ( 9167754Smsmith void); 92281075Sdim#endif 9367754Smsmith 94281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTerminate 9567754SmsmithACPI_STATUS 9667754SmsmithAcpiOsTerminate ( 9767754Smsmith void); 98281075Sdim#endif 9967754Smsmith 10099146Siwasaki 10199146Siwasaki/* 10299146Siwasaki * ACPI Table interfaces 10399146Siwasaki */ 104281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetRootPointer 105167802SjkimACPI_PHYSICAL_ADDRESS 10680062SmsmithAcpiOsGetRootPointer ( 107167802Sjkim void); 108281075Sdim#endif 10977424Smsmith 110281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPredefinedOverride 11199146SiwasakiACPI_STATUS 112114237SnjlAcpiOsPredefinedOverride ( 113114237Snjl const ACPI_PREDEFINED_NAMES *InitVal, 114114237Snjl ACPI_STRING *NewVal); 115281075Sdim#endif 116114237Snjl 117281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTableOverride 118114237SnjlACPI_STATUS 11999146SiwasakiAcpiOsTableOverride ( 12099146Siwasaki ACPI_TABLE_HEADER *ExistingTable, 12199146Siwasaki ACPI_TABLE_HEADER **NewTable); 122281075Sdim#endif 12380062Smsmith 124281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPhysicalTableOverride 125231844SjkimACPI_STATUS 126231844SjkimAcpiOsPhysicalTableOverride ( 127231844Sjkim ACPI_TABLE_HEADER *ExistingTable, 128231844Sjkim ACPI_PHYSICAL_ADDRESS *NewAddress, 129231844Sjkim UINT32 *NewTableLength); 130281075Sdim#endif 13199146Siwasaki 132231844Sjkim 13367754Smsmith/* 134167802Sjkim * Spinlock primitives 13567754Smsmith */ 136281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateLock 13767754SmsmithACPI_STATUS 138167802SjkimAcpiOsCreateLock ( 139167802Sjkim ACPI_SPINLOCK *OutHandle); 140241973Sjkim#endif 141167802Sjkim 142281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteLock 143167802Sjkimvoid 144167802SjkimAcpiOsDeleteLock ( 145167802Sjkim ACPI_SPINLOCK Handle); 146281075Sdim#endif 147167802Sjkim 148281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireLock 149167802SjkimACPI_CPU_FLAGS 150167802SjkimAcpiOsAcquireLock ( 151167802Sjkim ACPI_SPINLOCK Handle); 152281075Sdim#endif 153167802Sjkim 154281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseLock 155167802Sjkimvoid 156167802SjkimAcpiOsReleaseLock ( 157167802Sjkim ACPI_SPINLOCK Handle, 158167802Sjkim ACPI_CPU_FLAGS Flags); 159281075Sdim#endif 160167802Sjkim 161167802Sjkim 162167802Sjkim/* 163167802Sjkim * Semaphore primitives 164167802Sjkim */ 165281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateSemaphore 166167802SjkimACPI_STATUS 16767754SmsmithAcpiOsCreateSemaphore ( 16867754Smsmith UINT32 MaxUnits, 16967754Smsmith UINT32 InitialUnits, 170167802Sjkim ACPI_SEMAPHORE *OutHandle); 171281075Sdim#endif 17267754Smsmith 173281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteSemaphore 17467754SmsmithACPI_STATUS 17567754SmsmithAcpiOsDeleteSemaphore ( 176167802Sjkim ACPI_SEMAPHORE Handle); 177281075Sdim#endif 17867754Smsmith 179281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitSemaphore 18067754SmsmithACPI_STATUS 18167754SmsmithAcpiOsWaitSemaphore ( 182167802Sjkim ACPI_SEMAPHORE Handle, 18367754Smsmith UINT32 Units, 184107325Siwasaki UINT16 Timeout); 185281075Sdim#endif 18667754Smsmith 187281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSignalSemaphore 18867754SmsmithACPI_STATUS 18967754SmsmithAcpiOsSignalSemaphore ( 190167802Sjkim ACPI_SEMAPHORE Handle, 19167754Smsmith UINT32 Units); 192281075Sdim#endif 19367754Smsmith 194167802Sjkim 195167802Sjkim/* 196193267Sjkim * Mutex primitives. May be configured to use semaphores instead via 197193267Sjkim * ACPI_MUTEX_TYPE (see platform/acenv.h) 198167802Sjkim */ 199193267Sjkim#if (ACPI_MUTEX_TYPE != ACPI_BINARY_SEMAPHORE) 200193267Sjkim 201281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateMutex 202117521SnjlACPI_STATUS 203167802SjkimAcpiOsCreateMutex ( 204167802Sjkim ACPI_MUTEX *OutHandle); 205281075Sdim#endif 20677424Smsmith 207281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteMutex 208117521Snjlvoid 209167802SjkimAcpiOsDeleteMutex ( 210167802Sjkim ACPI_MUTEX Handle); 211281075Sdim#endif 212117521Snjl 213281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireMutex 214167802SjkimACPI_STATUS 215167802SjkimAcpiOsAcquireMutex ( 216167802Sjkim ACPI_MUTEX Handle, 217167802Sjkim UINT16 Timeout); 218281075Sdim#endif 219117521Snjl 220281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseMutex 221117521Snjlvoid 222167802SjkimAcpiOsReleaseMutex ( 223167802Sjkim ACPI_MUTEX Handle); 224193267Sjkim#endif 225117521Snjl 226281075Sdim#endif 227117521Snjl 228281075Sdim 22967754Smsmith/* 23067754Smsmith * Memory allocation and mapping 23167754Smsmith */ 232281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAllocate 23367754Smsmithvoid * 23467754SmsmithAcpiOsAllocate ( 23591116Smsmith ACPI_SIZE Size); 236281075Sdim#endif 23767754Smsmith 238281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAllocateZeroed 239281075Sdimvoid * 240281075SdimAcpiOsAllocateZeroed ( 241281075Sdim ACPI_SIZE Size); 242281075Sdim#endif 243281075Sdim 244281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsFree 24567754Smsmithvoid 24667754SmsmithAcpiOsFree ( 24767754Smsmith void * Memory); 248281075Sdim#endif 24967754Smsmith 250281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsMapMemory 251167802Sjkimvoid * 25267754SmsmithAcpiOsMapMemory ( 253167802Sjkim ACPI_PHYSICAL_ADDRESS Where, 254193267Sjkim ACPI_SIZE Length); 255281075Sdim#endif 25667754Smsmith 257281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsUnmapMemory 25867754Smsmithvoid 25967754SmsmithAcpiOsUnmapMemory ( 26067754Smsmith void *LogicalAddress, 26191116Smsmith ACPI_SIZE Size); 262281075Sdim#endif 26367754Smsmith 264281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetPhysicalAddress 26571867SmsmithACPI_STATUS 26671867SmsmithAcpiOsGetPhysicalAddress ( 26771867Smsmith void *LogicalAddress, 26871867Smsmith ACPI_PHYSICAL_ADDRESS *PhysicalAddress); 269281075Sdim#endif 27067754Smsmith 27177424Smsmith 27267754Smsmith/* 273151937Sjkim * Memory/Object Cache 27467754Smsmith */ 275281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCreateCache 276151937SjkimACPI_STATUS 277151937SjkimAcpiOsCreateCache ( 278151937Sjkim char *CacheName, 279151937Sjkim UINT16 ObjectSize, 280151937Sjkim UINT16 MaxDepth, 281151937Sjkim ACPI_CACHE_T **ReturnCache); 282281075Sdim#endif 28367754Smsmith 284281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsDeleteCache 28567754SmsmithACPI_STATUS 286151937SjkimAcpiOsDeleteCache ( 287151937Sjkim ACPI_CACHE_T *Cache); 288281075Sdim#endif 289151937Sjkim 290281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPurgeCache 291151937SjkimACPI_STATUS 292151937SjkimAcpiOsPurgeCache ( 293151937Sjkim ACPI_CACHE_T *Cache); 294281075Sdim#endif 295151937Sjkim 296281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsAcquireObject 297151937Sjkimvoid * 298151937SjkimAcpiOsAcquireObject ( 299151937Sjkim ACPI_CACHE_T *Cache); 300281075Sdim#endif 301151937Sjkim 302281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReleaseObject 303151937SjkimACPI_STATUS 304151937SjkimAcpiOsReleaseObject ( 305151937Sjkim ACPI_CACHE_T *Cache, 306151937Sjkim void *Object); 307281075Sdim#endif 308151937Sjkim 309151937Sjkim 310151937Sjkim/* 311151937Sjkim * Interrupt handlers 312151937Sjkim */ 313281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsInstallInterruptHandler 314151937SjkimACPI_STATUS 31567754SmsmithAcpiOsInstallInterruptHandler ( 31667754Smsmith UINT32 InterruptNumber, 317138287Smarks ACPI_OSD_HANDLER ServiceRoutine, 31867754Smsmith void *Context); 319281075Sdim#endif 32067754Smsmith 321281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsRemoveInterruptHandler 32267754SmsmithACPI_STATUS 32367754SmsmithAcpiOsRemoveInterruptHandler ( 32467754Smsmith UINT32 InterruptNumber, 325138287Smarks ACPI_OSD_HANDLER ServiceRoutine); 326281075Sdim#endif 32767754Smsmith 32867754Smsmith 32967754Smsmith/* 33077424Smsmith * Threads and Scheduling 33167754Smsmith */ 332281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetThreadId 333167802SjkimACPI_THREAD_ID 33477424SmsmithAcpiOsGetThreadId ( 33577424Smsmith void); 336281075Sdim#endif 33777424Smsmith 338281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsExecute 33967754SmsmithACPI_STATUS 340167802SjkimAcpiOsExecute ( 341167802Sjkim ACPI_EXECUTE_TYPE Type, 342138287Smarks ACPI_OSD_EXEC_CALLBACK Function, 34367754Smsmith void *Context); 344281075Sdim#endif 34567754Smsmith 346281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWaitEventsComplete 34767754Smsmithvoid 348138287SmarksAcpiOsWaitEventsComplete ( 349235945Sjkim void); 350281075Sdim#endif 351138287Smarks 352281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSleep 353138287Smarksvoid 35467754SmsmithAcpiOsSleep ( 355202771Sjkim UINT64 Milliseconds); 356281075Sdim#endif 35767754Smsmith 358281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsStall 35967754Smsmithvoid 36080062SmsmithAcpiOsStall ( 36167754Smsmith UINT32 Microseconds); 362281075Sdim#endif 36367754Smsmith 36477424Smsmith 36567754Smsmith/* 36680062Smsmith * Platform and hardware-independent I/O interfaces 36767754Smsmith */ 368281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadPort 36980062SmsmithACPI_STATUS 37080062SmsmithAcpiOsReadPort ( 37180062Smsmith ACPI_IO_ADDRESS Address, 372117521Snjl UINT32 *Value, 37380062Smsmith UINT32 Width); 374281075Sdim#endif 37567754Smsmith 376281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritePort 37780062SmsmithACPI_STATUS 37880062SmsmithAcpiOsWritePort ( 37980062Smsmith ACPI_IO_ADDRESS Address, 380117521Snjl UINT32 Value, 38180062Smsmith UINT32 Width); 382281075Sdim#endif 38367754Smsmith 38467754Smsmith 38567754Smsmith/* 38680062Smsmith * Platform and hardware-independent physical memory interfaces 38767754Smsmith */ 388281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadMemory 38980062SmsmithACPI_STATUS 39080062SmsmithAcpiOsReadMemory ( 39180062Smsmith ACPI_PHYSICAL_ADDRESS Address, 392231844Sjkim UINT64 *Value, 39380062Smsmith UINT32 Width); 394281075Sdim#endif 39567754Smsmith 396281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWriteMemory 39780062SmsmithACPI_STATUS 39880062SmsmithAcpiOsWriteMemory ( 39980062Smsmith ACPI_PHYSICAL_ADDRESS Address, 400231844Sjkim UINT64 Value, 40180062Smsmith UINT32 Width); 402281075Sdim#endif 40367754Smsmith 40467754Smsmith 40567754Smsmith/* 40680062Smsmith * Platform and hardware-independent PCI configuration space access 407138287Smarks * Note: Can't use "Register" as a parameter, changed to "Reg" -- 408138287Smarks * certain compilers complain. 40967754Smsmith */ 410281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadPciConfiguration 41167754SmsmithACPI_STATUS 41280062SmsmithAcpiOsReadPciConfiguration ( 41380062Smsmith ACPI_PCI_ID *PciId, 414138287Smarks UINT32 Reg, 415210976Sjkim UINT64 *Value, 41680062Smsmith UINT32 Width); 417281075Sdim#endif 41867754Smsmith 419281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritePciConfiguration 42067754SmsmithACPI_STATUS 42180062SmsmithAcpiOsWritePciConfiguration ( 42280062Smsmith ACPI_PCI_ID *PciId, 423138287Smarks UINT32 Reg, 424202771Sjkim UINT64 Value, 42580062Smsmith UINT32 Width); 426281075Sdim#endif 42767754Smsmith 428167802Sjkim 429114237Snjl/* 43067754Smsmith * Miscellaneous 43167754Smsmith */ 432281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadable 43367754SmsmithBOOLEAN 43467754SmsmithAcpiOsReadable ( 43567754Smsmith void *Pointer, 436117521Snjl ACPI_SIZE Length); 437281075Sdim#endif 43867754Smsmith 439281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWritable 44067754SmsmithBOOLEAN 44167754SmsmithAcpiOsWritable ( 44267754Smsmith void *Pointer, 443117521Snjl ACPI_SIZE Length); 444281075Sdim#endif 44567754Smsmith 446281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTimer 447138287SmarksUINT64 44878986SmsmithAcpiOsGetTimer ( 44978986Smsmith void); 450281075Sdim#endif 45167754Smsmith 452281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSignal 45380062SmsmithACPI_STATUS 45480062SmsmithAcpiOsSignal ( 45580062Smsmith UINT32 Function, 45680062Smsmith void *Info); 457281075Sdim#endif 45878986Smsmith 459167802Sjkim 46067754Smsmith/* 46167754Smsmith * Debug print routines 46267754Smsmith */ 463281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsPrintf 46492388Smsmithvoid ACPI_INTERNAL_VAR_XFACE 46567754SmsmithAcpiOsPrintf ( 466114237Snjl const char *Format, 46767754Smsmith ...); 468281075Sdim#endif 46967754Smsmith 470281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsVprintf 47191116Smsmithvoid 47267754SmsmithAcpiOsVprintf ( 473114237Snjl const char *Format, 47467754Smsmith va_list Args); 475281075Sdim#endif 47667754Smsmith 477281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsRedirectOutput 478100966Siwasakivoid 479100966SiwasakiAcpiOsRedirectOutput ( 480100966Siwasaki void *Destination); 481281075Sdim#endif 48277424Smsmith 483100966Siwasaki 48467754Smsmith/* 48567754Smsmith * Debug input 48667754Smsmith */ 487281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetLine 488222544SjkimACPI_STATUS 48967754SmsmithAcpiOsGetLine ( 490222544Sjkim char *Buffer, 491222544Sjkim UINT32 BufferLength, 492222544Sjkim UINT32 *BytesRead); 493281075Sdim#endif 49467754Smsmith 49567754Smsmith 49667754Smsmith/* 497250838Sjkim * Obtain ACPI table(s) 498250838Sjkim */ 499281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByName 500250838SjkimACPI_STATUS 501250838SjkimAcpiOsGetTableByName ( 502250838Sjkim char *Signature, 503250838Sjkim UINT32 Instance, 504250838Sjkim ACPI_TABLE_HEADER **Table, 505250838Sjkim ACPI_PHYSICAL_ADDRESS *Address); 506281075Sdim#endif 507250838Sjkim 508281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByIndex 509250838SjkimACPI_STATUS 510250838SjkimAcpiOsGetTableByIndex ( 511250838Sjkim UINT32 Index, 512250838Sjkim ACPI_TABLE_HEADER **Table, 513254745Sjkim UINT32 *Instance, 514250838Sjkim ACPI_PHYSICAL_ADDRESS *Address); 515281075Sdim#endif 516250838Sjkim 517281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByAddress 518250838SjkimACPI_STATUS 519250838SjkimAcpiOsGetTableByAddress ( 520250838Sjkim ACPI_PHYSICAL_ADDRESS Address, 521250838Sjkim ACPI_TABLE_HEADER **Table); 522281075Sdim#endif 523250838Sjkim 524250838Sjkim 525250838Sjkim/* 526114237Snjl * Directory manipulation 527114237Snjl */ 528281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsOpenDirectory 529114237Snjlvoid * 530114237SnjlAcpiOsOpenDirectory ( 531114237Snjl char *Pathname, 532114237Snjl char *WildcardSpec, 533114237Snjl char RequestedFileType); 534281075Sdim#endif 535114237Snjl 536114237Snjl/* RequesteFileType values */ 537114237Snjl 538114237Snjl#define REQUEST_FILE_ONLY 0 539114237Snjl#define REQUEST_DIR_ONLY 1 540114237Snjl 541114237Snjl 542281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetNextFilename 543114237Snjlchar * 544114237SnjlAcpiOsGetNextFilename ( 545114237Snjl void *DirHandle); 546281075Sdim#endif 547114237Snjl 548281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCloseDirectory 549114237Snjlvoid 550114237SnjlAcpiOsCloseDirectory ( 551114237Snjl void *DirHandle); 552281075Sdim#endif 553114237Snjl 55467754Smsmith 555281075Sdim/* 556281075Sdim * File I/O and related support 557281075Sdim */ 558281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsOpenFile 559281075SdimACPI_FILE 560281075SdimAcpiOsOpenFile ( 561281075Sdim const char *Path, 562281075Sdim UINT8 Modes); 563281075Sdim#endif 564281075Sdim 565281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsCloseFile 566281075Sdimvoid 567281075SdimAcpiOsCloseFile ( 568281075Sdim ACPI_FILE File); 569281075Sdim#endif 570281075Sdim 571281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsReadFile 572281075Sdimint 573281075SdimAcpiOsReadFile ( 574281075Sdim ACPI_FILE File, 575281075Sdim void *Buffer, 576281075Sdim ACPI_SIZE Size, 577281075Sdim ACPI_SIZE Count); 578281075Sdim#endif 579281075Sdim 580281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsWriteFile 581281075Sdimint 582281075SdimAcpiOsWriteFile ( 583281075Sdim ACPI_FILE File, 584281075Sdim void *Buffer, 585281075Sdim ACPI_SIZE Size, 586281075Sdim ACPI_SIZE Count); 587281075Sdim#endif 588281075Sdim 589281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetFileOffset 590281075Sdimlong 591281075SdimAcpiOsGetFileOffset ( 592281075Sdim ACPI_FILE File); 593281075Sdim#endif 594281075Sdim 595281075Sdim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsSetFileOffset 596281075SdimACPI_STATUS 597281075SdimAcpiOsSetFileOffset ( 598281075Sdim ACPI_FILE File, 599281075Sdim long Offset, 600281075Sdim UINT8 From); 601281075Sdim#endif 602281075Sdim 603306536Sjkim#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsTracePoint 604306536Sjkimvoid 605306536SjkimAcpiOsTracePoint ( 606306536Sjkim ACPI_TRACE_EVENT_TYPE Type, 607306536Sjkim BOOLEAN Begin, 608306536Sjkim UINT8 *Aml, 609306536Sjkim char *Pathname); 610306536Sjkim#endif 611281075Sdim 612306536Sjkim 61377424Smsmith#endif /* __ACPIOSXF_H__ */ 614