aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/cpumask.h
diff options
context:
space:
mode:
authorDmitry Torokhov <dtor_core@ameritech.net>2006-04-02 00:08:05 -0500
committerDmitry Torokhov <dtor_core@ameritech.net>2006-04-02 00:08:05 -0500
commit95d465fd750897ab32462a6702fbfe1b122cbbc0 (patch)
tree65c38b2f11c51bb6932e44dd6c92f15b0091abfe /include/linux/cpumask.h
parent642fde17dceceb56c7ba2762733ac688666ae657 (diff)
parent683aa4012f53b2ada0f430487e05d37b0d94e90a (diff)
Manual merge with Linus.
Conflicts: arch/powerpc/kernel/setup-common.c drivers/input/keyboard/hil_kbd.c drivers/input/mouse/hil_ptr.c
Diffstat (limited to 'include/linux/cpumask.h')
-rw-r--r--include/linux/cpumask.h51
1 files changed, 20 insertions, 31 deletions
diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h
index 60e56c6e03dd..9cbb781d6f80 100644
--- a/include/linux/cpumask.h
+++ b/include/linux/cpumask.h
@@ -67,7 +67,7 @@
67 * 67 *
68 * int any_online_cpu(mask) First online cpu in mask 68 * int any_online_cpu(mask) First online cpu in mask
69 * 69 *
70 * for_each_cpu(cpu) for-loop cpu over cpu_possible_map 70 * for_each_possible_cpu(cpu) for-loop cpu over cpu_possible_map
71 * for_each_online_cpu(cpu) for-loop cpu over cpu_online_map 71 * for_each_online_cpu(cpu) for-loop cpu over cpu_online_map
72 * for_each_present_cpu(cpu) for-loop cpu over cpu_present_map 72 * for_each_present_cpu(cpu) for-loop cpu over cpu_present_map
73 * 73 *
@@ -212,17 +212,15 @@ static inline void __cpus_shift_left(cpumask_t *dstp,
212 bitmap_shift_left(dstp->bits, srcp->bits, n, nbits); 212 bitmap_shift_left(dstp->bits, srcp->bits, n, nbits);
213} 213}
214 214
215#define first_cpu(src) __first_cpu(&(src), NR_CPUS) 215#ifdef CONFIG_SMP
216static inline int __first_cpu(const cpumask_t *srcp, int nbits) 216int __first_cpu(const cpumask_t *srcp);
217{ 217#define first_cpu(src) __first_cpu(&(src))
218 return min_t(int, nbits, find_first_bit(srcp->bits, nbits)); 218int __next_cpu(int n, const cpumask_t *srcp);
219} 219#define next_cpu(n, src) __next_cpu((n), &(src))
220 220#else
221#define next_cpu(n, src) __next_cpu((n), &(src), NR_CPUS) 221#define first_cpu(src) 0
222static inline int __next_cpu(int n, const cpumask_t *srcp, int nbits) 222#define next_cpu(n, src) 1
223{ 223#endif
224 return min_t(int, nbits, find_next_bit(srcp->bits, nbits, n+1));
225}
226 224
227#define cpumask_of_cpu(cpu) \ 225#define cpumask_of_cpu(cpu) \
228({ \ 226({ \
@@ -398,27 +396,18 @@ extern cpumask_t cpu_present_map;
398#define cpu_present(cpu) ((cpu) == 0) 396#define cpu_present(cpu) ((cpu) == 0)
399#endif 397#endif
400 398
401#define any_online_cpu(mask) \ 399#ifdef CONFIG_SMP
402({ \ 400int highest_possible_processor_id(void);
403 int cpu; \ 401#define any_online_cpu(mask) __any_online_cpu(&(mask))
404 for_each_cpu_mask(cpu, (mask)) \ 402int __any_online_cpu(const cpumask_t *mask);
405 if (cpu_online(cpu)) \ 403#else
406 break; \ 404#define highest_possible_processor_id() 0
407 cpu; \ 405#define any_online_cpu(mask) 0
408}) 406#endif
409 407
410#define for_each_cpu(cpu) for_each_cpu_mask((cpu), cpu_possible_map) 408#define for_each_cpu(cpu) for_each_cpu_mask((cpu), cpu_possible_map)
409#define for_each_possible_cpu(cpu) for_each_cpu_mask((cpu), cpu_possible_map)
411#define for_each_online_cpu(cpu) for_each_cpu_mask((cpu), cpu_online_map) 410#define for_each_online_cpu(cpu) for_each_cpu_mask((cpu), cpu_online_map)
412#define for_each_present_cpu(cpu) for_each_cpu_mask((cpu), cpu_present_map) 411#define for_each_present_cpu(cpu) for_each_cpu_mask((cpu), cpu_present_map)
413 412
414/* Find the highest possible smp_processor_id() */
415#define highest_possible_processor_id() \
416({ \
417 unsigned int cpu, highest = 0; \
418 for_each_cpu_mask(cpu, cpu_possible_map) \
419 highest = cpu; \
420 highest; \
421})
422
423
424#endif /* __LINUX_CPUMASK_H */ 413#endif /* __LINUX_CPUMASK_H */