acpixf.h (f01387d2693813eb5271a3448e6a082322c7d75d) acpixf.h (2e70da4c51eb18a4d229aa48763c15f5dbc5b43d)
1/******************************************************************************
2 *
3 * Name: acpixf.h - External interfaces to the ACPI subsystem
4 *
5 *****************************************************************************/
6
7/*
8 * Copyright (C) 2000 - 2014, Intel Corp.

--- 32 unchanged lines hidden (view full) ---

41 * POSSIBILITY OF SUCH DAMAGES.
42 */
43
44#ifndef __ACXFACE_H__
45#define __ACXFACE_H__
46
47/* Current ACPICA subsystem version in YYYYMMDD format */
48
1/******************************************************************************
2 *
3 * Name: acpixf.h - External interfaces to the ACPI subsystem
4 *
5 *****************************************************************************/
6
7/*
8 * Copyright (C) 2000 - 2014, Intel Corp.

--- 32 unchanged lines hidden (view full) ---

41 * POSSIBILITY OF SUCH DAMAGES.
42 */
43
44#ifndef __ACXFACE_H__
45#define __ACXFACE_H__
46
47/* Current ACPICA subsystem version in YYYYMMDD format */
48
49#define ACPI_CA_VERSION 0x20140214
49#define ACPI_CA_VERSION 0x20140424
50
51#include <acpi/acconfig.h>
52#include <acpi/actypes.h>
53#include <acpi/actbl.h>
54#include <acpi/acbuffer.h>
55
56extern u8 acpi_gbl_permanent_mmap;
57
50
51#include <acpi/acconfig.h>
52#include <acpi/actypes.h>
53#include <acpi/actbl.h>
54#include <acpi/acbuffer.h>
55
56extern u8 acpi_gbl_permanent_mmap;
57
58/*****************************************************************************
59 *
60 * Macros used for ACPICA globals and configuration
61 *
62 ****************************************************************************/
63
58/*
64/*
59 * Globals that are publically available
65 * Ensure that global variables are defined and initialized only once.
66 *
67 * The use of these macros allows for a single list of globals (here)
68 * in order to simplify maintenance of the code.
60 */
69 */
61extern u32 acpi_current_gpe_count;
62extern struct acpi_table_fadt acpi_gbl_FADT;
63extern u8 acpi_gbl_system_awake_and_running;
64extern u8 acpi_gbl_reduced_hardware; /* ACPI 5.0 */
65extern u8 acpi_gbl_osi_data;
70#ifdef DEFINE_ACPI_GLOBALS
71#define ACPI_GLOBAL(type,name) \
72 extern type name; \
73 type name
66
74
67/* Runtime configuration of debug print levels */
75#define ACPI_INIT_GLOBAL(type,name,value) \
76 type name=value
68
77
69extern u32 acpi_dbg_level;
70extern u32 acpi_dbg_layer;
78#else
79#ifndef ACPI_GLOBAL
80#define ACPI_GLOBAL(type,name) \
81 extern type name
82#endif
71
83
72/* ACPICA runtime options */
84#ifndef ACPI_INIT_GLOBAL
85#define ACPI_INIT_GLOBAL(type,name,value) \
86 extern type name
87#endif
88#endif
73
89
74extern u8 acpi_gbl_auto_serialize_methods;
75extern u8 acpi_gbl_copy_dsdt_locally;
76extern u8 acpi_gbl_create_osi_method;
77extern u8 acpi_gbl_disable_auto_repair;
78extern u8 acpi_gbl_disable_ssdt_table_load;
79extern u8 acpi_gbl_do_not_use_xsdt;
80extern u8 acpi_gbl_enable_aml_debug_object;
81extern u8 acpi_gbl_enable_interpreter_slack;
82extern u32 acpi_gbl_trace_flags;
83extern acpi_name acpi_gbl_trace_method_name;
84extern u8 acpi_gbl_truncate_io_addresses;
85extern u8 acpi_gbl_use32_bit_fadt_addresses;
86extern u8 acpi_gbl_use_default_register_widths;
87
88/*
90/*
89 * Hardware-reduced prototypes. All interfaces that use these macros will
90 * be configured out of the ACPICA build if the ACPI_REDUCED_HARDWARE flag
91 * is set to TRUE.
91 * These macros configure the various ACPICA interfaces. They are
92 * useful for generating stub inline functions for features that are
93 * configured out of the current kernel or ACPICA application.
92 */
94 */
93#if (!ACPI_REDUCED_HARDWARE)
94#define ACPI_HW_DEPENDENT_RETURN_STATUS(prototype) \
95#ifndef ACPI_EXTERNAL_RETURN_STATUS
96#define ACPI_EXTERNAL_RETURN_STATUS(prototype) \
95 prototype;
97 prototype;
98#endif
96
99
97#define ACPI_HW_DEPENDENT_RETURN_OK(prototype) \
100#ifndef ACPI_EXTERNAL_RETURN_OK
101#define ACPI_EXTERNAL_RETURN_OK(prototype) \
98 prototype;
102 prototype;
103#endif
99
104
100#define ACPI_HW_DEPENDENT_RETURN_VOID(prototype) \
105#ifndef ACPI_EXTERNAL_RETURN_VOID
106#define ACPI_EXTERNAL_RETURN_VOID(prototype) \
101 prototype;
107 prototype;
108#endif
102
109
103#else
104#define ACPI_HW_DEPENDENT_RETURN_STATUS(prototype) \
105 static ACPI_INLINE prototype {return(AE_NOT_CONFIGURED);}
110#ifndef ACPI_EXTERNAL_RETURN_UINT32
111#define ACPI_EXTERNAL_RETURN_UINT32(prototype) \
112 prototype;
113#endif
106
114
107#define ACPI_HW_DEPENDENT_RETURN_OK(prototype) \
108 static ACPI_INLINE prototype {return(AE_OK);}
115#ifndef ACPI_EXTERNAL_RETURN_PTR
116#define ACPI_EXTERNAL_RETURN_PTR(prototype) \
117 prototype;
118#endif
109
119
110#define ACPI_HW_DEPENDENT_RETURN_VOID(prototype) \
111 static ACPI_INLINE prototype {return;}
120/*****************************************************************************
121 *
122 * Public globals and runtime configuration options
123 *
124 ****************************************************************************/
112
125
113#endif /* !ACPI_REDUCED_HARDWARE */
126/*
127 * Enable "slack mode" of the AML interpreter? Default is FALSE, and the
128 * interpreter strictly follows the ACPI specification. Setting to TRUE
129 * allows the interpreter to ignore certain errors and/or bad AML constructs.
130 *
131 * Currently, these features are enabled by this flag:
132 *
133 * 1) Allow "implicit return" of last value in a control method
134 * 2) Allow access beyond the end of an operation region
135 * 3) Allow access to uninitialized locals/args (auto-init to integer 0)
136 * 4) Allow ANY object type to be a source operand for the Store() operator
137 * 5) Allow unresolved references (invalid target name) in package objects
138 * 6) Enable warning messages for behavior that is not ACPI spec compliant
139 */
140ACPI_INIT_GLOBAL(u8, acpi_gbl_enable_interpreter_slack, FALSE);
114
115/*
141
142/*
116 * Initialization
143 * Automatically serialize all methods that create named objects? Default
144 * is TRUE, meaning that all non_serialized methods are scanned once at
145 * table load time to determine those that create named objects. Methods
146 * that create named objects are marked Serialized in order to prevent
147 * possible run-time problems if they are entered by more than one thread.
117 */
148 */
118acpi_status __init
119acpi_initialize_tables(struct acpi_table_desc *initial_storage,
120 u32 initial_table_count, u8 allow_resize);
149ACPI_INIT_GLOBAL(u8, acpi_gbl_auto_serialize_methods, TRUE);
121
150
122acpi_status __init acpi_initialize_subsystem(void);
151/*
152 * Create the predefined _OSI method in the namespace? Default is TRUE
153 * because ACPICA is fully compatible with other ACPI implementations.
154 * Changing this will revert ACPICA (and machine ASL) to pre-OSI behavior.
155 */
156ACPI_INIT_GLOBAL(u8, acpi_gbl_create_osi_method, TRUE);
123
157
124acpi_status __init acpi_enable_subsystem(u32 flags);
158/*
159 * Optionally use default values for the ACPI register widths. Set this to
160 * TRUE to use the defaults, if an FADT contains incorrect widths/lengths.
161 */
162ACPI_INIT_GLOBAL(u8, acpi_gbl_use_default_register_widths, TRUE);
125
163
126acpi_status __init acpi_initialize_objects(u32 flags);
164/*
165 * Whether or not to verify the table checksum before installation. Set
166 * this to TRUE to verify the table checksum before install it to the table
167 * manager. Note that enabling this option causes errors to happen in some
168 * OSPMs during early initialization stages. Default behavior is to do such
169 * verification.
170 */
171ACPI_INIT_GLOBAL(u8, acpi_gbl_verify_table_checksum, TRUE);
127
172
128acpi_status __init acpi_terminate(void);
173/*
174 * Optionally enable output from the AML Debug Object.
175 */
176ACPI_INIT_GLOBAL(u8, acpi_gbl_enable_aml_debug_object, FALSE);
129
130/*
177
178/*
131 * Miscellaneous global interfaces
179 * Optionally copy the entire DSDT to local memory (instead of simply
180 * mapping it.) There are some BIOSs that corrupt or replace the original
181 * DSDT, creating the need for this option. Default is FALSE, do not copy
182 * the DSDT.
132 */
183 */
133ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_enable(void))
134ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_disable(void))
135#ifdef ACPI_FUTURE_USAGE
136acpi_status acpi_subsystem_status(void);
137#endif
184ACPI_INIT_GLOBAL(u8, acpi_gbl_copy_dsdt_locally, FALSE);
138
185
139#ifdef ACPI_FUTURE_USAGE
140acpi_status acpi_get_system_info(struct acpi_buffer *ret_buffer);
141#endif
186/*
187 * Optionally ignore an XSDT if present and use the RSDT instead.
188 * Although the ACPI specification requires that an XSDT be used instead
189 * of the RSDT, the XSDT has been found to be corrupt or ill-formed on
190 * some machines. Default behavior is to use the XSDT if present.
191 */
192ACPI_INIT_GLOBAL(u8, acpi_gbl_do_not_use_xsdt, FALSE);
142
193
143acpi_status acpi_get_statistics(struct acpi_statistics *stats);
194/*
195 * Optionally use 32-bit FADT addresses if and when there is a conflict
196 * (address mismatch) between the 32-bit and 64-bit versions of the
197 * address. Although ACPICA adheres to the ACPI specification which
198 * requires the use of the corresponding 64-bit address if it is non-zero,
199 * some machines have been found to have a corrupted non-zero 64-bit
200 * address. Default is TRUE, favor the 32-bit addresses.
201 */
202ACPI_INIT_GLOBAL(u8, acpi_gbl_use32_bit_fadt_addresses, TRUE);
144
203
145const char *acpi_format_exception(acpi_status exception);
204/*
205 * Optionally truncate I/O addresses to 16 bits. Provides compatibility
206 * with other ACPI implementations. NOTE: During ACPICA initialization,
207 * this value is set to TRUE if any Windows OSI strings have been
208 * requested by the BIOS.
209 */
210ACPI_INIT_GLOBAL(u8, acpi_gbl_truncate_io_addresses, FALSE);
146
211
147acpi_status acpi_purge_cached_objects(void);
212/*
213 * Disable runtime checking and repair of values returned by control methods.
214 * Use only if the repair is causing a problem on a particular machine.
215 */
216ACPI_INIT_GLOBAL(u8, acpi_gbl_disable_auto_repair, FALSE);
148
217
149acpi_status acpi_install_interface(acpi_string interface_name);
218/*
219 * Optionally do not install any SSDTs from the RSDT/XSDT during initialization.
220 * This can be useful for debugging ACPI problems on some machines.
221 */
222ACPI_INIT_GLOBAL(u8, acpi_gbl_disable_ssdt_table_install, FALSE);
150
223
151acpi_status acpi_remove_interface(acpi_string interface_name);
224/*
225 * We keep track of the latest version of Windows that has been requested by
226 * the BIOS. ACPI 5.0.
227 */
228ACPI_INIT_GLOBAL(u8, acpi_gbl_osi_data, 0);
152
229
153acpi_status acpi_update_interfaces(u8 action);
230/*
231 * ACPI 5.0 introduces the concept of a "reduced hardware platform", meaning
232 * that the ACPI hardware is no longer required. A flag in the FADT indicates
233 * a reduced HW machine, and that flag is duplicated here for convenience.
234 */
235ACPI_INIT_GLOBAL(u8, acpi_gbl_reduced_hardware, FALSE);
154
236
155u32
156acpi_check_address_range(acpi_adr_space_type space_id,
157 acpi_physical_address address,
158 acpi_size length, u8 warn);
237/*
238 * This mechanism is used to trace a specified AML method. The method is
239 * traced each time it is executed.
240 */
241ACPI_INIT_GLOBAL(u32, acpi_gbl_trace_flags, 0);
242ACPI_INIT_GLOBAL(acpi_name, acpi_gbl_trace_method_name, 0);
159
243
160acpi_status
161acpi_decode_pld_buffer(u8 *in_buffer,
162 acpi_size length, struct acpi_pld_info **return_buffer);
244/*
245 * Runtime configuration of debug output control masks. We want the debug
246 * switches statically initialized so they are already set when the debugger
247 * is entered.
248 */
249ACPI_INIT_GLOBAL(u32, acpi_dbg_level, ACPI_DEBUG_DEFAULT);
250ACPI_INIT_GLOBAL(u32, acpi_dbg_layer, 0);
163
164/*
251
252/*
165 * ACPI table load/unload interfaces
253 * Other miscellaneous globals
166 */
254 */
167acpi_status acpi_load_table(struct acpi_table_header *table);
255ACPI_GLOBAL(struct acpi_table_fadt, acpi_gbl_FADT);
256ACPI_GLOBAL(u32, acpi_current_gpe_count);
257ACPI_GLOBAL(u8, acpi_gbl_system_awake_and_running);
168
258
169acpi_status acpi_unload_parent_table(acpi_handle object);
259/*****************************************************************************
260 *
261 * ACPICA public interface configuration.
262 *
263 * Interfaces that are configured out of the ACPICA build are replaced
264 * by inlined stubs by default.
265 *
266 ****************************************************************************/
170
267
171acpi_status __init acpi_load_tables(void);
268/*
269 * Hardware-reduced prototypes (default: Not hardware reduced).
270 *
271 * All ACPICA hardware-related interfaces that use these macros will be
272 * configured out of the ACPICA build if the ACPI_REDUCED_HARDWARE flag
273 * is set to TRUE.
274 *
275 * Note: This static build option for reduced hardware is intended to
276 * reduce ACPICA code size if desired or necessary. However, even if this
277 * option is not specified, the runtime behavior of ACPICA is dependent
278 * on the actual FADT reduced hardware flag (HW_REDUCED_ACPI). If set,
279 * the flag will enable similar behavior -- ACPICA will not attempt
280 * to access any ACPI-relate hardware (SCI, GPEs, Fixed Events, etc.)
281 */
282#if (!ACPI_REDUCED_HARDWARE)
283#define ACPI_HW_DEPENDENT_RETURN_STATUS(prototype) \
284 ACPI_EXTERNAL_RETURN_STATUS(prototype)
172
285
286#define ACPI_HW_DEPENDENT_RETURN_OK(prototype) \
287 ACPI_EXTERNAL_RETURN_OK(prototype)
288
289#define ACPI_HW_DEPENDENT_RETURN_VOID(prototype) \
290 ACPI_EXTERNAL_RETURN_VOID(prototype)
291
292#else
293#define ACPI_HW_DEPENDENT_RETURN_STATUS(prototype) \
294 static ACPI_INLINE prototype {return(AE_NOT_CONFIGURED);}
295
296#define ACPI_HW_DEPENDENT_RETURN_OK(prototype) \
297 static ACPI_INLINE prototype {return(AE_OK);}
298
299#define ACPI_HW_DEPENDENT_RETURN_VOID(prototype) \
300 static ACPI_INLINE prototype {return;}
301
302#endif /* !ACPI_REDUCED_HARDWARE */
303
173/*
304/*
174 * ACPI table manipulation interfaces
305 * Error message prototypes (default: error messages enabled).
306 *
307 * All interfaces related to error and warning messages
308 * will be configured out of the ACPICA build if the
309 * ACPI_NO_ERROR_MESSAGE flag is defined.
175 */
310 */
176acpi_status __init acpi_reallocate_root_table(void);
311#ifndef ACPI_NO_ERROR_MESSAGES
312#define ACPI_MSG_DEPENDENT_RETURN_VOID(prototype) \
313 prototype;
177
314
178acpi_status __init acpi_find_root_pointer(acpi_size *rsdp_address);
315#else
316#define ACPI_MSG_DEPENDENT_RETURN_VOID(prototype) \
317 static ACPI_INLINE prototype {return;}
179
318
180acpi_status acpi_unload_table_id(acpi_owner_id id);
319#endif /* ACPI_NO_ERROR_MESSAGES */
181
320
182acpi_status
183acpi_get_table_header(acpi_string signature,
184 u32 instance, struct acpi_table_header *out_table_header);
321/*
322 * Debugging output prototypes (default: no debug output).
323 *
324 * All interfaces related to debug output messages
325 * will be configured out of the ACPICA build unless the
326 * ACPI_DEBUG_OUTPUT flag is defined.
327 */
328#ifdef ACPI_DEBUG_OUTPUT
329#define ACPI_DBG_DEPENDENT_RETURN_VOID(prototype) \
330 prototype;
185
331
186acpi_status
187acpi_get_table_with_size(acpi_string signature,
188 u32 instance, struct acpi_table_header **out_table,
189 acpi_size *tbl_size);
332#else
333#define ACPI_DBG_DEPENDENT_RETURN_VOID(prototype) \
334 static ACPI_INLINE prototype {return;}
190
335
191acpi_status
192acpi_get_table(acpi_string signature,
193 u32 instance, struct acpi_table_header **out_table);
336#endif /* ACPI_DEBUG_OUTPUT */
194
337
195acpi_status
196acpi_get_table_by_index(u32 table_index, struct acpi_table_header **out_table);
338/*
339 * Application prototypes
340 *
341 * All interfaces used by application will be configured
342 * out of the ACPICA build unless the ACPI_APPLICATION
343 * flag is defined.
344 */
345#ifdef ACPI_APPLICATION
346#define ACPI_APP_DEPENDENT_RETURN_VOID(prototype) \
347 prototype;
197
348
198acpi_status
199acpi_install_table_handler(acpi_table_handler handler, void *context);
349#else
350#define ACPI_APP_DEPENDENT_RETURN_VOID(prototype) \
351 static ACPI_INLINE prototype {return;}
200
352
201acpi_status acpi_remove_table_handler(acpi_table_handler handler);
353#endif /* ACPI_APPLICATION */
202
354
355/*****************************************************************************
356 *
357 * ACPICA public interface prototypes
358 *
359 ****************************************************************************/
360
203/*
361/*
204 * Namespace and name interfaces
362 * Initialization
205 */
363 */
206acpi_status
207acpi_walk_namespace(acpi_object_type type,
208 acpi_handle start_object,
209 u32 max_depth,
210 acpi_walk_callback descending_callback,
211 acpi_walk_callback ascending_callback,
212 void *context, void **return_value);
364ACPI_EXTERNAL_RETURN_STATUS(acpi_status __init
365 acpi_initialize_tables(struct acpi_table_desc
366 *initial_storage,
367 u32 initial_table_count,
368 u8 allow_resize))
369ACPI_EXTERNAL_RETURN_STATUS(acpi_status __init acpi_initialize_subsystem(void))
213
370
214acpi_status
215acpi_get_devices(const char *HID,
216 acpi_walk_callback user_function,
217 void *context, void **return_value);
371ACPI_EXTERNAL_RETURN_STATUS(acpi_status __init acpi_enable_subsystem(u32 flags))
218
372
219acpi_status
220acpi_get_name(acpi_handle object,
221 u32 name_type, struct acpi_buffer *ret_path_ptr);
373ACPI_EXTERNAL_RETURN_STATUS(acpi_status __init
374 acpi_initialize_objects(u32 flags))
375ACPI_EXTERNAL_RETURN_STATUS(acpi_status __init acpi_terminate(void))
222
376
223acpi_status
224acpi_get_handle(acpi_handle parent,
225 acpi_string pathname, acpi_handle * ret_handle);
377/*
378 * Miscellaneous global interfaces
379 */
380ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_enable(void))
381ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_disable(void))
382#ifdef ACPI_FUTURE_USAGE
383ACPI_EXTERNAL_RETURN_STATUS(acpi_status acpi_subsystem_status(void))
384#endif
226
385
227acpi_status
228acpi_attach_data(acpi_handle object, acpi_object_handler handler, void *data);
386#ifdef ACPI_FUTURE_USAGE
387ACPI_EXTERNAL_RETURN_STATUS(acpi_status
388 acpi_get_system_info(struct acpi_buffer
389 *ret_buffer))
390#endif
391ACPI_EXTERNAL_RETURN_STATUS(acpi_status
392 acpi_get_statistics(struct acpi_statistics *stats))
393ACPI_EXTERNAL_RETURN_PTR(const char
394 *acpi_format_exception(acpi_status exception))
395ACPI_EXTERNAL_RETURN_STATUS(acpi_status acpi_purge_cached_objects(void))
229
396
230acpi_status acpi_detach_data(acpi_handle object, acpi_object_handler handler);
397ACPI_EXTERNAL_RETURN_STATUS(acpi_status
398 acpi_install_interface(acpi_string interface_name))
231
399
232acpi_status
233acpi_get_data_full(acpi_handle object, acpi_object_handler handler, void **data,
234 void (*callback)(void *));
400ACPI_EXTERNAL_RETURN_STATUS(acpi_status
401 acpi_remove_interface(acpi_string interface_name))
402ACPI_EXTERNAL_RETURN_STATUS(acpi_status acpi_update_interfaces(u8 action))
235
403
236acpi_status
237acpi_get_data(acpi_handle object, acpi_object_handler handler, void **data);
404ACPI_EXTERNAL_RETURN_UINT32(u32
405 acpi_check_address_range(acpi_adr_space_type
406 space_id,
407 acpi_physical_address
408 address, acpi_size length,
409 u8 warn))
410ACPI_EXTERNAL_RETURN_STATUS(acpi_status
411 acpi_decode_pld_buffer(u8 *in_buffer,
412 acpi_size length,
413 struct acpi_pld_info
414 **return_buffer))
238
415
239acpi_status
240acpi_debug_trace(char *name, u32 debug_level, u32 debug_layer, u32 flags);
416/*
417 * ACPI table load/unload interfaces
418 */
419ACPI_EXTERNAL_RETURN_STATUS(acpi_status __init
420 acpi_install_table(acpi_physical_address address,
421 u8 physical))
241
422
423ACPI_EXTERNAL_RETURN_STATUS(acpi_status
424 acpi_load_table(struct acpi_table_header *table))
425
426ACPI_EXTERNAL_RETURN_STATUS(acpi_status
427 acpi_unload_parent_table(acpi_handle object))
428ACPI_EXTERNAL_RETURN_STATUS(acpi_status __init acpi_load_tables(void))
429
242/*
430/*
243 * Object manipulation and enumeration
431 * ACPI table manipulation interfaces
244 */
432 */
245acpi_status
246acpi_evaluate_object(acpi_handle object,
247 acpi_string pathname,
248 struct acpi_object_list *parameter_objects,
249 struct acpi_buffer *return_object_buffer);
433ACPI_EXTERNAL_RETURN_STATUS(acpi_status __init acpi_reallocate_root_table(void))
250
434
251acpi_status
252acpi_evaluate_object_typed(acpi_handle object,
253 acpi_string pathname,
254 struct acpi_object_list *external_params,
255 struct acpi_buffer *return_buffer,
256 acpi_object_type return_type);
435ACPI_EXTERNAL_RETURN_STATUS(acpi_status __init
436 acpi_find_root_pointer(acpi_size * rsdp_address))
257
437
258acpi_status
259acpi_get_object_info(acpi_handle object,
260 struct acpi_device_info **return_buffer);
438ACPI_EXTERNAL_RETURN_STATUS(acpi_status
439 acpi_get_table_header(acpi_string signature,
440 u32 instance,
441 struct acpi_table_header
442 *out_table_header))
443ACPI_EXTERNAL_RETURN_STATUS(acpi_status
444 acpi_get_table(acpi_string signature, u32 instance,
445 struct acpi_table_header
446 **out_table))
447ACPI_EXTERNAL_RETURN_STATUS(acpi_status
448 acpi_get_table_by_index(u32 table_index,
449 struct acpi_table_header
450 **out_table))
451ACPI_EXTERNAL_RETURN_STATUS(acpi_status
452 acpi_install_table_handler(acpi_table_handler
453 handler, void *context))
454ACPI_EXTERNAL_RETURN_STATUS(acpi_status
455 acpi_remove_table_handler(acpi_table_handler
456 handler))
261
457
262acpi_status acpi_install_method(u8 *buffer);
458/*
459 * Namespace and name interfaces
460 */
461ACPI_EXTERNAL_RETURN_STATUS(acpi_status
462 acpi_walk_namespace(acpi_object_type type,
463 acpi_handle start_object,
464 u32 max_depth,
465 acpi_walk_callback
466 descending_callback,
467 acpi_walk_callback
468 ascending_callback,
469 void *context,
470 void **return_value))
471ACPI_EXTERNAL_RETURN_STATUS(acpi_status
472 acpi_get_devices(const char *HID,
473 acpi_walk_callback user_function,
474 void *context,
475 void **return_value))
476ACPI_EXTERNAL_RETURN_STATUS(acpi_status
477 acpi_get_name(acpi_handle object, u32 name_type,
478 struct acpi_buffer *ret_path_ptr))
479ACPI_EXTERNAL_RETURN_STATUS(acpi_status
480 acpi_get_handle(acpi_handle parent,
481 acpi_string pathname,
482 acpi_handle * ret_handle))
483ACPI_EXTERNAL_RETURN_STATUS(acpi_status
484 acpi_attach_data(acpi_handle object,
485 acpi_object_handler handler,
486 void *data))
487ACPI_EXTERNAL_RETURN_STATUS(acpi_status
488 acpi_detach_data(acpi_handle object,
489 acpi_object_handler handler))
490ACPI_EXTERNAL_RETURN_STATUS(acpi_status
491 acpi_get_data(acpi_handle object,
492 acpi_object_handler handler,
493 void **data))
494ACPI_EXTERNAL_RETURN_STATUS(acpi_status
495 acpi_debug_trace(char *name, u32 debug_level,
496 u32 debug_layer, u32 flags))
263
497
264acpi_status
265acpi_get_next_object(acpi_object_type type,
266 acpi_handle parent,
267 acpi_handle child, acpi_handle * out_handle);
498/*
499 * Object manipulation and enumeration
500 */
501ACPI_EXTERNAL_RETURN_STATUS(acpi_status
502 acpi_evaluate_object(acpi_handle object,
503 acpi_string pathname,
504 struct acpi_object_list
505 *parameter_objects,
506 struct acpi_buffer
507 *return_object_buffer))
508ACPI_EXTERNAL_RETURN_STATUS(acpi_status
509 acpi_evaluate_object_typed(acpi_handle object,
510 acpi_string pathname,
511 struct acpi_object_list
512 *external_params,
513 struct acpi_buffer
514 *return_buffer,
515 acpi_object_type
516 return_type))
517ACPI_EXTERNAL_RETURN_STATUS(acpi_status
518 acpi_get_object_info(acpi_handle object,
519 struct acpi_device_info
520 **return_buffer))
521ACPI_EXTERNAL_RETURN_STATUS(acpi_status acpi_install_method(u8 *buffer))
268
522
269acpi_status acpi_get_type(acpi_handle object, acpi_object_type * out_type);
523ACPI_EXTERNAL_RETURN_STATUS(acpi_status
524 acpi_get_next_object(acpi_object_type type,
525 acpi_handle parent,
526 acpi_handle child,
527 acpi_handle * out_handle))
270
528
271acpi_status acpi_get_id(acpi_handle object, acpi_owner_id * out_type);
529ACPI_EXTERNAL_RETURN_STATUS(acpi_status
530 acpi_get_type(acpi_handle object,
531 acpi_object_type * out_type))
272
532
273acpi_status acpi_get_parent(acpi_handle object, acpi_handle * out_handle);
533ACPI_EXTERNAL_RETURN_STATUS(acpi_status
534 acpi_get_parent(acpi_handle object,
535 acpi_handle * out_handle))
274
275/*
276 * Handler interfaces
277 */
536
537/*
538 * Handler interfaces
539 */
278acpi_status
279acpi_install_initialization_handler(acpi_init_handler handler, u32 function);
280
540ACPI_EXTERNAL_RETURN_STATUS(acpi_status
541 acpi_install_initialization_handler
542 (acpi_init_handler handler, u32 function))
281ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
543ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
282 acpi_install_sci_handler(acpi_sci_handler
283 address,
284 void *context))
544 acpi_install_sci_handler(acpi_sci_handler
545 address,
546 void *context))
285ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
286 acpi_remove_sci_handler(acpi_sci_handler
287 address))
288ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
289 acpi_install_global_event_handler
290 (acpi_gbl_event_handler handler,
291 void *context))
292ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status

