acpixf.h 9.3 KB
Newer Older
L
Linus Torvalds 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

/******************************************************************************
 *
 * Name: acpixf.h - External interfaces to the ACPI subsystem
 *
 *****************************************************************************/

/*
 * Copyright (C) 2000 - 2005, 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"

R
Robert Moore 已提交
51
/*
L
Linus Torvalds 已提交
52 53
 * Global interfaces
 */
L
Len Brown 已提交
54
acpi_status acpi_initialize_subsystem(void);
L
Linus Torvalds 已提交
55

L
Len Brown 已提交
56
acpi_status acpi_enable_subsystem(u32 flags);
L
Linus Torvalds 已提交
57

L
Len Brown 已提交
58
acpi_status acpi_initialize_objects(u32 flags);
L
Linus Torvalds 已提交
59

L
Len Brown 已提交
60
acpi_status acpi_terminate(void);
L
Linus Torvalds 已提交
61 62

#ifdef ACPI_FUTURE_USAGE
L
Len Brown 已提交
63
acpi_status acpi_subsystem_status(void);
L
Linus Torvalds 已提交
64 65
#endif

L
Len Brown 已提交
66
acpi_status acpi_enable(void);
L
Linus Torvalds 已提交
67

L
Len Brown 已提交
68
acpi_status acpi_disable(void);
L
Linus Torvalds 已提交
69 70

#ifdef ACPI_FUTURE_USAGE
L
Len Brown 已提交
71
acpi_status acpi_get_system_info(struct acpi_buffer *ret_buffer);
L
Linus Torvalds 已提交
72 73
#endif

L
Len Brown 已提交
74
const char *acpi_format_exception(acpi_status exception);
L
Linus Torvalds 已提交
75

L
Len Brown 已提交
76
acpi_status acpi_purge_cached_objects(void);
L
Linus Torvalds 已提交
77 78 79

#ifdef ACPI_FUTURE_USAGE
acpi_status
L
Len Brown 已提交
80
acpi_install_initialization_handler(acpi_init_handler handler, u32 function);
L
Linus Torvalds 已提交
81 82 83
#endif

/*
R
Robert Moore 已提交
84
 * ACPI Memory managment
L
Linus Torvalds 已提交
85
 */
L
Len Brown 已提交
86
void *acpi_allocate(u32 size);
L
Linus Torvalds 已提交
87

L
Len Brown 已提交
88
void *acpi_callocate(u32 size);
L
Linus Torvalds 已提交
89

L
Len Brown 已提交
90
void acpi_free(void *address);
L
Linus Torvalds 已提交
91 92 93 94 95

/*
 * ACPI table manipulation interfaces
 */
acpi_status
L
Len Brown 已提交
96
acpi_find_root_pointer(u32 flags, struct acpi_pointer *rsdp_address);
L
Linus Torvalds 已提交
97

L
Len Brown 已提交
98
acpi_status acpi_load_tables(void);
L
Linus Torvalds 已提交
99 100

#ifdef ACPI_FUTURE_USAGE
L
Len Brown 已提交
101
acpi_status acpi_load_table(struct acpi_table_header *table_ptr);
L
Linus Torvalds 已提交
102

L
Len Brown 已提交
103
acpi_status acpi_unload_table(acpi_table_type table_type);
L
Linus Torvalds 已提交
104 105

acpi_status
L
Len Brown 已提交
106 107 108
acpi_get_table_header(acpi_table_type table_type,
		      u32 instance, struct acpi_table_header *out_table_header);
#endif				/*  ACPI_FUTURE_USAGE  */
L
Linus Torvalds 已提交
109 110

acpi_status
L
Len Brown 已提交
111 112
acpi_get_table(acpi_table_type table_type,
	       u32 instance, struct acpi_buffer *ret_buffer);
L
Linus Torvalds 已提交
113 114

acpi_status
L
Len Brown 已提交
115 116 117
acpi_get_firmware_table(acpi_string signature,
			u32 instance,
			u32 flags, struct acpi_table_header **table_pointer);
L
Linus Torvalds 已提交
118 119 120 121 122

/*
 * Namespace and name interfaces
 */
acpi_status
L
Len Brown 已提交
123 124 125 126 127
acpi_walk_namespace(acpi_object_type type,
		    acpi_handle start_object,
		    u32 max_depth,
		    acpi_walk_callback user_function,
		    void *context, void **return_value);
L
Linus Torvalds 已提交
128 129

acpi_status
L
Len Brown 已提交
130 131 132
acpi_get_devices(char *HID,
		 acpi_walk_callback user_function,
		 void *context, void **return_value);
L
Linus Torvalds 已提交
133 134

acpi_status
L
Len Brown 已提交
135 136
acpi_get_name(acpi_handle handle,
	      u32 name_type, struct acpi_buffer *ret_path_ptr);
L
Linus Torvalds 已提交
137 138

acpi_status
L
Len Brown 已提交
139 140
acpi_get_handle(acpi_handle parent,
		acpi_string pathname, acpi_handle * ret_handle);
