diff options
Diffstat (limited to 'include/acpi/acglobal.h')
-rw-r--r-- | include/acpi/acglobal.h | 387 |
1 files changed, 0 insertions, 387 deletions
diff --git a/include/acpi/acglobal.h b/include/acpi/acglobal.h deleted file mode 100644 index 15dda46b70d1..000000000000 --- a/include/acpi/acglobal.h +++ /dev/null | |||
@@ -1,387 +0,0 @@ | |||
1 | /****************************************************************************** | ||
2 | * | ||
3 | * Name: acglobal.h - Declarations for global variables | ||
4 | * | ||
5 | *****************************************************************************/ | ||
6 | |||
7 | /* | ||
8 | * Copyright (C) 2000 - 2008, Intel Corp. | ||
9 | * All rights reserved. | ||
10 | * | ||
11 | * Redistribution and use in source and binary forms, with or without | ||
12 | * modification, are permitted provided that the following conditions | ||
13 | * are met: | ||
14 | * 1. Redistributions of source code must retain the above copyright | ||
15 | * notice, this list of conditions, and the following disclaimer, | ||
16 | * without modification. | ||
17 | * 2. Redistributions in binary form must reproduce at minimum a disclaimer | ||
18 | * substantially similar to the "NO WARRANTY" disclaimer below | ||
19 | * ("Disclaimer") and any redistribution must be conditioned upon | ||
20 | * including a substantially similar Disclaimer requirement for further | ||
21 | * binary redistribution. | ||
22 | * 3. Neither the names of the above-listed copyright holders nor the names | ||
23 | * of any contributors may be used to endorse or promote products derived | ||
24 | * from this software without specific prior written permission. | ||
25 | * | ||
26 | * Alternatively, this software may be distributed under the terms of the | ||
27 | * GNU General Public License ("GPL") version 2 as published by the Free | ||
28 | * Software Foundation. | ||
29 | * | ||
30 | * NO WARRANTY | ||
31 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
32 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
33 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR | ||
34 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
35 | * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
36 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
37 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
38 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | ||
39 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING | ||
40 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
41 | * POSSIBILITY OF SUCH DAMAGES. | ||
42 | */ | ||
43 | |||
44 | #ifndef __ACGLOBAL_H__ | ||
45 | #define __ACGLOBAL_H__ | ||
46 | |||
47 | /* | ||
48 | * Ensure that the globals are actually defined and initialized only once. | ||
49 | * | ||
50 | * The use of these macros allows a single list of globals (here) in order | ||
51 | * to simplify maintenance of the code. | ||
52 | */ | ||
53 | #ifdef DEFINE_ACPI_GLOBALS | ||
54 | #define ACPI_EXTERN | ||
55 | #define ACPI_INIT_GLOBAL(a,b) a=b | ||
56 | #else | ||
57 | #define ACPI_EXTERN extern | ||
58 | #define ACPI_INIT_GLOBAL(a,b) a | ||
59 | #endif | ||
60 | |||
61 | /***************************************************************************** | ||
62 | * | ||
63 | * Runtime configuration (static defaults that can be overriden at runtime) | ||
64 | * | ||
65 | ****************************************************************************/ | ||
66 | |||
67 | /* | ||
68 | * Enable "slack" in the AML interpreter? Default is FALSE, and the | ||
69 | * interpreter strictly follows the ACPI specification. Setting to TRUE | ||
70 | * allows the interpreter to ignore certain errors and/or bad AML constructs. | ||
71 | * | ||
72 | * Currently, these features are enabled by this flag: | ||
73 | * | ||
74 | * 1) Allow "implicit return" of last value in a control method | ||
75 | * 2) Allow access beyond the end of an operation region | ||
76 | * 3) Allow access to uninitialized locals/args (auto-init to integer 0) | ||
77 | * 4) Allow ANY object type to be a source operand for the Store() operator | ||
78 | * 5) Allow unresolved references (invalid target name) in package objects | ||
79 | * 6) Enable warning messages for behavior that is not ACPI spec compliant | ||
80 | */ | ||
81 | ACPI_EXTERN u8 ACPI_INIT_GLOBAL(acpi_gbl_enable_interpreter_slack, FALSE); | ||
82 | |||
83 | /* | ||
84 | * Automatically serialize ALL control methods? Default is FALSE, meaning | ||
85 | * to use the Serialized/not_serialized method flags on a per method basis. | ||
86 | * Only change this if the ASL code is poorly written and cannot handle | ||
87 | * reentrancy even though methods are marked "NotSerialized". | ||
88 | */ | ||
89 | ACPI_EXTERN u8 ACPI_INIT_GLOBAL(acpi_gbl_all_methods_serialized, FALSE); | ||
90 | |||
91 | /* | ||
92 | * Create the predefined _OSI method in the namespace? Default is TRUE | ||
93 | * because ACPI CA is fully compatible with other ACPI implementations. | ||
94 | * Changing this will revert ACPI CA (and machine ASL) to pre-OSI behavior. | ||
95 | */ | ||
96 | ACPI_EXTERN u8 ACPI_INIT_GLOBAL(acpi_gbl_create_osi_method, TRUE); | ||
97 | |||
98 | /* | ||
99 | * Disable wakeup GPEs during runtime? Default is TRUE because WAKE and | ||
100 | * RUNTIME GPEs should never be shared, and WAKE GPEs should typically only | ||
101 | * be enabled just before going to sleep. | ||
102 | */ | ||
103 | ACPI_EXTERN u8 ACPI_INIT_GLOBAL(acpi_gbl_leave_wake_gpes_disabled, TRUE); | ||
104 | |||
105 | /***************************************************************************** | ||
106 | * | ||
107 | * Debug support | ||
108 | * | ||
109 | ****************************************************************************/ | ||
110 | |||
111 | /* Runtime configuration of debug print levels */ | ||
112 | |||
113 | extern u32 acpi_dbg_level; | ||
114 | extern u32 acpi_dbg_layer; | ||
115 | |||
116 | /* Procedure nesting level for debug output */ | ||
117 | |||
118 | extern u32 acpi_gbl_nesting_level; | ||
119 | |||
120 | /* Support for dynamic control method tracing mechanism */ | ||
121 | |||
122 | ACPI_EXTERN u32 acpi_gbl_original_dbg_level; | ||
123 | ACPI_EXTERN u32 acpi_gbl_original_dbg_layer; | ||
124 | ACPI_EXTERN acpi_name acpi_gbl_trace_method_name; | ||
125 | ACPI_EXTERN u32 acpi_gbl_trace_dbg_level; | ||
126 | ACPI_EXTERN u32 acpi_gbl_trace_dbg_layer; | ||
127 | ACPI_EXTERN u32 acpi_gbl_trace_flags; | ||
128 | |||
129 | /***************************************************************************** | ||
130 | * | ||
131 | * ACPI Table globals | ||
132 | * | ||
133 | ****************************************************************************/ | ||
134 | |||
135 | /* | ||
136 | * acpi_gbl_root_table_list is the master list of ACPI tables found in the | ||
137 | * RSDT/XSDT. | ||
138 | * | ||
139 | * acpi_gbl_FADT is a local copy of the FADT, converted to a common format. | ||
140 | */ | ||
141 | ACPI_EXTERN struct acpi_internal_rsdt acpi_gbl_root_table_list; | ||
142 | ACPI_EXTERN struct acpi_table_fadt acpi_gbl_FADT; | ||
143 | extern u8 acpi_gbl_permanent_mmap; | ||
144 | |||
145 | /* These addresses are calculated from FADT address values */ | ||
146 | |||
147 | ACPI_EXTERN struct acpi_generic_address acpi_gbl_xpm1a_enable; | ||
148 | ACPI_EXTERN struct acpi_generic_address acpi_gbl_xpm1b_enable; | ||
149 | |||
150 | /* | ||
151 | * Handle both ACPI 1.0 and ACPI 2.0 Integer widths. The integer width is | ||
152 | * determined by the revision of the DSDT: If the DSDT revision is less than | ||
153 | * 2, use only the lower 32 bits of the internal 64-bit Integer. | ||
154 | */ | ||
155 | ACPI_EXTERN u8 acpi_gbl_integer_bit_width; | ||
156 | ACPI_EXTERN u8 acpi_gbl_integer_byte_width; | ||
157 | ACPI_EXTERN u8 acpi_gbl_integer_nybble_width; | ||
158 | |||
159 | /***************************************************************************** | ||
160 | * | ||
161 | * Mutual exlusion within ACPICA subsystem | ||
162 | * | ||
163 | ****************************************************************************/ | ||
164 | |||
165 | /* | ||
166 | * Predefined mutex objects. This array contains the | ||
167 | * actual OS mutex handles, indexed by the local ACPI_MUTEX_HANDLEs. | ||
168 | * (The table maps local handles to the real OS handles) | ||
169 | */ | ||
170 | ACPI_EXTERN struct acpi_mutex_info acpi_gbl_mutex_info[ACPI_NUM_MUTEX]; | ||
171 | |||
172 | /* | ||
173 | * Global lock mutex is an actual AML mutex object | ||
174 | * Global lock semaphore works in conjunction with the HW global lock | ||
175 | */ | ||
176 | ACPI_EXTERN union acpi_operand_object *acpi_gbl_global_lock_mutex; | ||
177 | ACPI_EXTERN acpi_semaphore acpi_gbl_global_lock_semaphore; | ||
178 | ACPI_EXTERN u16 acpi_gbl_global_lock_handle; | ||
179 | ACPI_EXTERN u8 acpi_gbl_global_lock_acquired; | ||
180 | ACPI_EXTERN u8 acpi_gbl_global_lock_present; | ||
181 | |||
182 | /* | ||
183 | * Spinlocks are used for interfaces that can be possibly called at | ||
184 | * interrupt level | ||
185 | */ | ||
186 | ACPI_EXTERN spinlock_t _acpi_gbl_gpe_lock; /* For GPE data structs and registers */ | ||
187 | ACPI_EXTERN spinlock_t _acpi_gbl_hardware_lock; /* For ACPI H/W except GPE registers */ | ||
188 | #define acpi_gbl_gpe_lock &_acpi_gbl_gpe_lock | ||
189 | #define acpi_gbl_hardware_lock &_acpi_gbl_hardware_lock | ||
190 | |||
191 | /***************************************************************************** | ||
192 | * | ||
193 | * Miscellaneous globals | ||
194 | * | ||
195 | ****************************************************************************/ | ||
196 | |||
197 | #ifdef ACPI_DBG_TRACK_ALLOCATIONS | ||
198 | |||
199 | /* Lists for tracking memory allocations */ | ||
200 | |||
201 | ACPI_EXTERN struct acpi_memory_list *acpi_gbl_global_list; | ||
202 | ACPI_EXTERN struct acpi_memory_list *acpi_gbl_ns_node_list; | ||
203 | ACPI_EXTERN u8 acpi_gbl_display_final_mem_stats; | ||
204 | #endif | ||
205 | |||
206 | /* Object caches */ | ||
207 | |||
208 | ACPI_EXTERN acpi_cache_t *acpi_gbl_namespace_cache; | ||
209 | ACPI_EXTERN acpi_cache_t *acpi_gbl_state_cache; | ||
210 | ACPI_EXTERN acpi_cache_t *acpi_gbl_ps_node_cache; | ||
211 | ACPI_EXTERN acpi_cache_t *acpi_gbl_ps_node_ext_cache; | ||
212 | ACPI_EXTERN acpi_cache_t *acpi_gbl_operand_cache; | ||
213 | |||
214 | /* Global handlers */ | ||
215 | |||
216 | ACPI_EXTERN struct acpi_object_notify_handler acpi_gbl_device_notify; | ||
217 | ACPI_EXTERN struct acpi_object_notify_handler acpi_gbl_system_notify; | ||
218 | ACPI_EXTERN acpi_exception_handler acpi_gbl_exception_handler; | ||
219 | ACPI_EXTERN acpi_init_handler acpi_gbl_init_handler; | ||
220 | ACPI_EXTERN acpi_tbl_handler acpi_gbl_table_handler; | ||
221 | ACPI_EXTERN void *acpi_gbl_table_handler_context; | ||
222 | ACPI_EXTERN struct acpi_walk_state *acpi_gbl_breakpoint_walk; | ||
223 | |||
224 | /* Owner ID support */ | ||
225 | |||
226 | ACPI_EXTERN u32 acpi_gbl_owner_id_mask[ACPI_NUM_OWNERID_MASKS]; | ||
227 | ACPI_EXTERN u8 acpi_gbl_last_owner_id_index; | ||
228 | ACPI_EXTERN u8 acpi_gbl_next_owner_id_offset; | ||
229 | |||
230 | /* Misc */ | ||
231 | |||
232 | ACPI_EXTERN u32 acpi_gbl_original_mode; | ||
233 | ACPI_EXTERN u32 acpi_gbl_rsdp_original_location; | ||
234 | ACPI_EXTERN u32 acpi_gbl_ns_lookup_count; | ||
235 | ACPI_EXTERN u32 acpi_gbl_ps_find_count; | ||
236 | ACPI_EXTERN u16 acpi_gbl_pm1_enable_register_save; | ||
237 | ACPI_EXTERN u8 acpi_gbl_debugger_configuration; | ||
238 | ACPI_EXTERN u8 acpi_gbl_step_to_next_call; | ||
239 | ACPI_EXTERN u8 acpi_gbl_acpi_hardware_present; | ||
240 | ACPI_EXTERN u8 acpi_gbl_events_initialized; | ||
241 | ACPI_EXTERN u8 acpi_gbl_system_awake_and_running; | ||
242 | |||
243 | #ifndef DEFINE_ACPI_GLOBALS | ||
244 | |||
245 | /* Other miscellaneous */ | ||
246 | |||
247 | extern u8 acpi_gbl_shutdown; | ||
248 | extern u32 acpi_gbl_startup_flags; | ||
249 | extern const char *acpi_gbl_sleep_state_names[ACPI_S_STATE_COUNT]; | ||
250 | extern const char *acpi_gbl_highest_dstate_names[4]; | ||
251 | extern const struct acpi_opcode_info acpi_gbl_aml_op_info[AML_NUM_OPCODES]; | ||
252 | extern const char *acpi_gbl_region_types[ACPI_NUM_PREDEFINED_REGIONS]; | ||
253 | |||
254 | #endif | ||
255 | |||
256 | /* Exception codes */ | ||
257 | |||
258 | extern char const *acpi_gbl_exception_names_env[]; | ||
259 | extern char const *acpi_gbl_exception_names_pgm[]; | ||
260 | extern char const *acpi_gbl_exception_names_tbl[]; | ||
261 | extern char const *acpi_gbl_exception_names_aml[]; | ||
262 | extern char const *acpi_gbl_exception_names_ctrl[]; | ||
263 | |||
264 | /***************************************************************************** | ||
265 | * | ||
266 | * Namespace globals | ||
267 | * | ||
268 | ****************************************************************************/ | ||
269 | |||
270 | #if !defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY) | ||
271 | #define NUM_PREDEFINED_NAMES 10 | ||
272 | #else | ||
273 | #define NUM_PREDEFINED_NAMES 9 | ||
274 | #endif | ||
275 | |||
276 | ACPI_EXTERN struct acpi_namespace_node acpi_gbl_root_node_struct; | ||
277 | ACPI_EXTERN struct acpi_namespace_node *acpi_gbl_root_node; | ||
278 | ACPI_EXTERN struct acpi_namespace_node *acpi_gbl_fadt_gpe_device; | ||
279 | |||
280 | extern const u8 acpi_gbl_ns_properties[ACPI_NUM_NS_TYPES]; | ||
281 | extern const struct acpi_predefined_names | ||
282 | acpi_gbl_pre_defined_names[NUM_PREDEFINED_NAMES]; | ||
283 | |||
284 | #ifdef ACPI_DEBUG_OUTPUT | ||
285 | ACPI_EXTERN u32 acpi_gbl_current_node_count; | ||
286 | ACPI_EXTERN u32 acpi_gbl_current_node_size; | ||
287 | ACPI_EXTERN u32 acpi_gbl_max_concurrent_node_count; | ||
288 | ACPI_EXTERN acpi_size *acpi_gbl_entry_stack_pointer; | ||
289 | ACPI_EXTERN acpi_size *acpi_gbl_lowest_stack_pointer; | ||
290 | ACPI_EXTERN u32 acpi_gbl_deepest_nesting; | ||
291 | #endif | ||
292 | |||
293 | /***************************************************************************** | ||
294 | * | ||
295 | * Interpreter globals | ||
296 | * | ||
297 | ****************************************************************************/ | ||
298 | |||
299 | ACPI_EXTERN struct acpi_thread_state *acpi_gbl_current_walk_list; | ||
300 | |||
301 | /* Control method single step flag */ | ||
302 | |||
303 | ACPI_EXTERN u8 acpi_gbl_cm_single_step; | ||
304 | |||
305 | /***************************************************************************** | ||
306 | * | ||
307 | * Hardware globals | ||
308 | * | ||
309 | ****************************************************************************/ | ||
310 | |||
311 | extern struct acpi_bit_register_info | ||
312 | acpi_gbl_bit_register_info[ACPI_NUM_BITREG]; | ||
313 | ACPI_EXTERN u8 acpi_gbl_sleep_type_a; | ||
314 | ACPI_EXTERN u8 acpi_gbl_sleep_type_b; | ||
315 | |||
316 | /***************************************************************************** | ||
317 | * | ||
318 | * Event and GPE globals | ||
319 | * | ||
320 | ****************************************************************************/ | ||
321 | |||
322 | extern struct acpi_fixed_event_info | ||
323 | acpi_gbl_fixed_event_info[ACPI_NUM_FIXED_EVENTS]; | ||
324 | ACPI_EXTERN struct acpi_fixed_event_handler | ||
325 | acpi_gbl_fixed_event_handlers[ACPI_NUM_FIXED_EVENTS]; | ||
326 | ACPI_EXTERN struct acpi_gpe_xrupt_info *acpi_gbl_gpe_xrupt_list_head; | ||
327 | ACPI_EXTERN struct acpi_gpe_block_info | ||
328 | *acpi_gbl_gpe_fadt_blocks[ACPI_MAX_GPE_BLOCKS]; | ||
329 | |||
330 | /***************************************************************************** | ||
331 | * | ||
332 | * Debugger globals | ||
333 | * | ||
334 | ****************************************************************************/ | ||
335 | |||
336 | ACPI_EXTERN u8 acpi_gbl_db_output_flags; | ||
337 | |||
338 | #ifdef ACPI_DISASSEMBLER | ||
339 | |||
340 | ACPI_EXTERN u8 acpi_gbl_db_opt_disasm; | ||
341 | ACPI_EXTERN u8 acpi_gbl_db_opt_verbose; | ||
342 | #endif | ||
343 | |||
344 | #ifdef ACPI_DEBUGGER | ||
345 | |||
346 | extern u8 acpi_gbl_method_executing; | ||
347 | extern u8 acpi_gbl_abort_method; | ||
348 | extern u8 acpi_gbl_db_terminate_threads; | ||
349 | |||
350 | ACPI_EXTERN int optind; | ||
351 | ACPI_EXTERN char *optarg; | ||
352 | |||
353 | ACPI_EXTERN u8 acpi_gbl_db_opt_tables; | ||
354 | ACPI_EXTERN u8 acpi_gbl_db_opt_stats; | ||
355 | ACPI_EXTERN u8 acpi_gbl_db_opt_ini_methods; | ||
356 | |||
357 | ACPI_EXTERN char *acpi_gbl_db_args[ACPI_DEBUGGER_MAX_ARGS]; | ||
358 | ACPI_EXTERN char acpi_gbl_db_line_buf[80]; | ||
359 | ACPI_EXTERN char acpi_gbl_db_parsed_buf[80]; | ||
360 | ACPI_EXTERN char acpi_gbl_db_scope_buf[40]; | ||
361 | ACPI_EXTERN char acpi_gbl_db_debug_filename[40]; | ||
362 | ACPI_EXTERN u8 acpi_gbl_db_output_to_file; | ||
363 | ACPI_EXTERN char *acpi_gbl_db_buffer; | ||
364 | ACPI_EXTERN char *acpi_gbl_db_filename; | ||
365 | ACPI_EXTERN u32 acpi_gbl_db_debug_level; | ||
366 | ACPI_EXTERN u32 acpi_gbl_db_console_debug_level; | ||
367 | ACPI_EXTERN struct acpi_table_header *acpi_gbl_db_table_ptr; | ||
368 | ACPI_EXTERN struct acpi_namespace_node *acpi_gbl_db_scope_node; | ||
369 | |||
370 | /* | ||
371 | * Statistic globals | ||
372 | */ | ||
373 | ACPI_EXTERN u16 acpi_gbl_obj_type_count[ACPI_TYPE_NS_NODE_MAX + 1]; | ||
374 | ACPI_EXTERN u16 acpi_gbl_node_type_count[ACPI_TYPE_NS_NODE_MAX + 1]; | ||
375 | ACPI_EXTERN u16 acpi_gbl_obj_type_count_misc; | ||
376 | ACPI_EXTERN u16 acpi_gbl_node_type_count_misc; | ||
377 | ACPI_EXTERN u32 acpi_gbl_num_nodes; | ||
378 | ACPI_EXTERN u32 acpi_gbl_num_objects; | ||
379 | |||
380 | ACPI_EXTERN u32 acpi_gbl_size_of_parse_tree; | ||
381 | ACPI_EXTERN u32 acpi_gbl_size_of_method_trees; | ||
382 | ACPI_EXTERN u32 acpi_gbl_size_of_node_entries; | ||
383 | ACPI_EXTERN u32 acpi_gbl_size_of_acpi_objects; | ||
384 | |||
385 | #endif /* ACPI_DEBUGGER */ | ||
386 | |||
387 | #endif /* __ACGLOBAL_H__ */ | ||