Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at a0b6218037b5cf50737a7dc0fc5464ea3f8781cd 336 lines 9.8 kB view raw
1 2/****************************************************************************** 3 * 4 * Name: acpixf.h - External interfaces to the ACPI subsystem 5 * 6 *****************************************************************************/ 7 8/* 9 * Copyright (C) 2000 - 2006, R. Byron Moore 10 * All rights reserved. 11 * 12 * Redistribution and use in source and binary forms, with or without 13 * modification, are permitted provided that the following conditions 14 * are met: 15 * 1. Redistributions of source code must retain the above copyright 16 * notice, this list of conditions, and the following disclaimer, 17 * without modification. 18 * 2. Redistributions in binary form must reproduce at minimum a disclaimer 19 * substantially similar to the "NO WARRANTY" disclaimer below 20 * ("Disclaimer") and any redistribution must be conditioned upon 21 * including a substantially similar Disclaimer requirement for further 22 * binary redistribution. 23 * 3. Neither the names of the above-listed copyright holders nor the names 24 * of any contributors may be used to endorse or promote products derived 25 * from this software without specific prior written permission. 26 * 27 * Alternatively, this software may be distributed under the terms of the 28 * GNU General Public License ("GPL") version 2 as published by the Free 29 * Software Foundation. 30 * 31 * NO WARRANTY 32 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 33 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 34 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 35 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 36 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 37 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 38 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 39 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 40 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 41 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 42 * POSSIBILITY OF SUCH DAMAGES. 43 */ 44 45#ifndef __ACXFACE_H__ 46#define __ACXFACE_H__ 47 48#include "actypes.h" 49#include "actbl.h" 50 51/* 52 * Global interfaces 53 */ 54acpi_status acpi_initialize_subsystem(void); 55 56acpi_status acpi_enable_subsystem(u32 flags); 57 58acpi_status acpi_initialize_objects(u32 flags); 59 60acpi_status acpi_terminate(void); 61 62#ifdef ACPI_FUTURE_USAGE 63acpi_status acpi_subsystem_status(void); 64#endif 65 66acpi_status acpi_enable(void); 67 68acpi_status acpi_disable(void); 69 70#ifdef ACPI_FUTURE_USAGE 71acpi_status acpi_get_system_info(struct acpi_buffer *ret_buffer); 72#endif 73 74const char *acpi_format_exception(acpi_status exception); 75 76acpi_status acpi_purge_cached_objects(void); 77 78#ifdef ACPI_FUTURE_USAGE 79acpi_status 80acpi_install_initialization_handler(acpi_init_handler handler, u32 function); 81#endif 82 83/* 84 * ACPI Memory managment 85 */ 86void *acpi_allocate(u32 size); 87 88void *acpi_callocate(u32 size); 89 90void acpi_free(void *address); 91 92/* 93 * ACPI table manipulation interfaces 94 */ 95acpi_status 96acpi_find_root_pointer(u32 flags, struct acpi_pointer *rsdp_address); 97 98acpi_status acpi_load_tables(void); 99 100acpi_status acpi_load_table(struct acpi_table_header *table_ptr); 101 102acpi_status acpi_unload_table_id(acpi_table_type table_type, acpi_owner_id id); 103 104#ifdef ACPI_FUTURE_USAGE 105acpi_status acpi_unload_table(acpi_table_type table_type); 106acpi_status 107acpi_get_table_header(acpi_table_type table_type, 108 u32 instance, struct acpi_table_header *out_table_header); 109#endif /* ACPI_FUTURE_USAGE */ 110 111acpi_status 112acpi_get_table(acpi_table_type table_type, 113 u32 instance, struct acpi_buffer *ret_buffer); 114 115acpi_status 116acpi_get_firmware_table(acpi_string signature, 117 u32 instance, 118 u32 flags, struct acpi_table_header **table_pointer); 119 120/* 121 * Namespace and name interfaces 122 */ 123acpi_status 124acpi_walk_namespace(acpi_object_type type, 125 acpi_handle start_object, 126 u32 max_depth, 127 acpi_walk_callback user_function, 128 void *context, void **return_value); 129 130acpi_status 131acpi_get_devices(char *HID, 132 acpi_walk_callback user_function, 133 void *context, void **return_value); 134 135acpi_status 136acpi_get_name(acpi_handle handle, 137 u32 name_type, struct acpi_buffer *ret_path_ptr); 138 139acpi_status 140acpi_get_handle(acpi_handle parent, 141 acpi_string pathname, acpi_handle * ret_handle); 142 143acpi_status 144acpi_attach_data(acpi_handle obj_handle, 145 acpi_object_handler handler, void *data); 146 147acpi_status 148acpi_detach_data(acpi_handle obj_handle, acpi_object_handler handler); 149 150acpi_status 151acpi_get_data(acpi_handle obj_handle, acpi_object_handler handler, void **data); 152 153acpi_status 154acpi_debug_trace(char *name, u32 debug_level, u32 debug_layer, u32 flags); 155 156/* 157 * Object manipulation and enumeration 158 */ 159acpi_status 160acpi_evaluate_object(acpi_handle object, 161 acpi_string pathname, 162 struct acpi_object_list *parameter_objects, 163 struct acpi_buffer *return_object_buffer); 164 165#ifdef ACPI_FUTURE_USAGE 166acpi_status 167acpi_evaluate_object_typed(acpi_handle object, 168 acpi_string pathname, 169 struct acpi_object_list *external_params, 170 struct acpi_buffer *return_buffer, 171 acpi_object_type return_type); 172#endif 173 174acpi_status 175acpi_get_object_info(acpi_handle handle, struct acpi_buffer *return_buffer); 176 177acpi_status 178acpi_get_next_object(acpi_object_type type, 179 acpi_handle parent, 180 acpi_handle child, acpi_handle * out_handle); 181 182acpi_status acpi_get_type(acpi_handle object, acpi_object_type * out_type); 183 184acpi_status acpi_get_id(acpi_handle object, acpi_owner_id * out_type); 185 186acpi_status acpi_get_parent(acpi_handle object, acpi_handle * out_handle); 187 188/* 189 * Event handler interfaces 190 */ 191acpi_status 192acpi_install_fixed_event_handler(u32 acpi_event, 193 acpi_event_handler handler, void *context); 194 195acpi_status 196acpi_remove_fixed_event_handler(u32 acpi_event, acpi_event_handler handler); 197 198acpi_status 199acpi_install_notify_handler(acpi_handle device, 200 u32 handler_type, 201 acpi_notify_handler handler, void *context); 202 203acpi_status 204acpi_remove_notify_handler(acpi_handle device, 205 u32 handler_type, acpi_notify_handler handler); 206 207acpi_status 208acpi_install_address_space_handler(acpi_handle device, 209 acpi_adr_space_type space_id, 210 acpi_adr_space_handler handler, 211 acpi_adr_space_setup setup, void *context); 212 213acpi_status 214acpi_remove_address_space_handler(acpi_handle device, 215 acpi_adr_space_type space_id, 216 acpi_adr_space_handler handler); 217 218acpi_status 219acpi_install_gpe_handler(acpi_handle gpe_device, 220 u32 gpe_number, 221 u32 type, acpi_event_handler address, void *context); 222 223#ifdef ACPI_FUTURE_USAGE 224acpi_status acpi_install_exception_handler(acpi_exception_handler handler); 225#endif 226 227/* 228 * Event interfaces 229 */ 230acpi_status acpi_acquire_global_lock(u16 timeout, u32 * handle); 231 232acpi_status acpi_release_global_lock(u32 handle); 233 234acpi_status 235acpi_remove_gpe_handler(acpi_handle gpe_device, 236 u32 gpe_number, acpi_event_handler address); 237 238acpi_status acpi_enable_event(u32 event, u32 flags); 239 240acpi_status acpi_disable_event(u32 event, u32 flags); 241 242acpi_status acpi_clear_event(u32 event); 243 244#ifdef ACPI_FUTURE_USAGE 245acpi_status acpi_get_event_status(u32 event, acpi_event_status * event_status); 246#endif /* ACPI_FUTURE_USAGE */ 247 248acpi_status acpi_set_gpe_type(acpi_handle gpe_device, u32 gpe_number, u8 type); 249 250acpi_status acpi_enable_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags); 251 252acpi_status acpi_disable_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags); 253 254acpi_status acpi_clear_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags); 255 256#ifdef ACPI_FUTURE_USAGE 257acpi_status 258acpi_get_gpe_status(acpi_handle gpe_device, 259 u32 gpe_number, 260 u32 flags, acpi_event_status * event_status); 261#endif /* ACPI_FUTURE_USAGE */ 262 263acpi_status 264acpi_install_gpe_block(acpi_handle gpe_device, 265 struct acpi_generic_address *gpe_block_address, 266 u32 register_count, u32 interrupt_number); 267 268acpi_status acpi_remove_gpe_block(acpi_handle gpe_device); 269 270/* 271 * Resource interfaces 272 */ 273typedef 274acpi_status(*acpi_walk_resource_callback) (struct acpi_resource * resource, 275 void *context); 276 277acpi_status 278acpi_get_vendor_resource(acpi_handle device_handle, 279 char *name, 280 struct acpi_vendor_uuid *uuid, 281 struct acpi_buffer *ret_buffer); 282 283acpi_status 284acpi_get_current_resources(acpi_handle device_handle, 285 struct acpi_buffer *ret_buffer); 286 287#ifdef ACPI_FUTURE_USAGE 288acpi_status 289acpi_get_possible_resources(acpi_handle device_handle, 290 struct acpi_buffer *ret_buffer); 291#endif 292 293acpi_status 294acpi_walk_resources(acpi_handle device_handle, 295 char *name, 296 acpi_walk_resource_callback user_function, void *context); 297 298acpi_status 299acpi_set_current_resources(acpi_handle device_handle, 300 struct acpi_buffer *in_buffer); 301 302acpi_status 303acpi_get_irq_routing_table(acpi_handle bus_device_handle, 304 struct acpi_buffer *ret_buffer); 305 306acpi_status 307acpi_resource_to_address64(struct acpi_resource *resource, 308 struct acpi_resource_address64 *out); 309 310/* 311 * Hardware (ACPI device) interfaces 312 */ 313acpi_status acpi_get_register(u32 register_id, u32 * return_value, u32 flags); 314 315acpi_status acpi_set_register(u32 register_id, u32 value, u32 flags); 316 317acpi_status 318acpi_set_firmware_waking_vector(acpi_physical_address physical_address); 319 320#ifdef ACPI_FUTURE_USAGE 321acpi_status 322acpi_get_firmware_waking_vector(acpi_physical_address * physical_address); 323#endif 324 325acpi_status 326acpi_get_sleep_type_data(u8 sleep_state, u8 * slp_typ_a, u8 * slp_typ_b); 327 328acpi_status acpi_enter_sleep_state_prep(u8 sleep_state); 329 330acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state); 331 332acpi_status asmlinkage acpi_enter_sleep_state_s4bios(void); 333 334acpi_status acpi_leave_sleep_state(u8 sleep_state); 335 336#endif /* __ACXFACE_H__ */