cpumask: cpumask_first/cpumask_next

Pointer-taking variants of first_cpu/next_cpu.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
---
 include/linux/cpumask.h |   24 ++++++++++++------------
 lib/cpumask.c           |    8 ++++----
 2 files changed, 16 insertions(+), 16 deletions(-)

diff -r 325ff5c96da3 include/linux/cpumask.h
--- a/include/linux/cpumask.h	Sun Sep 28 16:30:06 2008 +1000
+++ b/include/linux/cpumask.h	Sun Sep 28 17:44:44 2008 +1000
@@ -46,8 +46,8 @@
  * void cpumask_shift_right(dst, src, n) Shift right
  * void cpumask_shift_left(dst, src, n)	Shift left
  *
- * int first_cpu(mask)			Number lowest set bit, or nr_cpu_ids
- * int next_cpu(cpu, mask)		Next cpu past 'cpu', or nr_cpu_ids
+ * int cpumask_first(mask)		Number lowest set bit, or nr_cpu_ids
+ * int cpumask_next(cpu, mask)		Next cpu past 'cpu', or nr_cpu_ids
  *
  * void cpumask_copy(dmask, smask)	dmask = smask
  *
@@ -174,6 +174,8 @@ extern cpumask_t _unused_cpumask_arg_;
 #define for_each_cpu_mask_nr(cpu, mask)	for_each_cpu_mask(cpu, mask)
 #define cpumask_of_cpu(cpu) (*cpumask_of(cpu))
 #define for_each_cpu_mask(cpu, mask)	for_each_cpu(cpu, &(mask))
+#define first_cpu(src)		cpumask_first(&(src))
+#define next_cpu(n, src)	cpumask_next((n), &(src))
 /* End deprecated region. */
 
 #if NR_CPUS <= BITS_PER_LONG
@@ -413,25 +415,23 @@ extern const struct cpumask cpu_mask_all
 
 #if NR_CPUS == 1
 
-#define first_cpu(src)		({ (void)(src); 0; })
-#define next_cpu(n, src)	({ (void)(src); 1; })
+#define cpumask_first(src)	({ (void)(src); 0; })
+#define cpumask_next(n, src)	({ (void)(src); 1; })
 #define any_online_cpu(mask)	0
 #define for_each_cpu(cpu, mask)	\
 	for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)mask)
 
 #else /* NR_CPUS > 1 */
 
-int __first_cpu(const cpumask_t *srcp);
-int __next_cpu(int n, const cpumask_t *srcp);
+int cpumask_first(const cpumask_t *srcp);
+int cpumask_next(int n, const cpumask_t *srcp);
 int __any_online_cpu(const cpumask_t *mask);
 
-#define first_cpu(src)		__first_cpu(&(src))
-#define next_cpu(n, src)	__next_cpu((n), &(src))
 #define any_online_cpu(mask) __any_online_cpu(&(mask))
-#define for_each_cpu(cpu, mask)			\
-	for ((cpu) = -1;				\
-		(cpu) = __next_cpu((cpu), (mask)),	\
-		(cpu) < nr_cpu_ids; )
+#define for_each_cpu(cpu, mask)				\
+	for ((cpu) = cpumask_first(mask);		\
+	     (cpu) < nr_cpu_ids;			\
+	     (cpu) = cpumask_next((cpu), (mask)))
 #endif
 
 /*
diff -r 325ff5c96da3 lib/cpumask.c
--- a/lib/cpumask.c	Sun Sep 28 16:30:06 2008 +1000
+++ b/lib/cpumask.c	Sun Sep 28 17:44:44 2008 +1000
@@ -3,17 +3,17 @@
 #include <linux/cpumask.h>
 #include <linux/module.h>
 
-int __first_cpu(const cpumask_t *srcp)
+int cpumask_first(const struct cpumask *srcp)
 {
 	return find_first_bit(cpumask_bits(srcp), nr_cpu_ids);
 }
-EXPORT_SYMBOL(__first_cpu);
+EXPORT_SYMBOL(cpumask_first);
 
-int __next_cpu(int n, const cpumask_t *srcp)
+int cpumask_next(int n, const struct cpumask *srcp)
 {
 	return find_next_bit(cpumask_bits(srcp), nr_cpu_ids, n+1);
 }
-EXPORT_SYMBOL(__next_cpu);
+EXPORT_SYMBOL(cpumask_next);
 
 int __any_online_cpu(const cpumask_t *mask)
 {
