diff options
Diffstat (limited to 'include/linux/cpumask.h')
-rw-r--r-- | include/linux/cpumask.h | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h index 789cf5f920ce..bae6fe24d1f9 100644 --- a/include/linux/cpumask.h +++ b/include/linux/cpumask.h | |||
@@ -84,14 +84,16 @@ extern const struct cpumask *const cpu_active_mask; | |||
84 | #define num_online_cpus() cpumask_weight(cpu_online_mask) | 84 | #define num_online_cpus() cpumask_weight(cpu_online_mask) |
85 | #define num_possible_cpus() cpumask_weight(cpu_possible_mask) | 85 | #define num_possible_cpus() cpumask_weight(cpu_possible_mask) |
86 | #define num_present_cpus() cpumask_weight(cpu_present_mask) | 86 | #define num_present_cpus() cpumask_weight(cpu_present_mask) |
87 | #define num_active_cpus() cpumask_weight(cpu_active_mask) | ||
87 | #define cpu_online(cpu) cpumask_test_cpu((cpu), cpu_online_mask) | 88 | #define cpu_online(cpu) cpumask_test_cpu((cpu), cpu_online_mask) |
88 | #define cpu_possible(cpu) cpumask_test_cpu((cpu), cpu_possible_mask) | 89 | #define cpu_possible(cpu) cpumask_test_cpu((cpu), cpu_possible_mask) |
89 | #define cpu_present(cpu) cpumask_test_cpu((cpu), cpu_present_mask) | 90 | #define cpu_present(cpu) cpumask_test_cpu((cpu), cpu_present_mask) |
90 | #define cpu_active(cpu) cpumask_test_cpu((cpu), cpu_active_mask) | 91 | #define cpu_active(cpu) cpumask_test_cpu((cpu), cpu_active_mask) |
91 | #else | 92 | #else |
92 | #define num_online_cpus() 1 | 93 | #define num_online_cpus() 1U |
93 | #define num_possible_cpus() 1 | 94 | #define num_possible_cpus() 1U |
94 | #define num_present_cpus() 1 | 95 | #define num_present_cpus() 1U |
96 | #define num_active_cpus() 1U | ||
95 | #define cpu_online(cpu) ((cpu) == 0) | 97 | #define cpu_online(cpu) ((cpu) == 0) |
96 | #define cpu_possible(cpu) ((cpu) == 0) | 98 | #define cpu_possible(cpu) ((cpu) == 0) |
97 | #define cpu_present(cpu) ((cpu) == 0) | 99 | #define cpu_present(cpu) ((cpu) == 0) |
@@ -141,6 +143,8 @@ static inline unsigned int cpumask_any_but(const struct cpumask *mask, | |||
141 | 143 | ||
142 | #define for_each_cpu(cpu, mask) \ | 144 | #define for_each_cpu(cpu, mask) \ |
143 | for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)mask) | 145 | for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)mask) |
146 | #define for_each_cpu_not(cpu, mask) \ | ||
147 | for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)mask) | ||
144 | #define for_each_cpu_and(cpu, mask, and) \ | 148 | #define for_each_cpu_and(cpu, mask, and) \ |
145 | for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)mask, (void)and) | 149 | for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)mask, (void)and) |
146 | #else | 150 | #else |
@@ -201,6 +205,18 @@ int cpumask_any_but(const struct cpumask *mask, unsigned int cpu); | |||
201 | (cpu) < nr_cpu_ids;) | 205 | (cpu) < nr_cpu_ids;) |
202 | 206 | ||
203 | /** | 207 | /** |
208 | * for_each_cpu_not - iterate over every cpu in a complemented mask | ||
209 | * @cpu: the (optionally unsigned) integer iterator | ||
210 | * @mask: the cpumask pointer | ||
211 | * | ||
212 | * After the loop, cpu is >= nr_cpu_ids. | ||
213 | */ | ||
214 | #define for_each_cpu_not(cpu, mask) \ | ||
215 | for ((cpu) = -1; \ | ||
216 | (cpu) = cpumask_next_zero((cpu), (mask)), \ | ||
217 | (cpu) < nr_cpu_ids;) | ||
218 | |||
219 | /** | ||
204 | * for_each_cpu_and - iterate over every cpu in both masks | 220 | * for_each_cpu_and - iterate over every cpu in both masks |
205 | * @cpu: the (optionally unsigned) integer iterator | 221 | * @cpu: the (optionally unsigned) integer iterator |
206 | * @mask: the first cpumask pointer | 222 | * @mask: the first cpumask pointer |