--- 15 unchanged lines hidden (view full) ---

308 acpi_gpe_handler
309 address,
310 void *context))
311ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
312 acpi_remove_gpe_handler(acpi_handle gpe_device,
313 u32 gpe_number,
314 acpi_gpe_handler
315 address))
547ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
548 acpi_remove_sci_handler(acpi_sci_handler
549 address))
550ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
551 acpi_install_global_event_handler
552 (acpi_gbl_event_handler handler,
553 void *context))
554ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status

--- 15 unchanged lines hidden (view full) ---

570 acpi_gpe_handler
571 address,
572 void *context))
573ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
574 acpi_remove_gpe_handler(acpi_handle gpe_device,
575 u32 gpe_number,
576 acpi_gpe_handler
577 address))
316acpi_status acpi_install_notify_handler(acpi_handle device, u32 handler_type,
317 acpi_notify_handler handler,
318 void *context);
319
320acpi_status
321acpi_remove_notify_handler(acpi_handle device,
322 u32 handler_type, acpi_notify_handler handler);
323
324acpi_status
325acpi_install_address_space_handler(acpi_handle device,
326 acpi_adr_space_type space_id,
327 acpi_adr_space_handler handler,
328 acpi_adr_space_setup setup, void *context);
329
330acpi_status
331acpi_remove_address_space_handler(acpi_handle device,
332 acpi_adr_space_type space_id,
333 acpi_adr_space_handler handler);
334
578ACPI_EXTERNAL_RETURN_STATUS(acpi_status
579 acpi_install_notify_handler(acpi_handle device,
580 u32 handler_type,
581 acpi_notify_handler
582 handler,
583 void *context))
584ACPI_EXTERNAL_RETURN_STATUS(acpi_status
585 acpi_remove_notify_handler(acpi_handle device,
586 u32 handler_type,
587 acpi_notify_handler
588 handler))
589ACPI_EXTERNAL_RETURN_STATUS(acpi_status
590 acpi_install_address_space_handler(acpi_handle
591 device,
592 acpi_adr_space_type
593 space_id,
594 acpi_adr_space_handler
595 handler,
596 acpi_adr_space_setup
597 setup,
598 void *context))
599ACPI_EXTERNAL_RETURN_STATUS(acpi_status
600 acpi_remove_address_space_handler(acpi_handle
601 device,
602 acpi_adr_space_type
603 space_id,
604 acpi_adr_space_handler
605 handler))
335#ifdef ACPI_FUTURE_USAGE
606#ifdef ACPI_FUTURE_USAGE
336acpi_status acpi_install_exception_handler(acpi_exception_handler handler);
607ACPI_EXTERNAL_RETURN_STATUS(acpi_status
608 acpi_install_exception_handler
609 (acpi_exception_handler handler))
337#endif
610#endif
611ACPI_EXTERNAL_RETURN_STATUS(acpi_status
612 acpi_install_interface_handler
613 (acpi_interface_handler handler))
338
614
339acpi_status acpi_install_interface_handler(acpi_interface_handler handler);
340
341/*
342 * Global Lock interfaces
343 */
344ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
345 acpi_acquire_global_lock(u16 timeout,
346 u32 *handle))
347
348ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
349 acpi_release_global_lock(u32 handle))
350
351/*
352 * Interfaces to AML mutex objects
353 */
615/*
616 * Global Lock interfaces
617 */
618ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
619 acpi_acquire_global_lock(u16 timeout,
620 u32 *handle))
621
622ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
623 acpi_release_global_lock(u32 handle))
624
625/*
626 * Interfaces to AML mutex objects
627 */
354acpi_status
355acpi_acquire_mutex(acpi_handle handle, acpi_string pathname, u16 timeout);
628ACPI_EXTERNAL_RETURN_STATUS(acpi_status
629 acpi_acquire_mutex(acpi_handle handle,
630 acpi_string pathname,
631 u16 timeout))
356
632
357acpi_status acpi_release_mutex(acpi_handle handle, acpi_string pathname);
633ACPI_EXTERNAL_RETURN_STATUS(acpi_status
634 acpi_release_mutex(acpi_handle handle,
635 acpi_string pathname))
358
359/*
360 * Fixed Event interfaces
361 */
362ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
363 acpi_enable_event(u32 event, u32 flags))
364
365ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status

