diff options
Diffstat (limited to 'drivers/acpi/acpica/acmacros.h')
| -rw-r--r-- | drivers/acpi/acpica/acmacros.h | 163 |
1 files changed, 58 insertions, 105 deletions
diff --git a/drivers/acpi/acpica/acmacros.h b/drivers/acpi/acpica/acmacros.h index a7f68c47f517..5efad99f2169 100644 --- a/drivers/acpi/acpica/acmacros.h +++ b/drivers/acpi/acpica/acmacros.h | |||
| @@ -84,29 +84,29 @@ | |||
| 84 | 84 | ||
| 85 | /* These macros reverse the bytes during the move, converting little-endian to big endian */ | 85 | /* These macros reverse the bytes during the move, converting little-endian to big endian */ |
| 86 | 86 | ||
| 87 | /* Big Endian <== Little Endian */ | 87 | /* Big Endian <== Little Endian */ |
| 88 | /* Hi...Lo Lo...Hi */ | 88 | /* Hi...Lo Lo...Hi */ |
| 89 | /* 16-bit source, 16/32/64 destination */ | 89 | /* 16-bit source, 16/32/64 destination */ |
| 90 | 90 | ||
| 91 | #define ACPI_MOVE_16_TO_16(d, s) {(( u8 *)(void *)(d))[0] = ((u8 *)(void *)(s))[1];\ | 91 | #define ACPI_MOVE_16_TO_16(d, s) {(( u8 *)(void *)(d))[0] = ((u8 *)(void *)(s))[1];\ |
| 92 | (( u8 *)(void *)(d))[1] = ((u8 *)(void *)(s))[0];} | 92 | (( u8 *)(void *)(d))[1] = ((u8 *)(void *)(s))[0];} |
| 93 | 93 | ||
| 94 | #define ACPI_MOVE_16_TO_32(d, s) {(*(u32 *)(void *)(d))=0;\ | 94 | #define ACPI_MOVE_16_TO_32(d, s) {(*(u32 *)(void *)(d))=0;\ |
| 95 | ((u8 *)(void *)(d))[2] = ((u8 *)(void *)(s))[1];\ | 95 | ((u8 *)(void *)(d))[2] = ((u8 *)(void *)(s))[1];\ |
| 96 | ((u8 *)(void *)(d))[3] = ((u8 *)(void *)(s))[0];} | 96 | ((u8 *)(void *)(d))[3] = ((u8 *)(void *)(s))[0];} |
| 97 | 97 | ||
| 98 | #define ACPI_MOVE_16_TO_64(d, s) {(*(u64 *)(void *)(d))=0;\ | 98 | #define ACPI_MOVE_16_TO_64(d, s) {(*(u64 *)(void *)(d))=0;\ |
| 99 | ((u8 *)(void *)(d))[6] = ((u8 *)(void *)(s))[1];\ | 99 | ((u8 *)(void *)(d))[6] = ((u8 *)(void *)(s))[1];\ |
| 100 | ((u8 *)(void *)(d))[7] = ((u8 *)(void *)(s))[0];} | 100 | ((u8 *)(void *)(d))[7] = ((u8 *)(void *)(s))[0];} |
| 101 | 101 | ||
| 102 | /* 32-bit source, 16/32/64 destination */ | 102 | /* 32-bit source, 16/32/64 destination */ |
| 103 | 103 | ||
| 104 | #define ACPI_MOVE_32_TO_16(d, s) ACPI_MOVE_16_TO_16(d, s) /* Truncate to 16 */ | 104 | #define ACPI_MOVE_32_TO_16(d, s) ACPI_MOVE_16_TO_16(d, s) /* Truncate to 16 */ |
| 105 | 105 | ||
| 106 | #define ACPI_MOVE_32_TO_32(d, s) {(( u8 *)(void *)(d))[0] = ((u8 *)(void *)(s))[3];\ | 106 | #define ACPI_MOVE_32_TO_32(d, s) {(( u8 *)(void *)(d))[0] = ((u8 *)(void *)(s))[3];\ |
| 107 | (( u8 *)(void *)(d))[1] = ((u8 *)(void *)(s))[2];\ | 107 | (( u8 *)(void *)(d))[1] = ((u8 *)(void *)(s))[2];\ |
| 108 | (( u8 *)(void *)(d))[2] = ((u8 *)(void *)(s))[1];\ | 108 | (( u8 *)(void *)(d))[2] = ((u8 *)(void *)(s))[1];\ |
| 109 | (( u8 *)(void *)(d))[3] = ((u8 *)(void *)(s))[0];} | 109 | (( u8 *)(void *)(d))[3] = ((u8 *)(void *)(s))[0];} |
| 110 | 110 | ||
| 111 | #define ACPI_MOVE_32_TO_64(d, s) {(*(u64 *)(void *)(d))=0;\ | 111 | #define ACPI_MOVE_32_TO_64(d, s) {(*(u64 *)(void *)(d))=0;\ |
| 112 | ((u8 *)(void *)(d))[4] = ((u8 *)(void *)(s))[3];\ | 112 | ((u8 *)(void *)(d))[4] = ((u8 *)(void *)(s))[3];\ |
| @@ -196,24 +196,12 @@ | |||
| 196 | #endif | 196 | #endif |
| 197 | #endif | 197 | #endif |
| 198 | 198 | ||
| 199 | /* Macros based on machine integer width */ | ||
| 200 | |||
| 201 | #if ACPI_MACHINE_WIDTH == 32 | ||
| 202 | #define ACPI_MOVE_SIZE_TO_16(d, s) ACPI_MOVE_32_TO_16(d, s) | ||
| 203 | |||
| 204 | #elif ACPI_MACHINE_WIDTH == 64 | ||
| 205 | #define ACPI_MOVE_SIZE_TO_16(d, s) ACPI_MOVE_64_TO_16(d, s) | ||
| 206 | |||
| 207 | #else | ||
| 208 | #error unknown ACPI_MACHINE_WIDTH | ||
| 209 | #endif | ||
| 210 | |||
| 211 | /* | 199 | /* |
| 212 | * Fast power-of-two math macros for non-optimized compilers | 200 | * Fast power-of-two math macros for non-optimized compilers |
| 213 | */ | 201 | */ |
| 214 | #define _ACPI_DIV(value, power_of2) ((u32) ((value) >> (power_of2))) | 202 | #define _ACPI_DIV(value, power_of2) ((u32) ((value) >> (power_of2))) |
| 215 | #define _ACPI_MUL(value, power_of2) ((u32) ((value) << (power_of2))) | 203 | #define _ACPI_MUL(value, power_of2) ((u32) ((value) << (power_of2))) |
| 216 | #define _ACPI_MOD(value, divisor) ((u32) ((value) & ((divisor) -1))) | 204 | #define _ACPI_MOD(value, divisor) ((u32) ((value) & ((divisor) -1))) |
| 217 | 205 | ||
| 218 | #define ACPI_DIV_2(a) _ACPI_DIV(a, 1) | 206 | #define ACPI_DIV_2(a) _ACPI_DIV(a, 1) |
| 219 | #define ACPI_MUL_2(a) _ACPI_MUL(a, 1) | 207 | #define ACPI_MUL_2(a) _ACPI_MUL(a, 1) |
| @@ -238,12 +226,12 @@ | |||
| 238 | /* | 226 | /* |
| 239 | * Rounding macros (Power of two boundaries only) | 227 | * Rounding macros (Power of two boundaries only) |
| 240 | */ | 228 | */ |
| 241 | #define ACPI_ROUND_DOWN(value, boundary) (((acpi_size)(value)) & \ | 229 | #define ACPI_ROUND_DOWN(value, boundary) (((acpi_size)(value)) & \ |
| 242 | (~(((acpi_size) boundary)-1))) | 230 | (~(((acpi_size) boundary)-1))) |
| 243 | 231 | ||
| 244 | #define ACPI_ROUND_UP(value, boundary) ((((acpi_size)(value)) + \ | 232 | #define ACPI_ROUND_UP(value, boundary) ((((acpi_size)(value)) + \ |
| 245 | (((acpi_size) boundary)-1)) & \ | 233 | (((acpi_size) boundary)-1)) & \ |
| 246 | (~(((acpi_size) boundary)-1))) | 234 | (~(((acpi_size) boundary)-1))) |
| 247 | 235 | ||
| 248 | /* Note: sizeof(acpi_size) evaluates to either 4 or 8 (32- vs 64-bit mode) */ | 236 | /* Note: sizeof(acpi_size) evaluates to either 4 or 8 (32- vs 64-bit mode) */ |
| 249 | 237 | ||
| @@ -264,7 +252,7 @@ | |||
| 264 | 252 | ||
| 265 | #define ACPI_ROUND_UP_TO(value, boundary) (((value) + ((boundary)-1)) / (boundary)) | 253 | #define ACPI_ROUND_UP_TO(value, boundary) (((value) + ((boundary)-1)) / (boundary)) |
| 266 | 254 | ||
| 267 | #define ACPI_IS_MISALIGNED(value) (((acpi_size) value) & (sizeof(acpi_size)-1)) | 255 | #define ACPI_IS_MISALIGNED(value) (((acpi_size) value) & (sizeof(acpi_size)-1)) |
| 268 | 256 | ||
| 269 | /* | 257 | /* |
| 270 | * Bitmask creation | 258 | * Bitmask creation |
| @@ -355,7 +343,6 @@ | |||
| 355 | * Ascii error messages can be configured out | 343 | * Ascii error messages can be configured out |
| 356 | */ | 344 | */ |
| 357 | #ifndef ACPI_NO_ERROR_MESSAGES | 345 | #ifndef ACPI_NO_ERROR_MESSAGES |
| 358 | |||
| 359 | /* | 346 | /* |
| 360 | * Error reporting. Callers module and line number are inserted by AE_INFO, | 347 | * Error reporting. Callers module and line number are inserted by AE_INFO, |
| 361 | * the plist contains a set of parens to allow variable-length lists. | 348 | * the plist contains a set of parens to allow variable-length lists. |
| @@ -375,18 +362,15 @@ | |||
| 375 | #define ACPI_WARN_PREDEFINED(plist) | 362 | #define ACPI_WARN_PREDEFINED(plist) |
| 376 | #define ACPI_INFO_PREDEFINED(plist) | 363 | #define ACPI_INFO_PREDEFINED(plist) |
| 377 | 364 | ||
| 378 | #endif /* ACPI_NO_ERROR_MESSAGES */ | 365 | #endif /* ACPI_NO_ERROR_MESSAGES */ |
| 379 | 366 | ||
| 380 | /* | 367 | /* |
| 381 | * Debug macros that are conditionally compiled | 368 | * Debug macros that are conditionally compiled |
| 382 | */ | 369 | */ |
| 383 | #ifdef ACPI_DEBUG_OUTPUT | 370 | #ifdef ACPI_DEBUG_OUTPUT |
| 384 | |||
| 385 | /* | 371 | /* |
| 386 | * Function entry tracing | 372 | * Function entry tracing |
| 387 | */ | 373 | */ |
| 388 | #ifdef CONFIG_ACPI_DEBUG_FUNC_TRACE | ||
| 389 | |||
| 390 | #define ACPI_FUNCTION_TRACE(a) ACPI_FUNCTION_NAME(a) \ | 374 | #define ACPI_FUNCTION_TRACE(a) ACPI_FUNCTION_NAME(a) \ |
| 391 | acpi_ut_trace(ACPI_DEBUG_PARAMETERS) | 375 | acpi_ut_trace(ACPI_DEBUG_PARAMETERS) |
| 392 | #define ACPI_FUNCTION_TRACE_PTR(a, b) ACPI_FUNCTION_NAME(a) \ | 376 | #define ACPI_FUNCTION_TRACE_PTR(a, b) ACPI_FUNCTION_NAME(a) \ |
| @@ -464,45 +448,19 @@ | |||
| 464 | 448 | ||
| 465 | #endif /* ACPI_SIMPLE_RETURN_MACROS */ | 449 | #endif /* ACPI_SIMPLE_RETURN_MACROS */ |
| 466 | 450 | ||
| 467 | #else /* !CONFIG_ACPI_DEBUG_FUNC_TRACE */ | ||
| 468 | |||
| 469 | #define ACPI_FUNCTION_TRACE(a) | ||
| 470 | #define ACPI_FUNCTION_TRACE_PTR(a,b) | ||
| 471 | #define ACPI_FUNCTION_TRACE_U32(a,b) | ||
| 472 | #define ACPI_FUNCTION_TRACE_STR(a,b) | ||
| 473 | #define ACPI_FUNCTION_EXIT | ||
| 474 | #define ACPI_FUNCTION_STATUS_EXIT(s) | ||
| 475 | #define ACPI_FUNCTION_VALUE_EXIT(s) | ||
| 476 | #define ACPI_FUNCTION_TRACE(a) | ||
| 477 | #define ACPI_FUNCTION_ENTRY() | ||
| 478 | |||
| 479 | #define return_VOID return | ||
| 480 | #define return_ACPI_STATUS(s) return(s) | ||
| 481 | #define return_VALUE(s) return(s) | ||
| 482 | #define return_UINT8(s) return(s) | ||
| 483 | #define return_UINT32(s) return(s) | ||
| 484 | #define return_PTR(s) return(s) | ||
| 485 | |||
| 486 | #endif /* CONFIG_ACPI_DEBUG_FUNC_TRACE */ | ||
| 487 | |||
| 488 | /* Conditional execution */ | 451 | /* Conditional execution */ |
| 489 | 452 | ||
| 490 | #define ACPI_DEBUG_EXEC(a) a | 453 | #define ACPI_DEBUG_EXEC(a) a |
| 491 | #define ACPI_NORMAL_EXEC(a) | ||
| 492 | |||
| 493 | #define ACPI_DEBUG_DEFINE(a) a; | ||
| 494 | #define ACPI_DEBUG_ONLY_MEMBERS(a) a; | 454 | #define ACPI_DEBUG_ONLY_MEMBERS(a) a; |
| 495 | #define _VERBOSE_STRUCTURES | 455 | #define _VERBOSE_STRUCTURES |
| 496 | 456 | ||
| 497 | /* Stack and buffer dumping */ | 457 | /* Various object display routines for debug */ |
| 498 | 458 | ||
| 499 | #define ACPI_DUMP_STACK_ENTRY(a) acpi_ex_dump_operand((a), 0) | 459 | #define ACPI_DUMP_STACK_ENTRY(a) acpi_ex_dump_operand((a), 0) |
| 500 | #define ACPI_DUMP_OPERANDS(a, b, c) acpi_ex_dump_operands(a, b, c) | 460 | #define ACPI_DUMP_OPERANDS(a, b ,c) acpi_ex_dump_operands(a, b, c) |
| 501 | |||
| 502 | #define ACPI_DUMP_ENTRY(a, b) acpi_ns_dump_entry (a, b) | 461 | #define ACPI_DUMP_ENTRY(a, b) acpi_ns_dump_entry (a, b) |
| 503 | #define ACPI_DUMP_PATHNAME(a, b, c, d) acpi_ns_dump_pathname(a, b, c, d) | 462 | #define ACPI_DUMP_PATHNAME(a, b, c, d) acpi_ns_dump_pathname(a, b, c, d) |
| 504 | #define ACPI_DUMP_RESOURCE_LIST(a) acpi_rs_dump_resource_list(a) | 463 | #define ACPI_DUMP_BUFFER(a, b) acpi_ut_debug_dump_buffer((u8 *) a, b, DB_BYTE_DISPLAY, _COMPONENT) |
| 505 | #define ACPI_DUMP_BUFFER(a, b) acpi_ut_dump_buffer((u8 *) a, b, DB_BYTE_DISPLAY, _COMPONENT) | ||
| 506 | 464 | ||
| 507 | #else | 465 | #else |
| 508 | /* | 466 | /* |
| @@ -510,25 +468,23 @@ | |||
| 510 | * leaving no executable debug code! | 468 | * leaving no executable debug code! |
| 511 | */ | 469 | */ |
| 512 | #define ACPI_DEBUG_EXEC(a) | 470 | #define ACPI_DEBUG_EXEC(a) |
| 513 | #define ACPI_NORMAL_EXEC(a) a; | 471 | #define ACPI_DEBUG_ONLY_MEMBERS(a) |
| 514 | 472 | #define ACPI_FUNCTION_TRACE(a) | |
| 515 | #define ACPI_DEBUG_DEFINE(a) do { } while(0) | 473 | #define ACPI_FUNCTION_TRACE_PTR(a, b) |
| 516 | #define ACPI_DEBUG_ONLY_MEMBERS(a) do { } while(0) | 474 | #define ACPI_FUNCTION_TRACE_U32(a, b) |
| 517 | #define ACPI_FUNCTION_TRACE(a) do { } while(0) | 475 | #define ACPI_FUNCTION_TRACE_STR(a, b) |
| 518 | #define ACPI_FUNCTION_TRACE_PTR(a, b) do { } while(0) | 476 | #define ACPI_FUNCTION_EXIT |
| 519 | #define ACPI_FUNCTION_TRACE_U32(a, b) do { } while(0) | 477 | #define ACPI_FUNCTION_STATUS_EXIT(s) |
| 520 | #define ACPI_FUNCTION_TRACE_STR(a, b) do { } while(0) | 478 | #define ACPI_FUNCTION_VALUE_EXIT(s) |
| 521 | #define ACPI_FUNCTION_EXIT do { } while(0) | 479 | #define ACPI_FUNCTION_ENTRY() |
| 522 | #define ACPI_FUNCTION_STATUS_EXIT(s) do { } while(0) | 480 | #define ACPI_DUMP_STACK_ENTRY(a) |
| 523 | #define ACPI_FUNCTION_VALUE_EXIT(s) do { } while(0) | 481 | #define ACPI_DUMP_OPERANDS(a, b, c) |
| 524 | #define ACPI_FUNCTION_ENTRY() do { } while(0) | 482 | #define ACPI_DUMP_ENTRY(a, b) |
| 525 | #define ACPI_DUMP_STACK_ENTRY(a) do { } while(0) | 483 | #define ACPI_DUMP_TABLES(a, b) |
| 526 | #define ACPI_DUMP_OPERANDS(a, b, c) do { } while(0) | 484 | #define ACPI_DUMP_PATHNAME(a, b, c, d) |
| 527 | #define ACPI_DUMP_ENTRY(a, b) do { } while(0) | 485 | #define ACPI_DUMP_BUFFER(a, b) |
| 528 | #define ACPI_DUMP_TABLES(a, b) do { } while(0) | 486 | #define ACPI_DEBUG_PRINT(pl) |
| 529 | #define ACPI_DUMP_PATHNAME(a, b, c, d) do { } while(0) | 487 | #define ACPI_DEBUG_PRINT_RAW(pl) |
| 530 | #define ACPI_DUMP_RESOURCE_LIST(a) do { } while(0) | ||
| 531 | #define ACPI_DUMP_BUFFER(a, b) do { } while(0) | ||
| 532 | 488 | ||
| 533 | #define return_VOID return | 489 | #define return_VOID return |
| 534 | #define return_ACPI_STATUS(s) return(s) | 490 | #define return_ACPI_STATUS(s) return(s) |
| @@ -556,18 +512,6 @@ | |||
| 556 | #define ACPI_DEBUGGER_EXEC(a) | 512 | #define ACPI_DEBUGGER_EXEC(a) |
| 557 | #endif | 513 | #endif |
| 558 | 514 | ||
| 559 | #ifdef ACPI_DEBUG_OUTPUT | ||
| 560 | /* | ||
| 561 | * 1) Set name to blanks | ||
| 562 | * 2) Copy the object name | ||
| 563 | */ | ||
| 564 | #define ACPI_ADD_OBJECT_NAME(a,b) ACPI_MEMSET (a->common.name, ' ', sizeof (a->common.name));\ | ||
| 565 | ACPI_STRNCPY (a->common.name, acpi_gbl_ns_type_names[b], sizeof (a->common.name)) | ||
| 566 | #else | ||
| 567 | |||
| 568 | #define ACPI_ADD_OBJECT_NAME(a,b) | ||
| 569 | #endif | ||
| 570 | |||
| 571 | /* | 515 | /* |
| 572 | * Memory allocation tracking (DEBUG ONLY) | 516 | * Memory allocation tracking (DEBUG ONLY) |
| 573 | */ | 517 | */ |
| @@ -578,13 +522,13 @@ | |||
| 578 | /* Memory allocation */ | 522 | /* Memory allocation */ |
| 579 | 523 | ||
| 580 | #ifndef ACPI_ALLOCATE | 524 | #ifndef ACPI_ALLOCATE |
| 581 | #define ACPI_ALLOCATE(a) acpi_ut_allocate((acpi_size)(a), ACPI_MEM_PARAMETERS) | 525 | #define ACPI_ALLOCATE(a) acpi_ut_allocate((acpi_size) (a), ACPI_MEM_PARAMETERS) |
| 582 | #endif | 526 | #endif |
| 583 | #ifndef ACPI_ALLOCATE_ZEROED | 527 | #ifndef ACPI_ALLOCATE_ZEROED |
| 584 | #define ACPI_ALLOCATE_ZEROED(a) acpi_ut_allocate_zeroed((acpi_size)(a), ACPI_MEM_PARAMETERS) | 528 | #define ACPI_ALLOCATE_ZEROED(a) acpi_ut_allocate_zeroed((acpi_size) (a), ACPI_MEM_PARAMETERS) |
| 585 | #endif | 529 | #endif |
| 586 | #ifndef ACPI_FREE | 530 | #ifndef ACPI_FREE |
| 587 | #define ACPI_FREE(a) acpio_os_free(a) | 531 | #define ACPI_FREE(a) acpi_os_free(a) |
| 588 | #endif | 532 | #endif |
| 589 | #define ACPI_MEM_TRACKING(a) | 533 | #define ACPI_MEM_TRACKING(a) |
| 590 | 534 | ||
| @@ -592,16 +536,25 @@ | |||
| 592 | 536 | ||
| 593 | /* Memory allocation */ | 537 | /* Memory allocation */ |
| 594 | 538 | ||
| 595 | #define ACPI_ALLOCATE(a) acpi_ut_allocate_and_track((acpi_size)(a), ACPI_MEM_PARAMETERS) | 539 | #define ACPI_ALLOCATE(a) acpi_ut_allocate_and_track((acpi_size) (a), ACPI_MEM_PARAMETERS) |
| 596 | #define ACPI_ALLOCATE_ZEROED(a) acpi_ut_allocate_zeroed_and_track((acpi_size)(a), ACPI_MEM_PARAMETERS) | 540 | #define ACPI_ALLOCATE_ZEROED(a) acpi_ut_allocate_zeroed_and_track((acpi_size) (a), ACPI_MEM_PARAMETERS) |
| 597 | #define ACPI_FREE(a) acpi_ut_free_and_track(a, ACPI_MEM_PARAMETERS) | 541 | #define ACPI_FREE(a) acpi_ut_free_and_track(a, ACPI_MEM_PARAMETERS) |
| 598 | #define ACPI_MEM_TRACKING(a) a | 542 | #define ACPI_MEM_TRACKING(a) a |
| 599 | 543 | ||
| 600 | #endif /* ACPI_DBG_TRACK_ALLOCATIONS */ | 544 | #endif /* ACPI_DBG_TRACK_ALLOCATIONS */ |
| 601 | 545 | ||
| 602 | /* Preemption point */ | 546 | /* |
| 603 | #ifndef ACPI_PREEMPTION_POINT | 547 | * Macros used for ACPICA utilities only |
| 604 | #define ACPI_PREEMPTION_POINT() /* no preemption */ | 548 | */ |
| 605 | #endif | 549 | |
| 550 | /* Generate a UUID */ | ||
| 551 | |||
| 552 | #define ACPI_INIT_UUID(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \ | ||
| 553 | (a) & 0xFF, ((a) >> 8) & 0xFF, ((a) >> 16) & 0xFF, ((a) >> 24) & 0xFF, \ | ||
| 554 | (b) & 0xFF, ((b) >> 8) & 0xFF, \ | ||
| 555 | (c) & 0xFF, ((c) >> 8) & 0xFF, \ | ||
| 556 | (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) | ||
| 557 | |||
| 558 | #define ACPI_IS_OCTAL_DIGIT(d) (((char)(d) >= '0') && ((char)(d) <= '7')) | ||
| 606 | 559 | ||
| 607 | #endif /* ACMACROS_H */ | 560 | #endif /* ACMACROS_H */ |
