diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-28 18:13:42 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-28 18:13:42 -0400 |
| commit | 63add2f2072e69c1eb7a5f6ca8f415122da889b9 (patch) | |
| tree | 6948de01b65858ae484474d3cbf2c9d7f61b28ca /kernel/cpu.c | |
| parent | 3684a601e4273692b6c80b86e55c728aef675660 (diff) | |
| parent | 9e3ee1c39c0cc71222f9980ccbf87fe072897eef (diff) | |
Merge branch 'cpus4096-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'cpus4096-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
cpu masks: optimize and clean up cpumask_of_cpu()
cpumask: export cpumask_of_cpu_map
cpumask: change cpumask_of_cpu_ptr to use new cpumask_of_cpu
cpumask: put cpumask_of_cpu_map in the initdata section
cpumask: make cpumask_of_cpu_map generic
Diffstat (limited to 'kernel/cpu.c')
| -rw-r--r-- | kernel/cpu.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/kernel/cpu.c b/kernel/cpu.c index 29510d68338a..e202a68d1cc1 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c | |||
| @@ -455,3 +455,28 @@ out: | |||
| 455 | #endif /* CONFIG_PM_SLEEP_SMP */ | 455 | #endif /* CONFIG_PM_SLEEP_SMP */ |
| 456 | 456 | ||
| 457 | #endif /* CONFIG_SMP */ | 457 | #endif /* CONFIG_SMP */ |
| 458 | |||
| 459 | /* | ||
| 460 | * cpu_bit_bitmap[] is a special, "compressed" data structure that | ||
| 461 | * represents all NR_CPUS bits binary values of 1<<nr. | ||
| 462 | * | ||
| 463 | * It is used by cpumask_of_cpu() to get a constant address to a CPU | ||
| 464 | * mask value that has a single bit set only. | ||
| 465 | */ | ||
| 466 | |||
| 467 | /* cpu_bit_bitmap[0] is empty - so we can back into it */ | ||
| 468 | #define MASK_DECLARE_1(x) [x+1][0] = 1UL << (x) | ||
| 469 | #define MASK_DECLARE_2(x) MASK_DECLARE_1(x), MASK_DECLARE_1(x+1) | ||
| 470 | #define MASK_DECLARE_4(x) MASK_DECLARE_2(x), MASK_DECLARE_2(x+2) | ||
| 471 | #define MASK_DECLARE_8(x) MASK_DECLARE_4(x), MASK_DECLARE_4(x+4) | ||
| 472 | |||
| 473 | const unsigned long cpu_bit_bitmap[BITS_PER_LONG+1][BITS_TO_LONGS(NR_CPUS)] = { | ||
| 474 | |||
| 475 | MASK_DECLARE_8(0), MASK_DECLARE_8(8), | ||
| 476 | MASK_DECLARE_8(16), MASK_DECLARE_8(24), | ||
| 477 | #if BITS_PER_LONG > 32 | ||
| 478 | MASK_DECLARE_8(32), MASK_DECLARE_8(40), | ||
| 479 | MASK_DECLARE_8(48), MASK_DECLARE_8(56), | ||
| 480 | #endif | ||
| 481 | }; | ||
| 482 | EXPORT_SYMBOL_GPL(cpu_bit_bitmap); | ||