--- 63 unchanged lines hidden (view full) ---

429
430/*
431 * Resource interfaces
432 */
433typedef
434acpi_status(*acpi_walk_resource_callback) (struct acpi_resource * resource,
435 void *context);
436
636
637/*
638 * Fixed Event interfaces
639 */
640ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
641 acpi_enable_event(u32 event, u32 flags))
642
643ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status

--- 63 unchanged lines hidden (view full) ---

707
708/*
709 * Resource interfaces
710 */
711typedef
712acpi_status(*acpi_walk_resource_callback) (struct acpi_resource * resource,
713 void *context);
714
437acpi_status
438acpi_get_vendor_resource(acpi_handle device,
439 char *name,
440 struct acpi_vendor_uuid *uuid,
441 struct acpi_buffer *ret_buffer);
442
443acpi_status
444acpi_get_current_resources(acpi_handle device, struct acpi_buffer *ret_buffer);
445
715ACPI_EXTERNAL_RETURN_STATUS(acpi_status
716 acpi_get_vendor_resource(acpi_handle device,
717 char *name,
718 struct acpi_vendor_uuid
719 *uuid,
720 struct acpi_buffer
721 *ret_buffer))
722ACPI_EXTERNAL_RETURN_STATUS(acpi_status
723 acpi_get_current_resources(acpi_handle device,
724 struct acpi_buffer
725 *ret_buffer))
446#ifdef ACPI_FUTURE_USAGE
726#ifdef ACPI_FUTURE_USAGE
447acpi_status
448acpi_get_possible_resources(acpi_handle device, struct acpi_buffer *ret_buffer);
727ACPI_EXTERNAL_RETURN_STATUS(acpi_status
728 acpi_get_possible_resources(acpi_handle device,
729 struct acpi_buffer
730 *ret_buffer))
449#endif
731#endif
732ACPI_EXTERNAL_RETURN_STATUS(acpi_status
733 acpi_get_event_resources(acpi_handle device_handle,
734 struct acpi_buffer
735 *ret_buffer))
736ACPI_EXTERNAL_RETURN_STATUS(acpi_status
737 acpi_walk_resource_buffer(struct acpi_buffer
738 *buffer,
739 acpi_walk_resource_callback
740 user_function,
741 void *context))
742ACPI_EXTERNAL_RETURN_STATUS(acpi_status
743 acpi_walk_resources(acpi_handle device, char *name,
744 acpi_walk_resource_callback
745 user_function, void *context))
746ACPI_EXTERNAL_RETURN_STATUS(acpi_status
747 acpi_set_current_resources(acpi_handle device,
748 struct acpi_buffer
749 *in_buffer))
750ACPI_EXTERNAL_RETURN_STATUS(acpi_status
751 acpi_get_irq_routing_table(acpi_handle device,
752 struct acpi_buffer
753 *ret_buffer))
754ACPI_EXTERNAL_RETURN_STATUS(acpi_status
755 acpi_resource_to_address64(struct acpi_resource
756 *resource,
757 struct
758 acpi_resource_address64
759 *out))
760ACPI_EXTERNAL_RETURN_STATUS(acpi_status
761 acpi_buffer_to_resource(u8 *aml_buffer,
762 u16 aml_buffer_length,
763 struct acpi_resource
764 **resource_ptr))
450
765
451acpi_status
452acpi_get_event_resources(acpi_handle device_handle,
453 struct acpi_buffer *ret_buffer);
454
455acpi_status
456acpi_walk_resource_buffer(struct acpi_buffer *buffer,
457 acpi_walk_resource_callback user_function,
458 void *context);
459
460acpi_status
461acpi_walk_resources(acpi_handle device,
462 char *name,
463 acpi_walk_resource_callback user_function, void *context);
464
465acpi_status
466acpi_set_current_resources(acpi_handle device, struct acpi_buffer *in_buffer);
467
468acpi_status
469acpi_get_irq_routing_table(acpi_handle device, struct acpi_buffer *ret_buffer);
470
471acpi_status
472acpi_resource_to_address64(struct acpi_resource *resource,
473 struct acpi_resource_address64 *out);
474
475acpi_status
476acpi_buffer_to_resource(u8 *aml_buffer,
477 u16 aml_buffer_length,
478 struct acpi_resource **resource_ptr);
479
480/*
481 * Hardware (ACPI device) interfaces
482 */
766/*
767 * Hardware (ACPI device) interfaces
768 */
483acpi_status acpi_reset(void);
769ACPI_EXTERNAL_RETURN_STATUS(acpi_status acpi_reset(void))
484
770
485acpi_status acpi_read(u64 *value, struct acpi_generic_address *reg);
771ACPI_EXTERNAL_RETURN_STATUS(acpi_status
772 acpi_read(u64 *value,
773 struct acpi_generic_address *reg))
486
774
487acpi_status acpi_write(u64 value, struct acpi_generic_address *reg);
775ACPI_EXTERNAL_RETURN_STATUS(acpi_status
776 acpi_write(u64 value,
777 struct acpi_generic_address *reg))
488
489ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
490 acpi_read_bit_register(u32 register_id,
491 u32 *return_value))
492
493ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
494 acpi_write_bit_register(u32 register_id,
495 u32 value))
496
497/*
498 * Sleep/Wake interfaces
499 */
778
779ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
780 acpi_read_bit_register(u32 register_id,
781 u32 *return_value))
782
783ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
784 acpi_write_bit_register(u32 register_id,
785 u32 value))
786
787/*
788 * Sleep/Wake interfaces
789 */
500acpi_status
501acpi_get_sleep_type_data(u8 sleep_state, u8 *slp_typ_a, u8 *slp_typ_b);
790ACPI_EXTERNAL_RETURN_STATUS(acpi_status
791 acpi_get_sleep_type_data(u8 sleep_state,
792 u8 *slp_typ_a,
793 u8 *slp_typ_b))
502
794
503acpi_status acpi_enter_sleep_state_prep(u8 sleep_state);
795ACPI_EXTERNAL_RETURN_STATUS(acpi_status
796 acpi_enter_sleep_state_prep(u8 sleep_state))
797ACPI_EXTERNAL_RETURN_STATUS(acpi_status acpi_enter_sleep_state(u8 sleep_state))
504
798
505acpi_status acpi_enter_sleep_state(u8 sleep_state);
506
507ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_enter_sleep_state_s4bios(void))
508
799ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_enter_sleep_state_s4bios(void))
800
509acpi_status acpi_leave_sleep_state_prep(u8 sleep_state);
801ACPI_EXTERNAL_RETURN_STATUS(acpi_status
802 acpi_leave_sleep_state_prep(u8 sleep_state))
803ACPI_EXTERNAL_RETURN_STATUS(acpi_status acpi_leave_sleep_state(u8 sleep_state))
510
804
511acpi_status acpi_leave_sleep_state(u8 sleep_state);
512
513ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
514 acpi_set_firmware_waking_vector(u32
515 physical_address))
516#if ACPI_MACHINE_WIDTH == 64
517ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
518 acpi_set_firmware_waking_vector64(u64
519 physical_address))
520#endif

