acpixf.h 9.2 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 152 153 154 155

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

#ifdef ACPI_FUTURE_USAGE
acpi_status
L
Len Brown 已提交
163 164 165 166 167
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 已提交
168 169 170
#endif

acpi_status
L
Len Brown 已提交
171
acpi_get_object_info(acpi_handle handle, struct acpi_buffer *return_buffer);
L
Linus Torvalds 已提交
172 173

acpi_status
L
Len Brown 已提交
174 175 176
acpi_get_next_object(acpi_object_type type,
		     acpi_handle parent,
		     acpi_handle child, acpi_handle * out_handle);
L
Linus Torvalds 已提交
177

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

L
Len Brown 已提交
180
acpi_status acpi_get_parent(acpi_handle object, acpi_handle * out_handle);
L
Linus Torvalds 已提交
181 182 183 184 185

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

acpi_status
L
Len Brown 已提交
190
acpi_remove_fixed_event_handler(u32 acpi_event, acpi_event_handler handler);
L
Linus Torvalds 已提交
191 192

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

acpi_status
L
Len Brown 已提交
198 199
acpi_remove_notify_handler(acpi_handle device,
			   u32 handler_type, acpi_notify_handler handler);
L
Linus Torvalds 已提交
200 201

acpi_status
L
Len Brown 已提交
202 203 204 205
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 已提交
206 207

acpi_status
L
Len Brown 已提交
208 209 210
acpi_remove_address_space_handler(acpi_handle device,
				  acpi_adr_space_type space_id,
				  acpi_adr_space_handler handler);
L
Linus Torvalds 已提交
211 212

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

#ifdef ACPI_FUTURE_USAGE
L
Len Brown 已提交
218
acpi_status acpi_install_exception_handler(acpi_exception_handler handler);
L
Linus Torvalds 已提交
219 220 221 222 223
#endif

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

L
Len Brown 已提交
226
acpi_status acpi_release_global_lock(u32 handle);
L
Linus Torvalds 已提交
227 228

acpi_status
L
Len Brown 已提交
229 230
acpi_remove_gpe_handler(acpi_handle gpe_device,
			u32 gpe_number, acpi_event_handler address);
L
Linus Torvalds 已提交
231

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

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

L
Len Brown 已提交
236
acpi_status acpi_clear_event(u32 event);
L
Linus Torvalds 已提交
237 238

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

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

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

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

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

#ifdef ACPI_FUTURE_USAGE
acpi_status
L
Len Brown 已提交
252 253 254 255
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 已提交
256 257

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

L
Len Brown 已提交
262
acpi_status acpi_remove_gpe_block(acpi_handle gpe_device);
L
Linus Torvalds 已提交
263 264 265 266 267

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

acpi_status
L
Len Brown 已提交
272 273
acpi_get_current_resources(acpi_handle device_handle,
			   struct acpi_buffer *ret_buffer);
L
Linus Torvalds 已提交
274 275 276

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

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

acpi_status
L
Len Brown 已提交
287 288
acpi_set_current_resources(acpi_handle device_handle,
			   struct acpi_buffer *in_buffer);
L
Linus Torvalds 已提交
289 290

acpi_status
L
Len Brown 已提交
291 292
acpi_get_irq_routing_table(acpi_handle bus_device_handle,
			   struct acpi_buffer *ret_buffer);
L
Linus Torvalds 已提交
293 294

acpi_status
L
Len Brown 已提交
295 296
acpi_resource_to_address64(struct acpi_resource *resource,
			   struct acpi_resource_address64 *out);
L
Linus Torvalds 已提交
297 298 299 300

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

L
Len Brown 已提交
303
acpi_status acpi_set_register(u32 register_id, u32 value, u32 flags);
L
Linus Torvalds 已提交
304 305

acpi_status
L
Len Brown 已提交
306
acpi_set_firmware_waking_vector(acpi_physical_address physical_address);
L
Linus Torvalds 已提交
307 308 309

#ifdef ACPI_FUTURE_USAGE
acpi_status
L
Len Brown 已提交
310
acpi_get_firmware_waking_vector(acpi_physical_address * physical_address);
L
Linus Torvalds 已提交
311 312 313
#endif

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

L
Len Brown 已提交
316
acpi_status acpi_enter_sleep_state_prep(u8 sleep_state);
L
Linus Torvalds 已提交
317

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

L
Len Brown 已提交
320
acpi_status asmlinkage acpi_enter_sleep_state_s4bios(void);
L
Linus Torvalds 已提交
321

L
Len Brown 已提交
322
acpi_status acpi_leave_sleep_state(u8 sleep_state);
L
Linus Torvalds 已提交
323

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