cpumask_first_andnot(9)
π
cpumask_first_andnot β bestie's guide to cpumask_first_andnot(9)
okay so first things first, the manual name is cpumask_first_andnot and this whole thing lives in the Kernel API Manual, section 9. buckle up π
β¨ NAME β¨
cpumask_first_andnot β returns the very first cpu from *srcp1 & ~*srcp2, no cap π
like, it's giving "who's in the first mask but NOT in the second mask, and who's first in line" energy. iconic.
πΈ SYNOPSIS πΈ
unsigned int cpumask_first_andnot (const struct cpumask *srcp1 , const
struct cpumask *srcp2 );
that's the whole signature, take it in, it's literally right there π«Ά
π¦ ARGUMENTS π¦
srcp1β the first input. the main character mask, if you will πsrcp2β the second input. the other one we're subtracting from the vibe π
β RETURN β
>= nr_cpu_ids if no such cpu found. π
so like, if it comes back with a number that's >= nr_cpu_ids, that's your sign that nothing matched β it's not a real cpu id, it's the "nope, didn't find one" of it all π
π SEE ALSO π
everything's in the kernel file ./include/linux/cpumask.h β and honestly the friend group here is HUGE, so let's go π§
cpumask_pr_args(9)cpumask_first(9)cpumask_first_zero(9)cpumask_first_and(9)cpumask_first_and_and(9)cpumask_last(9)cpumask_next(9)cpumask_next_zero(9)cpumask_next_and(9)cpumask_next_andnot(9)cpumask_next_and_wrap(9)cpumask_next_wrap(9)cpumask_random(9)for_each_cpu(9)for_each_cpu_wrap(9)for_each_cpu_and(9)for_each_cpu_andnot(9)for_each_cpu_or(9)for_each_cpu_from(9)cpumask_any_but(9)cpumask_any_and_but(9)cpumask_any_andnot_but(9)cpumask_nth(9)cpumask_nth_and(9)cpumask_nth_and_andnot(9)cpumask_set_cpu(9)cpumask_clear_cpus(9)cpumask_clear_cpu(9)cpumask_test_cpu(9)cpumask_test_and_set_cpu(9)cpumask_test_and_clear_cpu(9)cpumask_setall(9)cpumask_clear(9)cpumask_and(9)cpumask_or(9)cpumask_weighted_or(9)cpumask_xor(9)cpumask_andnot(9)cpumask_equal(9)cpumask_or_equal(9)cpumask_intersects(9)cpumask_subset(9)cpumask_empty(9)cpumask_full(9)cpumask_weight(9)cpumask_weight_and(9)cpumask_weight_andnot(9)cpumask_shift_right(9)cpumask_shift_left(9)cpumask_copy(9)cpumask_any(9)cpumask_any_and(9)cpumask_of(9)cpumask_parse_user(9)cpumask_parselist_user(9)cpumask_parse(9)cpulist_parse(9)cpumask_size(9)alloc_cpumask_var(9)to_cpumask(9)num_online_cpus(9)cpumap_print_bitmask_to_buf(9)cpumap_print_list_to_buf(9)
fr fr that's a lot of friends. read them, love them, they're all in ./include/linux/cpumask.h π
and that's the page!! mwah π«Ά this cutie is from ./include/linux, dated October 2026 β so note the date, bestie, and slay your kernel dev era βπΈπ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms