1
2
3
4
5
6
7
8
9
10 #ifndef __ACOUTPUT_H__
11 #define __ACOUTPUT_H__
12
13
14
15
16
17
18
19
20
21 #define ACPI_UTILITIES 0x00000001
22 #define ACPI_HARDWARE 0x00000002
23 #define ACPI_EVENTS 0x00000004
24 #define ACPI_TABLES 0x00000008
25 #define ACPI_NAMESPACE 0x00000010
26 #define ACPI_PARSER 0x00000020
27 #define ACPI_DISPATCHER 0x00000040
28 #define ACPI_EXECUTER 0x00000080
29 #define ACPI_RESOURCES 0x00000100
30 #define ACPI_CA_DEBUGGER 0x00000200
31 #define ACPI_OS_SERVICES 0x00000400
32 #define ACPI_CA_DISASSEMBLER 0x00000800
33
34
35
36 #define ACPI_COMPILER 0x00001000
37 #define ACPI_TOOLS 0x00002000
38 #define ACPI_EXAMPLE 0x00004000
39 #define ACPI_DRIVER 0x00008000
40 #define DT_COMPILER 0x00010000
41 #define ASL_PREPROCESSOR 0x00020000
42
43 #define ACPI_ALL_COMPONENTS 0x0001FFFF
44 #define ACPI_COMPONENT_DEFAULT (ACPI_ALL_COMPONENTS)
45
46
47
48 #define ACPI_ALL_DRIVERS 0xFFFF0000
49
50
51
52
53 #define ACPI_LV_INIT 0x00000001
54 #define ACPI_LV_DEBUG_OBJECT 0x00000002
55 #define ACPI_LV_INFO 0x00000004
56 #define ACPI_LV_REPAIR 0x00000008
57 #define ACPI_LV_TRACE_POINT 0x00000010
58 #define ACPI_LV_ALL_EXCEPTIONS 0x0000001F
59
60
61
62 #define ACPI_LV_INIT_NAMES 0x00000020
63 #define ACPI_LV_PARSE 0x00000040
64 #define ACPI_LV_LOAD 0x00000080
65 #define ACPI_LV_DISPATCH 0x00000100
66 #define ACPI_LV_EXEC 0x00000200
67 #define ACPI_LV_NAMES 0x00000400
68 #define ACPI_LV_OPREGION 0x00000800
69 #define ACPI_LV_BFIELD 0x00001000
70 #define ACPI_LV_TABLES 0x00002000
71 #define ACPI_LV_VALUES 0x00004000
72 #define ACPI_LV_OBJECTS 0x00008000
73 #define ACPI_LV_RESOURCES 0x00010000
74 #define ACPI_LV_USER_REQUESTS 0x00020000
75 #define ACPI_LV_PACKAGE 0x00040000
76 #define ACPI_LV_EVALUATION 0x00080000
77 #define ACPI_LV_VERBOSITY1 0x000FFF40 | ACPI_LV_ALL_EXCEPTIONS
78
79
80
81 #define ACPI_LV_ALLOCATIONS 0x00100000
82 #define ACPI_LV_FUNCTIONS 0x00200000
83 #define ACPI_LV_OPTIMIZATIONS 0x00400000
84 #define ACPI_LV_PARSE_TREES 0x00800000
85 #define ACPI_LV_VERBOSITY2 0x00F00000 | ACPI_LV_VERBOSITY1
86 #define ACPI_LV_ALL ACPI_LV_VERBOSITY2
87
88
89
90 #define ACPI_LV_MUTEX 0x01000000
91 #define ACPI_LV_THREADS 0x02000000
92 #define ACPI_LV_IO 0x04000000
93 #define ACPI_LV_INTERRUPTS 0x08000000
94 #define ACPI_LV_VERBOSITY3 0x0F000000 | ACPI_LV_VERBOSITY2
95
96
97
98 #define ACPI_LV_AML_DISASSEMBLE 0x10000000
99 #define ACPI_LV_VERBOSE_INFO 0x20000000
100 #define ACPI_LV_FULL_TABLES 0x40000000
101 #define ACPI_LV_EVENTS 0x80000000
102 #define ACPI_LV_VERBOSE 0xF0000000
103
104
105
106
107 #define ACPI_DEBUG_LEVEL(dl) (u32) dl,ACPI_DEBUG_PARAMETERS
108
109
110
111
112
113
114
115 #define ACPI_DB_INIT ACPI_DEBUG_LEVEL (ACPI_LV_INIT)
116 #define ACPI_DB_DEBUG_OBJECT ACPI_DEBUG_LEVEL (ACPI_LV_DEBUG_OBJECT)
117 #define ACPI_DB_INFO ACPI_DEBUG_LEVEL (ACPI_LV_INFO)
118 #define ACPI_DB_REPAIR ACPI_DEBUG_LEVEL (ACPI_LV_REPAIR)
119 #define ACPI_DB_TRACE_POINT ACPI_DEBUG_LEVEL (ACPI_LV_TRACE_POINT)
120 #define ACPI_DB_ALL_EXCEPTIONS ACPI_DEBUG_LEVEL (ACPI_LV_ALL_EXCEPTIONS)
121
122
123
124 #define ACPI_DB_INIT_NAMES ACPI_DEBUG_LEVEL (ACPI_LV_INIT_NAMES)
125 #define ACPI_DB_THREADS ACPI_DEBUG_LEVEL (ACPI_LV_THREADS)
126 #define ACPI_DB_PARSE ACPI_DEBUG_LEVEL (ACPI_LV_PARSE)
127 #define ACPI_DB_DISPATCH ACPI_DEBUG_LEVEL (ACPI_LV_DISPATCH)
128 #define ACPI_DB_LOAD ACPI_DEBUG_LEVEL (ACPI_LV_LOAD)
129 #define ACPI_DB_EXEC ACPI_DEBUG_LEVEL (ACPI_LV_EXEC)
130 #define ACPI_DB_NAMES ACPI_DEBUG_LEVEL (ACPI_LV_NAMES)
131 #define ACPI_DB_OPREGION ACPI_DEBUG_LEVEL (ACPI_LV_OPREGION)
132 #define ACPI_DB_BFIELD ACPI_DEBUG_LEVEL (ACPI_LV_BFIELD)
133 #define ACPI_DB_TABLES ACPI_DEBUG_LEVEL (ACPI_LV_TABLES)
134 #define ACPI_DB_FUNCTIONS ACPI_DEBUG_LEVEL (ACPI_LV_FUNCTIONS)
135 #define ACPI_DB_OPTIMIZATIONS ACPI_DEBUG_LEVEL (ACPI_LV_OPTIMIZATIONS)
136 #define ACPI_DB_PARSE_TREES ACPI_DEBUG_LEVEL (ACPI_LV_PARSE_TREES)
137 #define ACPI_DB_VALUES ACPI_DEBUG_LEVEL (ACPI_LV_VALUES)
138 #define ACPI_DB_OBJECTS ACPI_DEBUG_LEVEL (ACPI_LV_OBJECTS)
139 #define ACPI_DB_ALLOCATIONS ACPI_DEBUG_LEVEL (ACPI_LV_ALLOCATIONS)
140 #define ACPI_DB_RESOURCES ACPI_DEBUG_LEVEL (ACPI_LV_RESOURCES)
141 #define ACPI_DB_IO ACPI_DEBUG_LEVEL (ACPI_LV_IO)
142 #define ACPI_DB_INTERRUPTS ACPI_DEBUG_LEVEL (ACPI_LV_INTERRUPTS)
143 #define ACPI_DB_USER_REQUESTS ACPI_DEBUG_LEVEL (ACPI_LV_USER_REQUESTS)
144 #define ACPI_DB_PACKAGE ACPI_DEBUG_LEVEL (ACPI_LV_PACKAGE)
145 #define ACPI_DB_EVALUATION ACPI_DEBUG_LEVEL (ACPI_LV_EVALUATION)
146 #define ACPI_DB_MUTEX ACPI_DEBUG_LEVEL (ACPI_LV_MUTEX)
147 #define ACPI_DB_EVENTS ACPI_DEBUG_LEVEL (ACPI_LV_EVENTS)
148
149 #define ACPI_DB_ALL ACPI_DEBUG_LEVEL (ACPI_LV_ALL)
150
151
152
153 #ifndef ACPI_DEBUG_DEFAULT
154 #define ACPI_DEBUG_DEFAULT (ACPI_LV_INIT | ACPI_LV_DEBUG_OBJECT | ACPI_LV_EVALUATION | ACPI_LV_REPAIR)
155 #endif
156
157 #define ACPI_NORMAL_DEFAULT (ACPI_LV_INIT | ACPI_LV_DEBUG_OBJECT | ACPI_LV_REPAIR)
158 #define ACPI_DEBUG_ALL (ACPI_LV_AML_DISASSEMBLE | ACPI_LV_ALL_EXCEPTIONS | ACPI_LV_ALL)
159
160
161
162
163 #define ACPI_TRACE_ENABLED ((u32) 4)
164 #define ACPI_TRACE_ONESHOT ((u32) 2)
165 #define ACPI_TRACE_OPCODE ((u32) 1)
166
167
168
169 #define ACPI_TRACE_LEVEL_ALL ACPI_LV_ALL
170 #define ACPI_TRACE_LAYER_ALL 0x000001FF
171 #define ACPI_TRACE_LEVEL_DEFAULT ACPI_LV_TRACE_POINT
172 #define ACPI_TRACE_LAYER_DEFAULT ACPI_EXECUTER
173
174 #if defined (ACPI_DEBUG_OUTPUT) || !defined (ACPI_NO_ERROR_MESSAGES)
175
176
177
178
179
180
181 #define ACPI_MODULE_NAME(name) static const char ACPI_UNUSED_VAR _acpi_module_name[] = name;
182 #else
183
184
185
186
187 #define ACPI_MODULE_NAME(name)
188 #define _acpi_module_name ""
189 #endif
190
191
192
193
194 #ifndef ACPI_NO_ERROR_MESSAGES
195 #define AE_INFO _acpi_module_name, __LINE__
196
197
198
199
200
201
202 #define ACPI_INFO(plist) acpi_info plist
203 #define ACPI_WARNING(plist) acpi_warning plist
204 #define ACPI_EXCEPTION(plist) acpi_exception plist
205 #define ACPI_ERROR(plist) acpi_error plist
206 #define ACPI_BIOS_WARNING(plist) acpi_bios_warning plist
207 #define ACPI_BIOS_EXCEPTION(plist) acpi_bios_exception plist
208 #define ACPI_BIOS_ERROR(plist) acpi_bios_error plist
209 #define ACPI_DEBUG_OBJECT(obj,l,i) acpi_ex_do_debug_object(obj,l,i)
210
211 #else
212
213
214
215 #define ACPI_INFO(plist)
216 #define ACPI_WARNING(plist)
217 #define ACPI_EXCEPTION(plist)
218 #define ACPI_ERROR(plist)
219 #define ACPI_BIOS_WARNING(plist)
220 #define ACPI_BIOS_EXCEPTION(plist)
221 #define ACPI_BIOS_ERROR(plist)
222 #define ACPI_DEBUG_OBJECT(obj,l,i)
223
224 #endif
225
226
227
228
229 #ifdef ACPI_DEBUG_OUTPUT
230
231
232
233
234
235
236 #ifndef ACPI_GET_FUNCTION_NAME
237 #define ACPI_GET_FUNCTION_NAME _acpi_function_name
238
239
240
241
242
243
244
245 #define ACPI_FUNCTION_NAME(name) static const char _acpi_function_name[] = #name;
246
247 #else
248
249
250 #define ACPI_FUNCTION_NAME(name)
251 #endif
252
253
254
255
256
257 #define ACPI_DEBUG_PARAMETERS \
258 __LINE__, ACPI_GET_FUNCTION_NAME, _acpi_module_name, _COMPONENT
259
260
261
262 #define ACPI_IS_DEBUG_ENABLED(level, component) \
263 ((level & acpi_dbg_level) && (component & acpi_dbg_layer))
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280 #ifdef ACPI_USE_DO_WHILE_0
281 #define ACPI_DO_WHILE0(a) do a while(0)
282 #else
283 #define ACPI_DO_WHILE0(a) a
284 #endif
285
286
287
288 #ifndef COMPILER_VA_MACRO
289
290 #define ACPI_DEBUG_PRINT(plist) acpi_debug_print plist
291 #define ACPI_DEBUG_PRINT_RAW(plist) acpi_debug_print_raw plist
292
293 #else
294
295
296
297 #define ACPI_DO_DEBUG_PRINT(function, level, line, filename, modulename, component, ...) \
298 ACPI_DO_WHILE0 ({ \
299 if (ACPI_IS_DEBUG_ENABLED (level, component)) \
300 { \
301 function (level, line, filename, modulename, component, __VA_ARGS__); \
302 } \
303 })
304
305 #define ACPI_ACTUAL_DEBUG(level, line, filename, modulename, component, ...) \
306 ACPI_DO_DEBUG_PRINT (acpi_debug_print, level, line, \
307 filename, modulename, component, __VA_ARGS__)
308
309 #define ACPI_ACTUAL_DEBUG_RAW(level, line, filename, modulename, component, ...) \
310 ACPI_DO_DEBUG_PRINT (acpi_debug_print_raw, level, line, \
311 filename, modulename, component, __VA_ARGS__)
312
313 #define ACPI_DEBUG_PRINT(plist) ACPI_ACTUAL_DEBUG plist
314 #define ACPI_DEBUG_PRINT_RAW(plist) ACPI_ACTUAL_DEBUG_RAW plist
315
316 #endif
317
318
319
320
321
322
323
324
325
326
327 #define ACPI_TRACE_ENTRY(name, function, type, param) \
328 ACPI_FUNCTION_NAME (name) \
329 function (ACPI_DEBUG_PARAMETERS, (type) (param))
330
331
332
333 #define ACPI_FUNCTION_TRACE(name) \
334 ACPI_FUNCTION_NAME(name) \
335 acpi_ut_trace (ACPI_DEBUG_PARAMETERS)
336
337 #define ACPI_FUNCTION_TRACE_PTR(name, pointer) \
338 ACPI_TRACE_ENTRY (name, acpi_ut_trace_ptr, void *, pointer)
339
340 #define ACPI_FUNCTION_TRACE_U32(name, value) \
341 ACPI_TRACE_ENTRY (name, acpi_ut_trace_u32, u32, value)
342
343 #define ACPI_FUNCTION_TRACE_STR(name, string) \
344 ACPI_TRACE_ENTRY (name, acpi_ut_trace_str, const char *, string)
345
346 #define ACPI_FUNCTION_ENTRY() \
347 acpi_ut_track_stack_ptr()
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370 #ifndef ACPI_SIMPLE_RETURN_MACROS
371
372 #define ACPI_TRACE_EXIT(function, type, param) \
373 ACPI_DO_WHILE0 ({ \
374 register type _param = (type) (param); \
375 function (ACPI_DEBUG_PARAMETERS, _param); \
376 return (_param); \
377 })
378
379 #else
380
381 #define ACPI_TRACE_EXIT(function, type, param) \
382 ACPI_DO_WHILE0 ({ \
383 function (ACPI_DEBUG_PARAMETERS, (type) (param)); \
384 return (param); \
385 })
386
387 #endif
388
389
390
391 #define return_VOID \
392 ACPI_DO_WHILE0 ({ \
393 acpi_ut_exit (ACPI_DEBUG_PARAMETERS); \
394 return; \
395 })
396
397 #define return_ACPI_STATUS(status) \
398 ACPI_TRACE_EXIT (acpi_ut_status_exit, acpi_status, status)
399
400 #define return_PTR(pointer) \
401 ACPI_TRACE_EXIT (acpi_ut_ptr_exit, void *, pointer)
402
403 #define return_STR(string) \
404 ACPI_TRACE_EXIT (acpi_ut_str_exit, const char *, string)
405
406 #define return_VALUE(value) \
407 ACPI_TRACE_EXIT (acpi_ut_value_exit, u64, value)
408
409 #define return_UINT32(value) \
410 ACPI_TRACE_EXIT (acpi_ut_value_exit, u32, value)
411
412 #define return_UINT8(value) \
413 ACPI_TRACE_EXIT (acpi_ut_value_exit, u8, value)
414
415
416
417 #define ACPI_DEBUG_EXEC(a) a
418 #define ACPI_DEBUG_ONLY_MEMBERS(a) a;
419 #define _VERBOSE_STRUCTURES
420
421
422
423 #define ACPI_DUMP_STACK_ENTRY(a) acpi_ex_dump_operand((a), 0)
424 #define ACPI_DUMP_OPERANDS(a, b ,c) acpi_ex_dump_operands(a, b, c)
425 #define ACPI_DUMP_ENTRY(a, b) acpi_ns_dump_entry (a, b)
426 #define ACPI_DUMP_PATHNAME(a, b, c, d) acpi_ns_dump_pathname(a, b, c, d)
427 #define ACPI_DUMP_BUFFER(a, b) acpi_ut_debug_dump_buffer((u8 *) a, b, DB_BYTE_DISPLAY, _COMPONENT)
428
429 #define ACPI_TRACE_POINT(a, b, c, d) acpi_trace_point (a, b, c, d)
430
431 #else
432
433
434
435
436 #define ACPI_DEBUG_PRINT(pl)
437 #define ACPI_DEBUG_PRINT_RAW(pl)
438 #define ACPI_DEBUG_EXEC(a)
439 #define ACPI_DEBUG_ONLY_MEMBERS(a)
440 #define ACPI_FUNCTION_NAME(a)
441 #define ACPI_FUNCTION_TRACE(a)
442 #define ACPI_FUNCTION_TRACE_PTR(a, b)
443 #define ACPI_FUNCTION_TRACE_U32(a, b)
444 #define ACPI_FUNCTION_TRACE_STR(a, b)
445 #define ACPI_FUNCTION_ENTRY()
446 #define ACPI_DUMP_STACK_ENTRY(a)
447 #define ACPI_DUMP_OPERANDS(a, b, c)
448 #define ACPI_DUMP_ENTRY(a, b)
449 #define ACPI_DUMP_PATHNAME(a, b, c, d)
450 #define ACPI_DUMP_BUFFER(a, b)
451 #define ACPI_IS_DEBUG_ENABLED(level, component) 0
452 #define ACPI_TRACE_POINT(a, b, c, d)
453
454
455
456 #define return_VOID return
457 #define return_ACPI_STATUS(s) return(s)
458 #define return_PTR(s) return(s)
459 #define return_STR(s) return(s)
460 #define return_VALUE(s) return(s)
461 #define return_UINT8(s) return(s)
462 #define return_UINT32(s) return(s)
463
464 #endif
465
466 #endif