L
Linus Torvalds 已提交
141 142

acpi_status
L
Len Brown 已提交
143 144
acpi_attach_data(acpi_handle obj_handle,
		 acpi_object_handler handler, void *data);
L
Linus Torvalds 已提交
145 146

acpi_status
L
Len Brown 已提交
147
acpi_detach_data(acpi_handle obj_handle, acpi_object_handler handler);
L
Linus Torvalds 已提交
148 149

acpi_status
L
Len Brown 已提交
150
acpi_get_data(acpi_handle obj_handle, acpi_object_handler handler, void **data);
L
Linus Torvalds 已提交
151

B
Bob Moore 已提交
152 153 154
acpi_status
acpi_debug_trace(char *name, u32 debug_level, u32 debug_layer, u32 flags);

L
Linus Torvalds 已提交
155 156 157 158
/*
 * Object manipulation and enumeration
 */
acpi_status
L
Len Brown 已提交
159 160 161 162
acpi_evaluate_object(acpi_handle object,
		     acpi_string pathname,
		     struct acpi_object_list *parameter_objects,
		     struct acpi_buffer *return_object_buffer);
L
Linus Torvalds 已提交
163 164 165

#ifdef ACPI_FUTURE_USAGE
acpi_status
L
Len Brown 已提交
166 167 168 169 170
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);
L
Linus Torvalds 已提交
171 172 173
#endif

acpi_status
L
Len Brown 已提交
174
acpi_get_object_info(acpi_handle handle, struct acpi_buffer *return_buffer);
L
Linus Torvalds 已提交
175 176

acpi_status
L
Len Brown 已提交
177 178 179
acpi_get_next_object(acpi_object_type type,
		     acpi_handle parent,
		     acpi_handle child, acpi_handle * out_handle);
L
Linus Torvalds 已提交
180

L
Len Brown 已提交
181
acpi_status acpi_get_type(acpi_handle object, acpi_object_type * out_type);
L
Linus Torvalds 已提交
182

L
Len Brown 已提交
183
acpi_status acpi_get_parent(acpi_handle object, acpi_handle * out_handle);
L
Linus Torvalds 已提交
184 185 186 187 188

/*
 * Event handler interfaces
 */
acpi_status
L
Len Brown 已提交
189 190
acpi_install_fixed_event_handler(u32 acpi_event,
				 acpi_event_handler handler, void *context);
L
Linus Torvalds 已提交
191 192

acpi_status
L
Len Brown 已提交
193
acpi_remove_fixed_event_handler(u32 acpi_event, acpi_event_handler handler);
L
Linus Torvalds 已提交
194 195

acpi_status
L
Len Brown 已提交
196 197 198
acpi_install_notify_handler(acpi_handle device,
			    u32 handler_type,
			    acpi_notify_handler handler, void *context);
L
Linus Torvalds 已提交
199 200

acpi_status
L
Len Brown 已提交
201 202
acpi_remove_notify_handler(acpi_handle device,
			   u32 handler_type, acpi_notify_handler handler);
L
Linus Torvalds 已提交
203 204

acpi_status
L
Len Brown 已提交
205 206 207 208
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);
L
Linus Torvalds 已提交
209 210

acpi_status
L
Len Brown 已提交
211 212 213
acpi_remove_address_space_handler(acpi_handle device,
				  acpi_adr_space_type space_id,
				  acpi_adr_space_handler handler);
L
Linus Torvalds 已提交
214 215

acpi_status
L
Len Brown 已提交
216 217 218
acpi_install_gpe_handler(acpi_handle gpe_device,
			 u32 gpe_number,
			 u32 type, acpi_event_handler address, void *context);
L
Linus Torvalds 已提交
219 220

#ifdef ACPI_FUTURE_USAGE
L
Len Brown 已提交
221
acpi_status acpi_install_exception_handler(acpi_exception_handler handler);
L
Linus Torvalds 已提交
222 223 224 225 226
#endif

/*
 * Event interfaces
 */
L
Len Brown 已提交
227
acpi_status acpi_acquire_global_lock(u16 timeout, u32 * handle);
L
Linus Torvalds 已提交
228

L
Len Brown 已提交
229
acpi_status acpi_release_global_lock(u32 handle);
L
Linus Torvalds 已提交
230 231

acpi_status
L
Len Brown 已提交
232 233
acpi_remove_gpe_handler(acpi_handle gpe_device,
			u32 gpe_number, acpi_event_handler address);
L
Linus Torvalds 已提交
234

L
Len Brown 已提交
235
acpi_status acpi_enable_event(u32 event, u32 flags);
L
Linus Torvalds 已提交
236

L
Len Brown 已提交
237
acpi_status acpi_disable_event(u32 event, u32 flags);
L
Linus Torvalds 已提交
238

L
Len Brown 已提交
239
acpi_status acpi_clear_event(u32 event);
L
Linus Torvalds 已提交
240 241

