diff options
Diffstat (limited to 'include/linux/cpumask.h')
| -rw-r--r-- | include/linux/cpumask.h | 22 | 
1 files changed, 18 insertions, 4 deletions
diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h index d77b54733c5..bae6fe24d1f 100644 --- a/include/linux/cpumask.h +++ b/include/linux/cpumask.h @@ -90,10 +90,10 @@ extern const struct cpumask *const cpu_active_mask;  #define cpu_present(cpu)	cpumask_test_cpu((cpu), cpu_present_mask)  #define cpu_active(cpu)		cpumask_test_cpu((cpu), cpu_active_mask)  #else -#define num_online_cpus()	1 -#define num_possible_cpus()	1 -#define num_present_cpus()	1 -#define num_active_cpus()	1 +#define num_online_cpus()	1U +#define num_possible_cpus()	1U +#define num_present_cpus()	1U +#define num_active_cpus()	1U  #define cpu_online(cpu)		((cpu) == 0)  #define cpu_possible(cpu)	((cpu) == 0)  #define cpu_present(cpu)	((cpu) == 0) @@ -143,6 +143,8 @@ static inline unsigned int cpumask_any_but(const struct cpumask *mask,  #define for_each_cpu(cpu, mask)			\  	for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)mask) +#define for_each_cpu_not(cpu, mask)		\ +	for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)mask)  #define for_each_cpu_and(cpu, mask, and)	\  	for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)mask, (void)and)  #else @@ -203,6 +205,18 @@ int cpumask_any_but(const struct cpumask *mask, unsigned int cpu);  		(cpu) < nr_cpu_ids;)  /** + * for_each_cpu_not - iterate over every cpu in a complemented mask + * @cpu: the (optionally unsigned) integer iterator + * @mask: the cpumask pointer + * + * After the loop, cpu is >= nr_cpu_ids. + */ +#define for_each_cpu_not(cpu, mask)				\ +	for ((cpu) = -1;					\ +		(cpu) = cpumask_next_zero((cpu), (mask)),	\ +		(cpu) < nr_cpu_ids;) + +/**   * for_each_cpu_and - iterate over every cpu in both masks   * @cpu: the (optionally unsigned) integer iterator   * @mask: the first cpumask pointer  |