195857638SErik Schmauss /* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */ 21da177e4SLinus Torvalds /****************************************************************************** 31da177e4SLinus Torvalds * 41da177e4SLinus Torvalds * Name: acpiosxf.h - All interfaces to the OS Services Layer (OSL). These 51da177e4SLinus Torvalds * interfaces must be implemented by OSL to interface the 61da177e4SLinus Torvalds * ACPI components to the host operating system. 71da177e4SLinus Torvalds * 8*612c2932SBob Moore * Copyright (C) 2000 - 2023, Intel Corp. 91da177e4SLinus Torvalds * 1095857638SErik Schmauss *****************************************************************************/ 111da177e4SLinus Torvalds 121da177e4SLinus Torvalds #ifndef __ACPIOSXF_H__ 131da177e4SLinus Torvalds #define __ACPIOSXF_H__ 141da177e4SLinus Torvalds 15a1ce3928SDavid Howells #include <acpi/platform/acenv.h> 16a1ce3928SDavid Howells #include <acpi/actypes.h> 171da177e4SLinus Torvalds 18958dd242SBob Moore /* Types for acpi_os_execute */ 191da177e4SLinus Torvalds 20958dd242SBob Moore typedef enum { 21958dd242SBob Moore OSL_GLOBAL_LOCK_HANDLER, 22958dd242SBob Moore OSL_NOTIFY_HANDLER, 23958dd242SBob Moore OSL_GPE_HANDLER, 24f988f24eSLv Zheng OSL_DEBUGGER_MAIN_THREAD, 25f988f24eSLv Zheng OSL_DEBUGGER_EXEC_THREAD, 26958dd242SBob Moore OSL_EC_POLL_HANDLER, 274119532cSBob Moore OSL_EC_BURST_HANDLER 28958dd242SBob Moore } acpi_execute_type; 291da177e4SLinus Torvalds 301da177e4SLinus Torvalds #define ACPI_NO_UNIT_LIMIT ((u32) -1) 311da177e4SLinus Torvalds #define ACPI_MUTEX_SEM 1 321da177e4SLinus Torvalds 331da177e4SLinus Torvalds /* Functions for acpi_os_signal */ 341da177e4SLinus Torvalds 351da177e4SLinus Torvalds #define ACPI_SIGNAL_FATAL 0 361da177e4SLinus Torvalds #define ACPI_SIGNAL_BREAKPOINT 1 371da177e4SLinus Torvalds 384be44fcdSLen Brown struct acpi_signal_fatal_info { 391da177e4SLinus Torvalds u32 type; 401da177e4SLinus Torvalds u32 code; 411da177e4SLinus Torvalds u32 argument; 421da177e4SLinus Torvalds }; 431da177e4SLinus Torvalds 441da177e4SLinus Torvalds /* 451da177e4SLinus Torvalds * OSL Initialization and shutdown primitives 461da177e4SLinus Torvalds */ 477e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_initialize 4893220587SLv Zheng acpi_status acpi_os_initialize(void); 497e94632fSLv Zheng #endif 501da177e4SLinus Torvalds 517e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_terminate 524be44fcdSLen Brown acpi_status acpi_os_terminate(void); 537e94632fSLv Zheng #endif 541da177e4SLinus Torvalds 551da177e4SLinus Torvalds /* 561da177e4SLinus Torvalds * ACPI Table interfaces 571da177e4SLinus Torvalds */ 587e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_root_pointer 59f3d2e786SBob Moore acpi_physical_address acpi_os_get_root_pointer(void); 607e94632fSLv Zheng #endif 611da177e4SLinus Torvalds 627e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_predefined_override 631da177e4SLinus Torvalds acpi_status 644be44fcdSLen Brown acpi_os_predefined_override(const struct acpi_predefined_names *init_val, 6580b28810SLv Zheng acpi_string *new_val); 667e94632fSLv Zheng #endif 671da177e4SLinus Torvalds 687e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_table_override 691da177e4SLinus Torvalds acpi_status 704be44fcdSLen Brown acpi_os_table_override(struct acpi_table_header *existing_table, 711da177e4SLinus Torvalds struct acpi_table_header **new_table); 727e94632fSLv Zheng #endif 731da177e4SLinus Torvalds 747e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_physical_table_override 75f7b004a1SBob Moore acpi_status 76f7b004a1SBob Moore acpi_os_physical_table_override(struct acpi_table_header *existing_table, 77f7b004a1SBob Moore acpi_physical_address *new_address, 78f7b004a1SBob Moore u32 *new_table_length); 797e94632fSLv Zheng #endif 80f7b004a1SBob Moore 811da177e4SLinus Torvalds /* 82967440e3SBob Moore * Spinlock primitives 83967440e3SBob Moore */ 847e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_create_lock 853e8214e5SLv Zheng acpi_status acpi_os_create_lock(acpi_spinlock * out_handle); 8607e49a7aSRafael J. Wysocki #endif 879f63b88bSLin Ming 887e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_delete_lock 89967440e3SBob Moore void acpi_os_delete_lock(acpi_spinlock handle); 907e94632fSLv Zheng #endif 91967440e3SBob Moore 927e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_acquire_lock 93967440e3SBob Moore acpi_cpu_flags acpi_os_acquire_lock(acpi_spinlock handle); 947e94632fSLv Zheng #endif 95967440e3SBob Moore 967e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_release_lock 97967440e3SBob Moore void acpi_os_release_lock(acpi_spinlock handle, acpi_cpu_flags flags); 987e94632fSLv Zheng #endif 99967440e3SBob Moore 100967440e3SBob Moore /* 101c3052594SSebastian Andrzej Siewior * RAW spinlock primitives. If the OS does not provide them, fallback to 102c3052594SSebastian Andrzej Siewior * spinlock primitives 103c3052594SSebastian Andrzej Siewior */ 104c3052594SSebastian Andrzej Siewior #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_create_raw_lock 105c3052594SSebastian Andrzej Siewior # define acpi_os_create_raw_lock(out_handle) acpi_os_create_lock(out_handle) 106c3052594SSebastian Andrzej Siewior #endif 107c3052594SSebastian Andrzej Siewior 108c3052594SSebastian Andrzej Siewior #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_delete_raw_lock 109c3052594SSebastian Andrzej Siewior # define acpi_os_delete_raw_lock(handle) acpi_os_delete_lock(handle) 110c3052594SSebastian Andrzej Siewior #endif 111c3052594SSebastian Andrzej Siewior 112c3052594SSebastian Andrzej Siewior #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_acquire_raw_lock 113c3052594SSebastian Andrzej Siewior # define acpi_os_acquire_raw_lock(handle) acpi_os_acquire_lock(handle) 114c3052594SSebastian Andrzej Siewior #endif 115c3052594SSebastian Andrzej Siewior 116c3052594SSebastian Andrzej Siewior #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_release_raw_lock 117c3052594SSebastian Andrzej Siewior # define acpi_os_release_raw_lock(handle, flags) \ 118c3052594SSebastian Andrzej Siewior acpi_os_release_lock(handle, flags) 119c3052594SSebastian Andrzej Siewior #endif 120c3052594SSebastian Andrzej Siewior 121c3052594SSebastian Andrzej Siewior /* 122967440e3SBob Moore * Semaphore primitives 1231da177e4SLinus Torvalds */ 1247e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_create_semaphore 1251da177e4SLinus Torvalds acpi_status 1264be44fcdSLen Brown acpi_os_create_semaphore(u32 max_units, 127967440e3SBob Moore u32 initial_units, acpi_semaphore * out_handle); 1287e94632fSLv Zheng #endif 1291da177e4SLinus Torvalds 1307e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_delete_semaphore 131967440e3SBob Moore acpi_status acpi_os_delete_semaphore(acpi_semaphore handle); 1327e94632fSLv Zheng #endif 1331da177e4SLinus Torvalds 1347e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_wait_semaphore 135967440e3SBob Moore acpi_status 136967440e3SBob Moore acpi_os_wait_semaphore(acpi_semaphore handle, u32 units, u16 timeout); 1377e94632fSLv Zheng #endif 1381da177e4SLinus Torvalds 1397e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_signal_semaphore 140967440e3SBob Moore acpi_status acpi_os_signal_semaphore(acpi_semaphore handle, u32 units); 1417e94632fSLv Zheng #endif 1421da177e4SLinus Torvalds 143967440e3SBob Moore /* 1441685bd40SBob Moore * Mutex primitives. May be configured to use semaphores instead via 1451685bd40SBob Moore * ACPI_MUTEX_TYPE (see platform/acenv.h) 146967440e3SBob Moore */ 1471685bd40SBob Moore #if (ACPI_MUTEX_TYPE != ACPI_BINARY_SEMAPHORE) 1481685bd40SBob Moore 1497e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_create_mutex 150967440e3SBob Moore acpi_status acpi_os_create_mutex(acpi_mutex * out_handle); 1517e94632fSLv Zheng #endif 1521da177e4SLinus Torvalds 1537e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_delete_mutex 154967440e3SBob Moore void acpi_os_delete_mutex(acpi_mutex handle); 1557e94632fSLv Zheng #endif 1561da177e4SLinus Torvalds 1577e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_acquire_mutex 158967440e3SBob Moore acpi_status acpi_os_acquire_mutex(acpi_mutex handle, u16 timeout); 1597e94632fSLv Zheng #endif 1601da177e4SLinus Torvalds 1617e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_release_mutex 162967440e3SBob Moore void acpi_os_release_mutex(acpi_mutex handle); 1631685bd40SBob Moore #endif 1641da177e4SLinus Torvalds 1657e94632fSLv Zheng #endif 1667e94632fSLv Zheng 1671da177e4SLinus Torvalds /* 1681da177e4SLinus Torvalds * Memory allocation and mapping 1691da177e4SLinus Torvalds */ 1707e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_allocate 1714be44fcdSLen Brown void *acpi_os_allocate(acpi_size size); 1727e94632fSLv Zheng #endif 1731da177e4SLinus Torvalds 1747e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_allocate_zeroed 175b3c86c30SLv Zheng void *acpi_os_allocate_zeroed(acpi_size size); 1767e94632fSLv Zheng #endif 177b3c86c30SLv Zheng 1787e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_free 179739dcbb9SLv Zheng void acpi_os_free(void *memory); 1807e94632fSLv Zheng #endif 181739dcbb9SLv Zheng 1827e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_map_memory 18393220587SLv Zheng void *acpi_os_map_memory(acpi_physical_address where, acpi_size length); 1847e94632fSLv Zheng #endif 1851da177e4SLinus Torvalds 1867e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_unmap_memory 18793220587SLv Zheng void acpi_os_unmap_memory(void *logical_address, acpi_size size); 1887e94632fSLv Zheng #endif 1891da177e4SLinus Torvalds 1907e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_physical_address 1911da177e4SLinus Torvalds acpi_status 1924be44fcdSLen Brown acpi_os_get_physical_address(void *logical_address, 1931da177e4SLinus Torvalds acpi_physical_address *physical_address); 1941da177e4SLinus Torvalds #endif 1951da177e4SLinus Torvalds 19673459f73SRobert Moore /* 19773459f73SRobert Moore * Memory/Object Cache 19873459f73SRobert Moore */ 1997e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_create_cache 20073459f73SRobert Moore acpi_status 2014be44fcdSLen Brown acpi_os_create_cache(char *cache_name, 20273459f73SRobert Moore u16 object_size, 2034be44fcdSLen Brown u16 max_depth, acpi_cache_t ** return_cache); 2047e94632fSLv Zheng #endif 20573459f73SRobert Moore 2067e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_delete_cache 2074be44fcdSLen Brown acpi_status acpi_os_delete_cache(acpi_cache_t * cache); 2087e94632fSLv Zheng #endif 20973459f73SRobert Moore 2107e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_purge_cache 2114be44fcdSLen Brown acpi_status acpi_os_purge_cache(acpi_cache_t * cache); 2127e94632fSLv Zheng #endif 21373459f73SRobert Moore 2147e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_acquire_object 2154be44fcdSLen Brown void *acpi_os_acquire_object(acpi_cache_t * cache); 2167e94632fSLv Zheng #endif 21773459f73SRobert Moore 2187e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_release_object 2194be44fcdSLen Brown acpi_status acpi_os_release_object(acpi_cache_t * cache, void *object); 2207e94632fSLv Zheng #endif 22173459f73SRobert Moore 2221da177e4SLinus Torvalds /* 2231da177e4SLinus Torvalds * Interrupt handlers 2241da177e4SLinus Torvalds */ 2257e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_install_interrupt_handler 2261da177e4SLinus Torvalds acpi_status 227739dcbb9SLv Zheng acpi_os_install_interrupt_handler(u32 interrupt_number, 2281da177e4SLinus Torvalds acpi_osd_handler service_routine, 2291da177e4SLinus Torvalds void *context); 2307e94632fSLv Zheng #endif 2311da177e4SLinus Torvalds 2327e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_remove_interrupt_handler 2331da177e4SLinus Torvalds acpi_status 234739dcbb9SLv Zheng acpi_os_remove_interrupt_handler(u32 interrupt_number, 235739dcbb9SLv Zheng acpi_osd_handler service_routine); 2367e94632fSLv Zheng #endif 2371da177e4SLinus Torvalds 2381da177e4SLinus Torvalds /* 2391da177e4SLinus Torvalds * Threads and Scheduling 2401da177e4SLinus Torvalds */ 2417e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_thread_id 2428313524aSBob Moore acpi_thread_id acpi_os_get_thread_id(void); 2437e94632fSLv Zheng #endif 2441da177e4SLinus Torvalds 2457e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_execute 2461da177e4SLinus Torvalds acpi_status 247958dd242SBob Moore acpi_os_execute(acpi_execute_type type, 2484be44fcdSLen Brown acpi_osd_exec_callback function, void *context); 2497e94632fSLv Zheng #endif 2501da177e4SLinus Torvalds 2517e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_wait_events_complete 252bd6f10a5SLin Ming void acpi_os_wait_events_complete(void); 2537e94632fSLv Zheng #endif 2541da177e4SLinus Torvalds 2557e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_sleep 2565df7e6cbSBob Moore void acpi_os_sleep(u64 milliseconds); 2577e94632fSLv Zheng #endif 2581da177e4SLinus Torvalds 2597e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_stall 2604be44fcdSLen Brown void acpi_os_stall(u32 microseconds); 2617e94632fSLv Zheng #endif 2621da177e4SLinus Torvalds 2631da177e4SLinus Torvalds /* 2641da177e4SLinus Torvalds * Platform and hardware-independent I/O interfaces 2651da177e4SLinus Torvalds */ 2667e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_read_port 2674be44fcdSLen Brown acpi_status acpi_os_read_port(acpi_io_address address, u32 *value, u32 width); 2687e94632fSLv Zheng #endif 2691da177e4SLinus Torvalds 2707e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_write_port 2714be44fcdSLen Brown acpi_status acpi_os_write_port(acpi_io_address address, u32 value, u32 width); 2727e94632fSLv Zheng #endif 2731da177e4SLinus Torvalds 2741da177e4SLinus Torvalds /* 2751da177e4SLinus Torvalds * Platform and hardware-independent physical memory interfaces 2761da177e4SLinus Torvalds */ 277eeb2d80dSSrinivas Pandruvada int acpi_os_read_iomem(void __iomem *virt_addr, u64 *value, u32 width); 278eeb2d80dSSrinivas Pandruvada 2797e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_read_memory 2801da177e4SLinus Torvalds acpi_status 281653f4b53SBob Moore acpi_os_read_memory(acpi_physical_address address, u64 *value, u32 width); 2827e94632fSLv Zheng #endif 2831da177e4SLinus Torvalds 2847e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_write_memory 2851da177e4SLinus Torvalds acpi_status 286653f4b53SBob Moore acpi_os_write_memory(acpi_physical_address address, u64 value, u32 width); 2877e94632fSLv Zheng #endif 2881da177e4SLinus Torvalds 2891da177e4SLinus Torvalds /* 2901da177e4SLinus Torvalds * Platform and hardware-independent PCI configuration space access 2911da177e4SLinus Torvalds * Note: Can't use "Register" as a parameter, changed to "Reg" -- 2921da177e4SLinus Torvalds * certain compilers complain. 2931da177e4SLinus Torvalds */ 2947e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_read_pci_configuration 2951da177e4SLinus Torvalds acpi_status 2964be44fcdSLen Brown acpi_os_read_pci_configuration(struct acpi_pci_id *pci_id, 297c5f0231eSBob Moore u32 reg, u64 *value, u32 width); 2987e94632fSLv Zheng #endif 2991da177e4SLinus Torvalds 3007e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_write_pci_configuration 3011da177e4SLinus Torvalds acpi_status 3024be44fcdSLen Brown acpi_os_write_pci_configuration(struct acpi_pci_id *pci_id, 3035df7e6cbSBob Moore u32 reg, u64 value, u32 width); 3047e94632fSLv Zheng #endif 3051da177e4SLinus Torvalds 3061da177e4SLinus Torvalds /* 3071da177e4SLinus Torvalds * Miscellaneous 3081da177e4SLinus Torvalds */ 3097e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_readable 3107e94632fSLv Zheng u8 acpi_os_readable(void *pointer, acpi_size length); 3117e94632fSLv Zheng #endif 3121da177e4SLinus Torvalds 3137e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_writable 3147e94632fSLv Zheng u8 acpi_os_writable(void *pointer, acpi_size length); 3157e94632fSLv Zheng #endif 3167e94632fSLv Zheng 3177e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_timer 3187e94632fSLv Zheng u64 acpi_os_get_timer(void); 3197e94632fSLv Zheng #endif 3207e94632fSLv Zheng 3217e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_signal 3224be44fcdSLen Brown acpi_status acpi_os_signal(u32 function, void *info); 3237e94632fSLv Zheng #endif 3241da177e4SLinus Torvalds 3250fc5e8f4SLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_enter_sleep 3260fc5e8f4SLv Zheng acpi_status acpi_os_enter_sleep(u8 sleep_state, u32 rega_value, u32 regb_value); 3270fc5e8f4SLv Zheng #endif 3280fc5e8f4SLv Zheng 3291da177e4SLinus Torvalds /* 3301da177e4SLinus Torvalds * Debug print routines 3311da177e4SLinus Torvalds */ 3327e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_printf 33336056d0cSBob Moore ACPI_PRINTF_LIKE(1) 3344be44fcdSLen Brown void ACPI_INTERNAL_VAR_XFACE acpi_os_printf(const char *format, ...); 3357e94632fSLv Zheng #endif 3361da177e4SLinus Torvalds 3377e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_vprintf 3384be44fcdSLen Brown void acpi_os_vprintf(const char *format, va_list args); 3397e94632fSLv Zheng #endif 3401da177e4SLinus Torvalds 3417e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_redirect_output 3424be44fcdSLen Brown void acpi_os_redirect_output(void *destination); 3437e94632fSLv Zheng #endif 3441da177e4SLinus Torvalds 3451da177e4SLinus Torvalds /* 346f8d31489SLv Zheng * Debug IO 3471da177e4SLinus Torvalds */ 3487e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_line 3497e94632fSLv Zheng acpi_status acpi_os_get_line(char *buffer, u32 buffer_length, u32 *bytes_read); 3507e94632fSLv Zheng #endif 3517e94632fSLv Zheng 352703ecd22SLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_initialize_debugger 353703ecd22SLv Zheng acpi_status acpi_os_initialize_debugger(void); 354f8d31489SLv Zheng #endif 355f8d31489SLv Zheng 356703ecd22SLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_terminate_debugger 357703ecd22SLv Zheng void acpi_os_terminate_debugger(void); 358f8d31489SLv Zheng #endif 359f8d31489SLv Zheng 360f8d31489SLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_wait_command_ready 361f8d31489SLv Zheng acpi_status acpi_os_wait_command_ready(void); 362f8d31489SLv Zheng #endif 363f8d31489SLv Zheng 364f8d31489SLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_notify_command_complete 365f8d31489SLv Zheng acpi_status acpi_os_notify_command_complete(void); 366f8d31489SLv Zheng #endif 367f8d31489SLv Zheng 368dd99cbccSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_trace_point 369dd99cbccSLv Zheng void 370dd99cbccSLv Zheng acpi_os_trace_point(acpi_trace_event_type type, 371dd99cbccSLv Zheng u8 begin, u8 *aml, char *pathname); 372dd99cbccSLv Zheng #endif 373dd99cbccSLv Zheng 3747e94632fSLv Zheng /* 3757e94632fSLv Zheng * Obtain ACPI table(s) 3767e94632fSLv Zheng */ 3777e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_table_by_name 3787e94632fSLv Zheng acpi_status 3797e94632fSLv Zheng acpi_os_get_table_by_name(char *signature, 3807e94632fSLv Zheng u32 instance, 3817e94632fSLv Zheng struct acpi_table_header **table, 3827e94632fSLv Zheng acpi_physical_address *address); 3837e94632fSLv Zheng #endif 3847e94632fSLv Zheng 3857e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_table_by_index 3867e94632fSLv Zheng acpi_status 3877e94632fSLv Zheng acpi_os_get_table_by_index(u32 index, 3887e94632fSLv Zheng struct acpi_table_header **table, 3897e94632fSLv Zheng u32 *instance, acpi_physical_address *address); 3907e94632fSLv Zheng #endif 3917e94632fSLv Zheng 3927e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_table_by_address 3937e94632fSLv Zheng acpi_status 3947e94632fSLv Zheng acpi_os_get_table_by_address(acpi_physical_address address, 3957e94632fSLv Zheng struct acpi_table_header **table); 3961da177e4SLinus Torvalds #endif 3971da177e4SLinus Torvalds 3981da177e4SLinus Torvalds /* 3991da177e4SLinus Torvalds * Directory manipulation 4001da177e4SLinus Torvalds */ 4017e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_open_directory 4024be44fcdSLen Brown void *acpi_os_open_directory(char *pathname, 4034be44fcdSLen Brown char *wildcard_spec, char requested_file_type); 4047e94632fSLv Zheng #endif 4051da177e4SLinus Torvalds 4061da177e4SLinus Torvalds /* requeste_file_type values */ 4071da177e4SLinus Torvalds 4081da177e4SLinus Torvalds #define REQUEST_FILE_ONLY 0 4091da177e4SLinus Torvalds #define REQUEST_DIR_ONLY 1 4101da177e4SLinus Torvalds 4117e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_next_filename 4124be44fcdSLen Brown char *acpi_os_get_next_filename(void *dir_handle); 4137e94632fSLv Zheng #endif 4141da177e4SLinus Torvalds 4157e94632fSLv Zheng #ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_close_directory 4164be44fcdSLen Brown void acpi_os_close_directory(void *dir_handle); 4177e94632fSLv Zheng #endif 4181da177e4SLinus Torvalds 4191da177e4SLinus Torvalds #endif /* __ACPIOSXF_H__ */ 420