--- 9 unchanged lines hidden (view full) ---

530 acpi_get_timer_duration(u32 start_ticks,
531 u32 end_ticks,
532 u32 *time_elapsed))
533#endif /* ACPI_FUTURE_USAGE */
534
535/*
536 * Error/Warning output
537 */
805ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
806 acpi_set_firmware_waking_vector(u32
807 physical_address))
808#if ACPI_MACHINE_WIDTH == 64
809ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
810 acpi_set_firmware_waking_vector64(u64
811 physical_address))
812#endif

--- 9 unchanged lines hidden (view full) ---

822 acpi_get_timer_duration(u32 start_ticks,
823 u32 end_ticks,
824 u32 *time_elapsed))
825#endif /* ACPI_FUTURE_USAGE */
826
827/*
828 * Error/Warning output
829 */
538ACPI_PRINTF_LIKE(3)
539void ACPI_INTERNAL_VAR_XFACE
540acpi_error(const char *module_name, u32 line_number, const char *format, ...);
830ACPI_MSG_DEPENDENT_RETURN_VOID(ACPI_PRINTF_LIKE(3)
831 void ACPI_INTERNAL_VAR_XFACE
832 acpi_error(const char *module_name,
833 u32 line_number,
834 const char *format, ...))
835ACPI_MSG_DEPENDENT_RETURN_VOID(ACPI_PRINTF_LIKE(4)
836 void ACPI_INTERNAL_VAR_XFACE
837 acpi_exception(const char *module_name,
838 u32 line_number,
839 acpi_status status,
840 const char *format, ...))
841ACPI_MSG_DEPENDENT_RETURN_VOID(ACPI_PRINTF_LIKE(3)
842 void ACPI_INTERNAL_VAR_XFACE
843 acpi_warning(const char *module_name,
844 u32 line_number,
845 const char *format, ...))
846ACPI_MSG_DEPENDENT_RETURN_VOID(ACPI_PRINTF_LIKE(3)
847 void ACPI_INTERNAL_VAR_XFACE
848 acpi_info(const char *module_name,
849 u32 line_number,
850 const char *format, ...))
851ACPI_MSG_DEPENDENT_RETURN_VOID(ACPI_PRINTF_LIKE(3)
852 void ACPI_INTERNAL_VAR_XFACE
853 acpi_bios_error(const char *module_name,
854 u32 line_number,
855 const char *format, ...))
856ACPI_MSG_DEPENDENT_RETURN_VOID(ACPI_PRINTF_LIKE(3)
857 void ACPI_INTERNAL_VAR_XFACE
858 acpi_bios_warning(const char *module_name,
859 u32 line_number,
860 const char *format, ...))
541
861
542ACPI_PRINTF_LIKE(4)
543void ACPI_INTERNAL_VAR_XFACE
544acpi_exception(const char *module_name,
545 u32 line_number, acpi_status status, const char *format, ...);
546
547ACPI_PRINTF_LIKE(3)
548void ACPI_INTERNAL_VAR_XFACE
549acpi_warning(const char *module_name, u32 line_number, const char *format, ...);
550
551ACPI_PRINTF_LIKE(3)
552void ACPI_INTERNAL_VAR_XFACE
553acpi_info(const char *module_name, u32 line_number, const char *format, ...);
554
555ACPI_PRINTF_LIKE(3)
556void ACPI_INTERNAL_VAR_XFACE
557acpi_bios_error(const char *module_name,
558 u32 line_number, const char *format, ...);
559
560ACPI_PRINTF_LIKE(3)
561void ACPI_INTERNAL_VAR_XFACE
562acpi_bios_warning(const char *module_name,
563 u32 line_number, const char *format, ...);
564
565/*
566 * Debug output
567 */
862/*
863 * Debug output
864 */
568#ifdef ACPI_DEBUG_OUTPUT
865ACPI_DBG_DEPENDENT_RETURN_VOID(ACPI_PRINTF_LIKE(6)
866 void ACPI_INTERNAL_VAR_XFACE
867 acpi_debug_print(u32 requested_debug_level,
868 u32 line_number,
869 const char *function_name,
870 const char *module_name,
871 u32 component_id,
872 const char *format, ...))
873ACPI_DBG_DEPENDENT_RETURN_VOID(ACPI_PRINTF_LIKE(6)
874 void ACPI_INTERNAL_VAR_XFACE
875 acpi_debug_print_raw(u32 requested_debug_level,
876 u32 line_number,
877 const char *function_name,
878 const char *module_name,
879 u32 component_id,
880 const char *format, ...))
881ACPI_APP_DEPENDENT_RETURN_VOID(ACPI_PRINTF_LIKE(1)
882 void ACPI_INTERNAL_VAR_XFACE
883 acpi_log_error(const char *format, ...))
569
884
570ACPI_PRINTF_LIKE(6)
571void ACPI_INTERNAL_VAR_XFACE
572acpi_debug_print(u32 requested_debug_level,
573 u32 line_number,
574 const char *function_name,
575 const char *module_name,
576 u32 component_id, const char *format, ...);
885/*
886 * Divergences
887 */
888acpi_status acpi_get_id(acpi_handle object, acpi_owner_id * out_type);
577
889
578ACPI_PRINTF_LIKE(6)
579void ACPI_INTERNAL_VAR_XFACE
580acpi_debug_print_raw(u32 requested_debug_level,
581 u32 line_number,
582 const char *function_name,
583 const char *module_name,
584 u32 component_id, const char *format, ...);
585#endif
890acpi_status acpi_unload_table_id(acpi_owner_id id);
586
891
892acpi_status
893acpi_get_table_with_size(acpi_string signature,
894 u32 instance, struct acpi_table_header **out_table,
895 acpi_size *tbl_size);
896
897acpi_status
898acpi_get_data_full(acpi_handle object, acpi_object_handler handler, void **data,
899 void (*callback)(void *));
900
587#endif /* __ACXFACE_H__ */
901#endif /* __ACXFACE_H__ */