#ifdef ACPI_FUTURE_USAGE
L
Len Brown 已提交
242 243
acpi_status acpi_get_event_status(u32 event, acpi_event_status * event_status);
#endif				/*  ACPI_FUTURE_USAGE  */
L
Linus Torvalds 已提交
244

L
Len Brown 已提交
245
acpi_status acpi_set_gpe_type(acpi_handle gpe_device, u32 gpe_number, u8 type);
L
Linus Torvalds 已提交
246

L
Len Brown 已提交
247
acpi_status acpi_enable_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags);
L
Linus Torvalds 已提交
248

L
Len Brown 已提交
249
acpi_status acpi_disable_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags);
L
Linus Torvalds 已提交
250

L
Len Brown 已提交
251
acpi_status acpi_clear_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags);
L
Linus Torvalds 已提交
252 253 254

#ifdef ACPI_FUTURE_USAGE
acpi_status
L
Len Brown 已提交
255 256 257 258
acpi_get_gpe_status(acpi_handle gpe_device,
		    u32 gpe_number,
		    u32 flags, acpi_event_status * event_status);
#endif				/*  ACPI_FUTURE_USAGE  */
L
Linus Torvalds 已提交
259 260

acpi_status
L
Len Brown 已提交
261 262 263
acpi_install_gpe_block(acpi_handle gpe_device,
		       struct acpi_generic_address *gpe_block_address,
		       u32 register_count, u32 interrupt_number);
L
Linus Torvalds 已提交
264

L
Len Brown 已提交
265
acpi_status acpi_remove_gpe_block(acpi_handle gpe_device);
L
Linus Torvalds 已提交
266 267 268 269 270

/*
 * Resource interfaces
 */
typedef
L
Len Brown 已提交
271 272
acpi_status(*ACPI_WALK_RESOURCE_CALLBACK) (struct acpi_resource * resource,
					   void *context);
L
Linus Torvalds 已提交
273 274

acpi_status
L
Len Brown 已提交
275 276
acpi_get_current_resources(acpi_handle device_handle,
			   struct acpi_buffer *ret_buffer);
L
Linus Torvalds 已提交
277 278 279

#ifdef ACPI_FUTURE_USAGE
acpi_status
L
Len Brown 已提交
280 281
acpi_get_possible_resources(acpi_handle device_handle,
			    struct acpi_buffer *ret_buffer);
L
Linus Torvalds 已提交
282 283 284
#endif

acpi_status
L
Len Brown 已提交
285 286 287
acpi_walk_resources(acpi_handle device_handle,
		    char *path,
		    ACPI_WALK_RESOURCE_CALLBACK user_function, void *context);
L
Linus Torvalds 已提交
288 289

acpi_status
L
Len Brown 已提交
290 291
acpi_set_current_resources(acpi_handle device_handle,
			   struct acpi_buffer *in_buffer);
L
Linus Torvalds 已提交
292 293

acpi_status
L
Len Brown 已提交
294 295
acpi_get_irq_routing_table(acpi_handle bus_device_handle,
			   struct acpi_buffer *ret_buffer);
L
Linus Torvalds 已提交
296 297

acpi_status
L
Len Brown 已提交
298 299
acpi_resource_to_address64(struct acpi_resource *resource,
			   struct acpi_resource_address64 *out);
L
Linus Torvalds 已提交
300 301 302 303

/*
 * Hardware (ACPI device) interfaces
 */
L
Len Brown 已提交
304
acpi_status acpi_get_register(u32 register_id, u32 * return_value, u32 flags);
L
Linus Torvalds 已提交
305

L
Len Brown 已提交
306
acpi_status acpi_set_register(u32 register_id, u32 value, u32 flags);
L
Linus Torvalds 已提交
307 308

acpi_status
L
Len Brown 已提交
309
acpi_set_firmware_waking_vector(acpi_physical_address physical_address);
L
Linus Torvalds 已提交
310 311 312

#ifdef ACPI_FUTURE_USAGE
acpi_status
L
Len Brown 已提交
313
acpi_get_firmware_waking_vector(acpi_physical_address * physical_address);
L
Linus Torvalds 已提交
314 315 316
#endif

acpi_status
L
Len Brown 已提交
317
acpi_get_sleep_type_data(u8 sleep_state, u8 * slp_typ_a, u8 * slp_typ_b);
L
Linus Torvalds 已提交
318

L
Len Brown 已提交
319
acpi_status acpi_enter_sleep_state_prep(u8 sleep_state);
L
Linus Torvalds 已提交
320

L
Len Brown 已提交
321
acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state);
L
Linus Torvalds 已提交
322

L
Len Brown 已提交
323
acpi_status asmlinkage acpi_enter_sleep_state_s4bios(void);
L
Linus Torvalds 已提交
324

L
Len Brown 已提交
325
acpi_status acpi_leave_sleep_state(u8 sleep_state);
L
Linus Torvalds 已提交
326

L
Len Brown 已提交
327
#endif				/* __ACXFACE_H__ */