/****************************************************************************** * * Name: acpixf.h - External interfaces to the ACPI subsystem * *****************************************************************************/ /* * Copyright (C) 2000 - 2004, R. Byron Moore * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions, and the following disclaimer, * without modification. * 2. Redistributions in binary form must reproduce at minimum a disclaimer * substantially similar to the "NO WARRANTY" disclaimer below * ("Disclaimer") and any redistribution must be conditioned upon * including a substantially similar Disclaimer requirement for further * binary redistribution. * 3. Neither the names of the above-listed copyright holders nor the names * of any contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * Alternatively, this software may be distributed under the terms of the * GNU General Public License ("GPL") version 2 as published by the Free * Software Foundation. * * NO WARRANTY * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGES. */ #ifndef __ACXFACE_H__ #define __ACXFACE_H__ #include "actypes.h" #include "actbl.h" /* * Global interfaces */ acpi_status acpi_initialize_subsystem ( void); acpi_status acpi_enable_subsystem ( u32 flags); acpi_status acpi_initialize_objects ( u32 flags); acpi_status acpi_terminate ( void); acpi_status acpi_subsystem_status ( void); acpi_status acpi_enable ( void); acpi_status acpi_disable ( void); acpi_status acpi_get_system_info ( struct acpi_buffer *ret_buffer); const char * acpi_format_exception ( acpi_status exception); acpi_status acpi_purge_cached_objects ( void); acpi_status acpi_install_initialization_handler ( acpi_init_handler handler, u32 function); /* * ACPI Memory manager */ void * acpi_allocate ( u32 size); void * acpi_callocate ( u32 size); void acpi_free ( void *address); /* * ACPI table manipulation interfaces */ acpi_status acpi_find_root_pointer ( u32 flags, struct acpi_pointer *rsdp_address); acpi_status acpi_load_tables ( void); acpi_status acpi_load_table ( struct acpi_table_header *table_ptr); acpi_status acpi_unload_table ( acpi_table_type table_type); acpi_status acpi_get_table_header ( acpi_table_type table_type, u32 instance, struct acpi_table_header *out_table_header); acpi_status acpi_get_table ( acpi_table_type table_type, u32 instance, struct acpi_buffer *ret_buffer); acpi_status acpi_get_firmware_table ( acpi_string signature, u32 instance, u32 flags, struct acpi_table_header **table_pointer); /* * Namespace and name interfaces */ acpi_status acpi_walk_namespace ( acpi_object_type type, acpi_handle start_object, u32 max_depth, acpi_walk_callback user_function, void *context, void **return_value); acpi_status acpi_get_devices ( char *HID, acpi_walk_callback user_function, void *context, void **return_value); acpi_status acpi_get_name ( acpi_handle handle, u32 name_type, struct acpi_buffer *ret_path_ptr); acpi_status acpi_get_handle ( acpi_handle parent, acpi_string pathname, acpi_handle *ret_handle); acpi_status acpi_attach_data ( acpi_handle obj_handle, acpi_object_handler handler, void *data); acpi_status acpi_detach_data ( acpi_handle obj_handle, acpi_object_handler handler); acpi_status acpi_get_data ( acpi_handle obj_handle, acpi_object_handler handler, void **data); /* * Object manipulation and enumeration */ acpi_status acpi_evaluate_object ( acpi_handle object, acpi_string pathname, struct acpi_object_list *parameter_objects, struct acpi_buffer *return_object_buffer); acpi_status acpi_evaluate_object_typed ( acpi_handle object, acpi_string pathname, struct acpi_object_list *external_params, struct acpi_buffer *return_buffer, acpi_object_type return_type); acpi_status acpi_get_object_info ( acpi_handle handle, struct acpi_buffer *return_buffer); acpi_status acpi_get_next_object ( acpi_object_type type, acpi_handle parent, acpi_handle child, acpi_handle *out_handle); acpi_status acpi_get_type ( acpi_handle object, acpi_object_type *out_type); acpi_status acpi_get_parent ( acpi_handle object, acpi_handle *out_handle); /* * Event handler interfaces */ acpi_status acpi_install_fixed_event_handler ( u32 acpi_event, acpi_event_handler handler, void *context); acpi_status acpi_remove_fixed_event_handler ( u32 acpi_event, acpi_event_handler handler); acpi_status acpi_install_notify_handler ( acpi_handle device, u32 handler_type, acpi_notify_handler handler, void *context); acpi_status acpi_remove_notify_handler ( acpi_handle device, u32 handler_type, acpi_notify_handler handler); acpi_status acpi_install_address_space_handler ( acpi_handle device, acpi_adr_space_type space_id, acpi_adr_space_handler handler, acpi_adr_space_setup setup, void *context); acpi_status acpi_remove_address_space_handler ( acpi_handle device, acpi_adr_space_type space_id, acpi_adr_space_handler handler); acpi_status acpi_install_gpe_handler ( acpi_handle gpe_device, u32 gpe_number, u32 type, acpi_gpe_handler handler, void *context); acpi_status acpi_acquire_global_lock ( u16 timeout, u32 *handle); acpi_status acpi_release_global_lock ( u32 handle); acpi_status acpi_remove_gpe_handler ( acpi_handle gpe_device, u32 gpe_number, acpi_gpe_handler handler); acpi_status acpi_enable_event ( u32 event, u32 flags); acpi_status acpi_disable_event ( u32 event, u32 flags); acpi_status acpi_clear_event ( u32 event); acpi_status acpi_get_event_status ( u32 event, acpi_event_status *event_status); acpi_status acpi_enable_gpe ( acpi_handle gpe_device, u32 gpe_number, u32 flags); acpi_status acpi_disable_gpe ( acpi_handle gpe_device, u32 gpe_number, u32 flags); acpi_status acpi_clear_gpe ( acpi_handle gpe_device, u32 gpe_number, u32 flags); acpi_status acpi_get_gpe_status ( acpi_handle gpe_device, u32 gpe_number, u32 flags, acpi_event_status *event_status); acpi_status acpi_install_gpe_block ( acpi_handle gpe_device, struct acpi_generic_address *gpe_block_address, u32 register_count, u32 interrupt_level); acpi_status acpi_remove_gpe_block ( acpi_handle gpe_device); /* * Resource interfaces */ typedef acpi_status (*ACPI_WALK_RESOURCE_CALLBACK) ( struct acpi_resource *resource, void *context); acpi_status acpi_get_current_resources( acpi_handle device_handle, struct acpi_buffer *ret_buffer); acpi_status acpi_get_possible_resources( acpi_handle device_handle, struct acpi_buffer *ret_buffer); acpi_status acpi_walk_resources ( acpi_handle device_handle, char *path, ACPI_WALK_RESOURCE_CALLBACK user_function, void *context); acpi_status acpi_set_current_resources ( acpi_handle device_handle, struct acpi_buffer *in_buffer); acpi_status acpi_get_irq_routing_table ( acpi_handle bus_device_handle, struct acpi_buffer *ret_buffer); acpi_status acpi_resource_to_address64 ( struct acpi_resource *resource, struct acpi_resource_address64 *out); /* * Hardware (ACPI device) interfaces */ acpi_status acpi_get_register ( u32 register_id, u32 *return_value, u32 flags); acpi_status acpi_set_register ( u32 register_id, u32 value, u32 flags); acpi_status acpi_set_firmware_waking_vector ( acpi_physical_address physical_address); acpi_status acpi_get_firmware_waking_vector ( acpi_physical_address *physical_address); acpi_status acpi_get_sleep_type_data ( u8 sleep_state, u8 *slp_typ_a, u8 *slp_typ_b); acpi_status acpi_enter_sleep_state_prep ( u8 sleep_state); acpi_status acpi_enter_sleep_state ( u8 sleep_state); acpi_status acpi_enter_sleep_state_s4bios ( void); acpi_status acpi_leave_sleep_state ( u8 sleep_state); #endif /* __ACXFACE_H__ */