cpumask_first_and_and(9)
π cpumask_first_and_and β Kernel API Manual β¨
okay so bestie, sit down, because this little icon of a function is about to make your whole cpu-mask life easier π
πΈ NAME πΈ
cpumask_first_and_and β literally returns the first cpu from *srcp1 & *srcp2 & *srcp3 π
β¨ SYNOPSIS β¨
unsigned int cpumask_first_and_and (const struct cpumask *srcp1 , const
struct cpumask *srcp2 , const struct cpumask *srcp3 );
no cap, that's the whole signature π«Ά
π¦ ARGUMENTS π¦
srcp1β the first input πsrcp2β the second input πsrcp3β the third input π (yes girl, three of them, it's giving three-way AND)
π RETURN π
>= nr_cpu_ids if no cpus are set in all of them π« β so like, if the intersection comes up empty, you're not getting a real cpu id back, periodt.
π heads up bestie: you gotta check that return value yourself. An empty overlap means you get something >= nr_cpu_ids, not a cute little error code.
π SEE ALSO π
the whole friend group is in the group chat, iykyk π Kernel file ./include/linux/cpumask.h
cpumask_pr_args(9)cpumask_first(9)cpumask_first_zero(9)cpumask_first_and(9)cpumask_first_andnot(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)
okay that's the whole page bestie, you ate that πβ¨ this gem lives in ./include/linux and the manual was dated October 2026 β go forth and intersect those masks, main character energy only ππ§
π¦ 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