diff options
Diffstat (limited to 'include/acpi/acmacros.h')
-rw-r--r-- | include/acpi/acmacros.h | 122 |
1 files changed, 3 insertions, 119 deletions
diff --git a/include/acpi/acmacros.h b/include/acpi/acmacros.h index a597207e2835..c57286a3aceb 100644 --- a/include/acpi/acmacros.h +++ b/include/acpi/acmacros.h | |||
@@ -45,23 +45,6 @@ | |||
45 | #define __ACMACROS_H__ | 45 | #define __ACMACROS_H__ |
46 | 46 | ||
47 | /* | 47 | /* |
48 | * Data manipulation macros | ||
49 | */ | ||
50 | #define ACPI_LOWORD(l) ((u16)(u32)(l)) | ||
51 | #define ACPI_HIWORD(l) ((u16)((((u32)(l)) >> 16) & 0xFFFF)) | ||
52 | #define ACPI_LOBYTE(l) ((u8)(u16)(l)) | ||
53 | #define ACPI_HIBYTE(l) ((u8)((((u16)(l)) >> 8) & 0xFF)) | ||
54 | |||
55 | #define ACPI_SET_BIT(target,bit) ((target) |= (bit)) | ||
56 | #define ACPI_CLEAR_BIT(target,bit) ((target) &= ~(bit)) | ||
57 | #define ACPI_MIN(a,b) (((a)<(b))?(a):(b)) | ||
58 | #define ACPI_MAX(a,b) (((a)>(b))?(a):(b)) | ||
59 | |||
60 | /* Size calculation */ | ||
61 | |||
62 | #define ACPI_ARRAY_LENGTH(x) (sizeof(x) / sizeof((x)[0])) | ||
63 | |||
64 | /* | ||
65 | * Extract data using a pointer. Any more than a byte and we | 48 | * Extract data using a pointer. Any more than a byte and we |
66 | * get into potential aligment issues -- see the STORE macros below. | 49 | * get into potential aligment issues -- see the STORE macros below. |
67 | * Use with care. | 50 | * Use with care. |
@@ -76,39 +59,6 @@ | |||
76 | #define ACPI_SET64(ptr) *ACPI_CAST_PTR (u64, ptr) | 59 | #define ACPI_SET64(ptr) *ACPI_CAST_PTR (u64, ptr) |
77 | 60 | ||
78 | /* | 61 | /* |
79 | * Pointer manipulation | ||
80 | */ | ||
81 | #define ACPI_CAST_PTR(t, p) ((t *) (acpi_uintptr_t) (p)) | ||
82 | #define ACPI_CAST_INDIRECT_PTR(t, p) ((t **) (acpi_uintptr_t) (p)) | ||
83 | #define ACPI_ADD_PTR(t, a, b) ACPI_CAST_PTR (t, (ACPI_CAST_PTR (u8, (a)) + (acpi_size)(b))) | ||
84 | #define ACPI_PTR_DIFF(a, b) (acpi_size) (ACPI_CAST_PTR (u8, (a)) - ACPI_CAST_PTR (u8, (b))) | ||
85 | |||
86 | /* Pointer/Integer type conversions */ | ||
87 | |||
88 | #define ACPI_TO_POINTER(i) ACPI_ADD_PTR (void, (void *) NULL, (acpi_size) i) | ||
89 | #define ACPI_TO_INTEGER(p) ACPI_PTR_DIFF (p, (void *) NULL) | ||
90 | #define ACPI_OFFSET(d, f) (acpi_size) ACPI_PTR_DIFF (&(((d *)0)->f), (void *) NULL) | ||
91 | #define ACPI_PHYSADDR_TO_PTR(i) ACPI_TO_POINTER(i) | ||
92 | #define ACPI_PTR_TO_PHYSADDR(i) ACPI_TO_INTEGER(i) | ||
93 | |||
94 | #ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED | ||
95 | #define ACPI_COMPARE_NAME(a, b) (*ACPI_CAST_PTR (u32, (a)) == *ACPI_CAST_PTR (u32, (b))) | ||
96 | #else | ||
97 | #define ACPI_COMPARE_NAME(a, b) (!ACPI_STRNCMP (ACPI_CAST_PTR (char, (a)), ACPI_CAST_PTR (char, (b)), ACPI_NAME_SIZE)) | ||
98 | #endif | ||
99 | |||
100 | /* | ||
101 | * Full 64-bit integer must be available on both 32-bit and 64-bit platforms | ||
102 | */ | ||
103 | struct acpi_integer_overlay { | ||
104 | u32 lo_dword; | ||
105 | u32 hi_dword; | ||
106 | }; | ||
107 | |||
108 | #define ACPI_LODWORD(integer) (ACPI_CAST_PTR (struct acpi_integer_overlay, &integer)->lo_dword) | ||
109 | #define ACPI_HIDWORD(integer) (ACPI_CAST_PTR (struct acpi_integer_overlay, &integer)->hi_dword) | ||
110 | |||
111 | /* | ||
112 | * printf() format helpers | 62 | * printf() format helpers |
113 | */ | 63 | */ |
114 | 64 | ||
@@ -209,7 +159,7 @@ struct acpi_integer_overlay { | |||
209 | /* | 159 | /* |
210 | * The hardware does not support unaligned transfers. We must move the | 160 | * The hardware does not support unaligned transfers. We must move the |
211 | * data one byte at a time. These macros work whether the source or | 161 | * data one byte at a time. These macros work whether the source or |
212 | * the destination (or both) is/are unaligned. (Little-endian move) | 162 | * the destination (or both) is/are unaligned. (Little-endian move) |
213 | */ | 163 | */ |
214 | 164 | ||
215 | /* 16-bit source, 16/32/64 destination */ | 165 | /* 16-bit source, 16/32/64 destination */ |
@@ -357,12 +307,6 @@ struct acpi_integer_overlay { | |||
357 | {(u32)(Pargs), (u32)(Iargs), (u32)(flags), obj_type, class, type} | 307 | {(u32)(Pargs), (u32)(Iargs), (u32)(flags), obj_type, class, type} |
358 | #endif | 308 | #endif |
359 | 309 | ||
360 | #ifdef ACPI_DISASSEMBLER | ||
361 | #define ACPI_DISASM_ONLY_MEMBERS(a) a; | ||
362 | #else | ||
363 | #define ACPI_DISASM_ONLY_MEMBERS(a) | ||
364 | #endif | ||
365 | |||
366 | #define ARG_TYPE_WIDTH 5 | 310 | #define ARG_TYPE_WIDTH 5 |
367 | #define ARG_1(x) ((u32)(x)) | 311 | #define ARG_1(x) ((u32)(x)) |
368 | #define ARG_2(x) ((u32)(x) << (1 * ARG_TYPE_WIDTH)) | 312 | #define ARG_2(x) ((u32)(x) << (1 * ARG_TYPE_WIDTH)) |
@@ -388,32 +332,16 @@ struct acpi_integer_overlay { | |||
388 | #define GET_CURRENT_ARG_TYPE(list) (list & ((u32) 0x1F)) | 332 | #define GET_CURRENT_ARG_TYPE(list) (list & ((u32) 0x1F)) |
389 | #define INCREMENT_ARG_LIST(list) (list >>= ((u32) ARG_TYPE_WIDTH)) | 333 | #define INCREMENT_ARG_LIST(list) (list >>= ((u32) ARG_TYPE_WIDTH)) |
390 | 334 | ||
391 | #if defined (ACPI_DEBUG_OUTPUT) || !defined (ACPI_NO_ERROR_MESSAGES) | ||
392 | /* | ||
393 | * Module name is include in both debug and non-debug versions primarily for | ||
394 | * error messages. The __FILE__ macro is not very useful for this, because it | ||
395 | * often includes the entire pathname to the module | ||
396 | */ | ||
397 | #define ACPI_MODULE_NAME(name) static const char ACPI_UNUSED_VAR _acpi_module_name[] = name; | ||
398 | #else | ||
399 | #define ACPI_MODULE_NAME(name) | ||
400 | #endif | ||
401 | |||
402 | /* | 335 | /* |
403 | * Ascii error messages can be configured out | 336 | * Ascii error messages can be configured out |
404 | */ | 337 | */ |
405 | #ifndef ACPI_NO_ERROR_MESSAGES | 338 | #ifndef ACPI_NO_ERROR_MESSAGES |
406 | #define AE_INFO _acpi_module_name, __LINE__ | ||
407 | 339 | ||
408 | /* | 340 | /* |
409 | * Error reporting. Callers module and line number are inserted by AE_INFO, | 341 | * Error reporting. Callers module and line number are inserted by AE_INFO, |
410 | * the plist contains a set of parens to allow variable-length lists. | 342 | * the plist contains a set of parens to allow variable-length lists. |
411 | * These macros are used for both the debug and non-debug versions of the code. | 343 | * These macros are used for both the debug and non-debug versions of the code. |
412 | */ | 344 | */ |
413 | #define ACPI_INFO(plist) acpi_ut_info plist | ||
414 | #define ACPI_WARNING(plist) acpi_ut_warning plist | ||
415 | #define ACPI_EXCEPTION(plist) acpi_ut_exception plist | ||
416 | #define ACPI_ERROR(plist) acpi_ut_error plist | ||
417 | #define ACPI_ERROR_NAMESPACE(s, e) acpi_ns_report_error (AE_INFO, s, e); | 345 | #define ACPI_ERROR_NAMESPACE(s, e) acpi_ns_report_error (AE_INFO, s, e); |
418 | #define ACPI_ERROR_METHOD(s, n, p, e) acpi_ns_report_method_error (AE_INFO, s, n, p, e); | 346 | #define ACPI_ERROR_METHOD(s, n, p, e) acpi_ns_report_method_error (AE_INFO, s, n, p, e); |
419 | 347 | ||
@@ -421,13 +349,9 @@ struct acpi_integer_overlay { | |||
421 | 349 | ||
422 | /* No error messages */ | 350 | /* No error messages */ |
423 | 351 | ||
424 | #define ACPI_INFO(plist) | ||
425 | #define ACPI_WARNING(plist) | ||
426 | #define ACPI_EXCEPTION(plist) | ||
427 | #define ACPI_ERROR(plist) | ||
428 | #define ACPI_ERROR_NAMESPACE(s, e) | 352 | #define ACPI_ERROR_NAMESPACE(s, e) |
429 | #define ACPI_ERROR_METHOD(s, n, p, e) | 353 | #define ACPI_ERROR_METHOD(s, n, p, e) |
430 | #endif | 354 | #endif /* ACPI_NO_ERROR_MESSAGES */ |
431 | 355 | ||
432 | /* | 356 | /* |
433 | * Debug macros that are conditionally compiled | 357 | * Debug macros that are conditionally compiled |
@@ -435,36 +359,8 @@ struct acpi_integer_overlay { | |||
435 | #ifdef ACPI_DEBUG_OUTPUT | 359 | #ifdef ACPI_DEBUG_OUTPUT |
436 | 360 | ||
437 | /* | 361 | /* |
438 | * Common parameters used for debug output functions: | ||
439 | * line number, function name, module(file) name, component ID | ||
440 | */ | ||
441 | #define ACPI_DEBUG_PARAMETERS __LINE__, ACPI_GET_FUNCTION_NAME, _acpi_module_name, _COMPONENT | ||
442 | |||
443 | /* | ||
444 | * Function entry tracing | 362 | * Function entry tracing |
445 | */ | 363 | */ |
446 | |||
447 | /* | ||
448 | * If ACPI_GET_FUNCTION_NAME was not defined in the compiler-dependent header, | ||
449 | * define it now. This is the case where there the compiler does not support | ||
450 | * a __func__ macro or equivalent. | ||
451 | */ | ||
452 | #ifndef ACPI_GET_FUNCTION_NAME | ||
453 | #define ACPI_GET_FUNCTION_NAME _acpi_function_name | ||
454 | /* | ||
455 | * The Name parameter should be the procedure name as a quoted string. | ||
456 | * The function name is also used by the function exit macros below. | ||
457 | * Note: (const char) is used to be compatible with the debug interfaces | ||
458 | * and macros such as __func__. | ||
459 | */ | ||
460 | #define ACPI_FUNCTION_NAME(name) static const char _acpi_function_name[] = #name; | ||
461 | |||
462 | #else | ||
463 | /* Compiler supports __func__ (or equivalent) -- Ignore this macro */ | ||
464 | |||
465 | #define ACPI_FUNCTION_NAME(name) | ||
466 | #endif | ||
467 | |||
468 | #ifdef CONFIG_ACPI_DEBUG_FUNC_TRACE | 364 | #ifdef CONFIG_ACPI_DEBUG_FUNC_TRACE |
469 | 365 | ||
470 | #define ACPI_FUNCTION_TRACE(a) ACPI_FUNCTION_NAME(a) \ | 366 | #define ACPI_FUNCTION_TRACE(a) ACPI_FUNCTION_NAME(a) \ |
@@ -584,15 +480,6 @@ struct acpi_integer_overlay { | |||
584 | #define ACPI_DUMP_RESOURCE_LIST(a) acpi_rs_dump_resource_list(a) | 480 | #define ACPI_DUMP_RESOURCE_LIST(a) acpi_rs_dump_resource_list(a) |
585 | #define ACPI_DUMP_BUFFER(a, b) acpi_ut_dump_buffer((u8 *) a, b, DB_BYTE_DISPLAY, _COMPONENT) | 481 | #define ACPI_DUMP_BUFFER(a, b) acpi_ut_dump_buffer((u8 *) a, b, DB_BYTE_DISPLAY, _COMPONENT) |
586 | 482 | ||
587 | /* | ||
588 | * Master debug print macros | ||
589 | * Print iff: | ||
590 | * 1) Debug print for the current component is enabled | ||
591 | * 2) Debug error level or trace level for the print statement is enabled | ||
592 | */ | ||
593 | #define ACPI_DEBUG_PRINT(plist) acpi_ut_debug_print plist | ||
594 | #define ACPI_DEBUG_PRINT_RAW(plist) acpi_ut_debug_print_raw plist | ||
595 | |||
596 | #else | 483 | #else |
597 | /* | 484 | /* |
598 | * This is the non-debug case -- make everything go away, | 485 | * This is the non-debug case -- make everything go away, |
@@ -603,7 +490,6 @@ struct acpi_integer_overlay { | |||
603 | 490 | ||
604 | #define ACPI_DEBUG_DEFINE(a) do { } while(0) | 491 | #define ACPI_DEBUG_DEFINE(a) do { } while(0) |
605 | #define ACPI_DEBUG_ONLY_MEMBERS(a) do { } while(0) | 492 | #define ACPI_DEBUG_ONLY_MEMBERS(a) do { } while(0) |
606 | #define ACPI_FUNCTION_NAME(a) do { } while(0) | ||
607 | #define ACPI_FUNCTION_TRACE(a) do { } while(0) | 493 | #define ACPI_FUNCTION_TRACE(a) do { } while(0) |
608 | #define ACPI_FUNCTION_TRACE_PTR(a, b) do { } while(0) | 494 | #define ACPI_FUNCTION_TRACE_PTR(a, b) do { } while(0) |
609 | #define ACPI_FUNCTION_TRACE_U32(a, b) do { } while(0) | 495 | #define ACPI_FUNCTION_TRACE_U32(a, b) do { } while(0) |
@@ -619,8 +505,6 @@ struct acpi_integer_overlay { | |||
619 | #define ACPI_DUMP_PATHNAME(a, b, c, d) do { } while(0) | 505 | #define ACPI_DUMP_PATHNAME(a, b, c, d) do { } while(0) |
620 | #define ACPI_DUMP_RESOURCE_LIST(a) do { } while(0) | 506 | #define ACPI_DUMP_RESOURCE_LIST(a) do { } while(0) |
621 | #define ACPI_DUMP_BUFFER(a, b) do { } while(0) | 507 | #define ACPI_DUMP_BUFFER(a, b) do { } while(0) |
622 | #define ACPI_DEBUG_PRINT(pl) do { } while(0) | ||
623 | #define ACPI_DEBUG_PRINT_RAW(pl) do { } while(0) | ||
624 | 508 | ||
625 | #define return_VOID return | 509 | #define return_VOID return |
626 | #define return_ACPI_STATUS(s) return(s) | 510 | #define return_ACPI_STATUS(s) return(s) |
@@ -629,7 +513,7 @@ struct acpi_integer_overlay { | |||
629 | #define return_UINT32(s) return(s) | 513 | #define return_UINT32(s) return(s) |
630 | #define return_PTR(s) return(s) | 514 | #define return_PTR(s) return(s) |
631 | 515 | ||
632 | #endif | 516 | #endif /* ACPI_DEBUG_OUTPUT */ |
633 | 517 | ||
634 | /* | 518 | /* |
635 | * Some code only gets executed when the debugger is built in. | 519 | * Some code only gets executed when the debugger is built in. |